ReleaseMaking

Michalis Kamburelis edited this page Jan 7, 2017 · 10 revisions
Clone this wiki locally

Release making process:

Write ChangeLog entry

Make sure you have nice entry in ChangeLog file in pasdoc sources.

We try to write the ChangeLog entry while developing PasDoc (each time someone does something significant, it’s immediately added to the ChangeLog). So at this point, mainly __review and finalize (write new verion number and release date) ChangeLog entry.

Compile and test all releases

Make sure you have the latest stable FPC and Lazarus versions.

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 fpcunit/ make cd ../

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

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. (For GitHub wiki, you can clone it and then just grep locally.)

Change version number and SVN tagging

  • change version of all packages in pasdoc/source/packages/ dir. Right now this means changing

    • …​/packages/lazarus/pasdoc_package.lpk

    • all Delphi packages

  • change VERSION in pasdoc/Makefile

  • change PASDOC_VERSION and PASDOC_DATE in pasdoc/source/components/PasDoc_Versions.pas

  • Add a tag x.y.z to version control.

Compile and test pasdoc_gui

  • Get latest stable FPC.

  • Get latest stable Lazarus.

  • Compile PasDocGui from command-line using lazbuild:

    lazbuild source/packages/lazarus/pasdoc_package.lpk
    lazbuild source/gui/pasdoc_gui.lpi
  • Compile PasDocGui interactively, from within Lazarus.

  • Test pasdoc_gui: for basic test, open the project with pasdoc’s autodoc source/autodoc/autodoc.pds and hit "Generate".

For platforms where pasdoc_gui is included in releases (currently this means Linux-x86, Darwin-x86, Win32) the make dist-…​ will automatically compile and include pasdoc_gui binary (using lazbuild to compile Lazarus package and project in batch mode).

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).

  • Remember to mark files that should be the default download on some systems (Linux, Windows). For Linux, mark 64-bit version to download by default, as 64-bit is more popular now.

  • Download the uploaded files and check md5sums, to be absolutely sure they are Ok.

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
  • Send mail about release to our pasdoc-main mailing list.

  • Submit news item PasDoc x.y.z released

  • Announce new release on http://freshcode.club/projects/pasdoc.

  • Announce new release on Lazarus forum.

  • Announce new release on FB, G+

  • Send an update to FSF directory.

  • Prepare for next release: ChangeLog file should start with line

    [Next release -- release date and new version number unknown yet...]

Really, really large and significant improvements may be signalled by changing the project’s description: