diff --git a/.github/workflows/backport.yml b/.github/workflows/backport.yml index c0b0d9e..9f18fac 100644 --- a/.github/workflows/backport.yml +++ b/.github/workflows/backport.yml @@ -12,7 +12,7 @@ jobs: strategy: fail-fast: false matrix: - branch: [ 'release-1.2', 'release-1.1', 'release-1.0', 'release-0.28', 'release-0.27' ] + branch: [ 'release-1.1', 'release-1.0', 'release-0.28', 'release-0.27' ] runs-on: ubuntu-20.04 diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5ab1b48..53f0705 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -62,7 +62,7 @@ jobs: fail-fast: false matrix: libgit2: - - 'v1.3.0' + - '109b4c887ffb63962c7017a66fc4a1f48becb48e' # v1.2.0 with a fixed symbol name: Go (system-wide, dynamic) runs-on: ubuntu-20.04 @@ -105,3 +105,26 @@ jobs: sudo ./script/build-libgit2.sh --static --system - name: Test run: go test --count=1 --tags "static,system_libgit2" ./... + + check-generate: + name: Check generated files were not modified + runs-on: ubuntu-20.04 + steps: + - name: Set up Go + uses: actions/setup-go@v1 + with: + go-version: '1.17' + id: go + - name: Check out code into the Go module directory + uses: actions/checkout@v2 + - name: Install libgit2 build dependencies + run: | + git submodule update --init + sudo apt-get install -y --no-install-recommends libssh2-1-dev + go install golang.org/x/tools/cmd/stringer@latest + - name: Generate files + run: | + export PATH=$(go env GOPATH)/bin:$PATH + make generate + - name: Check nothing changed + run: git diff --quiet --exit-code || (echo "detected changes after generate" ; git status ; exit 1) diff --git a/Build_bundled_static.go b/Build_bundled_static.go index d9b3713..09ed0f5 100644 --- a/Build_bundled_static.go +++ b/Build_bundled_static.go @@ -10,8 +10,8 @@ package git #cgo CFLAGS: -DLIBGIT2_STATIC #include -#if LIBGIT2_VER_MAJOR != 1 || LIBGIT2_VER_MINOR < 3 || LIBGIT2_VER_MINOR > 3 -# error "Invalid libgit2 version; this git2go supports libgit2 between v1.3.0 and v1.3.0" +#if LIBGIT2_VER_MAJOR != 1 || LIBGIT2_VER_MINOR < 2 || LIBGIT2_VER_MINOR > 2 +# error "Invalid libgit2 version; this git2go supports libgit2 between v1.2.0 and v1.2.0" #endif */ import "C" diff --git a/Build_system_dynamic.go b/Build_system_dynamic.go index a8e6942..9500188 100644 --- a/Build_system_dynamic.go +++ b/Build_system_dynamic.go @@ -8,8 +8,8 @@ package git #cgo CFLAGS: -DLIBGIT2_DYNAMIC #include -#if LIBGIT2_VER_MAJOR != 1 || LIBGIT2_VER_MINOR < 3 || LIBGIT2_VER_MINOR > 3 -# error "Invalid libgit2 version; this git2go supports libgit2 between v1.3.0 and v1.3.0" +#if LIBGIT2_VER_MAJOR != 1 || LIBGIT2_VER_MINOR < 2 || LIBGIT2_VER_MINOR > 2 +# error "Invalid libgit2 version; this git2go supports libgit2 between v1.2.0 and v1.2.0" #endif */ import "C" diff --git a/Build_system_static.go b/Build_system_static.go index a96894f..309369d 100644 --- a/Build_system_static.go +++ b/Build_system_static.go @@ -8,8 +8,8 @@ package git #cgo CFLAGS: -DLIBGIT2_STATIC #include -#if LIBGIT2_VER_MAJOR != 1 || LIBGIT2_VER_MINOR < 3 || LIBGIT2_VER_MINOR > 3 -# error "Invalid libgit2 version; this git2go supports libgit2 between v1.3.0 and v1.3.0" +#if LIBGIT2_VER_MAJOR != 1 || LIBGIT2_VER_MINOR < 2 || LIBGIT2_VER_MINOR > 2 +# error "Invalid libgit2 version; this git2go supports libgit2 between v1.2.0 and v1.2.0" #endif */ import "C" diff --git a/Makefile b/Makefile index 84262f4..71c5ee0 100644 --- a/Makefile +++ b/Makefile @@ -2,6 +2,10 @@ TEST_ARGS ?= --count=1 default: test + +generate: static-build/install/lib/libgit2.a + go generate --tags "static" ./... + # System library # ============== # This uses whatever version of libgit2 can be found in the system. diff --git a/README.md b/README.md index 8c4b811..7cc36eb 100644 --- a/README.md +++ b/README.md @@ -10,8 +10,7 @@ Due to the fact that Go 1.11 module versions have semantic meaning and don't nec | libgit2 | git2go | |---------|---------------| -| main | (will be v34) | -| 1.3 | v33 | +| main | (will be v33) | | 1.2 | v32 | | 1.1 | v31 | | 1.0 | v30 | @@ -19,13 +18,13 @@ Due to the fact that Go 1.11 module versions have semantic meaning and don't nec | 0.28 | v28 | | 0.27 | v27 | -You can import them in your project with the version's major number as a suffix. For example, if you have libgit2 v1.2 installed, you'd import git2go v33 with: +You can import them in your project with the version's major number as a suffix. For example, if you have libgit2 v1.2 installed, you'd import git2go v32 with: ```sh -go get github.com/libgit2/git2go/v33 +go get github.com/libgit2/git2go/v32 ``` ```go -import "github.com/libgit2/git2go/v33" +import "github.com/libgit2/git2go/v32" ``` which will ensure there are no sudden changes to the API. @@ -49,7 +48,7 @@ This project wraps the functionality provided by libgit2. If you're using a vers When linking dynamically against a released version of libgit2, install it via your system's package manager. CGo will take care of finding its pkg-config file and set up the linking. Import via Go modules, e.g. to work against libgit2 v1.2 ```go -import "github.com/libgit2/git2go/v33" +import "github.com/libgit2/git2go/v32" ``` ### Versioned branch, static linking @@ -79,7 +78,7 @@ In order to let Go pass the correct flags to `pkg-config`, `-tags static` needs One thing to take into account is that since Go expects the `pkg-config` file to be within the same directory where `make install-static` was called, so the `go.mod` file may need to have a [`replace` directive](https://github.com/golang/go/wiki/Modules#when-should-i-use-the-replace-directive) so that the correct setup is achieved. So if `git2go` is checked out at `$GOPATH/src/github.com/libgit2/git2go` and your project at `$GOPATH/src/github.com/my/project`, the `go.mod` file of `github.com/my/project` might need to have a line like - replace github.com/libgit2/git2go/v33 ../../libgit2/git2go + replace github.com/libgit2/git2go/v32 ../../libgit2/git2go Parallelism and network operations ---------------------------------- diff --git a/git.go b/git.go index 383c492..b7c8b3c 100644 --- a/git.go +++ b/git.go @@ -14,6 +14,7 @@ import ( "unsafe" ) +//go:generate stringer -type ErrorClass -trimprefix ErrorClass -tags static type ErrorClass int const ( @@ -48,6 +49,7 @@ const ( ErrorClassPatch ErrorClass = C.GIT_ERROR_PATCH ) +//go:generate stringer -type ErrorCode -trimprefix ErrorCode -tags static type ErrorCode int const ( diff --git a/go.mod b/go.mod index c8028ef..db1ea19 100644 --- a/go.mod +++ b/go.mod @@ -1,4 +1,4 @@ -module github.com/libgit2/git2go/v33 +module github.com/libgit2/git2go/v32 go 1.13 diff --git a/vendor/libgit2 b/vendor/libgit2 index b7bad55..109b4c8 160000 --- a/vendor/libgit2 +++ b/vendor/libgit2 @@ -1 +1 @@ -Subproject commit b7bad55e4bb0a285b073ba5e02b01d3f522fc95d +Subproject commit 109b4c887ffb63962c7017a66fc4a1f48becb48e