# Contributing to LMFlow

Thanks for your interest in LMFlow! Our LMFlow team appreciate contributions in any form:

  * issues
  * documentation improvements
  * new features
  * bug fixes
  * and particularly, runnable examples with SOTA models or techniques.

For details of the contribution guidelines, please kindly refer to the following sections.

## How to Contribute

### How to create Pull Requests (PR)

One may refer to the following guideline for general Pull Request instructions [GitHub Pull Request Examples](https://gist.github.com/Chaser324/ce0505fbed06b947d962).

In short, every PR has following steps:

  1. Fork the repository under your own account.
  2. Clone and install the repository to your local machine.
  3. Add your own modifications.
  4. Run tests and make sure everything is working.
  5. Push to your own remote repository.
  6. Check the instructions in the [guidebook](https://gist.github.com/Chaser324/ce0505fbed06b947d962), make sure the remote modification is update-to-date with LMFlow's main branch.
  7. If not, go back to Step 3 and resolve the conflict.
  8. If so, create your PR. We will be reviewing the code soon and merge the changes into main once the review is finished :smile:

Currently, we enthusiastically welcome contributions of documentations and runnable examples. Runnable examples are collected under `contrib/{YOUR_NAME}` and can be used by everyone! :rocket:

## Style Guidelines

### Code Style

LMFlow adopts [google coding style](https://google.github.io/styleguide/) in principle. We would encourage every contribution to have the same style as well.

### Git Commits

We would appreciate the commit to follow the principles below:

  * Describe the message concisely about what this commit do
  * Describe the message in imperative mood, starting with a capitalized verb, e.g., "Fix typo in README" or "Add support LISA for model parallelism".
  * Squash commits to make sure that each commit describes a whole fix/feature

Thank you for your interest in LMFlow! Any suggestions and contributions would be greatly appreciated.
