Overriding specialized classes (especially CMakePackage and AutotoolsPackage) rather than the general base class (Package) when possible
The spack installation procedure (http://spack.readthedocs.io/en/latest/packaging_guide.html#implementing-the-installation-procedure) allows for defining an installation procedure means overriding a set of methods or attributes that will be called at some point during the installation of the package. The package base class, usually specialized for a given build system, determines the actual set of entities available for overriding.
Relying on specialized classes allows for way more compact and readable packages.py files.
This issue aims at motivating the usage of specialized packages whenever possible.
Here is the current status: chameleon/package.py:class Chameleon(Package): fabulous/package.py:class Fabulous(CMakePackage): fxt/package.py:class Fxt(Package): maphys/package.py:class Maphys(CMakePackage): paddle/package.py:class Paddle(CMakePackage): parsec/package.py:class Parsec(Package): pastix/package.py:class Pastix(CMakePackage): qr_mumps/package.py:class QrMumps(Package): quark/package.py:class Quark(Package): simgrid/package.py:class Simgrid(Package): starpu/package.py:class Starpu(Package):
@thibault @furmento : how about StarPU and FxT (note that there is an AutotoolsPackage specializion class, cf. http://spack.readthedocs.io/en/latest/packaging_guide.html#implementing-the-installation-procedure) ?
How about simgrid ? We may postpone it for now?
We may also postpone solving the issue for quark and parsec unless somebody is motivated.