-
Notifications
You must be signed in to change notification settings - Fork 26
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
Experiment with libmambapy 2.0 alpha (WIP) #414
Conversation
The remaining failures are due to the same underlying issue, I think. It all comes to this diff: - 'channel-4/win-64::yaml-0.1.7-had09818_2',
? ^^^^^^
+ 'channel-4/win-64::yaml-0.1.7-h014fa73_2',
? ++++ ^^ These two "yaml-0.1.7-had09818_2.tar.bz2": {
"build": "had09818_2",
"build_number": 2,
"depends": [
"libgcc-ng >=7.2.0"
],
"license": "MIT",
"md5": "8bc3d68df049640c74941c52156a2e7a",
"name": "yaml",
"sha256": "fdb7ff699dd2ec13677601b4f01c023ca03e0683c917db30556f9cfafde5e0d2",
"size": 87051,
"subdir": "linux-64",
"timestamp": 1510609996778,
"version": "0.1.7"
},
"yaml-0.1.7-h014fa73_2.tar.bz2": {
"build": "h014fa73_2",
"build_number": 2,
"depends": [
"libgcc-ng >=7.2.0"
],
"license": "MIT",
"md5": "e723d423ade454d40d09840b1d61ea95",
"name": "yaml",
"sha256": "a280801f71ca749954a5683dcba311d6e006cf9b7597753cad9433b83da2ab27",
"size": 86890,
"subdir": "linux-64",
"timestamp": 1510100858096,
"version": "0.1.7"
} Identical except for the timestamp, size and hash. The only part relevant to the solver is the timestamp. The solution preferred by libmamba v2 is the same as conda classic used to do before conda/conda#8067 reintroduce timestamp optimization, so I wonder if something changed in the v2 refactor. I'll see if I can provide a reproducer with micromamba so upstream folks can take a look. |
I created this script to fetch the synthetic # Create synthetic channel
import os
import json
from urllib.request import urlretrieve
SUBDIR = os.environ.get("CONDA_SUBDIR", "linux-64")
channel_4 = "https://github.com/conda/conda/raw/main/tests/data/index4.json"
urlretrieve(channel_4, "index4.json")
with open("index4.json", "r") as f:
pkgs = json.load(f)
subdir_pkgs, noarch_pkgs = {}, {}
for fn, pkg in pkgs.items():
pkg["channel"] = "channel-4"
if pkg.get("subdir", "") == "noarch":
noarch_pkgs[fn] = pkg
else:
pkg["subdir"] = SUBDIR
subdir_pkgs[fn] = pkg
subdir_repodata = {
"info": {"subdir": os.environ.get("CONDA_SUBDIR", "linux-64")},
"packages": subdir_pkgs,
}
noarch_repodata = {
"info": {"subdir": "noarch"},
"packages": noarch_pkgs,
}
os.makedirs(f"channel-4/{SUBDIR}", exist_ok=True)
with open(f"channel-4/{SUBDIR}/repodata.json", "w") as f:
json.dump(subdir_repodata, f)
os.makedirs("channel-4/noarch", exist_ok=True)
with open("channel-4/noarch/repodata.json", "w") as f:
json.dump(noarch_repodata, f)
print("Channel-4 repodata available at:", os.path.abspath("channel-4")) Then we can do the following: # Choose your subdir if not linux-64
CONDA_SUBDIR=osx-arm64 python script.py micromamba create --dry-run --name unused --override-channels -c ./channel-4 conda conda-build --json | grep yaml-0.1.7 We obtain the correct Interestingly (!), I can't reproduce either with the current release of conda-libmamba-solver OR this PR! We only obtain the wrong |
Ok, yes, it's timestamp related, but the problem is on the |
Only |
Committed a fix, but we'll need conda/conda#13490 to fully address that test error. It was passing in libmamba 1.x by chance, because that test is supposed to only use |
For
Unclear why this is a Windows-only error. I'll debug more in depth when I get access to a VM. In-CI debugging with tmate is a bit messy. |
That's why we can't provision the CI. |
Continues in #457 |
Description
Checklist - did you ...
news
directory (using the template) for the next release's release notes?