As promised, here are the changes I plan to introduce in the next
release of the installation library (which would be v1.2.0). Comments
are welcome. If nobody objects to this, I hope to be able to release a
new version in something like two weeks. So, in summary, I plan to:
1. add options to only build or only install the package,
2. change the meaning of --layout-from, and remove --layout-to, and
3. introduce a script to test that packages conform to the proposal.
I'll quickly discuss the first two points in more details.
First of all, I plan to introduce two new options, --build-only and
--install-only to specify that the package should only be built (resp.
installed). The --build-only option would turn all the installation
procedures of the library (including with-output-to-load-script and
write-to-load-script) into noops. The --install-only option would have
no effect on the functions of the library, but its value could be
queried by packages containing a build phase in order to disable
building.
It would be the responsibility of the user to make sure that if he
uses one of these options, he uses them correctly. That means first
invoking scsh-install-pkg with the --build-only option, then with the
--install-only option. (i.e. simply calling scsh-install-pkg with
--install-only is not expected to work in general).
In order to catch problems which would happen if a user uses one of
these options with a packages which isn't aware of them, I propose the
following behaviour: if scsh-install-pkg is called with one of these
options and the package definition depends on a version of the
installation library which is strictly smaller than 1.2.0, output a
warning (saying something along the lines of "warning: this package
might not distinguish between a build phase and an installation
phase", or whatever).
Then, I also plan to change the behaviour of --layout-from and
--layout-to. Currently, --layout-from considers that a layout is an
a-list associating directories to locations. This unfortunately
doesn't work with packages which are a collection of other packages,
like sunterlib. A layout should really be a function taking a package
and a location and returning a directory. But that's a minor detail,
I'm probably the only user of --layout-from anyway. As far as
--layout-to is concerned, I'd like to drop it because I have the
feeling that it's useless already now, and will become unimplementable
as soon as --layout-from is changed. So unless anyone objects, I'll
remove it.
And I'll also finally introduce the changes related to naming that we
discussed with Jorgen Schäfers some time ago.
Dependencies will come with the release after that, I promise ;-).
Michel.
|