Conversation
6 tasks
This was referenced Jul 5, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR fixes #584, allowing the Python-based tests to pick the correct, to-be-tested dependency versions in tests.
It replaces #745, which follows a different approach: In that PR, the aim is to install everything in a common venv, which runs into version conflicts and required changes in every component template and Docker build stage. The conflict manifests itself on the various Nutils-based tutorials, each depending on a different Nutils version, but it would also result in testing different setups than a user.
This PR takes into account that:
requirements.txtrequirements.txtfiles seem to have rather loosely-restricted versionsrequirements.txtseems to be preferred over the latest one from PyPI. I cannot find any documentation on this (most relevant: PEP 440 and PIP VCS support and dependency resolution), but I observe it consistently in my tests.The approach I use is to add an a line with the corresponding
_REF(e.g.,git+https://github.com/precice/python-bindings.git@PYTHON_BINDINGS_REF) at the bottom of eachrequirements.txtfile in the tutorial folder (to also includesolver-pythonetc) that mentions the respective package (e.g.,pyprecice). It looks like I don't need to remove the original line. This leads to, for example:I am applying this step in the
prepare:Docker Compose service template, which is where we also modify theprecice-config.xml. This keeps the change minimal and applies it only once per tutorial. A downside is that every test builds the respective PIP packages (which does not seem to take long).It substitutes the value passed as a Jinja2 template argument. I initially tried implementing it using the available environment variables, but this is simpler and does not require passing the build arguments as environment variables (which could also be misused at runtime).
I have tested the changes on the release test suite and previously in various attempts of this GHA test run (see attempts 36 + 43). I needed to increase the timeout of the previously untested
two-scale-heat-conduction_macro-nutils_micro-nutilscase and change its component in the metadata fromnutils-adaptertomicro-manager.What remains open (but I will deal with in a separate PR) is:
FMI_RUNNER_REF. The changes of this PR currently have no effect in the respective tests.