ecu-tests/docs/DEVELOPER_COMMIT_GUIDE.md
Hosam-Eldin Mostafa 582764d410 Mark legacy BabyLIN adapter as deprecated across code and docs
The MUM (Melexis Universal Master) adapter is the current default; the
BabyLIN SDK adapter is retained only for backward compatibility with
existing rigs.

Code:
- Emit DeprecationWarning when BabyLinInterface is instantiated and
  when tests/conftest.py routes interface.type=='babylin' to it.
- Update module/class docstrings in ecu_framework/{__init__,config,
  lin/__init__,lin/babylin}.py to label BabyLIN-specific fields and
  paths as deprecated.

Config / scripts / pytest:
- pytest.ini: relabel the babylin marker as deprecated.
- config/{babylin.example,examples,test_config}.yaml: add deprecation
  banners and field comments.
- scripts/99-babylin.rules and scripts/pi_install.sh: annotate the
  udev-rule install block as legacy-only.

Documentation:
- TESTING_FRAMEWORK_GUIDE.md, docs/08_babylin_internals.md, and
  vendor/README.md: prepend explicit "DEPRECATED" banners.
- docs/{README,01,02,04,05,07,09,10,12,13,14,15,18,DEVELOPER_COMMIT_
  GUIDE}.md: relabel "legacy" to "deprecated" where babylin is
  mentioned, present MUM as the primary path, and steer new work
  toward the MUM examples.

No tests, configs, or modules were deleted; existing BabyLIN setups
keep working but now produce a clear DeprecationWarning at runtime.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-07 17:32:24 +02:00

2.4 KiB
Raw Blame History

Developer Commit Guide

This guide explains exactly what to commit to source control for this repository, and what to keep out. It also includes a suggested commit message and safe commands to stage changes.

Commit these files

Core framework (source)

  • ecu_framework/config.py
  • ecu_framework/lin/base.py
  • ecu_framework/lin/mock.py
  • ecu_framework/lin/babylin.py (deprecated, retained for backward compatibility)
  • ecu_framework/flashing/hex_flasher.py

Pytest plugin and config

  • conftest_plugin.py
    Generates HTML columns, requirements coverage JSON, and CI summary
  • pytest.ini
  • requirements.txt

Tests and fixtures

  • tests/conftest.py
  • tests/test_smoke_mock.py
  • tests/test_babylin_hardware_smoke.py (if present; deprecated BabyLIN path)
  • tests/test_hardware_placeholder.py (if present)

Documentation

  • README.md
  • TESTING_FRAMEWORK_GUIDE.md
  • docs/README.md
  • docs/01_run_sequence.md
  • docs/02_configuration_resolution.md
  • docs/03_reporting_and_metadata.md
  • docs/04_lin_interface_call_flow.md
  • docs/05_architecture_overview.md
  • docs/06_requirement_traceability.md
  • docs/07_flash_sequence.md
  • docs/08_babylin_internals.md (deprecated)

Vendor guidance (no binaries)

  • vendor/README.md
  • Any headers in vendor/ (if added per SDK)

Housekeeping

  • .gitignore
    Ignores reports and vendor binaries
  • reports/.gitkeep
    Retains folder structure without committing artifacts

Do NOT commit (ignored or should be excluded)

  • Virtual environments: .venv/, venv/, etc.
  • Generated test artifacts:
    reports/report.html, reports/junit.xml, reports/summary.md, reports/requirements_coverage.json
  • Python caches: __pycache__/, .pytest_cache/
  • Local env files: .env

Safe commit commands (PowerShell)

# Stage everything except what .gitignore already excludes
git add -A

# Commit with a helpful message
git commit -m "ECU framework: docs, reporting plugin (HTML metadata + requirements JSON + CI summary), .gitignore updates"

Notes

  • The plugin writes CI-friendly artifacts into reports/; theyre ignored by default but published in CI.