github.com/evrone/go-clean-template
v1.18.0
#525 most downloaded on Go modules
evrone/go-clean-template
What this package is like to depend on
Last release 2 days ago
22 Aug 2026
Ships on a steady schedule
a new release about every 2 weeks
Rarely documented
notes for 10 of 53 stable releases
Nothing withdrawn
no release was ever pulled
5 years old
87 releases · first in 2021
31 releases in the last 12 months
see the full history below
Release timeline
87 releases · Aug 2021 to Aug 2026Releases
latest 60 of 87-
v1.18.022 Aug 2026Release notes
Open source →Agent-native repository documentation
Adds
CLAUDE.md, a single instruction file that tells AI coding agents how to work in this
repository, plusAGENTS.mdas a symlink to it so tools that look for either filename find the same
content. The document is deliberately vendor-neutral — no assistant-specific syntax, commands or
configuration — so any agent can consume it.What it covers
- Makefile-first workflow. A per-task table mapping each job to its
maketarget, and the flags
you silently lose by calling the underlying tool directly (make testadds-race -covermode atomic;make swag-v1passes--parseDependency -g internal/controller/restapi/router.go;
make formatrunsgo fix,gofumptandgciwith the repo's import grouping). - Layer boundaries. The dependency direction across
entity→usecase→repo→
controller, the rule thatpkg/never importsinternal/, and that wiring happens only in
internal/app/app.go. - Where new code goes. A decision table keyed on what the code knows about — a domain
invariant, SQL, an HTTP status, a reusable server — plus file, package and constructor naming
conventions. - The handler contract. The six steps every controller method follows on all four transports:
identify the caller, decode into a transport-local DTO, validate, call the use case with the
request context, map sentinel errors to a transport status, encode the response. - Checklists. Adding a use case to an existing domain, and adding a whole domain end to end
from entity and migration through repository, use case, mocks, wiring, transports, docs and
integration test. - Translation upkeep.
README.mdis canonical;README_RU.mdandREADME_CN.mdmirror it
section for section, with a trigger table for which change requires which README edit and rules
for localized anchors. - Generated artifacts. Which files come from
make swag-v1,make proto-v1andmake mock,
and must never be hand-edited.
Documented pitfalls
make integration-testruns on the host and always fails;make compose-up-integration-testis
the real entry point.make migrate-create <name>printsNo rule to make targetafter succeeding — a side effect of
reading the name fromMAKECMDGOALS.make runandmake pre-commitrequireswagandprotoconPATH;make bin-depsdoes not
installprotoc.- Fiber handlers must use
ctx.UserContext(), neverctx.Context(), or the trace is dropped. - Every use-case and repository constructor returns the interface wrapped by
newTraced, so a new
contract method must be implemented in three places — interface, struct and tracing decorator. internal/repo/persistent/translation/declarespackage persistentwhile its siblings use the
directory name; new packages should followtask/anduser/.
What's Changed
- chore(deps): security updates by @soltanoff in #475
- feat: AI native docs for agents by @soltanoff in #476
Full Changelog: v1.17.2...v1.18.0
- Makefile-first workflow. A per-task table mapping each job to its
-
v1.17.204 Aug 2026Release notes
Open source →What's Changed
- chore(deps): security updates by @soltanoff in #462
Full Changelog: v1.17.1...v1.17.2
-
v1.17.118 Jul 2026Release notes
Open source →What's Changed
- chore(deps): security updates by @soltanoff in #457
Full Changelog: v1.17.0...v1.17.1
-
v1.17.011 Jul 2026Release notes
Open source →Distributed Tracing with OpenTelemetry
End-to-end distributed tracing across the entire request path, powered by OpenTelemetry. A single trace now spans all four transports and every architectural layer:
controller -> usecase -> repo. It's exported over OTLP/gRPC to a collector (Jaeger in the docker stack).What's new
- OTLP/gRPC exporter - a global
TracerProvider(pkg/tracing) with configurable endpoint, TLS, and sampling; spans batch-export to any OTLP-compatible backend. - Cross-transport context propagation - W3C
traceparent+baggage, so traces stay connected regardless of transport:- REST ->
otelfibermiddleware - gRPC ->
otelgrpcstats handler - AMQP RPC / NATS RPC -> trace context carried in message headers via custom carriers
- REST ->
- Instrumented business layers -> use cases and repositories wrapped in tracing decorators, giving full visibility from handler down to DB and external web API calls.
- Jaeger in the docker stack ->
make compose-up-allnow brings up Jaeger, reachable through the nginx reverse proxy. - No-op when disabled -> with
TRACING_ENABLED=false, a no-op tracer provider is installed; instrumentation runs unconditionally with zero overhead. - Internal routes excluded ->
/healthz,/metrics,/swaggerare not traced; only versioned API groups are instrumented.
Configuration
Variable Default Description TRACING_ENABLEDfalseEnable OpenTelemetry tracing TRACING_OTLP_ENDPOINTlocalhost:4317OTLP/gRPC collector endpoint TRACING_OTLP_INSECUREtrueDisable TLS for the OTLP exporter TRACING_SAMPLE_RATE0.1Parent-based sampling ratio ⚠️ Sampling is parent-based - use
1.0locally, but keep it low (0.1/0.01) in production.Upgrade notes
- Tracing is off by default - no action required to keep current behavior. To enable, set
TRACING_ENABLED=trueand pointTRACING_OTLP_ENDPOINTat your collector. - Persistent repos were reorganized into per-domain packages to host the tracing decorators; the composition root was updated accordingly. No public API or transport contract changes.
PR's
- feat(OTEL): OTEL/OTLP integration by @soltanoff in #452
Full Changelog: v1.16.4...v1.17.0
- OTLP/gRPC exporter - a global
-
v1.16.411 Jul 2026Release notes
Open source →What's Changed
- chore(deps): go1.26.5 and security updates by @soltanoff in #450
- chore(docker): remove version specification from docker-compose files by @soltanoff in #451
Full Changelog: v1.16.3...v1.16.4
-
v1.16.311 Jun 2026Release notes
Open source →What's Changed
- chore(deps): go1.26.4 and security updates by @soltanoff in #439
Full Changelog: v1.16.2...v1.16.3
-
v1.16.217 May 2026Release notes
Open source →What's Changed
- chore(deps): go1.26.3 and security updates (CVE-2026-42501) by @soltanoff in #431
Full Changelog: v1.16.1...v1.16.2
-
v1.16.101 May 2026Release notes
Open source →What's Changed
- feat: update README to reflect addition of NATS RPC and enhance domain descriptions by @soltanoff in #407
- chore(deps): update dependencies and modify linting rules by @soltanoff in #421
- refactor: make nested config structs unexported by @Dawe257 in #419
- chore(ci): update linting actions to use fail_level for error reporting by @soltanoff in #422
New Contributors
Full Changelog: v1.16.0...v1.16.1
-
v1.16.005 Apr 2026Release notes
Open source →What's New: User Authentication & Task Management
This release adds two major domains to the clean architecture template — user authentication and task management — across all four transport layers (REST, gRPC, RabbitMQ RPC, NATS RPC).
User Authentication
- Registration with bcrypt password hashing and email uniqueness enforcement
- Login with JWT token generation and configurable expiry
- Auth middleware for all transport layers (Fiber, gRPC interceptor, AMQP/NATS token extraction)
- Profile endpoint to retrieve the authenticated user
Task Management
- Full CRUD for tasks scoped to the authenticated user
- Status state machine with validated transitions:
todo→in_progress→done(andin_progress→todo) - List endpoint with pagination (
limit/offset) and optional status filtering - Ownership enforcement — users can only access their own tasks
Infrastructure
- JWT package (
pkg/jwt) with token generation and validation - Three new database migrations:
userstable,taskstable,user_idforeign key on translation history - gRPC server options support (for injecting unary interceptors)
- Protobuf definitions for auth and task services
Testing
- 27 unit tests for the task use case covering all operations and error paths
- Unit tests for user use case (register, login, get)
- Table-driven entity tests for task status transitions
- Auth middleware tests for both REST and gRPC
- Integration tests restructured into separate files by domain (
user_test.go,task_test.go,translation_test.go)
Other Changes
- Swagger docs regenerated with full coverage of new endpoints
- Docker Compose updated with JWT configuration
- Logger simplified (removed redundant debug-level branching in error path)
Chore Changed and PR's
- chore(deps): bump rabbitmq from 4.2.4-management to 4.2.5-management by @dependabot[bot] in #397
- chore(deps): bump google.golang.org/grpc from 1.79.2 to 1.79.3 by @dependabot[bot] in #396
- chore(deps): bump github.com/jackc/pgx/v5 from 5.8.0 to 5.9.1 by @dependabot[bot] in #398
- chore(deps): bump nginx from 1.29.6-alpine to 1.29.7-alpine by @dependabot[bot] in #399
- chore(deps): bump github.com/nats-io/nats.go from 1.49.0 to 1.50.0 by @dependabot[bot] in #400
- chore(deps): update go-playground/validator, zerolog, grpc, and other by @soltanoff in #405
- feat: implement user authentication and task management with JWT support by @soltanoff in #406
Full Changelog: v1.15.2...v1.16.0
-
v1.15.3-0.20260325061954-3688617e5aaa25 Mar 2026 pre-releaseNothing published for this version
-
v1.15.216 Mar 2026Release notes
Open source →What's Changed
- chore(deps): bump nginx from 1.29.5-alpine to 1.29.6-alpine by @dependabot[bot] in #392
- chore(deps): bump github.com/goccy/go-json from 0.10.5 to 0.10.6 by @dependabot[bot] in #393
- Bump golang from 1.26.0 to 1.26.1 by @soltanoff in #395
Full Changelog: v1.15.1...v1.15.2
-
v1.15.127 Feb 2026Nothing published for this version
-
v1.15.021 Feb 2026Nothing published for this version
-
v1.14.708 Feb 2026Nothing published for this version
-
v1.14.623 Jan 2026Nothing published for this version
-
v1.14.508 Jan 2026Nothing published for this version
-
v1.14.425 Dec 2025Nothing published for this version
-
v1.14.307 Dec 2025Nothing published for this version
-
v1.14.223 Nov 2025Nothing published for this version
-
v1.14.2-0.20251122090625-998ac201592122 Nov 2025 pre-releaseNothing published for this version
-
v1.14.2-0.20251111182804-276028c0ad1211 Nov 2025 pre-releaseNothing published for this version
-
v1.14.2-0.20251110150456-3198ef1aa69410 Nov 2025 pre-releaseNothing published for this version
-
v1.14.2-0.20251030175749-ca5adaaa6d2030 Oct 2025 pre-releaseNothing published for this version
-
v1.14.2-0.20251028062248-616849e43dd128 Oct 2025 pre-releaseNothing published for this version
-
v1.14.126 Oct 2025Nothing published for this version
-
v1.14.1-0.20251015154838-9ed26daa687e15 Oct 2025 pre-releaseNothing published for this version
-
v1.14.1-0.20251012152144-6b8ab3aee27812 Oct 2025 pre-releaseNothing published for this version
-
v1.14.012 Oct 2025Nothing published for this version
-
v1.13.112 Sep 2025Nothing published for this version
-
v1.13.008 Sep 2025Nothing published for this version
-
v1.12.631 Aug 2025Nothing published for this version
-
v1.12.508 Aug 2025Nothing published for this version
-
v1.12.5-0.20250717152606-a955f25565b717 Jul 2025 pre-releaseNothing published for this version
-
v1.12.414 Jul 2025Nothing published for this version
-
v1.12.328 May 2025Nothing published for this version
-
v1.12.223 May 2025Nothing published for this version
-
v1.12.121 May 2025Nothing published for this version
-
v1.12.030 Apr 2025Nothing published for this version
-
v1.11.022 Apr 2025Nothing published for this version
-
v1.10.116 Apr 2025Nothing published for this version
-
v1.10.009 Apr 2025Nothing published for this version
-
v1.9.025 Mar 2025Nothing published for this version
-
v1.8.3-0.20250322213439-8e1509420fc222 Mar 2025 pre-releaseNothing published for this version
-
v1.8.222 Mar 2025Nothing published for this version
-
v1.8.114 Mar 2025Nothing published for this version
-
v1.8.011 Mar 2025Nothing published for this version
-
v1.7.108 Mar 2025Nothing published for this version
-
v1.7.004 Mar 2025Nothing published for this version
-
v1.6.026 Feb 2025Nothing published for this version
-
v1.5.1-0.20250226194130-625b4904bbe126 Feb 2025 pre-releaseNothing published for this version
-
v1.5.026 Feb 2025Nothing published for this version
-
v1.4.3-0.20230208133710-34844d644b3c08 Feb 2023 pre-releaseNothing published for this version
-
v1.4.3-0.20220626132133-8fb159d185a826 Jun 2022 pre-releaseNothing published for this version
-
v1.4.3-0.20220110135951-c9412d5d311d10 Jan 2022 pre-releaseNothing published for this version
-
v1.4.3-0.20211220214343-c125ac1a600420 Dec 2021 pre-releaseNothing published for this version
-
v1.4.3-0.20211210065723-e665062e906910 Dec 2021 pre-releaseNothing published for this version
-
v1.4.230 Nov 2021Nothing published for this version
-
v1.4.2-0.20211130090705-c8549e456ffa30 Nov 2021 pre-releaseNothing published for this version
-
v1.4.2-0.20211130053005-10a55025e52330 Nov 2021 pre-releaseNothing published for this version
-
v1.4.2-0.20211127042503-7c483ea0e94a27 Nov 2021 pre-releaseNothing published for this version