We welcome contributions from the community! Whether you're fixing a bug, adding new features, or improving documentation, your help is greatly appreciated.
If you're adding new features or fixing bugs, please write tests to cover your changes. Minimum coverage for new changes will be from 65%
We use Semantic Versioning for versioning. For the versions.
To maintain a clean and readable project history, we use a rebasing strategy. Here are the steps to follow:
-
Create a Feature Branch
- Always create a new branch for your work, based off the latest
main
branch.
- Always create a new branch for your work, based off the latest
-
Keep Your Branch Updated
- Regularly rebase your branch with the latest
main
branch to keep it up to date.
- Regularly rebase your branch with the latest
-
Interactive Rebase to Squash Commits
- Before submitting your pull request, use interactive rebase to squash your commits into a single commit.
- This will open an editor with a list of your commits. Change
pick
tosquash
(ors
) for all but the first commit. This combines the changes into a single commit. - Save and close the editor to complete the rebase.
-
Force Push Your Branch
- After squashing your commits, force push your branch to your forked repository.
-
Submit a Pull Request
- Go to the original repository and create a pull request. Provide a clear and detailed description of your changes.
Please avoid merging main
into your feature branch. Instead, rebase your feature branch onto main
.
Type | Description |
---|---|
feature: |
Introduce a new feature |
fix: |
A bug fix |
tests: |
Writting tests |
If you find a bug or have a feature request, please open an issue on GitHub. When reporting an issue, please include:
- A clear and descriptive title.
- A detailed description of the problem or request.
- Steps to reproduce the issue, if applicable.
- Any relevant logs, screenshots, or other information.
To ensure a consistent codebase, we use SwiftLint to enforce coding standards and style guidelines. Please make sure your code complies with SwiftLint rules before submitting a pull request.
For contributors external to Sage, we require a CLA to be signed before we can accept your pull request. Please find links to the relevent documents below: