From ce62cb9a8ad708f8a4368f92e5ef2c7f80ceec2e Mon Sep 17 00:00:00 2001 From: Abhinav Gupta Date: Wed, 22 May 2024 17:57:54 -0700 Subject: [PATCH] Set up release process (#71) Sets up a goreleaser-based release process, using changie to track unreleased changes and generate the chaneglog. Adds a CONTRIBUTING file with instructions for contributors, including the release instructions for maintainers. --- .changes/header.tpl.md | 6 ++ .changes/unreleased/.gitkeep | 0 .changie.yaml | 26 +++++++ .github/workflows/release.yml | 69 ++++++++++++++++++ .gitignore | 1 + .goreleaser.yml | 66 ++++++++++++++++++ CHANGELOG.md | 9 +++ CONTRIBUTING.md | 127 ++++++++++++++++++++++++++++++++++ Makefile | 23 +++--- go.mod | 9 --- go.sum | 22 ------ tools.go | 1 - 12 files changed, 312 insertions(+), 47 deletions(-) create mode 100644 .changes/header.tpl.md create mode 100644 .changes/unreleased/.gitkeep create mode 100644 .changie.yaml create mode 100644 .github/workflows/release.yml create mode 100644 .goreleaser.yml create mode 100644 CHANGELOG.md create mode 100644 CONTRIBUTING.md diff --git a/.changes/header.tpl.md b/.changes/header.tpl.md new file mode 100644 index 00000000..df8faa7b --- /dev/null +++ b/.changes/header.tpl.md @@ -0,0 +1,6 @@ +# Changelog +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), +adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html), +and is generated by [Changie](https://github.com/miniscruff/changie). diff --git a/.changes/unreleased/.gitkeep b/.changes/unreleased/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/.changie.yaml b/.changie.yaml new file mode 100644 index 00000000..ee63c691 --- /dev/null +++ b/.changie.yaml @@ -0,0 +1,26 @@ +changesDir: .changes +unreleasedDir: unreleased +headerPath: header.tpl.md +changelogPath: CHANGELOG.md +versionExt: md +versionFormat: '## {{.Version}} - {{.Time.Format "2006-01-02"}}' +kindFormat: '### {{.Kind}}' +changeFormat: '- {{.Body}}' +kinds: +- label: Added + auto: minor +- label: Changed + auto: major +- label: Deprecated + auto: minor +- label: Removed + auto: major +- label: Fixed + auto: patch +- label: Security + auto: patch +newlines: + afterChangelogHeader: 0 + beforeChangelogVersion: 1 + endOfVersion: 1 +envPrefix: CHANGIE_ diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 00000000..2635da45 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,69 @@ +name: Release + +on: + push: + tags: ['v*'] + + workflow_dispatch: + inputs: + version: + description: "Version to release, including the 'v' prefix." + required: true + type: string + +permissions: + contents: write + +jobs: + release: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + with: + ref: ${{ inputs.version || github.ref }} + + - name: Set up Go + uses: actions/setup-go@v5 + with: + go-version: 1.22.x + + - name: Install parse-changelog + uses: taiki-e/install-action@v2 + with: + tool: parse-changelog@0.6.8 + + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Determine version (tagged release) + if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v') + run: | + set -eou pipefail + REF=${{ github.ref }} + echo "VERSION=${REF#refs/tags/v}" >> "$GITHUB_ENV" + - name: Determine version (manual dispatch) + if: github.event_name == 'workflow_dispatch' + run: | + echo "VERSION=${INPUT_VERSION#v}" >> "$GITHUB_ENV" + env: + INPUT_VERSION: ${{ inputs.version }} + + - name: Extract changelog + run: | + parse-changelog CHANGELOG.md ${{ env.VERSION }} > ${{ github.workspace }}-CHANGELOG.txt + echo ::group::CHANGELOG + cat ${{ github.workspace }}-CHANGELOG.txt + echo ::endgroup:: + + - name: Release + uses: goreleaser/goreleaser-action@v5 + with: + distribution: goreleaser + version: latest + args: release --clean --release-notes ${{ github.workspace }}-CHANGELOG.txt + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + GORELEASER_CURRENT_TAG: v${{ env.VERSION }} diff --git a/.gitignore b/.gitignore index 22fe912c..45f894d0 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ /bin +/dist cover.out cover.html diff --git a/.goreleaser.yml b/.goreleaser.yml new file mode 100644 index 00000000..cde031c6 --- /dev/null +++ b/.goreleaser.yml @@ -0,0 +1,66 @@ +project_name: git-spice + +builds: + - env: + - CGO_ENABLED=0 + main: . + binary: gs + goos: [darwin, linux] + goarch: [amd64, arm64] + goarm: [5, 6, 7] + ldflags: '-s -w -X main._version={{.Version}}' + flags: + - -trimpath + +archives: + - format: tar.gz + # uname compatible archive name. + name_template: >- + {{- .ProjectName }}. + {{- title .Os }}- + {{- if eq .Arch "amd64" }}x86_64 + {{- else if eq .Arch "386" }}i386 + {{- else }}{{ .Arch }}{{ end }} + {{- if .Arm }}v{{ .Arm }}{{ end }} + +# TODO: Enable when public +# aurs: +# - name: git-spice-bin +# homepage: https://github.com/abhinav/git-spice +# description: "Stitch multiple Markdown files together into a single document." +# maintainers: +# - 'Abhinav Gupta ' +# license: "GPL-3.0" +# git_url: "ssh://aur@aur.archlinux.org/git-spice-bin.git" +# skip_upload: auto +# private_key: '{{ .Env.AUR_KEY }}' +# package: |- +# install -Dm755 "./git-spice" "${pkgdir}/usr/bin/gs" +# install -Dm644 "./LICENSE" "${pkgdir}/usr/share/licenses/git-spice/LICENSE" +# install -Dm644 "./README.md" "${pkgdir}/usr/share/doc/git-spice/README.md" +# install -Dm644 "./CHANGELOG.md" "${pkgdir}/usr/share/doc/git-spice/CHANGELOG.md" +# commit_author: +# name: Abhinav Gupta +# email: mail@abhinavg.net +# +# brews: +# - tap: +# owner: abhinav +# name: homebrew-tap +# token: "{{ .Env.HOMEBREW_TAP_GITHUB_TOKEN }}" +# commit_msg_template: "{{ .ProjectName }}: Update formula to {{ .Tag }}" +# commit_author: +# name: Abhinav Gupta +# email: mail@abhinavg.net +# homepage: https://github.com/abhinav/git-spice +# description: "Stitch multiple Markdown files together into a single document." +# license: "GPL-3.0" +# skip_upload: auto +# test: | +# system "#{bin}/gs -version" + +checksum: + name_template: 'checksums.txt' + +snapshot: + name_template: "{{ incminor .Tag }}-dev" diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 00000000..5ca9d33a --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,9 @@ +# Changelog +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), +adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html), +and is generated by [Changie](https://github.com/miniscruff/changie). + + +No releases yet, this file will be updated when generating your first release. diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 00000000..d2c3a937 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,127 @@ +# Contributing + +We welcome contributes to the project, +but please discuss features or significant changes +in an issue before starting work on them. + +## Tools + +The following tools are needed to work on this project: + +- [Go](https://go.dev/): + The project is written in Go, so you need the Go compiler. +- [Changie](https://changie.dev/): + We use Changie to manage the changelog. + You'll need this if you make user-facing changes. +- [stitchmd](https://github.com/abhinav/stitchmd): + We use stitchmd to generate the README from files inside the doc/ directory. + You'll need this to edit the README. + +## Making contributions + +Follow the usual GitHub contribution process for making changes +with the following notes: + +- Add changelog entries for user-facing changes with `changie new`. +- If you edit documentation in doc/, run `make README.md` to update the README. + This requires stitchmd to be installed. +- All commits must include meaningful commit messages. +- Test new features and bug fixes. + If it doesn't have a test, it's not fixed. +- Verify tests pass before submitting a pull request. + +### Stacking changes + +Unfortunately, it's not possible to submit a stack of pull requests +to a repository that you do not have write access to. +To work around this, we advise the following workflow +to stack changes with git-spice for a contribution: + +1. Set your fork as the upstream remote for git-spice. + + ```bash + gh repo fork --remote fork + gs repo init --remote fork + ``` + +2. After preparing your stack of branches, submit them to your fork. + + ```bash + gs stack submit + ``` + +3. Create a pull request to the upstream repository with the top branch + of your stack. + +## Testing + +We use standard Go testing. + +```sh +go test ./... +``` + +Use `make` to get a coverage report: + +```sh +make cover +``` + +### Test scripts + +Tests for the project make heavy use of the +[testscript package](https://pkg.go.dev/github.com/rogpeppe/go-internal/testscript). +Tests scripts are stored inside the testdata/script directory. +Read more about the test script format in the documentation of the package. + +## Releasing a new version + +(For maintainers only.) + +To release a new version, take the following steps: + +1. Create a new branch for the release. For example: + + ```sh + VERSION=$(changie next minor) + gs branch create release-$VERSION -m "Release $VERSION" + ``` + +2. Combine unreleased changes into a single Markdown document. + + ```sh + changie batch $VERSION + ``` + +3. Open up this file and verify everything looks good. + + ```sh + $EDITOR .changes/$(changie latest).md + ``` + +4. Merge these changes into CHANGELOG.md. + + ```sh + changie merge + ``` + +5. Commit the changes. + + ```sh + git add CHANGELOG.md .changes + gs commit amend --no-edit + ``` + +6. Create a pull request for the release. + + ```sh + gh pr create + ``` + +7. Once the pull request is merged, tag the release + either with the GitHub UI or with the following command: + + ```sh + git tag v$VERSION + git push origin v$VERSION + ``` diff --git a/Makefile b/Makefile index cdcfc81e..aa695e61 100644 --- a/Makefile +++ b/Makefile @@ -16,8 +16,7 @@ STITCHMD_FLAGS ?= -o README.md -preface doc/preface.txt doc/SUMMARY.md GS = bin/gs MOCKGEN = bin/mockgen -STITCHMD = bin/stitchmd -TOOLS = $(MOCKGEN) $(GS) $(STITCHMD) +TOOLS = $(MOCKGEN) $(GS) # Non-test Go files. GO_SRC_FILES = $(shell find . \ @@ -33,7 +32,7 @@ all: build lint test build: $(GS) .PHONY: lint -lint: golangci-lint tidy-lint generate-lint stitchmd-lint +lint: golangci-lint tidy-lint generate-lint .PHONY: generate generate: $(TOOLS) @@ -52,10 +51,7 @@ cover: tidy: go mod tidy -.PHONY: stitchmd -stitchmd: README.md - -README.md: $(STITCHMD) $(DOC_MD_FILES) +README.md: $(DOC_MD_FILES) stitchmd $(STITCHMD_FLAGS) .PHONY: golangci-lint @@ -76,13 +72,13 @@ generate-lint: $(TOOLS) git diff --exit-code || \ (echo "'go generate' changed files" && false) -# stitchmd-lint depends on generate-lint +# readme-lint depends on generate-lint # because that updates doc/reference.md. # In the future, that can be make-managed. -.PHONE: stitchmd-lint -stitchmd-lint: $(STITCHMD) generate-lint - @echo "[lint] stitchmd" - @DIFF=$$($(STITCHMD) -diff $(STITCHMD_FLAGS)); \ +.PHONE: readme-lint +readme-lint: generate-lint + @echo "[lint] readme" + @DIFF=$$(stitchmd -diff $(STITCHMD_FLAGS)); \ if [[ -n "$$DIFF" ]]; then \ echo "stitchmd would change README:"; \ echo "$$DIFF"; \ @@ -94,6 +90,3 @@ $(GS): $(GO_SRC_FILES) $(MOCKGEN): go.mod go install go.uber.org/mock/mockgen - -$(STITCHMD): go.mod - go install go.abhg.dev/stitchmd diff --git a/go.mod b/go.mod index 1699d65a..00de947e 100644 --- a/go.mod +++ b/go.mod @@ -14,15 +14,12 @@ require ( github.com/rogpeppe/go-internal v1.12.0 github.com/stretchr/testify v1.9.0 github.com/vito/midterm v0.1.5-0.20240307214207-d0271a7ca452 - go.abhg.dev/stitchmd v0.8.1 go.uber.org/mock v0.4.0 golang.org/x/oauth2 v0.20.0 pgregory.net/rapid v1.1.0 ) require ( - github.com/BurntSushi/toml v1.3.2 // indirect - github.com/Kunde21/markdownfmt/v3 v3.1.0 // indirect github.com/atotto/clipboard v0.1.4 // indirect github.com/aymanbagabas/go-osc52/v2 v2.0.1 // indirect github.com/catppuccin/go v0.2.0 // indirect @@ -35,22 +32,16 @@ require ( github.com/hashicorp/errwrap v1.1.0 // indirect github.com/hashicorp/go-multierror v1.1.1 // indirect github.com/lucasb-eyer/go-colorful v1.2.0 // indirect - github.com/mattn/go-colorable v0.1.13 // indirect github.com/mattn/go-localereader v0.0.1 // indirect github.com/mattn/go-runewidth v0.0.15 // indirect github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6 // indirect github.com/muesli/cancelreader v0.2.2 // indirect github.com/muesli/reflow v0.3.0 // indirect github.com/muesli/termenv v0.15.2 // indirect - github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e // indirect github.com/pmezard/go-difflib v1.0.0 // indirect github.com/rivo/uniseg v0.4.7 // indirect - github.com/yuin/goldmark v1.6.0 // indirect - go.abhg.dev/container/ring v0.3.0 // indirect - go.abhg.dev/goldmark/frontmatter v0.1.0 // indirect golang.org/x/exp v0.0.0-20231006140011-7918f672742d // indirect golang.org/x/mod v0.13.0 // indirect - golang.org/x/net v0.23.0 // indirect golang.org/x/sync v0.4.0 // indirect golang.org/x/sys v0.18.0 // indirect golang.org/x/term v0.18.0 // indirect diff --git a/go.sum b/go.sum index f5ee000c..7a24c0c4 100644 --- a/go.sum +++ b/go.sum @@ -1,7 +1,3 @@ -github.com/BurntSushi/toml v1.3.2 h1:o7IhLm0Msx3BaB+n3Ag7L8EVlByGnpq14C4YWiu/gL8= -github.com/BurntSushi/toml v1.3.2/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= -github.com/Kunde21/markdownfmt/v3 v3.1.0 h1:KiZu9LKs+wFFBQKhrZJrFZwtLnCCWJahL+S+E/3VnM0= -github.com/Kunde21/markdownfmt/v3 v3.1.0/go.mod h1:tPXN1RTyOzJwhfHoon9wUr4HGYmWgVxSQN6VBJDkrVc= github.com/alecthomas/assert/v2 v2.6.0 h1:o3WJwILtexrEUk3cUVal3oiQY2tfgr/FHWiz/v2n4FU= github.com/alecthomas/assert/v2 v2.6.0/go.mod h1:Bze95FyfUr7x34QZrjL+XP+0qgp/zg8yS+TtBj1WA3k= github.com/alecthomas/kong v0.9.0 h1:G5diXxc85KvoV2f0ZRVuMsi45IrBgx9zDNGNj165aPA= @@ -26,8 +22,6 @@ github.com/charmbracelet/log v0.4.0 h1:G9bQAcx8rWA2T3pWvx7YtPTPwgqpk7D68BX21IRW8 github.com/charmbracelet/log v0.4.0/go.mod h1:63bXt/djrizTec0l11H20t8FDSvA4CRZJ1KH22MdptM= github.com/containerd/console v1.0.4-0.20230313162750-1ae8d489ac81 h1:q2hJAaP1k2wIvVRd/hEHD7lacgqrCPS+k8g1MndzfWY= github.com/containerd/console v1.0.4-0.20230313162750-1ae8d489ac81/go.mod h1:YynlIjWYF8myEu6sdkwKIvGQq+cOckRm6So2avqoYAk= -github.com/creack/pty v1.1.20 h1:VIPb/a2s17qNeQgDnkfZC35RScx+blkKF8GV68n80J4= -github.com/creack/pty v1.1.20/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4= github.com/creack/pty/v2 v2.0.1 h1:RDY1VY5b+7m2mfPsugucOYPIxMp+xal5ZheSyVzUA+k= github.com/creack/pty/v2 v2.0.1/go.mod h1:2dSssKp3b86qYEMwA/FPwc3ff+kYpDdQI8osU8J7gxQ= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -52,9 +46,6 @@ github.com/hexops/gotextdiff v1.0.3 h1:gitA9+qJrrTCsiCl7+kh75nPqQt1cx4ZkudSTLoUq github.com/hexops/gotextdiff v1.0.3/go.mod h1:pSWU5MAI3yDq+fZBTazCSJysOMbxWL1BSow5/V2vxeg= github.com/lucasb-eyer/go-colorful v1.2.0 h1:1nnpGOrhyZZuNyfu1QjKiUICQ74+3FNCN69Aj6K7nkY= github.com/lucasb-eyer/go-colorful v1.2.0/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0= -github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= -github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= -github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/mattn/go-localereader v0.0.1 h1:ygSAOl7ZXTx4RdPYinUpg6W99U8jWvWi9Ye2JC/oIi4= @@ -70,8 +61,6 @@ github.com/muesli/reflow v0.3.0 h1:IFsN6K9NfGtjeggFP+68I4chLZV2yIKsXJFNZ+eWh6s= github.com/muesli/reflow v0.3.0/go.mod h1:pbwTDkVPibjO2kyvBQRBxTWEEGDGq0FlB1BIKtnHY/8= github.com/muesli/termenv v0.15.2 h1:GohcuySI0QmI3wN8Ok9PtKGkgkFIk7y6Vpb5PvrY+Wo= github.com/muesli/termenv v0.15.2/go.mod h1:Epx+iuz8sNs7mNKhxzH4fWXGNpZwUaJKRS1noLXviQ8= -github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e h1:aoZm08cpOy4WuID//EZDgcC4zIxODThtZNPirFr42+A= -github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/posener/complete v1.2.3 h1:NP0eAhjcjImqslEwo/1hq7gpajME0fTLTezBKDqfXqo= @@ -92,27 +81,16 @@ github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsT github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/vito/midterm v0.1.5-0.20240307214207-d0271a7ca452 h1:I5FdiUvkD++87hOiZYuDu0BqsaJXAnpOCed3kqkjCEE= github.com/vito/midterm v0.1.5-0.20240307214207-d0271a7ca452/go.mod h1:2ujYuyOObdWrQtnXAzwSBcPRKhC5Q96ex0nsf2Dmfzk= -github.com/yuin/goldmark v1.6.0 h1:boZcn2GTjpsynOsC0iJHnBWa4Bi0qzfJjthwauItG68= -github.com/yuin/goldmark v1.6.0/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= -go.abhg.dev/container/ring v0.3.0 h1:sEYgxqyAsT2X1NkUEPQecR4WY7cZCbKZSGUsERhHyDI= -go.abhg.dev/container/ring v0.3.0/go.mod h1:GoB+vof3ofHqP2h2S97aJkmrMLK/Dyn7UEupDTgfWV8= -go.abhg.dev/goldmark/frontmatter v0.1.0 h1:NI9pAkz8irT/vZxxgzYe7rN93Q1+oYeHXfQkRZh37x4= -go.abhg.dev/goldmark/frontmatter v0.1.0/go.mod h1:XqrEkZuM57djk7zrlRUB02x8I5J0px76YjkOzhB4YlU= -go.abhg.dev/stitchmd v0.8.1 h1:l43GQ57/pBN5+rUq9I/R6n7l9OX3oZjdh9tabriIBdM= -go.abhg.dev/stitchmd v0.8.1/go.mod h1:jDxV+gcXjFT+ziSoO/RC+U0VFbZl6ARuC5MoF+gBOTE= go.uber.org/mock v0.4.0 h1:VcM4ZOtdbR4f6VXfiOpwpVJDL6lCReaZ6mw31wqh7KU= go.uber.org/mock v0.4.0/go.mod h1:a6FSlNadKUHUa9IP5Vyt1zh4fC7uAwxMutEAscFbkZc= golang.org/x/exp v0.0.0-20231006140011-7918f672742d h1:jtJma62tbqLibJ5sFQz8bKtEM8rJBtfilJ2qTU199MI= golang.org/x/exp v0.0.0-20231006140011-7918f672742d/go.mod h1:ldy0pHrwJyGW56pPQzzkH36rKxoZW1tw7ZJpeKx+hdo= golang.org/x/mod v0.13.0 h1:I/DsJXRlw/8l/0c24sM9yb0T4z9liZTduXvdAWYiysY= golang.org/x/mod v0.13.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= -golang.org/x/net v0.23.0 h1:7EYJ93RZ9vYSZAIb2x3lnuvqO5zneoD6IvWjuhfxjTs= -golang.org/x/net v0.23.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= golang.org/x/oauth2 v0.20.0 h1:4mQdhULixXKP1rwYBW0vAijoXnkTG0BLCDRzfe1idMo= golang.org/x/oauth2 v0.20.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= golang.org/x/sync v0.4.0 h1:zxkM55ReGkDlKSM+Fu41A+zmbZuaPVbGMzvvdUPznYQ= golang.org/x/sync v0.4.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= -golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4= diff --git a/tools.go b/tools.go index 7866727a..b93ca87e 100644 --- a/tools.go +++ b/tools.go @@ -3,6 +3,5 @@ package main import ( - _ "go.abhg.dev/stitchmd" _ "go.uber.org/mock/mockgen" )