Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

updated some of the dlibgit api to version 0.25.1 of libgit2 #9

Open
wants to merge 3 commits into
base: master
Choose a base branch
from

Conversation

gizmomogwai
Copy link

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.

@s-ludwig
Copy link
Owner

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
Copy link
Owner

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.

@Weyzu
Copy link

Weyzu commented Jun 18, 2017

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.

@gizmomogwai
Copy link
Author

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.

@s-ludwig
Copy link
Owner

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.

@katyukha
Copy link

katyukha commented Feb 28, 2019

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?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants