|
| 1 | +# Contributing to MicroStream Client SDK |
| 2 | + |
| 3 | +Thank you for considering contributing to MicroStream Client SDK! Here are some guidelines to help you get started: |
| 4 | + |
| 5 | +## How to Contribute |
| 6 | + |
| 7 | +1. Fork the repository. |
| 8 | +2. Create a new branch for your feature or bugfix. |
| 9 | +3. Make your changes. |
| 10 | +4. Commit your changes with a clear and descriptive commit message by following [Conventional Commits](https://www.conventionalcommits.org). |
| 11 | + |
| 12 | + [Commitizen](https://commitizen.github.io/cz-cli) is set up in the repo, so you can use that for easier commit message formatting. |
| 13 | + |
| 14 | +5. Push your changes to your fork. |
| 15 | +6. Create a pull request to the main repository. |
| 16 | + |
| 17 | +## Reporting Issues |
| 18 | + |
| 19 | +If you find a bug or have a feature request, please create an issue on GitHub. Provide as much detail as possible to help us understand and address the issue. |
| 20 | + |
| 21 | +## Code Style |
| 22 | + |
| 23 | +Please follow the existing code style and conventions. Ensure your code is well-documented and includes comments where necessary. |
| 24 | + |
| 25 | +## Testing |
| 26 | + |
| 27 | +If applicable, add tests for your changes and ensure all existing tests pass. |
| 28 | + |
| 29 | +## Automated Release Process |
| 30 | + |
| 31 | +We use [Semantic-Release](https://semantic-release.gitbook.io/semantic-release) to automate the release process. This ensures that versioning and changelog generation are handled automatically based on commit messages. |
| 32 | + |
| 33 | +### Steps for Automated Release |
| 34 | + |
| 35 | +1. Ensure your commit messages follow the [Conventional Commits](https://www.conventionalcommits.org) specification. This is crucial for the automated release process to work correctly. |
| 36 | +2. When your pull request is merged into the `main` branch, the release process will be triggered automatically. |
| 37 | +3. The release process will: |
| 38 | + - Analyze commit messages to determine the next version. |
| 39 | + - Generate release notes. |
| 40 | + - Create a new release on GitHub. |
| 41 | + - Update the changelog. |
| 42 | + |
| 43 | +## Additional Resources |
| 44 | + |
| 45 | +- [Semantic Release Documentation](https://semantic-release.gitbook.io/semantic-release) |
| 46 | +- [Commitizen Documentation](https://commitizen.github.io/cz-cli) |
| 47 | + |
| 48 | +Thank you for your contributions! |
0 commit comments