Contribution Guidelines

How to Contribute to SmallTrain

These basic guidelines show you the SmallTrain contribution process.

The SmallTrain Contribution Process

SmallTrain operates similarly to most open source projects on GitHub. However, if you’ve never contributed to an open source project before, here is the basic process.

  1. Figure out what you’re going to work on. If you don’t know what you want to work on, or are just looking to get more acquainted with the project, here are some tips to help you:
    • Look through the issues and see if there are any issues you know how to fix.
    • Issues that are confirmed by other contributors tend to be better to investigate.
    • We also maintain some labels for issues which are likely to be good for new people.
  2. Figure out the scope of your change and reach out for design comments on a GitHub issue if it’s large. If a GitHub issue is large, reach out for design comments. If not, just get cracking.
  3. Code it out.
  4. Open a pull request. If you are not ready for the pull request to be reviewed, tag it with [WIP]. We will ignore it when doing review passes.
  5. Iterate on the pull request until it’s accepted. For the most common issues in pull requests, take a look at Common Mistakes below:
    • Did you add tests?
    • Is your pull request too long?
    • In cases where the behavior of your code is nuanced, please include extra comments and documentation to allow us to better understand the intention of your code.

Proposing New Features

When you discuss a new feature idea, please include as much information as you can, any accompanying data, and your proposed solution.

Reporting Issues

  1. When you identify an issue, please search through the list of existing issues, and then, if you do not find a similar issue, create a new one.
  2. Supply as much information as you can reproduce the problematic behavior, and include any additional insights like the behavior you expect.

Implementing Features or Fixing Bugs

If you want to fix a specific issue, it’s best to comment on the individual issue with your intent. However, we do not lock or assign issues except in cases where we have worked with the developer before. We would like to discuss your proposed solution.

Improving Documentation & Tutorials

We aim to produce high quality documentation and tutorials. On rare occasions that content includes typos or bugs. If you find something you can fix, send us a pull request for consideration.

Improving Code Readability

Improve code readability helps everyone. We welcome your help in improving code readability.