|
|
This pages sums up technical information to perform the different tasks
|
|
|
from the release process. Action items from the release template link here. In the following sections, the release will have the generic name: MAJOR.MINOR.PATCH.
|
|
|
Each number shall be replaced by the current release number.
|
|
|
This pages sums up technical information to perform the different tasks from the release process. Action items from the release template link here. In the following sections, the release will have the generic name: MAJOR.MINOR.PATCH. Each number shall be replaced by the current release number.
|
|
|
|
|
|
[[_TOC_]]
|
|
|
|
... | ... | @@ -8,50 +6,60 @@ Each number shall be replaced by the current release number. |
|
|
|
|
|
### Create release branch
|
|
|
|
|
|
git checkout -b release-MAJOR.MINOR develop
|
|
|
git push origin release-MAJOR.MINOR
|
|
|
```
|
|
|
git checkout -b release-MAJOR.MINOR develop
|
|
|
git push origin release-MAJOR.MINOR
|
|
|
```
|
|
|
|
|
|
### RC tag
|
|
|
|
|
|
git checkout release-X.Y
|
|
|
git tag -a MAJOR.MINOR.PATCH-rc1 -m "Release Candidate tag MAJOR.MINOR.PATCH-rc1"
|
|
|
git push --tags origin release-X.Y
|
|
|
```
|
|
|
git checkout release-X.Y
|
|
|
git tag -a MAJOR.MINOR.PATCH-rc1 -m "Release Candidate tag MAJOR.MINOR.PATCH-rc1"
|
|
|
git push --tags origin release-X.Y
|
|
|
```
|
|
|
|
|
|
### Get a RC checkout
|
|
|
|
|
|
Send the command to get a RC checkout in the announcement email, so that
|
|
|
more users try it.
|
|
|
Send the command to get a RC checkout in the announcement email, so that more users try it.
|
|
|
|
|
|
git clone https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb.git OTB
|
|
|
cd OTB
|
|
|
git checkout -q --detach MAJOR.MINOR.PATCH-rc1
|
|
|
```
|
|
|
git clone https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb.git OTB
|
|
|
cd OTB
|
|
|
git checkout -q --detach MAJOR.MINOR.PATCH-rc1
|
|
|
```
|
|
|
|
|
|
### Release tag
|
|
|
|
|
|
For OTB repository, tag the release branch:
|
|
|
|
|
|
git checkout release-X.Y
|
|
|
git tag -a MAJOR.MINOR.PATCH -m "Release tag MAJOR.MINOR.PATCH"
|
|
|
git push --tags
|
|
|
```
|
|
|
git checkout release-X.Y
|
|
|
git tag -a MAJOR.MINOR.PATCH -m "Release tag MAJOR.MINOR.PATCH"
|
|
|
git push --tags
|
|
|
```
|
|
|
|
|
|
For other repositories (OTB-Documents, OTB-DevUtils, otb-build-env), tag master:
|
|
|
|
|
|
git checkout master
|
|
|
git tag -a MAJOR.MINOR.PATCH -m "Release tag MAJOR.MINOR.PATCH"
|
|
|
git push --tags
|
|
|
```
|
|
|
git checkout master
|
|
|
git tag -a MAJOR.MINOR.PATCH -m "Release tag MAJOR.MINOR.PATCH"
|
|
|
git push --tags
|
|
|
```
|
|
|
|
|
|
### Merge latest release into master
|
|
|
|
|
|
On OTB repository:
|
|
|
|
|
|
git checkout master
|
|
|
git merge release-X.Y
|
|
|
git push
|
|
|
```
|
|
|
git checkout master
|
|
|
git merge release-X.Y
|
|
|
git push
|
|
|
```
|
|
|
|
|
|
### Prepare and upload source packages
|
|
|
|
|
|
For convenience, nightly generated source packages should be available
|
|
|
[here](https://www.orfeo-toolbox.org/packages/ci/staging/).
|
|
|
For convenience, nightly generated source packages should be available [here](https://www.orfeo-toolbox.org/packages/ci/staging/).
|
|
|
|
|
|
For more information, check the script `OTB/CI/deploy.sh`, and the command `git archive`.
|
|
|
|
... | ... | @@ -59,28 +67,27 @@ You will have to copy and rename the release archives into `/var/www/archives/pa |
|
|
|
|
|
Then, create a symbolic link in `/var/www/archives/packages`. This directory contains links to the current release of OTB. This means you should remove older links from this directory.
|
|
|
|
|
|
For a release version 3.2.1, the naming convention should follow the
|
|
|
pattern `OTB-3.2.1.[zip/tar.gz/tar.xz]`.
|
|
|
For a release version 3.2.1, the naming convention should follow the pattern `OTB-3.2.1.[zip/tar.gz/tar.xz]`.
|
|
|
|
|
|
If it is the 2nd release candidate: `OTB-3.2.1-rc2.[zip/tar.gz/tar.xz]`.
|
|
|
|
|
|
## Update the RELEASE_NOTES.txt
|
|
|
|
|
|
As proposed [here](https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/issues/1953#note_80787).
|
|
|
As proposed [here](https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/issues/1953#note_80787 "Release 7 planning").
|
|
|
|
|
|
The release note is divided into five categories: Feature, Bug, Refactoring, CI, and Documentation.
|
|
|
|
|
|
Make sure all the MR related to this release are attributed to the corresponding [milestone](https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/milestones). Assigned a label (~feature, ~bug, ~refactoring, ~CI or ~documentation) to each MR that do not already have one of these labels.
|
|
|
Make sure all the MR related to this release are attributed to the corresponding [milestone](https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/milestones). Assigned a label ( ~feature, ~bug, ~refactoring, \~CI or ~documentation) to each MR that do not already have one of these labels.
|
|
|
|
|
|
Generate the release notes category by category, using the gitlab API and the `jq` command line program (json processing). For example, to fetch all %7.0.0 MR labeled ~feature:
|
|
|
|
|
|
```bash
|
|
|
curl "https://gitlab.orfeo-toolbox.org/api/v4/projects/53/merge_requests?state=merged&milestone=9.0.0&per_page=100&labels=feature&page=1" | jq '.[] | "Merge Request !"+(.iid|tostring)+": " + .title+" by "+.author.name'
|
|
|
curl "https://gitlab.orfeo-toolbox.org/api/v4/projects/53/merge_requests?state=merged&milestone=9.0.0&per_page=100&labels=feature&page=1" | jq '.[] | "Merge Request !"+(.iid|tostring)+": " + .title+" by "+.author.name' | sed -e 's/^"Merge Request //' -e 's/.$//'
|
|
|
```
|
|
|
|
|
|
Some cleaning may be needed:
|
|
|
|
|
|
* Add some postprocessing to remove extra `" "` and `\` from the output of the command
|
|
|
* Add some postprocessing to remove `\` from the output of the command
|
|
|
* It seems that the gitlab API limits the number of item (MR) by page to 100. For labels with more than 100 items, we need to call the command twice, once with the `&page=1` option and once with `&page=2`.
|
|
|
* Some MRs are listed several times in the release note, when they have multiple labels (e.g. ~bug and ~feature). I don't think this is an issue.
|
|
|
|
... | ... | @@ -88,92 +95,88 @@ Some cleaning may be needed: |
|
|
|
|
|
This is a simple script to run, but it should be run from its directory.
|
|
|
|
|
|
cd OTB/Utilities/Maintenance
|
|
|
./fix_typos.sh
|
|
|
```
|
|
|
cd OTB/Utilities/Maintenance
|
|
|
./fix_typos.sh
|
|
|
```
|
|
|
|
|
|
The tool (based on codespell) will identify potential spelling errors
|
|
|
and suggest a replacement. The user accepts or refuses those changes
|
|
|
(Y/n).
|
|
|
The tool (based on codespell) will identify potential spelling errors and suggest a replacement. The user accepts or refuses those changes (Y/n).
|
|
|
|
|
|
## OTB website
|
|
|
|
|
|
The resources for OTB website are placed in separate folders :
|
|
|
|
|
|
- /var/www/doc : all resources for documentation
|
|
|
- /var/www/archives : storage for source code, binary packages, and
|
|
|
other archives
|
|
|
- /var/www/wordpress-4.4 : website architecture
|
|
|
- /var/www/doc : all resources for documentation
|
|
|
- /var/www/archives : storage for source code, binary packages, and other archives
|
|
|
- /var/www/wordpress-4.4 : website architecture
|
|
|
|
|
|
A lot of resources are accessed with symlinks. The advised command to
|
|
|
define a symlink is :
|
|
|
A lot of resources are accessed with symlinks. The advised command to define a symlink is :
|
|
|
|
|
|
ln -nsf target_file link_name
|
|
|
```
|
|
|
ln -nsf target_file link_name
|
|
|
```
|
|
|
|
|
|
### SuperBuild archive
|
|
|
|
|
|
The SuperBuild archive is an all-in-one archive with the sources of the
|
|
|
different projects compiled by the SuperBuild. The versions of these
|
|
|
projects may vary between 2 releases, so the release number should be
|
|
|
visible on this archive. The MD5 sum of the archive is also supplied.
|
|
|
Since it is a large archive, users may need to check the download was
|
|
|
successful. The archives for the develop branch and the latest release
|
|
|
branch are produced nightly and available on the website :
|
|
|
[1](https://www.orfeo-toolbox.org/packages/nightly/SuperBuild-archives)
|
|
|
The SuperBuild archive is an all-in-one archive with the sources of the different projects compiled by the SuperBuild. The versions of these projects may vary between 2 releases, so the release number should be visible on this archive. The MD5 sum of the archive is also supplied. Since it is a large archive, users may need to check the download was successful. The archives for the develop branch and the latest release branch are produced nightly and available on the website : [1](https://www.orfeo-toolbox.org/packages/nightly/SuperBuild-archives)
|
|
|
|
|
|
These files should be copied to the OTB website in :
|
|
|
|
|
|
/var/www/archives/packages
|
|
|
```
|
|
|
/var/www/archives/packages
|
|
|
```
|
|
|
|
|
|
Old archives should be added to /var/www/archives/packages/archives/OTB/
|
|
|
|
|
|
**For manual generation**
|
|
|
|
|
|
Both archive and md5 sum can also be generated from a CMake target in
|
|
|
OTB project :
|
|
|
Both archive and md5 sum can also be generated from a CMake target in OTB project :
|
|
|
|
|
|
make SuperBuild-archive
|
|
|
```
|
|
|
make SuperBuild-archive
|
|
|
```
|
|
|
|
|
|
This command will try to download all sources in
|
|
|
OTB\_BINARY\_DIR/Download, and produce the output files in
|
|
|
OTB\_BINARY\_DIR. It will also report dead links.
|
|
|
This command will try to download all sources in OTB_BINARY_DIR/Download, and produce the output files in OTB_BINARY_DIR. It will also report dead links.
|
|
|
|
|
|
If this archive is for a particular release, use the naming conventions
|
|
|
:
|
|
|
If this archive is for a particular release, use the naming conventions :
|
|
|
|
|
|
SuperBuild-archives-MAJOR.MINOR.tar.bz2
|
|
|
SuperBuild-archives-MAJOR.MINOR.md5
|
|
|
```
|
|
|
SuperBuild-archives-MAJOR.MINOR.tar.bz2
|
|
|
SuperBuild-archives-MAJOR.MINOR.md5
|
|
|
```
|
|
|
|
|
|
If this archive is for develop, use the naming conventions :
|
|
|
|
|
|
SuperBuild-archives-develop.tar.bz2
|
|
|
SuperBuild-archives-develop.md5
|
|
|
```
|
|
|
SuperBuild-archives-develop.tar.bz2
|
|
|
SuperBuild-archives-develop.md5
|
|
|
```
|
|
|
|
|
|
### Promote staging packages
|
|
|
|
|
|
Since version 9.0, there are scripts available to promote staging packages and the documentation.
|
|
|
|
|
|
cd /var/www/archives/packages/deploy_scripts
|
|
|
sh deploy_packages_from_ci.sh
|
|
|
```
|
|
|
cd /var/www/archives/packages/deploy_scripts
|
|
|
sh deploy_packages_from_ci.sh
|
|
|
```
|
|
|
|
|
|
Verify that the packages are well copied in the archives/OTB folder.
|
|
|
|
|
|
Alternatively, you can do it manually :
|
|
|
On OTB server, copy standalone packages from
|
|
|
`/var/www/archives/packages/ci/staging` to 2 locations :
|
|
|
Alternatively, you can do it manually : On OTB server, copy standalone packages from `/var/www/archives/packages/ci/staging` to 2 locations :
|
|
|
|
|
|
- `/var/www/archives/packages`
|
|
|
- `/var/www/archives/packages/archives/OTB`
|
|
|
- `/var/www/archives/packages`
|
|
|
- `/var/www/archives/packages/archives/OTB`
|
|
|
|
|
|
You shall copy the following binaries:
|
|
|
|
|
|
- OTB Windows 64bit
|
|
|
- OTB Linux 64bit
|
|
|
- OTB Windows 64bit
|
|
|
- OTB Linux 64bit
|
|
|
|
|
|
Then, cleanup in the packages folder if relevant:
|
|
|
|
|
|
- make sure older release and release candidate packages are in
|
|
|
'archives/OTB'
|
|
|
- keep latest release and clean older binaries
|
|
|
- make sure older release and release candidate packages are in 'archives/OTB'
|
|
|
- keep latest release and clean older binaries
|
|
|
|
|
|
For final release, update the symlinks in `/var/www/archives/qgis` :
|
|
|
|
... | ... | @@ -184,28 +187,33 @@ For final release, update the symlinks in `/var/www/archives/qgis` : |
|
|
|
|
|
Updating documentation contains multiple steps:
|
|
|
|
|
|
- Cookbook
|
|
|
- Doxygen
|
|
|
- Cookbook
|
|
|
- Doxygen
|
|
|
|
|
|
For an automatic deployment :
|
|
|
|
|
|
cd /var/www/archives/packages/deploy_scripts
|
|
|
sh deploy_documentation.sh
|
|
|
```
|
|
|
cd /var/www/archives/packages/deploy_scripts
|
|
|
sh deploy_documentation.sh
|
|
|
```
|
|
|
|
|
|
For a manual deployment :
|
|
|
|
|
|
#### CookBook
|
|
|
|
|
|
The CookBook is generated for the latest commit on release branch. The tar.gz archive should be
|
|
|
copied in: `/var/www/archives/packages/archives/Doc/`. The online html version shall be
|
|
|
deployed in `/var/www/doc/CookBook-MAJOR.MINOR`.
|
|
|
The CookBook is generated for the latest commit on release branch. The tar.gz archive should be copied in: `/var/www/archives/packages/archives/Doc/`. The online html version shall be deployed in `/var/www/doc/CookBook-MAJOR.MINOR`.
|
|
|
|
|
|
tar -xzf /var/www/archives/packages/ci/staging/CookBook-MAJOR.MINOR.PATCH-html.tar.gz -C /var/www/doc
|
|
|
```
|
|
|
tar -xzf /var/www/archives/packages/ci/staging/CookBook-MAJOR.MINOR.PATCH-html.tar.gz -C /var/www/doc
|
|
|
```
|
|
|
|
|
|
The symlinks in /var/www/wordpress-4.4 have to be updated :
|
|
|
|
|
|
cd /var/www/wordpress-4.4
|
|
|
ln -nsf /var/www/doc/CookBook-MAJOR.MINOR CookBook-MAJOR.MINOR
|
|
|
ln -nsf CookBook-MAJOR.MINOR CookBook
|
|
|
```
|
|
|
cd /var/www/wordpress-4.4
|
|
|
ln -nsf /var/www/doc/CookBook-MAJOR.MINOR CookBook-MAJOR.MINOR
|
|
|
ln -nsf CookBook-MAJOR.MINOR CookBook
|
|
|
```
|
|
|
|
|
|
#### Update version list in CookBook
|
|
|
|
... | ... | @@ -213,52 +221,43 @@ In the develop branch, update the file `Documentation/Cookbook/_static/html/vers |
|
|
|
|
|
#### Doxygen
|
|
|
|
|
|
The doxygen is generated for the latest commit on release branch. The current doxygen should be copied to
|
|
|
/var/www/doc:
|
|
|
The doxygen is generated for the latest commit on release branch. The current doxygen should be copied to /var/www/doc:
|
|
|
|
|
|
cd /var/www/doc
|
|
|
tar -xjf /var/www/archives/packages/ci/staging/OTB-Doxygen-MAJOR.MINOR.PATCH.tar.bz2 -C .
|
|
|
mv html doxygen-MAJOR.MINOR
|
|
|
```
|
|
|
cd /var/www/doc
|
|
|
tar -xjf /var/www/archives/packages/ci/staging/OTB-Doxygen-MAJOR.MINOR.PATCH.tar.bz2 -C .
|
|
|
mv html doxygen-MAJOR.MINOR
|
|
|
```
|
|
|
|
|
|
The symlinks in /var/www/wordpress-4.0 have to be updated:
|
|
|
|
|
|
cd /var/www/wordpress-4.4
|
|
|
ln -nsf ../doc/doxygen-MAJOR.MINOR doxygen-MAJOR.MINOR
|
|
|
ln -nsf doxygen-MAJOR.MINOR doxygen
|
|
|
```
|
|
|
cd /var/www/wordpress-4.4
|
|
|
ln -nsf ../doc/doxygen-MAJOR.MINOR doxygen-MAJOR.MINOR
|
|
|
ln -nsf doxygen-MAJOR.MINOR doxygen
|
|
|
```
|
|
|
|
|
|
#### Wordpress content update
|
|
|
|
|
|
After a release, the “Download” page should be updated. This page can be
|
|
|
edited from the wordpress admin interface (look for Pages -\> Download).
|
|
|
After a release, the “Download” page should be updated. This page can be edited from the wordpress admin interface (look for Pages -\> Download).
|
|
|
|
|
|
The front page of the website should also be updated with the last
|
|
|
released version and the date. From the wordpress admin interface, look
|
|
|
for Pages -\> “Open Source processing of remote sensing images - Front
|
|
|
Page”.
|
|
|
The front page of the website should also be updated with the last released version and the date. From the wordpress admin interface, look for Pages -\> “Open Source processing of remote sensing images - Front Page”.
|
|
|
|
|
|
Note : In a different version of wordpress, the front page buttons were
|
|
|
edited through “Appearance” -\> “Theme Options” -\> “Header One
|
|
|
Settings”.
|
|
|
Note : In a different version of wordpress, the front page buttons were edited through “Appearance” -\> “Theme Options” -\> “Header One Settings”.
|
|
|
|
|
|
## Standalone packages sanity check
|
|
|
|
|
|
Manually check that the packages that are about to be released as the
|
|
|
next OTB version are working. For a given platform, do the following:
|
|
|
|
|
|
- Identify the exact file about to be released
|
|
|
- Download that file
|
|
|
- Follow word-for-word the official installation procedure from the
|
|
|
Cookbook
|
|
|
- Open Monteverdi
|
|
|
- Activate Help/About... dialog and check version number
|
|
|
- Open [this .tif
|
|
|
image](https://git.orfeo-toolbox.org/otb-data.git/blob/HEAD:/Examples/QB_Toulouse_Ortho_PAN.tif).
|
|
|
- Navigate in the image briefly: translate, zoom, use the
|
|
|
quicklook window
|
|
|
- Load OTB applications
|
|
|
- Open the 'Image conversion' (otbgui\_Convert) application and
|
|
|
run it on the loaded image (pick random parameters)
|
|
|
- Check french translation (i18n)
|
|
|
|
|
|
If there is any problem, crash or suspicious behavior when doing the
|
|
|
above, open an issue. |
|
|
\ No newline at end of file |
|
|
Manually check that the packages that are about to be released as the next OTB version are working. For a given platform, do the following:
|
|
|
|
|
|
- Identify the exact file about to be released
|
|
|
- Download that file
|
|
|
- Follow word-for-word the official installation procedure from the Cookbook
|
|
|
- Open Monteverdi
|
|
|
- Activate Help/About... dialog and check version number
|
|
|
- Open [this .tif image](https://git.orfeo-toolbox.org/otb-data.git/blob/HEAD:/Examples/QB_Toulouse_Ortho_PAN.tif).
|
|
|
- Navigate in the image briefly: translate, zoom, use the quicklook window
|
|
|
- Load OTB applications
|
|
|
- Open the 'Image conversion' (otbgui_Convert) application and run it on the loaded image (pick random parameters)
|
|
|
- Check french translation (i18n)
|
|
|
|
|
|
If there is any problem, crash or suspicious behavior when doing the above, open an issue. |
|
|
\ No newline at end of file |