Closed frasertweedale closed 1 year ago
@romanofski let me know your thoughts.
Yeah I was wondering do we want to expose that it's still work in progress or just release 1.0 and say good enough and use the normal major/minor/patch
scheme? Or in other words, if we use <year>.<releasenum>[.<patchnum>]
would we want to stick with it or just until we release 1.0
?
@romanofski I want to decide the permanent scheme. We can stick with 1.x etc (fair enough, we already defined milestones as such). But I was thinking about the meaning (or lack of) implied by different schemes and what actually makes the most sense. So, just let me know what you think works best or provide your thoughts on the advantages/disadvantages of the different options.
Ah understood. I agree with the <year>.<releasenum>[.<patchnum>]
conveying a bit of a slow release cycle and I think that's a good idea. Renaming our current release milestones is simple, so I don't think we should be holding off on any different versioning scheme really.
So happy to go ahead with your initial idea really. I haven't made a Fedora package release for ages since the last time I ran into conflicts. I'm not sure if I'm still keen to keep it up ... Regardless, nothing to do with a hackage release.
Is your feature request related to a problem? Please describe.
We should claim the /purebred/ package name on hackage. To do that we need a release (or a candidate release, to at least claim the package name). Before we do that we should decide upon a versioning scheme.
Describe the solution you'd like
Releases will be sporadic and will usually break compatibility in some way (of the library, the configuration data type, or the behaviour of the program). I suggest the following scheme:
This scheme is PVP and semver compliant. If that even matters for a user application (as opposed to library). But I reckon it does to some extent, given that we want to encourage plugins.
Describe alternatives you've considered
Instead of year we could just increment the first version component for each "major" release. E.g.
1.0
then2.0
and so on, with patch level releases beingn.0.p
. This scheme has an unused second version component (for PVP compliance).Or we could use
0.n.p
or1.n.p
and stay at "version 0" or "version 1" until we decide to become "the next major version". This scheme avoids unused version components. But it has some mysterious meaning ascribed to the first version component. What circumstances warrant a bump fromv.n[.p]
to(v+1).0
? It might be better to avoid the question :)