From 844d499a8aca0d73673f5b9665d992916a06ce7d Mon Sep 17 00:00:00 2001 From: Tom Fleet Date: Sun, 11 Aug 2024 17:05:44 +0100 Subject: [PATCH 1/3] Update repo from latest copier template --- .copier-answers.yml | 14 ---- .github/dependabot.yml | 10 +-- .github/labels.yml | 20 +++++ .github/workflows/CI.yml | 70 +++------------- .github/workflows/labeler.yml | 2 +- .github/workflows/release.yml | 68 +++++++++++++++ .github/workflows/release_drafter.yml | 1 + .gitignore | 7 ++ .golangci.yml | 86 +++++++++++++++++-- .goreleaser.yml | 15 ++-- LICENSE | 2 +- Makefile | 48 ----------- Taskfile.yml | 114 ++++++++++++++++++++++++++ codecov.yml | 4 - img/bench.png | Bin 86240 -> 0 bytes 15 files changed, 316 insertions(+), 145 deletions(-) delete mode 100644 .copier-answers.yml create mode 100644 .github/workflows/release.yml delete mode 100644 Makefile create mode 100644 Taskfile.yml delete mode 100644 codecov.yml delete mode 100644 img/bench.png diff --git a/.copier-answers.yml b/.copier-answers.yml deleted file mode 100644 index 726f05a..0000000 --- a/.copier-answers.yml +++ /dev/null @@ -1,14 +0,0 @@ -# Changes here will be overwritten by Copier; NEVER EDIT MANUALLY -_commit: v0.10.3 -_src_path: gh:FollowTheProcess/go_copier -author_email: tomfleet2018@gmail.com -author_name: Tom Fleet -create_github_repo: true -description: Toy clone of coreutils wc in Go -github_url: https://github.com/FollowTheProcess/gowc -github_username: FollowTheProcess -initialise_git_repo: true -license: MIT License -project_name: gowc -project_slug: gowc -project_type: binary diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 3511300..a91d087 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -2,14 +2,12 @@ version: 2 updates: - package-ecosystem: github-actions - directory: "/" + directory: / schedule: - interval: daily + interval: weekly - package-ecosystem: gomod - directory: "/" + directory: / rebase-strategy: auto - allow: - - dependency-type: all schedule: - interval: daily + interval: weekly diff --git a/.github/labels.yml b/.github/labels.yml index aac86cd..bb4444e 100644 --- a/.github/labels.yml +++ b/.github/labels.yml @@ -22,6 +22,10 @@ description: Improvements or additions to documentation color: 0075ca +- name: duplicate + description: This issue or pull request already exists + color: cfd3d7 + - name: enhancement description: New feature or request color: a2eeef @@ -30,6 +34,14 @@ description: Good for newcomers color: 7057ff +- name: help wanted + description: Extra attention is needed + color: 008672 + +- name: invalid + description: This doesn't seem right + color: e4e669 + - name: performance description: Performance color: "016175" @@ -50,6 +62,14 @@ description: Style color: c120e5 +- name: chore + description: General project admin + color: cfd3d7 + - name: testing description: Testing color: b1fc6f + +- name: wontfix + description: This will not be worked on + color: ffffff diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index a21758f..49b40fa 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -1,28 +1,30 @@ name: CI on: + workflow_call: pull_request: push: branches: - main - tags: - - v* concurrency: - group: ${{ github.ref }} + group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true -permissions: read-all +permissions: {} jobs: test: name: Test runs-on: ${{ matrix.os }} + permissions: + contents: read strategy: matrix: os: - ubuntu-latest - macos-latest + - windows-latest steps: - name: Checkout Code @@ -39,6 +41,8 @@ jobs: cov: name: CodeCov runs-on: ubuntu-latest + permissions: + contents: read steps: - name: Checkout Code @@ -56,10 +60,13 @@ jobs: uses: codecov/codecov-action@v4 with: files: ./coverage.out + token: ${{ secrets.CODECOV_TOKEN }} lint: name: Lint runs-on: ubuntu-latest + permissions: + contents: read steps: - name: Checkout Code @@ -77,58 +84,3 @@ jobs: uses: golangci/golangci-lint-action@v6 with: version: latest - - release: - name: Release - runs-on: ubuntu-latest - permissions: - contents: write - - needs: - - test - - cov - - lint - - if: github.event_name == 'push' && contains(github.ref, 'refs/tags/') - - steps: - - name: Checkout Code - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - - name: Fetch Existing Tags - run: git fetch --force --tags - - - name: Install Syft - uses: jaxxstorm/action-install-gh-release@v1.12.0 - with: - repo: anchore/syft - - - name: Parse Release Version - id: version - run: | - VERSION=${GITHUB_REF#refs/tags/v} - echo "version=$VERSION" >> $GITHUB_OUTPUT - - - name: Set up Go - uses: actions/setup-go@v5 - with: - go-version-file: go.mod - - - name: Publish Draft Release - uses: release-drafter/release-drafter@v6 - with: - version: ${{ steps.version.outputs.version }} - publish: true - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - - name: Run GoReleaser - uses: goreleaser/goreleaser-action@v6 - with: - version: latest - args: release --clean - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - HOMEBREW_TAP_TOKEN: ${{ secrets.HOMEBREW_TAP_TOKEN }} diff --git a/.github/workflows/labeler.yml b/.github/workflows/labeler.yml index cfc179e..d2127e0 100644 --- a/.github/workflows/labeler.yml +++ b/.github/workflows/labeler.yml @@ -21,4 +21,4 @@ jobs: - name: Run Labeler uses: crazy-max/ghaction-github-labeler@v5 with: - skip-delete: true + skip-delete: false diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..06b881c --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,68 @@ +name: Release + +on: + push: + tags: + - 'v[0-9]+.[0-9]+.[0-9]+' + +permissions: {} + +jobs: + ci: + name: CI + uses: FollowTheProcess/gowc/.github/workflows/CI.yml@main + secrets: inherit + permissions: + contents: read + + release: + name: Release + runs-on: ubuntu-latest + permissions: + contents: write + pull-requests: read + + needs: + - ci + + steps: + - name: Checkout Code + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Fetch Existing Tags + run: git fetch --force --tags + + - name: Install Syft + uses: jaxxstorm/action-install-gh-release@v1.12.0 + with: + repo: anchore/syft + + - name: Parse Release Version + id: version + run: | + VERSION=${GITHUB_REF#refs/tags/v} + echo "version=$VERSION" >> $GITHUB_OUTPUT + + - name: Set up Go + uses: actions/setup-go@v5 + with: + go-version-file: go.mod + + - name: Publish Draft Release + uses: release-drafter/release-drafter@v6 + with: + version: ${{ steps.version.outputs.version }} + publish: true + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + - name: Run GoReleaser + uses: goreleaser/goreleaser-action@v6 + with: + version: latest + args: release --clean + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + HOMEBREW_TAP_TOKEN: ${{ secrets.HOMEBREW_TAP_TOKEN }} diff --git a/.github/workflows/release_drafter.yml b/.github/workflows/release_drafter.yml index 7bc2efb..c1ae333 100644 --- a/.github/workflows/release_drafter.yml +++ b/.github/workflows/release_drafter.yml @@ -18,6 +18,7 @@ jobs: runs-on: ubuntu-latest permissions: contents: write + pull-requests: read steps: - name: Run Release Drafter uses: release-drafter/release-drafter@v6 diff --git a/.gitignore b/.gitignore index b92d69a..bdc45d5 100755 --- a/.gitignore +++ b/.gitignore @@ -19,6 +19,13 @@ *.out coverage.html +# Taskfile +.task + +# Comparative benchmarks +before.txt +after.txt + # Dependency directories (remove the comment below to include it) # vendor/ diff --git a/.golangci.yml b/.golangci.yml index 2b1d881..131092c 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -15,21 +15,22 @@ linters: - godot - gofumpt - goimports - - gomnd - gosimple - govet - ineffassign - misspell + - mnd - nilerr - nilnil - nolintlint - - nonamedreturns + - nakedret - predeclared - reassign - revive - staticcheck - tagliatelle - tenv + - testpackage - thelper - unconvert - unparam @@ -37,19 +38,90 @@ linters: - whitespace linters-settings: + errcheck: + check-type-assertions: true + check-blank: true + + exhaustive: + check: + - switch + - map + default-signifies-exhaustive: true + gocyclo: min-complexity: 20 staticcheck: - go: "1.21" checks: ["all"] - errcheck: - check-type-assertions: true - check-blank: true - gosimple: checks: ["all"] govet: enable-all: true + + revive: + max-open-files: 256 + ignore-generated-header: true + rules: + - name: argument-limit + disabled: false + arguments: [5] + + - name: atomic + disabled: false + + - name: blank-imports + disabled: false + + - name: call-to-gc + disabled: false + + - name: constant-logical-expr + disabled: false + + - name: context-as-argument + disabled: false + + - name: datarace + disabled: false + + - name: deep-exit + disabled: false + + - name: defer + disabled: false + + - name: dot-imports + disabled: false + + - name: early-return + disabled: false + + - name: exported + arguments: + - checkPrivateReceivers + + - name: modifies-value-receiver + disabled: false + + - name: package-comments + disabled: false + + - name: range + disabled: false + + - name: range-val-in-closure + disabled: false + + - name: range-val-address + disabled: false + + - name: time-equal + disabled: false + + - name: use-any + disabled: false + + - name: waitgroup-by-value + disabled: false diff --git a/.goreleaser.yml b/.goreleaser.yml index 2ad0898..35d6289 100644 --- a/.goreleaser.yml +++ b/.goreleaser.yml @@ -1,3 +1,5 @@ +version: 2 + project_name: gowc before: @@ -9,6 +11,8 @@ builds: dir: "." main: "." binary: gowc + flags: + - -trimpath ldflags: - -s -w - -X main.version={{.Version}} @@ -18,6 +22,7 @@ builds: goos: - linux - darwin + - windows goarch: - "386" - amd64 @@ -31,17 +36,17 @@ brews: name: homebrew-tap token: "{{.Env.HOMEBREW_TAP_TOKEN}}" goarm: "7" - folder: Formula + directory: Formula commit_author: name: Tom Fleet email: tomfleet2018@gmail.com homepage: https://github.com/FollowTheProcess/gowc - description: Toy clone of coreutils wc in Go + description: Implementation of wc in Go license: MIT License install: | bin.install "gowc" test: | - "#{bin}/gowc -version" + "#{bin}/gowc --version" archives: - id: gowc @@ -59,7 +64,7 @@ sboms: documents: - >- {{ .ProjectName }}- - {{- .Version}}- + {{- .Version }}- {{- .Os }}- {{- if eq .Arch "amd64" }}x86_64 {{- else if eq .Arch "386" }}i386 @@ -73,4 +78,4 @@ snapshot: changelog: # The changelog is handled by release drafter - skip: true + disable: true diff --git a/LICENSE b/LICENSE index 6d3afb7..308431c 100644 --- a/LICENSE +++ b/LICENSE @@ -1,7 +1,7 @@ MIT License -Copyright (c) 2023, Tom Fleet +Copyright (c) 2024, Tom Fleet Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/Makefile b/Makefile deleted file mode 100644 index 89313cb..0000000 --- a/Makefile +++ /dev/null @@ -1,48 +0,0 @@ -.PHONY: help tidy fmt test bench lint cover clean check sloc install uninstall -.DEFAULT_GOAL := help - -COVERAGE_DATA := coverage.out -COVERAGE_HTML := coverage.html - -help: ## Show the list of available tasks - @echo "Available Tasks:\n" - @grep -E '^[a-zA-Z_0-9%-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "%-10s %s\n", $$1, $$2}' - -tidy: ## Tidy dependencies in go.mod - go mod tidy - -fmt: ## Run go fmt on all source files - go fmt ./... - -test: ## Run the test suite - go test -race ./... - -bench: ## Run benchmarks - go test ./... -run=None -benchmem -bench . - -lint: ## Run the linters and auto-fix if possible - golangci-lint run --fix - -cover: ## Calculate test coverage and render the html - go test -race -cover -covermode atomic -coverprofile $(COVERAGE_DATA) ./... - go tool cover -html $(COVERAGE_DATA) -o $(COVERAGE_HTML) - open $(COVERAGE_HTML) - -clean: ## Remove build artifacts and other clutter - go clean ./... - rm -rf $(COVERAGE_DATA) $(COVERAGE_HTML) ./bin ./dist - -check: test lint ## Run tests and linting in one go - -sloc: ## Print lines of code (for fun) - find . -name "*.go" | xargs wc -l | sort -nr - -build: ## Compile the project binary - mkdir -p ./bin - goreleaser build --single-target --skip-before --snapshot --clean --output ./bin/gowc - -install: uninstall build ## Install the project on your machine - cp ./bin/gowc ${GOBIN} - -uninstall: ## Uninstall the project from your machine - rm -rf ${GOBIN}/gowc diff --git a/Taskfile.yml b/Taskfile.yml new file mode 100644 index 0000000..1db217e --- /dev/null +++ b/Taskfile.yml @@ -0,0 +1,114 @@ +# https://taskfile.dev + +version: "3" + +vars: + COV_DATA: coverage.out + +tasks: + default: + desc: List all available tasks + silent: true + cmds: + - task --list + + tidy: + desc: Tidy dependencies in go.mod and go.sum + sources: + - "**/*.go" + - go.mod + - go.sum + cmds: + - go mod tidy + + fmt: + desc: Run go fmt on all source files + sources: + - "**/*.go" + preconditions: + - sh: command -v golines + msg: golines not installed, see https://github.com/segmentio/golines + cmds: + - go fmt ./... + - golines . --ignore-generated --write-output + + test: + desc: Run the test suite + sources: + - "**/*.go" + cmds: + - go test -race ./... {{ .CLI_ARGS }} + + build: + desc: Compile the project binary + sources: + - "**/*.go" + - .goreleaser.yml + generates: + - bin + - dist + cmds: + - mkdir -p ./bin + - goreleaser build --single-target --skip before --snapshot --clean --output ./bin/gowc + + bench: + desc: Run all project benchmarks + sources: + - "**/*.go" + cmds: + - go test ./... -run None -benchmem -bench . {{ .CLI_ARGS }} + + lint: + desc: Run the linters and auto-fix if possible + sources: + - "**/*.go" + - .golangci.yml + cmds: + - golangci-lint run --fix + preconditions: + - sh: command -v golangci-lint + msg: golangci-lint not installed, see https://golangci-lint.run/usage/install/#local-installation + + cov: + desc: Calculate test coverage and render the html + generates: + - "{{ .COV_DATA }}" + cmds: + - go test -race -cover -covermode atomic -coverprofile {{ .COV_DATA }} ./... + - go tool cover -html {{ .COV_DATA }} + + check: + desc: Run tests and linting in one + cmds: + - task: test + - task: lint + + sloc: + desc: Print lines of code + cmds: + - fd . -e go | xargs wc -l | sort -nr | head + + clean: + desc: Remove build artifacts and other clutter + cmds: + - go clean ./... + - rm -rf {{ .COV_DATA }} + + install: + desc: Install the project on your machine + deps: + - uninstall + - build + cmds: + - cp ./bin/gowc $GOBIN/gowc + + uninstall: + desc: Uninstall the project from your machine + cmds: + - rm -rf $GOBIN/gowc + + update: + desc: Updates dependencies in go.mod and go.sum + cmds: + - go get -u ./... + - go mody tidy diff --git a/codecov.yml b/codecov.yml deleted file mode 100644 index a3f27a1..0000000 --- a/codecov.yml +++ /dev/null @@ -1,4 +0,0 @@ -ignore: - # This is actually tested in main_test.go, but by compiling the program and executing the compiled version - # in the tests with various args, which the go coverage tool can't pick up on - - main.go diff --git a/img/bench.png b/img/bench.png deleted file mode 100644 index 1fa350e651e1d6b82771553e6e5c450b56ab6b0d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 86240 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 Vd-Hi|$rcayP Date: Sun, 11 Aug 2024 17:14:05 +0100 Subject: [PATCH 2/3] Fix windows? --- main_test.go | 34 ++++++++++++++++++++++------------ 1 file changed, 22 insertions(+), 12 deletions(-) diff --git a/main_test.go b/main_test.go index 2a3156f..0947fd1 100644 --- a/main_test.go +++ b/main_test.go @@ -12,20 +12,30 @@ import ( "github.com/FollowTheProcess/test" ) -const binName = "./gowc" +const binName = "gowc" + +var binPath string func TestMain(m *testing.M) { - build := exec.Command("go", "build", `-ldflags=-X 'main.version=0.1.0' -X 'main.commit=blah'`, "-o", binName) + cwd, err := os.Getwd() + if err != nil { + fmt.Fprintf(os.Stderr, "could not get cwd: %v", err) + os.Exit(1) + } + bin := filepath.Join(cwd, binName) + build := exec.Command("go", "build", `-ldflags=-X 'main.version=0.1.0' -X 'main.commit=blah'`, "-o", bin) build.Stdout = os.Stdout build.Stderr = os.Stderr if err := build.Run(); err != nil { - fmt.Fprintf(os.Stderr, "failed to compile %s: %v\n", binName, err) + fmt.Fprintf(os.Stderr, "failed to compile %s: %v\n", bin, err) os.Exit(1) } + binPath = bin + result := m.Run() - os.Remove(binName) + os.Remove(binPath) os.Exit(result) } @@ -33,7 +43,7 @@ func TestMain(m *testing.M) { func TestHelp(t *testing.T) { stdout := &bytes.Buffer{} - cmd := exec.Command(binName, "-help") + cmd := exec.Command(binPath, "-help") cmd.Stdout = stdout err := cmd.Run() test.Ok(t, err) @@ -47,7 +57,7 @@ func TestHelp(t *testing.T) { func TestVersion(t *testing.T) { stdout := &bytes.Buffer{} - cmd := exec.Command(binName, "-version") + cmd := exec.Command(binPath, "-version") cmd.Stdout = stdout err := cmd.Run() test.Ok(t, err) @@ -59,7 +69,7 @@ func TestVersion(t *testing.T) { } func TestBadFlag(t *testing.T) { - cmd := exec.Command(binName, "-bad") + cmd := exec.Command(binPath, "-bad") if err := cmd.Run(); err == nil { t.Fatal("-bad did not error") } @@ -69,7 +79,7 @@ func TestCountStdin(t *testing.T) { stdout := &bytes.Buffer{} stderr := &bytes.Buffer{} - cmd := exec.Command(binName) + cmd := exec.Command(binPath) cmd.Stdin = strings.NewReader("hello there\n") cmd.Stdout = stdout cmd.Stderr = stderr @@ -88,7 +98,7 @@ func TestCountStdinJSON(t *testing.T) { stdout := &bytes.Buffer{} stderr := &bytes.Buffer{} - cmd := exec.Command(binName, "-json") + cmd := exec.Command(binPath, "-json") cmd.Stdin = strings.NewReader("hello there\n") cmd.Stdout = stdout cmd.Stderr = stderr @@ -106,7 +116,7 @@ func TestCountStdinJSON(t *testing.T) { func TestCountStdinEmpty(t *testing.T) { stderr := &bytes.Buffer{} - cmd := exec.Command(binName) + cmd := exec.Command(binPath) cmd.Stderr = stderr if err := cmd.Run(); err == nil { @@ -126,7 +136,7 @@ func TestCountFile(t *testing.T) { mobyDick := filepath.Join("internal", "count", "testdata", "moby_dick.txt") - cmd := exec.Command(binName, mobyDick) + cmd := exec.Command(binPath, mobyDick) cmd.Stdout = stdout cmd.Stderr = stderr @@ -146,7 +156,7 @@ func TestCountFileJSON(t *testing.T) { mobyDick := filepath.Join("internal", "count", "testdata", "moby_dick.txt") - cmd := exec.Command(binName, "-json", mobyDick) + cmd := exec.Command(binPath, "-json", mobyDick) cmd.Stdout = stdout cmd.Stderr = stderr From 67401939cb9b0346e4ae6b27f2d3ac45662ee0fb Mon Sep 17 00:00:00 2001 From: Tom Fleet Date: Sun, 11 Aug 2024 17:16:44 +0100 Subject: [PATCH 3/3] Okay goodbye windows --- .github/workflows/CI.yml | 1 - .goreleaser.yml | 1 - 2 files changed, 2 deletions(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 49b40fa..8a68cc8 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -24,7 +24,6 @@ jobs: os: - ubuntu-latest - macos-latest - - windows-latest steps: - name: Checkout Code diff --git a/.goreleaser.yml b/.goreleaser.yml index 35d6289..1e12b70 100644 --- a/.goreleaser.yml +++ b/.goreleaser.yml @@ -22,7 +22,6 @@ builds: goos: - linux - darwin - - windows goarch: - "386" - amd64