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

Usage of Release Candidates #2589

Open
OLibutzki opened this issue Feb 6, 2023 · 5 comments
Open

Usage of Release Candidates #2589

OLibutzki opened this issue Feb 6, 2023 · 5 comments
Labels
Priority 4: Would Lowest priority. Would-be-nice to include issues when time allows it. Status: Under Discussion Use to signal that the issue in question is being discussed. Type: Feature Use to signal an issue is completely new to the project.

Comments

@OLibutzki
Copy link
Contributor

Enhancement Description

This is not an issue about the framework itself but about the release process. I'd like to suggest the usage of release candidates - pushed to Maven Central - in order to give the community a chance to test the version before it's actually released.

We have a a couple of tests which - of course - are limited to the Axon Framework features we use, but nevertheless there might be edge cases we are testing that your tests don't cover.

Especially for minor version updates, getting some early feedback might decrese the need for a x.y.1 fix version.

For you as framework maintainer I see a couple of advantages:

  • Early feedback increases your confidence that the release works for your users
  • You don't have the "pressure" to fix a bug and release a fix version asap
  • It's possible to break the API from x.y.z-rc1 to x.y.z as the RC is not an official release.

Possible Workarounds

  • Usage of snapshots
  • Community tests against releases (current process)
@OLibutzki OLibutzki added the Type: Feature Use to signal an issue is completely new to the project. label Feb 6, 2023
@gklijs
Copy link
Member

gklijs commented Feb 6, 2023

It's already possible to use snapshots by adding:

    <repositories>
        <repository>
            <id>sonatype-snapshots</id>
            <url>https://oss.sonatype.org/content/repositories/snapshots</url>
        </repository>
    </repositories>

In this case you get either the lasts from the main branch, or the latest bugfix version. This also works for all the extensions. Personally I don't think release candidates are worth the hassle. But I don't have anything against it either.

@OLibutzki
Copy link
Contributor Author

Snapshots are perfectly fine to test the current state, but how do users get to know that it's a good time to test the current state?
An example: The development of 4.6.0-SNAPSHOT took some time. I don't think it's a good idea to run our test suites against the snapshot for months... that would mean that we would report bugs on a certain snapshot state. That's something we don't want to do and I guess it's not in your interest, too.

An RC tags a certain state and you tell your users explicitly: This is a state which is stable from our side and we will release this state soon, if you (the users) don't find any blockers.

@gklijs
Copy link
Member

gklijs commented Feb 6, 2023

Every snapshot should be potentially releasable. So please do test against the snapshots. 4.6 took a long time for multiple reasons. But the current plan is to have a release about 3 times a year.

I do see the advantages of an RC. But to easily test an RC, we would also need a RC bom. Which means about 10 releases. We might put in some effort to automate these, so it becomes easier to have RC releases in the future.

@OLibutzki
Copy link
Contributor Author

Ok, I see... an additional downside of RCs might be that you need to give your users some time to test that RC... meaning that the GA releases are available later... it's a matter of automation and organisation. I'm fine with not having RCs, but I thought after the latest experiences it might be a good idea to discuss it.

@smcvb
Copy link
Member

smcvb commented Feb 8, 2023

The discussion is definitely worthwhile, @OLibutzki.
You and @nils-christian have been particularly active in the last couple of releases with figuring out issues we missed.

So, especially from your side, we will take this point seriously.
With that, we're not planning to close this issue at all.
I'd much rather keep it open as a reminder that this is something we should do in the future.

However, for the time being, I am siding with @gklijs.
The released SNAPSHOTS, in all cases, are the result of a successful project build, where larger features (the DLQ in 4.6.0 or SpringBoot 3 support, for example) received local testing by several members of the Framework team.
So, if you and your team do want to perform preliminary tests on upcoming versions of Axon Framework, the snapshots should be fair to use.

On the note of the 4.6.0 release: we are on the same page that the 15 months it took to release it is far beyond our comfort zone.
As such, we aim to release minor versions of Axon Framework every 4 to 5 months.
Hence, you can expect 4.8.0 somewhere in June of this year (instead of next year).
So, if you want to validate our upcoming minor release before it comes out, you can aim for the end of May / start of June.

Concluding, I am pretty confident we will have such a form of Release Candidates process in place.
For the time being, I think we're good, though.

And if anybody else reading this has another opinion on the matter, please feel free to add it!

@smcvb smcvb added Priority 4: Would Lowest priority. Would-be-nice to include issues when time allows it. Status: Under Discussion Use to signal that the issue in question is being discussed. labels Feb 8, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Priority 4: Would Lowest priority. Would-be-nice to include issues when time allows it. Status: Under Discussion Use to signal that the issue in question is being discussed. Type: Feature Use to signal an issue is completely new to the project.
Projects
None yet
Development

No branches or pull requests

3 participants