I'd like to restate/clarify our backward-compatibility policy for both our users and developers, since there appears to have been some confusion lately.

Our rule of thumb is, when deprecating a feature, we support it for one whole release along with the replacement feature so that client code has a release to adapt. More explicitly:

 Release N-1: Feature X exists.
 Release N:   Deprecate feature X, introduce replacement feature Y.
 Release N+1: Remove feature X.

In release N, client code will get a warning when using feature X, and they can change to using feature Y to silence that warning. When release N+1 comes out, if they have no warnings in release N, their code will continue to work.

---

What we can't do:

 Release N:   Feature X exists
 Release N+1: Remove feature X, introduce replacement feature Y.


That would be a bug, because the client has no release to migrate from the old to the new way. (Example: in 4.1 we removed the state `apply` attribute and replaced it with `applied`. From an implementation point of view, it made great sense, but from a client point of view, we shot them in the foot.)

---

[Question: Is N a major or minor version number? In previous lifetimes, I would have said major, but it seems that with OpenLaszlo N is a minor version number. Certainly N is not a 'point' or sub- minor version number.]


Reply via email to