dlibgit icon indicating copy to clipboard operation
dlibgit copied to clipboard

updated some of the dlibgit api to version 0.25.1 of libgit2

Open gizmomogwai opened this issue 8 years ago • 6 comments

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.

gizmomogwai avatar Feb 01 '17 00:02 gizmomogwai

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'

s-ludwig avatar Jun 18 '17 15:06 s-ludwig

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.

s-ludwig avatar Jun 18 '17 15:06 s-ludwig

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.

Weyzu avatar Jun 18 '17 22:06 Weyzu

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.

gizmomogwai avatar Jun 19 '17 06:06 gizmomogwai

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 ifs 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.

s-ludwig avatar Jun 19 '17 07:06 s-ludwig

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?

katyukha avatar Feb 28 '19 10:02 katyukha