Skip to content

Conversation

@notfilippo
Copy link
Contributor

Related to #57 .

Attempt to document a potential release process.

cc @leerho @freakyzoidberg @tisonkun

Copy link
Contributor Author

Choose a reason for hiding this comment

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

This is due to me following the release process commands to double check the functionality.

RELEASE.md Outdated

## Prepare & Send [VOTE] Letter to dev@

* See VoteTemplates directory for a recent example
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Not sure where VoteTemplates is but it is mentioned on both Java and CPP. cc @leerho

Copy link
Member

Choose a reason for hiding this comment

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

At Opendal, we've switched some mailing list processes to GitHub Discussions as the primary channel and established a standardized format. Like this apache/opendal#6794

Copy link
Contributor Author

Choose a reason for hiding this comment

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

That's interesting. I'm in favour of this but I'm new to the ASF way of doing things so maybe @leerho can have a more informed opinion.

RELEASE.md Outdated
* Run `cargo update` to ensure Cargo.lock is updated
<!-- TODO: * Run code coverage: `cargo llvm-cov --workspace` (target > 90%). -->
* Run tests on all platforms (see CI workflow)
* Confirm that documentation builds: `cargo doc --open`
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
* Confirm that documentation builds: `cargo doc --open`
* Confirm that documentation builds: `RUSTDOCFLAGS="--cfg docsrs" cargo +nightly doc --all-features --no-deps --open`

This is what docs.rs does.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Can we have an X script for this?

RELEASE.md Outdated
* `mkdir -p dist/release/datasketches/`
* Checkout both "dev" and "release" directories:
* Open a terminal in the dist/dev/datasketches directory and do a checkout:
* `svn co https://dist.apache.org/repos/dist/dev/datasketches/ .` #Note the DOT
Copy link
Member

Choose a reason for hiding this comment

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

I suppose we need only the rust subdirectory:

svn co https://dist.apache.org/repos/dist/dev/datasketches/rust

Copy link
Contributor Author

Choose a reason for hiding this comment

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

We might need the scripts from datasketches/scripts

RELEASE.md Outdated
* To start GPG if GPG Agent is not running:
* `eval $(gpg-agent --daemon)`
* Run the deployment script:
* `./bashDeployToDist.sh /Users/\<name\>/dev/git/Apache/datasketches-rust datasketches-rust A.B.X-rc.1`
Copy link
Member

Choose a reason for hiding this comment

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

bashDeployToDist.sh

Do we have this script now?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I think these scripts are here: https://dist.apache.org/repos/dist/dev/datasketches, along with vote templates.

@tisonkun
Copy link
Member

tisonkun commented Jan 2, 2026

I'm feeling this is too complicated to follow. Although it covers many details, may we start with an easier version?

That is, many works should be guarded with CI. The release only steps are packaging the source tarball + calling a release on the mailing list. Perhaps with an extra cargo release, which can be automated later, like https://github.com/apache/opendal/blob/b430879d45412e960f2bb8313558dbc18feec6c9/.github/workflows/release_rust.yml#L76-L82

cc @Xuanwo

@notfilippo
Copy link
Contributor Author

I'm feeling this is too complicated to follow. Although it covers many details, may we start with an easier version?

I thought this was standardized across projects. I would gladly simplify this!

@notfilippo
Copy link
Contributor Author

I think you can give it another pass @tisonkun . I've tried to include the scripts since it's nice to share the same expectations as the other datasketches implementation.

Copy link
Member

@tisonkun tisonkun left a comment

Choose a reason for hiding this comment

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

I think we're generally fine here. We can review and polish the document during our first ASF release. Typically, RELEASE.md is a materialized copy of what we really do then.

If it's desired, you can add me as a crate owner to the datasketches crate and I can participate in the release process.

Generally, we need a PMC member as the acting release manager and at least three binding votes from DataSketches PMC members to call a release.

Other improvements, like using GH Discussions as the major channel while keeping the list informed, and automating the release process, can be follow-ups.

@notfilippo
Copy link
Contributor Author

notfilippo commented Jan 2, 2026

I've sent an invite @tisonkun !

I will release an rc.1 shortly!

https://crates.io/crates/datasketches/0.2.0-rc.1 is live, from commit 22c30bc. We will need a PMC to

  1. Tag the commit
  2. Create the /dist/dev release
  3. Start the voting discussion

@tisonkun
Copy link
Member

tisonkun commented Jan 3, 2026

I've tested rc.1 and the T-Digest sketch works well.

Let's enjoy the holiday and wait for PMC's feedback.

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.

3 participants