Skip to main content

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, no gh release create, no CI integration. Those are the (B) lifecycle layer, composed externally via Makefile.
  • Pipeline: renderibomfabpublish. 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

Toolchain

  • Python ≥3.11
  • uv for environment + dependency management (uv sync, uv run, CI uses uv sync --frozen)
  • argparse for CLI parsing (no external CLI framework dependency)
  • hatchling build backend
  • pytest + behave for testing (Phase 6)
  • ruff + mypy for 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 before kproj.
  • 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.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

kproj-0.1.1.tar.gz (345.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

kproj-0.1.1-py3-none-any.whl (102.5 kB view details)

Uploaded Python 3

File details

Details for the file kproj-0.1.1.tar.gz.

File metadata

  • Download URL: kproj-0.1.1.tar.gz
  • Upload date:
  • Size: 345.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.20

File hashes

Hashes for kproj-0.1.1.tar.gz
Algorithm Hash digest
SHA256 f2f073b8be8c0db3630a41c06a98ba832500b118344f90c1311c6ac5d246cd41
MD5 ea3aab690ef15ee8a70b848dddac8a5f
BLAKE2b-256 93c5772bc896f1a02326b88f9c281297cacc4725d2780ff915944dce0b5082d7

See more details on using hashes here.

File details

Details for the file kproj-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: kproj-0.1.1-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.10.20

File hashes

Hashes for kproj-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 f6c4c5a36784debc2f657e25c85f07671d598b1ffb3972a22eeb26350e826eb3
MD5 dadfb19eb75fb5bd8ddcfa8ffe45577e
BLAKE2b-256 fd763c0d190acab9f01df1052cb6d5f0885943c5e5cf4fa4567be18efdb662d9

See more details on using hashes here.

Release history Release notifications | RSS feed

0.13.4

2 files

0.13.3

2 files

0.13.2

2 files

0.13.1

2 files

0.13.0

2 files

0.12.0

2 files

0.11.0

2 files

0.10.5

2 files

0.10.4

2 files

0.10.3

2 files

0.10.2

2 files

0.10.1

2 files

0.10.0

2 files

0.9.0

2 files

0.8.0

2 files

0.7.1

2 files

0.7.0

2 files

0.6.0

2 files

0.5.2

2 files

0.5.1

2 files

0.5.0

2 files

0.4.0

2 files

0.3.2

2 files

0.3.1

2 files

0.3.0

2 files

0.2.0

2 files

This release

0.1.1 This release

2 files

0.1.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page