KiCad project Jekyll publisher for the SPCoast site
Project description
kproj
KiCad project Jekyll publisher for the SPCoast site.
kproj takes a point-in-time snapshot of a KiCad project (renders, schematic SVG/PDF, interactive HTML BOM, fabrication artifacts, KiCad source archive) and publishes it as a version entry on the SPCoast Jekyll site.
Status
Phase 3 (PRD authoring) — v1 design is locked, implementation has not started.
- ✅ Phase 0 — scope contract
- ✅ Phase 1 — analysis (jBOM reuse map, KiCad metadata survey, site platform assessment, audit prototype)
- ✅ Phase 2 — informed grilling (locked v1 vocabulary in
docs/GLOSSARY.md) - 🔄 Phase 3 — PRD + architecture proposal
- ⏳ Phase 4 — adversarial review
- ⏳ Phase 5 — issue breakdown into vertical tracer-bullet slices
- ⏳ Phase 6 — TDD implementation
- ⏳ Phase 7 — validation + PR + merge
v1 contract — quick orient
Full glossary in docs/GLOSSARY.md; v1 requirements in docs/PRD.md; implementation specs in docs/DESIGN.md. Headlines:
- What v1 is: a local CLI Jekyll publisher. One invocation publishes a point-in-time snapshot of a KiCad project to the SPCoast site.
- What v1 isn't: a release-lifecycle tool. No
git tag, nogh release create, no CI integration. Those are the (B) lifecycle layer, composed externally via Makefile. - Pipeline:
render→ibom→fab→publish. Four steps. - CLI surface:
kproj [<project-or-dir-or-file>] [--dry-run] [--no-push] [-v|--verbose] [-d|--debug]— five flags total. - Config:
~/.kproj.yaml(site_repo,no_push). Env vars (KPROJ_*). CLI flag highest precedence. - Audit + DRC/ERC: surfaced on the version page (Markdown table) and stderr; never blocking in v1.
- WriteTracker rollback: site-repo writes are transactional. Mid-pipeline failure rolls back cleanly. No stray-file pollution across batch runs.
- Exit codes: 0 clean / 1 findings present / 2 mechanical failure.
Research artifacts
docs/GLOSSARY.md— canonical vocabulary (terms-only; Phase 2 deliverable).docs/PRD.md— v1 user-facing requirements (Phase 3 deliverable).docs/DESIGN.md— v1 implementation specs (Phase 3 deliverable).docs/adr/— Architecture Decision Records (Phase 3 deliverable; 7 entries).docs/phase1/jbom-reuse-map.md— module-by-module jBOM reuse analysis.docs/phase1/kicad-metadata-survey.md— survey of${COMMENT1..9}/${REVISION}/${COMPANY}/${ISSUE_DATE}population across the SPCoast KiCad corpus, plus structuredsurvey.json/.csv.docs/phase1/site-platform-assessment.md— keep-Jekyll site-platform decision.docs/phase1/audit-rerun/— audit-prototype script + outputs (seed for the v1--dry-runquality lint).
Toolchain
- Python ≥3.11
uvfor environment + dependency management (uv sync,uv run, CI usesuv sync --frozen)argparsefor CLI parsing (no external CLI framework dependency)hatchlingbuild backendpytest+behavefor testing (Phase 6)ruff+mypyfor linting + type-checking
Composition with other tools
kproj is one tool in a small ecosystem. The release-lifecycle workflow composes via Makefile (see templates/Makefile.kicad):
jbom fab— generates fabrication artifacts (bom.csv, pos.csv, gerbers.zip) into./production/. Invoked separately by the user beforekproj.kproj— reads./production/+ KiCad project files, publishes a snapshot to the SPCoast site.git tag+gh release create(manual or Makefile-driven) — the (B) release-lifecycle layer, external to kproj.
License
MIT — see LICENSE.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file kproj-0.1.0.tar.gz.
File metadata
- Download URL: kproj-0.1.0.tar.gz
- Upload date:
- Size: 334.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
53fef41cba9170c404af0cf9e084c6f26f0fb9e01d9f79522e9b4ff2a352a9f3
|
|
| MD5 |
b284b44b9af5190982c1370dfbabdbd4
|
|
| BLAKE2b-256 |
2962575b1cc293ae33b7b29866d87a7b91d9326fe5e137954320044ceefc7bad
|
File details
Details for the file kproj-0.1.0-py3-none-any.whl.
File metadata
- Download URL: kproj-0.1.0-py3-none-any.whl
- Upload date:
- Size: 102.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8f525b7af970b17f54aee030492e74ce958270da2129319527be6376ffb5abb7
|
|
| MD5 |
c35267a121bc2c4afab1ddc9962176bc
|
|
| BLAKE2b-256 |
b8cfe750cb42fc57c13c2c86d5fce5d35a726f0932f9ba2639316687af5b0a48
|