Process of making new PasDoc release

Release making process:

Change version number

  • 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

Write ChangeLog entry

Make sure you have nice entry in https://github.com/pasdoc/pasdoc/blob/master/ChangeLog.md file in pasdoc sources.

We try to update this changelog file 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.

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

Build and test all releases (automated now)

Note: This step is in practice automated now, using Castle Game Engine Jenkins infrastructure to automatically test and build PasDoc. The commands performed by Jenkins are configured in Jenkinsfile in the PasDoc repository.

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

  • Run all the tests by

    make tests

    There are various comments inside tests/run_all_tests.sh about what is really happening. It runs various other tests we have prepared, it even compares the output with some "designated correct" output.

    To be sure, you should run these tests on all targets.

  • To build for the current platform (OS and architecture) call this:

    make clean build-fpc-default

    Note that it’s important to call clean before build-…​, otherwise you risk that some units were left as compiled with debug options.

    To build for an indicated platform:

    make clean build-fpc-<os/arch>

    To build for indicated platform and package to zip/tar.gz (this will call clean build-fpc-<os/arch> as first steps):

    make dist-<os/arch>
  • The make dist-…​ will automatically compile and include pasdoc_gui binary (using lazbuild to compile Lazarus package and project in batch mode). But you can also compile it manually:

    lazbuild source/packages/lazarus/pasdoc_package.lpk
    lazbuild source/gui/pasdoc_gui.lpi

    For basic test of pasdoc_gui, open the project with pasdoc’s autodoc source/autodoc/autodoc.pds and hit "Generate".

Release files using GitHub

Final things to do

  • It’s a good idea to upload PasDocAutoDoc at this time, like this:

    cd pasdoc/source/autodoc/
    make clean public upload
    
    cd  ../../../pasdoc.github.io/
    git commit -m "Updated autodoc"
    git push
  • Submit news item PasDoc x.y.z released

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

  • Announce new release on Lazarus forum.

  • Send an update to FSF directory.

  • Prepare for next release: ChangeLog.md 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: