[gsoc] DUB - Ideas

Seb seb at wilzba.ch
Thu Feb 28 15:50:49 UTC 2019


So while we have quite a large list of potential GSoC projects 
[1], I think that many of these ideas are still a bit too 
abstract for potential students.

Hence, I will try to introduce this new [gsoc] series aimed at 
(1) discussing potential ideas in depth and (2) maybe finding new 
ideas. I encourage everyone (students or just curious D 
enthusiasts) to start more of these [gsoc] threads, s.t. our 
potential students can learn more about the proposed projects 
(students: please don't be shy).

The first item on my list is D's package manager DUB.

My personal favorite "missing feature" in DUB is a direct git 
support. It would be really awesome if we would implement a 
"GitRegistry" for packages, s.t. one can directly depend on git 
repositories:

dependency "my-package" version="git://.../my-branch#my-commit"

There's also a DEP about this feature [2] (though the proposed 
format there isn't set in stone). DUB's architecture is already 
fairly modular, so as a start students could look into creating a 
GitRegistry supplier [3]. There's also some previous work [4] 
which can of course be used for inspiration too. While initially, 
the `git` CLI binary can be used, it's not guaranteed that the 
user will have this installed (especially on Windows), so one 
would either need to use e.g. libgit2 (see [5] for a D binding) 
or implement Git's protocol itself (see e.g. [6]).

@community: what features do you miss the most from DUB?

Disclaimer: The span of the GSoC is three months of full time 
work and proposals from students should take this into 
consideration. The DUB project is a bit special as some 
individual ideas might take less than three months of work, but 
in this case one could just combine two or three DUB 
features/ideas into one project.

[1] https://wiki.dlang.org/GSOC_2019_Ideas
[2] https://github.com/dlang/dub/wiki/DEP6
[3] 
https://github.com/dlang/dub/blob/master/source/dub/packagesuppliers/packagesupplier.d
[4] https://github.com/dlang/dub/pull/1403
[5] https://github.com/s-ludwig/dlibgit
[6] 
https://github.com/git/git/blob/master/Documentation/technical/http-protocol.txt


More information about the Digitalmars-d mailing list