| |
| Posted by Stanislav Blinov in reply to Andrei Alexandrescu | PermalinkReply |
|
Stanislav Blinov
Posted in reply to Andrei Alexandrescu
| On Wednesday, 3 November 2021 at 19:30:13 UTC, Andrei Alexandrescu wrote:
> On 2021-11-03 11:37, Andrei Alexandrescu wrote:
>> I'd like to devise a robust version naming for Phobos. What is the best way?
>>
>> Currently it's std.v2 but I'm unclear how it goes from there. By semver we'd go with std.v2_0_1 and so on.
>>
>> Walter and others say it's better to have "std2" at top level instead of "std.v2" nested inside std. I confess I chose "std.v2" partially because it's easier to implement. But we can go either way. What would be best?
>>
>
> One thought; we could call version actual names, like Ubuntu and OSX do. The version numbers will be a minor detail in the documentation.
Please don't do that. Picking good names is hard, and such naming complicates communication between developers (esp. those not fluent in language of choice, or not familiar with name origins). What if a given name is just unnatural to pronounce in your language? And how do you even maintain the ordering then?
To me, it'd be "better" to have std at top level, not std2 or std1005000220. So how about turning it around? During development, whatever next iteration is would be stdNext (or std.next). At release, it becomes the new std and the *previous* one gets a number (i.e. in current circumstance it'll become std.v1). The number may even be date of retirement.
This way it can be made as alias internally, so we can keep whatever the actual number is rolling, and still be able to break things that need breaking, and get to have easier to implement "std.vN".
This makes what's actually standard always, well, standard.
If someone wants or needs old stuff for some reason, it becomes THEIR responsibility to maintain their compatibility (i.e. s/<std>/std.vX/g), as it should be.
|