Vibemail - extensions for vibe's Mail class to send multi-part emails with attachments
ponce via Digitalmars-d-announce
digitalmars-d-announce at puremagic.com
Tue Sep 29 14:14:36 PDT 2015
On Tuesday, 29 September 2015 at 16:22:43 UTC, Adam D. Ruppe
wrote:
>> I copy/pasted your arsd/dom.d code in a couple of projects.
>> But none of them will receive updates unless I do 'm manually.
>
> That means you don't have to put up with me randomly breaking
> your code! You don't have to wait for me to publish a bug fix.
> You aren't locked in to the way I did things and are free to
> customize it as you wish.
But this encourage to create tiny little forks everywhere. So
everyone is getting less bugfixes: if I have my local copy,
nothing encourages me to contribute the fix.
This is the strength of versionned dependencies:
- one master tree
- get bugfixes automatically before you are aware they even exist
- do not close the door to breaking changes in the form of a
major version bump.
- open/closed principle for packages: if you use
devisualization:window, the X11 package is pulled and linked
without anymore work. This sub-dependency doesn't leak into your
project, it's only a property of the primary dependency you used.
So I'd DUB strive to make dependencies composable, where they
were previously a leaky abstraction. It's like calling a function
and not having to know what it does inside.
Of course this implies there is no bad-fixes or SemVer misuse :)
But I've found this to work reasonably well in practice.
More information about the Digitalmars-d-announce
mailing list