pfultz2 / cget

C++ package retrieval
http://cget.readthedocs.io
Other
453 stars 27 forks source link

Support for other version control systems. #49

Open larzw opened 7 years ago

larzw commented 7 years ago

Hi,

I like the syntactic sugar you have for packages from github. Would you accept a PR for something similar for bitbucket and gitlab? Maybe something like...

Let me know and I can take a peek at it.

pfultz2 commented 7 years ago

I am thinking something like doing:

This actually downloads the source tarballs, and doesn't actually use the version control directly. All these services above provide such tarball downloads, so its just a matter of mapping to that url, which happens here. It could be easily extended to support such formats.

larzw commented 7 years ago

@pfultz2,

Ok great! I like your syntax better. What are your thoughts on switching to a uri? For example, cget install gh?user=jgm&repo=cmark or cget install bb?user=jgm&repo=cmark&tag=1.0.0 or cget install www.foo.com?user=jgm&repo=cmark&branch=bar

it's a bit more verbose, but potentially more general.

Also, do you want to keep,

cget install jgm/cmark defaulted to github? Otherwise it's a breaking change.

Thanks!

pfultz2 commented 7 years ago

What are your thoughts on switching to a uri?

I think it will make it harder to have recipes override it. Also, the logic for checking if a dependency is installed would be more complicated as well.

Also, do you want to keep, cget install jgm/cmark defaulted to github?

Yes I do. Maybe in the future there could be a configuration to change the default. I also wonder if the names should drop the gh/, bb/, or gl/ in general. So then it would work like this:

cget install gl/owner/repo
cget list
owner/repo

That is the name of the package would drop the prefix. I am not sure, as maybe there could be conflicts(but could be resolved by using an alias).