Skip to content

Latest commit

 

History

History
97 lines (69 loc) · 5.08 KB

CONTRIBUTING.md

File metadata and controls

97 lines (69 loc) · 5.08 KB

How to Contribute

Welcome to Funcatron! Thanks for dropping by. We're an open, fun, and friendly community, and we welcome everyone to join us and make contributions. And we're not just talking about code contributions. We welcome and your questions, bug reports, new feature proposals, documentation and examples, website improvements and testing. We appreciate it all.

Ask Questions

The easiest place to start is to join our mailing list and Gitter channel. Apache has some great guidelines for mailing list contributions.

And we're committed to using the mailing list for transparency in the group. It didn't happen if it didn't happen on the mailing list.

File a Bug Report

We use GitHub issues to track our bugs. Please click New Issue and give us as much information about the bug as you have.

Remember: friends don't let friend's bugs go unreported.

Propose an Improvement or New Feature

We also use GitHub issues to track our features and releases. Please click New Issue to get started.

Some suggestions:

  • Focus on the problem, not the solution.
  • Be detailed. The community wants to understand the result you're looking for, and as importantly, why.
  • If you want to participate in the implementation, that is awesome, include that in the issue.
  • Especially if you're planning to contribute code for the solution, you should still file an issue before you start implementing. It will let the rest of the community participate and could save you some serious time.

Test

We'll be releasing new versions of Funcatron every few weeks. Our process is still ad hoc, but we will announce releases on the mailing list and ask for testing help there.

Contributing Code

Like all open source projects, Funcatron is built, maintained, and improved by a team of volunteers, so needless to say, we welcome code contributions.

By contributing to this project, you're agreeing to make your contributions under the same license as the license of the project, which is the Apache License 2.0 (LICENSE in this project). This is sometimes referred to as "inbound=outbound". To make this understanding explicit -- and for you to assert that you have the right to make the contribution -- commits must be signed off indicating acceptance of the Developer Certificate of Origin 1.1. A nice explanation of the DCO has been provided by Karl Fogel in his excellent book Producing Open Source Software. An explanation of the "sign-off" procedure is also avaialble from the notorious Linus Torvalds.

Before You Start Coding

Fork the repository on GitHub and create a topic branch for your work. Give your branch a meaningful name to reflect the problem you're working on. Digital Ocean has a more detailed step-by-step for how to do this if you're not familiar.

Make sure the problem you're working on has an open GitHub issue. It is super easy to create a new issue, so no excuses. Your goal should be to stay focused on one issue per contribution.

While You're Coding

Stay hydrated.

The community will participate in your contribution through the GitHub issue you're working off. So, stay connected there, and take that discussion into account as you're working.

Check the formatting rules from existing code (no trailing whitespace, mostly default indentation). Please ensure your new code is well-tested, and if possible, any issue fixed is covered by one or more new tests.

When Your Ready to Contribute

Make commits to your branch using the following guidelines:

  • Begin your subject line with a capital; end it without a period; keep it under 50 characters.
  • Use the imperative mood in the subject line: "Add x", "Fix y", "Support z", "Remove x" ...
  • Wrap the body at 72 characters.
  • Use the body to explain what and why instead of how.
  • Finish the commit message with the sign off: Signed-off-by: Your Name <your@e.mail>

Push your code to your fork of the repository and make a pull request. No WIP, please. If you need help, raise your hand in the issues you're working on.

Questions

If you have any questions about the contribution process, please reach out to Aaron or David on our Gitter channel.