Replaces BuildKit's `--mount=type=secret` with `--mount=type=bind,from=…` backed by a named build context. Secrets are capped at 500 KiB and are meant for keys, not blobs — the Melexis tarball routinely exceeds that. A named context overriding a `FROM scratch AS melexis-bundle` stub stage gives "optional, file-of-any-size, never-in-image" semantics without polluting the default build context. - docker/Dockerfile: add the scratch stub stage, change the install step to `--mount=type=bind,from=melexis-bundle,target=/melexis-bundle`, update the usage header to show the new `--build-context` invocation, fail loudly with a clear message when INCLUDE_MELEXIS=1 but no bundle is bound. - docker/README.md: document the new build flow, the rationale for the bind-mount vs secret tradeoff, and bench instructions. - .dockerignore: ignore the new `melexis-bundle/` directory at the repo root (named build contexts respect a .dockerignore at THEIR own root, not the default one — so this entry only prevents accidental inclusion via the default context). - requirements.txt: pin the Melexis stack's transitive PyPI deps (pyparsing, natsort, intelhex, pygdbmi, crcmod, packaging, zeroconf) unconditionally so mock and hw images share a single venv layout. The size delta in the mock image is a few MB. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
35 lines
1.9 KiB
Plaintext
35 lines
1.9 KiB
Plaintext
# Core testing and utilities
|
|
pytest>=8,<9 # Test runner and framework (parametrize, fixtures, markers)
|
|
pyyaml>=6,<7 # Parse YAML config files under ./config/
|
|
pyserial>=3,<4 # Serial communication for Owon PSU and hardware tests
|
|
|
|
# BabyLIN SDK wrapper requires 'six' on some platforms
|
|
six>=1.16,<2
|
|
|
|
# Test productivity
|
|
pytest-xdist>=3.6,<4 # Parallel test execution (e.g., pytest -n auto)
|
|
pytest-html>=4,<5 # Generate HTML test reports for CI and sharing
|
|
pytest-cov>=5,<6 # Coverage reports for Python packages
|
|
|
|
# LDF parsing (LIN description file → frame/signal database for tests)
|
|
ldfparser>=0.26,<1 # Pure-Python LDF 1.x/2.x parser; pulls in lark + bitstruct
|
|
|
|
# Logging and config extras
|
|
configparser>=6,<7 # Optional INI-based config support if you add .ini configs later
|
|
colorlog>=6,<7 # Colored logging output for readable test logs
|
|
typing-extensions>=4.12,<5 # Typing backports for older Python versions
|
|
|
|
# Transitive PyPI deps of the Melexis stack (pylin / pymumclient / …).
|
|
# Installed unconditionally so mock and hw images share one venv layout;
|
|
# the size delta in the mock image is a few MB. Version pins come from
|
|
# the Requires-Dist metadata of the Melexis packages bundled into
|
|
# melexis-bundle/melexis-pkgs.tar.gz — keep them in sync if you upgrade
|
|
# the Melexis IDE.
|
|
pyparsing>=3.0.9,<3.1 # LDF + MBDF grammar (pyldfparser, pymbdfparser)
|
|
natsort>=7.1.0 # Natural-order signal sorting (pymbdfparser)
|
|
intelhex>=2.1 # Intel HEX I/O (pymlxchip, pymlxhex)
|
|
pygdbmi>=0.9,<0.10 # GDB Machine Interface (pymlxgdb)
|
|
crcmod>=1.7 # CRC for MUM framing (pymumclient)
|
|
packaging>=20.3 # Version parsing (pymumclient)
|
|
zeroconf>=0.37.0 # mDNS discovery of MUM on the bench (pymumclient)
|