Skip to content

Latest commit

 

History

History
59 lines (37 loc) · 2.38 KB

CONTRIBUTING.md

File metadata and controls

59 lines (37 loc) · 2.38 KB

Contributing to dstack

We appreciate your interest in contributing to dstack! This document will help you get up to speed with dstack codebase and guide you through the contribution process.

Set up your development environment

Follow contributing/DEVELOPMENT.md.

Learn dstack internals

If you make a non-trivial change to dstack, we recommend you learn about dstack internals. A good place to start is contributing/ARCHITECTURE.md.

Make a PR

  1. Look for an existing issue or create a new one.
  2. Fork the repo.
  3. Commit your changes.
  4. Open a PR. Link the PR to the issue (if you are solving one).

Accepted changes

  • Bug fixes that address a clearly defined bug. Include steps to reproduce in the linked issue or the PR.
  • New features. Before submitting a feature PR, create an issue with a proposal to discuss it with the core team and other interested parties.
  • Minor fixes such as typos.
  • Examples.

Before pushing your changes

We use ruff to format Python code and to sort Python imports. Before committing your changes, run:

  1. ruff check --fix
  2. ruff format

There are also helper pre-commits installed for ruff that make commits fail if the code is not formatted or the imports are not sorted. They also change the code as required so that you can review the changes and commit again.

Run tests

It's recommended to run tests locally before running them in CI. To run Python tests, first ensure you've install dev dependencies as described in contributing/DEVELOPMENT.md. Then you can do:

pytest src/tests

(Optionally) By default, tests run against SQLite. Use the --runpostgres flag to run the tests against Postgres as well:

pytest src/tests --runpostgres

Add a new backend

If you'd like to integrate a new cloud provider to dstack, follow contributing/BACKENDS.md.

Get help

If you have any questions, you can always get help in our Discord community.