From 506ea08c6d53a7ac0b81b818c03ebf9810e405d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20Balv=C3=ADn?= Date: Sun, 26 Jul 2026 21:13:02 +0200 Subject: [PATCH] chore: prepare release v1.1.0 --- CHANGELOG.md | 46 +++++++++++++++++++++++++++++++++++++ internal/version/version.go | 2 +- 2 files changed, 47 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b63abcf..961ffa7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -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/), 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 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`, `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 diff --git a/internal/version/version.go b/internal/version/version.go index 47a32c7..4313dcc 100644 --- a/internal/version/version.go +++ b/internal/version/version.go @@ -10,4 +10,4 @@ package version const Name = "nuntius" // Version is the nuntius release version. Follows SemVer. -var Version = "1.0.0" +var Version = "1.1.0"