-
-
Notifications
You must be signed in to change notification settings - Fork 184
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
Remote-ci-setup handling cannot handle constraints anymore (since conda-smithy 3.26) #1773
Comments
Sorry about that. I added the 'names only' variant because |
Constraining infrastructure deps like lief seems to be the primary (and I believe motivating) use case of
It was supported on all platforms, but in any case, the current issue (basically conda/conda-build#4787) only occurs on osx, so that's where we'd mainly need it. |
I'll put a PR later today with a fix. |
In the meantime, I am curious: does |
I have a PR for testing this, feel free to push there - I'm logging off for today 🙃 |
If it manages to pull in conda-build 3.26, it will be fixed (one of the successful runs in that PR was in the brief period where we had boa builds that were compatible with 3.26, before they were marked broken) |
Well, unfortunately that didn't work completely. The rerender passes now, however, it strips the constraints on unix. Using the brand-new conda-smithy 3.26.3 on top of the (manually fixed) conda-forge/compiler-rt-feedstock#85, I get: diff --git a/.scripts/build_steps.sh b/.scripts/build_steps.sh
index d83ad42..6e1bcd8 100755
--- a/.scripts/build_steps.sh
+++ b/.scripts/build_steps.sh
@@ -34,7 +34,7 @@ CONDARC
mamba install --update-specs --yes --quiet --channel conda-forge --strict-channel-priority \
pip mamba conda-build boa conda-forge-ci-setup=3 "py-lief<0.12"
mamba update --update-specs --yes --quiet --channel conda-forge --strict-channel-priority \
- pip mamba conda-build boa conda-forge-ci-setup=3 "py-lief<0.12"
+ pip mamba conda-build boa conda-forge-ci-setup py-lief
# set up the condarc
setup_conda_rc "${FEEDSTOCK_ROOT}" "${RECIPE_ROOT}" "${CONFIG_FILE}"
diff --git a/.scripts/run_osx_build.sh b/.scripts/run_osx_build.sh
index d47ba22..7a0e943 100755
--- a/.scripts/run_osx_build.sh
+++ b/.scripts/run_osx_build.sh
@@ -26,7 +26,7 @@ conda activate base
mamba install --update-specs --quiet --yes --channel conda-forge --strict-channel-priority \
pip mamba conda-build boa conda-forge-ci-setup=3 "py-lief<0.12"
mamba update --update-specs --yes --quiet --channel conda-forge --strict-channel-priority \
- pip mamba conda-build boa conda-forge-ci-setup=3 "py-lief<0.12"
+ pip mamba conda-build boa conda-forge-ci-setup py-lief
diff --git a/.scripts/run_win_build.bat b/.scripts/run_win_build.bat
index c4486d9..d25a51f 100644
--- a/.scripts/run_win_build.bat
+++ b/.scripts/run_win_build.bat
@@ -20,7 +20,7 @@ call activate base
:: Provision the necessary dependencies to build the recipe later
echo Installing dependencies
-mamba.exe install "python=3.10" pip mamba conda-build boa conda-forge-ci-setup=3 -c conda-forge --strict-channel-priority --yes
+mamba.exe install "python=3.10" pip mamba conda-build boa conda-forge-ci-setup=3 "py-lief<0.12" -c conda-forge --strict-channel-priority --yes
if !errorlevel! neq 0 exit /b !errorlevel!
:: Set basic configuration The last hunk for windows is actually correct - I hadn't cared about that in the manual fix-ups because the constraints are only necessary on osx -, but it's definitely wrong for linux/osx. |
Looking slightly above the diff, the constraint is maintained for the original installation, but then discarded for the |
Ugh, we are now talking about solver behavior implementation details. Whether the history should be a pin or not. I am not even sure why we need the update command to begin with. This all should be more explicit and not as subject to implicit details. We can fix it, but I think we also need to rethink how we handle the "base environment provisioning" problem. |
History is related to solver details between mamba and conda. Lots of back and forth, plus testing. We should hack around it for now since the underlying behavior differences have not improved. |
I noticed that windows does not have the |
That is an oversight I think? @isuruf do you recall? |
|
Is this really an area of differences between conda & mamba? AFAIU, having an update step without a pin will always try to update that package again. Given the necessity of dealing with stale packages in the docker image, I think we'd have to do one of:
|
We did a bunch of testing to settle on the procedure we have. Swapping the order of the calls will break things I think. |
#1774 implements the immediate fix. Note it only works with mamba, since conda update doesn't allow constraints in the specs. I think I tested for that precise gotcha before submitting (and then closing), but I'll double check. The history handling seemed to be the difference, IIRC. If the intent here is to pin packages, we should add an option for that explicitly ( |
In terms of explicit mechanisms, conda at least supports
Not sure if mamba supports |
Both Let's see how it looks like in a PR. |
See #1776 |
The update command was needed only for |
Oh nice, I can add one more clause to that |
It seems that 4a5ac16 broke handling of
remote_ci_setup
setups that use constraints. For example, for compiler-rt, we need to use:This will not rerender anymore with the newest conda-smithy (I tried various quoting and indentation patterns) -- from what I can tell this is due to
conda-smithy/conda_smithy/configure_feedstock.py
Lines 2039 to 2041 in 8ffa0d8
using
.name
unconditionally.This has effectively made compiler-rt un-rerenderable (except with manual fixes), because we cannot remove the py-lief pin, since conda/conda-build#4787 was only fixed in conda-build 3.26, which we still cannot pull into our CI due to conda-forge/boa-feedstock#75. For a sample CI failure without the pin, see conda-forge/compiler-rt-feedstock#83.
CC @jaimergp
stacktrace
Note the unbalanced quotes!
The text was updated successfully, but these errors were encountered: