November 04, 2021

On Wednesday, 3 November 2021 at 15:37:05 UTC, Andrei Alexandrescu wrote:

>

I'd like to devise a robust version naming for Phobos. What is the best way?

std->std0->std.
std->std0->std.
Always Only One Std Version.

std0 is just Intermediate state name.
std0 internal add a year as private alias version name such as std2021.

November 04, 2021
On Wednesday, 3 November 2021 at 22:21:53 UTC, Andrei Alexandrescu wrote:
> Prolly we could have both so people could use either "io" or "std2".

What I would actually do is make it the year of the planned stable release.

For example we might not actually use "Stdv2" but instead "std2023". In years prior to that, it is now obviously a future version and thus subject to change, then when 2023 comes along, it is officially stablized and we can start playing with std 2024.

This pace of putting major breaking changes in a yearly schedule would also give people realistic expecations. No, it won't break next month, but yes, it might next year.
November 04, 2021

On Thursday, 4 November 2021 at 00:38:24 UTC, zjh wrote:

>

std->std0->std.

std0 is similar to the C++latest switch, and std is the stable version.
We didn't do anything, we got the stable/latest version. Win-win.
You need stable version,Ok use std. You need latest version,ok use std0.
It also takes 3 months to enter the stable version. At the same time, it is synchronized with the release of DMD.
Why? Because many people want to use the latest features at the first time.
Users of the stable version also hope to get the latest version without modification.
Large and full use, but also easier to expose bugs.

November 03, 2021
On 11/3/2021 8:37 AM, Andrei Alexandrescu wrote:
> By semver we'd go with std.v2_0_1 and so on.

I understand its technical merits, but having to look at v2_0_1 is unbearably ugly.
November 04, 2021
On Wednesday, 3 November 2021 at 17:42:06 UTC, Andrei Alexandrescu wrote:
> On 2021-11-03 12:29, Paul Backus wrote:
>> On Wednesday, 3 November 2021 at 15:37:05 UTC, Andrei Alexandrescu wrote:
>>> 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.
>> 
>> This seems like a misuse of semver to me. Backwards-compatible bugfixes and additions to std.v2 can go directly into std.v2, just like they currently do for std. There is no need to create separate packages for every minor and patch increment.
>> 
>> If we really want to support users depending on a specific minor/patch release of Phobos other than the one shipped with their D toolchain, we should put Phobos on code.dlang.org.
>
> OK, so the way to go is with std version naming is...?

Having thought about this some more, I think there are two separate issues here: naming and distribution.

SemVer tells us how to do naming; i.e., how to refer to a particular release, like "1.0.0" or "2.0.1". I do not think we should abandon SemVer for naming.

However, SemVer does not tell us how to do distribution; i.e., how users can get access to a particular release. There are many possible choices we can make here:

* Ship every release with the official D distribution.
* Ship the latest release of each major version with the official D distribution.
* Ship every release on code.dlang.org.
* Ship some releases with the official D distribution and others on code.dlang.org.

Given that code.dlang.org already has infrastructure in place for distributing many releases of the same package, I think it makes sense to use it for at least some of Phobos's distribution, if not all of it. And my gut reaction is that shipping *every* release in the official D distribution would be too much--at the very least, new users should not be presented with dozens of standard-library releases to choose from right off the bat. So, the right answer is probably somewhere between those two extremes.
November 04, 2021
On 11/3/21 8:46 PM, Adam Ruppe wrote:
> On Wednesday, 3 November 2021 at 22:21:53 UTC, Andrei Alexandrescu wrote:
>> Prolly we could have both so people could use either "io" or "std2".
> 
> What I would actually do is make it the year of the planned stable release.
> 
> For example we might not actually use "Stdv2" but instead "std2023". In years prior to that, it is now obviously a future version and thus subject to change, then when 2023 comes along, it is officially stablized and we can start playing with std 2024.
> 
> This pace of putting major breaking changes in a yearly schedule would also give people realistic expecations. No, it won't break next month, but yes, it might next year.

Love this.
November 04, 2021
On 11/3/21 8:38 PM, zjh wrote:
> On Wednesday, 3 November 2021 at 15:37:05 UTC, Andrei Alexandrescu wrote:
>> I'd like to devise a robust version naming for Phobos. What is the best way?
>>
> 
> `std->std0->std`.
> `std->std0->std`.
> Always Only One Std Version.
> 
> `std0` is just Intermediate state name.
> `std0` internal add a `year` as `private alias version name` such as `std2021`.

No because this will break all existing code.
November 04, 2021
On 11/3/21 8:25 PM, Guillaume Piolat wrote:
> On Wednesday, 3 November 2021 at 15:37:05 UTC, 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?
> 
> My pick is stdnext.stuff

And then? stdnextnext?
November 04, 2021

On Thursday, 4 November 2021 at 04:07:39 UTC, Andrei Alexandrescu wrote:

>

On 11/3/21 8:38 PM, zjh wrote:

Just an private alias,where is break?

version std0=std2021,is so easy.

std.v2_0_1,too ugly.This is not the right way.

User only need change std to std0,and every new feature is Ok for use.If he want stable release,He does nothing.std is already there .
Just maintainer merge std0 into std.

November 04, 2021

On Thursday, 4 November 2021 at 05:45:14 UTC, zjh wrote:

>

Just maintainer merge std0 into std.

Just like git merge into std stable release.std=std0(3 month later mergin into.
We always two branch:std(stable)+std0(latest,unstable).