add instructions on how to unblock testing migrations
Ximin Luo
4 years ago
0 | Release | |
1 | ======= | |
2 | ||
3 | For this team's purposes, the job is not done until the package gets into | |
4 | Debian Testing. This is a rigorous QA process the details of which can be read | |
5 | about elsewhere. The short version for us, is to run:: | |
6 | ||
7 | dev/rust-excuses.mk refresh all | |
8 | ||
9 | which will generate a nice pretty graph of packages trying to enter Debian | |
10 | Testing, along with their dependencies, and sometimes a colour representing the | |
11 | reason why it's being held back. (The colours could be more sophisticated, | |
12 | please help with improving the script. White does not always mean there is no | |
13 | problem; the excuses page is the authoritative source on the matter.) | |
14 | ||
15 | Generally, you should look at the bottom-most packages in this diagram, and | |
16 | deal with their issues first. More details for each package can be found at: | |
17 | ||
18 | https://qa.debian.org/excuses.php?package=rust-$crate | |
19 | ||
20 | or by clicking the relevant "Excuse" link on this team's `QA page`_. | |
21 | ||
22 | .. _QA page: https://qa.debian.org/developer.php?login=pkg-rust-maintainers@lists.alioth.debian.org | |
23 | ||
24 | It should be fairly self-explanatory on how to deal with each of the issues | |
25 | mentioned on that page. Ask in #debian-rust or #debian-release or #debian-devel | |
26 | if you get stuck, whichever channel seems most suitable. | |
27 | ||
28 | Once you have dealt with all of the excuses, wait a day or so. If the excuses | |
29 | page then says "Will attempt migration (Any information below is purely | |
30 | informational)" and it remains in this state for more than 2 days, it means | |
31 | that we have failed "Migration phase 2", whose specific failure reasons are not | |
32 | mentioned in the excuses for `technical reasons`_. | |
33 | ||
34 | .. _technical reasons: https://release.debian.org/doc/britney/short-intro-to-migrations.html#migration-phase-2-installability-regression-testing | |
35 | ||
36 | However the reason is basically that there are other crates already in Debian | |
37 | Testing that depend on the old version of the $crate you were looking at, i.e. | |
38 | the one in Debian Testing not Debian Unstable. To view a summary of this, run:: | |
39 | ||
40 | dev/list-rdeps.sh $crate | |
41 | ||
42 | It will also give you some follow-up instructions to fix the problem. |
0 | #!/bin/bash | |
1 | set -e | |
2 | ||
3 | pkg="${1//_/-}" | |
4 | which grep-dctrl >/dev/null | |
5 | ||
6 | echo "Version in unstable:" | |
7 | aptitude versions --disable-columns -F '%p' --group-by=none '~e^rust-unicode-xid$ ~rnative ~Aunstable' | |
8 | echo | |
9 | ||
10 | echo "Versions of rdeps:" | |
11 | aptitude versions --group-by=none --disable-columns -F '%p %t' \ | |
12 | "~rnative ~D^librust-${pkg}(-dev|\+\w+-dev)$" \ | |
13 | | grep unstable | while read rdep ver archives; do | |
14 | apt-cache show "${rdep}=${ver}" \ | |
15 | | grep-dctrl -FDepends -e "librust-${pkg}(\+|-[0-9]).*-dev" -sPackage,Version,Depends - \ | |
16 | | sed -Ee "/Depends/s/.*(librust-${pkg}(\+|-[0-9])\S*-dev[^,]*).*/Depends: \1/g" \ | |
17 | | cut -d: -f2 | cut '-d ' -f2 \ | |
18 | | sed -z -e 's/\n\n/\t/g' -e 's/\n/ /g' -e 's/\t/\n/g' | |
19 | done | sort | while read rdep ver dep; do | |
20 | printf "%-40s %-10s %s\n" "$rdep" "$ver" "$dep" | |
21 | done | |
22 | echo | |
23 | ||
24 | cat <<eof | |
25 | You must upgrade any rdep that depends on an old version of ${pkg}, by patching | |
26 | Cargo.toml to accept the new version of ${pkg} as a dependency. Of course, | |
27 | check that the build works - if it doesn't, then you'll need to further patch | |
28 | the source code of the rdep to use the API of the new version of ${pkg}. | |
29 | ||
30 | Alternatively, if any rdep is obsolete (i.e. nothing else depends on it) then | |
31 | you should file a RM request to remove it from the Debian archive: | |
32 | ||
33 | $ reportbug ftp.debian.org | |
34 | [..] | |
35 | What sort of request is this? | |
36 | [..] | |
37 | 6 ROM Package removal - Request Of Maintainer. | |
38 | [..] | |
39 | Choose the request type: 6 | |
40 | [..] | |
41 | Is the removal to be done in a suite other than "unstable"? Don't select anything for "unstable" | |
42 | [..] | |
43 | Choose the suite: # input nothing here, i.e. "unstable" | |
44 | Please enter the reason for removal: obsolete package, prevents others from migrating to testing | |
45 | Is this removal request for specific architectures? [y|N|?]? n | |
46 | [..] | |
47 | # An editor will spawn, probably nano. add | |
48 | # X-Debbugs-Cc: pkg-rust-maintainers@alioth-lists.debian.net | |
49 | # to the header, and then add the following text to the body: | |
50 | ||
51 | Hi, please remove this package on all architectures. It is an old rust library | |
52 | that is preventing newer ones from migrating to testing. Nothing else in the | |
53 | archive depends on it these days. | |
54 | ||
55 | # then save and exit. | |
56 | eof |