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.2.0
Go32v2, BeOS – also with FPC 2.2.0 ? 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 simplexml cd ../ make clean html htmlhelp latex latex2rtf simplexml diff -wur correct_output/html html diff -wur correct_output/htmlhelp htmlhelp diff -wur correct_output/latex latex diff -wur correct_output/latex2rtf latex2rtf diff -wur correct_output/simplexml simplexml make validate_html # requires onsgmls installed make validate_simplexml # requires xmllint installed cd scripts/ ./check_cache.sh html ./check_cache.sh htmlhelp ./check_cache.sh latex ./check_cache.sh latex2rtf ./check_cache.sh simplexml ./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/delphi/win32/2006/pasdoc_package.bdsproj
.../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://pasdoc.svn.sourceforge.net/svnroot/pasdoc/trunk/ \ https://pasdoc.svn.sourceforge.net/svnroot/pasdoc/tags/X.Y.Z \ -m "Tagging the X.Y.Z release"
Compile and test pasdoc_gui
For platforms where pasdoc_gui is included in releases (currently this means Linux-x86, Darwin-x86, Win32) you must compile PasDocGui before executing make dist-<os/arch>, . In the future compiling process may be automated inside Makefile. For now you just have to do it manually.
- Get FPC 2.2.0
- Get Lazarus 0.9.24
Compile PasDocGui as usual, from within Lazarus.
Test pasdoc_gui: for basic test, open the project with pasdoc's autodoc source/autodoc/autodoc.pds and hit "Generate" (F9).
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 (there's not much space, so the word "binary" doesn't fit anymore). 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://pasdoc.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
Prepare for next release: ChangeLog file should start with line
[Next release -- release date and new version number unknown yet...]