vincent-hugot / qtest

Inline (Unit) Tests for OCaml
GNU General Public License v3.0
67 stars 8 forks source link

Unnecessary custom build interface #6

Closed thelema closed 11 years ago

thelema commented 11 years ago

Why the do.ml interface? why not use the oasis standard of setup.ml with arguments -configure, -build and -install?

vincent-hugot commented 11 years ago

Keeping both questions on one thread.

5

I needed to run configure manually to set the install path

There is a 'prefix' optional argument to do.ml.

Why the do.ml interface?

To appease the OPAM gods and the OASIS gods, and rixed's makefile simultaneously. See #2 about that (and the discussion in OCamlPro/opam#300).

It's possible to have oasis generate the makefile for you (and META file) automaticall

Yes, that's what it does (META & setup.ml), but rixed had to use his own META since he is not using OASIS (he does not want to install it because of its dependencies, IIRC).

As for including setup.ml, I don't want to do so because it's a 5000 loc generated file... putting generated files under VCS runs counter to the usual hygiene rules.

thelema commented 11 years ago

You could still have do.ml be named setup.ml and take the standard arguments, instead of making up your own interface. I agree that needing it for opam is garbage; one solution is to git mv qtest/* .

Yes, oasis doesn't interact nicely with version control. There's no solution that allows developers to not install oasis while not committing setup.ml.

@rixed: install oasis, it doesn't have as many dependencies as it used to, and can be auto-installed with odb.ml.

On Wed, Nov 21, 2012 at 4:31 PM, Vincent Hugot notifications@github.comwrote:

Keeping both questions on one thread.

5 https://github.com/vincent-hugot/iTeML/issues/5

I needed to run configure manually to set the install path

There is a 'prefix' optional argument to do.ml.

Why the do.ml interface?

To appease the OPAM gods and the OASIS gods, and rixed's makefile simultaneously. See #2 https://github.com/vincent-hugot/iTeML/issues/2about that (and the discussion in OCamlPro/opam#300 https://github.com/OCamlPro/opam/issues/300).

It's possible to have oasis generate the makefile for you (and META file) automaticall

Yes, that's what it does (META & setup.ml), but rixed had to use his own META since he is not using OASIS (he does not want to install it because of its dependencies, IIRC).

As for including setup.ml, I don't want to do so because it's a 5000 loc generated file... putting generated files under VCS runs counter to the usual hygiene rules.

— Reply to this email directly or view it on GitHubhttps://github.com/vincent-hugot/iTeML/issues/6#issuecomment-10615104.

vincent-hugot commented 11 years ago

You could still have do.ml be named setup.ml and take the standard arguments,

you need three separate commands to build the thing with the standard setup.ml interface (no, it's not possible to pass -configure, -build and -install in one call). No thanks.

edit: also, I need it to be extensible for qtest3.

can be auto-installed with odb.ml.

or opam; you don't even have anything to do; opam install qtest, and it will resolve dependencies on its own.

thelema commented 11 years ago

On Wed, Nov 21, 2012 at 5:39 PM, Vincent Hugot notifications@github.comwrote:

you need three separate commands to build the thing with the standard setup.ml interface (no, it's not possible to pass -configure, -build and -install in one call). No thanks.

which is why I let oasis generate a makefile for me and then just run make install. Or even write a simple makefile to get around the cd restriction in opam.

vincent-hugot commented 11 years ago

write a simple makefile

cf #2

let oasis generate a makefile for me

my do.ml can and will be extended to build iteml instead of qtest2 from the same command and interface. An oasis-generated makefile could not.

And it would still be a two-step process 1° generate make file 2° execute it. I want a one step process (because I'm lazy).

Speaking of which, I really need to go to bed and then to work, so this ping-pong game of issues and comments will have to wait until later times.