Declared with the PEP 639 license / license-files fields, so the text ships in
the wheel and the image rather than only the repository. Records the terms of
the two things this repository deliberately does not contain: Boxsim, which is
Visaton freeware and is never redistributed, and kicad-visaton-lib, which is
CC-BY-SA-4.0 and is copied into any image built by tools/build-image.sh.
Verified: pip install exposes License-Expression MIT and packages the text as
dist-info/licenses/LICENSE, both on the host and in the image.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
kicad-visaton-lib moved to
ssh://git@src.bundespruefstelle.ch:2022/magdev/kicad-visaton-lib.git.
Also corrects the image source label, which named a repository that does not
exist: this repo is magdev/boxsim-fileformat-rev, not boxdev/re-boxsim.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Replaces the bpj2ini.py prototype with a packaged tool. The A2F codec is now
reimplemented in Python, so neither Boxsim.exe nor a CPU emulator is needed to
decode a container; the emulator survives as a development-only oracle that the
codec is differentially tested against.
Verified:
- 134 containers decode byte-identically to Boxsim's own decoder, 270 pre-2.0
files rejected by both implementations (tools/difftest.py --self-test)
- Default.BPJ: 22 components, 14 nets, no dangling terminal
- 22 of 22 parts resolve to library symbols; one series inferred from a
sibling, two DC resistance deviations reported
- ERC clean and the netlist KiCad extracts from the generated sheet is an
identical partition to the one derived from the Boxsim grid
- container build byte-identical to the host build
- 32 tests passing, ruff clean
Decode time went 69 s -> 14.5 s (binding emulator hooks to trap addresses)
-> 1.6 s (pure Python).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>