chore(release)!: trigger v6 major cut#554
Merged
Merged
Conversation
Add a v6 note to the commons package godoc. This touches a non-doc-ignored path so the release pipeline runs and semantic-release registers the major (the Fiber v3 / /v6 breaking change already landed on develop). BREAKING CHANGE: module path is now github.com/LerianStudio/lib-commons/v6 and HTTP/server helpers target gofiber/fiber/v3; consumers must update all imports and migrate off Fiber v2. X-Lerian-Ref: 0x1
|
Caution Review failedThe pull request is closed. ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Run ID: 📒 Files selected for processing (1)
📝 WalkthroughWalkthroughChangesPackage Documentation Update
Possibly related PRs
✨ Finishing Touches✨ Simplify code
Comment |
Contributor
🔒 Security Scan Results —
|
| Stage | Status | Blocking? |
|---|---|---|
| Filesystem Scan | ✅ Clean | — |
| Docker Image Scan | ➖ Skipped | — |
| Docker Hub Health Score | ➖ Skipped | — |
| Pre-release Version Check | ✅ Clean | — |
Trivy
Filesystem Scan
✅ No vulnerabilities or secrets found.
Pre-release Version Check
✅ No unstable version pins found.
Contributor
🔍 PR Validation Summary🚫 PR Blocked — 1 blocking failure
|
Contributor
📊 Unit Test Coverage Report:
|
| Metric | Value |
|---|---|
| Overall Coverage | 87.3% ✅ PASS |
| Threshold | 80% |
Coverage by Package
| Package | Coverage |
|---|---|
github.com/LerianStudio/lib-commons/v6/commons/backoff |
91.1% |
github.com/LerianStudio/lib-commons/v6/commons/certificate |
88.8% |
github.com/LerianStudio/lib-commons/v6/commons/circuitbreaker |
86.8% |
github.com/LerianStudio/lib-commons/v6/commons/cron |
94.2% |
github.com/LerianStudio/lib-commons/v6/commons/crypto |
95.6% |
github.com/LerianStudio/lib-commons/v6/commons/dlq |
81.0% |
github.com/LerianStudio/lib-commons/v6/commons/errgroup |
86.1% |
github.com/LerianStudio/lib-commons/v6/commons/events |
100.0% |
github.com/LerianStudio/lib-commons/v6/commons/internal/nilcheck |
100.0% |
github.com/LerianStudio/lib-commons/v6/commons/jwt |
89.4% |
github.com/LerianStudio/lib-commons/v6/commons/license |
96.9% |
github.com/LerianStudio/lib-commons/v6/commons/mongo |
89.0% |
github.com/LerianStudio/lib-commons/v6/commons/net/http/idempotency |
87.9% |
github.com/LerianStudio/lib-commons/v6/commons/net/http/openapi |
98.4% |
github.com/LerianStudio/lib-commons/v6/commons/net/http/problem |
100.0% |
github.com/LerianStudio/lib-commons/v6/commons/net/http/ratelimit |
92.3% |
github.com/LerianStudio/lib-commons/v6/commons/net/http |
96.2% |
github.com/LerianStudio/lib-commons/v6/commons/outbox |
92.1% |
github.com/LerianStudio/lib-commons/v6/commons/pointers |
100.0% |
github.com/LerianStudio/lib-commons/v6/commons/postgres |
87.7% |
github.com/LerianStudio/lib-commons/v6/commons/rabbitmq |
89.2% |
github.com/LerianStudio/lib-commons/v6/commons/redis |
89.5% |
github.com/LerianStudio/lib-commons/v6/commons/safe |
99.6% |
github.com/LerianStudio/lib-commons/v6/commons/secretsmanager |
99.4% |
github.com/LerianStudio/lib-commons/v6/commons/security/ssrf |
95.9% |
github.com/LerianStudio/lib-commons/v6/commons/security |
100.0% |
github.com/LerianStudio/lib-commons/v6/commons/server |
87.3% |
github.com/LerianStudio/lib-commons/v6/commons/tenant-manager/cache |
97.9% |
github.com/LerianStudio/lib-commons/v6/commons/tenant-manager/client |
93.0% |
github.com/LerianStudio/lib-commons/v6/commons/tenant-manager/consumer |
87.9% |
github.com/LerianStudio/lib-commons/v6/commons/tenant-manager/core |
98.5% |
github.com/LerianStudio/lib-commons/v6/commons/tenant-manager/event |
96.5% |
github.com/LerianStudio/lib-commons/v6/commons/tenant-manager/internal/eviction |
100.0% |
github.com/LerianStudio/lib-commons/v6/commons/tenant-manager/log |
100.0% |
github.com/LerianStudio/lib-commons/v6/commons/tenant-manager/middleware |
93.8% |
github.com/LerianStudio/lib-commons/v6/commons/tenant-manager/mongo |
76.3% |
github.com/LerianStudio/lib-commons/v6/commons/tenant-manager/postgres |
84.9% |
github.com/LerianStudio/lib-commons/v6/commons/tenant-manager/rabbitmq |
83.3% |
github.com/LerianStudio/lib-commons/v6/commons/tenant-manager/redis |
95.8% |
github.com/LerianStudio/lib-commons/v6/commons/tenant-manager/s3 |
89.3% |
github.com/LerianStudio/lib-commons/v6/commons/tenant-manager/tenantcache |
98.6% |
github.com/LerianStudio/lib-commons/v6/commons/tenant-manager/valkey |
100.0% |
github.com/LerianStudio/lib-commons/v6/commons/transaction |
95.1% |
github.com/LerianStudio/lib-commons/v6/commons/webhook |
93.2% |
github.com/LerianStudio/lib-commons/v6/commons |
95.2% |
Generated by Go PR Analysis workflow
rodrigodh
added a commit
that referenced
this pull request
Jul 21, 2026
* feat(webhook): add v1-only verification
X-Lerian-Ref: 0x1
* fix(webhook): harden freshness verification
X-Lerian-Ref: 0x1
* feat(secretsmanager): add scoped secret refs
Add version-addressed external credential references bound to a trusted tenant namespace before AWS retrieval.
X-Lerian-Ref: 0x1
* feat(core)!: migrate to Fiber v3, cut /v6 major
Bump gofiber/fiber v2->v3.4.0 and cut the /v6 module major. Consume
lib-observability/v2 (v2.0.0-beta.1). fiber.Ctx is now an interface by value:
all *fiber.Ctx signatures across commons/net/http and tenant-manager drop the
pointer; UserContext()/SetUserContext() -> Context()/SetContext(). Reconcile
the huma/openapi wrapper to the v3 humafiber binding (NewV2WithGroup ->
NewWithGroup, no huma bump). Other v3 deltas: c.BodyParser -> c.Bind().Body,
CORS config fields now []string, App.Test(req,int) -> fiber.TestConfig{},
App.Add now takes []string.
BREAKING CHANGE: module path is now github.com/LerianStudio/lib-commons/v6 and
exported commons/net/http helpers take fiber.Ctx by value; consumers must be on
Fiber v3.
X-Lerian-Ref: 0x1
* chore(ci): accept CVE-2026-45045 (transitive fiber/v2 via humafiber)
Fiber v3 migration leaves fiber/v2 in the module graph only as an indirect
dep of huma's humafiber adapter (v2 binding compiled, never invoked). The v2
trusted-proxy CVE path is unreachable and has no fixed version; suppress to
unblock the security gate. See the .trivyignore entry for the removal trigger.
X-Lerian-Ref: 0x1
* fix(net): detect CORS wildcard in parsed origins, not raw string
The wildcard guards compared the raw ACCESS_CONTROL_ALLOW_ORIGIN string to
"*", so a mixed value like "*,https://trusted.example" bypassed the
deny-wildcard policy and, with AllowCredentials=true, panicked Fiber v3 (which
rejects any "*" entry in AllowOrigins alongside credentials). Detect a "*"
entry anywhere in the parsed list via hasWildcardOrigin, and add a regression
test for the mixed-wildcard input. (CodeRabbit #541)
X-Lerian-Ref: 0x1
* fix(deps): bump golang.org/x/text to v0.39.0 (CVE-2026-56852)
Trivy newly flagged golang.org/x/text v0.38.0 for CVE-2026-56852 (infinite
loop on invalid input); fixed in v0.39.0. Unlike the transitive fiber/v2
advisory, this one has a fix version, so bump rather than suppress.
X-Lerian-Ref: 0x1
* chore(deps): bump lib-observability/v2 to v2.0.0 (#548)
Pin to the stable v2.0.0 release of lib-observability (was
v2.0.0-beta.1). No API changes; build and vet pass.
X-Lerian-Ref: 0x1
* fix: breaking changes should trigger major bump in .releaserc.yml (#547)
* fix: bump major on breaking changes in .releaserc.yml
* test: update release policy test to expect major bump on breaking changes
* feat(webhook): inject W3C trace context into outbound deliveries
Outbound webhook requests carried no traceparent/tracestate, so receivers
could not correlate a delivery with the originating trace. Inject W3C trace
context in doHTTP after the webhook headers are set.
Use an explicit propagation.TraceContext propagator rather than the global
propagator, which commonly bundles Baggage — arbitrary baggage (tenant IDs,
internal attributes) must not be leaked to external receivers.
Closes #488
Claude-Session: https://claude.ai/code/session_01RcQLK4qK1kbpvXWjuAR3Xh
* feat(mongo): add client-level CSOT timeout with a 30s default
connectLocked set only ServerSelectionTimeout and HeartbeatInterval, never a
client-level Timeout (CSOT). Under mongo-driver/v2 CSOT is the single
per-operation bound, so callers passing a deadline-less context could hang
indefinitely.
Add Config.Timeout, apply it via clientOptions.SetTimeout, and default it to
30s (matching the existing inline-default pattern for the sibling timeouts).
Because CSOT applies as a fallback deadline to every op without its own
context deadline, a 30s default would break bootstrap index builds on large
collections. EnsureIndexes now imposes a longer explicit deadline
(ensureIndexesTimeout) when the caller supplied none, while respecting any
caller-provided deadline.
Closes #503
Claude-Session: https://claude.ai/code/session_01RcQLK4qK1kbpvXWjuAR3Xh
* feat(net): add opt-in WithFailClosed to the idempotency middleware
On transient Redis errors the idempotency middleware fails open in four
branches (GetClient, SetNX, and the two duplicate/replay reads): each logs and
calls c.Next(), running the mutation with no dedup coverage — and on the
duplicate/replay path silently re-running an already-seen request.
Add a failClosed flag and WithFailClosed(bool) option (plus an optional
WithUnavailableHandler, mirroring the existing WithRejectedHandler). All four
branches now route through a shared onRedisError helper: when failClosed is
set they abort with 503 (or the configured handler) instead of proceeding.
Default stays false, so existing fail-open behavior is preserved exactly;
replay-cache consumers that depend on it are unaffected. The Lua/atomic gate
is intentionally out of scope.
Closes #508
Claude-Session: https://claude.ai/code/session_01RcQLK4qK1kbpvXWjuAR3Xh
* test(webhook): fix trace-context test data race and strengthen span assertion
Transfer captured request headers through a buffered channel (cap 1)
instead of a shared variable: the send/receive establishes a
happens-before edge so the test is race-free under -race. HTTP
round-trip completion alone does not synchronize the shared read.
Also assert the injected traceparent's span id equals the active span's
span id, not just the trace id, so the test proves injection used the
ACTIVE span rather than any span in the same trace.
Claude-Session: https://claude.ai/code/session_01RcQLK4qK1kbpvXWjuAR3Xh
* chore(release)!: cut lib-commons v6 major (#553)
Update install instructions to the /v6 module path and trigger the major
release. The v6 line migrates to Fiber v3 and cuts the /v6 module path
(github.com/LerianStudio/lib-commons/v6).
BREAKING CHANGE: module path is now github.com/LerianStudio/lib-commons/v6
and HTTP/server helpers target gofiber/fiber/v3; consumers must update all
imports and migrate off Fiber v2.
X-Lerian-Ref: 0x1
* chore(release)!: trigger v6 major cut (#554)
Add a v6 note to the commons package godoc. This touches a non-doc-ignored
path so the release pipeline runs and semantic-release registers the major
(the Fiber v3 / /v6 breaking change already landed on develop).
BREAKING CHANGE: module path is now github.com/LerianStudio/lib-commons/v6
and HTTP/server helpers target gofiber/fiber/v3; consumers must update all
imports and migrate off Fiber v2.
X-Lerian-Ref: 0x1
---------
Co-authored-by: lerian-studio <srv.iam@lerian.studio>
Co-authored-by: Fred Amaral <fred@fredamaral.com.br>
Co-authored-by: Gandalf, the White <gandalf@lerian.studio>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Lib Commons
Description
Triggers the v6 major release on the
developbeta channel.The previous trigger (#553) only changed the README, and the release workflow's
paths-ignoreskips**.md, so no release ran. This PR adds a one-line v6 note to thecommonspackage godoc (commons/doc.go) — a non-ignored.gopath — so the release pipeline runs. The Fiber v3 //v6breaking change is already ondevelop; semantic-release will pick it up and cutv6.0.0-beta.1.Type of Change
BREAKING CHANGE: Consumers must update their integrationdocs: godoc note (in a.gofile)Breaking Changes
/v6— imports becomegithub.com/LerianStudio/lib-commons/v6/...; rungo mod tidy.gofiber/fiber/v3; consumers on Fiber v2 must migrate.(Code for both already exists on
develop; this PR only makes the pipeline register the major.)Testing
go build ./commons/...passesv6.0.0-beta.1on merge (verify on develop)Architectural Checklist
Related Issues
Unblocks the
v6.0.0stable release (#549)