aboutsummaryrefslogtreecommitdiff
path: root/ci/check-minimal-versions.sh
diff options
context:
space:
mode:
Diffstat (limited to 'ci/check-minimal-versions.sh')
-rw-r--r--ci/check-minimal-versions.sh19
1 files changed, 19 insertions, 0 deletions
diff --git a/ci/check-minimal-versions.sh b/ci/check-minimal-versions.sh
new file mode 100644
index 0000000..a11d2cb
--- /dev/null
+++ b/ci/check-minimal-versions.sh
@@ -0,0 +1,19 @@
+#!/bin/bash
+# Check all public crates with minimal version dependencies.
+#
+# Note that this script modifies Cargo.toml and Cargo.lock and does not restore
+# them after a run.
+#
+# Refs:
+# * minimal versions: https://github.com/rust-lang/cargo/issues/5657
+# * features 2.0: https://github.com/rust-lang/cargo/issues/8088
+
+set -euo pipefail
+
+# Remove dev-dependencies from Cargo.toml to prevent the next `cargo update`
+# from determining minimal versions based on dev-dependencies.
+cargo hack --remove-dev-deps --workspace
+# Update Cargo.lock to minimal version dependencies.
+cargo update -Zminimal-versions
+# Run check for all public members of the workspace.
+cargo hack check --workspace --all-features --ignore-private -Zfeatures=all