Welcome to Nirvana! This document shows you how to contribute to the code base. Plaese file issues or pull requests if you find something is missing or incorrect.
First, you can fork this repository via the Fork
button on the top of this page (If you like Nirvana, please star it :).
After that, you can immediately clone https://github.com/<your-account-name>/nirvana
to your local path $GOPATH/src/github.com/caicloud/nirvana
.
There are some environment requirements:
Nirvana is in rapid development, many things are not complete. There are many components that you can dig into:
- Docs
- English
- 中文
- ...
- Loggers
- File Logger
- Remote Logger
- ...
- Operators
- More Powerful Vaditor
- ...
- Plugins
- OpenAPI Generation
- Clients Generation
- go
- graphql
- ...
- Test Cases
- Core
- API Definition
- HTTP Service
- Router
- Code Refactor
- ...
- Bugs
- File Issues
- Fix Issues
- Fix Typo && Comments
- ...
We are waiting for your thoughts and actions!
Before you starting to write codes for Nirvana, we strongly recommend you file an issue to show us what you think.
Here are some workflows for you:
- Search in Nirvana Issues to check there is no same issue.
- File a issue to describe the feature which you want to drive.
- Discuss with other contributors and modify your design if it's necessary.
- Finalize your design.
- Implement it and push to your own repository.
- Create a pull request to Nirvana.
- Code review and modify your codes if it's necessary.
- Merge your pull request.
- Find an issue which you are intersted in.
- Take the works by discussing with issue author and code owners.
- Implement it and push to your own repository.
- Create a pull request to Nirvana.
- Code review and modify your codes if it's necessary.
- Merge your pull request.
- Modify and push to your own repository.
- Create a pull request to Nirvana.
- Code review and modify your codes if it's necessary.
- Merge your pull request.
Nirvana use an automatic tool to manage the project. Its basic functionalities is assigning pull requests to reviewers and merging pull requests if it received /lgtm
and /approve
.
Many directories of Nirvana have OWNERS
, these files contains github account names of reviewers and approvers.
- Reviewers can review pull requests and reply
/lgtm
if they are satisfied with those pull requests. - Approvers can provide a final approval by
/approve
to indicate whether a change to a directory or subdirectory should be accepted.
If a pull request collected /lgtm
and /approve
, it will be merged in a short duration.