Development Overview
Thanks for contributing to Fidesctl! This section of the docs is designed to help you become familiar with how we work, the standards we apply, and how to ensure your contribution is successful.
If you're stuck, don't be shy about asking for help on GitHub.
Getting Started
The first step is to clone the Fidesctl repo for development:
1 |
|
Once that's complete, there are a few different ways to spin up the project and get coding!
Developer Workflows
There are a few different ways to develop Fidesctl, they are listed below in order of how strongly they are recommended!
- If you're using VS Code, the recommended way to work on Fidesctl is by leveraging the Dev Containers feature. The repo has a
.devcontainer/devcontainer.json
file already included that will set up a complete environment in VS Code, including the suggested VS Code extensions and settings. Follow these steps to get started:- Install the
Remote-Containers
extension for VS Code. - Open the command window (the F1 key will open it, by default) and select the
Remote-Containers: Open Folder in Container...
command. - Click "Open", without having selected any specific folder.
- The containers will now spin up and VS Code will be running inside of the containers. The bottom left of the IDE will now say
Dev Container: Fidesctl
. - When you open a new VS Code shell, it will be inside of the
fidesctl
container, and you'll have access to all of thefidesctl
commands as well as any Python commands likepytest
,black
,mypy
, etc.
- Install the
- If you're using an editor besides VS Code, then the next best way to work on Fidesctl is by utilizing the
Noxfile
commands:- Make sure that you have
docker
,docker-compose
andnox
(pipx install nox
) installed. - Once you have everything set up, run
nox -s cli
to spin up a shell within thefidesctl
container. - You can and should run all of your various development commands from within this shell, such as
pytest
,black
, etc.
- Make sure that you have
- Finally, the least-recommended method would be to install the project in your local environment and develop directly.
Write your code
We have no doubt you can write amazing code! However, we want to help you ensure your code plays nicely with the rest of the Fidesctl ecosystem. Many projects describe code style and documentation as a suggestion; in Fidesctl it's a CI-checked requirement.
- To learn how to style your code, see the style guide.
- To learn how to migrate the database schema, see the database migration guide.
- To learn how to document your code, see the docs guide.
- To learn how to test your code, see the tests guide.
- To learn what format your PR should follow, make sure to follow the pull request guidelines.
Submit your code
In order to submit code to Fidesctl, please:
- Fork the Fidesctl repository
- Create a new branch on your fork
- Open a Pull Request once your work is ready for review
- Once automated tests have passed, a maintainer will review your PR and provide feedback on any changes it requires to be approved. Once approved, your PR will be merged into Fidesctl.
Congratulations
You're a Fidesctl contributor - welcome to the team! 🎉