On 3/20/06, Nathan Bubna <[EMAIL PROTECTED]> wrote:
>
> compatibility is not that difficult to maintain in reality.
>
> for project developers there are just 3 simple rules to follow:
> - no point release (1.3.1 to 1.3.2) should ever break a working,
> outward facing API
> - all minor versions (1.3.x to 1.4.x) should deprecate working,
> outward facing APIs before removing (release foo in 1.3.x, deprecate
> in 1.4.x, and remove no sooner than 1.5.x, if at all).
> - all major versions (1.x.x to 2.x.x) are free to break or change
> whatever they wish.
>
> assuming developers respect these well-established patterns, then
> users worried about compatibility and dependencies and unwilling to
> track all project changes, there are only three simple rules:
> - point release versions that go GA are always safe to upgrade
> - watch for deprecations when upgrading minor version numbers
> - expect things to break with a major version upgrade

One of the problems is when a point release change in one package
relies on a specific point release change in another package.

If struts-action-1.3.2 adds some new functionality, and
struts-taglib-1.3.1 uses this new functionality, a user who is using
struts-action-1.3.1 can't just plug in struts-taglib-1.3.1 without
upgrading the action jar as well.

Throw in several jars each with several versions each, and a user
wanting to upgrade just enough to get one specific feature, but not to
all the newest jars, and you can understand where the confusion can
come from.

Hubert

Hubert

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

Reply via email to