Development

The current development guide reflects the v1.0.3 codebase layout and toolchain.

Run locally

git clone https://github.com/busaudit/dbcUtility.git
cd dbcUtility
uv sync
uv run dbcUtility

Project map

main.py
src/
  DBCUtility.py
  dbc_editor.py
  dbc_editor_ui.py
  dbc_comparator.py
  dbc_comparator_ui.py
  multiplex_support.py
  message_layout_visualizer.py
  home_screen.py
  about_dialog.py
  search_module.py
  resource_utils.py
scripts/
  build_exe.py
  build_linux.py
  release.py
  release_linux.py
docs/
tests/

Architecture notes

  • The UI uses PyQt5.
  • DBC parsing and writing use cantools.
  • The compare stack separates text diff logic from compare UI.
  • Multiplexer handling is centralized so view, edit, compare, and visualization stay aligned.
  • Resource paths are abstracted for both source runs and PyInstaller bundles.

Testing areas noted in the repo

  • DBC editor behavior
  • Comparison engine behavior
  • Save operations
  • Comment handling
  • Signal change handling

Practical development expectations

  • Keep UI concerns out of core logic when possible
  • Preserve dirty tracking and save-review behavior when touching editor or compare flows
  • Treat multiplexed messages as first-class cases, not edge cases
  • Update docs when public behavior changes