Files
Ethan Roseman 50a2b836b9 Migrate from poetry/black to uv/ruff (#1673)
* Migrate from poetry/black to uv/ruff

* fixes

* path change

* path pt 2

* ah

* mkst tweaks (#1674)

* mkst tweaks

* tweaks++

* doh

* tweak harder

---------

Co-authored-by: Mark Street <22226349+mkst@users.noreply.github.com>
2025-09-22 19:23:55 +09:00

2.7 KiB

Contributing

Directory structure

frontend/
  public/        ; Static files
  src/           ; React/Typescript sourcecode

backend/
  compilers/     ; Compiler binaries and configuration
  coreapp/       ; API Django app
    migrations/  ; Database migrations (generated by Django)
  decompme/      ; Main Django app
  libraries/     ; Library headers

.env             ; Default configuration
.env.local       ; Local configuration overrides (not checked-in)

Setup

See DOCKER.md for instructions on how to run the project in a Docker container. Otherwise, continue reading this guide.

Dependencies:

  • Python >=3.10
  • Node.js >=14
  • Yarn
  • uv

Create a file to hold environment variables:

touch .env.local

Backend

cd backend
  • Install Python dependencies with uv
uv sync
  • Install compilers
uv run python compilers/download.py
  • Install libraries
uv run python libraries/download.py
  • Set up the database
uv run python manage.py migrate
  • Start the API server
uv run python manage.py runserver

Frontend

cd frontend
  • Install dependencies
yarn
  • Start the development webserver
yarn dev

Optional steps

Notes

Updating the database

If you modify any database models (models.py), you'll need to run the following to update the database:

uv run python manage.py makemigrations
uv run python manage.py migrate

Running tests

To ensure everything is working properly, you can run the unit tests in the backend folder.

uv run python manage.py test

Frontend styling

We use Tailwind CSS with Radix UI colors. Each color is on a scale from 1 to 12 (inclusive), each with a well-defined meaning.

Linting

  • Check frontend
cd frontend
yarn lint
  • Autofix frontend
cd frontend
yarn lint --fix
  • Check backend
cd backend
uv run mypy
uv run ruff check .
uv run ruff format .