<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
</head>
<body>
<p>(note: these are my observations as a maintainer of a derivative)<br>
</p>
<blockquote type="cite">
<pre>The rust ecosystem in Debian
recently had (and I expect still has) trouble to properly migrate to
testing
</pre>
</blockquote>
Indeed there are still issues, most notablly IMO that firefox-esr's
build-dependencies have been unsatisfiable in testing for over 7
months because rust-cbindgen has not been able to migrate to
testing.<br>
<p> </p>
<blockquote type="cite">
<pre>and is missing a *demonstrated* sane dependency and versioning
scheme (in the context of how Debian is working *at this moment* in time).</pre>
</blockquote>
A big difference with rust and most other languages in this regard
seems to be that rust dependencies, both upstream and as source and
binary dependencies in Debian are typically pessimistic.<br>
<br>
Contrast this with most other languages in Debian, for C/C++ stuff
the binary dependencies are typically somewhat pessimistic, but the
source dependencies are typically optimistic. For most interpreted
languages, both the source and binary dependencies are optimistic.<br>
<br>
Another factor is that the rust packages make heavy use of versioned
provides. Unfortunately while apt and britney seem to handle these
fine the packages.debian.org web interface and the autoremovals
system do not (or at least did not last time I looked). The former
makes understanding rust dependencies difficult. The latter made
filing rc bugs against rust packages with broken dependencies in
testing fairly fruitless.<br>
<br>
Yet another issue is that it took "rust-compiler-builtins" a long
time to get through new, this blocked a lot of rust packages from
transitioning to testing for a long time, which in turn blocked
migration of new versions of a number of fairly important packages.<br>
<br>
The result of all this was a massively snarled up dependency tangle
preventing stuff migrating to testing.<br>
<br>
It seems that in the end Paul Gevers (elbrus) decided to just do a
mass removal of rust stuff from testing, this did un-jam some stuff
but it also excarbated the autopkgtest issues because a test that is
already failing in testing is not a blocker for a new version to
migrate, but once a package is out of testing the autopkgtest will
stop it re-entering.<br>
<br>
As far as I can tell, right now rust-cbindgen's re-entry to testing
seems to be blocked by autopkgtest failures in the following source
packages<br>
<br>
rust-libc ( <a class="moz-txt-link-freetext" href="https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=955997">https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=955997</a>
)<br>
rust-compiler-builtins<br>
rust-atty<br>
rust-unicode-normalization<br>
rust-autocfg<br>
rust-cfg-if (this one has actually previously passed)<br>
rust-no-panic<br>
rust-failure-derive (this one has actually previously passed)<br>
rust-rustc-demangle<br>
rust-uuid<br>
rust-goblin (
<a class="moz-txt-link-freetext" href="https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=947711">https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=947711</a> )<br>
rust-futures<br>
rust-cc<br>
rust-pkg-config<br>
rust-futures<br>
rust-backtrace-sys<br>
<br>
<br>
And by uninstallable featureset packages in the following source
packages<br>
<br>
rust-unicode-width<br>
<br>
And by the requirement for source-only uploads in the following
packages.<br>
<br>
rust-compiler-builtins<br>
rust-goblin<br>
rust-adler32<br>
<br>
And by FTBFS bugs in the following source packages<br>
<br>
rust-core-arch (
<a class="moz-txt-link-freetext" href="https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=952228">https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=952228</a> )<br>
<br>
And by other RC bugs in the following packages<br>
<br>
rust-spin ( Moritz thinks the package should not be in testing
because it's abandoned upstream
<a class="moz-txt-link-freetext" href="https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=946921">https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=946921</a> )<br>
<br>
</body>
</html>