Make features independent from docsrs attribute #1457
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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.