11 Commits
Author SHA1 Message Date
Rene Nochebuena d5c674bbed release: v1.7.1 (coordinated lockstep bump) 2026-08-18 18:45:09 -06:00
Rene Nochebuena 6192a7f552 release: v1.7.0 (coordinated lockstep bump) 2026-08-18 17:57:34 -06:00
Rene Nochebuena b9ad3f00b4 release: v1.6.0 (coordinated lockstep bump) 2026-08-13 23:12:47 -06:00
Rene Nochebuena 08646a8677 chore(smtp): framework version alignment to v1.5.0 2026-08-12 17:56:28 -06:00
Rene Nochebuena a3ec791216 chore(smtp): dependency refresh; framework version alignment to v1.4.0 2026-08-12 15:29:57 -06:00
Rene Nochebuena 05d500a9e4 chore(smtp): framework version alignment to v1.3.0 2026-08-08 10:49:03 -06:00
Rene Nochebuena c04400b888 chore(smtp): framework version alignment to v1.2.0 2026-08-08 02:25:29 -06:00
Rene Nochebuena 7d6142d922 chore(smtp): framework version alignment to v1.1.3 2026-08-08 01:27:04 -06:00
Rene Nochebuena 0c5177a415 chore(smtp): framework version alignment to v1.1.2 2026-08-08 00:43:59 -06:00
Rene Nochebuena ce72260b0b docs(smtp): fix wiring doc examples; align to v1.1.1 2026-08-07 23:32:57 -06:00
Rene Nochebuena af6f5ab9e6 docs(smtp): fix fictional launcher.Register/health.Register in doc examples (#2)
The package-doc examples showed a fictional launcher.Register / health.Register
API (and launcher.Append as a package func). Corrected to the real wiring:
lc.Append + web/health.NewHandler(...).ServeHTTP.

Documentation-only. No code, API, or dependency changes; version stays v1.1.0
(the v1.1.0 tag is moved to include this fix). Verified by compiling the
corrected pattern against the real API.

Reviewed-on: #2
Co-authored-by: Rene Nochebuena Guerrero <rene@nochebuena.dev>
Co-committed-by: Rene Nochebuena Guerrero <rene@nochebuena.dev>
2026-08-07 22:19:52 -06:00
5 changed files with 122 additions and 11 deletions
+106
View File
@@ -0,0 +1,106 @@
# Changelog — einherjar/smtp
All notable changes to this module are documented here.
Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
This module adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
---
## [1.7.1] — 2026-08-14
Patch — coordinated framework release (lockstep versioning). No changes to this module's own API.
### Changed
- Bumped einherjar dependencies to v1.7.1. The change in this release is `spa-server`'s corrected
MIME type for the PWA web app manifest (`.webmanifest` → `application/manifest+json`).
## [1.7.0] — 2026-08-14
Minor — coordinated framework release (lockstep versioning). No changes to this module's own API.
### Changed
- Bumped einherjar dependencies to v1.7.0. The behavioural changes in this release are in `spa-server`
(per-file Cache-Control, a navigation-scoped SPA fallback, nosniff, and a non-root image).
## [1.6.0] — 2026-08-13
Minor — coordinated framework release (lockstep versioning). No changes to this module's own API.
### Changed
- Bumped einherjar dependencies to v1.6.0. The framework-wide change in this release is
`web`'s new `httputil.Bind` / `httputil.BindEmpty` request-binding adapters.
## [1.5.0] — 2026-08-09
Minor — coordinated framework version alignment. No code or API changes in this module.
### Changed
- Bumped `contracts`, `core` to v1.5.0.
## [1.4.0] — 2026-08-09
Minor — coordinated framework release: dependency refresh + lockstep version alignment.
### Changed
- Refreshed dependencies to their latest minor/patch where available.
- Bumped `contracts`, `core` to v1.4.0.
## [1.3.0] — 2026-08-08
Minor — coordinated framework version alignment. No code or API changes in this module.
### Changed
- Bumped `contracts`, `core` to v1.3.0.
## [1.2.0] — 2026-08-08
Minor — coordinated framework version alignment. No code or API changes in this module.
### Changed
- Bumped `contracts`, `core` to v1.2.0.
## [1.1.3] — 2026-08-08
Patch — coordinated framework version alignment.
### Changed
- Bumped einherjar dependencies (\`contracts\`, \`core\`) to v1.1.3. No code or API changes.## [1.1.2] — 2026-08-08
Patch — coordinated framework version alignment.
### Changed
- Bumped einherjar dependencies (`contracts`, `core`) to v1.1.2. No code or API changes.
## [1.1.1] — 2026-08-07
Patch — corrected package-doc wiring examples plus framework version alignment.
### Fixed
- Doc examples used a fictional `launcher.Register` / `health.Register` API; corrected to
`lc.Append` + `web/health.NewHandler(...).ServeHTTP`.
### Changed
- Bumped einherjar dependencies (`contracts`, `core`) to v1.1.1.
## [1.1.0] — 2026-08-07
Patch — coordinated framework version alignment.
### Changed
- Bumped einherjar dependencies (`contracts`, `core`) to v1.1.0.
## [1.0.0] — 2026-05-28
Initial release. See the README for the full API and the `v1.0.0` git tag for the source.
+4 -3
View File
@@ -1,6 +1,6 @@
# einherjar/smtp # einherjar/smtp
[![version](https://img.shields.io/badge/version-v1.1.0-5C4EE5?style=flat-square)](https://code.nochebuena.dev/einherjar/smtp) [![version](https://img.shields.io/badge/version-v1.7.1-5C4EE5?style=flat-square)](https://code.nochebuena.dev/einherjar/smtp)
[![license](https://img.shields.io/badge/license-AGPL--3.0-22863A?style=flat-square)](LICENSE) [![license](https://img.shields.io/badge/license-AGPL--3.0-22863A?style=flat-square)](LICENSE)
[![go](https://img.shields.io/badge/Go-1.26+-00ADD8?style=flat-square&logo=go&logoColor=white)](https://go.dev) [![go](https://img.shields.io/badge/Go-1.26+-00ADD8?style=flat-square&logo=go&logoColor=white)](https://go.dev)
[![health](https://img.shields.io/badge/health-degraded-E36209?style=flat-square)]() [![health](https://img.shields.io/badge/health-degraded-E36209?style=flat-square)]()
@@ -19,8 +19,9 @@
import "code.nochebuena.dev/einherjar/smtp" import "code.nochebuena.dev/einherjar/smtp"
mailer := smtp.New(logger, smtp.DefaultConfig()) mailer := smtp.New(logger, smtp.DefaultConfig())
launcher.Append(mailer) // OnInit verifies credentials; OnStop is a no-op lc.Append(mailer) // OnInit verifies credentials; OnStop is a no-op
health.Register(mailer) // dial check; LevelDegraded // mailer is observability.Checkable (dial check, LevelDegraded):
srv.Get("/health", health.NewHandler(logger, mailer).ServeHTTP)
``` ```
When `cfg.Host` is empty, `New` returns a no-op that logs every `Send` call at debug level and always returns nil. No code changes are needed between environments. When `cfg.Host` is empty, `New` returns a no-op that logs every `Send` call at debug level and always returns nil. No code changes are needed between environments.
+6 -2
View File
@@ -12,8 +12,12 @@
// # Lifecycle Registration // # Lifecycle Registration
// //
// client := smtp.New(logger, cfg) // client := smtp.New(logger, cfg)
// launcher.Register(client) // lc.Append(client) // lifecycle: OnInit → OnStop
// health.Register(client) //
// client satisfies [observability.Checkable], so it can back a health endpoint via
// web/health.NewHandler:
//
// srv.Get("/health", health.NewHandler(logger, client).ServeHTTP)
// //
// # Sending // # Sending
// //
+2 -2
View File
@@ -3,6 +3,6 @@ module code.nochebuena.dev/einherjar/smtp
go 1.26 go 1.26
require ( require (
code.nochebuena.dev/einherjar/contracts v1.1.0 code.nochebuena.dev/einherjar/contracts v1.7.1
code.nochebuena.dev/einherjar/core v1.1.0 code.nochebuena.dev/einherjar/core v1.7.1
) )
+4 -4
View File
@@ -1,4 +1,4 @@
code.nochebuena.dev/einherjar/contracts v1.1.0 h1:GsGr6reyrd9qCc7D8CqbT1LWPTeeK9lT4r4EdsNA5Ro= code.nochebuena.dev/einherjar/contracts v1.7.1 h1:9FEW1HP+osiZT1OQE4gE9QAafIkvLSja0pRmSWX8gyA=
code.nochebuena.dev/einherjar/contracts v1.1.0/go.mod h1:ccltUtrFb5+MEJdkx2VVEUL+xC5pupVlVVsMM8AlCWI= code.nochebuena.dev/einherjar/contracts v1.7.1/go.mod h1:ccltUtrFb5+MEJdkx2VVEUL+xC5pupVlVVsMM8AlCWI=
code.nochebuena.dev/einherjar/core v1.1.0 h1:zxj9bFPthEEFRnvWV/vgNZqWa2y/kAo3p5pODWablyk= code.nochebuena.dev/einherjar/core v1.7.1 h1:NJZSx6hBVFUGbvPZ2X/WSiwzI//e5zR4AhSqA2ufvsM=
code.nochebuena.dev/einherjar/core v1.1.0/go.mod h1:Ot2JbjsnZ33Ed5C9Ev1kSn2PW+F4dLz/LRwIUh+fYt0= code.nochebuena.dev/einherjar/core v1.7.1/go.mod h1:hhCB05RXJ5z4yZbfupeil130lAFnEJM/xPdqhfudCVA=