Contributing

Contributions to this project are welcome, from bug reports to pull requests. The project is maintained by a community of volunteers.

Public Domain Dedication

This project is dedicated to the public domain. As spelled out in the LICENSE and CONTRIBUTING.md files:

The project is in the public domain within the United States, and copyright and related rights in the work worldwide are waived through the CC0 1.0 Universal public domain dedication.

All contributions to this project will be released under the CC0 dedication. By submitting a pull request, you are agreeing to comply with this waiver of copyright interest.

Development Setup

To get started with development, please follow the Installation Guide to set up your system dependencies and Python virtual environment.

It is also recommended to clone the congress-legislators submodule, which is used by some tasks:

git submodule update --init

Running Tests

The project includes a suite of unit tests. To run them, execute the run script in the test/ directory:

python test/run

Unit tests are strongly encouraged for any new code contributions.

Code Quality

This project uses pyflakes for static code analysis to catch common errors. The CI configuration in .travis.yml runs pyflakes on all task and test files. You can run this locally to check your changes:

# First, install pyflakes
# pip install pyflakes

pyflakes congress/tasks/*.py
pyflakes test/*.py

Submitting Changes

  1. File an Issue: The best way to file a bug report or suggest a feature is to open an issue on GitHub.
  2. Pull Requests: Pull requests with patches are welcome. Please ensure your changes pass the unit tests and pyflakes checks before submitting.