Comments (4)
I think I tried to ask about how that collaboration would look like.
Here are my suggestions on how I imagine the contribution process to look like, please chime in if there is something to discuss or alter.
- create a draft PR to allow early feedback
- use
quick-error
for errors exclusively - organize modules similarly to how it is done in all the crates
- tests are a must have
- keep test fixtures small in the range of a few kilobytes, I try to avoid introducing git LFS.
- avoid extra crate dependencies by using callbacks to be passed in
- 'keep it lean' :D
As the commit-graph seems like an optimization, it will probably be coming very late to my task list, and I would be surprised if I feel the need for it in the coming months. This gives you some time to sketch it out.
Please let me know if there are any questions, I am happy to help.
from gitoxide.
Thanks for your interest!
Indeed, the git-repository is just a catch-all, and I generally organize code by its dependencies to other crates. From the first looks it seems that it's a fairly well separated concept. Strictly optional, and really a file format to help speed up certain kinds of commit graph queries.
Reading the fanout and bisect code is quite trivial, and I clearly prefer putting everything into its own crate, also because there is no other relation to an object database. There will be quite some support code needed for (eventually) creating and maintaining the format, and a crate appears like an optimal container for that.
To answer the questions more succinctly:
-
Do you have a strong preference where commit graph I/O should go?
Their own crate, see the git-commitgraph
crate I just created.
-
I assume adding read-only support is acceptable for now. Is this correct?
Absolutely. It has to start somewhere and reading is usually easier than writing.
How do you imagine contributing to this project?
from gitoxide.
A separate crate sounds great!
How do you imagine contributing to this project?
I'm not sure what you're asking exactly, but my answer is yes!
from gitoxide.
With the PR merged, I believe this issue can be closed - thanks a lot for your contribution! Version 0.1 of the git-commitgraph
crate was just published.
from gitoxide.
Related Issues (20)
- Loose object tempfile failure on Windows HOT 1
- gix::open() : support bare repo with index HOT 1
- OSS-Fuzz issue 58355 HOT 1
- gix 0.43 cannot be build after 0.44 was published HOT 10
- .git/HEAD is missing a newline HOT 2
- Building with `--features=gix-features/zlib-stock` still pulls in `libz-ng-sys` HOT 7
- Checkout without cloning HOT 1
- Wrong entry order in tree object HOT 2
- Gitoxide use significantly more memory than git when cloning semisynthetic repos HOT 11
- .git/HEAD doesn't contain newline HOT 1
- `gix corpus` - an extendable way to run algorithms and record their results for comparison
- gix-packetline v0.16 cannot be compiled by docs.rs HOT 1
- OCD: Satisfy some pedantic clippies HOT 5
- Shell completions support HOT 3
- gix fetch sometimes gets stuck during negociation HOT 4
- Negociation broke fetching from the bcachefs git repository HOT 3
- Unable to fetch non-related remote HOT 9
- Usage of the `gix-testtools` crate
- smart-release: support private registries?
- gix: enable reusing of reqwest::blocking::Client HOT 1
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.