Skip to content
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

Update to conda 22.9 with tests for boa compatibility #361

Merged
merged 7 commits into from
Oct 26, 2022

Conversation

hmaarrfk
Copy link
Contributor

@hmaarrfk hmaarrfk commented Oct 8, 2022

  • Explicit test for conda/mamba/boa compatibility for Mambaforge
  • Reduced test matrix for Mambaforge-pypy3 on emulated architectures (aarch64 and ppc64le) -- ensures CI pass in time?
  • Updated micromamba on osx

Checklist

  • Used a personal fork of the feedstock to propose changes
  • Bumped the build number (if the version is unchanged)
  • Reset the build number to 0 (if the version changed)
  • Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
  • Ensured the license file is being packaged.

@hmaarrfk
Copy link
Contributor Author

hmaarrfk commented Oct 8, 2022

I think anaconda is just blocking us from downloading the package index:

23:02 $ wc -l /home/mark/mambaforge/pkgs/cache/a08d06e9.json
2311247 /home/mark/mambaforge/pkgs/cache/a08d06e9.json
(base) ✔ ~/git/feedstocks/miniforge [fixup_2209|✔]
23:02 $ wc -l /home/mark/mambaforge/pkgs/cache/568c2e3d.json
7067307 /home/mark/mambaforge/pkgs/cache/568c2e3d.json

about 7 million lines, not 3000.

@hmaarrfk hmaarrfk changed the title Fixup 2209 Update to conda 22.9 with tests for boa compatibility Oct 8, 2022
@hmaarrfk hmaarrfk closed this Oct 14, 2022
@hmaarrfk hmaarrfk reopened this Oct 14, 2022
@hmaarrfk
Copy link
Contributor Author

@wolfv are you able to help look into why when I try to install boa, it seems to be unable to find packages.

For reference, this is a similar PR that simply removes to boa install tests.

@isuruf
Copy link
Member

isuruf commented Oct 14, 2022

The package cache is the one with only the dependencies of the packages in the installer (in this case python, conda and mamba) so that the packages inside the installer can be installed.
These caches should have an old timestamp so that when new packages are installed, this cache is invalidated. Not sure why that is.

@isuruf
Copy link
Member

isuruf commented Oct 14, 2022

You need conda/constructor@85bca74

scripts/build.sh Outdated
@@ -12,16 +12,25 @@ cd "${CONSTRUCT_ROOT}"
# Constructor should be latest for non-native building
# See https://github.com/conda/constructor
echo "***** Install constructor *****"
conda install -y "constructor>=3.3.1" jinja2 curl libarchive -c conda-forge --override-channels
conda install --yes jinja2 curl libarchive --channel conda-forge --override-channels
Copy link
Member

Choose a reason for hiding this comment

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

You can install constructor here and override it with pip later on so that you don't have to manually install the dependencies of constructor.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I'm personally always confused about how that plays out. There are also some new nsis dependencies.

In either case the errors seem to be unrelated to the removal of this

Copy link
Member

Choose a reason for hiding this comment

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

How about we carry that patch (the one line with used_repodata.pop("_mod", None)) in constructor-feedstock?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

ok, let me try to fork and apply that patch only, and see what happens.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I guess i'm ok with debugging constructor, but this isn't any worse than before.

Can we move forward with: #362

Copy link
Member

Choose a reason for hiding this comment

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

What's the point of releasing something that doesn't work?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

It works just as well as the other things used to.

The problem is just as well hidden as it always has been.

@wolfv
Copy link
Member

wolfv commented Oct 16, 2022

@hmaarrfk is there still something that I could do to help here?

@hmaarrfk
Copy link
Contributor Author

If you can help us understand why the following index cache isn't being invalidated that would be great:

cat /root/miniforge/pkgs/cache/09cdf8bf.json
{"_mod": "Mon, 07 Jan 2019 15:22:15 GMT", "_url": "https://conda.anaconda.org/conda-forge/noarch",
  "_etag": "W/\"ded6fb8204936e8acedca121bd4b42e3\"",
  "_cache_control": "public, max-age=1200",

I'm not sure what "max-age" refers to.

@hmaarrfk
Copy link
Contributor Author

@wolfv My latest modification shows that in fact, this seems to be a peculiarity that is observed with mamba and not conda.

It seems at least that mamba is holding on to the cache for too long, or conda ignores it entirely. I'm not too sure.

@isuruf
Copy link
Member

isuruf commented Oct 22, 2022

Looks like mamba doesn't look at _mod timestamp in the json and instead looks at the timestamp in the file attributes.
See https://github.com/mamba-org/mamba/blob/e3ab841b2c1349afb75af156eee88fc3a1bc125e/libmamba/src/core/subdirdata.cpp#L269

@hmaarrfk
Copy link
Contributor Author

wow. excellent work!

@isuruf
Copy link
Member

isuruf commented Oct 22, 2022

See conda/constructor#579

scripts/test.sh Outdated Show resolved Hide resolved
@hmaarrfk
Copy link
Contributor Author

I updated my branch. lets see.

scripts/build.sh Outdated
fi
# pip install git+git://github.com/conda/constructor@3.3.1#egg=constructor --force --no-deps

constructor_rev=3.3.1_patch_for_cache
Copy link
Member

Choose a reason for hiding this comment

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

If the tests pass, can you change this to a commit instead of a branch?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I was going to patch conda forges version with the two patches.

@hmaarrfk
Copy link
Contributor Author

We might have to trim down some of the test matrix.

@hmaarrfk hmaarrfk marked this pull request as ready for review October 23, 2022 17:38
@hmaarrfk hmaarrfk requested a review from a team as a code owner October 23, 2022 17:38
@hmaarrfk
Copy link
Contributor Author

Thank you for your help Isuru!

scripts/build.sh Outdated
conda install --yes \
--channel conda-forge --override-channels \
jinja2 curl libarchive \
"constructor>=3.3.1=*_1"
Copy link
Member

Choose a reason for hiding this comment

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

This means version>=3.3.1 and build=*_1. Is that what you mean?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

yeah. do i need == in the second one?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Actually, i mean "3.3.2" and "build=0" would be ok.

I'm not sure if syntax exists for that.

Copy link
Member

Choose a reason for hiding this comment

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

Yeah, there's no syntax for that. Let's keep it constructor>=3.3.1 and hope for the best.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

ok, i hope the smaller test matrix passes now for the ppc64le. it has been quite slow.

@@ -132,6 +132,8 @@ jobs:
DOCKERIMAGE: condaforge/linux-anvil-aarch64
MINIFORGE_NAME: "Mambaforge-pypy3"
OS_NAME: "Linux"
# Reduce the test matrix because the builds timeouts on emulated architectures
TEST_IMAGE_NAMES: "ubuntu:22.04 ubuntu:16.04 centos:7"
Copy link
Member

Choose a reason for hiding this comment

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

Copy link
Contributor Author

Choose a reason for hiding this comment

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

K. one has a modern ubuntu, the other has centos 7. I feel like that is a good spread for these.

@hmaarrfk
Copy link
Contributor Author

Seems like the thorough check is just a little too much on these emulated architectures.

@hmaarrfk
Copy link
Contributor Author

Maybe with your fix i can remove the heavy handed skipping of the tests.

@isuruf isuruf merged commit 2e25aec into conda-forge:main Oct 26, 2022
@hmaarrfk
Copy link
Contributor Author

Thanks again!

@jakirkham jakirkham mentioned this pull request Oct 26, 2022
5 tasks
@jakirkham
Copy link
Member

Thank you both! 🙏

Are we comfortable publishing this release as final? Or what still needs to be done to get to that point?

@hmaarrfk
Copy link
Contributor Author

Honestly, i'm lost in the number of assets generated. So if somebody can confirm that 74 i the correct count, we can publish.

@isuruf
Copy link
Member

isuruf commented Oct 26, 2022

Yes, 74 is correct.

@jakirkham
Copy link
Member

Noticed 2 releases showed up:

Which one should we be using?

@hmaarrfk
Copy link
Contributor Author

hmaarrfk commented Oct 27, 2022

I guess 22.9.0. They both point to the same sha. I think the version was always meant to follow the conda version, and as such, should be 22.9.0

@jakirkham
Copy link
Member

Sounds good. Updating the Docker images with PR ( conda-forge/docker-images#224 )

@isuruf
Copy link
Member

isuruf commented Oct 27, 2022

You can use either. Miniforge3-4.14.0-2 gives you conda=4.14.0 and Miniforge3-22.9.0-0 gives you conda=22.9.0.

@nyngwang
Copy link

nyngwang commented Apr 1, 2023

@isuruf Out of curious why the version "jumps" from 4.x to 22.x on the conda side. (I thought I was a time traveler when I saw the version jumped like that)

Appreciate your reading and I'm sorry for commenting on an old issue.

@hmaarrfk
Copy link
Contributor Author

hmaarrfk commented Apr 1, 2023

Jus following conda
https://github.com/conda/conda/releases/tag/22.9.0

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

Successfully merging this pull request may close these issues.

5 participants