Skip to content

Commit

Permalink
Pin rust versions in CI
Browse files Browse the repository at this point in the history
- Fix a clippy lint in lib.rs
- Pin rust version in all CI jobs that use cargo commands
  • Loading branch information
BenFordTytherington committed Nov 4, 2024
1 parent 520312e commit 98d5912
Show file tree
Hide file tree
Showing 11 changed files with 31 additions and 19 deletions.
25 changes: 17 additions & 8 deletions .github/workflows/github-cxx-qt-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ jobs:
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
- run: rustup default 1.77.2
- run: rustup component add rustfmt
- run: cargo fmt --all --check --verbose

Expand Down Expand Up @@ -72,8 +73,9 @@ jobs:
uses: actions/checkout@v4
- name: Setup toolchain
run: |
rustup default 1.77.2
cargo install grcov
rustup component add llvm-tools
rustup component add llvm-tools rustfmt
- name: build
env:
RUSTFLAGS: -Cinstrument-coverage
Expand Down Expand Up @@ -106,6 +108,8 @@ jobs:
uses: actions/checkout@v4
- name: Setup toolchain
run: |
rustup toolchain add 1.78.0
rustup default 1.77.2
rustup component add clippy rustfmt
rustup target add wasm32-unknown-emscripten
- name: "Rust tools cache"
Expand All @@ -116,13 +120,14 @@ jobs:
~/.cargo/bin/sccache
~/.cargo/bin/mdbook
~/.cargo/bin/mdbook-linkcheck
key: ubuntu-24.04_sccache-0.7.6_mdbook-0.4.36_mdbook-linkcheck-0.7.7
key: ubuntu-24.04_sccache-0.8.2_mdbook-0.4.36_mdbook-linkcheck-0.7.7
- name: "Build Rust tools"
if: steps.rust-tools-cache.outputs.cache-hit != 'true'
# Do not build with storage backends enabled, we only need local
run: |
cargo install --no-default-features sccache
cargo install mdbook mdbook-linkcheck
cargo install --no-default-features --version 0.8.2 sccache
cargo install --version 0.4.36 mdbook
cargo install --version 0.7.7 mdbook-linkcheck
# We want our compiler cache to always update to the newest state.
# The best way for us to achieve this is to **always** update the cache after every landed commit.
# That way it will closely follow our development.
Expand Down Expand Up @@ -369,7 +374,10 @@ jobs:
#
# Note we still need rustfmt for the cxx-qt-gen tests
- name: "Install Rust toolchain"
run: rustup component add clippy rustfmt
run: |
rustup toolchain add 1.78.0
rustup default 1.77.2
rustup component add clippy rustfmt
- name: "Rust tools cache"
uses: actions/cache@v4
Expand All @@ -379,13 +387,14 @@ jobs:
${{ matrix.cargo_dir }}/bin/sccache${{ matrix.exe_suffix }}
${{ matrix.cargo_dir }}/bin/mdbook${{ matrix.exe_suffix }}
${{ matrix.cargo_dir }}/bin/mdbook-linkcheck${{ matrix.exe_suffix }}
key: ${{ matrix.os }}_sccache-0.7.6_mdbook-0.4.36_mdbook-linkcheck-0.7.7
key: ${{ matrix.os }}_sccache-0.8.2_mdbook-0.4.36_mdbook-linkcheck-0.7.7
- name: "Build Rust tools"
if: steps.rust-tools-cache.outputs.cache-hit != 'true'
# Do not build with storage backends enabled, we only need local
run: |
cargo install --no-default-features sccache
cargo install mdbook mdbook-linkcheck
cargo install --no-default-features --version 0.8.2 sccache
cargo install --version 0.4.36 mdbook
cargo install --version 0.7.7 mdbook-linkcheck
# We want our compiler cache to always update to the newest state.
# The best way for us to achieve this is to **always** update the cache after every landed commit.
Expand Down
5 changes: 3 additions & 2 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -151,8 +151,9 @@ if(BUILD_TESTING)
# Add CMake tests for `cargo test/clippy/fmt/doc`.
add_test(NAME cargo_tests COMMAND cargo test --release --all-features --target-dir ${CARGO_TARGET_DIR})
add_test(NAME cargo_doc COMMAND cargo doc --release --all-features --target-dir ${CARGO_TARGET_DIR})
add_test(NAME cargo_clippy COMMAND cargo clippy --release --all-features --target-dir ${CARGO_TARGET_DIR} -- -D warnings)

# Minimum clippy version for the incompatible_msrv lint is 1.78.0
add_test(NAME cargo_clippy COMMAND cargo +1.78.0 clippy --release --all-features --target-dir ${CARGO_TARGET_DIR} -- -D warnings)

set_tests_properties(cargo_tests cargo_clippy PROPERTIES
ENVIRONMENT_MODIFICATION "${CARGO_ENV}"
)
Expand Down
2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -22,13 +22,13 @@ members = [
"tests/qt_types_standalone/rust",
]
resolver = "2"
rust-version = "1.77.2"

[workspace.package]
edition = "2021"
license = "MIT OR Apache-2.0"
repository = "https://github.com/KDAB/cxx-qt/"
version = "0.7.0"
rust-version = "1.77.2" # Clippy needs to >= 1.78.0 for a lint, but the package can be 1.77.2

# Note a version needs to be specified on dependencies of packages
# we publish, otherwise crates.io complains as it doesn't know the version.
Expand Down
4 changes: 3 additions & 1 deletion clippy.toml
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,6 @@
# SPDX-FileContributor: Ben Ford <[email protected]>
#
# SPDX-License-Identifier: MIT OR Apache-2.0
msrv = "1.77.2"

# This is higher than the rust-version because the `incompatible_msrv` lint was introduced in clippy 1.78.0
msrv = "1.78.0"
2 changes: 1 addition & 1 deletion crates/cxx-qt-build/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ edition.workspace = true
license.workspace = true
description = "Helpers for integrating `cxx-qt` crate into a Cargo build"
repository.workspace = true
rust-version = "1.70.0"
rust-version.workspace = true

[dependencies]
cc.workspace = true
Expand Down
2 changes: 1 addition & 1 deletion crates/cxx-qt-build/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -370,7 +370,7 @@ impl CxxQtBuilder {
qt_modules.extend(
modules
// Each module is split by a comma
.split(",")
.split(',')
// Each module could be Qt::Core or Qt6::Core etc
// we only want the last part
.map(|module| {
Expand Down
2 changes: 1 addition & 1 deletion crates/cxx-qt-lib-extras/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ license.workspace = true
description = "Extra Qt types for integrating `cxx-qt` crate with `cxx` that are not available in `cxx-qt-lib`"
repository.workspace = true
links = "cxx-qt-lib-extras"
rust-version = "1.77.2"
rust-version.workspace = true

[dependencies]
cxx.workspace = true
Expand Down
2 changes: 1 addition & 1 deletion crates/cxx-qt-lib/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ exclude = [ "**/generate.sh" ]
# can pass metadata from library to dependent.
# See also: https://doc.rust-lang.org/cargo/reference/build-scripts.html#the-links-manifest-key
links = "cxx-qt-lib"
rust-version = "1.77.2"
rust-version.workspace = true

[dependencies]
cxx.workspace = true
Expand Down
2 changes: 1 addition & 1 deletion crates/cxx-qt-macro/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ license.workspace = true
description = "A set of macros for Qt/C++ interop in Rust"
repository.workspace = true
homepage = "https://kdab.github.io/cxx-qt/book/"
rust-version = "1.66.1"
rust-version.workspace = true

[lib]
proc-macro = true
Expand Down
2 changes: 1 addition & 1 deletion crates/cxx-qt/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ homepage = "https://kdab.github.io/cxx-qt/book/"
readme = "README.md"
keywords = ["cxx", "ffi", "QML", "Qt"]
categories = ["api-bindings", "gui"]
rust-version = "1.77.2"
rust-version.workspace = true

# When creating a library with cxx-qt-build, we need to set a fake "links" key
# to make sure the build scripts are run in the correct order and the build scripts
Expand Down
2 changes: 1 addition & 1 deletion crates/qt-build-utils/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ authors = ["Be Wilson <[email protected]>"]
license.workspace = true
description = "Build script helper for linking Qt libraries and using moc code generator. Intended to be used together with cc, cpp_build, or cxx_build"
repository.workspace = true
rust-version = "1.77.2"
rust-version.workspace = true

[dependencies]
cc.workspace = true
Expand Down

0 comments on commit 98d5912

Please sign in to comment.