Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Apache NetBeans is released quarterly according to the following schedule.

Date
20202021202220232024
January 15th

Feature freeze for next release.
Delivery and release branches created.
Weekly Release Candidate made available for testing.






February 7th - 15thVoting

In mid-2018 there was a rough consensus on moving to a fixed three-month schedule for Apache NetBeans release.  However, as of May 2019 we have not fully achieved that transition, with some aspects of feature-based releasing still in play (eg. September release earmarked as NB12 because it will contain C/C++ support, but what if that's not ready?).

This page attempts to pull together various comments made on the dev@ mailing list, along with some other projects' reasoning and methodology around time-based releasing (non-comprehensive links below!). It attempts to pull in various thoughts people have made about simplifying the release process, how NetCAT realistically fits in with this new release schedule, whether such frequent releases can be as stable, and whether all users (particularly corporate / education) want to update so frequently?

Key suggestions

  • Four releases a year on known dates (within reason, weekends, etc.).
  • Everything merged to master at all times is intended (and ready!) to be included in the next scheduled release.  No (minimal) cherry-picking.
  • Each release has a fixed and well known feature-freeze date. Features may be targetted for releases, but no promises are made of features being included unless they have been merged to master by that date. After feature freeze date only fixes are merged as and until the next feature window opens.
  • One release a year is designated a long-term / extended support version -
    • Only this release has a full NetCAT process, and subsequently a much shorter (month less) merge window to accommodate it.  And because the emphasis for this release should be on fully stabilising features added in the previous 3 releases.
    • For 9 months of the year that means that people have a choice of two downloads (need to consider how to describe that, and what if any infrastructure concerns that brings?).  NetBeans 11.0 remains available until April 2020.
    • Minimal major bug fixes might be pushed to the LTS release via UC. Users needing features should be encouraged on to faster release train, and help test those features before next LTS.
    • Major version number is incremented for LTS.  So NetBeans 12.0 would be in April 2020.  Perhaps counter-intuitively the major version number would be increased for the versions with least new features. (Consider NetBeans 11.1 equivalent to NetBeans 11 feature update 1?)

Schedule

ReleaseDateDescription

NetBeans 11.1
NetBeans 12.1

June 15thFeature freeze. Merge window closes. Only fixes intended for next release to be merged into master.
Release branch xx.1 created and beta build(s) made available.  NetCAT lite???July 7thNB xx.1 voting
candidate created and release vote commences.
July





February 15th
NB xx.1 released.

NetBeans 11.2
NetBeans 12.2

July 21stNB xx.2 merge window opens.September
- 28th/29thApache NetBeans release.
NetBeans 12.3NetBeans 13
NetBeans 17

NetBeans 21
Neil Smith 

April 15th

Feature freeze

. Merge window closes

for next release.
Delivery and release branches created.

Release branch xx.2 created and beta build(s)

Weekly Release Candidate made available for testing.

October





May 7th
NB xx.2 voting
- 15thVoting candidate created and release vote commences.
October





May 15th
NB xx.2 released.October 21stNB xx.3 merge window opens.NetBeans 11.3
NetBeans 12.3December
- 31stApache NetBeans release.NetBeans 12.0NetBeans 12.4NetBeans 14
NetBeans 18

NetBeans 22
Eric Barboni 

July 15th

Feature freeze

. Merge window closes

for next release.
Delivery and release branches created.

Release branch xx.3 created and beta build(s)

Weekly Release Candidate made available for testing.

January





August 7th
- 15thVoting
NB xx.3 voting
candidate created and release vote commences.
January





August 15th
NB xx.3 released. (Start NetCAT with this release here???)
- 31stApache NetBeans release.NetBeans 12.1
January 21stNB xx+1.0 merge window opens.
NetCAT announced and signups begin.
NetBeans 12.
0
5
NetBeans 15
NetBeans 19NetBeans
13.0
23
February
October 15th

Feature freeze

. Merge window closes

for next release.
Delivery and release branches created.

Release branch xx+1.0 created and beta build(s) made available.
NetCAT test spec review starts.February 21stNetCAT testing phase starts.March 21stNetCAT testing ends.
NetCAT community acceptance vote.

Weekly Release Candidate made available for testing.






November 7th - 15thVoting
April 7thNB xx+1.0 voting
candidate created and release vote commences.
April





November 15th
NB xx+1.0 released.
- 30thApache NetBeans release.NetBeans 12.2 NetBeans 12.
1
6NetBeans
13.1April 21st

NB xx.1.1 merge window open.

GOTO 10

NB. The dates here are deliberately mid-month, two weeks after previously suggested.  Because no-one wants to do a release on New Years Eve, and it potentially gives a little more leeway in releasing / testing with JDK releases?

Questions still to be answered?

  • What is NetCAT lite?  Do we need to consider labelling in PRs for specific NetCAT sections / tribes to be consulted?
  • Kafka page (below) has both feature freeze and code freeze (blockers only) dates - do we need similar?
  • How much of the release process can be configurable in the build?  Could we get to a point that release branches are not required, and a tag could be used - is that desirable?
  • Do we allow limited bypass of feature freeze?  By mailing list vote?

https://lists.apache.org/thread.html/903873879219d2852e0889b14e4e8d1e4135c15bbe68f370245d10ad@%3Cnetcat.netbeans.apache.org%3E

https://lists.apache.org/thread.html/cc5575ac4173b8a934e78d300b1063013606be00ffc7d8d30b00419b@%3Cdev.netbeans.apache.org%3E

Time Based Release Plan - Apache Kafka

16
NetBeans 20NetBeans 24

Key points

  • Four releases a year on known dates (within reason, weekends, blockers, etc.).
  • Each release has a fixed and well known feature-freeze date. Features may be targeted for releases, but no promises are made of features being included unless they have been merged to master by that date.
  • Everything merged to master at all times prior to feature freeze is intended and ready to be included in the next scheduled release.  Keep master releasable!
  • Merging earlier rather than later in the merge window is to be encouraged!
  • After the feature freeze date, fixes intended for the release should be merged to delivery until the next feature window opens. The delivery branch will be merged to both master and release branches on a weekly schedule.
  • All fixes merged to delivery after the feature-freeze date should be assessed and reviewed in accordance with the Bug Priority Guidelines

History

In 2019 there was a decision to move towards a time-based, quarterly release schedule for Apache NetBeans releases.  This started from Apache NetBeans 11.1, and retrospectively designated Apache NetBeans 11.0 as an LTS release.

At the end of 2019 the schedule was shifted back by one month, to avoid the end of year period. At the end of 2020, master freezing was replaced by a move to a delivery and release branch mechanism.

In early 2021, a decision was made to review the process and requirements for LTS releases, and in October 2021 a decision was made to concentrate solely on quarterly releases, changing the numbering scheme accordingly. No further LTS release will be made.

Further details, notes, and discussions : Notes and Discussions on the Release Schedulehttps://wiki.mozilla.org/Release_Management/Calendar - Firefox release schedule