How to Contribute

Thank you for considering contributing. All contributions are welcome and appreciated!

Support Questions

Please don’t use the Github issue tracker for asking support questions. All support questions should be emailed to info@archive.org.

Bug Reports

Github issues is used for tracking bugs. Please consider the following when opening an issue:

  • Avoid opening duplicate issues by taking a look at the current open issues.
  • Provide details on the version, operating system and Python version you are running.
  • Include complete tracebacks and error messages.

Pull Requests

All pull requests and patches are welcome, but please consider the following:

  • Include tests.
  • Include documentation for new features.
  • If your patch is supposed to fix a bug, please describe in as much detail as possible the circumstances in which the bug happens.
  • Please follow PEP8, with the exception of what is ignored in setup.cfg. PEP8 compliancy is checked when tests run. Tests will fail if your patch is not PEP8 compliant.
  • Add yourself to AUTHORS.rst.
  • Avoid introducing new dependencies.
  • Open an issue if a relevant one is not already open, so others have visibility into what you’re working on and efforts aren’t duplicated.
  • Clarity is preferred over brevity.

Running Tests

The minimal requirements for running tests are pytest, pytest-pep8 and responses:

$ pip install pytest pytest-pep8 responses

Clone the internetarchive lib:

$ git clone https://github.com/jjjake/internetarchive

Install the internetarchive lib as an editable package:

$ cd internetarchive
$ pip install -e .

Run the tests:

$ py.test --pep8

Note that this will only test against the Python version you are currently using, however internetarchive tests against multiple Python versions defined in tox.ini. Tests must pass on all versions defined in tox.ini for all pull requests.

To test against all supported Python versions, first make sure you have all of the required versions of Python installed. Then simply install execute tox from the root directory of the repo:

$ pip install tox
$ tox

Even easier is simply creating a pull request. Travis is used for continuous integration, and is set up to run the full testsuite whenever a pull request is submitted or updated.