Skip to content

Latest commit

 

History

History
77 lines (53 loc) · 4.17 KB

CONTRIBUTING.md

File metadata and controls

77 lines (53 loc) · 4.17 KB

Contributing

🤝 All contributions are welcome

Reporting an issue

If you encounter a bug or unexpected behavior when using this package please create an issue and prefix the issue title with bug: and add the bug label.

Example title:

bug: lorem ipsum

Requesting a feature

The main goal of this project is to provide automatic mocking for all of the OpenAI API endpoints. If an endpoint or specific feature/behavior of an endpoint is currently not supported, chances are that it's already on the roadmap. If you don't find the feature you need already in the issues please add a new issue and prefix the title with feat: and add the enhancement label.

Example title:

feat: lorem ipsum

Roadmap

The roadmap is just a ranking of the currently open issues and no hard dates are set at this point for any fix or new feature.

I have added version release milestones to some of the issues to give a sense of what is coming in what order. View milestones here.

I (Michael) am the BDFL of the project and can and will arbitrarily rank issues according to my own needs (and those of my employer) but for the most part I try to evaluate priority of issues based on a 2-dimensional system that looks at effort and impact.

  • Effort is a rough estimate of whether something will take a lot of work, some work, or little work to implement
  • Impact is a rough estimate of how important something is

Both are unscientific and flawed but they allow me to try to focus on what to work on when.

If you look at the project's issues, you'll see they are labeled with some non-standard issue labels.

Label Description
e0 🌵 Low effort
e1 ⚡️ Medium effort
e2 🔥 High effort
i0 🌵 Low impact
i1 ⚡️ Medium impact
i2 🔥 High impact

Ranking is evaluated according to this quadrant where the priority is ordered from top to bottom and left to right.

quadrantChart
    title Issue Ranking
    x-axis Low Effort --> High Effort
    y-axis Low Impact --> High Impact
    quadrant-1 Medium Priority
    quadrant-2 Highest Priority
    quadrant-3 Low Priority
    quadrant-4 Lowest Priority
Loading

View ranked open issues and in progress issues.

Setting up development environment

This project uses Poetry to manage the Python environment, Black to format code, and mypy to run static analysis. Please make sure your environment is setup with these enabled.

To make sure everything is working correctly, make sure you have Poetry installed, then install the dependencies, and then run tox.

pipx install poetry==1.8                    # if not already installed
poetry config virtualenvs.in-project true   # recommended
poetry install --with dev                   # install deps including development deps
poetry shell                                # activate venv
tox run                                     # run lint, static analysis, unit tests, and examples