We generally try to make it so that old revisions of Servo keep working,
so that we can for example use 'git bisect'.
We just found out that, unfortunately, bootstrapping is broken for all
Servo revisions since 2015-11-07, or (for more recent revisions) will be
soon.
In the default config, these revisions automatically downloads some
combination of rustc, std, and/or cargo from the 'rust-lang-ci' AWS S3
bucket. This contains the output of Rust’s CI for every merged PR, and
is managed by Rust’s infrastructure team.
They have recently announced a policy of removing files more than 90
days old:
https://internals.rust-lang.org/t/updates-on-rusts-ci-uploads/6062
They have further clarified that only resources under
https://static.rust-lang.org/ are considered stable and public,
everything else could go away at any time:
https://internals.rust-lang.org/t/public-stable-rust-services/6072
We can move to static.rust-lang.org as much as possible (I’ll start
another thread with the details), but that leaves older commits of the
servo/servo repository.
Rewriting the git history (to bootstrap from different URLs) would be
very disruptive, I strongly think we should not.
The relevant range of Servo commits depends on a few dozens of Rust
version, much fewer than every merged Rust PR in that time. We could ask
the Rust team if they’re willing to add exceptions to their deletion
policy to preserve these specific versions. However some of these files
are already gone, we’d have to recompile them from source.
But more importantly, how much should we really care about all this? How
often have you used 'git bisect' in servo/servo, let’s say in the past
year? How much effort should we put into all this, compared to the
effort of manually finding and configuring working Rust and Cargo
versions if we ever need to build an old Servo version?
--
Simon Sapin
_______________________________________________
dev-servo mailing list
dev-servo@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-servo