Suggestion for DUB users: The vanity package
Steven Schveighoffer
schveiguy at gmail.com
Tue Oct 19 17:04:04 UTC 2021
On 10/19/21 12:37 PM, Kagamin wrote:
> On Tuesday, 19 October 2021 at 04:03:38 UTC, Mathias LANG wrote:
>> So what's the solution ? Well we could go with the Java-esque
>> `com.foo`, but that'd be a bit ridiculous. Instead, for a few years
>> now, I have started a habit of using the "vanity package", a top-level
>> package with my username, for simple libraries I publish:
>> -
>> https://github.com/Geod24/bitblob/blob/v2.2.0/source/geod24/bitblob.d#L16
>> -
>> https://github.com/Geod24/localrest/blob/ddfa8cd3bc2f48e1dfc5edd803b990e5aaa69044/source/geod24/LocalRest.d#L102
>>
>> -
>> https://github.com/Geod24/minivariant/blob/d20b240d45289a857b4c0d6e7f842a92b3d4a19e/source/geod24/variant.d#L30
>>
>>
>> It "just works", is pretty simple to remember, easily extendable, and
>> you can be pretty sure no user of your library will run into
>> conflicts. I encourage anyone considering publishing a package to do
>> the same.
>
> If we can have several libraries starting with com and org, why not have
> a default package `d` or `dlang` used by everyone, so it would be
> module d.bitblob;
Note that the vanity package needs to be a name that isn't used anywhere
else. Even with the module under a package, the problem is still present
with the *top level package*. e.g. `std` is not a common name used by
anyone, so it causes little grief.
Something like `geod24` is not going to be a common name. But `d` likely
is. I don't think `dlang` would be a bad idea, but I suggest actually
something really unlikely. But it is a good idea to have a specific
language-sanctioned "put your one module projects here".
I've been using `schlib` for [my
stuff](https://github.com/schveiguy/lookuptable).
-Steve
More information about the Digitalmars-d
mailing list