gtk-rs / gir

Tool to generate rust bindings and user API for glib-based libraries
https://gtk-rs.org/gir/book/
MIT License
230 stars 102 forks source link

Make features independent from docsrs attribute #1457

Closed AaronErhardt closed 1 year ago

AaronErhardt commented 1 year ago

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.