Releases: Abeta-dev/go-libs
Releases · Abeta-dev/go-libs
Release list
v0.3.1
[0.3.1] - 2026-09-24
Security & Hardening
- Dependency Updates: Bumped
github.com/gin-gonic/ginto v1.12.0,github.com/jackc/pgx/v5to v5.11.0,golang.org/x/cryptoto v0.57.0, andgolang.org/x/syncto v0.23.0 to resolve downstream security advisories including transitivequic-govulnerabilities. - OpenSSF Scorecard & CI Pinning: Corrected repository paths and OpenSSF Scorecard configuration for
Abeta-dev/go-libs, and pinned GitHub Actions across all workflows to immutable commit SHAs.
Added
- CI & Quality Gate: Introduced unified CI Quality Gate workflow with intelligent path filtering (
dorny/paths-filter) to optimize build times and conserve CI minutes. - Documentation Portal: Added GitHub Pages deployment workflow deploying the interactive web portal for enterprise library documentation.
Changed
- Repository Attribution: Standardized canonical documentation links, code of conduct, and security disclosure policies to
Abeta-dev.
v0.3.0
[0.3.0] - 2026-09-17
Highlights
- Pre-1.0 Minor Reconciliation & Release Baseline: Reconciled branch history following PR #18 integration and cut monotonic minor version
v0.3.0to establish clean-slate architecture and prevent version drift across downstream consumers. - Cryptographic Release Verification & Manifest Provenance: Integrated
scripts/verify_release.shinto release workflows, generating cryptographically verifiedrelease-manifest.jsonwith bounded exponential proxy retry backoff (5 attempts, isolatedGOMODCACHE), SHA-256 module digests, and read-only cache permission safety. - Downstream Baseline Audit: Added
scripts/verify_release_baseline.shanddocs/RELEASE_BASELINE.mdfor historical release verification against Go module proxy and checksum database. - Automated Shell & Release Verification Guards: Introduced
scripts/test_shell_compatibility.sh,scripts/test_release_scripts.sh, andscripts/test_release_workflow.shensuring strict Bash 3.2 portability, 90-day manifest artifact retention, and release immutability. - Dynamic Truth-Gate & Coverage Enforcement: Fully synchronized 95.8% measured statement coverage across all documentation, meta tags, and web portal, enforced by AST-based
docs_truth_test.goand Go 1.26.0+ toolchain baseline assertions.
Added
- logger: Decoupled
Samplerinterface andWithSamplerfunctional option for custom log sampling algorithms. - httpclient:
DefaultMaxRetryBodySizeconstant defining 10MB memory threshold for retry body buffering. - db:
CopyDBTXinterface extendingDBTXwithCopyFrombulk ingestion. - CI & Release Pipelines: Added
scripts/verify_release.shgeneratingrelease-manifest.jsonwith multi-attempt proxy backoff. - Baseline Verifier: Added
scripts/verify_release_baseline.shanddocs/RELEASE_BASELINE.mdfor downstream module integrity checks. - Test Guards: Added
scripts/test_shell_compatibility.sh,scripts/test_release_scripts.sh, andscripts/test_release_workflow.sh.
Changed
logger: DecoupledSamplingHandlerfromratelimit; instantiates an internal token-bucket sampler when no custom sampler is supplied.httpclient: Bounded retry buffering usingio.LimitReader; streams exceedingDefaultMaxRetryBodySizeare executed as a single attempt without replay buffering.db: StreamlinedDBTXinterface toExec,Query, andQueryRow; batchCopyFrommoved to segregatedCopyDBTXinterface.- Release Workflow: Configured
.github/workflows/release.ymlto automatically verify immutable release artifacts, attachrelease-manifest.jsonto GitHub releases, and retain artifacts for 90 days. - Documentation: Updated baseline toolchain to Go 1.26.0+ and synchronized overall statement coverage to 95.8%.
Fixed
- Cache Cleanup Permissions: Prepended
chmod -R u+wbeforerm -rfon temporary module caches and test fixtures, preventing permission errors on read-only Go cache trees. - Prerequisite Validation: Added checks for
python3inverify_release.shandbcincheck_coverage.sh. - Version Check Regex: Hardened stale version regex in
check_version.shto be backtick-tolerant. httputil: Preserved raw error transparency inErrorFromDomainreturningerr.Error()verbatim.
v0.2.1
[0.2.1] - 2026-09-17
Highlights
- Decoupled Logger Sampler (
logger/sampler.go): Eliminated architectural layering breach by removing dependency onratelimit. Defined standaloneSamplerinterface and an internal lock-synchronized token-bucket sampler with zero third-party dependencies. - Bounded HTTP Client Retry Buffering (
httpclient/roundtripper.go): Bounded memory ingestion on retries withDefaultMaxRetryBodySize(10MB) viaio.LimitReader. Oversized streaming request bodies bypass buffering and execute as a single attempt without rewind to prevent process OOM. - Interface Segregation on
db.DBTX(db/context.go): Segregated core querier interfaceDBTX(Exec,Query,QueryRow) from bulk copy operations, introducingCopyDBTXforCopyFrom. - Raw Error Transparency (
httputil/response.go): Preserved transparenterr.Error()propagation inErrorFromDomainwithout unrequested sanitization.
Added
- logger: Decoupled
Samplerinterface andWithSamplerfunctional option for custom log sampling algorithms. - httpclient:
DefaultMaxRetryBodySizeconstant defining 10MB memory threshold for retry body buffering. - db:
CopyDBTXinterface extendingDBTXwithCopyFrombulk ingestion.
Changed
logger: DecoupledSamplingHandlerfromratelimit; instantiates an internal token-bucket sampler when no custom sampler is supplied.httpclient: Bounded retry buffering usingio.LimitReader; streams exceedingDefaultMaxRetryBodySizeare executed as a single attempt without replay buffering.db: StreamlinedDBTXinterface toExec,Query, andQueryRow; batchCopyFrommoved to segregatedCopyDBTXinterface.
Fixed
- Source Formatting: Applied canonical
gofmttocircuitbreaker/consecutive_test.goandhttpclient/roundtripper_test.go. httputil: Verified raw error transparency inErrorFromDomainreturningerr.Error()verbatim.
v0.2.0
[0.2.0] - 2026-09-17
Highlights
- PostgreSQL Distributed Idempotency Store (
idempotency/postgres.gowithdb.DBTX): High-performance, production-ready distributed idempotency store using two-phase atomic locking (LockandSave) over anydb.DBTXconnection pool or transaction. Features automatic lock expiration recovery, status conflict detection, SHA-256 payload fingerprint validation, and configurable lock/response TTLs. - PostgreSQL Atomic Distributed Rate Limiter (
db/ratelimit.go): Clustered, atomic sliding-window rate limiter powered by PostgreSQL CTE queries overdb.DBTX. Synchronizes request counters across multi-pod deployments without Redis or external infrastructure. - Decoupled Universal
net/httpStandard Middleware: Universal middleware implementations adhering strictly to standard Gofunc(http.Handler) http.Handlersignatures:httputil.CORS: Flexible CORS handling with credential support, exposed headers, configurable max age, and wildcard/origin validation.telemetry.Middleware: W3C distributed tracing extraction and automatic OpenTelemetry span instrumentation.logger.Middleware: Structured access logging using standard librarylog/slogwith latency tracking, status capture, and request ID correlation.idempotency.Middleware: End-to-end HTTP idempotency filter with in-memory or PostgreSQL stores, automatic payload caching, concurrent in-progress 409 Conflict handling, and replay headers.
- Pruning Standard Library Duplication from
sliceutil&maputil: Pruned redundant wrapper functions (sliceutil.Map,sliceutil.Filter,maputil.Keys,maputil.Values) in favor of idiomatic Go loops and standard library packages (slices,maps). Stabilized and expanded high-value algorithmic extensions:sliceutil.Chunk,sliceutil.GroupBy,sliceutil.Unique,sliceutil.Flatten,sliceutil.Reduce, andmaputil.Merge. - Reference Microservice (
examples/microservice) Updates: Enhanced reference implementation demonstrating production best practices, item batching viasliceutil.Chunk, clean loops, and composition of operational primitives.
Compatibility Notice
Clean-slate architecture: No backward compatibility preserved. Legacy deprecated interfaces and backwards-compatibility shims have been dropped, as no external developers or downstream production systems are actively consuming pre-release revisions.
Added
- idempotency: PostgreSQL Distributed Idempotency Store (
PGStore,NewPGStore,WithPGLockTTL,WithPGResponseTTL,WithPGTableName) backed bydb.DBTXfor distributed two-phase atomic locking, conflict mitigation, and crash recovery. - idempotency: Universal
net/httpstandard idempotency middleware (Middleware,MiddlewareOptions,MiddlewareOption,WithHeaderName,WithEnforceHeader,WithIgnoredMethods,WithStatusCodeMatcher). - db: PostgreSQL Atomic Distributed Rate Limiter (
PGRateLimiter,NewPGRateLimiter,WithPGRateLimiterTableName,WithPGRateLimiterTimeout) implementing sliding window rate limiting viaDBTX. - httputil: Decoupled universal
net/httpstandard CORS middleware (CORS,CORSConfig,DefaultCORSConfig). - telemetry: Decoupled universal
net/httpstandard OpenTelemetry tracing middleware (Middleware,MiddlewareOption,WithPropagator). - logger: Decoupled universal
net/httpstandard structured logging middleware (Middleware,MiddlewareOption,WithLogger,WithRequestIDHeader,WithExtraAttributes).
Changed
sliceutil: Pruned redundant standard library duplication (Map,Filter) in favor of idiomatic Go loops and standardslices; expanded and stabilized algorithmic utilities:Chunk,GroupBy,Unique,Flatten,Reduce,First.maputil: Pruned redundant standard library duplication (Keys,Values) in favor of standardmaps; retained zero-dependency extensions:Merge,Filter.examples/microservice: Updated reference microservice showcasingsliceutil.Chunkfor item batch processing, clean standard filtering loops, and universal middleware composition.securityheaders: Transitionedsecurityheaders.New(cfg Config)to functional optionssecurityheaders.New(opts ...Option)withWithServerName,WithHSTSMaxAge,WithCSP,WithPermissionsPolicy.telemetry: Transitionedtelemetry.NewTracerProvider(cfg Config)to functional optionstelemetry.NewTracerProvider(opts ...Option)withWithServiceName,WithServiceVersion,WithEnvironment,WithSampleRate.cryptoutil:ComparePasswordwraps malformed password hashes with sentinelErrInvalidHash.ginmw:Idempotencylogs store errors duringLock,Unlock, andSaveoperations.
Removed (BREAKING)
sliceutil: Removed redundant wrappersMapandFilter.maputil: Removed redundant wrappersKeysandValues.circuitbreaker: Removed redundant type aliasCircuitBreakerand deprecatedNew(...)constructor; useConsecutiveBreakerandNewConsecutiveBreaker(...)instead.cache: Removed redundantNewTTL[T]constructor; useNewTypedCache[T]instead.httpclient: Removed redundantWithTimeoutalias; useWithTotalTimeoutinstead.ratelimit: Removed unexported pass-through wrappersrealIP,isTrusted,extractIP,parseTrustedProxies.
Fixed
cache,circuitbreaker,ratelimit: Added lazy initialization guards toTypedCache,ConsecutiveBreaker,RatioBreaker,TokenBucketLimiter, andSlidingWindowLimitersovar x T{}zero-values execute safely without panicking.- Dependencies: Bumped
golang.org/x/cryptofromv0.55.0tov0.56.0to eliminate CVEsGO-2026-6354andGO-2026-6355.
Security
- Workflows: Pinned all GitHub Actions to immutable 40-character commit SHAs.
- Containers: Pinned base container images in
examples/microservice/Dockerfileto immutable@sha256:digests. - Least Privilege: Set top-level
permissions: read-allacross all GitHub Actions workflows. - SAST: Added automated GitHub CodeQL analysis workflow for continuous static application security testing.
v0.1.0
[Unreleased]
Changed
securityheaders: Transitionedsecurityheaders.New(cfg Config)to functional optionssecurityheaders.New(opts ...Option)withWithServerName,WithHSTSMaxAge,WithCSP,WithPermissionsPolicy.telemetry: Transitionedtelemetry.NewTracerProvider(cfg Config)to functional optionstelemetry.NewTracerProvider(opts ...Option)withWithServiceName,WithServiceVersion,WithEnvironment,WithSampleRate.cryptoutil:ComparePasswordwraps malformed password hashes with sentinelErrInvalidHash.ginmw:Idempotencylogs store errors duringLock,Unlock, andSaveoperations.
Removed (BREAKING)
circuitbreaker: Removed redundant type aliasCircuitBreakerand deprecatedNew(...)constructor; useConsecutiveBreakerandNewConsecutiveBreaker(...)instead.cache: Removed redundantNewTTL[T]constructor; useNewTypedCache[T]instead.httpclient: Removed redundantWithTimeoutalias; useWithTotalTimeoutinstead.ratelimit: Removed unexported pass-through wrappersrealIP,isTrusted,extractIP,parseTrustedProxies.
Fixed
cache,circuitbreaker,ratelimit: Added lazy initialization guards toTypedCache,ConsecutiveBreaker,RatioBreaker,TokenBucketLimiter, andSlidingWindowLimitersovar x T{}zero-values execute safely without panicking.- Dependencies: Bumped
golang.org/x/cryptofromv0.55.0tov0.56.0to eliminate CVEsGO-2026-6354andGO-2026-6355.
Security
- Workflows: Pinned all GitHub Actions to immutable 40-character commit SHAs.
- Containers: Pinned base container images in
examples/microservice/Dockerfileto immutable@sha256:digests. - Least Privilege: Set top-level
permissions: read-allacross all GitHub Actions workflows. - SAST: Added automated GitHub CodeQL analysis workflow for continuous static application security testing.