Skip to content

Guida allo sviluppo

In questa sezione è illustrato il setup del progetto per lo sviluppo

Setup in breve

Clona il progetto da github

git clone https://github.com/Mikel12455/downtime-panda.git

Poi, metti su l'ambiente virtuale

cd downtime-panda
task setup

Se non ho Taskfile?

Se non hai Taskfile installato, puoi invece seguire questi comandi:

cd downtime-panda
uv sync --all-packages
uv run pre-commit install

In questo modo avrai lo stesso setup del comando di sopra, ma come extra avrai Task installato direttamente nel tuo ambiente virtuale!

Ricordati giusto che ti servirà uv per richiamare le task. In sostanza, invece del comando

task do-something

dovrai usare

uv run task do-something

Sviluppo

Messo su l'ambiente virtuale, fai partire il progetto nell'ambiente di sviluppo tramite

task dev-up

Da un browser vai su https://localhost:8080/ per vedere le modifiche che apporti al codice in tempo reale!

Staging

Se vuoi fare qualche test più reale, completo di database PostgreSQL e di Reverse Proxy, usa questo comando

task staging-up

Questo costruirà un container Docker del progetto, e lo metterà su tramite docker compose up

Dipendenze

Le uniche vere dipendenze richieste per sviluppare sul progetto sono:

  • uv, per la gestione del progetto (specialmente le sue dipendenze)
  • Docker, ma solo per lo staging

Il progetto fa comunque uso di altri programmi per lo sviluppo, ma sono tutti inclusi nell'ambiente virtuale gestito da uv

  • pre-commit: Configura dei git hook per cose come linter, formatter, e in generale controlli del sorgente prima di una commit.

    • Incluso tra le dipendenze --dev, quindi non serve installarlo globalmente
  • mkdocs: Costruisce la documentazione che stai leggendo adesso ;)

    • Incluso tra le dipendenze --dev, assieme ad altri suoi plugin
  • Taskfile:

    • Se non lo avete installato globalmente, si può installare nell'ambiente virtuale del progetto tramite

      uv sync --group task
      

      L'unica cosa è che invece di usare task <un_task> si deve usare uv run task <un_task>