-
Notifications
You must be signed in to change notification settings - Fork 679
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
Versioning and Release Cadence Plans #3104
Labels
discussion
Ongoing discussion
Comments
ossy-szeged
added a commit
to ossy-szeged/jerryscript
that referenced
this issue
Oct 16, 2019
Fixes jerryscript-project#3104. JerryScript-DCO-1.0-Signed-off-by: Csaba Osztrogonác [email protected]
ossy-szeged
added a commit
to ossy-szeged/jerryscript
that referenced
this issue
Oct 16, 2019
Closes jerryscript-project#3104. JerryScript-DCO-1.0-Signed-off-by: Csaba Osztrogonác [email protected]
ossy-szeged
added a commit
to ossy-szeged/jerryscript
that referenced
this issue
Oct 16, 2019
Closes jerryscript-project#3104. JerryScript-DCO-1.0-Signed-off-by: Csaba Osztrogonác [email protected]
dbatyai
pushed a commit
that referenced
this issue
Oct 16, 2019
Closes #3104. JerryScript-DCO-1.0-Signed-off-by: Csaba Osztrogonác [email protected]
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
I think that now that version 2.0 of JerryScript is out, we (as the maintainers/reviewers of the project) may acknowledge that our release strategy has been suboptimal. The project wasn't dead, as it was being continuously enhanced and extended. Yet, there had been no release for a period of almost 3 years. Yikes!
So, I propose to adopt two concepts from now on (i.e., should this motion pass):
(* With the remark that "early" shouldn't and mustn't mean "buggy".)
So, a bit more thoughts about these ideas:
Release Cadence
For v2.0, we wanted to give our community a nice well-polished set of new features, APIs, etc. I don't think that we've failed, but it just took too long.
So, I propose to release a new version whenever a reasonable new feature or feature set is landed and stabilized in the project, even if we know that there will be related features implemented in the near (or not so near) future. Same goes for bug fixes and refactorings: even if the project is not extended feature-wise for some time but some useful internal refactorings or fixes are landed, we should come out with a new release.
I'd encourage all contributors to be pro-active. If they land some features in the project and think that it forms a nice "package" of improvement of the project, they should raise their voice and advocate a new release. (Maintainers should still have the final word about releases, but this could ensure that a release potential will not slip their attention.) A GitHub Issue seems to be a good way of proposing a new release, it will allow discussion between interested parties.
Should a motion for a new release pass, we'll have to ensure that it is in a reasonably stable state. CIs should be green. Known bugs should be fixed (as much as reasonably possible, at the discretion of the maintainers). Landing of features should be frozen for a short period to focus on stabilizing the release. (This should be some days or a week or so, when no new bugs pop up. This may depend on the volume of changes, but I'd prefer no overly long freezes. Just enough to make sure that we have a good level of confidence in the stability of the project.)
Some notes:
Semantic Versioning
I really think that this would fit very well to the above-suggested frequent release strategy. We got some annoying bugs fixed: great, let's have a release x.y.Z+1! We have support for a new ES6 language keyword, or some new builtins got implemented: great, let's have a release x.Y+1.0! We have reworked the API: ok, let's have a major version bump. (Now, that shouldn't happen too often. But we shouldn't be overly afraid of it either. The right balance is the key.)
Some notes:
Looking forward to comments.
The text was updated successfully, but these errors were encountered: