Contributing to PyForestScan¶
Thank you for contributing to PyForestScan! Your involvement helps make this project a great tool for point cloud data processing and visualization of forest structure.
Code of Conduct¶
By participating in this project, please follow our Code of Conduct.
How Can I Contribute?¶
Reporting Bugs¶
-
Check Existing Issues — Before opening a new bug report, see if the issue has already been reported. If it has, add any additional details in a comment.
-
Submit a Report — If the issue hasn't been reported, open a new issue and fill out the provided template.
Suggesting Enhancements¶
Have an idea to improve PyForestScan? Please open an issue to discuss your suggestion.
Pull Requests¶
To contribute via pull requests:
- Fork the Repository — Fork the PyForestScan repository and clone it locally.
- Create a Branch — Make changes in a new branch. Use descriptive names like
feat/
,fix/
, ordocs/
followed by the feature or fix name. - Commit Your Changes — Write a clear commit message describing your changes.
- Push to Your Fork — Push the branch to your fork on GitHub.
- Create a Pull Request — Open a pull request (PR) in the PyForestScan repository. Link any relevant issues.
- Code Review — A maintainer will review your changes. You may need to make updates based on feedback.
- Merge — Once approved, your PR will be merged into the main codebase.
Style Guidelines¶
Python¶
- Follow the PEP 8 style guide.
- Use type hints in functions.
- Add documentation to public APIs.
Git Commit Messages¶
- Use present tense ("Add feature" not "Added feature").
- Limit the first line to 72 characters or fewer.
- Reference related issues and PRs when relevant.
Releasing a New Version¶
Steps for Creating a New Release¶
-
Ensure
main
is up to date: Confirm all changes intended for the release are merged into themain
branch. -
Update the version: Manually bump the version number in
setup.py
based on the type of release (major, minor, or patch) following semantic versioning. -
Create a new tag: Tag the release with the new version using the format
vX.X.X
. For example:1 2
git tag v1.2.0 git push origin v1.2.0
-
Deploy to PyPI: The GitHub Actions workflow will automatically build and deploy the package to PyPI once the tag is pushed.
Semantic Versioning Guidelines¶
- Major version: For incompatible API changes.
- Minor version: For backward-compatible features.
- Patch version: For backward-compatible bug fixes.
Additional Notes¶
- Ensure compatibility with the latest dependencies.
- Update documentation when adding or changing features.