-
Notifications
You must be signed in to change notification settings - Fork 203
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Templates not being resolved in exts_list #3317
Comments
@mboisson Can you share (a snippet of) a debug log where it produces into about (failing of) resolving of templates and which template values are supported at that time? |
|
@boegel this bit ? |
Without digging through the code, my thoughts are that, since, obviously extensions must have their own scope (else, |
It appears indeed that they don't have the master-config dependencies. |
Maybe it needs something like this ? #3237 |
Or maybe it is because I'm using |
I think @Micket is right, this is basically because dependency-related templates like
So we need to figure out why @mboisson Can you share the full easyconfig file you're using here, so we can reproduce the issue, or a full log file to stare at? |
Mmm, the full log is 87MB big... The recipe is https://gist.github.com/mboisson/9032258b0c6649686daa424620f538a7 I think it must have something to do with |
@boegel I ran into that already and investigated while developing #3285. See my comment: #3285 (comment) TLDR: The extension handling (especially templating) needs a rework. Currently the extensions are used with templates replaced in one place, instantiated later with another round of templating which need to be kept in sync but (I guess) nobody knows what template values are available at which point. My proposal: On the |
I only understand all of the above partly. However, I am available to do some testing on a set of changes if needs be. |
Note that this is a regression from 4.2.0. It used to work in version 4.1.x (not this specific recipe, but other recipes are broken). |
After discussing this with @mboisson and @bartoldeman: two problems were being mixed up. The issue where I was testing this with a modified @@ -17,9 +17,11 @@ exts_default_options = {'source_urls': [PYPI_SOURCE]}
exts_list = [
('retrying', '1.3.3', {
'checksums': ['08c039560a6da2fe4f2c426d0766e284d3b736e355f8dd24b37367b0bb41973b'],
+ 'preinstallopts': 'echo "pyshortver: %(pyshortver)s" && ',
}),
('plotly', version, {
'checksums': ['acc94f17452471ca3446c2ce491c4d1affb99b9ddd9eac4e05614ac4318f8780'],
+ 'preinstallopts': 'echo "pyshortver: %(pyshortver)s" && ',
}),
]
The regression that @mboisson referred to turned out to be another (self-inflicted) issue. |
I spent some more time looking at this, and the problem boils down to this: for every extension a copy is made of the This is done using the "copy constructor" method What does not get copied is the list of template values, and this explains the problem here: when So, the fix for this could be to basically also copy the template values over in I'll get a PR opened for this, would be nice to somehow cover this in the tests too... |
I am trying to use this :
However, the templates do not get resolved, and the build fails with
I don't know if this is related to #3237 or if there's something I don't understand...
@akesandgren, @boegel ?
The text was updated successfully, but these errors were encountered: