Comments (4)
Ideally you'd be able to say "if X is enabled, Y should be disabled", but that's not possible with cargo features.
More like cargo needs sum-type/enum in the feature system:
[features."flate-backend"]
choices = ["minoz", "libz", "libz-ng"]
from gitoxide.
@Byron It's possible to build flate2
and libz-sys
without the default backends. The problem is, it's difficult to expose that via gix features in a way that doesn't have the same feature structure the underlying crates do: a pair of features such that if you don't enable either you get a build error. Ideally you'd be able to say "if X is enabled, Y should be disabled", but that's not possible with cargo features.
from gitoxide.
Another way to manage this is to have all dependencies specified under workspace.dependencies
with default-features = false
, so we'll have a (slightly) better view when a feature is really needed.
from gitoxide.
Thanks for bringing this up!
I vaguely remember thinking that flate2
is built so that the default backend can be activated (and therefore will be built) even while additional backends are selected, like zlib-ng
. This is helpful as it adds flexibility, but leads to overhead.
I wish that one day there is tooling that helps to manage and maintain the nightmarish complexity of all the features in this project, even though I have little hope 😅.
from gitoxide.
Related Issues (20)
- Test suite does not assert directory symlink creation HOT 2
- `gix_mailmap::Snapshot` does not implement `Debug` or `Eq` HOT 4
- gix cannot clone a repo with a branch called HEAD HOT 2
- ssh clone does not correctly detect the location of ssh.exe HOT 12
- parsing failure of invalid author/committer line - missing space before email HOT 3
- gix-diff make_diff_repo test fixture archive is always regenerated HOT 2
- many_different_states fails on Windows with GIX_TEST_IGNORE_ARCHIVES=1 HOT 3
- 9 tests rely on commands like `ln -s` making copies instead of symlinks on Windows HOT 4
- gix-config set configuration values HOT 1
- OSS-Fuzz issue 70323 HOT 1
- Something went wrong... & Merge conflict after working on another device HOT 1
- `gix clean -xde` deletes whole repo if `.gitignore` lists `*` or `/` HOT 6
- The kstring integration in gix-attributes is unsound HOT 5
- Fallback to git commands? HOT 3
- `gix clean` with `-r` or `-xd` deletes the repo's own nested worktrees HOT 5
- audit uses of `as_ref()` and remove those that are ambiguous HOT 6
- gitoxide fails to compile with bstr 1.9.2 HOT 1
- `gix clean -xde` deletes the repo's own hidden nested worktrees, but they are not really hidden HOT 5
- The 32-bit Windows releases are 64-bit HOT 6
- Unclear intent regarding optimizations for some profiles
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 gitoxide.