Skip to content

docs: document release process#61

Merged
leerho merged 2 commits intoapache:mainfrom
notfilippo:document-release
Jan 4, 2026
Merged

docs: document release process#61
leerho merged 2 commits intoapache:mainfrom
notfilippo:document-release

Conversation

@notfilippo
Copy link
Member

Related to #57 .

Attempt to document a potential release process.

cc @leerho @freakyzoidberg @tisonkun

Copy link
Member 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
Member 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
Member 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.

Copy link
Member

Choose a reason for hiding this comment

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

I added a new Vote Template in VoteTemplates

There used to be more but they were out of date and I had removed them. The only other template that you might need would be the [ANNOUNCE] template, which is much simpler. You can find examples in dev@ history.

Copy link
Member

@leerho leerho Jan 4, 2026

Choose a reason for hiding this comment

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

@PsiACE,
My understanding is that Apache requires that messages for key events (like votes on releases, etc ) be documented / communicated on dev@. This is because the audience for these messages is the entire community of developers and users of a project. Also Apache keeps all these communications in its own archives for legal reasons. If these event messages were on different platforms, some users might not see the message and Apache would not have it in their archives.

Copy link
Member

Choose a reason for hiding this comment

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

Yes. In fact, these contents will automatically sync to dev@.

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
Member 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
Member 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

Copy link
Member

Choose a reason for hiding this comment

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

@tisonkun,
You will also need a /rust/ subdirectory for the actual release, a. la: https://dist.apache.org/repos/dist/release/datasketches/rust
Apache picks this up and copies it to its release archive. In this directory, please only keep the latest release.

You will notice that we have multiple java version directories because there are still many major platforms that require earlier Java versions. How this works for various Rust versions I don't know.

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
Member 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
Member 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
Member 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
Member 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.

Copy link
Member

@leerho leerho left a comment

Choose a reason for hiding this comment

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

This is a live document as it will continue to have revisions.

@leerho leerho merged commit 9a76561 into apache:main Jan 4, 2026
9 checks passed
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.

4 participants