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

Information: About the v0.8.x-rc pre-release versioning #1526

Open
mAAdhaTTah opened this issue Sep 26, 2024 · 5 comments
Open

Information: About the v0.8.x-rc pre-release versioning #1526

mAAdhaTTah opened this issue Sep 26, 2024 · 5 comments
Labels
expected: next release why: functionality Intended to improve ArchiveBox functionality or features why: performance Intended to improve ArchiveBox speed or responsiveness why: security Intended to improve ArchiveBox security or data integrity
Milestone

Comments

@mAAdhaTTah
Copy link
Contributor

This is partially a documentation request, partially a question/flag on versions.

Right now, I'm running one of the 0.7.x versions because, as I understand it, 0.8.x is beta. I've been a little thrown though, as each RC also increments the minor version (going from 0.8.0-rc to 0.8.1-rc to 0.8.4-rc). My understanding of semver is this should be more like 0.8.0-rc.1, 0.8.0-rc.2, etc. until the 0.8.0 stable release.

Given that, what do you plan to release as the stable version in the 0.8.x line? Will it be an 0.8.x without the -rc suffix? 0.9? Something else?

Thanks!

@pirate
Copy link
Member

pirate commented Sep 26, 2024

Ah whoops, I didn't realize 0.8.0-rc.1 was the semver standard, sorry! I copied the style I'm doing from some other projects on Github, so I assumed it was common. Didn't bother to check the standard, doh!

I'm basically doing what you describe with 0.8.0-rc.1, 0.8.0-rc.2 but moving the incrementing number to the last digit of semver makes it easier to parse by version comparison software, including my own new https://github.com/ArchiveBox/pydantic-pkgr

Given the massive scope of changes in the 0.8 alphas, I might actually jump straight to 0.9 for the final release, it's likely the biggest release in ArchiveBox history and I want to avoid any confusion so I'll just skip a number to make it obvious that it's a big new release.

The reason this release is so big is I'm officially pluginizing all of archivebox, and making all of the internal behavior hookable using https://pluggy.readthedocs.io/en/stable/index.html, very similar to the new https://github.com/simonw/djp by @simon987. It's hard to do incrementally so I'm doing it all in one go (one of the luxuries of being a solo developer is I can do complete rewrites still, I would never subject a team to that). A big benefit is that I get to clean up a lot of the old legacy cruft in the process, and add pydantic-enforced type safety in a lot more places.

(this also opens up a future world of compatibility with nodejs and other languages, as all the interfaces can now be defined in json/yaml and loaded by pydantic across language barriers)

Because this rewrite is a multi-month refactor I didn't want to keep everyone waiting and give the public the impression that the project is going stale, so I started releasing these pre-releases as a way to keep myself accountable, get some incremental feedback, and force myself to write release notes to keep track of the differnces for the eventual big v0.9 anncouncement.

I'm open to suggestions on how to improve the communication here though! Should I add more disclaimers to the release notes to explain this better?

@mAAdhaTTah
Copy link
Contributor Author

I track this repo cuz I run archivebox locally and work on the Pocket & Readwise extractors, so most of this I was aware of. It was the versioning specifically that confused me. I think you can just leave this issue open until 0.9.0 and close it then and move to semver RCs after that.

Also, Pluggy seems neat, seems useful for another project I have.

@pirate
Copy link
Member

pirate commented Sep 26, 2024

Ok cool, I updated the release warning header with some more clarification too:

image

@pirate pirate changed the title Documentation: Explain approach to versioning Information: About the v0.8.x-rc pre-release versioning Sep 26, 2024
@pirate pirate pinned this issue Sep 26, 2024
@pirate pirate added size: hard why: functionality Intended to improve ArchiveBox functionality or features status: wip Work is in-progress / has already been partially completed why: security Intended to improve ArchiveBox security or data integrity help wanted why: performance Intended to improve ArchiveBox speed or responsiveness expected: next release type: refactor labels Sep 26, 2024
@pirate pirate added this to the v0.8.0 milestone Sep 26, 2024
@pirate
Copy link
Member

pirate commented Oct 23, 2024

FYI I have now adopted the v0.8.5rc123 numbering scheme for tagging minor bugfix builds under each 0.8.x pre-release.

The RC number at the end gets bumped for small changes/bugfixes, e.g. v0.8.5rc51 comes after v0.8.5rc50, etc...
For breaking changes or bigger groups of changes I'll increment the semver minor version and reset the RC number to 0, e.g. v0.8.6rc0 + I'll publish an entry on the ArchiveBox releases page describing the changes (like we have so far for the v0.8.x series).

The entire v0.8.x series is still BETA-only (including all minor semver/rc version bumps), and we're still aiming to land v0.9.0 as the next stable :latest release ready for general public use.

@pirate pirate removed size: hard status: wip Work is in-progress / has already been partially completed help wanted type: refactor labels Oct 23, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
expected: next release why: functionality Intended to improve ArchiveBox functionality or features why: performance Intended to improve ArchiveBox speed or responsiveness why: security Intended to improve ArchiveBox security or data integrity
Projects
None yet
Development

No branches or pull requests

2 participants