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
beforebuild-…
, 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 includepasdoc_gui
binary (usinglazbuild
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
-
Create a tag by
make tag
-
Go to https://github.com/pasdoc/pasdoc/releases and create a new release from tag
-
Upload there the release. Right now Michalis has this automated by github-release on Castle Game Engine Jenkins infrastructure server.
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: