On 2/22/08, Brian Pontarelli <[EMAIL PROTECTED]> wrote:
>  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.

I disagree - we should be able to make internal changes between minor
versions without deprecations where necessary and I would consider
this necessary.  By preserving the constructors and setter methods on
the configuration entities, we wouldn't have gained any of the
immutable benefits of the builders, and therefore, the bugs would have
continued to exist.

There is a significant distinction between changing an internal API
and an external one.  The number of people that were affected by this
change was probably less than 10, as most users aren't creating
ActionConfig objects.

>  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.

Well, the Struts project has always had a defined strategy to guide
changes and deprecations, although I can't seem to find it on the
website right now.  Also, each release plan includes notes where
incompatibilities are listed.  What more do you suggest we do?

Don

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

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

Reply via email to