Contributing to PlusLib
We follow the standard GitHub Flow process. Contributions to the Plus project are welcome through GitHub pull requests.
Issue Tracking
Browse existing issues at GitHub Issues
Before creating a new issue, search to avoid duplicates
Provide detailed information including:
Error messages
Configuration files
Steps to reproduce
Expected vs actual behavior
Platform and version information
When committing changes related to a bug (partial fix, etc.), add a reference to the ticket ID in the commit log:
re #123: Fixed memory leak in vtkPlusDevice
This will automatically link the changeset to the ticket.
Development Workflow
1. Fork and Clone
git clone https://github.com/YOUR-USERNAME/PlusLib.git
cd PlusLib
2. Create Feature Branch
git checkout -b feature/my-new-feature
Use descriptive branch names:
feature/add-new-device-supportbugfix/fix-memory-leakdocs/update-calibration-guide
3. Make Changes
Follow coding conventions
Add tests for new functionality
Update documentation
Commit one fix/enhancement at a time (when possible)
4. Test Your Changes
Before committing, ensure all tests pass:
Windows:
cd PlusLib-bin
BuildAndTest.bat
Linux/macOS:
cd PlusLib-bin
./BuildAndTest.sh
Also verify:
Build PlusApp.sln ALL_BUILD project with no errors (Windows)
All existing tests still pass
New tests are added for new functionality
5. Commit Changes
Write clear, descriptive commit messages:
git commit -m "Add support for new ultrasound device
- Implemented vtkPlusNewDevice class
- Added configuration parameters for device settings
- Included unit tests
- Updated documentation
re #456"
Commit message guidelines:
First line: brief summary (50 chars or less)
Blank line
Detailed description of what and why
Reference issue numbers with “re #123”
6. Push and Create Pull Request
git push origin feature/my-new-feature
Then create a pull request on GitHub:
Go to your fork on GitHub
Click “Pull Request” button
Provide a clear title and description
Reference related issues
Code Review Process
All contributions require code review
Address reviewer feedback promptly
Maintain clean commit history (squash commits if requested)
Be responsive to questions and suggestions
Monitoring Build Status
After your pull request is merged, monitor the dashboard:
Check about 30 minutes after your commit to ensure all automatic builds still pass.
You can register on CDash to receive automatic notifications about build failures.
What to Contribute
Bug Fixes
Fix reported issues
Improve error handling
Fix memory leaks
Correct documentation errors
New Features
New device support
New calibration algorithms
Performance improvements
Additional test coverage
Documentation
Improve existing documentation
Add usage examples
Document undocumented features
Fix typos and clarify unclear sections
Testing
Add unit tests
Add integration tests
Improve test coverage
Add test data
Communication
GitHub Issues: Bug reports and feature requests
GitHub Discussions: Questions and general discussion
Pull Requests: Code contributions and reviews
Getting Help
If you need help with your contribution:
Check the Developer Guide
Search existing issues and discussions
Ask questions in GitHub Discussions
Reference similar existing code
License
By contributing to PlusLib, you agree that your contributions will be licensed under the same BSD-style license as the project.
See License for details.