summaryrefslogtreecommitdiffstats
path: root/devel/index.html
blob: 8609327fe9b4a307674e017da6e899fd77a9388f (plain) (blame)
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
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
<!DOCTYPE html>
<html lang="en">
  <head>
    <title>calcurse.org</title>

    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
    <meta http-equiv="Content-Style-Type" content="text/css" />

    <script type="text/javascript" src="/js/typeface-0.15.js"></script>
    <script type="text/javascript" src="/js/helvetiker_bold.typeface.js"></script>

    <script type="text/javascript" src="/js/jquery-1.7.2.min.js"></script>
    <script type="text/javascript" src="/js/lightbox.js"></script>

    <link rel="stylesheet" type="text/css" href="/css/style.css" media="all" />
    <link rel="stylesheet" type="text/css" href="/css/lightbox.css" media="screen" />
  </head>

  <body>
    <div id="header" class="typeface-js">
      <a href="/"><img src="/images/logo.png" /></a>
      <ul>
        <li><a href="/">About</a></li>
        <li><a href="/downloads">Downloads</a></li>
        <li><a href="/support">Support</a></li>
        <li><a href="/devel" class="current">Development</a></li>
      </ul>
      <p style="clear:both;"></p>
    </div>
    <div id="contents">
<h1>Development Information</h1>
<h2 id="source">Development Source</h2>
<p>
  <tt>calcurse</tt> is released under the
  <a href="http://git.calcurse.org/calcurse.git/tree/COPYING">BSD</a> license,
  so feel free to download, modify and redistribute it.
</p>
<p>
  The whole source code currently is under version control using
  <a href="http://git-scm.com/">Git</a> as VCS. You can either view recent
  changes and stats, browse the source tree, and download snapshot tarballs
  through our <a href="http://git.calcurse.org/calcurse.git/">cgit web
  interface</a> or retrieve a local copy of the development tree using:
</p>
<pre>
$ git clone git://git.calcurse.org/calcurse.git
</pre>
<p>
  That creates a new directory <tt>calcurse</tt> containing the cloned
  repository. A graphical view of recent development can be requested using the
  <tt>gitk(1)</tt> frontend:
</p>
<pre>
$ gitk --all
</pre>
<p>
  To update your existing local working copy to the current point of
  development, run:
</p>
<pre>
$ git pull origin master
</pre>
<p>
  If you'd like to follow the maintenance branch (<tt>maint</tt>) as well,
  setting up a tracking branch is recommended:
</p>
<pre>
$ git branch -t maint origin/maint
</pre>
<p>
  Subsequently, just use <tt>git pull</tt> which will sync both <tt>master</tt>
  and <tt>maint</tt> branches.
</p>
<p>
  For further documentation and tutorials, check the
  <a href="http://git-scm.com/">Git website</a>.
</p>
<h2 id="build">Building calcurse</h2>
<p>
  To build <tt>calcurse</tt> from development sources, run:
</p>
<pre>
$ ./autogen.sh
$ ./configure
$ make
</pre>
<h2 id="patches">Submitting Patches</h2>
<p>
  Patches are always appreciated and should be sent to <tt>misc at calcurse dot
  org</tt> for discussion or to <tt>bugs at calcurse dot org</tt> if they are
  mere bug fixes. You will need to <a href="/support/#ml">subscribe</a> to the
  mailing lists before submitting. Signed-off patches produced by
  <tt>git-format-patch(1)</tt> and submitted as an inline attachments via
  <tt>git-send-email(1)</tt> are preferred.
</p>
<p>
  If you've never used Git before, try to stick to following workflow:
</p>
<ol>
  <li>
<p>
  Whenever you want to work on a new feature, do it in a separate branch.
  Having custom commits in the <tt>master</tt> branch might cause conflicts
  when pulling in new changes. Creating a new development branch
  <strong>before</strong> doing any changes is good practice. And even before
  doing that, you should update the <tt>master</tt> branch of your working
  copy:
</p>
<pre>
$ git checkout master
$ git pull origin master
$ git checkout -b foo
</pre>
<p>
  Maintenance patches such as bug fixes and stability improvements should be
  based on the <tt>maint</tt> branch instead:
</p>
<pre>
$ git checkout maint
$ git pull origin maint
$ git checkout -b foo
</pre>
  </li>
  <li>
<p>
  Edit files in the source tree and test your changes. When everything seems to
  be fine, you're ready to commit to your local working tree:
</p>
<pre>
$ git commit -as
</pre>
<p>
  If you added or removed files, you probaly need to run <tt>git add</tt> or
  <tt>git rm</tt> before committing so that Git is aware of them.
</p>
<p>
  If you work on more than a small bug fix, you should split your work into
  several commits. Try to keep your commits small and focused. Smaller patches
  are way easier to review and have a better chance of being included in
  mainline development. Also try to make your commit messages brief and
  descriptive.
</p>
  </li>
  <li>
<p>
  As soon as you finished all your work, test everything again and create a
  patch series:
</p>
<pre>
$ git format-patch master
</pre>
<p>
  Replace <tt>master</tt> by <tt>maint</tt> if your development branch is based
  on the maintenance branch:
</p>
<pre>
$ git format-patch maint
</pre>
  </li>
  <li>
<p>
  Send your patch series to one of the mailing lists:
</p>
<pre>
$ git send-email *.patch
</pre>
  </li>
  <li>
<p>
  Optionally switch back to any other branch and delete your working branch if
  you don't need it anymore:
</p>
<pre>
$ git checkout master
$ git branch -D foo
</pre>
  </li>
</ol>
<p>
  In case you are interested in more details and features of Git, check the
  <a href="http://git-scm.com/">Git website</a>. <em>Version Control with
  Git</em> by <em>Jon Loeliger</em> also is a good book to start with.
</p>

<h2 id="gs">Getting Started</h2>
<p>
  If you are interested in contributing to <tt>calcurse</tt> development, the
  following steps are good to start with:
</p>
<ul>
  <li>
    <a href="/support/#ml">Subscribe</a> to the mailing lists.
  </li>
  <li>
    <a href="#source">Pull in</a> and <a href="#build">build</a> the latest
    development source.
  </li>
  <li>
    Check the current
    <a href="http://git.calcurse.org/calcurse.git/tree/TODO">TODO list</a>.
  </li>
  <li>
    Test and <a href="#patches">submit</a> your patches to <tt>misc at calcurse
    got org</tt>.
  </li>
</ul>

<h2 id="i8n">Translations</h2>
<p>
  We currently use
  <a href="http://transifex.net/projects/p/calcurse/">Transifex</a> to manage
  <tt>calcurse</tt> translations. Following languages are available:
</p>
<p>
  <img border="0" src="http://www.transifex.net/projects/p/calcurse/resource/calcursepot/chart/image_png"/><br />
</p>
<p>
  To find out more about our translation workflow, check the <tt>calcurse
  i18n</tt> section in the manual. Translation contributions are highly
  appreciated!
</p>

<h2 id="stats">Statistics</h2>
<p>
  The following graphs have been generated using
  <a href="http://scm-pepper.sourceforge.net/">pepper</a>'s built-in reports:
</p>
<ul class="gallery">
  <li>
    <a href="/images/stats/loc.png" rel="lightbox[stats]">
      <img src="/images/stats/thumb/loc.png" alt="Lines of code">
      <span>Lines of code</span>
    </a>
  </li>
  <li>
    <a href="/images/stats/directories.png" rel="lightbox[stats]">
      <img src="/images/stats/thumb/directories.png" alt="Directory sizes">
      <span>Directory sizes</span>
    </a>
  </li>
  <li>
    <a href="/images/stats/commit_counts.png" rel="lightbox[stats]">
      <img src="/images/stats/thumb/commit_counts.png" alt="Commit counts">
      <span>Commit counts</span>
    </a>
  </li>
</ul>
<p style="clear:both;">
  The reports are currently regenerated manually and therefore might be
  slightly out of date at times.
</p>
    </div>
    <div id="footer">
      Copyright &copy; 2012-2013 <a href="/support/#devs">calcurse Development Team</a>.
      Licensed under the terms of the BSD License.
    </div>
  </body>
</html>