Thank you for your interest in contributing to dcmspec!
We welcome bug reports, feature requests, documentation improvements, and code contributions.
-
Clone the repository and create your feature branch:
git clone https://github.com/dwikler/dcmspec.git cd dcmspec git checkout -b my-feature-branch -
Install all development dependencies (including optional features):
poetry install --with dev poetry run pip install ".[gui,pdf]"
Note: This will install all development, GUI, and PDF dependencies so you can test and work on every feature. For details on what each dependency group includes, see the Dependencies and Optional Features section in the installation guide.
- Activate the virtual environment (choose one):
-
Start a new Poetry shell:
poetry shell
-
Or, activate in your current shell (Poetry 1.2+):
poetry env activate
Then run commands like:
pytest iod-explorer
Alternatively, you can use
poetry runfor each command without activating the environment:poetry run pytest poetry run iod-explorer
-
Make your changes
- Add or update code in
src/dcmspec/ - Add or update documentation in
docs/ - Add or update tests in
src/dcmspec/tests/
- Add or update code in
-
Run tests and check code style:
pytest poetry run ruff check src/
Note:
The project's Ruff configuration is defined inpyproject.tomland will be used automatically. -
Build and check documentation (if applicable):
- Build and preview the docs locally:
mkdocs serve
- Build and preview the docs locally:
-
Commit and push your changes:
git add . git commit -m "Describe your change" git push origin my-feature-branch
-
Open a Pull Request
- Go to https://github.com/dwikler/dcmspec and open a PR from your branch.
- Follow the PEP8 style guide.
- Write clear commit messages.
- Add or update tests for new features or bug fixes.
- Update documentation as needed.
- For large changes, consider opening an issue or starting a discussion first to discuss your proposal.
If you have questions or need help, open an issue or start a discussion.
Thank you for helping make dcmspec better!