Don Brown wrote:
But don't you see, if we used the more traditional 1.0-alpha-1 ->
1.0-beta-1 -> 1.0-rc-1 -> 1.0 then we could produce releases that
drastically changed the API within a single version. As it is now,
there could very well be huge changes from 1.0 to 1.0.1 because every
release gets its own numeric version number, regardless of quality.
You can always make changes that break APIs. This can happen using any
versioning scheme. It isn't about whether or not you CAN do it. It is
whether or not you SHOULD do it.
In most projects, the version numbers are used only to signify
compatibility and uniqueness. Whether or not it uses alpha/beta/etc. or
just patch versions doesn't matter. If you use good dependency
management tools they will handle compatibility across any versioning
scheme, whether it is minor, patch, major, whatever.
I agree the changes in 2.1 are very significant, so much so that they
necessitate multiple alpha releases to get feedback from the
community. Currently, there is no way to do that without releasing
2.1.0 -> 2.1.1 -> 2.1.2.
You are talking about something different than what I'm talking about.
You are talking about version numbers and I'm talking about compatibility.
Here's an example... The XWork configuration API changed to the builder
pattern. This is probably a good thing, but required any plugin using it
to make significant changes and re-compile. This change wasn't
compatible and there are ways to make these types of changes while not
impacting compatibility. Then it doesn't matter what the version numbers
are. You deprecate things correctly and then remove them on a defined
schedule.
But, I will say this... Struts 2 doesn't have any compatibility
definition at all. Versions 2.1.0 and 2.1.1 might be incompatible and
2.1.5 and 2.2.7 might be compatible. This makes it impossible for tools
like Ivy and Savant to manage Struts dependencies correctly. Therefore,
I think it is VITAL that we pick a compatibility model and stick to it.
-bp
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]