Skip to content
Open
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 23 additions & 7 deletions docs/source/developers.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
# Developer Documentation

## Environment Setup
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we need to make a distinction in these docs that these steps are only required if a user is not using the devcontainer. If they are in the devcontainer, all of this setup should already be taken care of.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Instead of providing environment setup, we state the repository is agnostic and instead suggest using the devcontainer

"This repository is entirely agnostic to how developers set up their development environments. There is a provided devcontainer configuration file and we suggest using a devcontainer to set up and isolate your development environment."


This repository is entirely agnostic to how developers set up their development environments. There is a provided devcontainer configuration file and we suggest using a devcontainer to set up and isolate your development environment.

## Installing Development Dependencies

Install development dependencies using `uv`` with all the extras groups:
Expand All @@ -8,8 +12,14 @@ Install development dependencies using `uv`` with all the extras groups:
# Install uv if you haven't already
curl -LsSf https://astral.sh/uv/install.sh | sh

# Load env vars and PATH settings
source $HOME/.local/bin/env
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is very environment dependent. In the devcontainer, this should be taken care of. Outside the devcontainer, it's the wild west and I don't think we can provide a suggestion to users. They just need to know their development environment. For example, I don't even have an env file in this location.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Removed


# Install all dependencies including optional extras
uv sync --all-extras

# Activate the virtual environment
source .venv/bin/activate
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is up to user IDE configuration and how they want to use the virtual environment. Most IDEs will default to automatically activating the venv for new terminal sessions but users can manage that however they want to.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Removed

```

Note: `uv` is a fast, Rust-based Python package installer and resolver that is PEP-compliant and fully compatible with pip and PyPI.
Expand All @@ -18,10 +28,15 @@ Once the development dependencies are installed and the uv-generated `.venv` is

```bash
pre-commit install

# Linux / WSL (devcontainer)
sudo apt-get install -y libatomic1
```

to get pre-commit hooks to automatically run the linting and formatting checks for you before each commit.

Authentication with Github is required to push to the repository. We suggest using SSH key authentication.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm pretty sure Github won't let you use HTTPS any more so this is a basic standard requirement, not a recommendation by us.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Removed


## Testing

Testing is run with `pytest` and the order is randomized by `pytest-randomly`.
Expand All @@ -31,20 +46,21 @@ To run all tests, run
pytest tests
```

To run all tests in docker containers (tests against many versions of python), run

```bash
docker-compose up --build && docker-compose down
```

## Building Documentation with Sphinx

Documentation is automatically built on ReadTheDocs in response to every PR and release,
but you can also build it locally with:

```bash
# From docs directory
make html && open build/html/index.html
make html

# macOS
open build/html/index.html

# Linux / WSL (devcontainer)
sudo apt install wslu
wslview build/html/index.html
```

## Making a Pull Request
Expand Down