Development environment
This page describes how to setup your development environment (Cloud or locally) to contribute to Powertools for AWS Lambda.
graph LR
Dev["Development environment"] --> Quality["Run quality checks locally"] --> PR["Prepare pull request"] --> Collaborate
End-to-end process
Requirements¶
First time contributing to an open-source project ever?
Read this introduction on how to fork and clone a project on GitHub.
Unless you're using the pre-configured Cloud environment, you'll need the following installed:
- GitHub account. You'll need to be able to fork, clone, and contribute via pull request.
- Python 3.8+. Pick any version supported in AWS Lambda runtime.
- Docker. We use it to run documentation linters and non-Python tooling.
- Fork the repository. You'll work against your fork of this repository.
Additional requirements if running end-to-end tests
Cloud environment¶
NOTE. Be mindful of Gitpod pricing structure for long-running contributions. When in doubt, use the local environment below.
To use a pre-configured environment, replace YOUR_USERNAME
with your GitHub username or organization.
1 |
|
- For example, my username is
heitorlessa
.
Therefore, my final URL should behttps://gitpod.io/#https://github.com/heitorlessa/powertools-lambda-python
Once provisioned, it'll install all development dependencies and tools you'll need to contribute.
Local environment¶
Assuming you've got all requirements.
You can use make dev
to create a local virtual environment and install all dependencies locally.
Curious about what make dev
does under the hood?
We use Make
to automate common tasks locally and in Continuous Integration environments.
Local documentation¶
You might find useful to run both the documentation website and the API reference locally while contributing:
- Docs website:
make docs-local
- If you prefer using Docker:
make docs-local-docker
- If you prefer using Docker:
- API reference:
make docs-api-local