summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2021-03-18root/intel-tbb interaction (#22366)Dr. Christian Tacke2-1/+6
root 6.22 does not work with intel-tbb 2021.1.1. So: * Introduce conflicts() (a fitting depends_on in the comments, but does not help with the classic conretizer.) * Mark 2020.3 as preferred to help concretizer, when newer versions come up. * Previous discussion: https://github.com/spack/spack/pull/22263#issuecomment-797606475 * Relevant ROOT issue: https://github.com/root-project/root/issues/6933
2021-03-18xsdk-examples: add new version (#22090)Cody Balos1-3/+32
2021-03-18perl-tk: creating package (#21586)Olivier Cessenat1-0/+18
2021-03-18xyce: add new package (#22345)Paul Kuberry1-0/+93
2021-03-18Fix broken spack -c flag (#22361)Harmen Stoppels1-1/+1
2021-03-18Add udunits2 v2.2.28 and target the new UCAR repository (#22370)Ryan Honeyager1-1/+2
2021-03-18py-yt: 3.6.1 (#22329)Axel Huebl1-10/+15
* py-yt: 3.6.1 The latest bugfix release of yt-project fixes issues with matplotlib version 3.3.0+. * py-yt: add many more version constrains
2021-03-18archspec: update to latest version (#22357)Massimiliano Culpo2-2/+45
2021-03-18CCTools: add v7.2.3 (#22355)Benjamin Tovar1-1/+2
2021-03-18Tab to spaces (#22362)Harmen Stoppels3-8/+8
2021-03-18Amber (#22275)Hector Martinez-Seara1-29/+35
* Improved amber package. Added amber20 * Corrected description link between ambertools and amber versions * Fixed ambertools handling * Apply pathes only when problematic traget requested * fixed style issue * Added amber20 sha256 checksum * Improved documentation * Removed preferred amber18 * Changef f-string to str.format() * Changef f-string to str.format() * removed url_for_version fuction
2021-03-18openblas: fix older versions (#22358)Seth R. Johnson1-2/+7
2021-03-17Fix indentation compiler wrapper issue (#22352)Harmen Stoppels1-1/+1
2021-03-17intel-mpi-benchmarks: Take in upstream bugfix patches. (#22317)Tomoki, Karatsu3-0/+126
2021-03-17GDAL: add v3.2.2 (#22224)Adam J. Stewart1-0/+1
2021-03-17tidy-html5: add new package (#22286)Adam J. Stewart1-0/+20
2021-03-17root: add v6.22.08 (#22263)Dr. Christian Tacke1-0/+1
2021-03-17aocc: add support for v3.0 compilers (#22219)AMD Toolchain Support4-0/+31
A mitigation of a known issue that affects v3.0 is added, see https://developer.amd.com/wp-content/resources/AOCC-3.0-Install-Guide.pdf
2021-03-17spack location: bugfix for out of source build dirs (#22348)Harmen Stoppels1-1/+13
2021-03-17shtools: add v4.8 (#22305)Erik Schnetter1-5/+11
2021-03-17fasttransforms: add v0.5.0 (#22304)Erik Schnetter1-0/+1
2021-03-17flac: add v1.3.3 (#22307)Jen Herting1-0/+1
2021-03-17boost: fix unicode bugs in Boost recipe (#22301)Harmen Stoppels1-2/+15
2021-03-17cctools: add v7.2.2 (#22325)Benjamin Tovar1-1/+2
2021-03-17ssht: add v1.3.5 (#22306)Erik Schnetter1-0/+1
2021-03-17pythia6: fix wrong patch (#22338)David Hadley1-2/+2
See #22330
2021-03-16add maintainer to py-h5py (#22332)Bryan Herman1-0/+1
2021-03-16r-v8: Fix build error (#22314)Tomoyasu Nojiri1-0/+8
2021-03-16amrex: add gcc 8 conflicts (#22339)eugeneswalker1-0/+5
2021-03-16llvm: enable ncurses patch for building on SUSE in 11.0.1 (#22319)Tiziano Müller1-2/+2
fixes #19625 again
2021-03-16fix weird failure in variant values (#22328)Danny McClanahan1-1/+14
2021-03-16spack recipe for aocl-sparse (#22079)AMD Toolchain Support1-0/+106
2021-03-16containerize: fix typo in documentation (#22331)Wouter Deconinck1-1/+1
Before this fix, `spack containerize` complains that `centos/7` is invalid (should have been `centos:7`)
2021-03-16WRF package: add aocc 3.0 support for WRF 3.9.1.1 and 4.2 (#22285)AMD Toolchain Support5-16/+121
* Added 2 new configure patch files to build WRF 3.9.1.1 and 4.2 with aocc@3.0 * Renamed patch files used for building WRF 3.9.1.1 and 4.2 with aocc@2.3 (mostly, this also removes -march=native from AOCCOPT and updates LIBMVEC options for aocc@2.3)
2021-03-16The action to detect changes needs a repository to be checked out on push ↵Massimiliano Culpo1-0/+4
event (#22324)
2021-03-16Speed-up CI by reorganizing tests (#22247)Massimiliano Culpo14-300/+367
* unit tests: mark slow tests as "maybeslow" This commit also removes the "network" marker and marks every "network" test as "maybeslow". Tests marked as db are maintained, but they're not slow anymore. * GA: require style tests to pass before running unit-tests * GA: make MacOS unit tests fail fast * GA: move all unit tests into the same workflow, run style tests as a prerequisite All the unit tests have been moved into the same workflow so that a single run of the dorny/paths-filter action can be used to ask for coverage based on the files that have been changed in a PR. The basic idea is that for PRs that introduce only changes to packages coverage is not necessary, this resulting in a faster execution of the tests. Also, for package only PRs slow unit tests are skipped. Finally, MacOS and linux unit tests are now conditional on style tests passing meaning that e.g. we won't waste a MacOS worker if we know that the PR has flake8 issues. * Addressed review comments * Skipping slow tests on MacOS for package only recipes * QA: make tests on changes correct before merging
2021-03-16py-aiobotocore: New package (#22258)a-saitoh-fj1-0/+22
* py-aiobotocore: New package * py-aiobotocore: Added python dependencies, and Removed unnecessary whitespace
2021-03-16bugfix: allow imposed constraints to be overridden in special casesTodd Gamblin1-6/+16
In most cases, we want condition_holds(ID) to imply any imposed constraints associated with the ID. However, the dependency relationship in Spack is special because it's "extra" conditional -- a dependency *condition* may hold, but we have decided that externals will not have dependencies, so we need a way to avoid having imposed constraints appear for nodes that don't exist. This introduces a new rule that says that constraints are imposed *unless* we define `do_not_impose(ID)`. This allows rules like dependencies, which rely on more than just spec conditions, to cancel imposed constraints. We add one special case for this: dependencies of externals.
2021-03-16bugfix: do not generate dep conditions when no dependencyTodd Gamblin1-10/+15
We only consider test dependencies some of the time. Some packages are *only* test dependencies. Spack's algorithm was previously generating dependency conditions that could hold, *even* if there was no potential dependency type. - [x] change asp.py so that this can't happen -- we now only generate dependency types for possible dependencies.
2021-03-16concretizer: unify logic for spec conditionalsTodd Gamblin3-183/+119
This builds on #20638 by unifying all the places in the concretizer where things are conditional on specs. Previously, we duplicated a common spec conditional pattern for dependencies, virtual providers, conflicts, and externals. That was introduced in #20423 and refined in #20507, and roughly looked as follows. Given some directives in a package like: ```python depends_on("foo@1.0+bar", when="@2.0+variant") provides("mpi@2:", when="@1.9:") ``` We handled the `@2.0+variant` and `@1.9:` parts by generating generated `dependency_condition()`, `required_dependency_condition()`, and `imposed_dependency_condition()` facts to trigger rules like this: ```prolog dependency_conditions_hold(ID, Parent, Dependency) :- attr(Name, Arg1) : required_dependency_condition(ID, Name, Arg1); attr(Name, Arg1, Arg2) : required_dependency_condition(ID, Name, Arg1, Arg2); attr(Name, Arg1, Arg2, Arg3) : required_dependency_condition(ID, Name, Arg1, Arg2, Arg3); dependency_condition(ID, Parent, Dependency); node(Parent). ``` And we handled `foo@1.0+bar` and `mpi@2:` parts ("imposed constraints") like this: ```prolog attr(Name, Arg1, Arg2) :- dependency_conditions_hold(ID, Package, Dependency), imposed_dependency_condition(ID, Name, Arg1, Arg2). attr(Name, Arg1, Arg2, Arg3) :- dependency_conditions_hold(ID, Package, Dependency), imposed_dependency_condition(ID, Name, Arg1, Arg2, Arg3). ``` These rules were repeated with different input predicates for requirements (e.g., `required_dependency_condition`) and imposed constraints (e.g., `imposed_dependency_condition`) throughout `concretize.lp`. In #20638 it got to be a bit confusing, because we used the same `dependency_condition_holds` predicate to impose constraints on conditional dependencies and virtual providers. So, even though the pattern was repeated, some of the conditional rules were conjoined in a weird way. Instead of repeating this pattern everywhere, we now have *one* set of consolidated rules for conditions: ```prolog condition_holds(ID) :- condition(ID); attr(Name, A1) : condition_requirement(ID, Name, A1); attr(Name, A1, A2) : condition_requirement(ID, Name, A1, A2); attr(Name, A1, A2, A3) : condition_requirement(ID, Name, A1, A2, A3). attr(Name, A1) :- condition_holds(ID), imposed_constraint(ID, Name, A1). attr(Name, A1, A2) :- condition_holds(ID), imposed_constraint(ID, Name, A1, A2). attr(Name, A1, A2, A3) :- condition_holds(ID), imposed_constraint(ID, Name, A1, A2, A3). ``` this allows us to use `condition(ID)` and `condition_holds(ID)` to encapsulate the conditional logic on specs in all the scenarios where we need it. Instead of defining predicates for the requirements and imposed constraints, we generate the condition inputs with generic facts, and define predicates to associate the condition ID with a particular scenario. So, now, the generated facts for a condition look like this: ```prolog condition(121). condition_requirement(121,"node","cairo"). condition_requirement(121,"variant_value","cairo","fc","True"). imposed_constraint(121,"version_satisfies","fontconfig","2.10.91:"). dependency_condition(121,"cairo","fontconfig"). dependency_type(121,"build"). dependency_type(121,"link"). ``` The requirements and imposed constraints are generic, and we associate them with their meaning via the id. Here, `dependency_condition(121, "cairo", "fontconfig")` tells us that condition 121 has to do with the dependency of `cairo` on `fontconfig`, and the conditional dependency rules just become: ```prolog dependency_holds(Package, Dependency, Type) :- dependency_condition(ID, Package, Dependency), dependency_type(ID, Type), condition_holds(ID). ``` Dependencies, virtuals, conflicts, and externals all now use similar patterns, and the logic for generating condition facts is common to all of them on the python side, as well. The more specific routines like `package_dependencies_rules` just call `self.condition(...)` to get an id and generate requirements and imposed constraints, then they generate their extra facts with the returned id, like this: ```python def package_dependencies_rules(self, pkg, tests): """Translate 'depends_on' directives into ASP logic.""" for _, conditions in sorted(pkg.dependencies.items()): for cond, dep in sorted(conditions.items()): condition_id = self.condition(cond, dep.spec, pkg.name) # create a condition and get its id self.gen.fact(fn.dependency_condition( # associate specifics about the dependency w/the id condition_id, pkg.name, dep.spec.name )) # etc. ``` - [x] unify generation and logic for conditions - [x] use unified logic for dependencies - [x] use unified logic for virtuals - [x] use unified logic for conflicts - [x] use unified logic for externals LocalWords: concretizer mpi attr Arg concretize lp cairo fc fontconfig LocalWords: virtuals def pkg cond dep fn refactor github py
2021-03-16amdlibflame: Fix build error (#22316)Tomoyasu Nojiri1-0/+2
2021-03-16libflame: Fix build error (#22315)Tomoyasu Nojiri1-0/+2
2021-03-16hwloc: add dependency on ncurses (#22300)Harmen Stoppels1-0/+4
Co-authored-by: Michal Sudwoj <msudwoj@student.ethz.ch>
2021-03-15OpenCV: add new version, simplify package (#22292)Adam J. Stewart1-7/+4
2021-03-15Expand relative dev paths in environment files (#22045)Harmen Stoppels7-20/+139
* Rewrite relative dev_spec paths internally to absolute paths in case of relocation of the environment file * Test relative paths for dev_path in environments * Add a --keep-relative flag to spack env create This ensures that relative paths of develop paths are not expanded to absolute paths when initializing the environment in a different location from the spack.yaml init file.
2021-03-15Propagate --test= for environments (#22040)Harmen Stoppels8-28/+126
* Propagate --test= for environments * Improve help comment for spack concretize --test flag * Add tests for --test with environments
2021-03-15vtk-h: Fix missing trailing-colon in CMake version (#22302)Chuck Atkins1-1/+1
2021-03-15Make py-boto3 installable again with old concretizer (#22298)Harmen Stoppels5-1/+10
2021-03-15dos2unix: gettext needed for linking (#22288)Adam J. Stewart1-1/+1
2021-03-15Fix use of quotes in Python build system (#22279)Adam J. Stewart1-1/+1