Skip to content
Merged
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
4 changes: 2 additions & 2 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@

## Validation

- [ ] `just check`
- [ ] `just ci` when practical
- [ ] `mage check`
- [ ] `mage ci` when practical
- [ ] docs updated if behavior or examples changed
- [ ] governance, CI, or release impact explained if sensitive maintainer surfaces changed

Expand Down
16 changes: 8 additions & 8 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,16 +21,16 @@ jobs:
with:
go-version-file: go.mod
cache: true
- uses: taiki-e/install-action@just
- name: Install repo tooling
shell: bash
run: |
go install github.com/magefile/mage@v1.17.0
go install mvdan.cc/gofumpt@v0.9.2
go install github.com/golangci/golangci-lint/cmd/golangci-lint@v1.64.8
echo "$(go env GOPATH)/bin" >> "$GITHUB_PATH"
- name: Run smoke gate
shell: bash
run: just check
run: mage check

check-macos:
name: check (macos-latest)
Expand All @@ -41,16 +41,16 @@ jobs:
with:
go-version-file: go.mod
cache: true
- uses: taiki-e/install-action@just
- name: Install repo tooling
shell: bash
run: |
go install github.com/magefile/mage@v1.17.0
go install mvdan.cc/gofumpt@v0.9.2
go install github.com/golangci/golangci-lint/cmd/golangci-lint@v1.64.8
echo "$(go env GOPATH)/bin" >> "$GITHUB_PATH"
- name: Run macOS compatibility gate
shell: bash
run: just check
run: mage check

check-windows:
name: check (windows-latest)
Expand All @@ -61,7 +61,6 @@ jobs:
with:
go-version-file: go.mod
cache: true
- uses: taiki-e/install-action@just
- name: Normalize checkout line endings
shell: bash
run: |
Expand All @@ -70,12 +69,13 @@ jobs:
- name: Install repo tooling
shell: bash
run: |
go install github.com/magefile/mage@v1.17.0
go install mvdan.cc/gofumpt@v0.9.2
go install github.com/golangci/golangci-lint/cmd/golangci-lint@v1.64.8
echo "$(go env GOPATH)/bin" >> "$GITHUB_PATH"
- name: Run Windows compatibility gate
shell: bash
run: just check
run: mage check

full-gate:
name: full gate (ubuntu-latest)
Expand All @@ -90,14 +90,14 @@ jobs:
with:
go-version-file: go.mod
cache: true
- uses: taiki-e/install-action@just
- name: Install repo tooling
shell: bash
run: |
go install github.com/magefile/mage@v1.17.0
go install mvdan.cc/gofumpt@v0.9.2
go install github.com/golangci/golangci-lint/cmd/golangci-lint@v1.64.8
go install github.com/goreleaser/goreleaser/v2@v2.14.3
echo "$(go env GOPATH)/bin" >> "$GITHUB_PATH"
- name: Run canonical CI gate
shell: bash
run: just ci
run: mage ci
4 changes: 2 additions & 2 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,17 +23,17 @@ jobs:
with:
go-version-file: go.mod
cache: true
- uses: taiki-e/install-action@just
- name: Install repo tooling
shell: bash
run: |
go install github.com/magefile/mage@v1.17.0
go install mvdan.cc/gofumpt@v0.9.2
go install github.com/golangci/golangci-lint/cmd/golangci-lint@v1.64.8
go install github.com/goreleaser/goreleaser/v2@v2.14.3
echo "$(go env GOPATH)/bin" >> "$GITHUB_PATH"
- name: Run canonical CI gate
shell: bash
run: just ci
run: mage ci
- name: Release with GoReleaser
uses: goreleaser/goreleaser-action@v7
with:
Expand Down
10 changes: 5 additions & 5 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -118,11 +118,11 @@ When integrating consumer concepts, keep `autent` generic:

## 6) Testing and Automation

- Use `just` recipes as the source of truth for local automation
- During implementation, run `just check` after meaningful increments when practical
- When Go code, `Justfile`, or workflow files change, finish with `just ci` before handoff if the environment supports it
- Keep `just ci` aligned with the required GitHub Actions gate
- Prefer package-scoped loops with `just test-pkg <pkg>` for fast iteration
- Use `mage` targets as the source of truth for local automation
- During implementation, run `mage check` after meaningful increments when practical
- When Go code, `magefiles/`, or workflow files change, finish with `mage ci` before handoff if the environment supports it
- Keep `mage ci` aligned with the required GitHub Actions gate
- Prefer package-scoped loops with `mage test-pkg <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

Expand Down
2 changes: 1 addition & 1 deletion CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
/AGENTS.md @evanschultz
/SECURITY.md @evanschultz
/CODE_OF_CONDUCT.md @evanschultz
/Justfile @evanschultz
/magefiles/ @evanschultz
/.goreleaser.yml @evanschultz
/docs/ @evanschultz
/cmd/ @evanschultz
32 changes: 20 additions & 12 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,15 +29,23 @@ User-facing docs live in:

## Local Setup

Required local tools are driven by the `Justfile`.
Required local tools are driven by `magefiles/`.
The main local gates are:

```bash
just check
just ci
mage check
mage ci
```

`just ci` includes release configuration validation.
Install Mage locally before using the repo targets:

```bash
go install github.com/magefile/mage@v1.17.0
```

Running `mage` from the repository root will auto-discover `magefiles/` and keep the repository root as the working directory.

`mage ci` includes release configuration validation.
Install GoReleaser locally if you do not already have it.
On macOS with Homebrew, for example:

Expand All @@ -48,9 +56,9 @@ brew install goreleaser
For faster loops, prefer package-scoped tests:

```bash
just test-pkg ./app
just test-pkg ./domain
just test-pkg ./sqlite
mage test-pkg ./app
mage test-pkg ./domain
mage test-pkg ./sqlite
```

## Coding Expectations
Expand All @@ -77,9 +85,9 @@ At minimum, consider whether the change affects:

Before asking for review:

- run `just check`
- run `just ci` when practical
- keep GitHub Actions and `Justfile` behavior aligned
- run `mage check`
- run `mage ci` when practical
- keep GitHub Actions and `magefiles/` behavior aligned

The release workflow exists to validate and publish tagged releases.
Do not add unrelated packaging or deployment behavior into the core library CI path.
Expand Down Expand Up @@ -109,8 +117,8 @@ Contributor flow:

1. create a branch from `main`
2. make the change
3. run `just check`
4. run `just ci` when practical
3. run `mage check`
4. run `mage ci` when practical
5. open a pull request with `gh pr create`

Example:
Expand Down
152 changes: 0 additions & 152 deletions Justfile

This file was deleted.

20 changes: 16 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -103,13 +103,13 @@ For subagent workflows, the recommended pattern is to issue a short-lived delega
`autent` uses three different confidence levels when talking about platform support:

- build confidence: GoReleaser cross-builds the example CLI release artifacts for macOS, Linux, and Windows
- CI confidence: `just check` runs in GitHub Actions on macOS, Linux, and Windows runners, while the heavier `just ci` gate remains Ubuntu-only
- CI confidence: `mage check` runs in GitHub Actions on macOS, Linux, and Windows runners, while the heavier `mage ci` gate remains Ubuntu-only
- human runtime confidence: the documented example CLI flow has been exercised by hand on macOS

That means the project currently has:

- cross-built example CLI artifacts for the major desktop and server targets
- automated `just check` coverage on GitHub-hosted macOS, Linux, and Windows runners
- automated `mage check` coverage on GitHub-hosted macOS, Linux, and Windows runners
- human-verified runtime behavior for the documented CLI flow on macOS

Be precise when describing support.
Expand Down Expand Up @@ -152,9 +152,21 @@ The Go module release surface is the SemVer tag itself; GoReleaser additionally

## Local Commands

Install Mage locally first:

```bash
go install github.com/magefile/mage@v1.17.0
```

Repository automation lives in `magefiles/`, and running `mage` from the repo root will auto-discover it.

Then use the repository automation targets:

```bash
just check
just ci
mage -l
mage check
mage ci
mage test-pkg ./app
```

## SQLite Integration Modes
Expand Down
Loading