Hi all,
Let me add my 2 cents to the discussion:
You are aiming to be 'enterprise-friendly', so the release cycle,
feature freezes, NetCAT, etc all make very good sense. You should feel
free to adjust this process however it makes you more comfortable.
On the other hand, I'm sure a lot of people would be happy with having
nightly builds. Once a module is updated and published, it's downloaded
from the Update Center, like it used to. People who'll use this way of
getting updates won't have to wait up to half a year for a simple
improvement to be released. If a module released through this breaks
anything, it's not a big deal! It would be a polite thing for the change
author to fix it ASAP, but ideally (though not necessarily) if an update
could be 'recalled' and the updated modules downgraded in Update Center
until that time.
It should be possible to have both without too much of an extra effort!
This way, some early feedback could be acquired before the regular
release time and some issues already fixed, thus giving the enterprise
users potentially more stable releases to work with.
As for how to do it, unfortunately I don't know much of the history, so
it's very possible you've already discussed it at some point, in which
case accept my apologies for bringing this up again, but what's wrong
with having a 'living' master and 'frozen' release branches? Once you
create a release branch, it's effectively a feature-freeze, and from
this point, only necessary fixes should be merged into it. Why freeze
master as well? The master should still be considered 'stable', in a
sense that you're reasonable sure it's working and not breaking
anything. But if a fix for the release is needed due to something being
broken in master, it can be merged to both master and release, the PR
could be based on a point where the release branch has been created,
then no cherry-picking should be necessary and the merge history will be
preserved.
Regards.
13.06.2020 4:10, Laszlo Kishalmi wrote:
Dear all,
Apache NetBeans 12. has finally out in the wild, so I think it is time
to revise our release process.
First of all, I would like you thank for the great job Eric did as
Release Manager during this long process. Thank you Eric!
These are my points below, it is not necessary complete, feel free to
extend and/or disagree.
So let's see what went good:
1. Well we did the release
2. It seems the automatic release build improvements worked good,
requiring much less manual effort from the RM to produce release
packages.
3. I felt that feedbacks coming from NetCAT were actually useful.
What needs to be improved:
1. Well before going into the details, a self reflection.
First and foremost:
Me need to be improved, not try to pushing through half baked PRs
which also brake the builds. Please forgive me that!
2. It took too long.
11.3-beta1: 01-29-2020, release announced: 03-05-2020: 36 days
The 12.0-beta1 branch had been cut on 16th of March, release
announced: 06-09-2020: 85 days
The merge window was short as well. I know this is an LTS and NetCat
and everything, but seems having the master branch in release mode
for almost 3 months just does not seem to be right.
Spending long time in the release window could discourage people
from contribution (might not be true, but it did that to me), lead
to piling up PRs.)
3. We need to think about what really LTS means for us.
* Is it a less feature more NetCAT release?
Right now this is what I think we think of that, but it is
probably too vague
* Is it just a rounded up version of the latest x.3 version?
* Are we plan to do some regular patches for an LTS or just
essential security updates?
Right now, the last one, but is it Ok that way?
4. NetCAT
While, as I mentioned, I've got useful feedback from them in JIRA. I
saw Geertjan an Jirka chasing around every once in a while and, if
work+life would have allowed that, I might even would have joined to
the Cause.
A summary and the community survey results should have been posted
before or soon after the announce. Probably it is just make it more
visible during LTS.
5. Piling up PR-s. Well this is an issue on every release. PR-s are
reviewed and merged in a campaign base.
We need to somehow encourage PR-s to get actually merged.
How do I see we could improve:
We just cannot allow to have the master in feature freeze/release mode
for 6 months in a year (3x1 months for .x releases and 3 months for LTS)
I'd interpret the LTS release as a polished version of 11.3. Get
NetCAT test that version back and forth. We going to get a number of
bugs to be ironed out through NetCAT and other sources for the LTS
release. Occasionally we can haggle for a feature creep if really
needed (vote on it?). Having this, I'd not freeze the master for LTS.
Let it have its separate branch and separate life cycle. Fixes needed
for LTS would first go into master and have a twin PR for the LTS
branch as well.
This would probably mean less development effort on the LTS, more can
be put into the LTS.1 release.
On the PR-s. We should agree on a default merge policy. Something
like: If not stated otherwise, PRs with the following conditions shall
be merged:
* The CI checks are green
* No pending change request review.
* No labels against merge (work-in-progress, do-not-merge, etc.
* No open questions in the comments
* One of the following conditions fulfilled:
o All reviewer approved
o One reviewer approved and at least 3 days old
o At least 7 days old
Anyone who has commit rights are entitled and encouraged to do the merge.
Supporting the LTS with patches (I might be a bit carried away at this
point):
During the release phase of a feature release we could select a few
bugfixes for a patch release which we can carry back to the LTS branch
and produce a patch release, probably a few weeks / a month after the
feature release. Of course if we have resources for that.
Phew, this is what I have on my mind now. Remember this is a not a
statement, it is a discussion*. Feel free to join!
* I grew up in the communist block, where statements and discussions
were often interpreted as equivalent.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists