Contributing#

StaticFrame welcomes contributions to code and documentation via GitHub pull requests. For ideas on what to contribute, please see open issues on GitHub, particularly those marked “good first issue.”

static-frame/static-frame#issues

If you have an idea for a new feature for which there is not already an issue, please create an issue first, before beginning development, so that it can be discussed.

Preparing an Environment#

StaticFrame is developed on Python 3.14.

To prepare a StaticFrame repository and environment, follow the following steps.

Clone the git repository (or your fork):

git clone https://github.com/static-frame/static-frame.git

Using Python 3.14, Create a virtual environment with StaticFrame’s development requirements:

cd static-frame
python3 -m venv .env-sf
source .env-sf/bin/activate
pip install -r requirements-dev-3_14.txt

Running Tests & Static Analysis#

Note

Running StaticFrame integration tests may clear your clipboard. This is an artifact of using Python’s Tk for clipboard interaction in Frame.to_clipboard() and Frame.from_clipboard().

PyTest can be used to run StaticFrame tests. Alternatively, Invoke (installed via requirements-test.txt) can be used to run tests and static analysis. To run all test, enter the following:

invoke test

When iterating on code, running fast unit tests is generally sufficient:

invoke test -u

To run MyPy and Pylint static analysis, use the following:

invoke mypy
invoke lint

All tests and static analysis are run via GitHub Actions on pull requests, and all tests and static analysis must pass for a PR to be accepted.

Awknowledgements & Contributors#

Thanks to our many GitHub contributors:

static-frame/static-frame

Thanks to former and current Research Affiliates staff who have contributed greatly to the design of StaticFrame:

  • Brandt Bucher

  • Charles Burkland

  • Guru Devanla

  • John Hawk

  • John McCloskey

  • Adam Kay

  • Mark LeMoine

  • Myrl Marmarelis

  • Tom Rutherford

  • Yu Tomita

  • Quang Vu