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

Multi-component libmamba(py)? #3418

Open
jaimergp opened this issue Aug 29, 2024 · 0 comments
Open

Multi-component libmamba(py)? #3418

jaimergp opened this issue Aug 29, 2024 · 0 comments

Comments

@jaimergp
Copy link
Contributor

conda-libmamba-solver only relies on the solver part of libmamba. It doesn't use any of the extraction routines, or the networking stack. Would it be possible to build libmamba in different chunks? Something like:

  • libmamba-archive.so
  • libmamba-network.so
  • libmamba-solver.so
  • libmamba-common.so

... plus the corresponding Python counterparts if needed.

The dependency tree is currently:

libmamba[1.5.8]
  ├─ fmt[10.2.1]
  │  └─ libcxx[18.1.8]
  ├─ libcxx already visited
  ├─ libarchive[3.7.4]
  │  ├─ libzlib[1.3.1]
  │  ├─ bzip2[1.0.8]
  │  ├─ lz4-c[1.9.4]
  │  │  └─ libcxx already visited
  │  ├─ xz[5.2.6]
  │  ├─ libiconv[1.17]
  │  ├─ libxml2[2.12.7]
  │  │  ├─ libzlib already visited
  │  │  ├─ xz already visited
  │  │  ├─ libiconv already visited
  │  │  └─ icu[75.1]
  │  ├─ zstd[1.5.6]
  │  │  └─ libzlib already visited
  │  ├─ openssl[3.3.1]
  │  │  └─ ca-certificates[2024.7.4]
  │  └─ lzo[2.10]
  ├─ zstd already visited
  ├─ openssl already visited
  ├─ libcurl[8.9.1]
  │  ├─ libzlib already visited
  │  ├─ zstd already visited
  │  ├─ openssl already visited
  │  ├─ libssh2[1.11.0]
  │  │  ├─ libzlib already visited
  │  │  └─ openssl already visited
  │  ├─ krb5[1.21.3]
  │  │  ├─ libcxx already visited
  │  │  ├─ openssl already visited
  │  │  └─ libedit[3.1.20191231]
  │  │     └─ ncurses[6.5]
  │  └─ libnghttp2[1.58.0]
  │     ├─ libcxx already visited
  │     ├─ libzlib already visited
  │     ├─ openssl already visited
  │     ├─ libev[4.33]
  │     └─ c-ares[1.33.1]
  ├─ libsolv[0.7.30]
  │  ├─ libcxx already visited
  │  └─ libzlib already visited
  ├─ reproc[14.2.4.post0]
  ├─ reproc-cpp[14.2.4.post0]
  │  ├─ libcxx already visited
  │  └─ reproc[14.2.4.post0]
  └─ yaml-cpp[0.8.0]
     └─ libcxx already visited

with libarchive and libcurl bringing most of the leaves. If I could have conda-libmamba-solver depend on simply libmambapy-solver then all those libraries won't be needed in the conda dependency tree.

Another side benefit is that we would diminish the ABI surface for errors like this conda-forge/libarchive-feedstock#69.

I know this is probably a big ask, and certainly not urgent, but I'll leave it here for reference.

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

No branches or pull requests

1 participant