|
|
(2 intermediate revisions by the same user not shown) |
Line 1: |
Line 1: |
| Octave-Forge is a community project for collaborative development of GNU Octave extensions, called “Octave packages”. If you have a large package that you want to open up to collaborative development, or a couple of m-files that you want to contribute to an existing package, Octave-Forge is the place to do it. Tiny helper functions (the equivalent of e.g., shell aliases) should go in the [[Tips and tricks]] page.
| | #REDIRECT [[Category:Octave Forge]] |
| | |
| == Installing packages ==
| |
| You can find the list of packages on the [http://octave.sourceforge.net/packages.php Octave-Forge website]. The recommended method for package installation is using your system package manager, see also the [[FAQ]] for the most common issues. The official [[Windows Installer]] bundles several packages so they don't have to be installed separately.
| |
| | |
| To install a package from the Octave Forge, at the Octave prompt type {{Codeline|pkg install -forge package_name}}. If your Octave version is below 3.4.0, you'll have to download the package file manually, and use {{Codeline|pkg install package_file_name.tar.gz}}.
| |
| | |
| == Collaborative development ==
| |
| | |
| Octave extensions are developed and released on SourceForge https://sourceforge.net/projects/octave/
| |
| | |
| === Roles ===
| |
| | |
| '''Package author'''
| |
| * Writes individual function files (m-files, oct-files)
| |
| * Writes documentation, either for individual functions (function reference) or the package as a whole (package documentation / user manual)
| |
| * Writes [[Tests|tests]], either for individual function files or the the package as a whole
| |
| * Writes [https://www.gnu.org/software/octave/doc/interpreter/Demonstration-Functions.html demos] for individual function files
| |
| | |
| ''' Package contributor'''
| |
| * Contributes bug reports or feature requests, e. g., via the [https://savannah.gnu.org/bugs/?group=octave Octave bug tracker]
| |
| * Contributes patches to fix errors, e. g., via the [https://savannah.gnu.org/patch/?group=octave Octave patch tracker]
| |
| | |
| '''Package maintainer'''
| |
| * Maintains package content (m-files, C and fortran code, documentation, bundled libraries, other content) inside the source code repository, see [https://www.gnu.org/software/octave/doc/interpreter/Creating-Packages.html]. If the code is developed elsewhere, the repository must be pushed to Octave-Forge at release time.
| |
| * Keeps the package in good shape, e. g., installability on many systems, up-to-date INDEX, DESCRIPTION, NEWS … files
| |
| * Manages package licensing
| |
| * Works towards a reasonable test suite for the package and ensures passing tests at release time
| |
| * Releases new versions of the package, see [https://octave.sourceforge.io/developers.html]. It is recommended to use a Makefile at the top level of the repository to automate this task.
| |
| * Announces new package releases at both Octave mailing lists once they have been uploaded
| |
| * Answers bug reports and feature requests for the individual package. The maintainer has no obligation to provide a fix herself.
| |
| * Reviews patches for the individual package and decides whether they may be applied, e. g., coding style, help texts, tests, a new function matches the scope of the package
| |
| * Acts as a primary contact for downstream distributors
| |
| | |
| '''Forge release manager'''
| |
| * Answers the [https://sourceforge.net/p/octave/package-releases/ package release tickets] (there is also an [https://sourceforge.net/p/octave/package-releases/feed.rss RSS feed]).
| |
| * Reviews package release candidates (these are formal checks)
| |
| ** The package lists at least one maintainer with valid contact information
| |
| ** Up-to-date documentation
| |
| ** Must install and work with the latest stable Octave release
| |
| ** License compliance (must be released under a GPL compatible license)
| |
| ** The corresponding source code revision must be tagged inside the Octave-Forge repository and it must be possible to reproduce the content of the release tarball from this revision. Aforementioned Makefile can help with this task.
| |
| ** Content has been signed by the package maintainer or matching hash values have been provided via the package release ticket
| |
| ** All functions (except private ones) must be documented using Texinfo
| |
| ** The package must have all the required files [https://www.gnu.org/software/octave/doc/interpreter/Creating-Packages.html]
| |
| ** If the package has a doc folder it should be written in Texinfo
| |
| ** No Octave core functions should be shadowed
| |
| ** No external dependencies should be directly included
| |
| * Uploads new releases
| |
| | |
| '''Forge leader'''
| |
| * Decides about entry of new packages to Octave-Forge
| |
| * Categorizes the list of maintained and unmaintained packages
| |
| * Administrates the SourceForge project
| |
| * Manages the project
| |
| | |
| '''Forge Community'''
| |
| * Contributes new ideas to the project
| |
| * Makes strategic decisions
| |
| | |
| == Suggested new features ==
| |
| | |
| * Install directory
| |
| * Install from URL / source code repository
| |
| * Build HTML / PDF docs
| |
| * Index, host documentation and archive releases of packages such as epstk which have been developed elsewhere (equivalent of CPAN). Feel free to expand on the definition of such a system on this page.
| |
| * Rapid code sharing of individual function files, see [[Agora]].
| |
| | |
| == See also ==
| |
| * [[Packages]]
| |
| ** [[Creating packages]]
| |
| | |
| == External links ==
| |
| * [http://octave.sf.net Octave-Forge website]
| |
| | |
| [[Category:Octave-Forge| ]] | |