Skip to content

Prepare release scripts #137

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

Merged
merged 3 commits into from
Jun 10, 2025
Merged

Prepare release scripts #137

merged 3 commits into from
Jun 10, 2025

Conversation

kou
Copy link
Member

@kou kou commented Jun 4, 2025

What's Changed

This is based on the release scripts used by apache/arrow-java:
https://github.com/apache/arrow-java/tree/main/dev/release

Here is the release workflow:

  1. Bump version in package.json
  2. Run dev/release/release_rc.sh 1
    1. This push vX.Y.Z-rc1 tag
    2. The tag push runs GitHub Actions workflow for RC that:
      1. Generates source archive and packages for https://www.npmjs.com/
      2. Verifies these artifacts
      3. Creates a GitHub Release for the RC and uploads these artifacts to the GitHub Release
    3. This downloads these artifacts from the GitHub Release
    4. This signs these artifacts on local and upload these signs to the GitHub Release
    5. This shows vote e-mail template
  3. Start a vote on [email protected]
  4. Run dev/release/release.sh 1 after the vote carried
    1. This push vX.Y.Ztag
    2. The tag push runs GitHub Actions workflow for release that:
      1. Creates a GitHub Release for the release and copies all artifacts from the GitHub Release for the RC
    3. This uploads the voted source archive to https://dist.apache.org/repos/dist/release/arrow/
    4. This removes old releases from https://dist.apache.org/repos/dist/release/arrow/
    5. This publishes the voted packages to https://www.npmjs.com/
  5. Add the release to ASF's report database: https://reporter.apache.org/addrelease.html?arrow

See also the added dev/release/README.md.

Closes #9.

@kou kou requested a review from raulcd June 4, 2025 03:57
@kou
Copy link
Member Author

kou commented Jun 4, 2025

@kou
Copy link
Member Author

kou commented Jun 6, 2025

I'll merge this in a few days if nobody objects it.

Copy link
Member

@raulcd raulcd left a comment

Choose a reason for hiding this comment

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

Sorry @kou I haven't had much time to go through it.
In general looks good to me, I have a question about the npm publishing and having the possibility to retry it.
We can also add that functionality of retrying npm as a separate PR or an improvement if you think is best.

"https://dist.apache.org/repos/dist/release/arrow/${old_release_version}"
done

echo "Publish to npm"
Copy link
Member

Choose a reason for hiding this comment

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

should we have an option to only publish to npm and avoid the rest?
I've had to retry the publishing npm script in the past due to timeouts our random failures with OTP login and seems worth to me.
Either that or split this in a two steps process?

Copy link
Member Author

Choose a reason for hiding this comment

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

It makes sense. I've added RELEASE_* environment variables.

@kou
Copy link
Member Author

kou commented Jun 6, 2025

No problem. Thanks for your review!

@kou
Copy link
Member Author

kou commented Jun 10, 2025

I'll merge this.

@kou kou merged commit c559c25 into apache:main Jun 10, 2025
10 checks passed
@kou kou deleted the release branch June 10, 2025 02:38
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.

Prepare release scripts
2 participants