Release making process:
Contents
Write ChangeLog entry
Write and commit new entry to ChangeLog file in pasdoc sources.
Actually, after 0.9.0 release I'm writing the ChangeLog entry while developing PasDoc (each time I do sthg significant, I add it to ChangeLog). So this point means just review and finalize (write new verion number and release date) ChangeLog entry.
Compile and test all releases
Compile each release:
Win32, Linux-x86, FreeBSD-x86, Linux-ppc – with FPC 2.0.4
Go32v2, BeOS – also with FPC 2.0.4 ? Anyone who's going to take care of preparing pasdoc releases for these platforms: update this text.
Use make clean build-fpc-default or make clean build-fpc-<os/arch> to compile a release version of pasdoc. Or you can just call make dist-<os/arch>, this will make clean and build-fpc-<os/arch> as the first steps. (Note that it's important to call clean before build-fpc-<os/arch>, otherwise you risk that some units were left as compiled with debug options).
All automatic tests should pass, under all targets. The full commands to execute all tests go like this:
cd pasdoc/tests/ cd scripts/ ./download_correct_tests_output.sh html htmlhelp latex latex2rtf cd ../ make clean html htmlhelp latex latex2rtf diff -wur correct_output/html html diff -wur correct_output/htmlhelp htmlhelp diff -wur correct_output/latex latex diff -wur correct_output/latex2rtf latex2rtf make validate_html cd scripts/ ./check_cache.sh html ./check_cache.sh htmlhelp ./check_cache.sh latex ./check_cache.sh latex2rtf ./check_cache_format_independent.sh html latex ./check_cache_format_independent.sh latex2rtf htmlhelp
Note that some things at HTML validation are known to fail:
html/ok_longcode_comment/AllUnits.html
html/ok_table/ok_table.html
html/ok_table_nonlatex/ok_table_nonlatex.html
html/ok_auto_link/AllVariables.html
html/ok_auto_link/AllIdentifiers.html
They are related to paragraphs with table cells. You can ignore them. (Or you can fix them, but you have to preserve the look of HTML docs; see TGenericHTMLDocGenerator.FormatTable in sources).
Update docs
Remove from the documentation text
Note that this feature is not available in latest released pasdoc version, x.y.z. You must download and compile pasdoc yourself or use DevelopmentSnapshots to use this feature.
(where x.y.z is version number of previous release) placed at the beginning of some pages. This is easily done by doing a full-text search in the wiki for the phrase Note that this feature is not available in latest released pasdoc version. Like this.
Change version number and SVN tagging
change version of all packages in pasdoc/source/packages/ dir. Right now this means changing
.../packages/delphi/win32/7.0/pasdoc_package.dof
.../packages/lazarus/pasdoc_package.lpk
change VERSION in pasdoc/Makefile
change PASDOC_VERSION and PASDOC_DATE in pasdoc/source/components/PasDoc_Base.pas
Add a tag x.y.z to SVN. Use the command like
svn copy https://svn.sourceforge.net/svnroot/pasdoc/trunk/ \ https://svn.sourceforge.net/svnroot/pasdoc/tags/X.Y.Z \ -m "Tagging the X.Y.Z release"
Compile pasdoc_gui
For Win32 and Linux, before executing make dist-<os/arch>, you must compile PasDocGui. In the future compiling process may be automated inside Makefile. For now you just have to do it manually.
- Get FPC 2.0.4
- Get Lazarus 0.9.20
Compile PasDocGui as usual, from within Lazarus.
Recompile and archive all releases
Use make dist-<os/arch>. This will do clean, then appropriate build-<compiler>-<os/arch>, then will produce archive named like pasdoc-<version>-<os/arch>. This is the archive you want to release on sourceforge.
Source archive is made by make dist-src. It works by checking out from pasdoc SVN by X.Y.Z tag.
Release files using sourceforge file release system
Notes:
Package name for archives with compiled version (created by make dist-<os/arch>) is pasdoc os-arch binary. Package name for source archive (the one created by make dist-src) is pasdoc sources.
Release name (inside all packages) is just version number (e.g. 0.9.0).
As the "change log" for every release, paste appropriate part of ChangeLog file. Remember to mark the checkbox Preserve my pre-formatted text.
As the "release notes" for new release within pasdoc sources package paste this text:
The source archive contains SVN directories pointing to our repository. Therefore you can simply update it to current version using the svn switch https://svn.sourceforge.net/svnroot/pasdoc/trunk command.
Again, remember to mark the checkbox Preserve my pre-formatted text.
Remember to update "platform" downloads pages as well at the end.
Final things to do
In our bugs tracker, add a group x.y.z
It's a good idea to upload PasDocAutoDoc at this time, like this:
cd pasdoc/source/autodoc/ make clean public upload SF_USERNAME=my_user_name
Submit news item PasDoc x.y.z released
Announce new release on freshmeat