-
Notifications
You must be signed in to change notification settings - Fork 2.1k
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
New release cycle #2447
Comments
I like this idea; it's very ... "Debianish" (https://www.debian.org/releases/) We should describe how should we branch our repo then? |
Maybe old way can stay (more or less) not to complicate too much for people already knowing how it works. Just focus on proper tagging? |
@filrak can we also describe in CONTRIBUTING.MD and PULL_REQUEST.MD the new schema of PR acceptance? It should be transparent |
Sure. If we will accept on the New format I'll adjust every doc and add info about how we release stuff into the docs |
I think it's a great idea to keep our product stable and to provide better experience to our users.
tag which is closing the features cycle. Then next features are can still be added to develop (for example by community) and we can focus on stabilising RC. Also community can give us a feedback to RCs. And when we ensure that RC version is stable, then we publish |
Great move. This will definitely help us to deliver stable software. I'd keep the naming as @patzick proposed, as it is more informative and widely used comparing to introducing a unique naming system. It also allows us to publish a couple RCs before final release. |
I[m not tied at all to the naming system - @patzick proposition seems much better and was used by us previously so it's more natural |
It's not enough to just give 👍, so I need to drop a comment that I like it. I also vote to use the npm compatible versioning, so the one proposed by @patzick. Few ideas/questions from my side
|
Only the positive feedback so far - that's great :) ad2) I totally agree with You, we should have had pretty much the same standards for https://github.com/DivanteLtd/vue-storefront-api and https://github.com/DivanteLtd/mage2vuestorefront @filrak and @patzick can You guys set up the Github repositories and PR rules for these projects accordingly? |
Motivation and backstory
Currently we are releasing Vue Storefront versions once a month. While this is great in terms of delivering quick fixes and shipping new features to everyone without waiting ages for a new version of software it has some downsides.
As number of contributions grow it becomes harder and harder to test everything and be sure that the application remains stable and performant in such a short release lifecycle. Moreover one-month release cycle with new features introduced in every of them is not very good for a sustainable and future-proof architecture since everything that is added can be user right after the release which implies that any potential DX issues can't be easly fixed without breaking changes. It also leaves almost no space to adjust PRs to feedback after merging them.
We were thinking about the solution for quite some time. While we still want to keep as short release cycle as possible to give new features and improvements to the community as fast as possible we also want to work more on stability and DX of every new feature.
Solution
The solution to this process that we came up with is two-phase release lifecycle. Divided to release A (new features) and B (stability and testing). Each release phase taking one month.
In the A phase of the release lifecycle we will focus on delivering new features and widening current APIs. After A release community users will be able to grab a beta-ish set of features and start adopting them into their stores, testing and giving feedback.
In the B phase of the release lifecycle we will focus on stability and developer experience. It means:
So basicaly you can think about phase A of the release cycle as the one with cutting-edge features that are experimental and phase B as the stable one and ready for production. With this approach all of the community members can test and give feedback about features from phase A during the B milestone of the release and together we will work on making sure that these features work as intended.
During phase B pull requests with new features or additions to the API will not be merged. All of them will wait till phase A when they'll be merged and tested and later polished and tested during the B one. In phase B we merge only bugfixes, tests and overall improvements over previously introduced features but without introducing any new fucntionality.
With new format the next releases will look like this:
Please give me your feedback about the proposed new release lifecycle. As always - it's the community choice
The text was updated successfully, but these errors were encountered: