Editing Contribute

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:
== Bug reports and patch submission ==
== Bug reports and patch submission ==


* 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.
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.


* The best way to contribute patches is to create a Mercurial changeset.
The best way to contribute patches is to create a Mercurial changeset.
** Learn how to use [[Mercurial]].
See the [[Mercurial]] page for instructions.
** [[Commit message guidelines]].


=== Contributor Agreement ===
== Building from development sources ==
 
By submitting patches to this project, you agree to the following conditions:
 
* Your contribution will be released under the terms of the GNU GPL, version 3 or any later version.
 
* Your contribution must be an independent work or derived from code that may be released under the terms of the GPL.  '''Under no circumstances may it be based on code from Matlab or other non-free code that you may have access to view'''.


* In the Octave source code, all files are marked with a copyright statement that says "Copyright (C) YYYY-YYYY The Octave Project Developers". This copyright notice is used to ease the burden of maintaining copyright information in the source files, not to diminish or remove credit for contributions. Detailed information about what changes have been made and who has made them is maintained in the revision history of the Octave sources.
Up to date build instructions are available from
[http://hg.savannah.gnu.org/hgweb/octave/file/tip/etc/HACKING /etc/HACKING]
in Octave's [[Mercurial]] development repository.


* If you wish, you will be credited as a contributor in the Octave documentation.
Distribution specific instructions are kept on the wiki:
 
== Building from development sources ==


:''See [[Building]].''
* [[Building for Linux systems]]
* [[Octave for Debian systems]]
* [[Octave for Arch Linux]]
* [[Building for Macintosh platform]]
* [[Building on Cygwin platform]]
* [[MXE]] build on Linux system


== Coding style ==
== Coding style ==
Line 27: Line 28:
Apart from C++ and Octave language (m-files), Octave's sources include
Apart from C++ and Octave language (m-files), Octave's sources include
files written in C, Fortran, M4, Perl, Unix shell, AWK, Texinfo, and
files written in C, Fortran, M4, Perl, Unix shell, AWK, Texinfo, and
TeX.  There are not many rules to follow when using these other
@TeX{}.  There are not many rules to follow when using these other
languages; some of them are summarized below.  In any case, the golden
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
rule is: if you modify a source file, try to follow any conventions you
Line 34: Line 35:
=== 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 style guide]].''
Octave's manual and functions help text is written in Texinfo.
See [[Help text]].


=== Fortran guide ===
=== Fortran guide ===


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


=== M4 guide ===
=== M4 guide ===
Line 59: Line 61:
[https://www.gnu.org/software/autoconf-archive/ Autoconf archive].
[https://www.gnu.org/software/autoconf-archive/ Autoconf archive].


=== Wiki guide ===
=== mediawiki 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.
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)

Template used on this page: