|
|
|
@@ -1348,9 +1348,7 @@ apply. The directory is `3p/` rather than `vendor/` because Go treats a root
|
|
|
|
|
where `go:embed` picks it up. `script/test`, `make build` and `make dev` run
|
|
|
|
|
it first, and the Dockerfile builds through `make test` and `make build`, so
|
|
|
|
|
nothing downloads Alpine.js. The extracted file is not committed, and
|
|
|
|
|
`.dockerignore` keeps any host copy out of the build context. `static/static.go`
|
|
|
|
|
names every file it embeds, so a build that skips the extraction, such as a
|
|
|
|
|
bare `go build`, fails with an error naming `js/alpine.min.js`.
|
|
|
|
|
`.dockerignore` keeps any host copy out of the build context.
|
|
|
|
|
|
|
|
|
|
To move to a new version: download
|
|
|
|
|
`https://registry.npmjs.org/@alpinejs/csp/-/csp-<version>.tgz`, check it against
|
|
|
|
@@ -1885,12 +1883,10 @@ GORM's soft delete adds `deleted_at IS NULL` to these queries; retention
|
|
|
|
|
leaves it out. SQLite keeps no statistics on these tables, and without them it
|
|
|
|
|
rates the `deleted_at` index, which every live row matches, above an index on
|
|
|
|
|
a column matched against several values or compared with a range. So every
|
|
|
|
|
index but the last also covers `deleted_at`. It comes second in the `event_id`
|
|
|
|
|
and `delivery_id` indexes, so that retention can use them without it. The event
|
|
|
|
|
log's count, the one query on the `resubmitted_from_id` index, always carries
|
|
|
|
|
`deleted_at IS NULL` and uses both columns. In the statistics' `events` index
|
|
|
|
|
`deleted_at` comes first, because they compare `created_at` with a range (`>=`)
|
|
|
|
|
and SQLite narrows by a range only on the last column it uses.
|
|
|
|
|
index but the last also covers `deleted_at`. It comes second, so that
|
|
|
|
|
retention can use the index without it, except in the statistics' `events`
|
|
|
|
|
index, where they compare `created_at` with a range (`>=`) and SQLite narrows
|
|
|
|
|
by a range only on the last column it uses.
|
|
|
|
|
|
|
|
|
|
#### Common Fields
|
|
|
|
|
|
|
|
|
@@ -3384,9 +3380,8 @@ version is fixed independently of the compiler's:
|
|
|
|
|
|
|
|
|
|
1. **Lint stage** (`golangci/golangci-lint:v2.12.2`, Debian-based) —
|
|
|
|
|
installs `make`, downloads dependencies, copies the source, and runs
|
|
|
|
|
`make fmt-check`, then `script/assets` to extract Alpine.js from
|
|
|
|
|
`3p/`, then `golangci-lint config verify` and `golangci-lint run`,
|
|
|
|
|
both with `--network=none`.
|
|
|
|
|
`make fmt-check`, then `golangci-lint config verify` and
|
|
|
|
|
`golangci-lint run`, both with `--network=none`.
|
|
|
|
|
2. **Builder stage** (`golang:1.26.1-bookworm`) — depends on the lint
|
|
|
|
|
stage passing (it copies a file from it), runs `make test` and
|
|
|
|
|
`make build` (both extract Alpine.js from `3p/` first), and finally
|
|
|
|
|