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