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

Remove subdir, platform, arch from "packages", "packages.conda" #132

Open
2 tasks done
dholth opened this issue Nov 3, 2023 · 4 comments
Open
2 tasks done

Remove subdir, platform, arch from "packages", "packages.conda" #132

dholth opened this issue Nov 3, 2023 · 4 comments
Labels
type::feature request for a new feature or capability

Comments

@dholth
Copy link
Contributor

dholth commented Nov 3, 2023

Checklist

  • I added a descriptive title
  • I searched open requests and couldn't find a duplicate

What is the idea?

Some packages contain subdir='linux-64', platform='linux', arch='x86_64' in info/index.json

It would be reasonable to remove these from the output repodata.json, at least if repodata.json["info"]["subdir"] matches.

Why is this needed?

These make repodata.json larger for no reason.

@dholth
Copy link
Contributor Author

dholth commented Mar 13, 2024

See also https://hackmd.io/Tt09IQJ6SKu28kV3Qw6Otg

Everyone would be happy to see the redundant data go away.

Suggests trying with different clients including older clients.

I noticed a significant fraction of the index packages do not these redundant fields already.

@jaimergp
Copy link
Contributor

From the top of my head:

  • conda-build aggregates subdirs together in a single dictionary. We need to make sure that the PackageRecords have subdir properly annotated by then.
  • In libmamba 1.x, libsolv parses the repodata items on its own, so we need to make sure that the absence of this field doesn't break anything
  • In libmamba 2.x, libmamba does the same, so the same thing as above, but for libmamba
  • I hope there's no channel where they are serving everything in a single subdir.

at least if repodata.json["info"]["subdir"] matches

I would argue that either:

  • We allow each package to override the global subdir, and leave the repodata_version unchanged (assuming Things Just Work)
  • We forbid it altogether, force people to publish per subdir, and bump the repodata_version

@dholth
Copy link
Contributor Author

dholth commented Apr 25, 2024

@jaimergp I remember we added a check for libmamba or conda if subdirs were aggregated in a single directory. How did we manage that together with conda-build's behavior as well as the single package cache ~/miniconda3/pkgs/?
I do notice that ~/miniconda3/conda-bld/ has per-subdir folders.

@jaimergp
Copy link
Contributor

conda-build's aggregated index is only used by classic. libmamba ignores that altogether and loads directly from the on-disk JSONs. We do analyse the in-memory index to find local channels that should be reloaded after each solver invocation in case there are new packages built.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type::feature request for a new feature or capability
Projects
Status: 🆕 New
Development

No branches or pull requests

2 participants