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]