Developer Guide
Thank you for your interest in contributing to SlicerCART! This document provides guidelines and instructions for contributing to the project.
Code of Conduct
We are committed to providing a friendly, safe, and welcoming environment for all contributors. Please be respectful and constructive in your interactions.
Coding Standards
Max 80 columns for a single code line
This project uses the PEP8 convention for naming. Reminder:
MyClass
for naming a ClassMY_CONSTANT
for naming a CONSTANTmy_variable
for naming a variabledefine_my_function()
for naming a function (always start with an action verb)Function definition example (add docstrings for explanations):
def my_function(arg1): """ Add such a descriptive comment at the beginning of each function in order to explain clearly to the next user what the function does. :) Args arg1: first argument """
Use
TODO:
for naming To Dos in the codeAdd one blank line between each function for clarity
Useful comments are strongly encouraged
Want to report a feature improvement or bug? Go on SlicerCART Github.
- On Github, 1 issue for 1 Pull Request. Always create a branch.
git checkout -b 'feature-name'
Core Organization
See Repository Organization for the repository files and folders tree structure.
See Class Organization for the class diagrams of the repository scripts.
Development Workflow
Make Your Changes
Write clean, readable code
Follow our coding standards
Add tests for new features
Update documentation as needed
Test Your Changes
Run the test suite
Test manually in 3D Slicer
Check for any regressions
Commit Your Changes
Write clear commit messages
Keep commits focused and atomic
Reference issues if applicable
Submit a Pull Request
Push your changes to your fork
Create a pull request from your branch
Describe your changes in detail
Link to any related issues
Pull Request Guidelines
Before Submitting
Rebase on latest upstream changes
Resolve any conflicts
Run all tests
Update documentation
PR Description
Clearly describe the changes
Explain the motivation
List any breaking changes
Include screenshots if relevant
Review Process
Address reviewer comments
Make requested changes
Keep the discussion constructive
Useful links
Getting Help
If you need help:
Join our discussions on GitHub
Ask questions in issues
Contact the maintainers
Thank you for contributing to SlicerCART!