Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Different dependency providers #13

Open
heyLu opened this issue Feb 26, 2015 · 5 comments
Open

Different dependency providers #13

heyLu opened this issue Feb 26, 2015 · 5 comments

Comments

@heyLu
Copy link
Member

heyLu commented Feb 26, 2015

As mentioned previously (here and here, we want to be able to fetch dependencies from places other than GitHub.

I think we should support the following:

  • [user/repo "version"] for GitHub and BitBucket (GitHub being the default)
  • ["git://git.papill0n.org/awesome.git" :type "git"] and ["http://hg.papill0n.org/also-awesome" :type "hg"] to support git, hg and possibly others directly, on any server
  • ["http://files.papill0n.org/awesome-1.0.0.tar.gz" :type "tar"]
  • ["../awesome" :type "file"] for local dependencies, resolved relative to the project root directory

@kgann has suggested using multi-methods for this, seems like a good idea to me!

If you want to work on this, please say so here!

@heyLu heyLu mentioned this issue Feb 26, 2015
@kgann
Copy link
Contributor

kgann commented Feb 26, 2015

@heyLu I'm on it! I'll update #12 with some multi-methods and github/local files - new PR's for other providers so it doesn't get too large.

@heyLu
Copy link
Member Author

heyLu commented Feb 26, 2015

@kgann Can you do all of that in a separate PR? Or even multiple PRs, depending on how big it gets?

@kgann
Copy link
Contributor

kgann commented Feb 26, 2015

@heyLu Yes, no problem.

@kgann
Copy link
Contributor

kgann commented Feb 27, 2015

I'm starting to think we will run into issues with cyclic and/or duplicate dependencies.

Consider 2 dependencies required for a project (perhaps through sub-dependencies):

[heyLy/hiccup "0.1.0"]
["git://git.github.org/heyLu/hiccup.git" :type "git"]

What do we do in this case? If we download both and place them in different paths and try to put both on the --load-path we will have some issues, right? Especially if they are conflicting versions.

What about requiring the names be present?

[heyLy/hiccup "0.1.0"]
[heyLy/hiccup "git://git.github.org/heyLu/hiccup.git" :type "git"]
[heyLu/hiccup "../my/local/hiccup" :type "file"]

This would allow us to detect cyclic dependencies as well as duplicates and abort/ignore. This is not 100% as someone could just change the name and have the duplicate dependency fetched.

Thoughts?

@mpenet
Copy link

mpenet commented Oct 28, 2015

FYI I ported clojure "dependency" lib to pixie, this could help making this happen: https://github.com/mpenet/dependency

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants