Contribute to Falcon

Kurt Griffiths is the creator and current maintainer of the Falcon framework. He works with a growing team of friendly and stylish volunteers like yourself, who review patches, implement features, fix bugs, and write docs for the project.

Your ideas and patches are always welcome!

IRC

If you are interested in helping out, please join the #falconframework IRC channel on Freenode. It’s the best way to discuss ideas, ask questions, and generally stay in touch with fellow contributors. We recommend setting up a good IRC bouncer, such as ZNC, which can record and play back any conversations that happen when you are away.

Mailing List

The Falcon community maintains a mailing list that you can use to share your ideas and ask questions about the framework. We use the appropriately minimalistic Librelist to host the discussions.

To join the mailing list, simply send your first email to falcon@librelist.com! This will automatically subscribe you to the mailing list and sends your email along to the rest of the subscribers. For more information about managing your subscription, check out the Librelist help page.

All contributors and maintainers of this project are subject to our Code of Conduct. We expect everyone who participates on the mailing list to act professionally, and lead by example in encouraging constructive discussions. Each individual in the community is responsible for creating a positive, constructive, and productive culture.

Discussions are archived for posterity.

Submit Issues

If you have an idea for a feature, run into something that is harder to use than it should be, or find a bug, please let the crew know in #falconframework and/or by submitting an issue. We need your help to make Falcon awesome!

Pay it Forward

We’d like to invite you to help other community members with their questions in IRC, and to peer-review pull requests. If you use the Chrome browser, we recommend installing the NotHub extension to stay up to date with PRs.

Code of Conduct

All contributors and maintainers of this project are subject to our Code of Conduct.

Pull Requests

Before submitting a pull request, please ensure you have added new tests and updated existing ones as appropriate. We require 100% code coverage. Also, please ensure your coding style follows PEP 8 and doesn’t make pyflakes sad.

Additional Style Rules

  • Docstrings are required for classes, attributes, methods, and functions.

  • Use napolean-flavored docstrings to make them readable both when using the help function within a REPL, and when browsing them on Read the Docs.

  • Format non-trivial comments using your GitHub nick and an appropriate prefix. Here are some examples:

    # TODO(riker): Damage report!
    # NOTE(riker): Well, that's certainly good to know.
    # PERF(riker): Travel time to the nearest starbase?
    # APPSEC(riker): In all trust, there is the possibility for betrayal.
    
  • Commit messages should be formatted using AngularJS conventions (one-liners are OK for now but bodies and footers may be required as the project matures).

  • When catching exceptions, name the variable ex.

  • Use whitespace to separate logical blocks of code and to improve readability.

  • Do not use single-character variable names except for trivial indexes when looping, or in mathematical expressions implementing well-known formulae.

  • Heavily document code that is especially complex or clever!

  • When in doubt, optimize for readability.