Git, the D package manager

Mathias LANG via Digitalmars-d digitalmars-d at puremagic.com
Mon Feb 2 06:11:10 PST 2015


On Monday, 2 February 2015 at 13:42:19 UTC, Vladimir Panteleev 
wrote:
> On Monday, 2 February 2015 at 13:25:57 UTC, Mathias LANG wrote:
>> To be more specific, dub won't let you compile a project with 
>> multiple definition of a function. How is that a liability ?
>
> You can't have more than one main() function.
>
> Some packages contain more than one entry point (programs / 
> executables).
>
> In my case, my library allows selecting an entry point based on 
> the nature of the program (console/GUI) and the platform. The 
> program only imports one of these. Vibe does something similar, 
> but it has only one entry point.

You can do that using configuration sections:
http://code.dlang.org/package-format#configurations

>> Is rdmd able to build static and dynamic library ?
>
> Yes.
>
>> If so, does it ignore files that are not imported anywhere ?
>
> Yes.
>

I don't see how this is a feature. I want all my file parsed and 
put inside the archive.

>> I don't see any downside here.
>
> The downside is dmd -o- doesn't work.

It works when you're in source. No difference.

>> What's your editor ? Mine complains on syntax error.
>> If you're using vi/emacs, then placing your editor in source/ 
>> (or starting dmd here) would do the trick.
>
> "syntax check" was not meant literally. Can your editor 
> instantiate imported templates, too?
>

I'd like it too, but not ATM :(
Is the working directory option working for you ?

>> git clone http://github.com/You/repo otherName
>>
>> breaks that workflow equally. Relying on the name under which 
>> your repo was cloned doesn't seem that robust.
>
> The distinction is that you have to go out of your way to break 
> it. Dub not just breaks it by default, but there is no simple 
> way to work around it, either.
>

If you go out of dub's way, you might break it. The same happen 
when someone goes out of your workflow. Is running dmd -o- from 
./project/source instead of ./project/ impossible with your 
setting / IDE ?

>> - dub rely on git tags for versioning. If you want to do 
>> *real* versioning (and not just "most up to date tag"), you'll 
>> still have to play with branches and submodules.
>
> Yay, more buttons to press! When I could actually be getting 
> things done instead.

Want to track a branch: ~branchName
Want to track a specific commit: == x.x.x
want to track a bounded commit range: ~> / >= <=
Want to track an unbounded commit range: >=


More information about the Digitalmars-d mailing list