Thank you for your interest in contributing to lib9c! Contributions from the community are essential to the success and growth of the project. This document outlines the steps to contribute, the coding standards we follow, and how to submit your contributions for review.
Despite Lib9c has a large codebase, the lack of documents makes hard to overview whole project and contribute. Contributions are welcome, whether it's improving documentation, adding code comments, or even fixing typos.
If you found an issue in Lib9c, feel free to report an issue to our project.
Just go to Lib9c repository and push New issue
button to describe what you found.
You can also write your own code to improve Lib9c. You can contribute both resolving existing issue and new improvements.
Lib9c is open source project, so you can fork Lib9c into your own account and can make changes.
- On Lib9c, click
Fork
button on top of the page to make your fork. - Clone repository to your local machine following this command
$ git clone https://github.com/{your-name}/lib9c.git # or using github cli $ gh repo clone {your-name}/lib9c.git
Lib9c's base working branch is development
. In most cases, you can start your work from this
branch.
Following commands can help you to prepare your work.
$ cd lib9c
$ git checkout development
$ git pull origin development
$ git checkout -b {new-branch-name} # Please check branch naming rule in appendix
Now you are ready to make your changes!
Write your codes and leave commits. We recommend to divide commits in small steps to see how your work flows and code changes. Rebasing your work can be good strategy for clear work history. If you make any changes, you must write/fix tests on your changes.
You can test your code integrity by running this command:
$ dotnet test
ALL the tests must be passed including all the prior tests. If you have no tests for your new feature or break existing test, your contribution could be rejected.
Passed all tests? Now it's time to make a pull request to upstream repo.
- Connect to github for your lib9c (https://github.com/{your-name}/lib9c/pulls) and
hit
New pull request
button on top of the screen. - Set proper base and working branch.
- Check your changes is right thing to make PR.
- Click
Create pull request
and describe your work.- Please set assignee to you and label to represent your work.
- Once you have done writing your work, click
Create pull request
and that's it.
- PR comes into upstream repository.
- Assign main reviewer and review.
- Improve PR communicating with contributor.
- One or more change requests can be send to contributor.
- Final decision to merge or reject PR.
Lib9c has general branch naming rule which has {prefix}/{body}/{suffix}
structure.
This branch naming rule is not forced but highly recommended to recognize which type of PR is yours.
- feature
- bugfix
- date (e.g., YYYYMMDD)
- revision (e.g., some digits)
- related base version (e.g., v200210)
If you want to work with your local [Libplanet], you can fill LibplanetDirectory
property in Directory.Build.props
file.
When making a pull request, please do not include the LibplanetDirectory
change.