Difference between revisions of "Online Developer Meeting (2020-11-10)"

From Octave
Jump to navigation Jump to search
Line 43: Line 43:
 
* One of the last hosting services offering Mercurial (hg) support
 
* 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].
 
* 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-20 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 =====

Revision as of 02:19, 10 November 2020

Todays topics

  • Meet and greet 5 minutes before meeting (audio testing).

The future of Octave Packages

See also Discourse.

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 (see link)
  • 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 Function List. How to update this #53860?
  • 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 Apache Allura
  • One of the last hosting services offering Mercurial (hg) support
  • Slow and many commercials, 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-20 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)?
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 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).

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 use the Savannah Bug tracker for bug reports. Drop this announcement?
  • Reopen the old Octave Forge bug tracker?
MXE-Octave
  • The MS Windows installer bundles 47 Octave packages.
  • 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
  • Forced updates to the packages?
  • Make criterion to drop package from installer if it no longer compiles "normally" (document somewhere)?
  • Document how to request package inclusion in the MS Windows installer (open bug report, Discourse, manual)?

New directions

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?
  • Future development:
    • Automated quality checks (dead URLs, pkg installation problems)
pkg tool
  • Current pkg very interleaved with / limited by Octave Forge -forge
    • Abstracting package registry / index?
  • Alternatives exist octave-packajoozle (pkj)
  • General design: Making pkg an Octave package?
    • Changes to pkg or the package format can be applied to old Octave versions.
    • Multiple pkg tools can be developed.
Octave package format
  • Documented 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.)

General questions, open talk

  • How to teach people that creating an Octave package is as simple as pkg-example?
  • Packages must become smaller?
    • Split large packages into different functionalities?

Ideas for next meeting

Topic suggestions

Octave 7

  • Not only providing major releases that "fix Matlab incompatibilities".
  • Great new features for a great new release.
  • Code sprints.

See also