Mercurial > hg > octave-lyh
annotate doc/interpreter/contrib.txi @ 17489:0ad2f93fd83c
doc: Fix a typo in findobj docstring.
* scripts/plot/findobj.m: Use '3' instead of 'D' in findobj example of depth 3.
author | Rik <rik@octave.org> |
---|---|
date | Wed, 25 Sep 2013 08:13:30 -0700 |
parents | a4969508008e |
children | cdeadf62663f |
rev | line source |
---|---|
14150
87f06b9990bb
doc: improve documentation for building Octave
John W. Eaton <jwe@octave.org>
parents:
14138
diff
changeset
|
1 @c Copyright (C) 2012 John W. Eaton |
14138
72c96de7a403
maint: update copyright notices for 2012
John W. Eaton <jwe@octave.org>
parents:
14038
diff
changeset
|
2 @c Copyright (C) 2008-2012 Jaroslav Hajek |
8055
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
3 @c |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
4 @c This file is part of Octave. |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
5 @c |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
6 @c Octave is free software; you can redistribute it and/or modify it |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
7 @c under the terms of the GNU General Public License as published by the |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
8 @c Free Software Foundation; either version 3 of the License, or (at |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
9 @c your option) any later version. |
13166
d624b6f216ac
Update guidelines on how to write commit messages and changelogs
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
12559
diff
changeset
|
10 @c |
8055
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
11 @c Octave is distributed in the hope that it will be useful, but WITHOUT |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
12 @c ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
13 @c FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
14 @c for more details. |
13166
d624b6f216ac
Update guidelines on how to write commit messages and changelogs
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
12559
diff
changeset
|
15 @c |
8055
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
16 @c You should have received a copy of the GNU General Public License |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
17 @c along with Octave; see the file COPYING. If not, see |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
18 @c <http://www.gnu.org/licenses/>. |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
19 |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
20 @node Contributing Guidelines |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
21 @appendix Contributing Guidelines |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
22 @cindex coding standards |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
23 @cindex Octave development |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
24 |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
25 This chapter is dedicated to those who wish to contribute code to Octave. |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
26 |
13166
d624b6f216ac
Update guidelines on how to write commit messages and changelogs
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
12559
diff
changeset
|
27 @menu |
9032
349616d9c38e
Cleanup top-level documentation menu in octave.texi
Rik <rdrider0-list@yahoo.com>
parents:
8920
diff
changeset
|
28 * How to Contribute:: |
14150
87f06b9990bb
doc: improve documentation for building Octave
John W. Eaton <jwe@octave.org>
parents:
14138
diff
changeset
|
29 * Building the Development Sources:: |
87f06b9990bb
doc: improve documentation for building Octave
John W. Eaton <jwe@octave.org>
parents:
14138
diff
changeset
|
30 * Basics of Generating a Changeset:: |
9032
349616d9c38e
Cleanup top-level documentation menu in octave.texi
Rik <rdrider0-list@yahoo.com>
parents:
8920
diff
changeset
|
31 * General Guidelines:: |
8055
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
32 * Octave Sources (m-files):: |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
33 * C++ Sources:: |
10599
d0e0bb2ebebb
Remove tabs in .txi files causing problems with pdf formatting.
Rik <octave@nomad.inbox5.com>
parents:
9322
diff
changeset
|
34 * Other Sources:: |
8055
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
35 @end menu |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
36 |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
37 @node How to Contribute |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
38 @section How to Contribute |
11195 | 39 The mailing list for Octave development discussion and sending |
40 contributions is @email{maintainers@@octave.org}. This concerns the | |
41 development of Octave core, i.e., code that goes to Octave directly. | |
42 You may consider developing and publishing a package instead; a great | |
43 place for this is the allied Octave-Forge project | |
16791
acd6a21259a9
doc: Use the serial comma in Contributors chapter.
Rik <rik@octave.org>
parents:
16666
diff
changeset
|
44 (@url{http://octave.sourceforge.net}). Note that the Octave core project is |
8055
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
45 inherently more conservative and follows narrower rules. |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
46 |
14150
87f06b9990bb
doc: improve documentation for building Octave
John W. Eaton <jwe@octave.org>
parents:
14138
diff
changeset
|
47 @node Building the Development Sources |
87f06b9990bb
doc: improve documentation for building Octave
John W. Eaton <jwe@octave.org>
parents:
14138
diff
changeset
|
48 @section Building the Development Sources |
87f06b9990bb
doc: improve documentation for building Octave
John W. Eaton <jwe@octave.org>
parents:
14138
diff
changeset
|
49 |
16665
d68e72ee28bf
remove instructions for building dev sources from manual
John W. Eaton <jwe@octave.org>
parents:
16601
diff
changeset
|
50 The directions for building from the Development sources change from |
16666
af7287d567dc
minor change to wording for previous change
John W. Eaton <jwe@octave.org>
parents:
16665
diff
changeset
|
51 time to time, so you should read the resources for developers on the web |
af7287d567dc
minor change to wording for previous change
John W. Eaton <jwe@octave.org>
parents:
16665
diff
changeset
|
52 or in the development sources archive. Start here: |
af7287d567dc
minor change to wording for previous change
John W. Eaton <jwe@octave.org>
parents:
16665
diff
changeset
|
53 @url{http://www.octave.org/get-involved.html}. |
14150
87f06b9990bb
doc: improve documentation for building Octave
John W. Eaton <jwe@octave.org>
parents:
14138
diff
changeset
|
54 |
87f06b9990bb
doc: improve documentation for building Octave
John W. Eaton <jwe@octave.org>
parents:
14138
diff
changeset
|
55 @node Basics of Generating a Changeset |
87f06b9990bb
doc: improve documentation for building Octave
John W. Eaton <jwe@octave.org>
parents:
14138
diff
changeset
|
56 @section Basics of Generating a Changeset |
87f06b9990bb
doc: improve documentation for building Octave
John W. Eaton <jwe@octave.org>
parents:
14138
diff
changeset
|
57 |
11195 | 58 The preferable form of contribution is creating a Mercurial changeset |
16792
b157ba28f123
doc: Use Texinfo @url command consistently throughout documentation.
Rik <rik@octave.org>
parents:
16791
diff
changeset
|
59 and submit it to the @url{http://savannah.gnu.org/bugs/?group=octave, bug} or |
b157ba28f123
doc: Use Texinfo @url command consistently throughout documentation.
Rik <rik@octave.org>
parents:
16791
diff
changeset
|
60 @url{http://savannah.gnu.org/patch/?func=additem&group=octave, patch} |
14883
f20312fc9046
doc: recommend to use bug tracker rather than maintainers mailing list.
Carnë Draug <carandraug+dev@gmail.com>
parents:
14856
diff
changeset
|
61 trackers@footnote{Please use the patch tracker only for patches which add new |
f20312fc9046
doc: recommend to use bug tracker rather than maintainers mailing list.
Carnë Draug <carandraug+dev@gmail.com>
parents:
14856
diff
changeset
|
62 features. If you have a patch to submit that fixes a bug, you should use the |
f20312fc9046
doc: recommend to use bug tracker rather than maintainers mailing list.
Carnë Draug <carandraug+dev@gmail.com>
parents:
14856
diff
changeset
|
63 bug tracker instead.}. |
11195 | 64 Mercurial is the source code management system currently used to develop |
65 Octave. Other forms of contributions (e.g., simple diff patches) are | |
66 also acceptable, but they slow down the review process. If you want to | |
67 make more contributions, you should really get familiar with Mercurial. | |
68 A good place to start is | |
69 @url{http://www.selenic.com/mercurial/wiki/index.cgi/Tutorial}. There | |
70 you will also find help how to install Mercurial. | |
8055
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
71 |
8200
837487bd3450
help new contributors with mercurial
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
8177
diff
changeset
|
72 A simple contribution sequence could look like this: |
10828
322f43e0e170
Grammarcheck .txi documentation files.
Rik <octave@nomad.inbox5.com>
parents:
10791
diff
changeset
|
73 |
8055
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
74 @example |
9081
c79cf77061b7
Cleanup documentation files contrib.texi, bugs.texi, install.texi, emacs.texi
Rik <rdrider0-list@yahoo.com>
parents:
9032
diff
changeset
|
75 @group |
8055
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
76 hg clone http://www.octave.org/hg/octave |
13166
d624b6f216ac
Update guidelines on how to write commit messages and changelogs
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
12559
diff
changeset
|
77 # make a local copy of the octave |
8200
837487bd3450
help new contributors with mercurial
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
8177
diff
changeset
|
78 # source repository |
8055
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
79 cd octave |
9081
c79cf77061b7
Cleanup documentation files contrib.texi, bugs.texi, install.texi, emacs.texi
Rik <rdrider0-list@yahoo.com>
parents:
9032
diff
changeset
|
80 # change some sources@dots{} |
8055
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
81 hg commit -m "make Octave the coolest software ever" |
8200
837487bd3450
help new contributors with mercurial
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
8177
diff
changeset
|
82 # commit the changeset into your |
837487bd3450
help new contributors with mercurial
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
8177
diff
changeset
|
83 # local repository |
8177
65c4ac814082
hg syntax bug in mercurial example
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
8055
diff
changeset
|
84 hg export -o ../cool.diff tip |
8200
837487bd3450
help new contributors with mercurial
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
8177
diff
changeset
|
85 # export the changeset to a diff |
837487bd3450
help new contributors with mercurial
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
8177
diff
changeset
|
86 # file |
14883
f20312fc9046
doc: recommend to use bug tracker rather than maintainers mailing list.
Carnë Draug <carandraug+dev@gmail.com>
parents:
14856
diff
changeset
|
87 # attach ../cool.diff to your bug report |
9081
c79cf77061b7
Cleanup documentation files contrib.texi, bugs.texi, install.texi, emacs.texi
Rik <rdrider0-list@yahoo.com>
parents:
9032
diff
changeset
|
88 @end group |
8055
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
89 @end example |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
90 |
11195 | 91 You may want to get familiar with Mercurial queues to manage your |
16816
12005245b645
doc: Periodic grammarcheck of documentation.
Rik <rik@octave.org>
parents:
16797
diff
changeset
|
92 changesets. For working with queues you have to activate the extension |
16826
a4969508008e
doc: Periodic spellcheck of the documentation.
Rik <rik@octave.org>
parents:
16816
diff
changeset
|
93 @nospell{mq} with the following entry in Mercurial's configuration file |
a4969508008e
doc: Periodic spellcheck of the documentation.
Rik <rik@octave.org>
parents:
16816
diff
changeset
|
94 @file{.hgrc} (or @file{Mercurial.ini} on Windows): |
16797
aac60c9bfc77
add Jordi's tips on hg extensions to the manual
Torsten <ttl@justmail.de>
parents:
16792
diff
changeset
|
95 |
aac60c9bfc77
add Jordi's tips on hg extensions to the manual
Torsten <ttl@justmail.de>
parents:
16792
diff
changeset
|
96 @example |
16816
12005245b645
doc: Periodic grammarcheck of documentation.
Rik <rik@octave.org>
parents:
16797
diff
changeset
|
97 @group |
16797
aac60c9bfc77
add Jordi's tips on hg extensions to the manual
Torsten <ttl@justmail.de>
parents:
16792
diff
changeset
|
98 [extensions] |
aac60c9bfc77
add Jordi's tips on hg extensions to the manual
Torsten <ttl@justmail.de>
parents:
16792
diff
changeset
|
99 mq= |
16816
12005245b645
doc: Periodic grammarcheck of documentation.
Rik <rik@octave.org>
parents:
16797
diff
changeset
|
100 @end group |
16797
aac60c9bfc77
add Jordi's tips on hg extensions to the manual
Torsten <ttl@justmail.de>
parents:
16792
diff
changeset
|
101 @end example |
aac60c9bfc77
add Jordi's tips on hg extensions to the manual
Torsten <ttl@justmail.de>
parents:
16792
diff
changeset
|
102 |
aac60c9bfc77
add Jordi's tips on hg extensions to the manual
Torsten <ttl@justmail.de>
parents:
16792
diff
changeset
|
103 Here is a slightly more complex example using Mercurial |
12559
a12d7f53c2ab
Document recommended format for commit messages which reference the bug tracker.
Rik <octave@nomad.inbox5.com>
parents:
11576
diff
changeset
|
104 queues, where work on two unrelated changesets is done in parallel and |
14883
f20312fc9046
doc: recommend to use bug tracker rather than maintainers mailing list.
Carnë Draug <carandraug+dev@gmail.com>
parents:
14856
diff
changeset
|
105 one of the changesets is updated after discussion on the bug tracker: |
10828
322f43e0e170
Grammarcheck .txi documentation files.
Rik <octave@nomad.inbox5.com>
parents:
10791
diff
changeset
|
106 |
8200
837487bd3450
help new contributors with mercurial
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
8177
diff
changeset
|
107 @example |
13166
d624b6f216ac
Update guidelines on how to write commit messages and changelogs
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
12559
diff
changeset
|
108 hg qnew nasty_bug # create a new patch |
9081
c79cf77061b7
Cleanup documentation files contrib.texi, bugs.texi, install.texi, emacs.texi
Rik <rdrider0-list@yahoo.com>
parents:
9032
diff
changeset
|
109 # change sources@dots{} |
8200
837487bd3450
help new contributors with mercurial
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
8177
diff
changeset
|
110 hg qref # save the changes into the patch |
9081
c79cf77061b7
Cleanup documentation files contrib.texi, bugs.texi, install.texi, emacs.texi
Rik <rdrider0-list@yahoo.com>
parents:
9032
diff
changeset
|
111 # change even more@dots{} |
8200
837487bd3450
help new contributors with mercurial
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
8177
diff
changeset
|
112 hg qref -m "solution to nasty bug!" |
837487bd3450
help new contributors with mercurial
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
8177
diff
changeset
|
113 # save again with commit message |
837487bd3450
help new contributors with mercurial
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
8177
diff
changeset
|
114 hg export -o ../nasty.diff tip |
837487bd3450
help new contributors with mercurial
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
8177
diff
changeset
|
115 # export the patch |
14883
f20312fc9046
doc: recommend to use bug tracker rather than maintainers mailing list.
Carnë Draug <carandraug+dev@gmail.com>
parents:
14856
diff
changeset
|
116 # attach ../nasty.diff to your bug report |
8200
837487bd3450
help new contributors with mercurial
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
8177
diff
changeset
|
117 hg qpop # undo the application of the patch |
837487bd3450
help new contributors with mercurial
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
8177
diff
changeset
|
118 # and remove the changes from the |
837487bd3450
help new contributors with mercurial
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
8177
diff
changeset
|
119 # source tree |
13166
d624b6f216ac
Update guidelines on how to write commit messages and changelogs
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
12559
diff
changeset
|
120 hg qnew doc_improvements # create an unrelated patch |
9081
c79cf77061b7
Cleanup documentation files contrib.texi, bugs.texi, install.texi, emacs.texi
Rik <rdrider0-list@yahoo.com>
parents:
9032
diff
changeset
|
121 # change doc sources@dots{} |
8200
837487bd3450
help new contributors with mercurial
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
8177
diff
changeset
|
122 hg qref -m "could not find myfav.m in the doc" |
837487bd3450
help new contributors with mercurial
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
8177
diff
changeset
|
123 # save the changes into the patch |
837487bd3450
help new contributors with mercurial
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
8177
diff
changeset
|
124 hg export -o ../doc.diff tip |
837487bd3450
help new contributors with mercurial
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
8177
diff
changeset
|
125 # export the second patch |
14883
f20312fc9046
doc: recommend to use bug tracker rather than maintainers mailing list.
Carnë Draug <carandraug+dev@gmail.com>
parents:
14856
diff
changeset
|
126 # attach ../doc.diff to your bug report |
8200
837487bd3450
help new contributors with mercurial
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
8177
diff
changeset
|
127 hg qpop |
14883
f20312fc9046
doc: recommend to use bug tracker rather than maintainers mailing list.
Carnë Draug <carandraug+dev@gmail.com>
parents:
14856
diff
changeset
|
128 # discussion in the bug tracker @dots{} |
9081
c79cf77061b7
Cleanup documentation files contrib.texi, bugs.texi, install.texi, emacs.texi
Rik <rdrider0-list@yahoo.com>
parents:
9032
diff
changeset
|
129 hg qpush nasty_bug # apply the patch again |
c79cf77061b7
Cleanup documentation files contrib.texi, bugs.texi, install.texi, emacs.texi
Rik <rdrider0-list@yahoo.com>
parents:
9032
diff
changeset
|
130 # change sources yet again @dots{} |
8200
837487bd3450
help new contributors with mercurial
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
8177
diff
changeset
|
131 hg qref |
837487bd3450
help new contributors with mercurial
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
8177
diff
changeset
|
132 hg export -o ../nasty2.diff tip |
14883
f20312fc9046
doc: recommend to use bug tracker rather than maintainers mailing list.
Carnë Draug <carandraug+dev@gmail.com>
parents:
14856
diff
changeset
|
133 # attach ../nasty2.diff to your bug report |
8200
837487bd3450
help new contributors with mercurial
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
8177
diff
changeset
|
134 @end example |
837487bd3450
help new contributors with mercurial
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
8177
diff
changeset
|
135 |
16797
aac60c9bfc77
add Jordi's tips on hg extensions to the manual
Torsten <ttl@justmail.de>
parents:
16792
diff
changeset
|
136 Mercurial has a more useful extensions that really should be enabled. |
aac60c9bfc77
add Jordi's tips on hg extensions to the manual
Torsten <ttl@justmail.de>
parents:
16792
diff
changeset
|
137 They are not enabled by default due to a number of factors |
aac60c9bfc77
add Jordi's tips on hg extensions to the manual
Torsten <ttl@justmail.de>
parents:
16792
diff
changeset
|
138 (mostly because they don't work in all terminal types). |
aac60c9bfc77
add Jordi's tips on hg extensions to the manual
Torsten <ttl@justmail.de>
parents:
16792
diff
changeset
|
139 |
aac60c9bfc77
add Jordi's tips on hg extensions to the manual
Torsten <ttl@justmail.de>
parents:
16792
diff
changeset
|
140 The following entries in the @file{.hgrc} are recommended |
aac60c9bfc77
add Jordi's tips on hg extensions to the manual
Torsten <ttl@justmail.de>
parents:
16792
diff
changeset
|
141 |
aac60c9bfc77
add Jordi's tips on hg extensions to the manual
Torsten <ttl@justmail.de>
parents:
16792
diff
changeset
|
142 @example |
16816
12005245b645
doc: Periodic grammarcheck of documentation.
Rik <rik@octave.org>
parents:
16797
diff
changeset
|
143 @group |
16797
aac60c9bfc77
add Jordi's tips on hg extensions to the manual
Torsten <ttl@justmail.de>
parents:
16792
diff
changeset
|
144 [extensions] |
aac60c9bfc77
add Jordi's tips on hg extensions to the manual
Torsten <ttl@justmail.de>
parents:
16792
diff
changeset
|
145 graphlog= |
aac60c9bfc77
add Jordi's tips on hg extensions to the manual
Torsten <ttl@justmail.de>
parents:
16792
diff
changeset
|
146 color= |
aac60c9bfc77
add Jordi's tips on hg extensions to the manual
Torsten <ttl@justmail.de>
parents:
16792
diff
changeset
|
147 progress= |
aac60c9bfc77
add Jordi's tips on hg extensions to the manual
Torsten <ttl@justmail.de>
parents:
16792
diff
changeset
|
148 pager= |
16816
12005245b645
doc: Periodic grammarcheck of documentation.
Rik <rik@octave.org>
parents:
16797
diff
changeset
|
149 @end group |
16797
aac60c9bfc77
add Jordi's tips on hg extensions to the manual
Torsten <ttl@justmail.de>
parents:
16792
diff
changeset
|
150 @end example |
aac60c9bfc77
add Jordi's tips on hg extensions to the manual
Torsten <ttl@justmail.de>
parents:
16792
diff
changeset
|
151 |
16826
a4969508008e
doc: Periodic spellcheck of the documentation.
Rik <rik@octave.org>
parents:
16816
diff
changeset
|
152 For the color extension, default color and formatting |
16797
aac60c9bfc77
add Jordi's tips on hg extensions to the manual
Torsten <ttl@justmail.de>
parents:
16792
diff
changeset
|
153 of @code{hg status} can be modified by |
aac60c9bfc77
add Jordi's tips on hg extensions to the manual
Torsten <ttl@justmail.de>
parents:
16792
diff
changeset
|
154 |
aac60c9bfc77
add Jordi's tips on hg extensions to the manual
Torsten <ttl@justmail.de>
parents:
16792
diff
changeset
|
155 @example |
16816
12005245b645
doc: Periodic grammarcheck of documentation.
Rik <rik@octave.org>
parents:
16797
diff
changeset
|
156 @group |
16797
aac60c9bfc77
add Jordi's tips on hg extensions to the manual
Torsten <ttl@justmail.de>
parents:
16792
diff
changeset
|
157 [color] |
aac60c9bfc77
add Jordi's tips on hg extensions to the manual
Torsten <ttl@justmail.de>
parents:
16792
diff
changeset
|
158 status.modified = magenta bold |
aac60c9bfc77
add Jordi's tips on hg extensions to the manual
Torsten <ttl@justmail.de>
parents:
16792
diff
changeset
|
159 status.added = green bold |
aac60c9bfc77
add Jordi's tips on hg extensions to the manual
Torsten <ttl@justmail.de>
parents:
16792
diff
changeset
|
160 status.removed = red bold |
aac60c9bfc77
add Jordi's tips on hg extensions to the manual
Torsten <ttl@justmail.de>
parents:
16792
diff
changeset
|
161 status.deleted = cyan bold |
aac60c9bfc77
add Jordi's tips on hg extensions to the manual
Torsten <ttl@justmail.de>
parents:
16792
diff
changeset
|
162 status.unknown = black bold |
aac60c9bfc77
add Jordi's tips on hg extensions to the manual
Torsten <ttl@justmail.de>
parents:
16792
diff
changeset
|
163 status.ignored = black bold |
16816
12005245b645
doc: Periodic grammarcheck of documentation.
Rik <rik@octave.org>
parents:
16797
diff
changeset
|
164 @end group |
16797
aac60c9bfc77
add Jordi's tips on hg extensions to the manual
Torsten <ttl@justmail.de>
parents:
16792
diff
changeset
|
165 @end example |
aac60c9bfc77
add Jordi's tips on hg extensions to the manual
Torsten <ttl@justmail.de>
parents:
16792
diff
changeset
|
166 |
aac60c9bfc77
add Jordi's tips on hg extensions to the manual
Torsten <ttl@justmail.de>
parents:
16792
diff
changeset
|
167 Sometimes a few further improvements for the pager extension are |
16816
12005245b645
doc: Periodic grammarcheck of documentation.
Rik <rik@octave.org>
parents:
16797
diff
changeset
|
168 necessary. The following options should not be enabled unless paging |
16797
aac60c9bfc77
add Jordi's tips on hg extensions to the manual
Torsten <ttl@justmail.de>
parents:
16792
diff
changeset
|
169 isn't working correctly: |
aac60c9bfc77
add Jordi's tips on hg extensions to the manual
Torsten <ttl@justmail.de>
parents:
16792
diff
changeset
|
170 |
aac60c9bfc77
add Jordi's tips on hg extensions to the manual
Torsten <ttl@justmail.de>
parents:
16792
diff
changeset
|
171 @example |
16816
12005245b645
doc: Periodic grammarcheck of documentation.
Rik <rik@octave.org>
parents:
16797
diff
changeset
|
172 @group |
16797
aac60c9bfc77
add Jordi's tips on hg extensions to the manual
Torsten <ttl@justmail.de>
parents:
16792
diff
changeset
|
173 [pager] |
aac60c9bfc77
add Jordi's tips on hg extensions to the manual
Torsten <ttl@justmail.de>
parents:
16792
diff
changeset
|
174 # Some options for the less pager, see less(1) for their meaning. |
aac60c9bfc77
add Jordi's tips on hg extensions to the manual
Torsten <ttl@justmail.de>
parents:
16792
diff
changeset
|
175 pager = LESS='FSRX' less |
aac60c9bfc77
add Jordi's tips on hg extensions to the manual
Torsten <ttl@justmail.de>
parents:
16792
diff
changeset
|
176 |
aac60c9bfc77
add Jordi's tips on hg extensions to the manual
Torsten <ttl@justmail.de>
parents:
16792
diff
changeset
|
177 # Some commands that aren't paged by default; also enable paging |
aac60c9bfc77
add Jordi's tips on hg extensions to the manual
Torsten <ttl@justmail.de>
parents:
16792
diff
changeset
|
178 # for them |
aac60c9bfc77
add Jordi's tips on hg extensions to the manual
Torsten <ttl@justmail.de>
parents:
16792
diff
changeset
|
179 attend = tags, help, annotate, cat, diff, export, status, \ |
aac60c9bfc77
add Jordi's tips on hg extensions to the manual
Torsten <ttl@justmail.de>
parents:
16792
diff
changeset
|
180 outgoing, incoming |
16816
12005245b645
doc: Periodic grammarcheck of documentation.
Rik <rik@octave.org>
parents:
16797
diff
changeset
|
181 @end group |
16797
aac60c9bfc77
add Jordi's tips on hg extensions to the manual
Torsten <ttl@justmail.de>
parents:
16792
diff
changeset
|
182 @end example |
aac60c9bfc77
add Jordi's tips on hg extensions to the manual
Torsten <ttl@justmail.de>
parents:
16792
diff
changeset
|
183 |
aac60c9bfc77
add Jordi's tips on hg extensions to the manual
Torsten <ttl@justmail.de>
parents:
16792
diff
changeset
|
184 Enabling the described extensions should immediately lead to a difference |
16826
a4969508008e
doc: Periodic spellcheck of the documentation.
Rik <rik@octave.org>
parents:
16816
diff
changeset
|
185 when using the command line version of @nospell{hg}. Of these options, the |
a4969508008e
doc: Periodic spellcheck of the documentation.
Rik <rik@octave.org>
parents:
16816
diff
changeset
|
186 only one that enables a new command is @nospell{graphlog}. It is recommanded |
a4969508008e
doc: Periodic spellcheck of the documentation.
Rik <rik@octave.org>
parents:
16816
diff
changeset
|
187 that you use the command @code{hg glog} instead of @code{hg log} for a better |
a4969508008e
doc: Periodic spellcheck of the documentation.
Rik <rik@octave.org>
parents:
16816
diff
changeset
|
188 feel what commits are being based on. |
16797
aac60c9bfc77
add Jordi's tips on hg extensions to the manual
Torsten <ttl@justmail.de>
parents:
16792
diff
changeset
|
189 |
8055
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
190 @node General Guidelines |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
191 @section General Guidelines |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
192 |
11195 | 193 All Octave's sources are distributed under the General Public License |
194 (GPL). Currently, Octave uses GPL version 3. For details about this | |
195 license, see @url{http://www.gnu.org/licenses/gpl.html}. Therefore, | |
196 whenever you create a new source file, it should have the following | |
197 comment header (use appropriate year, name and comment marks): | |
8055
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
198 |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
199 @example |
14138
72c96de7a403
maint: update copyright notices for 2012
John W. Eaton <jwe@octave.org>
parents:
14038
diff
changeset
|
200 ## Copyright (C) 1996-2012 John W. Eaton <jwe@@octave.org> |
8055
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
201 ## |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
202 ## This file is part of Octave. |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
203 ## |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
204 ## Octave is free software; you can redistribute it and/or |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
205 ## modify it under the terms of the GNU General Public |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
206 ## License as published by the Free Software Foundation; |
13166
d624b6f216ac
Update guidelines on how to write commit messages and changelogs
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
12559
diff
changeset
|
207 ## either version 3 of the License, or (at your option) any |
8055
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
208 ## later version. |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
209 ## |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
210 ## Octave is distributed in the hope that it will be useful, |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
211 ## but WITHOUT ANY WARRANTY; without even the implied |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
212 ## warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
213 ## PURPOSE. See the GNU General Public License for more |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
214 ## details. |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
215 ## |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
216 ## You should have received a copy of the GNU General Public |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
217 ## License along with Octave; see the file COPYING. If not, |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
218 ## see <http://www.gnu.org/licenses/>. |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
219 @end example |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
220 |
13168
470ef1a5d66e
doc: tweak log guidelines in contrib.txi
John W. Eaton <jwe@octave.org>
parents:
13166
diff
changeset
|
221 Always include commit messages in changesets. After making your source |
13166
d624b6f216ac
Update guidelines on how to write commit messages and changelogs
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
12559
diff
changeset
|
222 changes, record and briefly describe the changes in your commit message. |
d624b6f216ac
Update guidelines on how to write commit messages and changelogs
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
12559
diff
changeset
|
223 You should have previously configured your @file{.hgrc} (or |
d624b6f216ac
Update guidelines on how to write commit messages and changelogs
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
12559
diff
changeset
|
224 @file{Mercurial.ini} on Windows) with your name and email, which will |
13168
470ef1a5d66e
doc: tweak log guidelines in contrib.txi
John W. Eaton <jwe@octave.org>
parents:
13166
diff
changeset
|
225 get automatically added to your commit message. Your commit message |
470ef1a5d66e
doc: tweak log guidelines in contrib.txi
John W. Eaton <jwe@octave.org>
parents:
13166
diff
changeset
|
226 should have a brief one-line explanation of what the commit does. If you |
13166
d624b6f216ac
Update guidelines on how to write commit messages and changelogs
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
12559
diff
changeset
|
227 are patching a bug, this one-line explanation should mention the bug |
13168
470ef1a5d66e
doc: tweak log guidelines in contrib.txi
John W. Eaton <jwe@octave.org>
parents:
13166
diff
changeset
|
228 number at the end. If your change is small and only touches one file, |
470ef1a5d66e
doc: tweak log guidelines in contrib.txi
John W. Eaton <jwe@octave.org>
parents:
13166
diff
changeset
|
229 this is typically sufficient. If you are modifying several files or |
13166
d624b6f216ac
Update guidelines on how to write commit messages and changelogs
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
12559
diff
changeset
|
230 several parts of one file, you should enumerate your changes roughly |
d624b6f216ac
Update guidelines on how to write commit messages and changelogs
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
12559
diff
changeset
|
231 following the GNU coding standards on changelogs, like the following |
d624b6f216ac
Update guidelines on how to write commit messages and changelogs
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
12559
diff
changeset
|
232 example: |
8055
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
233 |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
234 @example |
9081
c79cf77061b7
Cleanup documentation files contrib.texi, bugs.texi, install.texi, emacs.texi
Rik <rdrider0-list@yahoo.com>
parents:
9032
diff
changeset
|
235 @group |
13168
470ef1a5d66e
doc: tweak log guidelines in contrib.txi
John W. Eaton <jwe@octave.org>
parents:
13166
diff
changeset
|
236 look for methods before constructors |
8055
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
237 |
13168
470ef1a5d66e
doc: tweak log guidelines in contrib.txi
John W. Eaton <jwe@octave.org>
parents:
13166
diff
changeset
|
238 * symtab.cc (symbol_table::fcn_info::fcn_info_rep::find): |
14038
b0cdd60db5e5
doc: Grammarcheck documentation ahead of 3.6.0 release.
Rik <octave@nomad.inbox5.com>
parents:
13168
diff
changeset
|
239 Look for class methods before constructors, contrary to @sc{matlab} |
13168
470ef1a5d66e
doc: tweak log guidelines in contrib.txi
John W. Eaton <jwe@octave.org>
parents:
13166
diff
changeset
|
240 documentation. |
13166
d624b6f216ac
Update guidelines on how to write commit messages and changelogs
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
12559
diff
changeset
|
241 |
13168
470ef1a5d66e
doc: tweak log guidelines in contrib.txi
John W. Eaton <jwe@octave.org>
parents:
13166
diff
changeset
|
242 * test/ctor-vs-method: New directory of test classes. |
470ef1a5d66e
doc: tweak log guidelines in contrib.txi
John W. Eaton <jwe@octave.org>
parents:
13166
diff
changeset
|
243 * test/test_ctor_vs_method.m: New file. |
470ef1a5d66e
doc: tweak log guidelines in contrib.txi
John W. Eaton <jwe@octave.org>
parents:
13166
diff
changeset
|
244 * test/Makefile.am: Include ctor-vs-method/module.mk. |
470ef1a5d66e
doc: tweak log guidelines in contrib.txi
John W. Eaton <jwe@octave.org>
parents:
13166
diff
changeset
|
245 (FCN_FILES): Include test_ctor_vs_method.m in the list. |
9081
c79cf77061b7
Cleanup documentation files contrib.texi, bugs.texi, install.texi, emacs.texi
Rik <rdrider0-list@yahoo.com>
parents:
9032
diff
changeset
|
246 @end group |
8055
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
247 @end example |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
248 |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
249 @noindent |
13166
d624b6f216ac
Update guidelines on how to write commit messages and changelogs
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
12559
diff
changeset
|
250 In this example, the names of files is mentioned, and in parentheses the |
13168
470ef1a5d66e
doc: tweak log guidelines in contrib.txi
John W. Eaton <jwe@octave.org>
parents:
13166
diff
changeset
|
251 name of the function in that file that was modified. There is no need to |
470ef1a5d66e
doc: tweak log guidelines in contrib.txi
John W. Eaton <jwe@octave.org>
parents:
13166
diff
changeset
|
252 mention the function for m-files that only contain one function. The |
470ef1a5d66e
doc: tweak log guidelines in contrib.txi
John W. Eaton <jwe@octave.org>
parents:
13166
diff
changeset
|
253 commit message should describe what is changed, not why. Any explanation |
13166
d624b6f216ac
Update guidelines on how to write commit messages and changelogs
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
12559
diff
changeset
|
254 of why a change is needed should appear as comments in the code, |
d624b6f216ac
Update guidelines on how to write commit messages and changelogs
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
12559
diff
changeset
|
255 particularly if there is something that might not be obvious to someone |
d624b6f216ac
Update guidelines on how to write commit messages and changelogs
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
12559
diff
changeset
|
256 reading it later. |
8055
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
257 |
13166
d624b6f216ac
Update guidelines on how to write commit messages and changelogs
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
12559
diff
changeset
|
258 When submitting code which addresses a known bug on the Octave bug |
d624b6f216ac
Update guidelines on how to write commit messages and changelogs
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
12559
diff
changeset
|
259 tracker (@url{http://bugs.octave.org}), please add '(bug #XXXXX)' to the |
13168
470ef1a5d66e
doc: tweak log guidelines in contrib.txi
John W. Eaton <jwe@octave.org>
parents:
13166
diff
changeset
|
260 first line of the commit messages. For example: |
12559
a12d7f53c2ab
Document recommended format for commit messages which reference the bug tracker.
Rik <octave@nomad.inbox5.com>
parents:
11576
diff
changeset
|
261 |
a12d7f53c2ab
Document recommended format for commit messages which reference the bug tracker.
Rik <octave@nomad.inbox5.com>
parents:
11576
diff
changeset
|
262 @example |
a12d7f53c2ab
Document recommended format for commit messages which reference the bug tracker.
Rik <octave@nomad.inbox5.com>
parents:
11576
diff
changeset
|
263 @group |
13168
470ef1a5d66e
doc: tweak log guidelines in contrib.txi
John W. Eaton <jwe@octave.org>
parents:
13166
diff
changeset
|
264 Fix bug for complex input for gradient (bug #34292). |
12559
a12d7f53c2ab
Document recommended format for commit messages which reference the bug tracker.
Rik <octave@nomad.inbox5.com>
parents:
11576
diff
changeset
|
265 @end group |
a12d7f53c2ab
Document recommended format for commit messages which reference the bug tracker.
Rik <octave@nomad.inbox5.com>
parents:
11576
diff
changeset
|
266 @end example |
a12d7f53c2ab
Document recommended format for commit messages which reference the bug tracker.
Rik <octave@nomad.inbox5.com>
parents:
11576
diff
changeset
|
267 |
11195 | 268 The preferred comment mark for places that may need further attention is |
269 FIXME. | |
8202
cf59d542f33e
replace all TODOs and XXXs with FIXMEs
Jaroslav Hajek <highegg@gmail.com>
parents:
8200
diff
changeset
|
270 |
8055
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
271 @node Octave Sources (m-files) |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
272 @section Octave Sources (m-files) |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
273 |
11195 | 274 Don't use tabs. Tabs cause trouble. If you are used to them, set up |
275 your editor so that it converts tabs to spaces. Indent the bodies of | |
276 the statement blocks. Recommended indent is 2 spaces. When calling | |
277 functions, put spaces after commas and before the calling parentheses, | |
278 like this: | |
8055
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
279 |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
280 @example |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
281 x = max (sin (y+3), 2); |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
282 @end example |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
283 |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
284 @noindent |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
285 An exception are matrix and vector constructors: |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
286 |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
287 @example |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
288 [sin(x), cos(x)] |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
289 @end example |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
290 |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
291 @noindent |
11195 | 292 Here, putting spaces after @code{sin}, @code{cos} would result in a |
293 parse error. In indexing expression, do not put a space after the | |
294 identifier (this differentiates indexing and function calls nicely). | |
295 The space after comma is not necessary if index expressions are simple, | |
296 i.e., you may write | |
10828
322f43e0e170
Grammarcheck .txi documentation files.
Rik <octave@nomad.inbox5.com>
parents:
10791
diff
changeset
|
297 |
8055
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
298 @example |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
299 A(:,i,j) |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
300 @end example |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
301 |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
302 @noindent |
13166
d624b6f216ac
Update guidelines on how to write commit messages and changelogs
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
12559
diff
changeset
|
303 but |
8055
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
304 |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
305 @example |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
306 A([1:i-1;i+1:n], XI(:,2:n-1)) |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
307 @end example |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
308 |
11195 | 309 Use lowercase names if possible. Uppercase is acceptable for variable |
310 names consisting of 1-2 letters. Do not use mixed case names. Function | |
311 names must be lowercase. Function names are global, so choose them | |
312 wisely. | |
8055
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
313 |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
314 Always use a specific end-of-block statement (like @code{endif}, |
11195 | 315 @code{endswitch}) rather than generic @code{end}. |
316 | |
317 Enclose the @code{if}, @code{while}, @code{until} and @code{switch} | |
13166
d624b6f216ac
Update guidelines on how to write commit messages and changelogs
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
12559
diff
changeset
|
318 conditions in parentheses, like in C: |
8055
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
319 |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
320 @example |
9081
c79cf77061b7
Cleanup documentation files contrib.texi, bugs.texi, install.texi, emacs.texi
Rik <rdrider0-list@yahoo.com>
parents:
9032
diff
changeset
|
321 @group |
8055
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
322 if (isvector (a)) |
14856
c3fd61c59e9c
maint: Use Octave coding conventions for cuddling parentheses in doc directory
Rik <octave@nomad.inbox5.com>
parents:
14853
diff
changeset
|
323 s = sum (a); |
8055
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
324 endif |
9081
c79cf77061b7
Cleanup documentation files contrib.texi, bugs.texi, install.texi, emacs.texi
Rik <rdrider0-list@yahoo.com>
parents:
9032
diff
changeset
|
325 @end group |
8055
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
326 @end example |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
327 |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
328 @noindent |
11195 | 329 Do not do this, however, with the iteration counter portion of a |
330 @code{for} statement. Write: | |
8055
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
331 |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
332 @example |
9081
c79cf77061b7
Cleanup documentation files contrib.texi, bugs.texi, install.texi, emacs.texi
Rik <rdrider0-list@yahoo.com>
parents:
9032
diff
changeset
|
333 @group |
8055
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
334 for i = 1:n |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
335 b(i) = sum (a(:,i)); |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
336 endfor |
9081
c79cf77061b7
Cleanup documentation files contrib.texi, bugs.texi, install.texi, emacs.texi
Rik <rdrider0-list@yahoo.com>
parents:
9032
diff
changeset
|
337 @end group |
8055
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
338 @end example |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
339 |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
340 @node C++ Sources |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
341 @section C++ Sources |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
342 |
11195 | 343 Don't use tabs. Tabs cause trouble. If you are used to them, set up |
344 your editor so that it converts tabs to spaces. Format function headers | |
345 like this: | |
8055
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
346 |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
347 @example |
9081
c79cf77061b7
Cleanup documentation files contrib.texi, bugs.texi, install.texi, emacs.texi
Rik <rdrider0-list@yahoo.com>
parents:
9032
diff
changeset
|
348 @group |
8055
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
349 static bool |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
350 matches_patterns (const string_vector& patterns, int pat_idx, |
10599
d0e0bb2ebebb
Remove tabs in .txi files causing problems with pdf formatting.
Rik <octave@nomad.inbox5.com>
parents:
9322
diff
changeset
|
351 int num_pat, const std::string& name) |
9081
c79cf77061b7
Cleanup documentation files contrib.texi, bugs.texi, install.texi, emacs.texi
Rik <rdrider0-list@yahoo.com>
parents:
9032
diff
changeset
|
352 @end group |
8055
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
353 @end example |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
354 |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
355 @noindent |
11195 | 356 The function name should start in column 1, and multi-line argument |
357 lists should be aligned on the first char after the open parenthesis. | |
358 You should put a space after the left open parenthesis and after commas, | |
359 for both function definitions and function calls. | |
8055
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
360 |
11195 | 361 Recommended indent is 2 spaces. When indenting, indent the statement |
13168
470ef1a5d66e
doc: tweak log guidelines in contrib.txi
John W. Eaton <jwe@octave.org>
parents:
13166
diff
changeset
|
362 after control structures (like @code{if}, @code{while}, etc.). If there |
11195 | 363 is a compound statement, indent @emph{both} the curly braces and the |
364 body of the statement (so that the body gets indented by @emph{two} | |
365 indents). Example: | |
8055
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
366 |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
367 @example |
9081
c79cf77061b7
Cleanup documentation files contrib.texi, bugs.texi, install.texi, emacs.texi
Rik <rdrider0-list@yahoo.com>
parents:
9032
diff
changeset
|
368 @group |
8055
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
369 if (have_args) |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
370 @{ |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
371 idx.push_back (first_args); |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
372 have_args = false; |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
373 @} |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
374 else |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
375 idx.push_back (make_value_list (*p_args, *p_arg_nm, &tmp)); |
9081
c79cf77061b7
Cleanup documentation files contrib.texi, bugs.texi, install.texi, emacs.texi
Rik <rdrider0-list@yahoo.com>
parents:
9032
diff
changeset
|
376 @end group |
8055
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
377 @end example |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
378 |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
379 @noindent |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
380 If you have nested @code{if} statements, use extra braces for extra |
13166
d624b6f216ac
Update guidelines on how to write commit messages and changelogs
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
12559
diff
changeset
|
381 clarification. |
8055
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
382 |
11195 | 383 Split long expressions in such a way that a continuation line starts |
384 with an operator rather than identifier. If the split occurs inside | |
385 braces, continuation should be aligned with the first char after the | |
386 innermost braces enclosing the split. Example: | |
8055
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
387 |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
388 @example |
9081
c79cf77061b7
Cleanup documentation files contrib.texi, bugs.texi, install.texi, emacs.texi
Rik <rdrider0-list@yahoo.com>
parents:
9032
diff
changeset
|
389 @group |
8055
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
390 SVD::type type = ((nargout == 0 || nargout == 1) |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
391 ? SVD::sigma_only |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
392 : (nargin == 2) ? SVD::economy : SVD::std); |
9081
c79cf77061b7
Cleanup documentation files contrib.texi, bugs.texi, install.texi, emacs.texi
Rik <rdrider0-list@yahoo.com>
parents:
9032
diff
changeset
|
393 @end group |
8055
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
394 @end example |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
395 |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
396 @noindent |
11195 | 397 Consider putting extra braces around a multiline expression to make it |
398 more readable, even if they are not necessary. Also, do not hesitate to | |
399 put extra braces anywhere if it improves clarity. | |
8055
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
400 |
11195 | 401 Declare variables just before they're needed. Use local variables of |
402 blocks---it helps optimization. Don't write multi-line variable | |
403 declaration with a single type specification and multiple variables. If | |
404 the variables don't fit on single line, repeat the type specification. | |
405 Example: | |
8055
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
406 |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
407 @example |
9081
c79cf77061b7
Cleanup documentation files contrib.texi, bugs.texi, install.texi, emacs.texi
Rik <rdrider0-list@yahoo.com>
parents:
9032
diff
changeset
|
408 @group |
8055
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
409 octave_value retval; |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
410 |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
411 octave_idx_type nr = b.rows (); |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
412 octave_idx_type nc = b.cols (); |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
413 |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
414 double d1, d2; |
9081
c79cf77061b7
Cleanup documentation files contrib.texi, bugs.texi, install.texi, emacs.texi
Rik <rdrider0-list@yahoo.com>
parents:
9032
diff
changeset
|
415 @end group |
8055
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
416 @end example |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
417 |
11195 | 418 Use lowercase names if possible. Uppercase is acceptable for variable |
419 names consisting of 1-2 letters. Do not use mixed case names. | |
8055
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
420 |
11195 | 421 Use Octave's types and classes if possible. Otherwise, use the C++ |
422 standard library. Use of STL containers and algorithms is encouraged. | |
423 Use templates wisely to reduce code duplication. Avoid comma | |
424 expressions, labels and gotos, and explicit typecasts. If you need to | |
425 typecast, use the modern C++ casting operators. In functions, minimize | |
426 the number of @code{return} statements---use nested @code{if} statements | |
427 if possible. | |
8055
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
428 |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
429 @node Other Sources |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
430 @section Other Sources |
11195 | 431 Apart from C++ and Octave language (m-files), Octave's sources include |
16791
acd6a21259a9
doc: Use the serial comma in Contributors chapter.
Rik <rik@octave.org>
parents:
16666
diff
changeset
|
432 files written in C, Fortran, M4, Perl, Unix shell, AWK, Texinfo, and |
11195 | 433 @TeX{}. There are not many rules to follow when using these other |
434 languages; some of them are summarized below. In any case, the golden | |
435 rule is: if you modify a source file, try to follow any conventions you | |
436 can detect in the file or other similar files. | |
8055
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
437 |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
438 For C you should obviously follow all C++ rules that can apply. |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
439 |
11195 | 440 If you modify a Fortran file, you should stay within Fortran 77 with |
441 common extensions like @code{END DO}. Currently, we want all sources to | |
442 be compilable with the f2c and g77 compilers, without special flags if | |
443 possible. This usually means that non-legacy compilers also accept the | |
444 sources. | |
8055
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
445 |
11195 | 446 The M4 macro language is mainly used for Autoconf configuration files. |
447 You should follow normal M4 rules when contributing to these files. | |
448 Some M4 files come from external source, namely the Autoconf archive | |
8348
d95c4e31bb2d
recommend limited line width in code examples
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
8204
diff
changeset
|
449 @url{http://autoconf-archive.cryp.to}. |
8055
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
450 |
11195 | 451 If you give a code example in the documentation written in Texinfo with |
452 the @code{@@example} environment, you should be aware that the text | |
453 within such an environment will not be wrapped. It is recommended that | |
454 you keep the lines short enough to fit on pages in the generated pdf or | |
455 ps documents. Here is a ruler (in an @code{@@example} environment) for | |
456 finding the appropriate line width: | |
8348
d95c4e31bb2d
recommend limited line width in code examples
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
8204
diff
changeset
|
457 |
d95c4e31bb2d
recommend limited line width in code examples
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
8204
diff
changeset
|
458 @example |
8516 | 459 @group |
460 1 2 3 4 5 6 | |
461 123456789012345678901234567890123456789012345678901234567890 | |
462 @end group | |
8348
d95c4e31bb2d
recommend limited line width in code examples
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
8204
diff
changeset
|
463 @end example |