-
Notifications
You must be signed in to change notification settings - Fork 223
stop building crates on all targets #343
Copy link
Copy link
Closed as not planned
Labels
A-buildsArea: Building the documentation for a crateArea: Building the documentation for a crateE-easyEffort: Should be easy to implement and would make a good first PREffort: Should be easy to implement and would make a good first PRS-blockedStatus: marked as blocked ❌ on something else such as an RFC or other implementation work.Status: marked as blocked ❌ on something else such as an RFC or other implementation work.
Metadata
Metadata
Assignees
Labels
A-buildsArea: Building the documentation for a crateArea: Building the documentation for a crateE-easyEffort: Should be easy to implement and would make a good first PREffort: Should be easy to implement and would make a good first PRS-blockedStatus: marked as blocked ❌ on something else such as an RFC or other implementation work.Status: marked as blocked ❌ on something else such as an RFC or other implementation work.
Type
Fields
Give feedbackNo fields configured for issues without a type.
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-targetin 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-darwini686-pc-windows-msvci686-unknown-linux-gnux86_64-apple-darwinx86_64-pc-windows-msvcx86_64-unknown-linux-gnuThis 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-targetsconfiguration 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
stm32crates 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.