1,852
edits
(Undo revision 3720 by Rezahousseini (talk)) |
(Rename "Octave-Forge" to "Octave Forge" (https://lists.gnu.org/archive/html/octave-maintainers/2018-08/msg00138.html).) |
||
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. | |||
== 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| ]] |