Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

publish-dry-run takes extremely long #1949

Open
Ifropc opened this issue Mar 11, 2025 · 3 comments · May be fixed by #1979
Open

publish-dry-run takes extremely long #1949

Ifropc opened this issue Mar 11, 2025 · 3 comments · May be fixed by #1979
Assignees
Labels
bug Something isn't working

Comments

@Ifropc
Copy link
Contributor

Ifropc commented Mar 11, 2025

Running

cargo-hack hack --feature-powerset --ignore-private --config "source.crates-io.replace-with = 'vendored-sources'" --config "source.vendored-sources.directory = 'vendor'" package --target aarch64-apple-darwin

As part of dry-run takes extremely long time.
For some reason, it does 80 iterations on it. (See any build from main, e.g. https://github.com/stellar/stellar-cli/actions/runs/13798425028/job/38595534121 )
I guess introduction of conditional features for protocol version affects the time it takes to build the combination of features

@Ifropc Ifropc added the bug Something isn't working label Mar 11, 2025
@github-project-automation github-project-automation bot moved this to Backlog (Not Ready) in DevX Mar 11, 2025
@Ifropc
Copy link
Contributor Author

Ifropc commented Mar 11, 2025

@fnando @leighmcculloch any ideas on it/can you try to reproduce it locally?

@Ifropc
Copy link
Contributor Author

Ifropc commented Mar 11, 2025

Edit: same happens on Linux

@Ifropc Ifropc changed the title publish-dry-run takes extremely long on Mac publish-dry-run takes extremely long Mar 11, 2025
@Ifropc
Copy link
Contributor Author

Ifropc commented Mar 17, 2025

Background: cargo hack takes a lot of time because of all the permutations we are testing against. To reduce dry-run time we should:

  1. Not build soroban-test
  2. Not build emulator-test and version_gte_23 features
  3. Group default and version_lte_23 together.

For reference, list of all features tested:

$ cargo-hack hack --feature-powerset --ignore-private --print-command-list package
info: skipped running on private package `test_constructor`
info: skipped running on private package `test_custom_account`
info: skipped running on private package `test_custom_types`
info: skipped running on private package `test_hello_world`
info: skipped running on private package `test_swap`
info: skipped running on private package `test_token`
info: skipped running on private package `test_udt`
info: skipped running on private package `soroban-hello`
info: skipped running on private package `stellar-bye`
cargo package --manifest-path cmd/stellar-cli/Cargo.toml --no-default-features
cargo package --manifest-path cmd/stellar-cli/Cargo.toml --no-default-features --features default
cargo package --manifest-path cmd/stellar-cli/Cargo.toml --no-default-features --features emulator-tests
cargo package --manifest-path cmd/stellar-cli/Cargo.toml --no-default-features --features default,emulator-tests
cargo package --manifest-path cmd/stellar-cli/Cargo.toml --no-default-features --features opt
cargo package --manifest-path cmd/stellar-cli/Cargo.toml --no-default-features --features default,opt
cargo package --manifest-path cmd/stellar-cli/Cargo.toml --no-default-features --features emulator-tests,opt
cargo package --manifest-path cmd/stellar-cli/Cargo.toml --no-default-features --features default,emulator-tests,opt
cargo package --manifest-path cmd/soroban-cli/Cargo.toml --no-default-features
cargo package --manifest-path cmd/soroban-cli/Cargo.toml --no-default-features --features default
cargo package --manifest-path cmd/soroban-cli/Cargo.toml --no-default-features --features emulator-tests
cargo package --manifest-path cmd/soroban-cli/Cargo.toml --no-default-features --features default,emulator-tests
cargo package --manifest-path cmd/soroban-cli/Cargo.toml --no-default-features --features opt
cargo package --manifest-path cmd/soroban-cli/Cargo.toml --no-default-features --features default,opt
cargo package --manifest-path cmd/soroban-cli/Cargo.toml --no-default-features --features emulator-tests,opt
cargo package --manifest-path cmd/soroban-cli/Cargo.toml --no-default-features --features default,emulator-tests,opt
cargo package --manifest-path cmd/soroban-cli/Cargo.toml --no-default-features --features version_gte_23
cargo package --manifest-path cmd/soroban-cli/Cargo.toml --no-default-features --features default,version_gte_23
cargo package --manifest-path cmd/soroban-cli/Cargo.toml --no-default-features --features emulator-tests,version_gte_23
cargo package --manifest-path cmd/soroban-cli/Cargo.toml --no-default-features --features default,emulator-tests,version_gte_23
cargo package --manifest-path cmd/soroban-cli/Cargo.toml --no-default-features --features opt,version_gte_23
cargo package --manifest-path cmd/soroban-cli/Cargo.toml --no-default-features --features default,opt,version_gte_23
cargo package --manifest-path cmd/soroban-cli/Cargo.toml --no-default-features --features emulator-tests,opt,version_gte_23
cargo package --manifest-path cmd/soroban-cli/Cargo.toml --no-default-features --features default,emulator-tests,opt,version_gte_23
cargo package --manifest-path cmd/soroban-cli/Cargo.toml --no-default-features --features version_lt_23
cargo package --manifest-path cmd/soroban-cli/Cargo.toml --no-default-features --features default,version_lt_23
cargo package --manifest-path cmd/soroban-cli/Cargo.toml --no-default-features --features emulator-tests,version_lt_23
cargo package --manifest-path cmd/soroban-cli/Cargo.toml --no-default-features --features default,emulator-tests,version_lt_23
cargo package --manifest-path cmd/soroban-cli/Cargo.toml --no-default-features --features opt,version_lt_23
cargo package --manifest-path cmd/soroban-cli/Cargo.toml --no-default-features --features default,opt,version_lt_23
cargo package --manifest-path cmd/soroban-cli/Cargo.toml --no-default-features --features emulator-tests,opt,version_lt_23
cargo package --manifest-path cmd/soroban-cli/Cargo.toml --no-default-features --features default,emulator-tests,opt,version_lt_23
cargo package --manifest-path cmd/soroban-cli/Cargo.toml --no-default-features --features version_gte_23,version_lt_23
cargo package --manifest-path cmd/soroban-cli/Cargo.toml --no-default-features --features default,version_gte_23,version_lt_23
cargo package --manifest-path cmd/soroban-cli/Cargo.toml --no-default-features --features emulator-tests,version_gte_23,version_lt_23
cargo package --manifest-path cmd/soroban-cli/Cargo.toml --no-default-features --features default,emulator-tests,version_gte_23,version_lt_23
cargo package --manifest-path cmd/soroban-cli/Cargo.toml --no-default-features --features opt,version_gte_23,version_lt_23
cargo package --manifest-path cmd/soroban-cli/Cargo.toml --no-default-features --features default,opt,version_gte_23,version_lt_23
cargo package --manifest-path cmd/soroban-cli/Cargo.toml --no-default-features --features emulator-tests,opt,version_gte_23,version_lt_23
cargo package --manifest-path cmd/soroban-cli/Cargo.toml --no-default-features --features default,emulator-tests,opt,version_gte_23,version_lt_23
cargo package --manifest-path cmd/crates/soroban-spec-json/Cargo.toml --no-default-features
cargo package --manifest-path cmd/crates/soroban-spec-tools/Cargo.toml --no-default-features
cargo package --manifest-path cmd/crates/soroban-spec-typescript/Cargo.toml --no-default-features
cargo package --manifest-path cmd/crates/stellar-ledger/Cargo.toml --no-default-features
cargo package --manifest-path cmd/crates/stellar-ledger/Cargo.toml --no-default-features --features default
cargo package --manifest-path cmd/crates/stellar-ledger/Cargo.toml --no-default-features --features emulator-tests
cargo package --manifest-path cmd/crates/stellar-ledger/Cargo.toml --no-default-features --features default,emulator-tests
cargo package --manifest-path cmd/crates/stellar-ledger/Cargo.toml --no-default-features --features http-transport
cargo package --manifest-path cmd/crates/soroban-test/Cargo.toml --no-default-features
cargo package --manifest-path cmd/crates/soroban-test/Cargo.toml --no-default-features --features default
cargo package --manifest-path cmd/crates/soroban-test/Cargo.toml --no-default-features --features emulator-tests
cargo package --manifest-path cmd/crates/soroban-test/Cargo.toml --no-default-features --features default,emulator-tests
cargo package --manifest-path cmd/crates/soroban-test/Cargo.toml --no-default-features --features it
cargo package --manifest-path cmd/crates/soroban-test/Cargo.toml --no-default-features --features default,it
cargo package --manifest-path cmd/crates/soroban-test/Cargo.toml --no-default-features --features emulator-tests,it
cargo package --manifest-path cmd/crates/soroban-test/Cargo.toml --no-default-features --features default,emulator-tests,it
cargo package --manifest-path cmd/crates/soroban-test/Cargo.toml --no-default-features --features version_gte_23
cargo package --manifest-path cmd/crates/soroban-test/Cargo.toml --no-default-features --features default,version_gte_23
cargo package --manifest-path cmd/crates/soroban-test/Cargo.toml --no-default-features --features emulator-tests,version_gte_23
cargo package --manifest-path cmd/crates/soroban-test/Cargo.toml --no-default-features --features default,emulator-tests,version_gte_23
cargo package --manifest-path cmd/crates/soroban-test/Cargo.toml --no-default-features --features it,version_gte_23
cargo package --manifest-path cmd/crates/soroban-test/Cargo.toml --no-default-features --features default,it,version_gte_23
cargo package --manifest-path cmd/crates/soroban-test/Cargo.toml --no-default-features --features emulator-tests,it,version_gte_23
cargo package --manifest-path cmd/crates/soroban-test/Cargo.toml --no-default-features --features default,emulator-tests,it,version_gte_23
cargo package --manifest-path cmd/crates/soroban-test/Cargo.toml --no-default-features --features version_lt_23
cargo package --manifest-path cmd/crates/soroban-test/Cargo.toml --no-default-features --features default,version_lt_23
cargo package --manifest-path cmd/crates/soroban-test/Cargo.toml --no-default-features --features emulator-tests,version_lt_23
cargo package --manifest-path cmd/crates/soroban-test/Cargo.toml --no-default-features --features default,emulator-tests,version_lt_23
cargo package --manifest-path cmd/crates/soroban-test/Cargo.toml --no-default-features --features it,version_lt_23
cargo package --manifest-path cmd/crates/soroban-test/Cargo.toml --no-default-features --features default,it,version_lt_23
cargo package --manifest-path cmd/crates/soroban-test/Cargo.toml --no-default-features --features emulator-tests,it,version_lt_23
cargo package --manifest-path cmd/crates/soroban-test/Cargo.toml --no-default-features --features default,emulator-tests,it,version_lt_23
cargo package --manifest-path cmd/crates/soroban-test/Cargo.toml --no-default-features --features version_gte_23,version_lt_23
cargo package --manifest-path cmd/crates/soroban-test/Cargo.toml --no-default-features --features default,version_gte_23,version_lt_23
cargo package --manifest-path cmd/crates/soroban-test/Cargo.toml --no-default-features --features emulator-tests,version_gte_23,version_lt_23
cargo package --manifest-path cmd/crates/soroban-test/Cargo.toml --no-default-features --features default,emulator-tests,version_gte_23,version_lt_23
cargo package --manifest-path cmd/crates/soroban-test/Cargo.toml --no-default-features --features it,version_gte_23,version_lt_23
cargo package --manifest-path cmd/crates/soroban-test/Cargo.toml --no-default-features --features default,it,version_gte_23,version_lt_23
cargo package --manifest-path cmd/crates/soroban-test/Cargo.toml --no-default-features --features emulator-tests,it,version_gte_23,version_lt_23
cargo package --manifest-path cmd/crates/soroban-test/Cargo.toml --no-default-features --features default,emulator-tests,it,version_gte_23,version_lt_23

@Ifropc Ifropc self-assigned this Mar 19, 2025
@Ifropc Ifropc linked a pull request Mar 19, 2025 that will close this issue
@Ifropc Ifropc linked a pull request Mar 19, 2025 that will close this issue
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
Status: Backlog (Not Ready)
Development

Successfully merging a pull request may close this issue.

1 participant