Skip to content

Commit 67a1053

Browse files
authored
Rel 25 12 2 (#113)
* add feature branch audit file * Bump version to 25.12.2 and sync CI/CD infrastructure - Bump version to 25.12.2 in pyproject.toml and _version.py - Update dependencies: zlmdb>=25.12.2, autobahn[all]>=25.12.2 - Document WHY both zlmdb and autobahn dependencies are needed - Remove tox from dev dependencies (no longer used) - Consolidate download-github-release to /tmp/release-artifacts/<tag> - Add generate-release-notes and docs-integrate-github-release recipes - Add .github/workflows/README.md documenting CI/CD pipelines Ref: #112 Note: This work was completed with AI assistance (Claude Code). * docs: add v25.12.2 release notes and fix autoapi warnings (#112) - Add changelog entry for v25.12.2 with new features, fixes, and updates - Add releases.rst entry for v25.12.2 with links to GitHub, PyPI, RTD - Add suppress_warnings to conf.py for autodoc.duplicate_object (#82) - Add generate-bfbs and list-fbs justfile recipes for FlatBuffers management - Note: cfxdb uses zlmdb's vendored flatbuffers runtime Note: This work was completed with AI assistance (Claude Code). * fix: remove hardcoded cpy311 from build-all recipe - build-all now depends on build (without venv arg) to use system default - install-build-tools now depends on (create venv) to ensure venv exists - Fixes: just distclean && just build-all now works correctly Note: This work was completed with AI assistance (Claude Code). * feat: add test-smoke, test-wheel-install, test-sdist-install recipes - Add scripts/smoke_test.py for quick package verification - Add test-smoke recipe to run smoke tests - Add test-wheel-install recipe for CI artifact verification - Add test-sdist-install recipe for sdist verification Smoke tests verify: 1. cfxdb import and version 2. zlmdb dependency and vendored flatbuffers 3. autobahn dependency 4. Database schema imports 5. .fbs schema files bundled (12 files) 6. .bfbs binary schema files bundled (12 files in gen/) Note: This work was completed with AI assistance (Claude Code). * ci: add wheel and sdist smoke tests to build job - Add smoke test wheel installation step after build - Add smoke test sdist installation step after build - Uses just test-wheel-install and just test-sdist-install recipes - Verifies packages actually install and import correctly before upload Note: This work was completed with AI assistance (Claude Code).
1 parent d96a36e commit 67a1053

File tree

10 files changed

+796
-25
lines changed

10 files changed

+796
-25
lines changed

.audit/oberstet_rel-25-12-2.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
- [ ] I did **not** use any AI-assistance tools to help create this pull request.
2+
- [x] I **did** use AI-assistance tools to *help* create this pull request.
3+
- [x] I have read, understood and followed the project's AI_POLICY.md when creating code, documentation etc. for this pull request.
4+
5+
Submitted by: @oberstet
6+
Date: 2025-12-15
7+
Related issue(s): #112
8+
Branch: oberstet:rel-25-12-2

.github/workflows/README.md

Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
# GitHub Actions Workflows
2+
3+
This directory contains the CI/CD workflows for cfxdb.
4+
5+
## Workflows
6+
7+
### main.yml
8+
9+
**Trigger:** Push to `master`, tags `v*`, pull requests
10+
11+
Main CI workflow that runs on every push and PR:
12+
13+
| Job | Purpose |
14+
|-----|---------|
15+
| `identifiers` | Extract release type (development/stable) using wamp-cicd |
16+
| `check` | Code quality checks (ruff format, ruff lint, ty type checker) |
17+
| `test` | Test suite across Python 3.11, 3.12, 3.13, 3.14 |
18+
| `docs` | Build Sphinx documentation |
19+
| `build` | Build sdist + wheel, upload verified artifacts |
20+
21+
### release.yml
22+
23+
**Trigger:** After `main` workflow completes successfully
24+
25+
Release workflow for creating GitHub releases and publishing to PyPI:
26+
27+
| Job | Purpose |
28+
|-----|---------|
29+
| `check-main-workflow` | Verify main workflow completed successfully |
30+
| `identifiers` | Determine release type (development/nightly vs stable) |
31+
| `release-development` | Create pre-release on GitHub for nightly builds |
32+
| `release-production` | Create GitHub release AND publish to PyPI for stable tags |
33+
34+
## Release Types
35+
36+
| Type | Trigger | PyPI | GitHub Release |
37+
|------|---------|------|----------------|
38+
| `development` | Push to master | No | Pre-release |
39+
| `nightly` | Push to master | No | Pre-release |
40+
| `stable` | Tag push (`v*`) | Yes | Full release |
41+
42+
## Shared Infrastructure
43+
44+
These workflows use reusable components from [wamp-cicd](https://github.com/wamp-proto/wamp-cicd):
45+
46+
- **Reusable workflow:** `wamp-proto/wamp-cicd/.github/workflows/identifiers.yml@main`
47+
- **Actions:**
48+
- `wamp-proto/wamp-cicd/actions/upload-artifact-verified@main`
49+
- `wamp-proto/wamp-cicd/actions/download-artifact-verified@main`
50+
- `wamp-proto/wamp-cicd/actions/check-release-fileset@main`
51+
- `wamp-proto/wamp-cicd/actions/validate-audit-file@main`
52+
53+
The `.cicd/` submodule must be present for scripts referenced by these workflows.
54+
55+
## PyPI Publishing
56+
57+
Production releases use OIDC trusted publishing:
58+
- No password/token required
59+
- Automatic attestation generation
60+
- Configured via PyPI project settings
61+
62+
## Audit Requirements
63+
64+
For stable releases, an audit file must exist at `.audit/<branch>.md` documenting:
65+
- AI assistance disclosure
66+
- Policy compliance confirmation
67+
- Related issue reference
68+
69+
## Local Testing
70+
71+
Use `just` recipes to run the same checks locally:
72+
73+
```bash
74+
just check # Run all code quality checks
75+
just test # Run test suite
76+
just docs # Build documentation
77+
just dist # Build distribution packages
78+
just verify-dist # Verify built packages
79+
```

.github/workflows/main.yml

Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -173,14 +173,44 @@ jobs:
173173
- name: Build distribution packages
174174
run: just dist cpy311
175175

176-
- name: Verify packages
176+
- name: Verify packages (twine check)
177177
run: just verify-dist cpy311
178178

179179
- name: List built packages
180180
run: |
181181
echo "Built packages:"
182182
ls -lh dist/
183183
184+
- name: Smoke test wheel installation
185+
run: |
186+
echo "======================================================================"
187+
echo "==> Smoke Testing Wheel Installation"
188+
echo "======================================================================"
189+
WHEEL=$(ls dist/*.whl 2>/dev/null | head -1)
190+
if [ -z "$WHEEL" ]; then
191+
echo "❌ No wheel found in dist/"
192+
exit 1
193+
fi
194+
just test-wheel-install "$WHEEL"
195+
echo "======================================================================"
196+
echo "✅ Wheel smoke test PASSED"
197+
echo "======================================================================"
198+
199+
- name: Smoke test sdist installation
200+
run: |
201+
echo "======================================================================"
202+
echo "==> Smoke Testing Source Distribution Installation"
203+
echo "======================================================================"
204+
SDIST=$(ls dist/*.tar.gz 2>/dev/null | head -1)
205+
if [ -z "$SDIST" ]; then
206+
echo "❌ No sdist found in dist/"
207+
exit 1
208+
fi
209+
just test-sdist-install "$SDIST"
210+
echo "======================================================================"
211+
echo "✅ Source distribution smoke test PASSED"
212+
echo "======================================================================"
213+
184214
- name: Upload distribution artifacts (verified)
185215
uses: wamp-proto/wamp-cicd/actions/upload-artifact-verified@main
186216
with:

docs/changelog.rst

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,26 @@ Unreleased
1313

1414
*No unreleased changes yet.*
1515

16+
25.12.2 (2025-12-15)
17+
--------------------
18+
19+
**New**
20+
21+
* Added ``generate-release-notes`` justfile recipe for documentation integration
22+
* Added ``docs-integrate-github-release`` justfile recipe with chain-of-custody files
23+
* Added ``.github/workflows/README.md`` documenting CI/CD architecture
24+
25+
**Fix**
26+
27+
* Fixed autoapi duplicate object warnings by adding suppress_warnings in conf.py (#82)
28+
* Consolidated ``download-github-release`` recipe to use ``/tmp/release-artifacts/<tag>`` path
29+
30+
**Other**
31+
32+
* Updated dependencies: autobahn[all]>=25.12.2, zlmdb>=25.12.2
33+
* Removed tox from dev dependencies (no longer used)
34+
* Added documentation for WHY both zlmdb and autobahn dependencies are needed (#112)
35+
1636
25.12.1 (2025-12-10)
1737
--------------------
1838

docs/conf.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -200,3 +200,13 @@ def use_aio():
200200
autosectionlabel_prefix_document = True
201201
pygments_style = "sphinx"
202202
pygments_dark_style = "monokai"
203+
204+
# -- Suppress Warnings -------------------------------------------------------
205+
# Suppress duplicate object warnings when using both autoapi and autodoc
206+
# directives for the same classes. The manual .. autoclass:: directives in
207+
# the domain-specific docs (management-realm/, router-database/, etc.) are
208+
# intentionally duplicating autoapi-generated docs for better organization.
209+
suppress_warnings = [
210+
"autodoc.duplicate_object",
211+
"autosectionlabel.*",
212+
]

docs/releases.rst

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,13 @@ This page provides links to release artifacts for each version of cfxdb.
55

66
For detailed changelog entries, see :doc:`changelog`.
77

8+
25.12.2
9+
-------
10+
11+
* `GitHub Release <https://github.com/crossbario/cfxdb/releases/tag/v25.12.2>`__
12+
* `PyPI Package <https://pypi.org/project/cfxdb/25.12.2/>`__
13+
* `Documentation <https://cfxdb.readthedocs.io/en/v25.12.2/>`__
14+
815
25.12.1
916
-------
1017

0 commit comments

Comments
 (0)