Skip to content
This repository has been archived by the owner on Apr 2, 2021. It is now read-only.

Latest commit

 

History

History
33 lines (25 loc) · 1.69 KB

CONTRIBUTING.md

File metadata and controls

33 lines (25 loc) · 1.69 KB

Contributing Guidelines

Thank you for considering contributing!

Pull Request Checklist

Before sending your pull requests, make sure you followed this list.

  • Check if my changes are consistent with the guidelines.
  • Run unit tests.
  • Maintainers will look to review the PR as soon as possible. If there is no traction for some time, you're welcome to bump the thread.
  • All PRs require at least one reviewer.

General guidelines and philosophy for contribution

  • If you provide a new output include an end to end example.
  • Include unit tests when you contribute new features, as they help to a) prove that your code works correctly, and b) guard against future breaking changes to lower the maintenance cost.
  • Bug fixes also generally require unit tests, because the presence of bugs usually indicates insufficient test coverage.
  • Keep API compatibility in mind when you change code,
    • When you contribute a new feature to protoc-gen-state, the maintenance burden is (by default) transferred to the protoc-gen-state team. This means that benefit of the contribution must be compared against the cost of maintaining the feature.
Adding a new output type
  • Add to the state/options.proto enum with the name of your output type
  • Implement the Outputter interface for your new output type. (might be as easy as adding to GenericOutputter.SetOutputType
  • Create an e2e example implementing the new output type. Name this directory the same as the field in the state/options.proto enum

Releasing

Your changes will be released with the next version release.