standardml / smackage

Smackage Package Manager for Standard ML
Other
122 stars 12 forks source link

Suspicion: install is going to be a problem, support make instead? #10

Closed robsimmons closed 13 years ago

robsimmons commented 13 years ago

(Originally created this as a milestone, but I kind of wanted to have comments, so doing this instead.)

I wanted to ask if we want to try to get to v1, and what we should try to support there.

There are all sorts of potential dependency and platform detection and support issues with actual installation that I'm convinced we haven't worked through yet which are somewhat tangential to the problem that smackage is currently able to solve, and my experience has been that debugging windows issues is pretty maddening.

However, smackage can do a pretty good job of getting Standard ML code onto people's systems where it can refer to other Standard ML code that smackage also puts onto people's system. I think a reasonable way to punt on this for now is to have platform sections be existant but totally meaningless in v1, but to support the following command:

smackage make pkg <version> ...

which would just run make ... in the home directory of pkg .

That way we allow installation, but totally punt on the question of how to build binaries, detect systems, deal with FFI or C code - anything like that - while still making a flexible system that people can use.

We can even support an (optional) upgrade path by just telling people to run the following:

smackage make smackage {mlton,smlnj,win+mlton,bsd+ocamljs,whatever} 
smackage make smackage install
gian commented 13 years ago

I agree completely. This is a much nicer way to do things. It won't take a lot to change things to work this way I suspect, and it's suitably flexible. I'm completely booked up this weekend, but I'm happy to refactor things after Monday if nobody else gets to it first.

robsimmons commented 13 years ago

Alright. I'm going to spend a couple hours today on this and see how many of the issues I can blast through, I'll happily let you take the ones I don't get around to :-).

robsimmons commented 13 years ago

This solution is implemented as of v0.6.0 (commit e5fc1d57289f5152)