Contributing

Authors

Other contributors

General guidelines

Thank you for your interest in perturb-lib! There are multiple ways to contribute:

  • Address an outstanding issue:
    • Specify an issue from the list of issues.

    • Lay out the implementation plan in that issue.

    • Code up and submit the PR.

  • Add a new feature:
    • Create an issue for the intended feature.

    • Start a discussion on the necessity of that issue until there is a team-level agreement.

    • Lay out the implementation plan in that issue.

    • Code up and submit the PR.

  • Add a new module:
    • See module-specific guidelines further below.

    • Understand existing template for new module registration.

    • Code up and submit the PR.

Getting started

To install perturb-lib in the development mode, follow the instructions given in Installation.

Coding style

perturb-lib uses Google style for formatting docstrings. All code is formatted via ruff as specified in pyproject.toml.

Adding new modules

New modules can be datasets, models, etc., essentially a new member of one of the existing collections. Before adding any kind of new module, please refer to the source code to understand the registration-based template for registering new modules to perturb-lib. Independently of the module, one must ensure that the new module is well documented. The documentation should be rendered too as described at Rendering documentation.

Executing unit tests

All tests can be executed as follows:

poetry run pytest

Rendering documentation

source docs/render.sh

Before submitting the PR, you can verify the looks by opening docs/rendered_website/index.html locally.