Commit Graph

64 Commits

Author SHA1 Message Date
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
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
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
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
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
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
bcecb661e0 Make iteration order of versions deterministic to ensure default version 2020-05-19 14:54:15 +02:00
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
c7eb0ed0b5 Add dune-fem to the Spack package 2020-05-19 14:45:48 +02:00
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
4dbf9e9e27 Add some easy to implement Dune modules to the Spack package 2020-05-19 13:57:43 +02:00
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
7af542f4ab Add dune-codegen to the dune package 2020-05-19 12:44:15 +02:00
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
7519e4aeec Add dune-pdelab to the Spack package 2020-05-18 13:39:12 +02:00
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
ae26fb1603 Make sure we use Python3 in testing Docker container 2020-05-18 12:52:30 +02:00
aaf522074b Make sure that the python directories are in the user space 2020-05-18 12:42:46 +02:00
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
3befb49555 Fixup 2020-05-18 12:00:26 +02:00
bf9c03263f Remove patch for executable scripts - it is in dune-common now 2020-05-18 11:58:16 +02:00
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
a71f2f7bc1 Fix dune-common patch such that it works also on first run 2020-05-15 20:58:09 +02:00
f42ced7562 Add a dune-testtools resource to the package 2020-05-15 15:12:12 +02:00
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
50f4914044 [bugfix] Reset dunecontrol path to undefined instead of wrong path 2020-05-15 11:46:23 +02:00
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
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
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
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
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
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
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
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
0be0632f45 Remove superfluous pass statements 2020-05-14 09:41:22 +02:00
1c0ec5ad8a Remove calls to set_executable
The dunecontrol script should always be executable, so there is
(hopefully) no need of calling this function.
2020-05-14 09:39:56 +02:00
df503f9038 Use context manager for open/close 2020-05-14 09:36:52 +02:00
fae067a0d7 Use join_path from spack instead of string concatenation 2020-05-14 09:34:50 +02:00
a1aa78f02f Concretize both master and 2.7 release in CI job 2020-05-13 18:40:15 +02:00
2d4e0548de Merge branch 'master' into feature/versions-and-refactoring 2020-05-13 18:38:52 +02:00
2d623b0e25 [!4] Finish CI setup
Merge branch 'feature/ci-setup-2' into 'master'

ref:spack/dune-spack\> This finishes the CI setup after an initial merge that
was necessary to start running CI on the project.

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

  [spack/dune-spack!4]: gitlab.dune-project.org/spack/dune-spack/merge_requests/4
2020-05-13 16:38:17 +00:00
d3af0fd937 Build docker images with spack inside
This prevents that the executing runner needs to be prepared to access GitHub
2020-05-13 16:38:17 +00:00
5bc079bd0a Add support for different versions (master + 2.7) and refactor a bit
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 of _get_needed_resources:
It modifies the resource list to include the transitive closure of
Dune module dependencies and then calls the original implementation.
2020-05-13 18:24:25 +02:00
bf5d6f1e23 [!3] First attempt of a gitlab ci setup
Merge branch 'feature/ci-setup' into 'master'

ref:spack/dune-spack\> This fixes [#1]

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

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


Closes #1
2020-05-13 11:15:25 +00:00
dad7a0d320 First attempt of a gitlab ci setup 2020-05-13 13:10:29 +02:00
c29a27f028 [!1] Make gawk a dependency of dune
Merge branch 'bugfix/add-gawk' into 'master'

ref:spack/dune-spack\> The duneproject script uses awk. On my machine it fails
because system awk is messed up by the spack set-up LD_LIBRARY_PATH.

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

  [spack/dune-spack!1]: gitlab.dune-project.org/spack/dune-spack/merge_requests/1
2020-05-13 10:54:25 +00:00
cb80213cf3 [!2] Add a disclaimer
Merge branch 'feature/disclaimer' into 'master'

ref:spack/dune-spack\> As the repository is public, we should warn about its
experimental status.

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

  [spack/dune-spack!2]: gitlab.dune-project.org/spack/dune-spack/merge_requests/2
2020-05-13 10:23:27 +00:00
5e0e262b5d Add a disclaimer
As the repository is public, we should warn about its experimental status.
2020-05-13 12:22:31 +02:00
cfc2682f58 Make gawk a dependency of dune
The duneproject script uses awk. On my machine it fails because system awk
is messed up by the spack set-up LD_LIBRARY_PATH.
2020-05-13 12:15:38 +02:00
d6c65b8249 Cleaning 2020-05-10 21:42:32 +02:00