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

Release cadence #292

Closed
sparkiegeek opened this issue Aug 31, 2023 · 8 comments
Closed

Release cadence #292

sparkiegeek opened this issue Aug 31, 2023 · 8 comments

Comments

@sparkiegeek
Copy link
Contributor

The one and only release of Pebble is v1.2.0 back in May. As of the time of writing there have been 46 commits, comprising 5,319 additions and 2,418 deletions of lines of code.

v1.2.0...master

(Will Pebble use SemVer or CalVer?)

Regardless I believe Pebble owes its users and consumers a release cadence beyond 1 in infinity :)

@jnsgruk
Copy link
Member

jnsgruk commented Aug 31, 2023

Hey!

@jameinel and I were actually talking about this today.

@benhoyt - I think we should settle on a release plan similar to ops - which translates to roughly one point release per month, or a patch release if only minor changes are incurred. Patch releases can also be cut in between to address specific bugs.

I think we should wait until #267 has landed, and cut a 1.3 that supports log forwarding. I don't have a solid timeframe on that - so we could consider doing a 1.2.1 release right now to cover all commits up to the point where the initial log forwarding PR landed (#256).

Thoughts? :)

Edit: actually given the service context stuff we added and volume of changes, perhaps we should do a 1.3.0 now and a 1.4.0 when we have log forwarding.

@sparkiegeek
Copy link
Contributor Author

sparkiegeek commented Aug 31, 2023

@jameinel and I were actually talking about this today.

Heh - well I was inspired to finally file it after seeing chat

@benhoyt - I think we should settle on a release plan similar to ops - which translates to roughly one point release per month, or a patch release if only minor changes are incurred. Patch releases can also be cut in between to address specific bugs.

I think we should wait until #267 has landed, and cut a 1.3 that supports log forwarding. I don't have a solid timeframe on that - so we could consider doing a 1.2.1 release right now to cover all commits up to the point where the initial log forwarding PR landed (#256).

Well i don't think a maintenance release is correct. 00bcd1f seems chunky enough to warrant a 1.3.0 (log forwarding being 1.4.0)

Edit: edit-sniped!

@sparkiegeek
Copy link
Contributor Author

I think Juju can help keep Pebble honest by refusing to ship unreleased versions

@benhoyt
Copy link
Contributor

benhoyt commented Aug 31, 2023

@sparkiegeek Very much agreed we want this. It's mainly a matter of me or someone making a bit of time! I previously added this to my next cycle roadmap (also fixing the related issue #225), but it seems like there's a fair bit of noise about it and it needs to be done sooner. :-) I would much prefer semver over calver, or benver or adamver for that matter. :-)

Issue #225 is the one where we're not including the version number in the source code of the released tag, which causes the version in Juju and versions installed using go install to show "unknown" when you run pebble version. I think that should be fixed soon as well, though it's not a hard requirement for additional versioned releases.

@jnsgruk Given that Pebble is a dependency of Juju and other projects, will a monthly release cadence be too infrequent? I'm thinking even weekly might be good. Then again, maybe monthly + patch versions as appropriate would work.

Edit: actually given the service context stuff we added and volume of changes, perhaps we should do a 1.3.0 now and a 1.4.0 when we have log forwarding.

I fully agree. There's been many changes and several small new features since 1.2.0. I think we should do 1.3.0 now and another when we have log forwarding fully baked. I can go ahead and do that if we're all agreed?

@benhoyt
Copy link
Contributor

benhoyt commented Sep 1, 2023

When I ship v1.3.0 I'd like to include the internal version number in the source, by doing this manually (later we can automate it).

Draft release notes:


Pebble version v1.3.0 includes several notable features and fixes as well as many CI and testing improvements, and a significant refactoring of the Pebble internals.

What's Changed

Notable user-facing features and fixes:

Refactoring and CI improvements:

New Contributors

Full Changelog: v1.2.0...v1.3.0

@jnsgruk
Copy link
Member

jnsgruk commented Sep 1, 2023

I fully agree. There's been many changes and several small new features since 1.2.0. I think we should do 1.3.0 now and another when we have log forwarding fully baked. I can go ahead and do that if we're all agreed?

Yes please, let's get a 1.3.0 released.

Given that Pebble is a dependency of Juju and other projects, will a monthly release cadence be too infrequent? I'm thinking even weekly might be good. Then again, maybe monthly + patch versions as appropriate would work.

I think we should aim for a roughly monthly point release, but we should be comfortable releasing patch releases on a more regular cadence as required - even if that means weekly or for a specific fix that a Juju release needs :). We don't need to be religious about it - if we happen to land a major feature 2 weeks after a point release, we can just release a new point release.

@benhoyt
Copy link
Contributor

benhoyt commented Sep 2, 2023

Sounds good -- I'll tag and ship v1.3.0 on Monday.

@benhoyt
Copy link
Contributor

benhoyt commented Sep 3, 2023

v1.3.0 released! I did the "edit version number in source code" dance so that this works too (though of course I'd like to automate that later):

$ go install github.com/canonical/pebble/cmd/[email protected]
go: downloading github.com/canonical/pebble v1.3.0
$ pebble version --client
v1.3.0

So from here on we'll go with a monthly release cadence plus patch releases as necessary.

@benhoyt benhoyt closed this as completed Sep 3, 2023
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

No branches or pull requests

3 participants