Contributing

A web-friendly version of the current contribution guidance.

Code of Conduct

Please read and follow the Code of Conduct.

How you can contribute

Report bugs

  • Use the GitHub issue tracker.
  • Include a clear title and the exact steps to reproduce the problem.
  • Add OS, Python version, DBC Utility version, and any sample DBC files or screenshots that help.

Suggest enhancements

  • Explain the problem the feature solves.
  • Describe the proposed behavior clearly.
  • Add examples or mockups if they reduce ambiguity.

Pull requests

  • Fork the repository and create a focused branch.
  • Keep changes scoped and update docs when behavior changes.
  • Add tests when the change touches core logic.

Development setup

Prerequisites

  • Python 3.9 or later
  • Git
  • UV package manager for the recommended setup

Install and run

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

Alternative pip-based setup

git clone https://github.com/busaudit/dbcUtility.git
cd dbcUtility
pip install -r requirements.txt
python main.py

Coding standards

  • Follow PEP 8.
  • Use descriptive names and add docstrings for public functions and classes.
  • Keep UI logic and business logic separated where practical.
  • Handle Qt signals, slots, and cleanup carefully.
  • Keep documentation and screenshots up to date when user-facing behavior changes.

Pull request expectations

  1. Branch from main.
  2. Implement the change and test it manually.
  3. Update docs or release notes if the behavior changed.
  4. Submit a PR with a clear summary and screenshots when UI changed.

Commit messages

Use conventional commit style when possible:

  • feat: new feature
  • fix: bug fix
  • docs: documentation changes
  • refactor: internal restructuring
  • test: test additions or updates
  • chore: maintenance work

Testing guidance

Before opening a PR, verify the parts you touched:

  • Application starts cleanly
  • DBC files load and save
  • Compare, edit, or visualization flows touched by the change still work
  • No new console errors or warnings were introduced

License

By contributing, you agree that your contributions will be distributed under GPL v3. See License.