Open DmiitriyJarosh opened 4 years ago
libgit2 -- lib, bindings to which have to be done Why important: allow to build Git functionality into your application and availability of bindings in Chapel gets opportunity to write all code connected with git in this language (instead of using extra C code).
License: as git2
api uses C library libgit2
we have to face with its licence - GPLv2 with a special Linking Exception. (This basically means that you can link it (unmodified) with any kind of software without having to release its source code)
Other languages: there are a lot of other languages which provide bindings to libgit2
. In this work I want to look at java bindings - jagged
and python bindings - pygit2
API:
Full available api of libgit2
can be found here
What have to be implemented: Repository, Blob (like file), Branch, Commit, Tree, Remotes - main parts of git2 interface.
As for the beginning I suggest implementing this main objects with all connected infrastructure (like references, sha-1 bindings and so on). As a base I think we can use jagged
and pygit2
source code. Personally, I think that designing a fully new architecture isn’t a great idea. It is better to take pygit2
architecture as a base and try to make it better using ideas from jagged
and special Chapel features.
Chapel hasn't implementation of
git2
interface now. This issue is needed to design new interface.