dlibgit
dlibgit copied to clipboard
updated some of the dlibgit api to version 0.25.1 of libgit2
i also updated the deimos bindings where needed. i am not sure about the version numbering and if package.json, dub.json or dub.sdl should contain a version number.
The new v0.25.1 of the libgit bindings are now available on code.dlang.org. Re-running the tests now sill yields this error:
src/git/tree.d(138,11): Error: undefined identifier 'git_treebuilder_new'
src/git/tree.d(145,17): Error: undefined identifier 'git_treebuilder_new'
The idea with dlibgit, apart from providing a proper D API, is that it puts a reasonable range of libgit2 versions under a single umbrella API. With this PR, there would only be 0.25.1 support left, but I'd say at least 0.20.x should still be supported, as it is still in some Linux distributions.
Since this is sitting here since a while now, are you still on this? Otherwise I could continue from here once I get some time.
I'd like to chip in. 👋
I came across this PR some time ago when I was in need of bindings for libgit2
version 0.25.x. This PR seems to address only a minor fraction of what has been changed in libgit2 since 0.20.0.
So, in my spare time, I made an effort to update all bindings so that they would support libgit2
0.25.1. I'm still in the process (link). Unfortunately, new version is not backward compatible, hence projects like dlibgit
should stick with 0.20.0
. libgit2
introduced breaking changes to its API.
Thanks for coming back to this. I do not work on this anymore. Seeing that libgit2 is pretty much in motion (and not being an expert on libgit's api and evolution of this api) please do not merge those changes. For me this was only the minimum needed to get a git status working again with a recent version of libgit2, not a complete implementation.
Alright, so @Weyzu if you have a working state, we could merge your canges in the libgit2 repository, so that at least more of the API is supported for now. The 0.20->0.25 jump should be possible to handle similar to the 0.19->0.20 jump. The libgit2 repository defines a compile-time constant of the corresponding libgit2 version, so that static if
s can be used to hide the differences within dlibgit.
If any dlibgit API changes become necessary, we could also release the new version with breaking changes there. And features that are not supported on older versions of libgit2 can simply throw or do nothing, depending on the case. I think there are already such cases for 0.19 vs. 0.20.
Hi!
This PR s-ludwig/libgit2#8 will fix issue with git_treebuilder_new
@s-ludwig, @gizmomogwai I have some changes (commit) based on this PR to make dlibgit working (at least it builds with libgit2-v0.27
and app that use it runs). What will be the right way to contribute: create new PR to this project, create PR to gizmomogwai:master
or some other way?