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

[FEATURE] Package Manager #7

Open
FayeAlephNil opened this issue May 26, 2015 · 5 comments
Open

[FEATURE] Package Manager #7

FayeAlephNil opened this issue May 26, 2015 · 5 comments

Comments

@FayeAlephNil
Copy link

So I was discussing the possibility of an official package manager with @ mccclure on Twitter and she asked me to post my proposal here. So here it is

Okay, so this package manager would be pretty rudimentary so that we could skip most of the work of writing one. It would work by taking a url and then downloading that url to a lib folder at the home of the system if it doesn't detect that the selected library version for the selected emily version is there. And that's pretty much it. The beauty of this design is that anyone who uses the package manager will be looking through this lib folder. Therefore if libraries a and b require c then they would see that c is in the system lib once a downloads it (causing b to not need to as the selected version is there).

@FayeAlephNil
Copy link
Author

This would also require a way to directly require a file/package based on the path to it instead of one of the loaders. With that people can just require from something like ~/.emilylibs/examplelib

@mcclure
Copy link
Owner

mcclure commented May 26, 2015

Okay… I definitely think simple is good. Here are some questions:

  • What would specify the URLs, and where?
  • Where would packages, once downloaded, live? Like, where in the package heirarchy?
  • Would this be built into Emily? Would it be a separate program?

As far as that second thing goes, maybe "load from a literal path" is a good thing to include anyway.

@FayeAlephNil
Copy link
Author

  • There are 2 options for that. We can have a web service that people upload their code too. Or we can just have it where people pass in a raw url to the package manager
  • I think the best option for that is to have them live in either a folder in home such as .emilylibs. Or to have them live somewhere in the emily install
  • Either is possible. I think it would be easier to make if this was a seperate program however

Also, the way you would use the program is you would specify your dependencies in a file. Then, if you wanted the program to get your dependencies, you would run it in the directory with the file with say packageManageName getDependencies

And on that note, what do you think the package manager should be called?

@FayeAlephNil
Copy link
Author

I'm thinking if I write this it will be in Ruby, just a heads up

@mcclure
Copy link
Owner

mcclure commented May 27, 2015

@Strikingwolf's prototype is currently at https://github.com/Strikingwolf/Sophia/blob/master/design.md

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

2 participants