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

Reply via email to