Mars Drafting Library - Official community driven library
HaraldZealot via Digitalmars-d
digitalmars-d at puremagic.com
Sun Feb 1 01:28:41 PST 2015
>
> Possible initial prerequisites:
> - User awareness about the usage consequences
> - Library placed at https://github.com/D-Programming-Language/
> - Only well recognized community members have pull rights
> - design decision made on the best known sw engineering
> patterns used in D
> - New module should be functional with D/Phobos standards
> applied
> - API and implementation allowed to change any time in order to
> make a progress
> - no external dependencies beside OS services
> - "draft" as the root module name e.g. "module draft.gui"
>
> Advantages:
> - community driven process which ensures the lowest level of
> controversy
> - fast path for modules like GUI to be standardized
>
> Disadvantages:
> - additional effort for the sw release process
>
> Ready to be destroyed ;)
>
> Piotrek
Approximately a half year ago I have similar idea and suggestion.
This is my idea:
* make new feature in dub, that it can place some libraries in
common namespace.
For example CyberShadow's ae will be placed in something like
advancex.image, or logger (lucky it is in std.experimental
already, but as alternative history) is placed in stdx.logger.
But they are not part of phobos in that time but usual dub
package on dub registry.
* create namespaces "advance" (or any other) for useful but not
so common components (e.g. proposal windowing, image processing
an so on), "bind" for Deimos. Phobos is "std" already :). And
also create their experimental counterpart like "advancex",
"bindx" and "stdx". (It can be other name but I prefer one worded
"stdx" than two worded "std.experimental" in other level of
hierarchy").
* make new feature in dub and dub register that counts download,
likes and bugs. When some package receives essential feedback it
can be started pull request process.
* all packages in special namespaces can't be orphan.
Experimental version must have at least one active maintainer.
More approved namespace require two responsible maintainer one of
which at least someone from trusted user. If package became
orphan it will be dropped out.
In this manner we can create stair like development. To place
simple package in dub registry you have the same condition as for
now. If you want place it in experimental namespace you must
complete some easy condition (more complicated in case of "stdx"
and perhaps "bindx"), and you package must go through full review
process in case of phobos.
You can see on archlinux as example of such package management.
For now I drive two interesting project, but I also try to find
forces for this one.
More information about the Digitalmars-d
mailing list