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