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

Add ported Rust release verification script #331

Merged
merged 2 commits into from
May 22, 2021

Conversation

wesm
Copy link
Member

@wesm wesm commented May 20, 2021

Closes #327

This adapts the RC verification script from apache/arrow to just work for Rust. I used it to verify 4.1.0 RC2. It checks the GPG signature and runs the test suite.

@alamb
Copy link
Contributor

alamb commented May 20, 2021

Thank you very much @wesm -- I will give this a spin shortly (and add a reference to it in the "how to make a release docs")

@codecov-commenter
Copy link

codecov-commenter commented May 20, 2021

Codecov Report

Merging #331 (38c5bc3) into master (7f37a7f) will increase coverage by 0.00%.
The diff coverage is 100.00%.

❗ Current head 38c5bc3 differs from pull request most recent head ff2d81b. Consider uploading reports for the commit ff2d81b to get more accurate results
Impacted file tree graph

@@           Coverage Diff           @@
##           master     #331   +/-   ##
=======================================
  Coverage   82.52%   82.53%           
=======================================
  Files         162      162           
  Lines       44021    44043   +22     
=======================================
+ Hits        36329    36349   +20     
- Misses       7692     7694    +2     
Impacted Files Coverage Δ
arrow/src/array/array_primitive.rs 92.93% <ø> (ø)
arrow/src/array/array_string.rs 96.05% <ø> (ø)
arrow/src/compute/kernels/filter.rs 92.98% <100.00%> (+0.58%) ⬆️
arrow/src/array/transform/boolean.rs 76.92% <0.00%> (-7.70%) ⬇️
parquet/src/encodings/encoding.rs 94.85% <0.00%> (-0.20%) ⬇️

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 7f37a7f...ff2d81b. Read the comment docs.

Comment on lines 136 to 137
RUSTFLAGS="-D warnings" cargo build
cargo test
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This only builds and tests with default features. There are some Cargo subcommands that can help to build all feature combinations.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

perhaps we can some inspiration from the CI checks: https://github.com/apache/arrow-rs/blob/master/.github/workflows/rust.yml#L114

(perhaps as part of a follow on PR)

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think that this depends on the goal: is the goal to run all tests in different machines and configurations, to maximize architecture coverage? Or is more like a smoke test just to test that the basics work?

If the latter, then I think it is good as is. If the latter, then we need to basically reproduce all the tests in the CI here.

The source of truth about whether patches are ready to merge is the CI; IMO it should also be the source of truth about whether the code is releasable. In this context, I see this as a smoke test.

If we want to make some assertions over whether the code passes in architecture X, imo such assertion should be made on the CI, so that we do not rely on individual persons owning such an architecture for this.

Copy link
Member

@jorgecarleitao jorgecarleitao left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I ran it locally and it works as advertised. Thanks a lot, @wesm for this.

I left 2 comments.

# raises on any formatting errors
rustup component add rustfmt --toolchain stable
cargo +stable fmt --all -- --check
rustup default stable
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should not be needed; by default rust installs the stable channel.

*/Cargo.toml

# raises on any warnings
RUSTFLAGS="-D warnings" cargo build
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

imo if -D warnings it is not on the CI, it should not be here, as it can otherwise cause the build to fail here but not on the CI.

(I am fine adding it to the CI, just pointing out that imo the release check should be as close as possible to the CI, so that we do not get surprises after cutting an RC). So far our ground truth is the CI, not a check on the RC.

@wesm
Copy link
Member Author

wesm commented May 21, 2021

Please feel free to push the changes you want to make and merge this. I presume it can be an evolving thing to make the RC verification both streamlined and comprehensive

@jorgecarleitao
Copy link
Member

I was not sure I could push directly to your repo, so created a PR to it.

@alamb
Copy link
Contributor

alamb commented May 22, 2021

I plan to merge this PR and I'll port Jorge's PR as a new one against arrow-rs

This PR looks good

Copy link
Contributor

@alamb alamb left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I ran this locally, and it worked great. Thanks again @wesm and @jorgecarleitao

👍

@alamb alamb merged commit a25cafb into apache:master May 22, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Implement automated release verification script
5 participants