Removing the "dox" feature caused some unexpected complications because some crates, cairo in particular, used the "dox" feature as replacement for --all-features. In other words, "dox" did not only enable the typical documentation configuration, but also pulled in additional dependencies and effectively overwrote some feature flags (with #[cfg(any(feature = "...", feature = "dox"))]). This behavior was matched with the docsrs attribute so far, but of course the attribute can't activate dependencies in Cargo.toml.
My proposed solution would be to never use the docsrs attribute to interact with feature flags and conditional compilation. If someone wants to document everything --all-features would be the way to go. This makes sure that conditional compilation is the same in regular builds and doc builds.
Removing the "dox" feature caused some unexpected complications because some crates, cairo in particular, used the "dox" feature as replacement for
--all-features
. In other words, "dox" did not only enable the typical documentation configuration, but also pulled in additional dependencies and effectively overwrote some feature flags (with#[cfg(any(feature = "...", feature = "dox"))]
). This behavior was matched with thedocsrs
attribute so far, but of course the attribute can't activate dependencies in Cargo.toml.My proposed solution would be to never use the
docsrs
attribute to interact with feature flags and conditional compilation. If someone wants to document everything--all-features
would be the way to go. This makes sure that conditional compilation is the same in regular builds and doc builds.