-
-
Notifications
You must be signed in to change notification settings - Fork 369
pgRouting How to make a release
For creating automatic releases using GitHub actions:
- Verify all stuff (refer to the below section)
- Create and push the tag:
git tag -a -m "Create v3.0.4 tag" v3.0.4
,git push origin v3.0.4
- The Release GitHub actions will get triggered, which will create a draft release here: https://github.com/pgRouting/pgrouting/releases.
- (Extra) Click on "Generate release notes" button in the top-right and cut it to the clipboard. This text can be published in the release discussion.
- Verify the draft release body, edit it if required, and publish it. Check the "Create a discussion for this release" option before publishing.
- (Extra) Go to the release discussion and paste the above cut text.
- Close the milestone, and announce the release (refer to the below sections).
The below steps list the things that need to be done to make a release for pgRouting "manually":
-
Get the link to the issues. (e.g. For Release 3.0.4: https://github.com/pgRouting/pgrouting/issues?q=milestone%3A%22Release+3.0.4%22)
-
Verify that issues are linked to PRs.
-
Verify that
NEWS
andrelease_notes
have all the necessary issues listed. -
Make sure all the merges to the branch are made. (e.g. For Release 3.0: https://github.com/pgRouting/pgrouting/pulls?q=is%3Apr+is%3Aopen+base%3Arelease-3.0)
-
Make sure that the tests on GitHub actions pass. (e.g. For Release 3.0: https://github.com/pgRouting/pgrouting/actions?query=branch%3Arelease-3.0)
-
Change the directory to the clone of the main pgRouting repository: https://github.com/pgRouting/pgrouting
-
Switch to the branch to be released, and make sure it is updated.
git checkout release-3.0
git fetch
git pull
- Verify signatures didn't change by comparing with the previous micro.
git diff v3.0.3 sql/sigs
-
If the release is a new minor verify update works.
-
Build the code locally (make a fresh build).
rm -rf build/*
mkdir build
cd build/
# Using all defaults
cmake -DDOC_USE_BOOTSTRAP=ON -DWITH_DOC=ON -DBUILD_DOXY=ON -DCMAKE_BUILD_TYPE=Release -DES=ON ..
make -j 4
sudo make install
cd ..
- Capture the hash for the
pgr_full_version
:
tools/testers/doc_queries_generator.pl -alg version -doc
- Verify the hash has the last commit hash by comparing with the commits of the branch (For Release 3.0: https://github.com/pgRouting/pgrouting/commits/release-3.0)
git diff
- Checkout to the
gh-pages
branch.
git stash
git checkout gh-pages
- Get the latest changes (if any)
git pull
-
Check the index: https://docs.pgrouting.org/ to see which documentation needs to be updated. (e.g. For 3.0.4, only users' documentation needs to be updated).
-
To update the documentation, a small guide can be found here:
more README.md
- For users documentation:
rm -rf 3.0
cp -r build/doc/html 3.0
git add 3.0
- For developers documentation:
rm -rf doxygen
cp -r build/doxygen/html doxygen
git add doxygen
-
Use
git diff
&git status
at your discretion. -
When done checking:
git add 3.0
# the `--no-verify` is in when there is a git hook
git commit --no-verify -m 'Updating users documentation for 3.0.4'
git push
- Go back to the working branch. Wait for the pages to update.
git checkout release-3.0
- Create the tag and push it
git tag -a -m "Create v3.0.4 tag" v3.0.4
git push origin v3.0.4
-
Edit the tag, and make sure that the description of the release contains the Release Notes and the Attachments, similar to this: https://github.com/pgRouting/pgrouting/releases/tag/v3.0.4
-
The attachment consists of 5 files, similar to this:
doc-v3.0.4-en-es.tar.gz
doc-v3.0.4-en.tar.gz
doc-v3.0.4-es.tar.gz
pgrouting-3.0.4.tar.gz
pgrouting-3.0.4.zip
-
The last two files are the source code in
.zip
and.tar.gz
format, which shall be downloaded and uploaded: https://github.com/pgRouting/pgrouting/releases/tag/v3.0.4 -
The first three are compressed documentation files in
.tar.gz
format. Go to thebuild/doc
folder from the file explorer. -
For English-Spanish documentation, rename
html
folder todoc-v3.0.4-en-es
and compress it. -
For English documentation, rename it to
doc-v3.0.4-en
. Make sure the folder only containsen
andindex.html
. Then, compress the folder. -
For Spanish documentation, rename it to
doc-v3.0.4-es
. Make sure the folder only containses
andindex.html
. Edit theindex.html
file to change thehref
fromen
toes
and verify that it opens correctly in the browser. Then, compress the folder. -
Additional Note: to compress in
.tar.gz
format using the terminal:
tar -zcvf doc-v3.0.4-en-es.tar.gz doc-v3.0.4-en-es
- Upload all the compressed documentation files and publish the release.
- Close the milestone for the release (https://github.com/pgRouting/pgrouting/milestones).
-
Mail to pgrouting-dev - pgrouting-dev@lists.osgeo.org (E.g.: https://lists.osgeo.org/pipermail/pgrouting-dev/2020-December/002159.html)
-
Mail to discuss - discuss@lists.osgeo.org (E.g.: https://lists.osgeo.org/pipermail/discuss/2020-December/039181.html)
-
Publish it in OSGeo News page: https://www.osgeo.org/foundation-news/
-
Post on twitter.