====== gEDA's Release Engineering ====== ===== gEDA/gaf Release Creation Checklist ===== Here is a list of steps that are taken every time when creating a new gEDA/gaf release: * 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 //libgeda// (AX_LIBGEDA) and //libgedacairo// (AX_LIBGEDACAIRO) (their ''.so'' versions should follow what is described in [[http://sourceware.org/autobook/autobook/autobook_91.html | Autobook's library versioning]] chapter). * 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. * 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: make check * Run make update-po in all po directories. Commit these changes before continuing. * Update all the versions and dates in the man pages (gschem.1, gnetlist.1, gsymcheck.1, grenum.1) * Go into the wiki pages and update the "gEDA/gaf File Format Document" and add the release date to the version field. * Update the wiki documentation snapshot (which is shipped with the release) by doing the following steps: - 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" - Download a handy php-based package called "offline-doku". Latest version seems to be v0.1.1 and it was last seen at: [[ http://sourceforge.net/projects/limb/files/ | offline-doku ]]. - You might need to tweak/add the following line in offline-doku/make.php to make sure it has enough memory to operate: ini_set('memory_limit','256M'); - Now run offline-doku like this: cd offline-doku-0.1.1; php make.php --verbose /path/to/wikisrc /path/to/htmloutput This should processes all the dokuwiki source files and convert them into html files. - Tar/copy the htmloutput directory into the gaf git directory docs/ - Move aside (do not delete yet) the current wiki directory to something like "wikiold". Rename the new htmloutput directory to "wiki" - Run: cp -f wikiold/design.css wiki - Run: cp -f wikiold/.gitignore wiki - Run: cp -f wikiold/Makefile.am - Check to see what has changed using git status and git diff. Go through and add any new files to git using git add. - Check to see what has changed between wikiold and wiki using: diff -r -q wikiold wiki Fix anything is incorrect. - Go through all the html files and remove the contents of the line (but don't delete the empty line): start
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). - Finally commit all the changes/files. * Commit all of the above changes (preferably in between each step) * To build the distribution tarball (and verify all tests on the contained files) run: make distcheck 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). * Copy the distribution tarball some place else along with the toplevel README (which should be renamed to gEDA-gaf-VERSION-README.txt). * Create a file the md5sum for the toplevel tarball. md5sum -b geda-gaf-1.5.3.tar.gz > geda-gaf-1.5.3.md5sum * 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. * Build and test the distribution tarball one last time. * Make sure everything is committed and pushed and then put down the correctly formatted tag: git tag -a 1.5.3-20090829 * Push all the commits to the main repository. If you are on a branch the command should be: git push origin remote_branch_name * Push the tag to the main repository: git push --tags * Upload distribution tarball, README, and md5sum file to the correct place * Write release announcement and send to mailing lists * Write up release notes and send pointer to mailing lists (named: geda-gaf-VERSION-releasenotes.html) * Update news update the sources download pages on the website with links to the new version * Update the [[geda:todos]] removing the release information. * Done!