-
Notifications
You must be signed in to change notification settings - Fork 13
/
HACKING
169 lines (111 loc) · 4.97 KB
/
HACKING
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
Copyright (C) 2009, 2010, 2013, 2014 EPITA Research and Development
Laboratory (LRDE)
This file is part of Olena.
Olena 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, version 2 of the License.
Olena 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 Olena. If not, see <http://www.gnu.org/licenses/>.
The complete GNU General Public License Notice can also be found in
the 'COPYING' file in the root directory.
=================
Developer's Guide
=================
This file gathers some useful information for Olena developers and
contributors.
-------------
Bootstrapping
-------------
If you are fetching Olena from its Git repository, you will need to
run `bootstrap' to build files that are not recorded in the
repository::
./bootstrap
By default, `bootstrap' does not regenerate files that are stored on
the repository. If you want to refresh them (e.g., because your
working copy is in a bad state), you can ask bootstrap to regenerate
them::
./bootstrap --regen
On a configured tree, you can also use Make to perform the same task::
make regen
-----------------
Required Software
-----------------
In addition to the required packages listed in README, you may need
the following extra programs if you want to work on the Olena project.
* If you want to make changes anywhere within the project, you will
need:
- GNU Autoconf 2.61,
- GNU Automake 1.11,
- GNU Libtool 1.5.22.
* If you plan to make changes within Swilena, you must have:
- SWIG 1.3.35,
- Python 2.4.
* If you want to change and/or rebuild the documentation, the
following tools are required:
- Doxygen 1.5.6,
- a fairly recent LaTeX distribution,
- the `listings' LaTeX package,
- the `convert' utility from ImageMagick (6.3.7) or
GraphicsMagick (1.3.12),
- HeVeA 1.10,
- LaTeX2HTML (or at minimum, its `html.sty' style file),
- bibtex2html 1.95 or higher (at least the bibtex2html and
bib2bib tools).
Note that `bootstrap' checks for the presence of most of these tools.
----------------------
Useful Developer Tools
----------------------
* `rebox.el' is a useful companion to Emacs, creating boxes with
comment delimiters.
---------
Releasing
---------
Things to remember before releasing a new version of Olena, roughly in
this order:
* Olena is designed to be released as a whole package
(`olena-x.y.tar.{gz,bz2}') and later as separate components
(`milena-x.y.tar.{gz,bz2}', `olena-scribo-x.y.tar.{gz,bz2}',
`swilena-x.y.tar.{gz,bz2}', etc.). Both procedures should be
checked.
* Update and sync `NEWS' and `README' files in the top-level and
subprojects directories (milena/, scribo/, etc.).
* Likewise, update all `AUTHORS' files. Hint: use
`git shortlog -s DIR' to get the list of all authors who have
contributed to the files under directory DIR.
* Update revision numbers in `configure.ac' in the top-level and
subprojects directories (`milena/', `scribo/', etc.).
* Create (all) packages using `make distcheck' (not just
`make dist').
* Install the packages in `/lrde/dload/olena/x.y/', along with
Olena's `NEWS' and `README' files, and Milena's documentation (in
`/lrde/dload/olena/x.y./doc/') and ensure they are accessible
from the Web.
* Create a new page on the Olena Web site for the new release (e.g,
https://olena.lrde.epita.fr/OlenaXYZ for release x.y.z), update
the Download page (http://olena.lrde.epita.fr/Download) and make
an announcement on the main page (http://olena.lrde.epita.fr/).
Also update the link under the Download item of the right-hand
side menu (https://www.lrde.epita.fr/wiki/Template:OlenaMenu).
* Likewise, announce the release on the Olena Trac
(https://trac.lrde.org/olena/).
* Make an announce on the LRDE Web site as well
(https://www.lrde.epita.fr/wiki/Form:OlenaNews).
* Finally, post an announce to [email protected]. See the files
`ANNOUNCE-x.y' at the root of the repository for models.
* Tag the commit COMMIT corresponding to the release in the
repository, and push it to the Git server.
git tag -m "Olena release x.y." olena-x.y COMMIT
git push tag olena-x.y
* After the release, do not forget to append an `a' to the release
number in `configure.ac's (e.g., turn `1.1' into `1.1a') to
prevent any mistake regarding version numbers in subsequent
releases. Create new (empty) sections in `NEWS' files
accordingly.
.. Local Variables:
.. mode: rst
.. ispell-local-dictionary: "american"
.. End: