diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 000000000..aea3ce380 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,9 @@ +version: 2 +updates: + - package-ecosystem: github-actions + directory: / + schedule: + interval: weekly + day: sunday + time: "10:00" + timezone: Etc/UTC diff --git a/.github/workflows/release-assets.yaml b/.github/workflows/release-assets.yaml new file mode 100644 index 000000000..1608b4643 --- /dev/null +++ b/.github/workflows/release-assets.yaml @@ -0,0 +1,161 @@ +name: Release Assets +on: + release: + types: + - published + +env: + # Ensure that we still have a chance to remove tags even after release. + # See also release.yaml. + GOPRIVATE: github.com/genjidb/genji + # Enable reproducible builds. + GOFLAGS: -trimpath + CGO_ENABLED: '0' + GO_EXTLINK_ENABLED: '0' + +jobs: + build: + name: Build + runs-on: ubuntu-latest + # Linux targets should be fixed in https://github.com/dgraph-io/ristretto/commit/6b99600c6cd958495fea33af2bf650c706da4c14 + # Other are failing when compiling github.com/pkg/term@v1.1.0/termios package. + # Plan9 target also fails when compiling bbolt. See https://github.com/etcd-io/bbolt/issues/231 + # + # ios/arm64 requires Cgo and external linker, and ios/amd64, iOS Simulator, is just no worth it. + # Same for all android targets except android/arm64 (which we do build). + # + continue-on-error: ${{ + matrix.os == 'openbsd' || + matrix.os == 'freebsd' || + matrix.os == 'plan9' || + matrix.os == 'linux' && matrix.arch == 'mips64' || + matrix.os == 'linux' && matrix.arch == 'mips64le' || + matrix.os == 'linux' && matrix.arch == 'riscv64' || + matrix.os == 'linux' && matrix.arch == 's390x' || + matrix.os == 'dragonfly' || + matrix.os == 'illumos' || + matrix.os == 'solaris' || + matrix.os == 'aix' || + matrix.allow-failure != '' }} + strategy: + fail-fast: false + matrix: + os: + - linux + - darwin + - windows + - openbsd + - freebsd + - netbsd + - plan9 + arch: + - amd64 + - arm64 + - 386 + - arm + include: + # Extra linux targets + - os: linux + arch: mips + - os: linux + arch: mips64 + - os: linux + arch: mips64le + - os: linux + arch: mipsle + - os: linux + arch: ppc64 + - os: linux + arch: ppc64le + - os: linux + arch: riscv64 + - os: linux + arch: s390x + # Misc targets + - os: android + arch: arm64 + - os: dragonfly + arch: amd64 + - os: illumos + arch: amd64 + - os: solaris + arch: amd64 + - os: aix + arch: ppc64 + exclude: + # Needs go1.17. See https://github.com/golang/go/issues/36439#issuecomment-827089403 + - os: windows + arch: arm64 + # Not supported + - os: darwin + arch: 386 + - os: darwin + arch: arm + - os: plan9 + arch: arm64 + env: + GOOS: ${{ matrix.os }} + GOARCH: ${{ matrix.arch }} + steps: + - name: Install Go + uses: actions/setup-go@v2.1.3 + with: + go-version: 1.16.4 + + - name: Get Go environment + id: go-env + run: | + echo "::set-output name=exe::$(go env GOEXE)" + echo "::set-output name=path::$(go env GOPATH)" + echo "::set-output name=hostos::$(go env GOHOSTOS)" + echo "::set-output name=hostarch::$(go env GOHOSTARCH)" + echo "::set-output name=cache::$(go env GOCACHE)" + echo "::set-output name=modcache::$(go env GOMODCACHE)" + + - name: Set up modules cache + uses: actions/cache@v2.1.5 + with: + path: ${{ steps.go-env.outputs.modcache }} + key: modcache-go-${{ hashFiles('**/go.sum') }} + restore-keys: modcache-go- + + - name: Set up build cache + uses: actions/cache@v2.1.5 + with: + path: ${{ steps.go-env.outputs.cache }} + key: cache-go-${{ matrix.os }}-${{ matrix.arch }}-${{ hashFiles('**/go.sum') }} + restore-keys: cache-go-${{ matrix.os }}-${{ matrix.arch }}- + + - name: Get asset name + id: asset + run: echo "::set-output name=filename::genji_${GOOS}_${GOARCH}${GOEXE}" + env: + GOEXE: ${{ steps.go-env.outputs.exe }} + + - name: Build release asset + env: + version: ${{ github.event.release.tag_name }} + run: go install github.com/genjidb/genji/cmd/genji@"${version}" + + - name: Move asset to GOPATH/bin + if: ${{ steps.go-env.outputs.hostos != matrix.os || steps.go-env.outputs.hostarch != matrix.arch }} + working-directory: ${{ steps.go-env.outputs.path }}/bin/${{ matrix.os }}_${{ matrix.arch }} + run: mv genji"${GOEXE}" .. + env: + GOEXE: ${{ steps.go-env.outputs.exe }} + + - name: Move asset to workspace + working-directory: ${{ steps.go-env.outputs.path }}/bin + run: mv genji"${GOEXE}" "${workspace}"/"${filename}" + env: + GOEXE: ${{ steps.go-env.outputs.exe }} + workspace: ${{ github.workspace }} + filename: ${{ steps.asset.outputs.filename }} + + - name: Upload release asset + run: gh release upload -R="${repo}" "${tag_name}" "${filename}" + env: + repo: ${{ github.repository }} + tag_name: ${{ github.event.release.tag_name }} + filename: ${{ steps.asset.outputs.filename }} + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml new file mode 100644 index 000000000..ca132fe84 --- /dev/null +++ b/.github/workflows/release.yaml @@ -0,0 +1,501 @@ +name: Release +on: + push: + branches: + - release + - release-v* + workflow_dispatch: + inputs: + version: + description: 'New version' + required: false + default: '' + base: + description: 'Base version' + required: false + default: '' + +env: + # Ensure that we have a chance to remove tags for failed release + # before they are added to global sumdb and goproxy cache. + GOPRIVATE: github.com/genjidb/genji + # Enable reproducible builds. + GOFLAGS: -trimpath + CGO_ENABLED: '0' + GO_EXTLINK_ENABLED: '0' + +concurrency: + group: release + +jobs: + prepare1: + name: Prepare genji + runs-on: ubuntu-latest + outputs: + version: ${{ steps.changelog.outputs.version }} + branch: ${{ steps.version.outputs.branch }} + steps: + - name: Checkout code + uses: actions/checkout@v2.3.4 + - name: Install Go + uses: actions/setup-go@v2.1.3 + with: + go-version: 1.16.4 + - name: Get Go environment + id: go-env + run: | + echo "::set-output name=cache::$(go env GOCACHE)" + echo "::set-output name=modcache::$(go env GOMODCACHE)" + - name: Set up cache + uses: actions/cache@v2.1.5 + with: + path: | + ${{ steps.go-env.outputs.cache }} + ${{ steps.go-env.outputs.modcache }} + key: prepare1-go-${{ hashFiles('**/go.sum') }} + restore-keys: prepare1-go- + - name: Install x/exp/cmd/gorelease + run: go install golang.org/x/exp/cmd/gorelease@v0.0.0-20210513165259-bd7cc9f9ec66 + + # Get current branch name and infer version for this release. + # + # Uses explicit version input if we are running on manual workflow dispatch. + # If we are on release branch with explicit version (e.g. release-v0.13.0) + # then branch != strip_prefix(branch, "release-") and we use branch version. + # Otherwise use empty version and gorelease would suggest a new semantic version. + # + # Note that gorelease will fail if the supplied version is not a valid semantic + # version for this release. + # + - name: Get version + id: version + env: + base: ${{ github.event.inputs.base }} + next: ${{ github.event.inputs.version }} + run: | + branch=${GITHUB_REF#refs/heads/} + branchversion=${branch#release-} + if [ "${next}" = "" -a "${branch}" != "${branchversion}" ]; then + next=${branchversion} + fi + echo "::set-output name=base::${base}" + echo "::set-output name=next::${next}" + echo "::set-output name=branch::${branch}" + + # Check github.com/genjidb/genji module. + # + # This step will fail if version from input is not a valid semantic version for this release. + # We use the version suggested by gorelease tool if there is no input (workflow on push event). + # The base version is inferred from the new version and defaults to latest release. + # + - name: Generate changelog + env: + base: ${{ steps.version.outputs.base }} + version: ${{ steps.version.outputs.next }} + run: | + gorelease -base="${base}" -version="${version}" | tee changelog.txt + - name: Extract version from changelog + id: changelog + run: | + perl -n -e ' + if (s/^Suggested version: (.*)/::set-output name=version::$1/) { print } + if (s/^(.*) is a valid semantic version for this release.$/::set-output name=version::$1/) { print } + ' changelog.txt + - name: Amend changelog + run: perl -0pi -e 's/(\n.+)+\n+$//' changelog.txt + - name: Concatenate release notes + run: | + if [ -f CHANGELOG.md ]; then + cp CHANGELOG.md release.txt + else + touch release.txt + fi + echo >>release.txt + echo --- >>release.txt + echo >>release.txt + cat changelog.txt >>release.txt + echo >>release.txt + - name: Upload artifact + uses: actions/upload-artifact@v2.2.3 + with: + name: release.txt + path: release.txt + if-no-files-found: error + retention-days: 1 + + tag1: + name: Tag genji + runs-on: ubuntu-latest + needs: + - prepare1 + steps: + - name: Checkout code + uses: actions/checkout@v2.3.4 + - name: Install Go + uses: actions/setup-go@v2.1.3 + with: + go-version: 1.16.4 + - name: Get Go environment + id: go-env + run: | + echo "::set-output name=cache::$(go env GOCACHE)" + echo "::set-output name=modcache::$(go env GOMODCACHE)" + - name: Set up cache + uses: actions/cache@v2.1.5 + with: + path: | + ${{ steps.go-env.outputs.cache }} + ${{ steps.go-env.outputs.modcache }} + key: tag1-go-${{ hashFiles('**/go.sum') }} + restore-keys: tag1-go- + - name: Set up Git config + run: | + git config user.name actions-user + git config user.email actions@github.com + - name: Bump version + env: + version: ${{ needs.prepare1.outputs.version }} + run: | + go mod tidy + git diff + git add go.mod go.sum + git commit --allow-empty -m "Bump version to ${version}" + git tag "${version}" + git push origin "${version}" + + prepare2: + name: Prepare badgerengine + runs-on: ubuntu-latest + needs: + - prepare1 + - tag1 + steps: + - name: Checkout code + uses: actions/checkout@v2.3.4 + - name: Install Go + uses: actions/setup-go@v2.1.3 + with: + go-version: 1.16.4 + - name: Get Go environment + id: go-env + run: | + echo "::set-output name=cache::$(go env GOCACHE)" + echo "::set-output name=modcache::$(go env GOMODCACHE)" + - name: Set up cache + uses: actions/cache@v2.1.5 + with: + path: | + ${{ steps.go-env.outputs.cache }} + ${{ steps.go-env.outputs.modcache }} + key: prepare2-go-${{ hashFiles('**/go.sum') }} + restore-keys: prepare2-go- + - name: Install x/exp/cmd/gorelease + run: go install golang.org/x/exp/cmd/gorelease@v0.0.0-20210513165259-bd7cc9f9ec66 + - name: Drop replace directives + working-directory: engine/badgerengine + env: + version: ${{ needs.prepare1.outputs.version }} + run: | + go mod edit -dropreplace=github.com/genjidb/genji + go mod edit -require=github.com/genjidb/genji@"${version}" + go mod tidy + - name: Generate changelog + working-directory: engine/badgerengine + env: + base: ${{ github.event.inputs.base }} + version: ${{ needs.prepare1.outputs.version }} + run: | + gorelease -base="${base}" -version="${version}" | tee changelog.txt + - name: Amend changelog + working-directory: engine/badgerengine + run: perl -0pi -e 's/(\n.+)+\n+$//' changelog.txt + - name: Download artifact + uses: actions/download-artifact@v2.0.9 + with: + name: release.txt + - name: Concatenate release notes + run: | + echo >>release.txt + echo --- >>release.txt + echo >>release.txt + cat engine/badgerengine/changelog.txt >>release.txt + - name: Upload artifact + uses: actions/upload-artifact@v2.2.3 + with: + name: release.txt + path: release.txt + if-no-files-found: error + retention-days: 1 + + tag2: + name: Tag badgerengine + runs-on: ubuntu-latest + needs: + - prepare1 + - prepare2 + - tag1 + steps: + - name: Checkout code + uses: actions/checkout@v2.3.4 + - name: Install Go + uses: actions/setup-go@v2.1.3 + with: + go-version: 1.16.4 + - name: Get Go environment + id: go-env + run: | + echo "::set-output name=cache::$(go env GOCACHE)" + echo "::set-output name=modcache::$(go env GOMODCACHE)" + - name: Set up cache + uses: actions/cache@v2.1.5 + with: + path: | + ${{ steps.go-env.outputs.cache }} + ${{ steps.go-env.outputs.modcache }} + key: tag2-go-${{ hashFiles('**/go.sum') }} + restore-keys: tag2-go- + - name: Set up Git config + run: | + git config user.name actions-user + git config user.email actions@github.com + - name: Bump version + working-directory: engine/badgerengine + env: + version: ${{ needs.prepare1.outputs.version }} + run: | + go mod edit -dropreplace=github.com/genjidb/genji + go mod edit -require=github.com/genjidb/genji@"${version}" + go mod tidy + git diff + git add go.mod go.sum + git commit --allow-empty -m "Bump version to ${version}" + git tag engine/badgerengine/"${version}" + git push origin engine/badgerengine/"${version}" + + tag3: + name: Tag cmd/genji + runs-on: ubuntu-latest + needs: + - prepare1 + - tag1 + - tag2 + steps: + - name: Checkout code + uses: actions/checkout@v2.3.4 + - name: Install Go + uses: actions/setup-go@v2.1.3 + with: + go-version: 1.16.4 + - name: Get Go environment + id: go-env + run: | + echo "::set-output name=cache::$(go env GOCACHE)" + echo "::set-output name=modcache::$(go env GOMODCACHE)" + - name: Set up cache + uses: actions/cache@v2.1.5 + with: + path: | + ${{ steps.go-env.outputs.cache }} + ${{ steps.go-env.outputs.modcache }} + key: tag3-go-${{ hashFiles('**/go.sum') }} + restore-keys: tag3-go- + - name: Set up Git config + run: | + git config user.name actions-user + git config user.email actions@github.com + - name: Bump version + working-directory: cmd/genji + env: + version: ${{ needs.prepare1.outputs.version }} + run: | + go mod edit -dropreplace=github.com/genjidb/genji + go mod edit -dropreplace=github.com/genjidb/genji/engine/badgerengine + go mod edit -require=github.com/genjidb/genji@"${version}" + go mod edit -require=github.com/genjidb/genji/engine/badgerengine@"${version}" + go mod tidy + git diff + git add go.mod go.sum + git commit --allow-empty -m "Bump version to ${version}" + git tag cmd/genji/"${version}" + git push origin cmd/genji/"${version}" + + draft: + name: Draft release + runs-on: ubuntu-latest + needs: + - prepare1 + - tag1 + - tag2 + - tag3 + outputs: + id: ${{ steps.release.outputs.id }} + steps: + - name: Download artifact + uses: actions/download-artifact@v2.0.9 + with: + name: release.txt + - name: Create release + id: release + uses: actions/create-release@v1.1.4 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + tag_name: ${{ needs.prepare1.outputs.version }} + release_name: ${{ needs.prepare1.outputs.version }} + body_path: release.txt + prerelease: ${{ contains(needs.prepare1.outputs.version, '-') }} + draft: true + # Defaults to HEAD unless we set that explicitly. Setting this + # to main branch fixes “commits since release” on release page. + # Ideally we could just use gh but that would just make things + # harder since we need release ID for rollback job on failure. + commitish: main + + push: + name: Push branch + runs-on: ubuntu-latest + needs: + - prepare1 + - tag1 + - tag2 + - tag3 + outputs: + branch: ${{ steps.branch.outputs.name }} + steps: + - name: Checkout code + uses: actions/checkout@v2.3.4 + - name: Install Go + uses: actions/setup-go@v2.1.3 + with: + go-version: 1.16.4 + - name: Get Go environment + id: go-env + run: | + echo "::set-output name=cache::$(go env GOCACHE)" + echo "::set-output name=modcache::$(go env GOMODCACHE)" + - name: Set up cache + uses: actions/cache@v2.1.5 + with: + path: | + ${{ steps.go-env.outputs.cache }} + ${{ steps.go-env.outputs.modcache }} + key: push-go-${{ hashFiles('**/go.sum') }} + restore-keys: push-go- + - name: Set up Git config + run: | + git config user.name actions-user + git config user.email actions@github.com + - name: Fetch tags + env: + version: ${{ needs.prepare1.outputs.version }} + run: | + git fetch origin \ + tag "${version}" \ + tag engine/badgerengine/"${version}" \ + tag cmd/genji/"${version}" + - name: Merge release + env: + version: ${{ needs.prepare1.outputs.version }} + run: | + echo "Before merge: $(git rev-parse HEAD)" + git merge \ + refs/tags/"${version}" \ + refs/tags/engine/badgerengine/"${version}" \ + refs/tags/cmd/genji/"${version}" + echo "After merge: $(git rev-parse HEAD)" + - name: Add replace directives + run: | + go mod tidy + git diff + git add go.mod go.sum + ( + cd engine/badgerengine + go mod edit -replace=github.com/genjidb/genji=../../ + go mod tidy + git diff + git add go.mod go.sum + ) + ( + cd cmd/genji + go mod edit -replace=github.com/genjidb/genji=../../ + go mod edit -replace=github.com/genjidb/genji/engine/badgerengine=../../engine/badgerengine/ + go mod tidy + git diff + git add go.mod go.sum + ) + git commit --allow-empty -m 'Add replace directives [skip ci]' + - name: Push PR branch + id: branch + env: + version: ${{ needs.prepare1.outputs.version }} + run: | + branch=merge-release-"${version}" + git checkout -b "${branch}" + git push origin "${branch}" + echo "::set-output name=name::${branch}" + + merge: + name: Create PR + runs-on: ubuntu-latest + needs: + - prepare1 + - push + steps: + - name: Checkout code + uses: actions/checkout@v2.3.4 + - name: Create PR + run: gh pr create -R="${repo}" -t="${title}" -b="${body}" -B="${base}" -H="${head}" + env: + repo: ${{ github.repository }} + base: ${{ needs.prepare1.outputs.branch }} + head: ${{ needs.push.outputs.branch }} + # Ensure that default merge commit body contains [skip ci] so that we don’t trigger release workflow. + # See also https://github.blog/changelog/2021-02-08-github-actions-skip + title: 'Merge release tags for ${{ needs.prepare1.outputs.version }} [skip ci]' + body: | + This PR merges ${{ needs.prepare1.outputs.version }} release tags. + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + # Remove tags and draft release on failure. + # + rollback: + name: Rollback + runs-on: ubuntu-latest + needs: + - prepare1 + - tag1 + - tag2 + - tag3 + - push + - merge + - draft + if: ${{ always() && !success() }} + env: + branch: ${{ needs.push.outputs.branch }} + version: ${{ needs.prepare1.outputs.version }} + steps: + - name: Checkout code + uses: actions/checkout@v2.3.4 + - name: Discard draft + if: ${{ needs.draft.result == 'success' || needs.draft.outputs.id != '' }} + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + uses: author/action-rollback@stable + with: + release_id: ${{ needs.draft.outputs.id }} + - name: Delete PR branch + if: ${{ needs.push.result == 'success' || needs.push.outputs.branch != '' }} + run: | + git push origin :refs/heads/"${branch}" + - name: Untag cmd/genji + if: ${{ needs.tag3.result == 'success' }} + run: | + git push origin :refs/tags/cmd/genji/"${version}" + - name: Untag badgerengine + if: ${{ needs.tag2.result == 'success' }} + run: | + git push origin :refs/tags/engine/badgerengine/"${version}" + - name: Untag genji + if: ${{ needs.tag1.result == 'success' }} + run: | + git push origin :refs/tags/"${version}" diff --git a/.github/workflows/test-fuzz.yaml b/.github/workflows/test-fuzz.yaml index a3046ca6f..aa767a528 100644 --- a/.github/workflows/test-fuzz.yaml +++ b/.github/workflows/test-fuzz.yaml @@ -1,6 +1,11 @@ name: Fuzz on: push: + branches-ignore: + - release + - release-v* + tags-ignore: + - '**' pull_request: workflow_dispatch: @@ -17,7 +22,7 @@ jobs: - name: Install Go uses: actions/setup-go@v2.1.3 with: - go-version: 1.16.3 + go-version: 1.16.4 - name: Get Go environment id: go-env diff --git a/.gitignore b/.gitignore index 6755988c2..48220f457 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,7 @@ +# Files that CI generates in release workflow. +release.txt +changelog.txt + # Binaries for programs and plugins *.exe *.exe~ diff --git a/cmd/genji/go.mod b/cmd/genji/go.mod index 7fde89a29..04b6c4934 100644 --- a/cmd/genji/go.mod +++ b/cmd/genji/go.mod @@ -6,8 +6,8 @@ require ( github.com/agnivade/levenshtein v1.1.0 github.com/c-bata/go-prompt v0.2.5 github.com/dgraph-io/badger/v3 v3.2011.1 - github.com/genjidb/genji v0.13.0 - github.com/genjidb/genji/engine/badgerengine v0.13.0 + github.com/genjidb/genji v0.12.0 + github.com/genjidb/genji/engine/badgerengine v0.12.0 github.com/stretchr/testify v1.7.0 github.com/urfave/cli/v2 v2.3.0 go.etcd.io/bbolt v1.3.5 @@ -16,6 +16,6 @@ require ( ) replace ( - github.com/genjidb/genji v0.13.0 => ../../ - github.com/genjidb/genji/engine/badgerengine v0.13.0 => ../../engine/badgerengine + github.com/genjidb/genji => ../../ + github.com/genjidb/genji/engine/badgerengine => ../../engine/badgerengine/ ) diff --git a/cmd/genji/go.sum b/cmd/genji/go.sum index 2f2a5aaaa..ae0a204f7 100644 --- a/cmd/genji/go.sum +++ b/cmd/genji/go.sum @@ -195,6 +195,7 @@ golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= diff --git a/engine/badgerengine/go.mod b/engine/badgerengine/go.mod index 72303eae6..e9e65736e 100644 --- a/engine/badgerengine/go.mod +++ b/engine/badgerengine/go.mod @@ -4,8 +4,8 @@ go 1.16 require ( github.com/dgraph-io/badger/v3 v3.2011.1 - github.com/genjidb/genji v0.13.0 + github.com/genjidb/genji v0.12.0 github.com/stretchr/testify v1.7.0 ) -replace github.com/genjidb/genji v0.13.0 => ../../ +replace github.com/genjidb/genji => ../../ diff --git a/engine/badgerengine/go.sum b/engine/badgerengine/go.sum index 536442047..351a76a7b 100644 --- a/engine/badgerengine/go.sum +++ b/engine/badgerengine/go.sum @@ -148,6 +148,7 @@ golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=