Editing Reviewing Octave Forge packages

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:
{{Warning | Since July 2022 Octave packages are organized by https://packages.octave.org.}}
== Help reviewing Octave Forge packages ==


The reviewing procedure in short:
We need help. Here is how:


# Pick a package at https://sourceforge.net/p/octave/package-releases/
# Pick a package at https://sourceforge.net/p/octave/package-releases/
# Copy the check-list below and fill it out, marking each box:
# Copy the check-list below and fill it out, marking each box:
#* <code>[x]</code> for successfully passed
#* <code>[x]</code> for passed
#* <code>[ ]</code> for not done / error (please give below the checklist a brief reason)
#* <code>[n/a]</code> for non-applicable
#* <code>[ ]</code> for skipped (because you cannot do it, missing software, etc)
#* <code>[F]</code> for fails.
# Paste your filled in check-list as a comment on the issue above
# Paste your filled in check-list as a comment on the issue above
# An [https://sourceforge.net/p/octave/_members/ Octave Forge Admin] will try to look over your review and hopefully release the package.


== Checklist ==
=== What happens next ===


<pre>
An admin will try to look over your review and hopefully release the package.  More than one person can review a package, in fact that would be great.
# 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
== Checklist ==


- [ ] `pkg install  foo`
<pre>
- [ ] `pkg load      foo`
== Repository ==
- [ ] `pkg unload    foo`
[ ] maintainer has specified a corresponding revision commit/changeset
- [ ] `pkg uninstall foo`
[ ] checkout code from Sourceforge, commit/changeset is present
- Above steps were run on Octave and OS versions:
  -  ________
  -  ________


# Package tests
== Compile and Install ==
[ ] release candidate installs on latest stable Octave release
[ ] no compiler errors or warnings
[ ] ran tests using <code>runtests /path/to/pkg</code> (use <code>oruntests</code> instead in Octave 6.0.0 or later)
[ ] ran all tests, including those in src (how??)
[ ] ran doctest on all functions (optional)
[ ] ran generate_package_html (if Makefile present try <code> make html </code>)
[ ] no makeinfo errors and warnings during HTML build
[ ] unpacked and spot-checked the generated HTML documentation


- [ ] ran `pkg test foo`
== Interaction with pkg ==
- [ ] ran `doctest`
[ ] <code>pkg load foo</code> runs with errors or warnings
[ ] <code>pkg unload foo</code> runs with errors or warnings
[ ] <code>pkg uninstall foo</code> runs with errors or warnings


# Package files in release candidate tarball
[ ] Above steps were run on Octave and OS versions:
    *  ________
    *  ________


- [ ] `DESCRIPTION` version and release date updated
== Package files in release candidate tarball ==
- [ ] `DESCRIPTION` minimum Octave tested
[ ] tested with minimum Octave version list in DESCRIPTION
- [ ] `DESCRIPTION` all dependencies are listed
[ ] reasonable dependencies listed in DESCRIPTION
- [ ] `NEWS` version and date match
[ ] NEWS file makes sense, version and date match
- [ ] `NEWS` big changes announced
[ ] All functions are listed in INDEX
- [ ] `INDEX` all (new) functions are listed
[ ] check licenses (<code>licensecheck -r</code> "plus some manual checks").
- [ ] version numbers in help text and function body (e.g., banners) updated
[ ] package files are readable/executable by all users (reasonably current maintainer Makefile should be doing this).
- [ ] license specifications in help text and function body agree `licensecheck -r`
[ ] version number in src/configure.ac (if present) matches DESCRIPTION and tarball name.
- [ ] file permissions are readable/executable by all users
[ ] any version numbers within the help or function body (e.g., banners) matches above.
- [ ] junk files are removed (hidden dot files, backup files, results of configure runs, etc.)
[ ] contains no hidden dot files, junk backup files, results of configure runs, etc (should be taken care of by maintainer Makefile).
- [ ] (optional if present) `src/configure.ac` version updated
</pre>
</pre>


== Admin tasks ==
== Other info ==
 
# Upload release tarball to [https://sourceforge.net/projects/octave/files/Octave%20Forge%20Packages/Individual%20Package%20Releases/ Individual Package Releases]
# Update https://octave.sourceforge.io/
#* Upload new package HTML documentation to {{Path|/home/project-web/octave/htdocs/packages/foo/}} <ref>How to access the Octave Forge webspace [https://sourceforge.net/p/forge/documentation/Project%20Web%20Services/ SourceForge help].</ref>
#* Brief notes: `sftp` to look around the site: `sftp <user>@web.sourceforge.net`
#* Then `rsync -auvn --delete ...` to sync the particular package content.
# Optional: Update news feed, add entry in [https://sourceforge.net/p/octave/project-web/ci/default/tree/htdocs/news.html htdocs/news.html]
#* (currently unmaintained, after about March 2022)
 
== SourceForge Project information ==
 
* admin accounts: https://sourceforge.net/p/octave/_members
* Package repositories
** hg: https://sourceforge.net/p/octave/_list/hg
** git: https://sourceforge.net/p/octave/_list/git
* Octave Forge web site https://octave.sourceforge.io and [https://sourceforge.net/p/octave/project-web/ci/default/tree source code]
 
{{File|.htaccess|<pre>
<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,
TODO:  how does one check all functions are listed in INDEX?
# so we have to check for looping instead if necessary


# forbid direct access to packages directory
TODO: document how to run "all tests including those in src"  Someday this should be just "pkg test foo".
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule ^packages(/|$)(.*) - [F]


# paths in all other sudirectories are rewritten to be under directory
TODO: would be good to provide more specific instructions for when the package as a Maintainer Makefile?  But we don't usually put the Maintainer Makefile in the .tar.gz package to do?  (At least Doctest and Symbolic don't).
# "packages"
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule ^(.+/.*) /packages/$1 [L]


# FIXME: Trailing slash is not appended for (non-existing, to be
=== Meta helping ===
# 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]


* Feel free to edit this wiki with explanations of the check list tasks
* Please do add (reasonable) tasks to the check list


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


== Footnotes ==
Here are some common problems that reviewers can check for


<references/>
* INDEX is missing some new functions added
* NEWS has not been updated or is missing something big
* Version numbers or dates do not match between DESCRIPTION and NEWS
* Common makeinfo errors like "@bye seen before @end deftypefn"
* DESCRIPTION says pkg works with old Octave 4.x but it fails for me
* Obviously, compiler errors, warnings, test failures


[[Category:Outdated pages]]
[[Category:Octave Forge]]
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)

Templates used on this page: