Process of making new PasDoc release
1. Introduction
This page describes the process of making a new PasDoc release. Unless you’re a PasDoc maintainer, you probably don’t care about the details described here.
2. Change version number to next stable
-
Change version of all packages in
source/packages/. Right now this means just changingsource/packages/lazarus/pasdoc_package.lpk. (Delphi packages don’t store PasDoc version now.) -
change
VERSIONinpasdoc/Makefile -
change
PASDOC_VERSIONandPASDOC_DATEinsource/components/PasDoc_Versions.pas -
make && ./bin/pasdoc --versionshould show the new version number and date. -
make dist-linux-x86_64should create a tar.gz file with the new version number in its name.
Make last version number even to signify stable release, like 1.2.4.
3. 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.
4. 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.
5. Update AutoDoc
-
It’s a good idea to upload PasDocAutoDoc at this time, like this:
cd pasdoc/source/autodoc/ pasdoc --version # make sure latest version of pasdoc is used make clean public upload cd ../../../pasdoc.github.io/ git commit -m "Updated autodoc" git push
6. Prepare tag and GitHub release
-
Create a tag by
make tag. -
Go to https://github.com/pasdoc/pasdoc/releases and create a new release from this tag. Place the notes from the changelog entry as description. Make it "draft" for now.
7. Build and test all releases (automated now)
Note: This step is automated now, using GitHub Actions to automatically test and build PasDoc. Just switch release_tag in .github/workflows/build.yml to the new tag and push it, and GitHub Actions will do the rest.
Below we describe how to do things manually, just in case.
-
Make sure you have the latest stable FPC and Lazarus versions.
-
Run all the tests by
make testsThere are various comments inside
tests/run_all_tests.shabout 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-releaseNote that it’s important to call
cleanbeforebuild-…, otherwise you risk that some units were left as compiled with debug options.To build for indicated platform and package to zip/tar.gz (this will call
clean build-fpc-releaseas first steps):make dist-<os/arch> -
The
make dist-…will automatically compile and includepasdoc_guibinary (usinglazbuildto 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 autodocsource/autodoc/autodoc.pdsand hit "Generate".
8. Make release public
-
Make the release non-draft on GitHub.
-
Mark it as "latest", make sure latest release page links to it.
-
Update our website to link to latest release:
-
edit
_config.yml -
edit also
src/_layouts/default.htmlif plaforms changed. -
make -
commit and push
-
once live, download all linked releases to make sure links are OK.
-
9. Announce new release everywhere
-
Make thread on our forum: https://github.com/pasdoc/pasdoc/discussions .
-
GitHub’s new "Create discussion from release" checkbox also does it OK (make sure it’s checked when making release public).
-
Unpin old release announcement thread.
-
Pin the release announcement thread, for Discussions and for Announcements category.
-
-
Announce new release on Lazarus forum.
-
To convert our Markdown changelog/announcement to bbcode, install latest pandoc (at least 3.8.3) and run:
pandoc --from=gfm --to=bbcode n.md --output=n.bbcode -
Add a paragraph explaining what we are.
PasDoc is a documentation generator for Pascal source code. Documentation is generated from comments found in the source code (or in special description files). We support many output formats, like HTML, LaTeX (for PDF, PS), XML and PHP. We are free open-source software.
-
-
fpc-pascal mailing list (
[ANN] PasDoc X.Y.Z release) -
Debian Pascal packaging mailing list
-
SourceForge "Old News" item PasDoc x.y.z released
-
Announce new release on http://freshcode.club/projects/pasdoc.
-
Send an update to FSF directory.
-
Post to Delphi / FPC communities on FB:
-
https://www.facebook.com/groups/170041353008050 - Pascal Game Development
-
https://www.facebook.com/groups/2326037874 - Pascal programming language
-
https://www.facebook.com/groups/137012246341854 - Delphi developer
-
Post to Delphi Praxis forum, in "Delphi Third Party" section.
-
LinkedIn: https://www.linkedin.com/groups/1290947/
Really, really large and significant improvements may be signalled by changing the project’s description:
10. Prepare for next release
-
ChangeLog.mdfile should start with line## Upcoming Next Release
-
Repeat the steps from "Change version number to next stable", but :
-
Make last version number odd to signify unstable release and add
.snapshot, like1.2.5.snapshot. -
Remove from [snapshot release](https://github.com/pasdoc/pasdoc/releases/tag/snapshot) old version numbered archives.
-
-
-
Switch back
release_tag: snapshotin.github/workflows/build.yml.