Skip to content
Li, Xizhi edited this page Nov 30, 2017 · 7 revisions

How To Contribute To NPLRuntime

Generally, we follow the git flow rules. master branch is locked on github, the dev branch is now the default branch.

To contribute you either fork or clone the repository and check out the dev branch, which is the default branch.

  • Create a local feature branch with a sensible name based on latest dev branch
  • Make changes to the code and commit to your local feature branch
  • When you have passed all the tests, send pull request or merge directly to the dev branch. Epic feature should use pull request and ask for some experienced guy for code review.
  • Periodically, administrators will send pull request to master branch from dev branch for final release review and approval. master branch is considered fairly stable, so it is a locked branch that requires all automatic CI tests to pass and at least one experienced code reviewer approving it. In most cases, administrators will also release the given dev branch to one of our production environment that has a large user base before confirming the pull quest.
  • Once it is done, you can delete your feature branch both locally and remotely.
  • Switch and pull from dev branch again to begin your next feature dev.

for lazy contributors, you can also create your own dev branch and sync with the remote dev branch manually at each issue iteration. But a feature branch just makes life easier when you are working on multiple issues at the same time and with feature branch, you can backup your repo remotely and safely at any time.

When to Use What Branch

  • For developers, it is recommended to use dev branch and report issues to us.
  • For releasing software, one should always use the master branch. Master branch is just snapshot on the dev branch, when the main author of NPL thinks it is stable.
  • Tagged versions are considered more stable because we will only tag release version when we have used in our own product for some time. But tagged version is usually old, master version is the recommended and latest stable version.

Coding Guide Line

Clone this wiki locally