Welcome to Skyplane! Everyone is welcome to contribute to Skyplane. We are always looking for new features and improvements and we value everyone's input.
There are many ways to contribute to Skyplane:
- Answering questions on Skyplane's discussions page
- Improving Skyplane's documentation
- Filing bug reports or reporting sharp edges via Github issues
- Contributing to our codebase.
We welcome pull requests, in particular for those issues marked with good first issue.
For other proposals or larger features, we ask that you open a new GitHub Issue or Discussion. We especially encourage external contributions to support additional cloud providers and object store endpoints.
To see more on how to setup a development environment, see the Development Guide.
Before you submit a pull request, make sure to complete the following steps:
Fork the Skyplane repository to create a copy of the project in your own account.
Set up a developer environment as described in the Development Guide.
Create a development branch (
git checkout -b feature_name
)Test your changes manually using
skyplane cp
and with the unit test suite:$ pytest tests/unit_nocloud/
Ensure your code is autoformatted and passes type checks:
$ pip install -r requirements-dev.txt $ black -l 140 . $ pytype --config .pytype.cfg skyplane $ autoflake --in-place --remove-all-unused-imports --remove-unused-variables --recursive skyplane
If you updated documentation, test the docs:
$ pip install sphinx-autobuild $ cd docs $ pip install -r requirements.txt $ sphinx-autobuild -b html . /tmp/docs_build
Commit your changes using a descriptive commit message.
Create a pull request on the main Skyplane repo from your fork. Consult Github Help for more details.