First of all, thanks for taking the time to contribute to the project!
Following is a basic set of guidelines for contributing to this repository and instructions to make it as easy as possible.
Parts of this guidelines are taken from https://github.com/atom/atom/blob/master/CONTRIBUTING.md
Code of conduct is available in the repository
For asking questions, please make sure to use Discussions instead of Issues.
- Use the present tense ("Add feature" not "Added feature")
- Use the imperative mood ("Move cursor to..." not "Moves cursor to...")
- Limit the first line to 72 characters or less
- Reference issues and pull requests liberally after the first line
- Project uses Karma commit message format
This project uses ktlint, with ktlint-gradle plugin. This makes it easy to set up ktlint locally (ktlint is run on every pull request, together with full test suite).
To run ktlint locally, run:
./gradlew ktlintCheck
It is also possible to fix some of the issues automatically, by running:
./gradlew ktlintFormat
It is recommended to set up git pre-commit hook to format all changed files:
./gradlew addKtlintFormatGitPreCommitHook
It is also possible to do only check, instead of format:
./gradlew addKtlintCheckGitPreCommitHook
If using IntelliJ IDEA IDE, ktlint rules can also be applied to IntelliJ IDEA project:
./gradlew ktlintApplyToIdea
Since this project just implements MsgPack serialization format for kotlinx.serialization library, make sure that all changes made stay as close as possible to API of default kotlinx.serialization formats, as well as stick to MsgPack spec.