Skip to content

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
git clone https://github.com/ethyca/fides

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!

  1. 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:
    1. Install the Remote-Containers extension for VS Code.
    2. Open the command window (the F1 key will open it, by default) and select the Remote-Containers: Open Folder in Container... command.
    3. Click "Open", without having selected any specific folder.
    4. 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.
    5. When you open a new VS Code shell, it will be inside of the fidesctl container, and you'll have access to all of the fidesctl commands as well as any Python commands like pytest, black, mypy, etc.
  2. If you're using an editor besides VS Code, then the next best way to work on Fidesctl is by utilizing the Noxfile commands:
    1. Make sure that you have docker, docker-compose and nox (pipx install nox) installed.
    2. Once you have everything set up, run nox -s cli to spin up a shell within the fidesctl container.
    3. You can and should run all of your various development commands from within this shell, such as pytest, black, etc.
  3. 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.

Submit your code

In order to submit code to Fidesctl, please:

Congratulations

You're a Fidesctl contributor - welcome to the team! 🎉

Back to top