Editing Online Developer Meeting (2020-11-10)

Jump to navigation Jump to search
Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.

Latest revision Your text
Line 1: Line 1:
* Date: [https://octave.discourse.group/t/online-developer-meeting-2020-11-10-the-future-of-octave-packages/349 Tuesday, November 11, 2020 @ 18:00 UTC]
* Date: [https://octave.discourse.group/t/online-developer-meeting/106 Tuesday, October 27, 2020 @ 18:00 UTC]
* Location: https://meet.jit.si/octave-dev-2020-11-10
* Location: https://meet.jit.si/octave-dev-2020-10-27


== Todays topics ==
== Todays topics ==
Line 8: Line 8:
=== The future of Octave Packages ===
=== The future of Octave Packages ===
: ''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]] 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
** '''50 community''' packages
** '''21 external''' 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])
* https://sourceforge.net/p/octave/_members/
** 7 admins (only Olaf, Mike and Kai "active")
** 51 developer (maybe 10 recently)
* '''5 request''' for new packages in the last two years (2 approved).
** Octave Forge is not attractive, '''why?'''
===== https://octave.sourceforge.io/ =====
* 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 =====
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}}.
<strike>Ideas:
* Ignore and collect requests to infinity?
* 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?
* Reopen the [https://sourceforge.net/p/octave/bugs/ old Octave Forge bug tracker]?</strike> (see below)
===== MXE-Octave =====
* 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.
of-communications-1-catop.patch
of-fits-1-cross-fixes.patch
of-fits-2-fixes.patch
of-fl-core-1-fixes.patch
of-gsl-1-cross-fixes.patch
of-interval-1-cross-fixes.patch
of-ltfat-1-cross-fixes.patch
of-nurbs-1-fixes.patch
of-nurbs-2-dev-fixes.patch
of-ocs-1-cross-fixes.patch
of-ocs-2-dev-fixes.patch
of-ocs-3-break-fixes.patch
of-ocs-4-pkgadd-fixes.patch
of-ocs-5-no-odepkg.patch
of-odepkg-1-fixes.patch
of-odepkg-2-fixes.patch
of-odepkg-3-deprecated.patch
of-quaternion-1-cross-fixes.patch
of-quaternion-2-dev-fixes.patch
of-sockets-1-cross-fixes.patch
of-sockets-2-deprecated.patch
of-specfun-1-deprecated.patch
of-statistics-1-cross.patch
of-strings-1-fixes.patch
of-tisean-1-fixes.patch
of-video-1-fixes.patch
==== New directions ====
===== pkg-index =====
* 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 21:
== 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]]
Please note that all contributions to Octave may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see Octave:Copyrights for details). Do not submit copyrighted work without permission!

To edit this page, please answer the question that appears below (more info):

Cancel Editing help (opens in new window)

Template used on this page: