mcclure / emily

Git mirror of https://bitbucket.org/runhello/emily
Other
58 stars 5 forks source link

[FEATURE] Package Manager #7

Open FayeAlephNil opened 9 years ago

FayeAlephNil commented 9 years ago

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 commented 9 years ago

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 commented 9 years ago

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

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

FayeAlephNil commented 9 years ago

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 commented 9 years ago

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

mcclure commented 9 years ago

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