chore: prepare release v1.1.0
Release / build (amd64, freebsd) (push) Failing after 1m2s
Release / build (arm64, freebsd) (push) Canceled after 0s
Release / build (arm64, linux) (push) Canceled after 0s
Release / build (loong64, linux) (push) Canceled after 0s
Release / build (riscv64, freebsd) (push) Canceled after 0s
Release / build (riscv64, linux) (push) Canceled after 0s
Release / release (push) Canceled after 0s
Release / build (amd64, linux) (push) Canceled after 17s

This commit is contained in:
2026-07-26 21:13:02 +02:00
parent 9457d3f8cc
commit 506ea08c6d
2 changed files with 47 additions and 1 deletions
+46
View File
@@ -5,6 +5,50 @@ All notable changes to **nuntius** are documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [development]
## [1.1.0] — 2026-07-26
### Added
- **RISC-V and LoongArch builds** — CI now produces binaries for `linux/riscv64`,
`linux/loong64`, and `freebsd/riscv64` in addition to the existing four
targets.
- **80 % coverage gate** — `just test` and CI enforce ≥ 80 % test coverage on
`internal/` and `pkg/` packages.
- **Handler and email test suites** — 22 handler tests covering CORS, rate
limiting, validation, honeypot, and send/store paths via mock interfaces.
12 email composition tests covering all four form types.
### Changed
- **Module migrated to sourcedock.dev** — all imports and documentation now
reference `sourcedock.dev/petrbalvin/nuntius`.
- **CI migrated from Forgejo to Gitea** — workflows now live in
`.gitea/workflows/`, run on the `fedora` runner, and use the standard
`actions/*` short form.
- **Dependency bump** — `interpres` updated to v1.1.1.
- **IPv6-first** — the server now binds `[::]:port` for explicit dual-stack.
- **Installer rewritten in Python** — `install.py` replaces `install.sh`.
- **nginx → Caddy** — all documentation and the installer now use Caddy as the
recommended reverse proxy.
### Fixed
- **Rate limiter memory leak** — a periodic cleanup goroutine removes expired
IP entries from the token-bucket map.
- **Silent template errors** — `compose()` now produces a fallback HTML message
instead of silently discarding template execution errors.
- **Silent JSON encoding errors** — all `json.NewEncoder(w).Encode()` calls now
log errors instead of discarding them.
- **CI formatting gate** — `gofmt -l` in the test workflow now actually fails
when it finds unformatted files.
- **Missing `just fmt` recipe** — added `gofmt -w` target.
- **Copyright headers** — added to all Go and Python source files.
[development]: https://sourcedock.dev/petrbalvin/nuntius/compare/v1.1.0...development
[1.1.0]: https://sourcedock.dev/petrbalvin/nuntius/releases/tag/v1.1.0
## [1.0.0] — 2026-06-20 ## [1.0.0] — 2026-06-20
First stable release of nuntius: a small, opinionated, modular contact form First stable release of nuntius: a small, opinionated, modular contact form
@@ -49,4 +93,6 @@ secrets. Its only dependency outside the standard library is the first-party
- **docs/** — `architecture.md`, `configuration.md`, `api-reference.md`, - **docs/** — `architecture.md`, `configuration.md`, `api-reference.md`,
`deployment.md`, `security.md`, `library-usage.md`. `deployment.md`, `security.md`, `library-usage.md`.
[1.1.0]: https://sourcedock.dev/petrbalvin/nuntius/releases/tag/v1.1.0
[1.0.0]: https://sourcedock.dev/petrbalvin/nuntius/releases/tag/v1.0.0 [1.0.0]: https://sourcedock.dev/petrbalvin/nuntius/releases/tag/v1.0.0
+1 -1
View File
@@ -10,4 +10,4 @@ package version
const Name = "nuntius" const Name = "nuntius"
// Version is the nuntius release version. Follows SemVer. // Version is the nuntius release version. Follows SemVer.
var Version = "1.0.0" var Version = "1.1.0"