Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ jobs:
- name: Install golangci-lint
uses: golangci/golangci-lint-action@ba0d7d2ec06a0ea1cb5fa41b2e4a3ab91d21278a # v9.3.0
with:
version: v2.11.1 # keep in lockstep with test.yml Lint
version: v2.13.1 # keep in lockstep with test.yml Lint
install-only: true

- name: Cache BATS
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ jobs:
- name: Run golangci-lint
uses: golangci/golangci-lint-action@ba0d7d2ec06a0ea1cb5fa41b2e4a3ab91d21278a # v9.3.0
with:
version: v2.11.1
version: v2.13.1

lint-actions:
name: GitHub Actions audit
Expand Down
2 changes: 1 addition & 1 deletion .mise.toml
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
[tools]
go = "1.26.6"
go = "1.27.0"
goreleaser = "2.15.4"
2 changes: 1 addition & 1 deletion .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ default_install_hook_types: [pre-commit, pre-push]

repos:
- repo: https://github.com/golangci/golangci-lint
rev: v2.11.1
rev: v2.13.1
hooks:
- id: golangci-lint
args: [--timeout=5m]
Expand Down
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -258,7 +258,7 @@ bench-compare:
# so local and CI findings agree. govulncheck stays @latest on purpose: pinning
# it only delays new advisories and Go version support.
tools:
go install github.com/golangci/golangci-lint/v2/cmd/golangci-lint@v2.11.1
go install github.com/golangci/golangci-lint/v2/cmd/golangci-lint@v2.13.1
go install golang.org/x/vuln/cmd/govulncheck@latest
@echo "For gitleaks, install via: brew install gitleaks (or see https://github.com/gitleaks/gitleaks)"
@echo "For benchstat: go install golang.org/x/perf/cmd/benchstat@latest"
Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -95,9 +95,9 @@ nix profile install github:basecamp/hey-cli
go install github.com/basecamp/hey-cli/cmd/hey@latest
```

**From source** (requires Go 1.26+; [mise](https://mise.jdx.dev) installs the right version):
**From source** (requires Go 1.27+; [mise](https://mise.jdx.dev) installs the right version):
```bash
mise install # install Go 1.26
mise install # install Go 1.27
make install # build and install into /usr/local/bin/hey
```

Expand Down
2 changes: 1 addition & 1 deletion go.mod
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
module github.com/basecamp/hey-cli

go 1.26.6
go 1.27.0

require (
charm.land/bubbles/v2 v2.1.1
Expand Down
22 changes: 11 additions & 11 deletions nix/go.nix
Original file line number Diff line number Diff line change
@@ -1,28 +1,28 @@
{ lib, fetchurl, go_1_26 }:
{ lib, fetchurl, go_1_27 }:

# The Go toolchain shared by the package build and the dev shell.
#
# go.mod's `go` directive is the floor; nixpkgs-unstable lagged it at 1.26.5
# when this flake was written, so the toolchain is rebuilt from the upstream
# go.mod's `go` directive is the floor; nixpkgs-unstable lagged it at 1.27rc3
# when go.mod moved to 1.27.0, so the toolchain is rebuilt from the upstream
# source tarball until nixpkgs catches up. The override is conditional and
# drops itself once go_1_26 reaches 1.26.6 — delete this file's override and
# return go_1_26 directly after a `nix flake update` that makes
# drops itself once go_1_27 reaches 1.27.0 — delete this file's override and
# return go_1_27 directly after a `nix flake update` that makes
# `lib.versionOlder` false. Keep minGo in step with go.mod: a toolchain bump
# that outpaces flake.lock breaks the build without touching go.mod or go.sum,
# which is why the nix-build CI job runs on every go.mod change and on tags.
#
# Both consumers must use this one derivation. The dev shell once listed
# go_1_26 directly, which handed `nix develop` a Go older than go.mod's
# the nixpkgs Go directly, which handed `nix develop` a Go older than go.mod's
# directive — `make build` then failed under GOTOOLCHAIN=local or offline.
let
minGo = "1.26.6";
minGo = "1.27.0";
in
if lib.versionOlder go_1_26.version minGo
then go_1_26.overrideAttrs (_: {
if lib.versionOlder go_1_27.version minGo
then go_1_27.overrideAttrs (_: {
version = minGo;
src = fetchurl {
url = "https://go.dev/dl/go${minGo}.src.tar.gz";
hash = "sha256-oHIcVMaIkBRI13rZs+x+p8R0cwdV/4kTgukuy5P/LLE=";
hash = "sha256-cAJAPXzERSnvbSb2mkSBgmM5Xq18FsBaWAiuBH6+sOU=";
};
})
else go_1_26
else go_1_27
2 changes: 1 addition & 1 deletion scripts/check-lint-lockstep.sh
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ WORKFLOW_DIR=".github/workflows"
# The oldest golangci-lint every workflow may pin. Raising this is a deliberate
# act, not housekeeping: move it in the same commit that moves the workflow
# pins, so the floor and the pins never disagree in a merged tree.
MIN_VERSION="v2.11.1"
MIN_VERSION="v2.13.1"

# Compare numerically, field by field, never lexically. As strings v2.9.0
# sorts *above* v2.11.1 — 9 > 1 — so a lexical test would wave through the exact
Expand Down
12 changes: 6 additions & 6 deletions tests/e2e/check_release_lockstep.bats
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ setup() {
cat > .pre-commit-config.yaml <<'YAML'
repos:
- repo: https://github.com/golangci/golangci-lint
rev: v2.11.1
rev: v2.13.1
hooks:
- id: golangci-lint
YAML
Expand All @@ -24,7 +24,7 @@ jobs:
steps:
- uses: golangci/golangci-lint-action@abc # v9.3.0
with:
version: v2.11.1
version: v2.13.1
- run: scripts/check-release-lockstep.sh
YAML
cat > .github/workflows/release.yml <<'YAML'
Expand All @@ -33,7 +33,7 @@ jobs:
steps:
- uses: golangci/golangci-lint-action@abc # v9.3.0
with:
version: v2.11.1
version: v2.13.1
install-only: true
- run: scripts/publish.sh
release:
Expand All @@ -56,7 +56,7 @@ teardown() {
run scripts/check-release-lockstep.sh
[ "$status" -eq 0 ]
[[ "$output" == *"goreleaser pin in lockstep (v2.15.4)"* ]]
[[ "$output" == *"pre-commit golangci-lint rev in lockstep (v2.11.1)"* ]]
[[ "$output" == *"pre-commit golangci-lint rev in lockstep (v2.13.1)"* ]]
[[ "$output" == *"release lockstep check passed"* ]]
}

Expand All @@ -70,15 +70,15 @@ teardown() {
}

@test "fails when the pre-commit golangci-lint rev drifts from CI" {
sed -i.bak 's/rev: v2.11.1/rev: v2.1.6/' .pre-commit-config.yaml && rm -f .pre-commit-config.yaml.bak
sed -i.bak 's/rev: v2.13.1/rev: v2.1.6/' .pre-commit-config.yaml && rm -f .pre-commit-config.yaml.bak
run scripts/check-release-lockstep.sh
[ "$status" -eq 1 ]
[[ "$output" == *"golangci-lint pins disagree"* ]]
[[ "$output" == *"v2.1.6"* ]]
}

@test "inherits the golangci-lint workflow lockstep failure" {
sed -i.bak 's/version: v2.11.1/version: v2.9.0/' .github/workflows/release.yml && rm -f .github/workflows/release.yml.bak
sed -i.bak 's/version: v2.13.1/version: v2.9.0/' .github/workflows/release.yml && rm -f .github/workflows/release.yml.bak
run scripts/check-release-lockstep.sh
[ "$status" -eq 1 ]
[[ "$output" == *"golangci-lint pins disagree across workflows"* ]]
Expand Down
2 changes: 1 addition & 1 deletion tests/smoke/go.mod
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
module github.com/basecamp/hey-cli/tests/smoke

go 1.26.1
go 1.27.0

require (
github.com/chromedp/cdproto v0.0.0-20250803210736-d308e07a266d
Expand Down
Loading