Reviewing Octave Forge packages

The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
Warning icon.svg
Since July 2022 Octave packages are organized by https://packages.octave.org.

The reviewing procedure in short:

  1. Pick a package at https://sourceforge.net/p/octave/package-releases/
  2. Copy the check-list below and fill it out, marking each box:
    • [x] for successfully passed
    • [ ] for not done / error (please give below the checklist a brief reason)
  3. Paste your filled in check-list as a comment on the issue above
  4. An Octave Forge Admin will try to look over your review and hopefully release the package.

Checklist

# Repository / Metadata

- [ ] release commit/changeset specified and present in repository
- [ ] `generate_package_html` / `make html` works without errors and warnings
- [ ] generated HTML documentation looks sane

# pkg-tool runs without errors or warnings

- [ ] `pkg install   foo`
- [ ] `pkg load      foo`
- [ ] `pkg unload    foo`
- [ ] `pkg uninstall foo`
- Above steps were run on Octave and OS versions:
  -  ________
  -  ________

# Package tests

- [ ] ran `pkg test foo`
- [ ] ran `doctest` 

# Package files in release candidate tarball

- [ ] `DESCRIPTION` version and release date updated
- [ ] `DESCRIPTION` minimum Octave tested
- [ ] `DESCRIPTION` all dependencies are listed
- [ ] `NEWS` version and date match
- [ ] `NEWS` big changes announced
- [ ] `INDEX` all (new) functions are listed
- [ ] version numbers in help text and function body (e.g., banners) updated
- [ ] license specifications in help text and function body agree `licensecheck -r`
- [ ] file permissions are readable/executable by all users
- [ ] junk files are removed (hidden dot files, backup files, results of configure runs, etc.)
- [ ] (optional if present) `src/configure.ac` version updated

Admin tasks

  1. Upload release tarball to Individual Package Releases
  2. Update https://octave.sourceforge.io/
    • Upload new package HTML documentation to /home/project-web/octave/htdocs/packages/foo/ [1]
    • Brief notes: `sftp` to look around the site: `sftp <user>@web.sourceforge.net`
    • Then `rsync -auvn --delete ...` to sync the particular package content.
  3. Optional: Update news feed, add entry in htdocs/news.html
    • (currently unmaintained, after about March 2022)

SourceForge Project information

File: .htaccess
<FilesMatch "\.svgz$">
Header set Content-Encoding gzip
</FilesMatch>

RewriteEngine on

# use PHP files in root directory
RewriteRule ^archive\.html$ /archive.php [PT]
RewriteRule ^bugs\.html$ /bugs.php [PT]
RewriteRule ^code\.html$ /code.php [PT]
RewriteRule ^developers\.html$ /developers.php [PT]
RewriteRule ^docs\.html$ /docs.php [PT]
RewriteRule ^FAQ\.html$ /FAQ.php [PT]
RewriteRule ^function_list\.html$ /function_list.php [PT]
RewriteRule ^index\.html$ /index.php [PT]
RewriteRule ^links\.html$ /links.php [PT]
RewriteRule ^NEWS\.html$ /NEWS.php [PT]
RewriteRule ^packages\.html$ /packages.php [PT]

# root directory of files for download
RewriteRule ^released-packages/$ https://sourceforge.net/projects/octave/files/ [R=307,L]

# a particular packages repository
RewriteRule ^pkg-repository/(.*)/$ https://sourceforge.net/p/octave/$1/ [R=307,L]

# don't rewrite paths in the following directories
RewriteRule ^templates(/|$)(.*) - [L]
RewriteRule ^pkg_icon(/|$)(.*) - [L]
RewriteRule ^java(/|$)(.*) - [L]
RewriteRule ^doxygen32(/|$)(.*) - [L]
RewriteRule ^doxygen34(/|$)(.*) - [L]
RewriteRule ^doxygen36(/|$)(.*) - [L]
RewriteRule ^doxygen38(/|$)(.*) - [L]
RewriteRule ^doxygen40(/|$)(.*) - [L]
RewriteRule ^doxygen41(/|$)(.*) - [L]
RewriteRule ^coda(/|$)(.*) - [L]
RewriteRule ^octave(/|$)(.*) - [L]
RewriteRule ^octave\.old(/|$)(.*) - [L]
RewriteRule ^old_packages(/|$)(.*) - [L]

# webserver of sourceforge doesn't understand END rewrite rule flag,
# so we have to check for looping instead if necessary

# forbid direct access to packages directory
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule ^packages(/|$)(.*) - [F]

# paths in all other sudirectories are rewritten to be under directory
# "packages"
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule ^(.+/.*) /packages/$1 [L]

# FIXME: Trailing slash is not appended for (non-existing, to be
# re-written) package directories at top level. This should be cured
# in a better way than with the following.
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+) /packages/$1/ [L]


<FilesMatch "\.(php|css)$">
FileETag None
<ifModule mod_headers.c>
Header unset ETag
Header unset Expires
Header set Cache-Control "no-cache, must-revalidate"
</ifModule>
</FilesMatch>

Footnotes

  1. How to access the Octave Forge webspace SourceForge help.