diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 818ea82..b90aee5 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -12,14 +12,27 @@ permissions: contents: read jobs: + library-floor: + name: library floor (ubuntu-latest, go1.24.0) + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v6 + - uses: actions/setup-go@v6 + with: + go-version: '1.24.0' + cache: true + - name: Validate public module minimum Go version + shell: bash + run: go test ./... + check: - name: check (ubuntu-latest) + name: check (ubuntu-latest, go1.26.1) runs-on: ubuntu-latest steps: - uses: actions/checkout@v6 - uses: actions/setup-go@v6 with: - go-version-file: go.mod + go-version: '1.26.1' cache: true - name: Install repo tooling shell: bash @@ -33,13 +46,13 @@ jobs: run: mage check check-macos: - name: check (macos-latest) + name: check (macos-latest, go1.26.1) runs-on: macos-latest steps: - uses: actions/checkout@v6 - uses: actions/setup-go@v6 with: - go-version-file: go.mod + go-version: '1.26.1' cache: true - name: Install repo tooling shell: bash @@ -53,13 +66,13 @@ jobs: run: mage check check-windows: - name: check (windows-latest) + name: check (windows-latest, go1.26.1) runs-on: windows-latest steps: - uses: actions/checkout@v6 - uses: actions/setup-go@v6 with: - go-version-file: go.mod + go-version: '1.26.1' cache: true - name: Normalize checkout line endings shell: bash @@ -78,9 +91,10 @@ jobs: run: mage check full-gate: - name: full gate (ubuntu-latest) + name: full gate (ubuntu-latest, go1.26.1) runs-on: ubuntu-latest needs: + - library-floor - check - check-macos - check-windows @@ -88,7 +102,7 @@ jobs: - uses: actions/checkout@v6 - uses: actions/setup-go@v6 with: - go-version-file: go.mod + go-version: '1.26.1' cache: true - name: Install repo tooling shell: bash diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index af83ac9..1f95936 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -21,7 +21,7 @@ jobs: fetch-depth: 0 - uses: actions/setup-go@v6 with: - go-version-file: go.mod + go-version: '1.26.1' cache: true - name: Install repo tooling shell: bash diff --git a/AGENTS.md b/AGENTS.md index b3b14fb..f6597cf 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -125,6 +125,8 @@ When integrating consumer concepts, keep `autent` generic: - Prefer package-scoped loops with `mage test-pkg ` for fast iteration - Keep at least 70% coverage for packages with substantive executable logic - Do not add meaningless tests just to force doc-only or marker packages over the coverage threshold +- Keep the public root module compatible with Go `1.24` or newer unless the dependency floor changes +- Treat the contributor-facing `magefiles/` module separately; it currently requires Go `1.26.1` because of `laslig` For non-trivial changes, use subagents when they help parallelize bounded work. Subagents are optional, not mandatory, for very small edits. diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 6770274..519cddd 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -29,7 +29,10 @@ User-facing docs live in: ## Local Setup +The public `github.com/evanmschultz/autent` module currently targets Go `1.24` or newer. + Required local tools are driven by `magefiles/`. +That contributor automation module currently requires Go `1.26.1` because it depends on `github.com/evanmschultz/laslig` for human-facing task output. The main local gates are: ```bash @@ -37,7 +40,7 @@ mage check mage ci ``` -Install Mage locally before using the repo targets: +Install Mage locally with a Go `1.26.1` or newer toolchain before using the repo targets: ```bash go install github.com/magefile/mage@v1.17.0 diff --git a/README.md b/README.md index 5ff6734..3ac5fad 100644 --- a/README.md +++ b/README.md @@ -150,9 +150,17 @@ No separate package registry setup is required. The Go module release surface is the SemVer tag itself; GoReleaser additionally publishes GitHub release assets such as the example CLI binary for people who want them. `pkg.go.dev` will index tagged versions after the module is fetched or discovered publicly, and it will render the root-package docs, exported facade types, and subpackage docs from this repository's public Go API. +## Go Version Support + +The public `github.com/evanmschultz/autent` module currently requires Go `1.24` or newer. + +Repository contributor automation is a separate concern. +The committed `magefiles/` module currently requires Go `1.26.1` because its human-facing task output depends on `github.com/evanmschultz/laslig`. +That higher tooling floor does not change the minimum Go version for applications that import `autent` as a library. + ## Local Commands -Install Mage locally first: +If you are contributing to this repository, install Mage locally with a Go `1.26.1` or newer toolchain first: ```bash go install github.com/magefile/mage@v1.17.0 diff --git a/go.mod b/go.mod index 745aa70..737a29e 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/evanmschultz/autent -go 1.26.1 +go 1.24.0 require modernc.org/sqlite v1.46.1