Contribute: Difference between revisions

From Octave
Jump to navigation Jump to search
(Overhaul page.)
Line 1: Line 1:
== Bug reports and patch submission ==
== Bug reports and patch submission ==


Bugs and patches should be submitted to Octave's
* Bugs and patches should be submitted to Octave's [https://savannah.gnu.org/bug/?func=additem&group=octave bug] and [https://savannah.gnu.org/patch/?func=additem&group=octave patch] trackers respectively.
[https://savannah.gnu.org/bug/?func=additem&group=octave bug] and
[https://savannah.gnu.org/patch/?func=additem&group=octave patch]
trackers respectively.


The best way to contribute patches is to create a Mercurial changeset.
* The best way to contribute patches is to create a Mercurial changeset. See the [[Mercurial]] page for instructions.
See the [[Mercurial]] page for instructions.


== Building from development sources ==
== Building from development sources ==
Line 24: Line 20:
=== C/C++ guide ===
=== C/C++ guide ===


See [[C++ style guide]]. For C, you should follow all C++ rules that can apply.
:''See [[C++ style guide]]. For C, you should follow all C++ rules that can apply.''


=== Octave guide ===
=== Octave guide ===


See [[Octave style guide]].
:''See [[Octave style guide]].''


=== Help text style ===
=== Help text style ===


See [[Help text]].
:''See [[Help text style guide]].''


=== Fortran guide ===
=== Fortran guide ===
Line 49: Line 45:
[https://www.gnu.org/software/autoconf-archive/ Autoconf archive].
[https://www.gnu.org/software/autoconf-archive/ Autoconf archive].


=== mediawiki guide ===
=== Wiki guide ===


* Please try to fit a new page into the already existing category tree.
* Please try to fit a new page into the already existing category tree.

Revision as of 06:24, 10 June 2020

Bug reports and patch submission

  • Bugs and patches should be submitted to Octave's bug and patch trackers respectively.
  • The best way to contribute patches is to create a Mercurial changeset. See the Mercurial page for instructions.

Building from development sources

See Building.

Coding style

Apart from C++ and Octave language (m-files), Octave's sources include files written in C, Fortran, M4, Perl, Unix shell, AWK, Texinfo, and @TeX{}. There are not many rules to follow when using these other languages; some of them are summarized below. In any case, the golden rule is: if you modify a source file, try to follow any conventions you can detect in the file or other similar files.

C/C++ guide

See C++ style guide. For C, you should follow all C++ rules that can apply.

Octave guide

See Octave style guide.

Help text style

See Help text style guide.

Fortran guide

If you modify a Fortran file, you should stay within Fortran 77 with common extensions like END DO. Currently, we want all sources to be compilable with the f2c and g77 compilers, without special flags if possible. This usually means that non-legacy compilers also accept the sources.

M4 guide

The M4 macro language is mainly used for Autoconf configuration files. You should follow normal M4 rules when contributing to these files. Some M4 files come from external source, namely the Autoconf archive.

Wiki guide

  • Please try to fit a new page into the already existing category tree.
  • If you have to create a new category, choose the name and place wisely (try to stay close to Wikipedia's categorization scheme).
  • Instead of creating a new page and redirect it to another for link aliases, choose piped links instead. See here for more infos about piped links.
  • The one and only root category is Category:Contents. All other categories have to point to it (over one or more subcategories).
  • Start a new page title with a capital letter, the rest is written in lower case (except for names, cities, etc.).