diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2342e33d9f7..f12c5809752 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -313,6 +313,22 @@ jobs: RUST_BACKTRACE: 1 TRYBUILD: overwrite + docsrs: + if: ${{ contains(github.event.pull_request.labels.*.name, 'CI-build-full') || (github.event_name != 'pull_request' && github.ref != 'refs/heads/main') }} + needs: [fmt] + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-python@v4 + - uses: Swatinem/rust-cache@v2 + with: + key: cargo-careful + continue-on-error: true + - uses: dtolnay/rust-toolchain@nightly + with: + components: rust-src + - run: cargo rustdoc --lib --no-default-features --features full -Zunstable-options --config "build.rustdocflags=[\"--cfg\", \"docsrs\"]" + coverage: needs: [fmt] name: coverage-${{ matrix.os }} @@ -387,6 +403,8 @@ jobs: run: nox -s test-emscripten test-debug: + needs: [fmt] + if: github.ref != 'refs/heads/main' runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 @@ -438,6 +456,7 @@ jobs: - build-full - valgrind - careful + - docsrs - coverage - emscripten if: always() diff --git a/Cargo.toml b/Cargo.toml index 5bd9855f825..59261dd0e10 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -128,7 +128,7 @@ members = [ [package.metadata.docs.rs] no-default-features = true -features = ["macros", "num-bigint", "num-complex", "hashbrown", "serde", "multiple-pymethods", "indexmap", "eyre", "either", "chrono", "rust_decimal"] +features = ["full"] rustdoc-args = ["--cfg", "docsrs"] [workspace.lints.clippy] diff --git a/src/conversions/either.rs b/src/conversions/either.rs index 4a41d2bd52f..759b282e416 100644 --- a/src/conversions/either.rs +++ b/src/conversions/either.rs @@ -43,9 +43,10 @@ //! //! [either](https://docs.rs/either/ "A library for easy idiomatic error handling and reporting in Rust applications")’s +#[cfg(feature = "experimental-inspect")] +use crate::inspect::types::TypeInfo; use crate::{ - exceptions::PyTypeError, inspect::types::TypeInfo, FromPyObject, IntoPy, PyAny, PyObject, - PyResult, Python, ToPyObject, + exceptions::PyTypeError, FromPyObject, IntoPy, PyAny, PyObject, PyResult, Python, ToPyObject, }; use either::Either; @@ -97,6 +98,7 @@ where } } + #[cfg(feature = "experimental-inspect")] fn type_input() -> TypeInfo { TypeInfo::union_of(&[L::type_input(), R::type_input()]) }