Because it is absolutely essential that we allow compatibility with the older release.

Specifically, it is a requirement that if there are any binary or source incompatible changes, then an application must be able to run with both the old and new jar files (v1.4 and v2.0). The only practical way in Java today is to have the two incompatible versions in two separate packages.

The practical impact of a new package is small to users that use commons-io directly - a quick organize imports in an IDE. The impact of NOT doing this would be jar hell, if your application relied on another open source library that still used v1.4.


Then there should never be a 2.0; it should remain as 1.5, 1.6, 1.12 etc.

??? ...I think Stephen was just making a point about jar hell ...no?

2.0 is semantically meaningless.

I buy your argument for huge changes, ie) collections-generics is very
much a different product. I don't buy it for small API changes and
removal of deprecation. Your argument would imply that we should never
deprecate (as we're never going to actually remove it) and that we
never increase a major version except for PR reasons.

True ...it does bring up the question about deprecations - for minor upgrades.

1.x -> 1.(x+1) ...will we ever *remove* deprecations? I think it is common sense to remove them after a couple of releases.

Only 1.x.y -> 1.x.(y+1) should be stay as compatible that you can drop them in without really reading the release notes. For 1.x -> 1.(x+1) we should have the freedom to remove deprecations after a couple of releases. This just needs to be well documented. With pointers how to replace the deprecated method/class with the new API.

If IO 2.0 is hugely different so as to be a new product, then sure. If
it's practically the same with minor API breakage, then I still don't
see the need to cause pain to many for the few who think they can
magically upgrade major versions in production. Sure we'll get
cross-dependency problems, but that just implies to me that we
shouldn't be doing major upgrades all the time.

If someone thinks he can upgrade from 1.x to 2.x without changing anything he deserves the pain to make sure he is still alive and thinking ;)

While I think it's very important to be concerned of backwards compatibility there is nothing wrong with a 2.x version to get out of the paralyzes and move forward. That's life! If people don't want to move forward they need to stick with what they have.

As long as we publish our release compatibility rules and stick to them ...everyone will be OK I assume.

My 2 cents
--
Torsten

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

Reply via email to