1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141
|
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
<head>
<title>GNU Octave: General Guidelines</title>
<meta name="description" content="GNU Octave: General Guidelines">
<meta name="keywords" content="GNU Octave: General Guidelines">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="index.html#Top" rel="start" title="Top">
<link href="Concept-Index.html#Concept-Index" rel="index" title="Concept Index">
<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
<link href="Contributing-Guidelines.html#Contributing-Guidelines" rel="up" title="Contributing Guidelines">
<link href="Octave-Sources-_0028m_002dfiles_0029.html#Octave-Sources-_0028m_002dfiles_0029" rel="next" title="Octave Sources (m-files)">
<link href="Basics-of-Generating-a-Changeset.html#Basics-of-Generating-a-Changeset" rel="prev" title="Basics of Generating a Changeset">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.indentedblock {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}
div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
div.smalllisp {margin-left: 3.2em}
kbd {font-style:oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
pre.smalldisplay {font-family: inherit; font-size: smaller}
pre.smallexample {font-size: smaller}
pre.smallformat {font-family: inherit; font-size: smaller}
pre.smalllisp {font-size: smaller}
span.nocodebreak {white-space:nowrap}
span.nolinebreak {white-space:nowrap}
span.roman {font-family:serif; font-weight:normal}
span.sansserif {font-family:sans-serif; font-weight:normal}
ul.no-bullet {list-style: none}
-->
</style>
</head>
<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
<a name="General-Guidelines"></a>
<div class="header">
<p>
Next: <a href="Octave-Sources-_0028m_002dfiles_0029.html#Octave-Sources-_0028m_002dfiles_0029" accesskey="n" rel="next">Octave Sources (m-files)</a>, Previous: <a href="Basics-of-Generating-a-Changeset.html#Basics-of-Generating-a-Changeset" accesskey="p" rel="prev">Basics of Generating a Changeset</a>, Up: <a href="Contributing-Guidelines.html#Contributing-Guidelines" accesskey="u" rel="up">Contributing Guidelines</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Concept-Index.html#Concept-Index" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
<a name="General-Guidelines-1"></a>
<h3 class="section">D.4 General Guidelines</h3>
<p>All Octave’s sources are distributed under the GNU General Public License
(GPL). Currently, Octave uses GPL version 3. For details about this
license, see <a href="http://www.gnu.org/licenses/gpl.html">http://www.gnu.org/licenses/gpl.html</a>. Therefore,
whenever you create a new source file, it should have the following
comment header (use appropriate year, name and comment marks):
</p>
<div class="example">
<pre class="example">## Copyright (C) 1996-2013 John W. Eaton <jwe@octave.org>
##
## This file is part of Octave.
##
## Octave is free software; you can redistribute it and/or modify it
## under the terms of the GNU General Public License as published by
## the Free Software Foundation; either version 3 of the License, or
## (at your option) any later version.
##
## Octave is distributed in the hope that it will be useful, but
## WITHOUT ANY WARRANTY; without even the implied warranty of
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
## GNU General Public License for more details.
##
## You should have received a copy of the GNU General Public License
## along with Octave; see the file COPYING. If not,
## see <http://www.gnu.org/licenses/>.
</pre></div>
<p>Always include commit messages in changesets. After making your source
changes, record and briefly describe the changes in your commit message.
You should have previously configured your <samp>.hgrc</samp> (or
<samp>Mercurial.ini</samp> on Windows) with your name and email, which will
be automatically added to your commit message. Your commit message
should have a brief one-line explanation of what the commit does. If you
are patching a bug, this one-line explanation should mention the bug
number at the end. If your change is small and only touches one file then
this is typically sufficient. If you are modifying several files, or
several parts of one file, you should enumerate your changes roughly
following the GNU coding standards for changelogs, as in the following
example:
</p>
<div class="example">
<pre class="example">look for methods before constructors
* symtab.cc (symbol_table::fcn_info::fcn_info_rep::find):
Look for class methods before constructors, contrary to MATLAB
documentation.
* test/ctor-vs-method: New directory of test classes.
* test/test_ctor_vs_method.m: New file.
* test/Makefile.am: Include ctor-vs-method/module.mk.
(FCN_FILES): Include test_ctor_vs_method.m in the list.
</pre></div>
<p>In this example, the names of the file changed is listed first, and in
parentheses the name of the function in that file that was modified. There
is no need to mention the function for m-files that only contain one function.
The commit message should describe what was changed, not why it was changed.
Any explanation for why a change is needed should appear as comments in the
code, particularly if there is something that might not be obvious to someone
reading it later.
</p>
<p>When submitting code which addresses a known bug on the Octave bug
tracker (<a href="http://bugs.octave.org">http://bugs.octave.org</a>), please add ’(bug #XXXXX)’ to the
first line of the commit messages. For example:
</p>
<div class="example">
<pre class="example">Fix bug for complex input for gradient (bug #34292).
</pre></div>
<p>The preferred comment mark for places that may need further attention is
<code>FIXME:</code>.
</p>
<hr>
<div class="header">
<p>
Next: <a href="Octave-Sources-_0028m_002dfiles_0029.html#Octave-Sources-_0028m_002dfiles_0029" accesskey="n" rel="next">Octave Sources (m-files)</a>, Previous: <a href="Basics-of-Generating-a-Changeset.html#Basics-of-Generating-a-Changeset" accesskey="p" rel="prev">Basics of Generating a Changeset</a>, Up: <a href="Contributing-Guidelines.html#Contributing-Guidelines" accesskey="u" rel="up">Contributing Guidelines</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Concept-Index.html#Concept-Index" title="Index" rel="index">Index</a>]</p>
</div>
</body>
</html>
|