Skip to content

votca: help concretizer#13906

Merged
adamjstewart merged 2 commits intodevelopfrom
hotfix/votca
Nov 27, 2019
Merged

votca: help concretizer#13906
adamjstewart merged 2 commits intodevelopfrom
hotfix/votca

Conversation

@junghans
Copy link
Copy Markdown
Contributor

Fix #13831

@junghans junghans requested a review from scheibelp November 27, 2019 00:59
Copy link
Copy Markdown
Member

@adamjstewart adamjstewart left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

sigh

@adamjstewart
Copy link
Copy Markdown
Member

Flake8:

var/spack/repos/builtin/packages/votca-csg/package.py:30: [E231] missing whitespace after ','
var/spack/repos/builtin/packages/votca-ctp/package.py:28: [E231] missing whitespace after ','
var/spack/repos/builtin/packages/votca-ctp/package.py:29: [E231] missing whitespace after ','
var/spack/repos/builtin/packages/votca-xtp/package.py:29: [E231] missing whitespace after ','
var/spack/repos/builtin/packages/votca-xtp/package.py:30: [E231] missing whitespace after ','

@adamjstewart adamjstewart merged commit 07325f5 into develop Nov 27, 2019
@adamjstewart adamjstewart deleted the hotfix/votca branch November 27, 2019 03:47
@scheibelp
Copy link
Copy Markdown
Member

sigh

I'll note that I don't consider this a concretizer bug and I think this change is the ideal way to resolve the problem: we intend that a when spec like [email protected] applies to 1.5 as well as 1.5.1 (in order to allow specifying @1.5 to mean all instances of 1.5.x). Given that, @1.5 is ambiguous when a package has both 1.5/1.5.1.

In other words, a package could legitimately request:

Foo()
  depends_on(x, [email protected])
  depends_on(y, [email protected])

In which case we want foo to depend on x and y when @1.5.1.

Avoiding this issue in the case of votca would be complicated: Spack would have to analyze the depends_on clauses to check whether x and y are conflicting and if the when_specs are simultaneously satisfiable; it would then have to further extrapolate that a user wouldn't actually request x and y together (in this case where x=[email protected] and y=[email protected]). To be clear I don't think even the new concretizer would attempt this: it just outputs whether the constraints are satisfiable and doesn't attempt an alternative interpretation of the constraints in the case that they aren't.

@adamjstewart
Copy link
Copy Markdown
Member

This brings me back to the discussion in #8957. In general, I agree, I should be able to say something like depends_on('[email protected]') and have Spack know I mean 3.7.X. I also wish there was an easier way to handle things like patch('foo.patch', when='@3.2') when a package contains 3.2 and 3.2.1. My first thought was to change the behavior depending on whether or not a package actually contains both 3.2 and 3.2.1, but I can see how that would make concretizer design a nightmare.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

votca-csg doesn't concertize

3 participants