Hi,

The proposal in the "Versioning" thread brings us to having 3 main development lines for Maven itself, and that has a couple of consequences for how we develop that I wanted to explore separately to see if we're on the same page. These are my thoughts...

* Merging changes

- All 2.0.x changes are merged to 2.1.x (where still applicable)
- Reasonable effort is made to merge changes from 2.0.x and 2.1.x to 3.0, but if the target code has changed significantly, it is not required. The presence of integration tests will drive the later re- implementation of that feature on 3.0, a compatibility layer, or decision to break compatibility.

* Integration tests

Integration tests will be the touchstone for verifying behaviour between the different versions. While perhaps not immediately (see above), 3.0 must match the integration tests for 2.0.x and 2.1.x, unless a deliberate, documented decision is made to break compatibility. This includes both core integration tests and plugin integration tests as being separately discussed.

* Scope of work

3.0 will have a documented upfront goal and specifications for behaviour. Primary focus is on architecture rather than feature growth.

2.1 will allow feature additions, carefully managed for compatibility with 2.0.x. There's still an expectation they would work in 3.0 in most cases. This may include some backports from today's trunk. We should set out a list of objectives up front for this release also.

Because of multiple feature lines, it becomes even more important to discuss development plans up front to minimise duplication of effort and maximise compatibility between versions.

We also need to ensure we don't get back into this situation for either set of development - so setting a plan for a known release point and keeping in an always releasable state beyond that.

* Maven Artifact

Should this be folded back into today's trunk given it seems this would now be replaced by Mercury? Likewise, the MARTIFACT issues moved back to MNG?

* Rename JIRA

We will rename 2.1-* to 3.0-* and recreate the 2.1 versions. Both need to be carefully maintained during development.

* Rename SVN areas

Would it make sense to lose the "components" name for SVN in the long term? Perhaps moving to /m3/trunk or similar?

Cheers,
Brett

--
Brett Porter
[EMAIL PROTECTED]
http://blogs.exist.com/bporter/


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to