Commit graph

4 commits

Author SHA1 Message Date
jedarden
0dbbbf967f feat(pdftract-30ahi): configure maturin for 5-target wheel builds
Some checks are pending
Schema Generation Validation / Validate JSON Schema (push) Waiting to run
Schema Generation Validation / Validate JSON Syntax (push) Waiting to run
Configure maturin to build Python wheels for 5 target triples using
cross-compilation from a single Linux runner. Enable ABI3 for forward
compatibility across Python 3.10+.

Changes:
- pyproject.toml: Set requires-python = ">=3.10" (down from 3.11)
- pyproject.toml: Add Python 3.10 classifier
- pyproject.toml: Update comment to reflect 3.10+ compatibility
- Cargo.toml: Add pyo3 abi3-py310 feature
- docs/operations/build-wheels.md: Document cross-compilation setup

Target triples:
- x86_64-unknown-linux-gnu (manylinux_2_28_x86_64)
- aarch64-unknown-linux-gnu (manylinux_2_28_aarch64)
- x86_64-apple-darwin (macosx_11_0_x86_64)
- aarch64-apple-darwin (macosx_11_0_arm64)
- x86_64-pc-windows-gnu (win_amd64)

All wheels will be ABI3 (cp310-abi3) compatible, producing a single
wheel per platform instead of N versions × 5 platforms.

Refs: pdftract-30ahi, Phase 6.3.4
2026-05-28 08:04:32 -04:00
jedarden
43e2e5a399 docs(pdftract-2bfgc): add sample nginx and Traefik reverse-proxy configs
Add two example reverse-proxy configuration files to help operators
deploy pdftract serve with TLS and authentication in front of the
no-auth pdftract server.

- docs/operations/serve-nginx-example.conf: nginx config with Basic Auth,
  proxy_pass to localhost:8080, /extract and /health endpoints
- docs/operations/serve-traefik-example.yaml: Traefik dynamic config with
  BasicAuth middleware, buffering limits, separate health router

Both configs include top comments explaining the deployment model:
pdftract serve binds to 127.0.0.1:8080 with no auth; the reverse
proxy provides TLS termination and authentication.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-28 00:37:34 -04:00
jedarden
85863a244b docs(manual-release): add PB-13 fallback release runbook
Implement the manual release procedure for reproducing milestone
releases locally when Argo Workflows in iad-ci is degraded or
unavailable. This is the PB-13 fallback documented in the plan
(line 567) for the R13 risk register entry.

The runbook includes:
- Prerequisites (hardware, tools, cross-compilation toolchains)
- OpenBao secret paths for all release credentials
- 13-step release procedure covering:
  1. Tag verification
  2. Full CI suite run
  3. Cross-compilation for 5 target triples × 2 feature variants
  4. Binary verification
  5. SHA-256 checksum generation
  6. GPG signing of checksums
  7. Python wheel building (maturin)
  8. PyPI upload
  9. crates.io publishing (pdftract-core → pdftract-cli order)
  10. GitHub Release creation
  11. mdBook building
  12. Cloudflare Pages deployment
  13. SLSA Level 2 attestation generation
- Failure mode recovery procedures (triple build failure,
  PyPI upload failure, SLSA attestation failure)
- Idempotency and safe re-run rules per step
- Completion criteria (all channels must succeed)
- Continuity plan (written for a stranger)

Acceptance criteria:
- docs/operations/manual-release.md exists with all required sections
- Step-by-step procedure complete (all 13 steps)
- Manual release CHANGELOG record template present
- Failure modes documented for the three most likely partial failures
- Runbook is verbatim-executable by a non-author release lead

Closes: pdftract-4sj0
2026-05-25 03:23:29 -04:00
jedarden
d9d21df157 docs(pdftract-653ah): add runbook integration for pdftract doctor
- Created docs/operations/manual-platform-smoke.md with comprehensive
  smoke test runbook for KU-12 quarterly manual platform testing
- Added troubleshooting table covering all 14 doctor checks
- Cross-referenced runbook from installation.md and quickstart.md
- Added CI gate test (doctor_runbook_coverage.rs) to verify
  troubleshooting table completeness

Acceptance criteria:
✓ Step 1: pdftract doctor as first section in runbook
✓ Troubleshooting table covers all FAIL-capable checks
✓ installation.md mentions pdftract doctor with runbook link
✓ quickstart.md uses pdftract doctor as first example command
✓ CI gate parses runbook and asserts all checks are present
✓ mdBook build succeeds
✓ No broken internal links

Closes: pdftract-653ah
2026-05-24 13:26:31 -04:00