-
Release v1.0.0 Stable
released this
2026-05-11 19:05:04 -06:00 | 1 commits to main since this releasev1.0.0
code.nochebuena.dev/go/launcherOverview
launcherv1.0.0 commits the application lifecycle API as stable. All v0.9.0
roadmap items are validated in production. The module ships a three-phase
lifecycle manager (OnInit→BeforeStart→OnStart→ reverse-orderOnStop)
with idempotent programmatic shutdown and per-component stop timeouts.What Changed Since v0.9.0
No API changes.
logzdependency bumped from v0.9.0 to v1.0.0.Roadmap items resolved
Item Resolution Parallel OnInit❌ No — registration order is the dependency contract; parallel init would require explicit dep graph Reverse-order shutdown validation ✅ Validated under production load with HTTP drain + DB close ordering Global shutdown deadline option ❌ No — Shutdown(ctx)already accepts a context with deadline; per-component timeout is sufficientOnStopbehavior withoutOnStart✅ Documented — OnStopis always called ifOnInitsucceeded, regardless of whetherOnStartranShutdownidempotency validation✅ Validated — sync.Oncechannel close is safe under concurrent signal + programmatic teardownFull API (stable)
Component—OnInit() error,OnStart() error,OnStop() error.Hook—func() error; registered viaBeforeStart.Options—ComponentStopTimeout time.Duration(zero → 15 seconds).Launcher—Append(components ...Component),BeforeStart(hooks ...Hook),
Run() error,Shutdown(ctx context.Context) error.New(logger logz.Logger, opts ...Options) Launcher— constructor. No global state.Migration from v0.9.0
No breaking changes. Only the
logzindirect dependency version changes.go get code.nochebuena.dev/go/launcher@v1.0.0Downloads