1 <!DOCTYPE html PUBLIC
"-//W3C//DTD XHTML 1.0 Transitional//EN"
2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5 <link rel=
"stylesheet" media=
"screen" type=
"text/css" href=
"./style.css" />
6 <link rel=
"stylesheet" media=
"screen" type=
"text/css" href=
"./design.css" />
7 <link rel=
"stylesheet" media=
"print" type=
"text/css" href=
"./print.css" />
9 <meta http-equiv=
"Content-Type" content=
"text/html; charset=utf-8" />
13 <h1 class=
"sectionedit1" id=
"geda_s_release_engineering">gEDA
's Release Engineering
</h1>
17 <!-- EDIT1 SECTION "gEDA's Release Engineering" [1-49] -->
18 <h2 class=
"sectionedit2" id=
"geda_gaf_release_creation_checklist">gEDA/gaf Release Creation Checklist
</h2>
22 Here is a list of steps that are taken every time when creating a new gEDA/gaf release:
25 <li class=
"level1"><div class=
"li"> In the toplevel configure.ac file update the package version in the AC_INIT macro, the date in the AX_GIT_VERSION macro, and update shared library versions of the package libraries, currently
<em>libgeda
</em> (AX_LIBGEDA) and
<em>libgedacairo
</em> (AX_LIBGEDACAIRO) (their
<code>.so
</code> versions should follow what is described in
<a href=
"http://sourceware.org/autobook/autobook/autobook_91.html" class=
"urlextern" title=
"http://sourceware.org/autobook/autobook/autobook_91.html" rel=
"nofollow"> Autobook
's library versioning
</a> chapter).
</div>
27 <li class=
"level1"><div class=
"li"> Update the toplevel NEWS file with a summary of all the changes in the new release. The NEWS file forms the basis for the release notes.
</div>
29 <li class=
"level1"><div class=
"li"> Manually run all tests. gnetlist has a nice set of regression tests in gnetlist/tests. gsymcheck also has a nice set of regression tests in gsymcheck/tests. Open up all schematics in gschem/examples and gschem/tests. You can do this by running the following in the toplevel directory:
</div>
32 <pre class=
"code"> make check
</pre>
34 <li class=
"level1"><div class=
"li"> Run make update-po in all po directories. Commit these changes before continuing.
</div>
36 <li class=
"level1"><div class=
"li"> Update all the versions and dates in the man pages (gschem
.1, gnetlist
.1, gsymcheck
.1, grenum
.1)
</div>
38 <li class=
"level1"><div class=
"li"> Go into the wiki pages and update the “gEDA/gaf File Format Document” and add the release date to the version field.
</div>
40 <li class=
"level1 node"><div class=
"li"> Update the wiki documentation snapshot (which is shipped with the release) by doing the following steps:
</div>
42 <li class=
"level2"><div class=
"li"> Get the wiki source files. (For now you have to ask Ales to get them from the SEUL.org server; eventually this should be changed so they are available without asking anybody). Put these files in some directory called “wikisrc”. Also make an output directory called “htmloutput”
</div>
44 <li class=
"level2"><div class=
"li"> Download a handy php-based package called “offline-doku”. Latest version seems to be v0.1
.1 and it was last seen at:
<a href=
"http://sourceforge.net/projects/limb/files/" class=
"urlextern" title=
"http://sourceforge.net/projects/limb/files/" rel=
"nofollow"> offline-doku
</a>.
</div>
46 <li class=
"level2"><div class=
"li"> You might need to tweak/add the following line in offline-doku/make.php to make sure it has enough memory to operate:
<pre class=
"code"> ini_set(
'memory_limit
',
'256M
');
</pre>
49 <li class=
"level2"><div class=
"li"> Now run offline-doku like this:
<pre class=
"code"> cd offline-doku-
0.1.1; php make.php --verbose /path/to/wikisrc /path/to/htmloutput
</pre>
52 This should processes all the dokuwiki source files and convert them into html files.
56 <li class=
"level2"><div class=
"li"> Tar/copy the htmloutput directory into the gaf git directory docs/
</div>
58 <li class=
"level2"><div class=
"li"> Move aside (do not delete yet) the current wiki directory to something like “wikiold”. Rename the new htmloutput directory to “wiki”
</div>
60 <li class=
"level2"><div class=
"li"> Run:
<pre class=
"code"> cp -f wikiold/design.css wiki
</pre>
63 <li class=
"level2"><div class=
"li"> Run:
<pre class=
"code"> cp -f wikiold/.gitignore wiki
</pre>
66 <li class=
"level2"><div class=
"li"> Run:
<pre class=
"code"> cp -f wikiold/Makefile.am
</pre>
69 <li class=
"level2"><div class=
"li"> Check to see what has changed using git status and git diff. Go through and add any new files to git using git add.
</div>
71 <li class=
"level2"><div class=
"li"> Check to see what has changed between wikiold and wiki using:
<pre class=
"code"> diff -r -q wikiold wiki
</pre>
74 Fix anything is incorrect.
78 <li class=
"level2"><div class=
"li"> Go through all the html files and remove the contents of the line (but don
't delete the empty line):
<pre class=
"code"> <a href=.
>start
</a
></br
></pre>
81 Eventually this should be automated or somehow fixed. Removing this start link will make the html pages look better and reduce the number of unnecessary file changes (in git).
85 <li class=
"level2"><div class=
"li"> Finally commit all the changes/files.
</div>
91 <li class=
"level1"><div class=
"li"> Commit all of the above changes (preferably in between each step)
</div>
93 <li class=
"level1"><div class=
"li"> To build the distribution tarball (and verify all tests on the contained files) run:
</div>
96 <pre class=
"code"> make distcheck
</pre>
99 and make sure it completes without any errors. After this is complete you will find the distribution tarball in the toplevel directory (named geda-gaf-VERSION.tar.gz).
102 <li class=
"level1"><div class=
"li"> Copy the distribution tarball some place else along with the toplevel README (which should be renamed to gEDA-gaf-VERSION-README.txt).
</div>
104 <li class=
"level1"><div class=
"li"> Create a file the md5sum for the toplevel tarball.
</div>
107 <pre class=
"code"> md5sum -b geda-gaf-
1.5.3.tar.gz
> geda-gaf-
1.5.3.md5sum
</pre>
109 <li class=
"level1"><div class=
"li"> Untar the tarballs and compare what is inside to what is in the repository. You should only find additional dist files inside the tarballs and no missing required files.
</div>
111 <li class=
"level1"><div class=
"li"> Build and test the distribution tarball one last time.
</div>
113 <li class=
"level1"><div class=
"li"> Make sure everything is committed and pushed and then put down the correctly formatted tag:
</div>
116 <pre class=
"code"> git tag -a
1.5.3-
20090829</pre>
118 <li class=
"level1"><div class=
"li"> Push all the commits to the main repository. If you are on a branch the command should be:
</div>
121 <pre class=
"code"> git push origin remote_branch_name
</pre>
123 <li class=
"level1"><div class=
"li"> Push the tag to the main repository:
</div>
126 <pre class=
"code"> git push --tags
</pre>
128 <li class=
"level1"><div class=
"li"> Upload distribution tarball, README, and md5sum file to the correct place
</div>
130 <li class=
"level1"><div class=
"li"> Write release announcement and send to mailing lists
</div>
132 <li class=
"level1"><div class=
"li"> Write up release notes and send pointer to mailing lists (named: geda-gaf-VERSION-releasenotes.html)
</div>
134 <li class=
"level1"><div class=
"li"> Update news update the sources download pages on the website with links to the new version
</div>
136 <li class=
"level1"><div class=
"li"> Update the
<a href=
"geda-todos.html" class=
"wikilink1" title=
"geda-todos.html">todos
</a> removing the release information.
</div>
138 <li class=
"level1"><div class=
"li"> Done!
</div>
143 <!-- EDIT2 SECTION "gEDA/gaf Release Creation Checklist" [50-] --></body>