Am 21.10.2020 um 17:41 schrieb Guillaume Piolat:
On Wednesday, 21 October 2020 at 14:47:14 UTC, Robert burner Schadek wrote:
Semantic versioning is useful, but 0.x.x versioning is a pointless
loophole. When a piece of D software is published, and it is published
if other people can find it on dub, it is released. And released means
1.0.0 at least.
Agree. Or we won't ever have a dependable ecosystem. Please provide
guarantees.
Success of D is success of building upon the ecosystem of libraries.
Something that people must consider to avoid too much major version tags
is:
- delay breaking changes and pack the breaking change at once
- **have a small (and agreeable) public API surface**, use private and
package identifier that are allowed to change spec
- provide a changelog to go from a major to another major tag, no one
want to read your git commits
- a system of option using `version` identifier to make something
similar to DMDFE's -preview. Configuration to gain compat at the expense
of simplicity (option count can grow wildly).
0.x.y vs. 1+.x.y is about the development process/state. Quite often a
design is not yet fully fleshed out in the beginning and there are many
incremental changes to the API. If 0.x.y didn't exist, that would simply
mean that either the project gets more or less stuck with the initial
(bad) design, or that it quickly increments major versions, effectively
providing no more stability as in the 0.x.y case.
But otherwise I agree, there are definitely quite a few projects that
are beyond this stage and should make the jump to 1.0.0 (a few of mine
included).