Latest revision |
Your text |
Line 9: |
Line 9: |
| : ''See also [https://octave.discourse.group/t/online-developer-meeting-2020-11-10-the-future-of-octave-packages/349 Discourse].'' | | : ''See also [https://octave.discourse.group/t/online-developer-meeting-2020-11-10-the-future-of-octave-packages/349 Discourse].'' |
|
| |
|
| ==== Key points to discuss (Kai) ==== | | ==== Octave Forge - Facts and figures ==== |
| | |
| [[Octave Forge]] packages ⊂ [https://octave.org/doc/v5.2.0/Creating-Packages.html Octave] packages
| |
| | |
| * Creating, maintaining, installing Octave packages must become more simple/fun.
| |
| * Octave Forge needs more automation ([[#pkg-index]]) or manpower.
| |
| * Guide new package contributors (remove old, stale, irritating complex documentation).
| |
| | |
| ==== The Octave Forge legacy ====
| |
| | |
| ===== Facts and figures =====
| |
|
| |
|
| * https://octave.sourceforge.io/packages.php | | * https://octave.sourceforge.io/packages.php |
| ** '''50 community''' packages | | ** 50 community packages |
| ** '''21 external''' packages | | ** 21 external packages |
| ** several unmaintained / renamed packages | | ** several unmaintained / renamed packages |
| ** '''25 new package releases''' (40 in total) for 2020.
| |
| ** about 5 do not work with Octave 5.2 and about 12 will not work in Octave 6.1 ([https://octave.discourse.group/t/online-developer-meeting-2020-11-10-the-future-of-octave-packages/349/7 see link]) | | ** about 5 do not work with Octave 5.2 and about 12 will not work in Octave 6.1 ([https://octave.discourse.group/t/online-developer-meeting-2020-11-10-the-future-of-octave-packages/349/7 see link]) |
|
| |
|
| * https://sourceforge.net/p/octave/_members/ | | * https://sourceforge.net/p/octave/_members/ |
| ** 7 admins (only Olaf, Mike and Kai "active") | | ** 7 admins (only Olaf, Mike and me "active") |
| ** 51 developer (maybe 10 recently) | | ** 51 developer (maybe 10 recently) |
|
| |
|
Line 35: |
Line 24: |
| ** Octave Forge is not attractive, '''why?''' | | ** Octave Forge is not attractive, '''why?''' |
|
| |
|
| ===== https://octave.sourceforge.io/ ===== | | ==== The package legacy ==== |
| | |
| * Website looks great.
| |
| * No major updates (necessary) since 2018 http://hg.code.sf.net/p/octave/project-web
| |
| * Useful [https://octave.sourceforge.io/docs.php Function List]. '''How to update this {{bug|53860}}?''' Maybe "generate_html" package.
| |
| * Original developer (Oliver) no longer active.
| |
| * Adding and updating packages here is expensive/dangerous
| |
| ** manual SFTP uploads
| |
| ** no version control for the individual package documentation
| |
| ** approx. 5-10 minutes per package release.
| |
| | |
| ===== https://sourceforge.net/projects/octave/ =====
| |
| | |
| * FLOSS software based on [https://en.wikipedia.org/wiki/Apache_Allura Apache Allura]
| |
| * One of the last hosting services offering Mercurial (hg) support
| |
| * Slow and many commercials, [https://sourceforge.net/p/octave/project-web/commit_browser buggy UI].
| |
| | |
| ====== Clumsy package development / releasing ======
| |
| | |
| * The procedure is documented in the wiki: [[Reviewing Octave Forge packages]]
| |
| ** Experience of Kai after a few releases:
| |
| *** An "easy release" with basic installation/functionality checking/uploading takes me about '''20-30 minutes'''.
| |
| *** If something is wrong with the tarballs another 20-30 minutes.
| |
| *** Version numbers are tracked in too many locations (DESCRIPTION, configure.ac, ...)
| |
| *** Octave Forge claims "high quality"
| |
| **** No OF admin can enforce it within 20-30 minutes (e.g. lack of package domain knowledge).
| |
| **** '''Users find many bugs despite this "high quality" release check procedures.'''
| |
| **** Why not just automatically release packages (pkg-index)?
| |
| | |
| * Octave Forge suggests extensions to the official [https://octave.org/doc/v5.2.0/Creating-Packages.html Octave package format]
| |
| ** [https://octave.sourceforge.io/templates/Makefile Maintainers Makefile]
| |
| *** Release tarballs must be manually created and uploaded.
| |
| *** Avoids automatic tarball creation (see [https://github.com/gnu-octave/pkg-example pkg-example]). Better practice?
| |
| ** The OF [http://hg.code.sf.net/p/octave/example-package/file/tip/plain-package example-package] is rather complicated, avoid advertising it any longer?
| |
|
| |
|
| ===== Savannah ===== | | ===== Savannah ===== |
Line 74: |
Line 30: |
| When reporting an Octave (core) bug on https://savannah.gnu.org/bugs/?group=octave you are "greeted" with '''1523 open bug reports''' of which [https://savannah.gnu.org/bugs/?group=octave&func=browse&set=custom&msort=0&status_id=1&resolution_id=0&submitted_by=0&assigned_to=0&category_id=108&bug_group_id=0&severity=0&priority=0&summary=&details=&advsrch=0&msort=0&chunksz=100&spamscore=5&report_id=101&sumORdet=0&morder=bug_id%3C&sumOrdet=0&offset=0#results '''330 reports (22%)'''] belong to Octave Forge packages and '''240 (15%) are older than a year'''. | | When reporting an Octave (core) bug on https://savannah.gnu.org/bugs/?group=octave you are "greeted" with '''1523 open bug reports''' of which [https://savannah.gnu.org/bugs/?group=octave&func=browse&set=custom&msort=0&status_id=1&resolution_id=0&submitted_by=0&assigned_to=0&category_id=108&bug_group_id=0&severity=0&priority=0&summary=&details=&advsrch=0&msort=0&chunksz=100&spamscore=5&report_id=101&sumORdet=0&morder=bug_id%3C&sumOrdet=0&offset=0#results '''330 reports (22%)'''] belong to Octave Forge packages and '''240 (15%) are older than a year'''. |
|
| |
|
| * They are not likely to be closed or worked on and leave a maintenance burden and bad impression (user requests for unmaintained packages are ignored there) back to Octave (core). A recent example of such user frustration {{bug|60048}}. | | * They are not likely to be closed or worked on and leave a maintenance burden and bad impression (user requests for unmaintained packages are ignored there) back to Octave (core). |
|
| |
|
| <strike>Ideas:
| | Ideas: |
|
| |
|
| * Ignore and collect requests to infinity? | | * Ignore and collect requests to infinity? |
| * Close bugs of inactive packages older than X years? (Drop the illusion, that someone ever will fix it.) | | * Close bugs of inactive packages older than X years? (Drop the illusion, that someone ever will fix it.) |
| * Octave Forge suggests to [https://octave.sourceforge.io/support-help.php use the Savannah Bug tracker] for bug reports. Drop this announcement? | | * Octave Forge suggests to [https://octave.sourceforge.io/support-help.php use the Savannah Bug tracker] for bug reports. Drop this announcement? |
| * Reopen the [https://sourceforge.net/p/octave/bugs/ old Octave Forge bug tracker]?</strike> (see below) | | * Reopen the [https://sourceforge.net/p/octave/bugs/ old Octave Forge bug tracker]? |
|
| |
|
| ===== MXE-Octave ===== | | ===== MXE-Octave ===== |
|
| |
|
| * The MS Windows installer [[Octave for Microsoft Windows#Packages|bundles 47]] Octave packages. | | * The MS Windows installer [[Octave for Microsoft Windows#Packages|bundles 47]] Octave packages. |
| * Are there criteria for including packages in the Windows installer? '''No.'''
| |
| * Forced updates to the packages? '''No.'''
| |
| * Make criterion to drop package from installer if it no longer compiles "normally" (document somewhere)? Depends on decision of mxe-octave.
| |
| * Document how to request package inclusion in the MS Windows installer (open bug report, Discourse, manual)? wiki
| |
| * About 26 patches necessary to achieve this. | | * About 26 patches necessary to achieve this. |
|
| |
|
Line 119: |
Line 71: |
| of-video-1-fixes.patch | | of-video-1-fixes.patch |
|
| |
|
| ==== New directions ====
| | * Forced updates to the packages? |
| | | * Make criterion to drop package from installer if it no longer compiles "normally" (document somewhere)? |
| ===== pkg-index =====
| | * Document how to request package inclusion in the MS Windows installer (open bug report, Discourse, manual)? |
| | |
| * https://gnu-octave.github.io/pkg-index/
| |
| * https://github.com/gnu-octave/pkg-index/
| |
| | |
| * Super set of Octave Forge (all packages in latest version included) | |
| * Easy to add, update and delete entries (just one file of meta data)
| |
| * Advertise pkg-index as (only) major platform for Octave packages? '''Not exclusive, but stronger highlight approach.'''
| |
| | |
| * Future development: | |
| ** Automated quality checks (dead URLs, pkg installation problems)
| |
| | |
| ===== pkg tool =====
| |
| | |
| * Current pkg very interleaved with / limited by Octave Forge <code>-forge</code>
| |
| ** Abstracting package registry / index?
| |
| * Alternatives exist [https://github.com/apjanke/octave-packajoozle octave-packajoozle (pkj)]
| |
| | |
| * General design: '''Making pkg an Octave package?''' (see below)
| |
| ** Changes to pkg or the package format can be applied to old Octave versions.
| |
| ** Multiple pkg tools can be developed.
| |
| | |
| ====== Octave package format ======
| |
| | |
| * Documented [https://octave.org/doc/v5.2.0/Creating-Packages.html in the Octave manual]
| |
| * In general good Octave programming project organization.
| |
| * Permitting "DESCRIPTION.md" or "DESCRIPTION.txt" extensions? (Nice highlighting in many modern source code hosting platforms.) '''Not decided.'''
| |
| | |
| === General questions, open talk ===
| |
| | |
| * How to teach people that creating an Octave package is as simple as [https://github.com/gnu-octave/pkg-example pkg-example]?
| |
| * Packages must become smaller?
| |
| ** Split large packages into different functionalities?
| |
| * Octave Forge package '''maintenance overtaking''' (inactive packages)?
| |
| ** Authorship can never be "overtaken". | |
| ** Grace period after public email on the mailing-list?
| |
| ** Forbidden at all, only package forking?
| |
| * Where to host package documentation?
| |
| ** doc folder, wiki, in the repo itself (pkg-example README.md)?
| |
| | |
| === Some outcomes of the meeting ===
| |
| | |
| * The responsibility for a package is with the maintainer, not Octave (core).
| |
| ** Okay to continue the use of Savannah for current Octave Forge packages, but not for pkg-index.
| |
| | |
| * pkg-index
| |
| ** How to treat malicious code/packages? User reports, package removal. Depending on the actual case.
| |
| | |
| * pkg tool as package
| |
| ** If synchronized with Octave core, no usage of "if version ... else ..." code. (edit: I can't remember if we decided that this was a no-go. Just something that might be worth considering... -- [[User:Mmuetzel|Mmuetzel]] ([[User talk:Mmuetzel|talk]]))
| |
| ** Watch out for problems with encodings (treated differently in older Octave versions) (edit: I'm no longer sure this is the case. I might have been thinking of `test` instead of `pkg`. I'm sorry for any confusion that might have caused. -- [[User:Mmuetzel|Mmuetzel]] ([[User talk:Mmuetzel|talk]]))
| |
| ** Treatment of <code>pkg install -forge</code> if package moved away from Octave Forge
| |
| | |
| * documentation
| |
| ** mxe-octave: necessary steps to include a package
| |
| *** only necessary if depending on external library, otherwise should install properly
| |
|
| |
|
| == Ideas for next meeting == | | == Ideas for next meeting == |
Line 190: |
Line 87: |
| == See also == | | == See also == |
|
| |
|
| * Next meeting: [[Online Developer Meeting (2021-03-23)]] | | * Next meeting: TBA |
| * Last meeting: [[Online Developer Meeting (2020-10-27)]] | | * Last meeting: [[Online Developer Meeting (2020-10-27)]] |
|
| |
|
| [[Category:2020]] | | [[Category:2020]] |
| [[Category:Meetings]] | | [[Category:Meetings]] |