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
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<link rel="stylesheet" media="screen" type="text/css" href="./style.css" />
<link rel="stylesheet" media="screen" type="text/css" href="./design.css" />
<link rel="stylesheet" media="print" type="text/css" href="./print.css" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<div class="dokuwiki export">
<h1 class="sectionedit1"><a name="geda_s_release_engineering" id="geda_s_release_engineering">gEDA's Release Engineering</a></h1>
<div class="level1">
</div>
<!-- EDIT1 SECTION "gEDA's Release Engineering" [1-49] -->
<h2 class="sectionedit2"><a name="geda_gaf_release_creation_checklist" id="geda_gaf_release_creation_checklist">gEDA/gaf Release Creation Checklist</a></h2>
<div class="level2">
<p>
Here is a list of steps that are taken every time when creating a new gEDA/gaf release:
</p>
<ul>
<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 libgeda's shared library version (libgeda's so version 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>
</li>
<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>
</li>
<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>
</li>
</ul>
<pre class="code"> make check</pre>
<ul>
<li class="level1"><div class="li"> Run make update-po in all po directories. Commit these changes before continuing.</div>
</li>
<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>
</li>
<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>
</li>
<li class="level1"><div class="li"> Update the wiki documentation snapshot (which is shipped with the release) by doing the following steps:</div>
<ol>
<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>
</li>
<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>
</li>
<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>
</div>
</li>
<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>
<p>
This should processes all the dokuwiki source files and convert them into html files.
</p>
</div>
</li>
<li class="level2"><div class="li"> Tar/copy the htmloutput directory into the gaf git directory docs/</div>
</li>
<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>
</li>
<li class="level2"><div class="li"> Run: <pre class="code"> cp -f wikiold/design.css wiki </pre>
</div>
</li>
<li class="level2"><div class="li"> Run: <pre class="code"> cp -f wikiold/.gitignore wiki </pre>
</div>
</li>
<li class="level2"><div class="li"> Run: <pre class="code"> cp -f wikiold/Makefile.am </pre>
</div>
</li>
<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>
</li>
<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>
<p>
Fix anything is incorrect.
</p>
</div>
</li>
<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>
<p>
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).
</p>
</div>
</li>
<li class="level2"><div class="li"> Finally commit all the changes/files.</div>
</li>
</ol>
</li>
</ul>
<ul>
<li class="level1"><div class="li"> Commit all of the above changes (preferably in between each step)</div>
</li>
<li class="level1"><div class="li"> To build the distribution tarball (and verify all tests on the contained files) run:</div>
</li>
</ul>
<pre class="code"> make distcheck</pre>
<p>
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).
</p>
<ul>
<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>
</li>
<li class="level1"><div class="li"> Create a file the md5sum for the toplevel tarball.</div>
</li>
</ul>
<pre class="code"> md5sum -b geda-gaf-1.5.3.tar.gz > geda-gaf-1.5.3.md5sum</pre>
<ul>
<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>
</li>
<li class="level1"><div class="li"> Build and test the distribution tarball one last time.</div>
</li>
<li class="level1"><div class="li"> Make sure everything is committed and pushed and then put down the correctly formatted tag:</div>
</li>
</ul>
<pre class="code"> git tag -a 1.5.3-20090829</pre>
<ul>
<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>
</li>
</ul>
<pre class="code"> git push origin remote_branch_name</pre>
<ul>
<li class="level1"><div class="li"> Push the tag to the main repository:</div>
</li>
</ul>
<pre class="code"> git push --tags</pre>
<ul>
<li class="level1"><div class="li"> Upload distribution tarball, README, and md5sum file to the correct place</div>
</li>
<li class="level1"><div class="li"> Write release announcement and send to mailing lists</div>
</li>
<li class="level1"><div class="li"> Write up release notes and send pointer to mailing lists (named: geda-gaf-VERSION-releasenotes.html)</div>
</li>
<li class="level1"><div class="li"> Update news update the sources download pages on the website with links to the new version</div>
</li>
<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>
</li>
<li class="level1"><div class="li"> Done!</div>
</li>
</ul>
</div>
<!-- EDIT2 SECTION "gEDA/gaf Release Creation Checklist" [50-] --></div>
</body>
</html>
|