Here's the long awaited releaseplan proposal for the next major MMBase release.
Please review it and sent in your comments. I'd like to start the call for a vote about the releaseplan next week, so we have one week to discuss it.
I haven't added dates for the code freeze/branche/etc, because I have to look into this.
If you're willing to help us test, please let me know which os/jdk/applicationserver/database you can test.
A complete list of todo's must be / will be added to cvs.
Gerard
NOTE: This is a draft of the release plan for the next release of MMBase. Nothing in this document should be considered authoritative until it has been discussed and approved on the mmbase-dev mailing list.
MMBase-1.7.0 Release Plan
=========================
Objective
=========
The objective of the proposed MMBase release is to provide a stable
MMBase-version, which can be used in a production environment.
Changes
=======
MMBase-1.7.0 includes major new features over MMBase-1.6.x, some of
which are related to the following projects:
- Field Types
- Storage
- Taglib 2
- MMCI 1.2
- Documentation
- Database Search Queries
More information about these new features will be added to the
releasenotes.
A start has been made to make MMBase more modular. Some parts already
available in the previous version, have been moved into an
application. Also some new functionality has been added as an
application.
The following applications will be distributed with MMBase-1.7.0:
- Cloud Context Security (including editors)
- Media
- Email
- Bugtracker
- Community
- RMMCI
- Editwizards
For more information about these applications see the releasenotes or
the documentation.
Other important changes/new features included in this release are:
- Apps 1 applications needed by a certain application can be added to
the requirements tag inside the application file. These applications
will be installed before installing the application needing the
other applications.
- A CharacterEncodingFilter has been added.
- The 'default' part has been removed from the config directory path.
- A testmodule has been added for automated testing.
An almost complete list of changes can be found in the releasenotes or
the documentation.
Important bugfixes included are:
- Tomcat shutdowns properly (all threads are started as daemon threads
now)
Release criteria
================
All (big) changes need to be stable, documented and tested.
Bugs:
-----
All bugs from the bugtracker with medium or high priority must be
fixed before this release. Bugs with a low priority can be delayed
untill a future 1.7.x release.
New bugs found during the release proces will only be fixed if there's
a bugreport.
For more information see bugtracker: <http://www.mmbase.org/bug>
Additional criteria
===================
The release needs to tested and found stable with:
OS:
- Linux
- Windows 2000, XP
- Sun Solaris
- MacOS X
JDK:
- Sun JDK1.4.x
- IBM JDK1.4.x
- Blackdown JDK1.4.x
Servlet Engines:
- Apache Tomcat 4.1.x
- Orion 2.0.x
- Resin
- Jetty
- IBM Websphere
Databases:
- MySQL
- Informix
- Hsqldb
- PostgreSQL
Testing
=======
Testprocedure
-------------
Because there aren't testcases for every part of MMBase the following
test procedure must be used before MMBase can be found stable on a
certain platform/jdk/servletengine/etc:
- clean installation must succeed (with empty database)
- jsp-editors must be functioning
- example applications must deploy successfully and must be working
(most applications can be tested using an example from the
mmexamples dir)
- example editwizards must be functioning
- all examples must work
Upgrade
-------
Upgrading existing MMBase installation must be tested before
MMBase-1.7.0 can be released.
Big clouds
----------
Because some problems (like performance problems) are likely only to
occur with big clouds, it's necessary MMBase-1.7.0 will be tested with
some big clouds. We need support for this from organizations running
big MMBase installations.
Todo
====
A complete list of todo items will be added to cvs. This list must
contain all things needed to be done before the release can take
place.
Releases
========
There will be at least 2 release candidates before the final release.
Code freeze:
Start Date: XX-XX-2003
End Date: XX-XX-2003
During this code freeze most outstanding bugs must be fixed and
stability must be tested.
If there are more problems found during the freeze, or fixing the most
important bugs takes more time, the duration of the freeze may be
extended.
Branch:
Date: XX-XX-2003
The branch will be used to create the Release Candidates and after the
1.7.0 release it will be used for bugfix-releases. The name of the
branch will be 'MMBase-1_7'.
RC 1:
Tag Date: XX-XX-2003
Release Manager: Gerard van Enk
This RC can be used for users outside the developers community to test
the upcoming release and report bugs. It can also be used for testing in
different environments (os, jdk, application server, etc).
CVS will be tagged after creating this rc and the tagname will be
'MMBase-1_7_0_rc1'.
RC 2:
Tag Date: XX-XX-2003
Release Manager: Gerard van Enk
This RC will be used to determine any showstoppers and decide if there
are more Release Candidates needed.
CVS tagname will be 'MMBase-1_7_0_rc2'.
Final Release:
Code Freeze/Tag Date: XX-XX-2003
Release Manager: Gerard van Enk
The final build. Before this release can take place all documentation
needs to be finished, all known bugs need to be resolved (or added to
the 'know issues' part in the releasenotes.txt) and the community must
approve the final release.
CVS tagname after the release will be 'MMBase-1_7_0_Final'.
Maintenance Plan
=================
The maintenance plan is a plan which describes what to do after the
release. Normal development continues on cvs-head, but it's possible
bugs will be found in this release and cvs-head isn't stable enough to
be released. These bugs must be fixed in the branch which is
created for this release and a minor release will be done (after being
proposed to the community). In any case, no backwards-incompatible
changes should be made in this branch!
New functionality from cvs-head may only be backported to this branch
after a vote by the commitors.
The release team (see below) is responsible for taking care of the
maintenance plan.
Release Team
============
The release team will be composed of the committers that give the
binding +1 on the release plan and release proposal. It must have at
least 3 members.
The release team will coordinate the execution of the release plan,
dispatch bugs to volunteers, review commits, and act as a lead in the
release process.
One of the team members will act as "Release Manager" and will be
responsible for building the release candidates, making the
announcements about the release progress, announce the final release
on Freshmeat, etc.
After the release is done, the release team is responsible for the
maintenance plan.
