File: How-to-Contribute.html

package info (click to toggle)
octave3.2 3.2.4-8
  • links: PTS, VCS
  • area: main
  • in suites: squeeze
  • size: 62,936 kB
  • ctags: 37,353
  • sloc: cpp: 219,497; fortran: 116,336; ansic: 10,264; sh: 5,508; makefile: 4,245; lex: 3,573; yacc: 3,062; objc: 2,042; lisp: 1,692; awk: 860; perl: 844
file content (97 lines) | stat: -rw-r--r-- 4,806 bytes parent folder | download
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
<html lang="en">
<head>
<title>How to Contribute - Untitled</title>
<meta http-equiv="Content-Type" content="text/html">
<meta name="description" content="Untitled">
<meta name="generator" content="makeinfo 4.11">
<link title="Top" rel="start" href="index.html#Top">
<link rel="up" href="Contributing-Guidelines.html#Contributing-Guidelines" title="Contributing Guidelines">
<link rel="next" href="General-Guidelines.html#General-Guidelines" title="General Guidelines">
<link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage">
<meta http-equiv="Content-Style-Type" content="text/css">
<style type="text/css"><!--
  pre.display { font-family:inherit }
  pre.format  { font-family:inherit }
  pre.smalldisplay { font-family:inherit; font-size:smaller }
  pre.smallformat  { font-family:inherit; font-size:smaller }
  pre.smallexample { font-size:smaller }
  pre.smalllisp    { font-size:smaller }
  span.sc    { font-variant:small-caps }
  span.roman { font-family:serif; font-weight:normal; } 
  span.sansserif { font-family:sans-serif; font-weight:normal; } 
--></style>
</head>
<body>
<div class="node">
<p>
<a name="How-to-Contribute"></a>
Next:&nbsp;<a rel="next" accesskey="n" href="General-Guidelines.html#General-Guidelines">General Guidelines</a>,
Up:&nbsp;<a rel="up" accesskey="u" href="Contributing-Guidelines.html#Contributing-Guidelines">Contributing Guidelines</a>
<hr>
</div>

<h3 class="section">D.1 How to Contribute</h3>

<p>The mailing list for Octave development discussion and sending contributions is
<a href="mailto:maintainers@octave.org">maintainers@octave.org</a>.  This concerns the development of Octave core,
i.e., code that goes to Octave directly.  You may consider developing and
publishing a package instead; a great place for this is the allied Octave-Forge
project (<a href="http://octave.sf.net">http://octave.sf.net</a>).  Note that the Octave project is
inherently more conservative and follows narrower rules.

   <p>The preferable form of contribution is creating a Mercurial changeset and
sending it via e-mail to the octave-maintainers mailing list.  Mercurial is the
source code management system currently used to develop Octave.  Other forms of
contributions (e.g., simple diff patches) are also acceptable, but they slow
down the review process.  If you want to make more contributions, you should
really get familiar with Mercurial.  A good place to start is
<a href="http://www.selenic.com/mercurial/wiki/index.cgi/Tutorial">http://www.selenic.com/mercurial/wiki/index.cgi/Tutorial</a>.  There you will
also find help how to install Mercurial.

   <p>A simple contribution sequence could look like this:
<pre class="example">     hg clone http://www.octave.org/hg/octave
                                  # make a local copy of the octave
                                  # source repository
     cd octave
     # change some sources...
     hg commit -m "make Octave the coolest software ever"
                                  # commit the changeset into your
                                  # local repository
     hg export -o ../cool.diff tip
                                  # export the changeset to a diff
                                  # file
     # send ../cool.diff via email
</pre>
   <p>You may want to get familiar with Mercurial queues to manage your changesets. 
Here is a slightly less simple example using Mercurial queues, where you work
on two unrelated changesets in parallel and update one of the changesets after
discussion in the maintainers mailing list:
<pre class="example">     hg qnew nasty_bug            # create a new patch
     # change sources...
     hg qref                      # save the changes into the patch
     # change even more...
     hg qref -m "solution to nasty bug!"
                                  # save again with commit message
     hg export -o ../nasty.diff tip
                                  # export the patch
     # send ../nasty.diff via email
     hg qpop                      # undo the application of the patch
                                  # and remove the changes from the
                                  # source tree
     hg qnew doc_improvements     # create an unrelated patch
     # change doc sources...
     hg qref -m "could not find myfav.m in the doc"
                                  # save the changes into the patch
     hg export -o ../doc.diff tip
                                  # export the second patch
     # send ../doc.diff tip via email
     hg qpop
     # discussion in the maintainers mailing list ...
     hg qpush nasty_bug           # apply the patch again
     # change sources yet again ...
     hg qref
     hg export -o ../nasty2.diff tip
     # send ../nasty2.diff via email
</pre>
   </body></html>