-
Notifications
You must be signed in to change notification settings - Fork 198
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
stop building crates on all targets #343
Comments
I think this is a good idea. Alongside this, we should try to make |
Like in section Metadata for custom builds of https://docs.rs/about ? Though it could use short descriptions of each item. In this context, I'm not personally sure what |
We (embedded-wg) would definitely love a conservative opt-in version of this to prevent our crates from being built for all non-embedded targets, as typically we only build for one or a few |
Now that #632 is merged, you should be able to opt-in to only building one target with
See https://docs.rs/about#metadata for full documentation. |
This makes sure that all Windows platforms will have documentation on docs.rs even after docs.rs stops building all tier 1 targets by default. See rust-lang/docs.rs#532 and rust-lang/docs.rs#343 for more context. Additionally, this stops building targets on Mac and Linux since those targets are just empty anyway.
Hey @jyn514, do you recall why was this tagged as S-blocked? |
@marcospb19 it needs an RFC and I got private feedback that such an RFC likely wouldn't be accepted. At that point I gave up because I only have so much time to throw away on the rust project. |
@rust-lang/docs-rs what are your thoughts on this? seeing the last comment by Jyn & the already increased build capacity I would close this issue. |
No opinion. |
I would like to do it still, the current default set is going to get more and more out of date (it has i686 targets which are not really relevant anymore, but no aarch64 targets which are), but I agree that unless someone puts in the effort to actually write an RFC and get buy-in that's not going to happen anytime soon and there's no need to have an issue here. (Maybe in a few more years when the default set is more out of date it'll be easier to get buy-in to drop it instead of trying to change it). |
After seeing the build queue get backed up by crates that take a long time to build (#335), i'm starting to wonder about the utility of building crates for all platforms all the time.
Currently, when we build a crate, we build it seven times:
default-target
in its[package.metadata.docs.rs]
it will use that target, otherwise it will build using the system's default ofx86_64-unknown-linux-gnu
.i686-apple-darwin
i686-pc-windows-msvc
i686-unknown-linux-gnu
x86_64-apple-darwin
x86_64-pc-windows-msvc
x86_64-unknown-linux-gnu
This can cause a crate's build time to stretch out unnecessarily, especially if there are no API/docs differences between 32-/64-bit, or between Windows/Mac/Linux.
I'd like to propose removing the six extra builds, and replacing them with an
additional-targets
configuration item that would allow crates to choose which targets to build on. In the absence of this field, we would only build once fordefault-target
(orx86_64-unknown-linux-gnu
), and not create any additional builds.This will allow us to build much more crates a lot faster, making it less likely that releasing a bunch of
stm32
crates at the same time will clog up the queue again. On the other hand, crates would have to start listing the platforms they want to build with, instead of just depending on docs.rs to build the major platforms without asking.The text was updated successfully, but these errors were encountered: