Commit Graph

79 Commits

Author SHA1 Message Date
Dominic Kempf 4807a17bab PDELab now has a releases/2.7 branch 2020-06-05 14:54:49 +00:00
Dominic Kempf 64ac5770a2 Change PDELab branch - the fix was merged. 2020-06-04 10:36:54 +00:00
Dominic Kempf 640fc04f6a [!24] Throw errors if unavailable versions are requested
Merge branch 'feature/errors-on-unavailable-versions' into 'master'

See merge request [spack/dune-spack!24]

  [spack/dune-spack!24]: Nonespack/dune-spack/merge_requests/24
2020-05-22 09:26:03 +00:00
Dominic Kempf 4e214973a6 Throw errors if unavailable versions are requested 2020-05-22 11:24:38 +02:00
Dominic Kempf 2a8b5e620e remove pwd from CI script 2020-05-22 08:41:46 +00:00
Dominic Kempf 6a2b479e67 Add closing bracket in README 2020-05-22 08:41:01 +00:00
Dominic Kempf 21797df1cc [!23] Respect the build type variant added by the CMakePackage class
Merge branch 'feature/respect-build-type-variant' into 'master'

ref:spack/dune-spack\> Fixes [#16]

See merge request [spack/dune-spack!23]

  [#16]: gitlab.dune-project.org/NoneNone/issues/16
  [spack/dune-spack!23]: gitlab.dune-project.org/spack/dune-spack/merge_requests/23


Closes #16
2020-05-22 08:35:06 +00:00
Dominic Kempf d2b223e38c Respect the build type variant added by the CMakePackage class 2020-05-22 10:33:47 +02:00
Dominic Kempf 7000023d52 Remove some outdated variables 2020-05-20 14:36:03 +00:00
Dominic Kempf c72ed761a5 Remove SIONLib dependency - the package does not yet exist 2020-05-20 14:31:43 +00:00
Dominic Kempf c9f64603f6 spack clear -> clean 2020-05-20 14:10:50 +00:00
Dominic Kempf a965459eb2 Typo 2020-05-20 14:07:22 +00:00
Dominic Kempf 3c53d4211b [!22] Rewrite README with a lot of useful information
Merge branch 'feature/readme' into 'master'

See merge request [spack/dune-spack!22]

  [spack/dune-spack!22]: Nonespack/dune-spack/merge_requests/22
2020-05-20 14:06:22 +00:00
Dominic Kempf 70b6ef347d Rewrite README with a lot of useful information 2020-05-20 16:05:05 +02:00
Dominic Kempf ba1a1010bd [!21] Change iteration variable names to avoid clashes with the rest of Spack
Merge branch 'bugfix/iteration-variables' into 'master'

ref:spack/dune-spack\> Spack's weird overall architecture makes temporary
variables in the package scope really dangerous. In my case, an iteration
variable 'module' caused the perl package to fall over\...

See merge request [spack/dune-spack!21]

  [spack/dune-spack!21]: gitlab.dune-project.org/spack/dune-spack/merge_requests/21
2020-05-20 09:21:49 +00:00
Dominic Kempf 8c3ebdf0f1 Change iteration variable names to avoid clashes with the rest of Spack
Spack's weird overall architecture makes temporary variables in the
package scope really dangerous. In my case, an iteration variable
'module' caused the perl package to fall over...
2020-05-20 11:19:48 +02:00
Dominic Kempf 1d258a75d6 [!20] Reduce the number of variants for upstream dependencies
Merge branch 'feature/reduce-variants' into 'master'

ref:spack/dune-spack\> I really do not see much value in e.g. having a switch
to build without BLAS. Instead, cheap upstream dependencies are always built
and expensive ones have a variant. This reduces variant bloat.

See merge request [spack/dune-spack!20]

  [spack/dune-spack!20]: gitlab.dune-project.org/spack/dune-spack/merge_requests/20
2020-05-20 08:29:19 +00:00
Dominic Kempf bc6b155a39 Reduce the number of variants for upstream dependencies
I really do not see much value in e.g. having a switch to build
without BLAS. Instead, cheap upstream dependencies are always built
and expensive ones have a variant. This reduces variant bloat.
2020-05-20 09:52:55 +02:00
Dominic Kempf ce341af06e [!19] Introduce variant dependency
Merge branch 'feature/variant-dependencies' into 'master'

ref:spack/dune-spack\> The previous approach had the big downside of bypassing
the specified variants through the specified dependencies of variants. E.g.
dune+pdelab~functions would silently ignore the ~functions aspect, because
+pdelab enforces the installation of dune-functions. This introduces even more
subtle bugs as more Dune modules are added to the package as any
Dune-module-dependent logic in the package needs to be duplicated for each
Dune module that depends on the module that originally introduced that logic
(yuck!).

There is no direct mechanism in Spack to specify such dependencies in a way
that enforces the correct variants on dependent modules. I have now added
conflicts between variants that reflect the Dune module dependencies. In that
case dune+pdelab~functions would throw an error.

This comes at the cost that a command such as

    spack install dune+pdelab

is not possible anymore. Instead the user needs to specify the dependent
modules as well:

    spack install dune+pdelab+functions+typetree

Note that in order to remove some burden from users, I removed the variants
for the core modules - they are always installed.

See merge request [spack/dune-spack!19]

  [spack/dune-spack!19]: gitlab.dune-project.org/spack/dune-spack/merge_requests/19
2020-05-20 07:32:17 +00:00
Dominic Kempf c930ddd5f0 Introduce variant dependency
The previous approach had the big downside of bypassing
the specified variants through the specified dependencies
of variants. E.g. dune+pdelab~functions would silently ignore
the ~functions aspect, because +pdelab enforces the installation
of dune-functions.

There is no direct mechanism in Spack to specify such
dependencies in a way that enforces the correct variants
on dependent modules. I have now added conflicts between variants
that reflect the Dune module dependencies. In that case
dune+pdelab~functions would throw an error.

This comes at the cost that a command such as
spack install dune+pdelab
is not possible anymore. Instead the user needs to specify
the dependent modules as well:
spack install dune+pdelab+functions+typetree
Note that in order to remove some burden from users,
I removed the variants for the core modules - they are always
installed.
2020-05-19 16:11:46 +02:00
Dominic Kempf d74cbb85a8 [!18] Make iteration order of versions deterministic to ensure default version
Merge branch 'feature/deterministic-version' into 'master'

See merge request [spack/dune-spack!18]

  [spack/dune-spack!18]: Nonespack/dune-spack/merge_requests/18
2020-05-19 12:55:42 +00:00
Dominic Kempf bcecb661e0 Make iteration order of versions deterministic to ensure default version 2020-05-19 14:54:15 +02:00
Dominic Kempf 282c955e21 [!17] Add dune-fem to the Spack package
Merge branch 'feature/dune-fem' into 'master'

See merge request [spack/dune-spack!17]

  [spack/dune-spack!17]: Nonespack/dune-spack/merge_requests/17
2020-05-19 12:47:03 +00:00
Dominic Kempf c7eb0ed0b5 Add dune-fem to the Spack package 2020-05-19 14:45:48 +02:00
Dominic Kempf d994639581 [!16] Add some easy to implement Dune modules to the Spack package
Merge branch 'feature/easy-modules' into 'master'

See merge request [spack/dune-spack!16]

  [spack/dune-spack!16]: Nonespack/dune-spack/merge_requests/16
2020-05-19 11:58:54 +00:00
Dominic Kempf 4dbf9e9e27 Add some easy to implement Dune modules to the Spack package 2020-05-19 13:57:43 +02:00
Dominic Kempf e75d5fefeb [!15] Add dune-codegen to the dune package
Merge branch 'feature/dune-codegen' into 'master'

See merge request [spack/dune-spack!15]

  [spack/dune-spack!15]: Nonespack/dune-spack/merge_requests/15
2020-05-19 10:45:48 +00:00
Dominic Kempf 7af542f4ab Add dune-codegen to the dune package 2020-05-19 12:44:15 +02:00
Dominic Kempf ee1e6a82a6 [!14] Add dune-pdelab to the Spack package
Merge branch 'feature/dune-pdelab' into 'master'

See merge request [spack/dune-spack!14]

  [spack/dune-spack!14]: Nonespack/dune-spack/merge_requests/14
2020-05-18 11:40:28 +00:00
Dominic Kempf 7519e4aeec Add dune-pdelab to the Spack package 2020-05-18 13:39:12 +02:00
Dominic Kempf 493d25b065 [!13] Make sure that the python directories are in the user space
Merge branch 'feature/user-space-python-directories' into 'master'

See merge request [spack/dune-spack!13]

  [spack/dune-spack!13]: Nonespack/dune-spack/merge_requests/13
2020-05-18 11:00:04 +00:00
Dominic Kempf ae26fb1603 Make sure we use Python3 in testing Docker container 2020-05-18 12:52:30 +02:00
Dominic Kempf aaf522074b Make sure that the python directories are in the user space 2020-05-18 12:42:46 +02:00
Dominic Kempf b367fafaf5 [!12] Remove patch for executable scripts - it is in dune-common now
Merge branch 'feature/dune-testtools' into 'master'

See merge request [spack/dune-spack!12]

  [spack/dune-spack!12]: Nonespack/dune-spack/merge_requests/12
2020-05-18 10:01:27 +00:00
Dominic Kempf 3befb49555 Fixup 2020-05-18 12:00:26 +02:00
Dominic Kempf bf9c03263f Remove patch for executable scripts - it is in dune-common now 2020-05-18 11:58:16 +02:00
Dominic Kempf 2208a7ed92 [!11] Add dune-testtools to the repository
Merge branch 'feature/dune-testtools' into 'master'

ref:spack/dune-spack\> This module is special as it works with the Dune
virtualenv.

See merge request [spack/dune-spack!11]

  [spack/dune-spack!11]: gitlab.dune-project.org/spack/dune-spack/merge_requests/11
2020-05-15 19:01:12 +00:00
Dominic Kempf a71f2f7bc1 Fix dune-common patch such that it works also on first run 2020-05-15 20:58:09 +02:00
Dominic Kempf f42ced7562 Add a dune-testtools resource to the package 2020-05-15 15:12:12 +02:00
Dominic Kempf ba7b5cc439 [!10] [bugfix] Reset dunecontrol path to undefined instead of wrong path
Merge branch 'bugfix/correctly-reset-dunecontrol-path' into 'master'

See merge request [spack/dune-spack!10]

  [spack/dune-spack!10]: Nonespack/dune-spack/merge_requests/10
2020-05-15 09:47:44 +00:00
Dominic Kempf 50f4914044 [bugfix] Reset dunecontrol path to undefined instead of wrong path 2020-05-15 11:46:23 +02:00
Dominic Kempf 87b631a1e4 [!9] Enforce variants by disallowing CMake to search for disabled dependencies
Merge branch 'feature/enforce-variants' into 'master'

ref:spack/dune-spack\> In my case, some system libraries still slipped in
though I do not know how exactly.

See merge request [spack/dune-spack!9]

  [spack/dune-spack!9]: gitlab.dune-project.org/spack/dune-spack/merge_requests/9
2020-05-15 09:26:47 +00:00
Dominic Kempf 3c6941ca42 [!8] Feature/fix python with multiple versions
Merge branch 'feature/fix-python-with-multiple-versions' into 'master'

ref:spack/dune-spack\> Actually, make install already installs Python
packages, so there is no need to do it manually in a post-install hook.

Additionally, we set the DUNE_PY_DIR and DUNE_CONTROL_PATH environment
variables, so that the Python bindings work even in presence of multiple
installations.

This fixes [#8]

See merge request [spack/dune-spack!8]

  [#8]: gitlab.dune-project.org/NoneNone/issues/8
  [spack/dune-spack!8]: gitlab.dune-project.org/spack/dune-spack/merge_requests/8


Closes #8
2020-05-15 09:19:27 +00:00
Dominic Kempf c1bcb57367 [!7] Variant restructuring
Merge branch 'feature/variant-restructuring' into 'master'

ref:spack/dune-spack\> Some of the variants/dependencies in the prototype were
unneeded, I went through also with a keen eye on keeping the total number of
variants a bit lower. I also added defaults that I consider useful.

Sits on top of [!6]

See merge request [spack/dune-spack!7]

  [!6]: gitlab.dune-project.org/NoneNone/merge_requests/6
  [spack/dune-spack!7]: gitlab.dune-project.org/spack/dune-spack/merge_requests/7
2020-05-15 09:19:17 +00:00
Dominic Kempf a3e5890ca9 [!6] Some cleanup
Merge branch 'feature/cleanups' into 'master'

ref:spack/dune-spack\> Regarding coding style and use of Spack functions.

Builds on top of [!5]

See merge request [spack/dune-spack!6]

  [!5]: gitlab.dune-project.org/NoneNone/merge_requests/5
  [spack/dune-spack!6]: gitlab.dune-project.org/spack/dune-spack/merge_requests/6
2020-05-15 09:19:07 +00:00
Dominic Kempf 74319f96f9 [!5] Add support for different versions (master + 2.7) and refactor a bit
Merge branch 'feature/versions-and-refactoring' into 'master'

ref:spack/dune-spack\> This should have been two merge requests really, but by
the time I finished it was much harder to separate the two from each other
than just throw it online\...

This adds a loop with versions around the resource definitions allowing for
multiple versions of the dune package with the expected behaviour of
dependency forwarding to Dune modules.

Additionally, it avoids the code duplication from upstream in
_get_needed_resources: Instead, it modifies the resource list to include the
transitive closure of Dune module dependencies and then calls the original
implementation.

@gauthier.folzan I would be really interested in your opinion on this.

This fixes [#2].

See merge request [spack/dune-spack!5]

  [#2]: gitlab.dune-project.org/NoneNone/issues/2
  [spack/dune-spack!5]: gitlab.dune-project.org/spack/dune-spack/merge_requests/5


Closes #2
2020-05-15 09:18:58 +00:00
Dominic Kempf abbfb9104b Enforce variants by disallowing CMake to search for disabled dependencies
In my case, some system libraries still slipped in though I do not
know how exactly.
2020-05-15 11:17:45 +02:00
Dominic Kempf dea7241fbc Fix mechanism to install Python bindings
Actually, make install already installs Python packages,
so there is no need to do it manually in a post-install hook.

Additionally, we set the DUNE_PY_DIR and DUNE_CONTROL_PATH
environment variables, so that the Python bindings work even
in presence of multiple installations.
2020-05-15 11:15:38 +02:00
Dominic Kempf ea1031bad9 Go through variants and dependencies and remove unneeded ones
Some of the variants/dependencies in the prototype were unneeded,
I went through also with a keen eye on keeping the total number
of variants a bit lower. I also added defaults that I consider
useful.
2020-05-14 11:34:39 +02:00
Dominic Kempf 0be0632f45 Remove superfluous pass statements 2020-05-14 09:41:22 +02:00