How We Do Releases at NetBeans
This document describes how new versions of the NetBeans IDE are released.
NetBeans Release Process
- Releases should happen approximately every six months - that is, two releases each year.
This is the goal.
- At all times we need to be looking toward the next release and the
one following it. Not all releases are equal. We may plan huge changes
in one release and a lot of stabilization work in the next one.
That's not to say that we would tolerate a buggy release - but as NetBeans evolves,
it is predictable that there will be occasional significant rewrites of
certain functionality. Other releases may only involve incremental improvements.
Given the modularity of NetBeans this also applies at the module level.
- Although the general schedule is one release every six months,
exact dates must be set for each release.
- The release schedule consists of
- Feature freeze - a time after which no new functionality
will be introduced. Only code changes due to bug fixes will be allowed to
be checked into CVS.
- At this time a side branch is created in CVS for
adding bug fixes and documentation changes. The naming convention for this branch
in CVS is releaseNN where NN is the pending release version.
- After feature freeze, user interface changes
should be minimal. Any pending UI changes should be communicated in advance
and only be done in the name of fixing bugs.
- During the stabilization phase the binaries are marked as NB X.Y beta.
Daily builds is made available for download and all users are invited
to test the software. Developers are expected to promptly respond to
bug reports. Bug reports are of course preferably filed in the bug
database, but the developers should also monitor the nbusers mailing
list and reply to users' feedbacks posted there.
- During the stabilization phase the README and release notes are written.
The first drafts of these two critical documents should
rather be made earlier than later.
- Stabilization phase - During which any bugs that are outstanding are fixed.
- Release candidate 1 - The first release candidate. If no serious issues are found the
last release candidate automatically becomes the final release. There
must be at least one week between the last release candidate and the
- After the first release candidate is made all code changes must be
negotiated in advance by posting requests on the mailing list.
- Release candidate 2 - The second release candidate
- Final release - The final, public release of a new version of NetBeans
The Release Manager
- The release manager is the person who tracks the whole release process
for one release.
- The main responsibility of the release manager is keeping all involved
people informed about the state of the release. The most important
things are dates and bug counts. The release manager is expected to
keep a list of things which need to be done and to ensure that someone
is taking care of them.
- The release manager is expected to raise unresolved issues on mailing
lists and drive the discussions to closure.
- The release manager does not have the authority to decide on his/her
own what will or will not be done.
The Release Manager's Responsibilities