Feature: SupportdDisable of strategies for crate using Cargo.toml (#1828)

* Refactor: Move `Strategy` to `binstalk-types`

Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>

* Add serialisation test for `Strategy`

Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>

* Add support to disable strategies via crate `Cargo.toml`

Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>

* Add e2e-test

Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>

* Fix `Cargo.toml` disabled strategy checking for compile strategy

Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>

* Optimize `resolve_inner`: Cache meta override

Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>

* Add compile-time length checking for `Strategy`

Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>

* More optimization

Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>

* Fix order of override: cli options alwayus takes precedence

Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>

* Add missing manifest for e2e-test

Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>

---------

Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
This commit is contained in:
Jiahao XU 2024-07-24 00:05:22 +10:00 committed by GitHub
parent 09d61d081d
commit 3f29fbe83a
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
11 changed files with 206 additions and 57 deletions

View file

@ -0,0 +1,19 @@
[package]
name = "cargo-update"
repository = "https://github.com/nabijaczleweli/cargo-update"
version = "11.1.2"
[[bin]]
name = "cargo-install-update"
path = "src/main.rs"
test = false
doc = false
[[bin]]
name = "cargo-install-update-config"
path = "src/main-config.rs"
test = false
doc = false
[package.metadata.binstall]
disabled-strategies = ["quick-install", "compile"]

View file

@ -36,3 +36,16 @@ fi
## Test compile-only strategy
"./$1" binstall --no-confirm --strategies compile cargo-quickinstall@0.2.8
## Test --disable-strategies
set +e
"./$1" binstall --no-confirm --manifest-path "manifests/strategies-test-Cargo.toml" cargo-update@11.1.2
exit_code="$?"
set -e
if [ "$exit_code" != 94 ]; then
echo "Expected exit code 94, but actual exit code $exit_code"
exit 1
fi