2022-09-27 19:17:19 +08:00
|
|
|
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
|
|
|
|
------
|
|
|
|
|
2024-05-07 09:34:01 +08:00
|
|
|
Login to the lintian-host and ensure that lintian is not currently
|
2022-09-27 19:17:19 +08:00
|
|
|
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`).
|
|
|
|
|
|
|
|
1. 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[...]
|
|
|
|
|
|
|
|
1. 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.
|
|
|
|
|
|
|
|
1. 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).
|