Comments (2)
The general plan seems legit broadly speaking.
- Regarding the
Database
, we could use a base class as you suggested, or try and isolate the parts specific tolibsolv
in a specific class to use insideDatabase
(becauseresolvo
's API could be very different) but at leastDatabase
is already connected to the rest ofmamba
and hopefully we won't need to change much. - Instead of moving everything in
mamba::solver::libsolv
tomamba::solver
, we may want to leave it as it is and try in the same way to isolate what's related tolibsolv
and what would be common withresolvo
.
Unsolvable
for example seems to be tightly linked withlibsolv
internals so that would be a class specific tolibsolv
and we should maybe wrap it into another one alongside something else forresolvo
(we may need to define its API first to know what to do, I don't know if that work has been done yet).
So maybe just a renaming would be enough to make it clear it'slibsolv
specific, or actually keep the same names and just have two namespaceslibsolv
andresolvo
- Same for
repo_info
parameters
seem general enough, but maybe some classes/structs are specific tolibsolv
(no equivalent inresolvo
, semantically speaking)- Why detemplate
Database::add_repo_from_packages
? It seems ok to me
from mamba.
Regarding the Database, we could use a base class as you suggested, or try and isolate the parts specific to libsolv in a specific class to use inside Database (because resolvo's API could be very different) but at least Database is already connected to the rest of mamba and hopefully we won't need to change much.
I should have mentioned that resolvo's public API exposes a DependencyProvider
(similar to a Database
) and a Solver
. Based on the initial POC, I am quite confident that we could have similar abstractions for resolvo.
Most of the design points are mostly based on the assumption that introducing bases classes is the right pathway and that the current other abstractions than Database
and Solver
can be decoupled from libsolv
, but we need to validate that this is the right approach (I am pretty sure there are other designs which would avoid having a set of base classes and solver-specific sets of concrete classes).
Edit: For alternatives, I wonder whether template classes with a common template type parameter for the solver could help.
from mamba.
Related Issues (20)
- "micromamba run" does not forward exit code HOT 2
- `enum class` underlying types conversions
- `--force-reinstall` doesn't seem to work after pip uninstalling
- Micromamba parses condarc YAML with <CR> line breaks incorrectly HOT 1
- Bot failure
- ENH: Allow serialization of `Context()`
- System's %PATH% is overwrite, micromamba for windows,
- Bot failure HOT 1
- When following initialization help output, getting: `The following arguments were not expected: zsh --shell`
- [Mamba 2.0] Update doc
- [Mamba 2.0] Missing profile.d script HOT 3
- Bot failure HOT 1
- Logging callbacks have too much overhead on libmambapy HOT 3
- Multi-component libmamba(py)?
- Irrelevant output
- Upgrading an environment to libgcc(-ng) 14.1.0 build 1 results in missing shared object files HOT 5
- Mamba 2.0 - installing in the base env without activation HOT 2
- Deleting ~/.cache breaks `micromamba install` HOT 2
- No Hardlinks upon environment clone and update / during Docker build
- Avoid downloading large package metadata HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from mamba.