> On Mar 30, 2025, at 3:35 PM, Alexander Sorokoumov > <aleksandr.sorokou...@gmail.com> wrote: > > Hey folks, > > I think we are very close to cutting the first Apache release. Yet, there > are many small steps to do. Personally, I have been procrastinating on them > as I don't exactly know what to do. > > To get over this "fear of the unknown", I have made a painfully detailed > TODO list that should get us to the first release. The purpose of this > thread is to a) agree that the steps in this list will indeed get us to > correctly publishing the first Apache release and b) clarify the unknowns - > mostly interactions with Apache infrastructure. > > I do believe that once we agree on the outstanding steps, we'll be able to > get it over with within a week or so. > > Please find the list below. My unknowns are marked with **Q** and ????. I > am looking forward to reading your feedback! > > TODO towards the first Apache release. > > 1. Agree on the release version (0.6.0-incubating? I am using that as a > placeholder in other steps). > 2. Update release name in pyproject.toml. > 3. Update project description and authors in pyproject.toml. > 4. Verify supported Python versions. Run tests and examples with Python > 3.8+. Add a paragraph to README claiming that versions where tests passed > are supported. > 5. Create source distribution via `poetry build`. > 6. Sign the artifact `gpg --armor --output dist/<artifact>.asc --detach-sig > dist/<artifact>`. > 7. Verify the checksum `sha512sum dist/<artifact> > dist/<artifact>.sha512`. > 8. Test release candidate locally with `pip install`. > 9. Upload project KEYS file. **Q:** How do we do that?
KEYS files are currently a file of concatenated Release Manager’s GPG Public Signing Keys uploaded via svn here: svn import https://dist.apache.org/repos/dist/release/incubator/otava/KEYS -m "Update Otava KEYS" > 9. Upload Artifacts to Apache Dev Repo. **Q:** How do we do that? You currently `svn co https://dist.apache.org/repos/dist/dev/incubator/otava/` Then you add the release candidate files to that directory and then `svn ci -m “Release Candidate Otava 0.6.0-incubating”` These files should be name `apache-otava-0.6.0-incubating.*` > 10. Call for PMC Vote. Send an email to the this mailing list with the > subject "VOTE: Release Apache Otava 0.6.0-incubating" with the link to the > release candidate: > ``` > The Apache Otava project is pleased to announce that the > release candidate for version 0.6.0-incubating is ready. > > The release candidate artifacts are available at: > ???? > > SHA512: <checksum> > KEYS:https://downloads.apache.org/incubator/otava/KEYS > > Please vote on releasing this candidate by replying with: > [ ] +1 Release this package > [ ] 0 No opinion > [ ] -1 Do not release (please provide reason) > > This vote will be open for at least 72 hours. > ``` > 11. Wait for the vote to pass, fix issues if any. > 12. Call for IPMC Vote. Send an email to gene...@incubator.apache.org with > the subject "[VOTE] [RESULT] Release Apache Otava 0.6.0-incubating". The > content should contain links to the vote result and the artifacts. > 13. Wait for the vote to pass, fix issues if any. > 14. Move the RC to the release directory. **Q:** How do we do that? You do an `svn mv` from https://dist.apache.org/repos/dist/dev/incubator/otava/<artifacts> To https://dist.apache.org/repos/dist/release/incubator/otava/ > 15. Publish Github release/tag. > 16. Upload the release to PyPI. **Q:** How do we do that? https://incubator.apache.org/guides/distribution.html#pypi > 17. Announce the release on the mailing list by sending an email with the > subject "[ANNOUNCE] Apache Otava 0.6.0-incubating released". Please note that announcement emails must be text and not html. > 18. Make social media noise. > 19. Bump version in pyproject.toml for the next release. Best, Dave > > > Best, > Alex