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