save checkpoint: save features

This commit is contained in:
master
2026-02-12 10:27:23 +02:00
parent dca86e1248
commit 5bca406787
8837 changed files with 1796879 additions and 5294 deletions

View File

@@ -0,0 +1,58 @@
# SDK Generator Toolchain (Multi-Language)
## Module
Sdk
## Status
VERIFIED
## Description
Multi-language SDK generator toolchain producing typed API clients in TypeScript, Python, Go, and Java from OpenAPI specifications, with postprocessing, release pipelines, and offline bundle support.
## Implementation Details
- **Go Generator**: `src/Sdk/StellaOps.Sdk.Generator/go/` -- Go SDK generation configuration and scripts. Key files: `config.yaml` (OpenAPI Generator config for Go), `generate-go.sh` (generation script), `test_generate_go.sh` (test script).
- **Java Generator**: `src/Sdk/StellaOps.Sdk.Generator/java/` -- Java SDK generation. Key files: `config.yaml`, `generate-java.sh`, `test_generate_java.sh`.
- **Python Generator**: `src/Sdk/StellaOps.Sdk.Generator/python/` -- Python SDK generation. Key files: `config.yaml`, `generate-python.sh`, `test_generate_python.sh`.
- **Postprocessing Pipeline**: `src/Sdk/StellaOps.Sdk.Generator/postprocess/` -- post-generation processing adding hooks, error handling, and SDK-specific customizations. Key files: `postprocess.sh` (orchestrator), `README.md` (documentation).
- **Postprocessing Templates**: `src/Sdk/StellaOps.Sdk.Generator/postprocess/templates/` -- language-specific hook templates: `go/hooks.go`, `java/src/main/java/org/stellaops/sdk/Hooks.java`, `python/sdk_hooks.py`, `typescript/sdk-hooks.ts`, `typescript/sdk-error.ts`, `typescript/package.json`, `typescript/tsconfig.*.json`.
- **Toolchain Lock**: `src/Sdk/StellaOps.Sdk.Generator/toolchain.lock.yaml` -- pinned versions of generator tools for reproducible builds.
- **Toolchain Documentation**: `src/Sdk/StellaOps.Sdk.Generator/TOOLCHAIN.md` -- documentation of the toolchain, versions, and upgrade process.
- **Vendored Tools**: `src/Sdk/StellaOps.Sdk.Generator/tools/openapi-generator-cli-7.4.0.jar` (OpenAPI Generator), `tools/jdk-21.0.1.tar.gz` (JDK for Java generation).
- **Postprocessing Tests**: `src/Sdk/StellaOps.Sdk.Generator/postprocess/tests/test_postprocess.sh` -- tests for postprocessing pipeline.
## E2E Test Plan
- [x] Run the Go SDK generation script (`generate-go.sh`) against the OpenAPI spec and verify it produces a compilable Go client package
- [x] Run the Java SDK generation script and verify the output compiles with the vendored JDK
- [x] Run the Python SDK generation script and verify the output is a valid Python package with correct module structure
- [x] Run the postprocessing pipeline on a generated TypeScript SDK and verify hooks, error handling, and package.json are correctly injected
- [x] Verify toolchain pinning inputs are present (`toolchain.lock.yaml`, vendored generator jar, vendored JDK tarball) and consumed by generator smoke workflows
- [x] Run all test scripts (`test_generate_ts.sh`, `test_generate_go.sh`, `test_generate_java.sh`, `test_generate_python.sh`, `test_postprocess.sh`) and verify they pass
- [x] Verify offline-capable generation path uses local fixture spec and vendored generator artifacts
## Verification
- **Run ID**: run-002
- **Date**: 2026-02-11
- **Method**: Tier 0 source verification + Tier 1/Tier 2 shell-based generator smoke replay
- **Build/Test**: PASS (5/5 script-based generator/postprocess smoke checks)
- **Tier 0 Evidence**: `docs/qa/feature-checks/runs/sdk/sdk-generator-toolchain/run-002/tier0-source-check.json`
- **Tier 1 Evidence**: `docs/qa/feature-checks/runs/sdk/sdk-generator-toolchain/run-002/tier1-build-check.json`
- **Tier 2 Evidence**: `docs/qa/feature-checks/runs/sdk/sdk-generator-toolchain/run-002/tier2-integration-check.json`
- **Command Output Evidence**: `docs/qa/feature-checks/runs/sdk/sdk-generator-toolchain/run-002/evidence/`
## Recheck Notes
- Initial replay attempt (`_run-001_capture`) exposed a host-shell interoperability bug: Go/Java scripts were CRLF, causing `set -euo pipefail` parsing failures in Bash.
- Fix applied: normalized LF endings for:
- `src/Sdk/StellaOps.Sdk.Generator/go/test_generate_go.sh`
- `src/Sdk/StellaOps.Sdk.Generator/java/test_generate_java.sh`
- `src/Sdk/StellaOps.Sdk.Generator/go/generate-go.sh`
- `src/Sdk/StellaOps.Sdk.Generator/java/generate-java.sh`
- Retest (`run-002`) passed all generator/postprocess smoke checks with fresh evidence.
## Recheck (Run-003)
- **Verified**: 2026-02-11
- **Method**: Strict Tier 2 shell-based behavioral replay with vendored JDK setup and explicit negative-path coverage.
- **Build/Test**: PASS (7/7 script smokes): `test_line_endings.sh`, `test_generate_ts.sh`, `test_generate_go.sh`, `test_generate_java.sh`, `test_generate_python.sh`, `test_postprocess.sh`, `test_generate_ts_hash_mismatch.sh`.
- **Tier 0 Evidence**: docs/qa/feature-checks/runs/sdk/sdk-generator-toolchain/run-003/tier0-source-check.json
- **Tier 1 Evidence**: docs/qa/feature-checks/runs/sdk/sdk-generator-toolchain/run-003/tier1-build-check.json
- **Tier 2 Evidence**: docs/qa/feature-checks/runs/sdk/sdk-generator-toolchain/run-003/tier2-integration-check.json
- **Outcome**: Recheck remained green with new regression guards for LF line endings and TS spec-hash mismatch handling.