Difference between revisions of "Octave Forge"

From Octave
Jump to navigation Jump to search
(Rename "Octave-Forge" to "Octave Forge" (https://lists.gnu.org/archive/html/octave-maintainers/2018-08/msg00138.html).)
(Make redirect page (background: a category page has an automatic list of pages, that does not have to be maintained manually).)
Tag: New redirect
 
(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| ]]
 

Latest revision as of 02:59, 10 June 2019