Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docs/CHECKLIST.md
Original file line number Diff line number Diff line change
Expand Up @@ -273,4 +273,4 @@ Race-detector execution is intentionally excluded because CGO must remain disabl
- [x] REL-NATIVE: Replace preparation's manual workflow dispatches with native PR-run activation, exact-head/repository/PR filtering, bounded waiting for asynchronous run creation, authorization requests, and native failure recovery. Nineteen automation regressions passed locally. Hosted rollout established that manually dispatched job checks do not satisfy required rulesets: PR #16 was rejected despite green dispatches, then accepted after all three native PR runs were authorized through the Actions API and passed (2026-10-04). Default-token authorization remains subject to GitHub policy; report the maintainer's Approve workflows to run action when it is forbidden. See [Releasing modules](RELEASING.md) and issue #17.
- [x] REL-DRAFT: Resolve matching Release drafts through authenticated listing because GitHub's by-tag endpoint returns published Releases. Reject duplicate matches and retain reviewed-note/tag conflict checks before publication. Thirty release regressions passed, including the real GoReleaser OSS v2.18.2 draft/finalization fixture with draft-by-tag 404 responses (2026-10-04). The first hosted attempt created the reviewed root tag/draft at PR #16's SHA and then stopped at the old draft lookup; preserve those objects for recovery. Restrict progress artifacts to reports, notes, configurations, and logs. Public consumer acceptance remains separate below; see issue #19.
- [x] REL-VISIBILITY: Bound post-GoReleaser read-after-write waiting to 30 seconds, validate every observed Release against frozen notes, and propagate conflicts/API errors immediately without repeating writes. Thirty-three offline release regressions passed, including delayed draft/finalization, timeout preservation, and immediate error propagation (2026-10-04). Hosted run 37206952188 published and consumer-verified root v0.1.0, then stopped before the new commons/regex draft became visible; issue #20 tracks recovery.
- [ ] REL-PUBLIC: Complete all maintained public modules in the reviewed first-release batch, record fresh public consumer/checksum evidence, and verify Release Issue completion. Root v0.1.0 is published and consumer-verified; commons/regex/v0.1.0 is a preserved draft. The full batch remains incomplete until every selected module passes.
- [x] REL-PUBLIC: Publish all 27 maintained public modules as v0.1.0 from merged preparation PR #16 at immutable SHA 34fcc751355a2b29bca393748139ff96dd8bbf2a. The hosted GoReleaser OSS v2.18.2 run finalized every Release only after independent public download, tidy, build, module/checksum verification, and rejection of local replacements, with CGO disabled, GOWORK=off and fresh session caches. Release issue #15 closed automatically after completion. The frozen tracer/xray adapter was excluded. See [RELEASE_ACCEPTANCE.json](RELEASE_ACCEPTANCE.json) (2026-10-04). Hosted preparation controls and native PR/main checks were exercised; browser form rendering and default-token authorization remain separate rollout checks.
4 changes: 2 additions & 2 deletions docs/MODULES.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Independent modules in one repository

The implementation uses twenty-eight public modules and three development modules. Current module/import paths use the selected rambow-cloud repository namespace. Each module has its own `go.mod`, dependency requirements, and version entry in `tools/modules.json`. Versions are initial release targets, not published releases. Go 1.26 is the current supported baseline for all modules; CGO is always disabled. The count includes the deprecated, frozen X-Ray adapter. Current namespace verification is recorded in [MODULE_ACCEPTANCE_MIGRATION.json](MODULE_ACCEPTANCE_MIGRATION.json): all 31 packaged modules and 28 independent public consumers passed with GOWORK=off and CGO disabled on 2026-09-27. The report combines 13 accepted modules with an 18-module continuation. Non-documentation source matched the accepted archives at verification; later publication-only changes are checked separately. Earlier MODULE_ACCEPTANCE, REGEX and KMS records retain their original verification scope with historical module directories identified independently of repository ownership.
The implementation uses twenty-eight public modules and three development modules. Current module/import paths use the selected rambow-cloud repository namespace. Each module has its own `go.mod`, dependency requirements, and version entry in `tools/modules.json`. The 27 maintained public modules were released as `v0.1.0` on 2026-10-04; fresh public consumer builds and checksums are recorded in [RELEASE_ACCEPTANCE.json](RELEASE_ACCEPTANCE.json). The frozen `tracer/xray` adapter was excluded from publication. Go 1.26 is the current supported baseline for all modules; CGO is always disabled. The count includes the deprecated, frozen X-Ray adapter. Current namespace verification is recorded in [MODULE_ACCEPTANCE_MIGRATION.json](MODULE_ACCEPTANCE_MIGRATION.json): all 31 packaged modules and 28 independent public consumers passed with GOWORK=off and CGO disabled on 2026-09-27. The report combines 13 accepted modules with an 18-module continuation. Non-documentation source matched the accepted archives at verification; later publication-only changes are checked separately. Earlier MODULE_ACCEPTANCE, REGEX and KMS records retain their original verification scope with historical module directories identified independently of repository ownership.

## Module boundaries

Expand Down Expand Up @@ -35,7 +35,7 @@ All module paths start with `github.com/rambow-cloud/powertools-lambda-go`.
| `eventhandler/http/metrics` | Optional request-scoped EMF middleware | `eventhandler/http/metrics/v0.1.0` |
| `eventhandler/http/tracer` | Optional OTel route spans and HTTP metadata | `eventhandler/http/tracer/v0.1.0` |
| `tracer` | OpenTelemetry tracing and instrumentation | `tracer/v0.1.0` |
| `tracer/xray` | Deprecated and frozen legacy SDK adapter | `tracer/xray/v0.1.0` (not recommended for new releases) |
| `tracer/xray` | Deprecated and frozen legacy SDK adapter | Not released; deprecated and frozen |
| `examples` | Development examples | Not published |
| `integration` | Lambda and local capture fixtures | Not published |
| `tools` | Packaging and development tooling | Not published |
Expand Down
10 changes: 5 additions & 5 deletions docs/PUBLISHING_PLAN.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
# Optional utilities and Go publishing

Assessment date: 2026-09-14; publication identity updated 2026-09-27. Feature modules have independent dependencies and versions in one repository. Module boundaries are implemented; see [MODULES.md](MODULES.md) for the actual layout and maintenance commands. The selected repository path is `github.com/rambow-cloud/powertools-lambda-go`. No versions have been published.
Assessment date: 2026-09-14; publication identity updated 2026-09-27. Feature modules have independent dependencies and versions in one repository. Module boundaries are implemented; see [MODULES.md](MODULES.md) for the actual layout and maintenance commands. The selected repository path is `github.com/rambow-cloud/powertools-lambda-go`. The 27 maintained public modules were published as `v0.1.0` on 2026-10-04; see [public release acceptance](RELEASE_ACCEPTANCE.json). The frozen X-Ray adapter was excluded.

## Consumer experience

Python's `aws-lambda-powertools[parser]` is installation syntax for optional dependencies, including Pydantic. It does not create a separate Parser distribution or change Python import syntax. TypeScript instead publishes packages such as `@aws-lambda-powertools/parser`.

Go has no bracket-based extras syntax. Consumers import a package path; `go get` selects the module that provides that package. The intended Go equivalent, after the repository/version are published, is:
Go has no bracket-based extras syntax. Consumers import a package path; `go get` selects the module that provides that package. The published Go equivalent is:

```powershell
$env:CGO_ENABLED='0'
Expand All @@ -17,7 +17,7 @@ go get github.com/rambow-cloud/powertools-lambda-go/parser@v0.1.0
import "github.com/rambow-cloud/powertools-lambda-go/parser"
```

These are future usage examples, not commands that work against a release today. The existing utilities have separate module/import paths such as `/logger` and `/metrics`; `/parameters/ssm` remains a package within the Parameters module. Lambda applications compile their selected packages into the Go executable; Node.js and Python reference tooling is not a runtime dependency.
The example uses the publicly verified Parser `v0.1.0` release. The existing utilities have separate module/import paths such as `/logger` and `/metrics`; `/parameters/ssm` remains a package within the Parameters module. Lambda applications compile their selected packages into the Go executable; Node.js and Python reference tooling is not a runtime dependency.

## Package selection versus module isolation

Expand Down Expand Up @@ -65,12 +65,12 @@ version-retrieval gates below.
- [x] PUB-03: Configure per-module CGO-disabled tests/vet and Lambda cross-builds; verify standalone Parser and Signer consumers. All 18 packaged modules and 15 public consumers passed; Parser has no external dependencies. Dependency graphs and consumer binary sizes are recorded in MODULE_ACCEPTANCE.json, with both Lambda architectures built (2026-09-15).
- [x] PUB-03a: Complete the original module-split portion of PUB-03: CI definitions, 12 packaged-module checks, nine isolated consumer builds/dependency checks, and Linux amd64/arm64 builds with CGO disabled. Subsequent utilities including Parser extend verification to 18 modules and 15 independent consumers (2026-09-15). Consumer harness sizes are recorded; release performance benchmarks remain open.
- [x] PUB-03c: Verify optional HTTP Metrics/OTel adapter modules without adding dependencies to HTTP core. Verified 176 Metrics and 128 Tracer middleware reference cases (2,066 HTTP cases across the three modules), scope/span concurrency and body lifecycle tests, all 22 packaged modules/19 independent consumers, both CGO-disabled Linux builds, 622/622 RIE assertions, 95/95 streaming Runtime API checks and 14/14 Batch artifact checks (2026-09-22, Asia/Shanghai). Docker ran amd64; arm64 was cross-compiled. No AWS resources were used. Versions remain local fixtures, not public releases.
- [ ] PUB-04: Verify consumers with `GOWORK=off`, real version requirements, and no local replacements. Ensure core tests do not create module cycles.
- [x] PUB-04: Verify all 27 maintained public consumers with real `v0.1.0` requirements, GOWORK=off, CGO disabled, fresh caches, public proxy/checksum retrieval, and no module replacements. Hosted module CI also passed before publication. See [RELEASE_ACCEPTANCE.json](RELEASE_ACCEPTANCE.json) (2026-10-04).
- [x] PUB-03b: Extend the independent-module harness to 20 packaged modules and seventeen public consumers, including HTTP. Verify tests/vet/tidy, both CGO-disabled Linux builds and 501/501 Docker assertions (2026-09-16). Root Commons, Parser and HTTP have no third-party module dependencies. These checks use local fixture versions; public publication/retrieval remains open.
- [x] PUB-04a: Verify GOWORK=off consumers through a local file-based module proxy with semver requirements and no go.mod replacements. Root Commons has no external dependencies; Metrics and Metadata only require core; OTel Tracer excludes the X-Ray SDK. Public repository/proxy retrieval remains pending under PUB-04.
- [x] PUB-05a: Add the project MIT license and preserved upstream/source-data licenses, record direct dependency provenance, and verify LICENSE/NOTICE contents in all 31 independent module archives. CI verifies generated notices; see [THIRD_PARTY_NOTICES.md](https://github.com/rambow-cloud/powertools-lambda-go/blob/main/THIRD_PARTY_NOTICES.md). This does not claim a complete binary SBOM or public release.
- [ ] PUB-05: Complete license/provenance notices, API docs, release notes, module tag automation, and public compatibility scope.
- [ ] PUB-06: Publish the approved modules in dependency order and verify that consumers can resolve the documented versions. Publication has not been requested yet.
- [x] PUB-06: Publish all 27 approved maintained modules in dependency order through GoReleaser OSS v2.18.2 and verify independent public consumers before finalizing each Release. Preparation PR #16 froze the source and notes; issue #15 completed after successful publication. See [RELEASE_ACCEPTANCE.json](RELEASE_ACCEPTANCE.json) (2026-10-04).

## Sources

Expand Down
Loading