Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Contributing

Contributions are welcome across the OEDI-SI project. This page covers where to contribute, how to set up a development environment, and the checks your change should pass.

Where to contribute

RepositoryWhat lives there
oedisiThe framework, oedisi.types data models, and the oedisi CLI.
oedisi-componentsReusable HELICS components (feeders, estimators, recorders, …).
oedisi-frontend-appThe web UI and its FastAPI backend.

Development setup

Clone the repository you want to work on and install it with its development dependencies:

git clone https://github.com/openEDI/oedisi.git
cd oedisi
pip install -e ".[test]"      # framework + dev tools (pytest, ruff, black, mypy, …)
pre-commit install            # run formatters/linters on each commit

The frontend app uses npm install plus uv --directory server sync; see the install guide.

Run the checks

Before opening a pull request, make sure the tests and quality gates pass:

pytest                 # unit + integration tests
ruff check .           # lint
black --check .        # formatting
mypy src               # type checking

The oedisi repository also has an end-to-end script at tests/runtests.sh.

Contributing a component or algorithm

New simulation blocks are the most common contribution:

Contributing to the docs

These docs are a MyST (Jupyter Book) project in docs/.

Pull requests & issues

License

By contributing, you agree that your contributions are licensed under the project’s BSD 3-Clause License (see Cite & license).