On 2011-09-06 17:37, Adam Ruppe wrote:
Jacob Carlborg wrote:
I prefer to use "old_".

There's two big problems with that though:

1) It still breaks the old code. It's an even easier fix, so this isn't
too bad, but it is still broken.

2) What if a third version of a module comes along?

What I don't like is that if there's a function/class/module that should be deprecated but have a good proper name we can't use that name for a new implementation.

Another problem I see is that DMD, D, druntime and Phobos are released in one piece. You should be able to take an arbitrary version of Phobos and use it with the compiler and the language, just as you can with other libraries. Then there could be a better version scheme and you can stay on a given version if you really have to.

1.0.0
Major.minor.build

Increment major when introducing API breaking changes, i.e. removing a method. Increment minor when introducing non-breaking API changes, i.e. adding a new method. Increment build when changing implementation details, i.e. changing an internal data structure from an array to a linked list.

With this version scheme you would know that as long as you stay on 1.x.y your code won't break.

--
/Jacob Carlborg

Reply via email to