ecu-tests/requirements.txt
Hosam-Eldin Mostafa e1ea1fb7db build(docker): switch Melexis bundle to named build context
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>
2026-05-14 19:46:19 +02:00

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)