diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b219400..5b59fce 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -14,6 +14,15 @@ env: jobs: lint: + strategy: + matrix: + toolchain: + # Run against a "known good" nightly + - nightly-2022-07-18 + # Check for breakage on latest nightly + - nightly + # But if latest nightly fails, allow the workflow to continue + continue-on-error: ${{ matrix.toolchain == 'nightly' }} runs-on: ubuntu-latest container: devkitpro/devkitarm steps: @@ -25,7 +34,7 @@ jobs: with: components: clippy, rustfmt, rust-src profile: minimal - toolchain: nightly + toolchain: ${{ matrix.toolchain }} default: true - name: Install build tools for host @@ -39,20 +48,16 @@ jobs: # once cargo-3ds gets published somewhere... args: >- --git https://github.com/rust3ds/cargo-3ds - --rev 913645665391ea715bc96910bda35f98a4536a6e + --rev 7b70b6b26c4740b9a10ab85b832ee73c41142bbb - name: Check formatting run: cargo fmt --all --verbose -- --check - # For some reason, `cargo clippy` doesn't seem to work properly with - # -Zbuild-std (and thus with `cargo 3ds`). Maybe would be helped by - # https://github.com/rust3ds/cargo-3ds/pull/21 ? - name: Cargo check - run: cargo 3ds check --color=always --workspace --verbose --all-targets + run: cargo 3ds clippy --color=always --workspace --verbose --all-targets env: RUSTFLAGS: --deny=warnings # TODO: it would be nice to actually build 3dsx for examples/tests, etc. - # and run it somehow, but exactly how remains to be seen. Also, we probably - # need the std::thread PR to land before a lot of the examples are runnable. + # and run it somehow, but exactly how remains to be seen. diff --git a/ctru-rs/Cargo.toml b/ctru-rs/Cargo.toml index 1016198..3c90be8 100644 --- a/ctru-rs/Cargo.toml +++ b/ctru-rs/Cargo.toml @@ -36,5 +36,29 @@ default = ["romfs", "big-stack"] romfs = [] big-stack = [] +# Temporary feature to disable some examples by default, +# until thread support is upstreamed +std-threads = [] + [package.metadata.cargo-3ds] romfs_dir = "examples/romfs" + +[[example]] +name = "thread-basic" +required-features = ["std-threads"] + +[[example]] +name = "thread-info" +required-features = ["std-threads"] + +[[example]] +name = "thread-locals" +required-features = ["std-threads"] + +[[example]] +name = "futures-basic" +required-features = ["std-threads"] + +[[example]] +name = "futures-tokio" +required-features = ["std-threads"] diff --git a/ctru-sys/src/bin/docstring-to-rustdoc.rs b/ctru-sys/src/bin/docstring-to-rustdoc.rs index a843a1b..21b1185 100644 --- a/ctru-sys/src/bin/docstring-to-rustdoc.rs +++ b/ctru-sys/src/bin/docstring-to-rustdoc.rs @@ -32,7 +32,7 @@ fn main() -> io::Result<()> { .lines() .map(|v| { // Only modify lines with the following structure: `` #[doc ... ] `` - if v.trim_start().starts_with("#[doc") && v.trim_end().ends_with("]") { + if v.trim_start().starts_with("#[doc") && v.trim_end().ends_with(']') { v.replace("@brief", "") // Example: ``@param offset Offset of the RomFS...`` -> ``- offset Offset of the RomFS...`` // Will improve in the future