Contributing Guidelines
Before Contributing
Before contributing, please read our Code of Conduct to understand the standards of behavior we expect from our contributors.
Welcome to the contributing guidelines for the Optics Framework! We appreciate your interest in contributing to our project.
How to Contribute
We welcome contributions in the form of bug reports, feature requests, documentation improvements, and code contributions. To contribute, follow these steps:
-
Fork the Repository: Click the "Fork" button on the top right of the repository page to create a copy of the repository in your GitHub account.
-
Clone the Repository: Clone the forked repository to your local machine using the following command:
git clone <your_forked_repository_url>
- Create a Branch: Create a new branch for your contribution using the following command:
git checkout -b <branch_name>
-
Make Changes: Make your changes to the codebase, documentation, or tests.
-
Commit Changes: Commit your changes with a descriptive commit message.
Commit Message Format
Ensure that your commit messages follow the Conventional Commits format for consistency and clarity (e.g., feat: add new feature
, fix: resolve bug #123
).
Signing Commits
Sign your commits using the Developer Certificate of Origin (DCO) to certify your contribution. Use git commit -s
to add a Signed-off-by
line.
-
Push Changes: Push your changes to your forked remote repository.
-
Create a Pull Request: Create a pull request from your forked repository to the main repository.
Referencing Issues in Pull Requests
If you are fixing an issue, reference the issue number in your pull request message using the format Fixes #<issue_number>
to link it automatically.
- Review and Merge: The maintainers will review your pull request and merge it if it meets the project's guidelines.
Reporting Issues
To report a bug, follow these steps:
-
Check Existing Issues: Check if the bug has already been reported by searching the existing issues.
-
Create a New Issue: If the bug has not been reported, create a new issue with the following details:
-
Issue Title: A descriptive title that summarizes the bug.
-
Description: A detailed description of the bug, including steps to reproduce it.
-
Expected Behavior: A description of what you expected to happen.
-
Actual Behavior: A description of what actually happened.
-
Environment: Details about your environment, such as the operating system, Python version, and any other relevant information.
-
Screenshots: If applicable, include screenshots that help illustrate the bug.
-
Labels: Add appropriate labels to the issue, such as
bug
orenhancement
.