From a4928f6584636f307b486f758afd31cdf76e761c Mon Sep 17 00:00:00 2001 From: Ed Page Date: Mon, 11 Sep 2023 08:02:17 -0500 Subject: [PATCH 1/4] refactor(gh): Allow tracking multiple MSRVs --- .github/renovate.json5 | 11 ++++++----- Cargo.toml | 2 +- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/.github/renovate.json5 b/.github/renovate.json5 index b633fc245fd..023e5d7a446 100644 --- a/.github/renovate.json5 +++ b/.github/renovate.json5 @@ -12,24 +12,25 @@ { customType: 'regex', fileMatch: [ - '^Cargo.toml$', + 'Cargo.toml$', ], matchStrings: [ - 'rust-version.*?(?\\d+\\.\\d+(\\.\\d+)?)', + '\bMSRV:1\b.*?(?\\d+\\.\\d+(\\.\\d+)?)', + '(?\\d+\\.\\d+(\\.\\d+)?).*?\bMSRV:1\b', ], - depNameTemplate: 'latest-msrv', + depNameTemplate: 'MSRV:1', // Support 1 version of rustc packageNameTemplate: 'rust-lang/rust', datasourceTemplate: 'github-releases', }, ], packageRules: [ { - commitMessageTopic: 'Latest MSRV', + commitMessageTopic: 'MSRV (1 version)', matchManagers: [ 'regex', ], matchPackageNames: [ - 'latest-msrv', + 'MSRV:1', ], "extractVersion": "^(?\\d+\\.\\d+)", // Drop the patch version schedule: [ diff --git a/Cargo.toml b/Cargo.toml index bda07248e61..41a656fd18e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -11,7 +11,7 @@ exclude = [ ] [workspace.package] -rust-version = "1.73" +rust-version = "1.73" # MSRV:1 edition = "2021" license = "MIT OR Apache-2.0" From 4b55a4f76fb8815a9090acaa227c84b2bee3e6aa Mon Sep 17 00:00:00 2001 From: Ed Page Date: Mon, 11 Sep 2023 08:06:12 -0500 Subject: [PATCH 2/4] chore(gh): Automatically update cargo-credential MSRV --- .github/renovate.json5 | 29 ++++++++++++++++++++++++++ credential/cargo-credential/Cargo.toml | 2 +- 2 files changed, 30 insertions(+), 1 deletion(-) diff --git a/.github/renovate.json5 b/.github/renovate.json5 index 023e5d7a446..03e6d8da8c6 100644 --- a/.github/renovate.json5 +++ b/.github/renovate.json5 @@ -22,6 +22,19 @@ packageNameTemplate: 'rust-lang/rust', datasourceTemplate: 'github-releases', }, + { + customType: 'regex', + fileMatch: [ + 'Cargo.toml$', + ], + matchStrings: [ + '\bMSRV:3\b.*?(?\\d+\\.\\d+(\\.\\d+)?)', + '(?\\d+\\.\\d+(\\.\\d+)?).*?\bMSRV:3\b', + ], + depNameTemplate: 'MSRV:3', // Support 3 versions of rustc + packageNameTemplate: 'rust-lang/rust', + datasourceTemplate: 'github-releases', + }, ], packageRules: [ { @@ -32,10 +45,26 @@ matchPackageNames: [ 'MSRV:1', ], + schedule: [ + '* * * * *', + ], + groupName: 'msrv', + }, + { + commitMessageTopic: 'MSRV (3 versions)', + matchManagers: [ + 'regex', + ], + matchPackageNames: [ + 'MSRV:3', + ], "extractVersion": "^(?\\d+\\.\\d+)", // Drop the patch version schedule: [ '* * * * *', ], + minimumReleaseAge: '85 days', // 2 releases back * 6 weeks per release * 7 days per week + 1 + internalChecksFilter: 'strict', + groupName: 'msrv', }, // Goals: // - Rollup safe upgrades to reduce CI runner load diff --git a/credential/cargo-credential/Cargo.toml b/credential/cargo-credential/Cargo.toml index c8db996bf98..43cff14efa2 100644 --- a/credential/cargo-credential/Cargo.toml +++ b/credential/cargo-credential/Cargo.toml @@ -3,7 +3,7 @@ name = "cargo-credential" version = "0.4.0" edition.workspace = true license.workspace = true -rust-version = "1.70.0" +rust-version = "1.70.0" # MSRV:3 repository = "https://github.com/rust-lang/cargo" description = "A library to assist writing Cargo credential helpers." From 03a642b1d8936f8c236469dd49f9db419ea21ab4 Mon Sep 17 00:00:00 2001 From: Ed Page Date: Mon, 11 Sep 2023 08:10:31 -0500 Subject: [PATCH 3/4] fix: Set MSRV in all published packages --- Cargo.lock | 14 +++++++------- Cargo.toml | 1 + crates/cargo-platform/Cargo.toml | 3 ++- crates/home/Cargo.toml | 1 + credential/cargo-credential-1password/Cargo.toml | 3 ++- credential/cargo-credential-libsecret/Cargo.toml | 3 ++- .../cargo-credential-macos-keychain/Cargo.toml | 3 ++- credential/cargo-credential-wincred/Cargo.toml | 3 ++- credential/cargo-credential/Cargo.toml | 2 +- 9 files changed, 20 insertions(+), 13 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 0becc6c67bb..8affbedbc0a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -239,7 +239,7 @@ dependencies = [ "cargo-credential-libsecret", "cargo-credential-macos-keychain", "cargo-credential-wincred", - "cargo-platform 0.1.5", + "cargo-platform 0.1.6", "cargo-test-macro", "cargo-test-support", "cargo-util", @@ -305,7 +305,7 @@ dependencies = [ [[package]] name = "cargo-credential" -version = "0.4.0" +version = "0.4.1" dependencies = [ "anyhow", "libc", @@ -319,7 +319,7 @@ dependencies = [ [[package]] name = "cargo-credential-1password" -version = "0.4.0" +version = "0.4.1" dependencies = [ "cargo-credential", "serde", @@ -328,7 +328,7 @@ dependencies = [ [[package]] name = "cargo-credential-libsecret" -version = "0.3.2" +version = "0.3.3" dependencies = [ "anyhow", "cargo-credential", @@ -337,7 +337,7 @@ dependencies = [ [[package]] name = "cargo-credential-macos-keychain" -version = "0.3.1" +version = "0.3.2" dependencies = [ "cargo-credential", "security-framework", @@ -345,7 +345,7 @@ dependencies = [ [[package]] name = "cargo-credential-wincred" -version = "0.3.1" +version = "0.3.2" dependencies = [ "cargo-credential", "windows-sys", @@ -362,7 +362,7 @@ dependencies = [ [[package]] name = "cargo-platform" -version = "0.1.5" +version = "0.1.6" dependencies = [ "serde", ] diff --git a/Cargo.toml b/Cargo.toml index 41a656fd18e..1af7cce75ca 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -108,6 +108,7 @@ name = "cargo" version = "0.76.0" edition.workspace = true license.workspace = true +rust-version.workspace = true homepage = "https://crates.io" repository = "https://github.com/rust-lang/cargo" documentation = "https://docs.rs/cargo" diff --git a/crates/cargo-platform/Cargo.toml b/crates/cargo-platform/Cargo.toml index 016ead686c7..786948ff3a4 100644 --- a/crates/cargo-platform/Cargo.toml +++ b/crates/cargo-platform/Cargo.toml @@ -1,8 +1,9 @@ [package] name = "cargo-platform" -version = "0.1.5" +version = "0.1.6" edition.workspace = true license.workspace = true +rust-version = "1.70.0" # MSRV:3 homepage = "https://github.com/rust-lang/cargo" repository = "https://github.com/rust-lang/cargo" documentation = "https://docs.rs/cargo-platform" diff --git a/crates/home/Cargo.toml b/crates/home/Cargo.toml index 0f5eda524c7..702a14e552e 100644 --- a/crates/home/Cargo.toml +++ b/crates/home/Cargo.toml @@ -2,6 +2,7 @@ name = "home" version = "0.5.8" authors = ["Brian Anderson "] +rust-version = "1.70.0" # MSRV:3 documentation = "https://docs.rs/home" edition.workspace = true include = [ diff --git a/credential/cargo-credential-1password/Cargo.toml b/credential/cargo-credential-1password/Cargo.toml index d7bd949d1a1..24dfdd930ff 100644 --- a/credential/cargo-credential-1password/Cargo.toml +++ b/credential/cargo-credential-1password/Cargo.toml @@ -1,8 +1,9 @@ [package] name = "cargo-credential-1password" -version = "0.4.0" +version = "0.4.1" edition.workspace = true license.workspace = true +rust-version = "1.70.0" # MSRV:3 repository = "https://github.com/rust-lang/cargo" description = "A Cargo credential process that stores tokens in a 1password vault." diff --git a/credential/cargo-credential-libsecret/Cargo.toml b/credential/cargo-credential-libsecret/Cargo.toml index 5bedad3b9cb..4c13128006c 100644 --- a/credential/cargo-credential-libsecret/Cargo.toml +++ b/credential/cargo-credential-libsecret/Cargo.toml @@ -1,8 +1,9 @@ [package] name = "cargo-credential-libsecret" -version = "0.3.2" +version = "0.3.3" edition.workspace = true license.workspace = true +rust-version.workspace = true repository = "https://github.com/rust-lang/cargo" description = "A Cargo credential process that stores tokens with GNOME libsecret." diff --git a/credential/cargo-credential-macos-keychain/Cargo.toml b/credential/cargo-credential-macos-keychain/Cargo.toml index 172e9c10b6a..e217ced45ff 100644 --- a/credential/cargo-credential-macos-keychain/Cargo.toml +++ b/credential/cargo-credential-macos-keychain/Cargo.toml @@ -1,8 +1,9 @@ [package] name = "cargo-credential-macos-keychain" -version = "0.3.1" +version = "0.3.2" edition.workspace = true license.workspace = true +rust-version.workspace = true repository = "https://github.com/rust-lang/cargo" description = "A Cargo credential process that stores tokens in a macOS keychain." diff --git a/credential/cargo-credential-wincred/Cargo.toml b/credential/cargo-credential-wincred/Cargo.toml index 6da6578a5c2..3d4dbf978a5 100644 --- a/credential/cargo-credential-wincred/Cargo.toml +++ b/credential/cargo-credential-wincred/Cargo.toml @@ -1,8 +1,9 @@ [package] name = "cargo-credential-wincred" -version = "0.3.1" +version = "0.3.2" edition.workspace = true license.workspace = true +rust-version.workspace = true repository = "https://github.com/rust-lang/cargo" description = "A Cargo credential process that stores tokens with Windows Credential Manager." diff --git a/credential/cargo-credential/Cargo.toml b/credential/cargo-credential/Cargo.toml index 43cff14efa2..8ba65b8b9e3 100644 --- a/credential/cargo-credential/Cargo.toml +++ b/credential/cargo-credential/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "cargo-credential" -version = "0.4.0" +version = "0.4.1" edition.workspace = true license.workspace = true rust-version = "1.70.0" # MSRV:3 From 9864b35051610f764ef87dd918adeeaa90d54d4a Mon Sep 17 00:00:00 2001 From: Ed Page Date: Mon, 11 Sep 2023 08:14:25 -0500 Subject: [PATCH 4/4] chore(ci): Verify all MSRVs in CI --- .github/workflows/main.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 1355469a2a0..a62122b7bb2 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -20,7 +20,7 @@ jobs: needs: - build_std - clippy - - credential_msrv + - msrv - docs - lockfile - resolver @@ -38,7 +38,7 @@ jobs: needs: - build_std - clippy - - credential_msrv + - msrv - docs - lockfile - resolver @@ -249,9 +249,9 @@ jobs: curl -sSLO https://raw.githubusercontent.com/rust-lang/rust/master/src/tools/linkchecker/linkcheck.sh sh linkcheck.sh --all --path ../src/doc cargo - credential_msrv: + msrv: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: taiki-e/install-action@cargo-hack - - run: cargo hack check --all-targets --rust-version -p cargo-credential + - run: cargo hack check --all-targets --rust-version --workspace --ignore-private