5.0 KiB
Lintian release management
Preparing and doing a release
Run the full test suite while the distribution is still set to UNRELEASED to ensure everything and all tests are green. Once complete, replace the placeholder in the changelog with the actual tags changed. The following command may be helpful:
$ private/generate-tag-summary --in-place
Then set the distribution (e.g. via dch -r
) and run the "scripts" test
suite again. This may appear redundant at first, but some of the
tests react differently when the distribution is not UNRELEASED
(e.g. changelog-format checks that you remembered the step above).
Build the package and run lintian on itself, cleaning up or overriding issues that have not been fixed during development. If you do code changes, remember to set the distribution back to UNRELEASED! Otherwise, some checks on the code will be skipped (e.g. critic).
Sign and upload the package. Furthermore, prepare a signed git tag. This is generally done in the following way:
- Take a copy of the signed
.changes
- Optionally strip the signature from it.
- Add a tag message to the top of the file
- Tag with
git tag <VERSION> -u <KEYID> --file <FILE>
This method is used to provide a "trust" path between the tag and
the uploaded files. This is also why we use the signed .changes
(as signing the source package changes the checksums in the .changes
).
Once the upload has been accepted and the commit has been tagged, you may want to "open" the next entry in the changelog. The rationale for this is that it makes tests go back to "regular" development mode. At the same time, the "tag-summary" reminder can be re-added. See commit a9c67f2 as an example of how it is done.
To update lintian on lintian.debian.org, please see the README in /srv/lintian.debian.org on lintian.debian.org. NOTE: if Lintian has obtained any new dependencies, these must be installed by DSA before updating lintian.debian.org (send a patch to DSA for their metapackage for lintian.debian.org).
Updating lintian.debian.org
Once a new release is done and tagged, we can update the installation on archive-wide processing server that generates "lintian.debian.org". Historically, this server was the same as "lintian.debian.org". However, these days the archive-wide processing happens on a separate server called:
lindsay.debian.org (DD-accessible)
In the rest of the this document, we will refer to this as the lintian-host.
The update is done in the following steps:
Step 1
Ensure that any new dependencies are installed. These must be installed by DSA before updating lintian.debian.org (send a patch to DSA for their metapackage for lintian.debian.org).
Often there are no new dependencies meaning that this step can be omitted. Please remember that you can request the dependencies before the lintian release.
Step 2
Login to the lintian-host and ensure that lintian is not currently performing an archive-wide run and that you have "plenty" of time to complete the upgrade. The entire upgrade can be done in less than 5 minutes (but you may want to have a "slightly" larger window the first few times).
You can find lintian's crontab via either:
sudo -ulintian crontab -l
OR
less /srv/lintian.debian.org/etc/cron
If the archive-wide run is currently active, check the harness log
(tail -f /srv/lintian.debian.org/logs/harness.log
).
-
If lintian is processing packages, then send a SIGTERM to the "reporting-lintian-harness" process and it will gracefully terminate lintian and commit the latest changes. A few seconds after the signal has been sent, reporting-lintian-harness should emit something like:
[2018-01-07T14:26:25]: Signal SIGTERM acknowledged[...]
-
If "reporting-sync-state" is running then either kill it and "harness" (if you do not mind triggering an error and possible cron-noise). Alternatively, wait for "reporting-lintian-harness" to start and kill it once lintian starts processing packages.
-
If "reporting-html-reports" is running, then just wait the 5-10 minutes it takes for the entire run to complete. Otherwise, we might end up with a broken report.
Now that we are sure the lintian is not running and will not start in the middle of the upgrade, we can perform the actual upgrade.
cd /srv/lintian.debian.org/lintian
# Reset the directory in case there are out of band patches
# - alternative being "sudo -ulintian git stash" as long as you clean it up
sudo -ulintian git reset --hard
sudo -ulintian git fetch
# e.g. sudo -ulintian git checkout 2.5.67
sudo -ulintian git checkout $LINTIAN_RELEASE_TAG
# Update the manual + manpages
sudo -ulintian debian/rules clean
sudo -ulintian debian/rules rebuild-lintian.debian.org
With this, the upgrade is complete. If the reporting framework needs
additional configuration, please remember to update
/srv/lintian.debian.org/config.yaml
(Note it is not the one in the
reporting directory).