Project Plan For technology.hudson, version 3.0.0
Introduction
This plan covers the transition of the core of the Hudson Project into Eclipse and
covers both non-Eclipse and Eclipse versions for completeness. Once
3.0.0
Release Deliverables
The Hudson deliverables for any particular release are are:
- The Hudson WAR file representing the actual Hudson tool
- O/S Specific installers for the WAR file
- Key Plug-ins compatible with Hudson 3.0 (maintained and down-loaded on demand from outside of Eclipse) including:
- Birt Support for Charting
- JNA Native Access Support
- XPATH Provider
- Groovy Support
- GIT Source Control
- Subversion Source Control
- CVS Source Control
- SSH Slave Management
- Rest Support
- Legacy Maven 2 support
- Maven 3 support
- Infrastructure and web-site updates as required
Release Milestones
The Milestones below represent the transition period
leading up to the first Eclipse release. The dates for the regular
Hudson production releases are predictable. The dates for the
Eclipse-Hudson releases will be dependent on the IP process around
the initial code contribution.
| Hudson 2.1.1 | 8/30/2011 | Regular Hudson production release (5 week cycle) - Non
Eclipse
|
| Hudson 2.1.2 | 10/06/2011 | Regular Hudson production release (5 week cycle) - Non
Eclipse
|
| Hudson 2.2.0 | 12/09/2011 | Regular Hudson production release (5 week cycle) - Non
Eclipse
|
| Eclipse-Hudson 3.0.0M0 | 01/15/2012 | Initial internal proving milestone release of Hudson from the
Eclipse Infrastructure
|
| Eclipse-Hudson 3.0.0M1 | 02/17/2012 | Internal milestone 1 for Hudson 3.0.0 release
|
| Hudson 2.2.1 | 05/31/2012 | Regular Hudson production release (delayed) - Non
Eclipse
|
| Eclipse-Hudson 3.0.0M2 | 04/20/2012 | Internal milestone 2 for Hudson 3.0.0 release
|
| Eclipse-Hudson 3.0.0M3 | 06/19/2012 | Internal milestone 3 for Hudson 3.0.0 release
|
| Eclipse-Hudson 3.0.0M4 | 07/30/2012 | Milestone 4 for Hudson 3.0.0 release - (Feature Freeze)
|
| Eclipse-Hudson 3.0.0RC2 | 08/21/2012 | Release Candidate milestone for Hudson 3.0.0
|
| 3.0.0 | 12/21/2012 | First full production release of Hudson (3.0.0) at Eclipse
|
| 3.0.1 | First regular patchset release
| |
| 3.1.0 | Next feature bearing release (for planning purposes)
|
Schedule for Hudson 3.0.0 releases is based on monthly bugfix patches (patch release) and quarterly feature bearing releases (minor release). Hudson version numbering is as follows [Major Release].[Minor Release].[Patch Release]
Target Environments
Hudson is a Java EE application which will run a variety of Java EE containers. The following distributions are targeted:
- Generic (WAR) distribution for any O/S
- Ubuntu / Debian
- openSUSE
- Oracle Enterprise Linux
- Red Hat / Fedora / CentOS
- Generic WAR + Common Plugins distribution for any O/S
Internationalization
The Hudson project endevors to support multiple languages
and has the infrastructure in the code to support translations given
contributions from the community.
Compatibility with Previous Releases
The Hudson project aims to ensure plug-in compatibilty with
earlier releases, however, upgrade to Hudson 3.0.0 from an earlier version is a significant step for organizations and should be undertaken with a suitable job and environment backup strategy in place.
Themes and Priorities
These are the current themes in play for the Eclipse 3.0.0 realease and next few beyond that as discussed at the public Hudson meeting on Aug-15 2011. The intent is to revisit and revise these and prioritize as appropriate once Hudson 3.0.0 is released.
Performance / Memory Management
We need to review the way that Hudson holds it's internal Memory model to optimize the memory usage on large, enterprise systems
Improved Class-loading Strategy
We need to develop a more sofisticated classloader infrastructure that can allow plugins to ship with their full set of requirements, rather than having Hudson Core polluted with JARs that it does not use directly
Project Visualization
Add diagrammatic visualization of a project's build steps
and provision for cross project orchestration
UI Technology Modernization
Migration away from Jelly onto a more standard technology
such as Facelets and or JSF and clean up and modernization of the UI generally.
Enterprise Support
One of the stated aims of Hudson is to provide the power and
stability demmanded of a tool that is going to be used in a large
enterprise environment. Several additional feature areas bolster
this aim:
- Performance
- Improvements of LDAP, Active Directory and other SSO technologies
- Tools to manage complex build pipelines e.g. cascading project setup inheritance and others
- Support for text markup beyond html to improve security and usability
More Native Installer Support
Although platforms such as Windows and Mac OS/X are
supported very well using the generic WAR file install it would be
good to produce a set of native installers for these platforms as
well
Enterprise Groups
An additional feature area in the enterprise space, but large enough to justify a theme of it's own. This will cover the whole area of resource management in an single enterprise wide instance of Hudson that is used by multiple teams with different resource constraints and security requirements. We'll need to consider job partitioning, resource throttling and many other features related to this
