Use mise tasks instead of bin scripts
This commit is contained in:
7 files changed
+40
-23
No files matched your search
@@ -1,32 +1,31 @@
|
|||||||
# Getting started
|
# Getting started
|
||||||
|
|
||||||
Before starting, make sure you have Python 3.11 or newer and Node.js 20 available.
|
Before starting, make sure you have [mise](https://mise.jdx.dev) installed. It manages Python, Node, uv and prek.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
|
mise install
|
||||||
|
prek install
|
||||||
uv run manage.py migrate
|
uv run manage.py migrate
|
||||||
cp .env-default .env
|
cp .env-default .env
|
||||||
uv run manage.py seed_demo_data
|
uv run manage.py seed_demo_data
|
||||||
|
|
||||||
# Optional: create an admin login
|
# Optional: create an admin login
|
||||||
uv run manage.py createsuperuser
|
uv run manage.py createsuperuser
|
||||||
|
|
||||||
# Install frontend packages once
|
|
||||||
cd frontend && npm install
|
|
||||||
```
|
```
|
||||||
|
|
||||||
Start the backend and frontend in separate terminals from the project root:
|
Start the backend and frontend in separate terminals from the project root:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
uv run bin/run
|
mise run server
|
||||||
```
|
```
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
uv run bin/run-frontend
|
mise run frontend-run
|
||||||
```
|
```
|
||||||
|
|
||||||
Vite prints the frontend URL when it starts (normally <http://localhost:5173/>; if that port is busy, it selects another). Django runs at <http://localhost:3000/>; open the admin directly at <http://localhost:3000/admin/> or through the frontend dev proxy at the printed Vite URL followed by `/admin/`. The GraphQL API is at <http://localhost:3000/graphql/>; the frontend uses Vite's proxy for development API requests.
|
Vite prints the frontend URL when it starts (normally <http://localhost:5173/>; if that port is busy, it selects another). Django runs at <http://localhost:3000/>; open the admin directly at <http://localhost:3000/admin/> or through the frontend dev proxy at the printed Vite URL followed by `/admin/`. The GraphQL API is at <http://localhost:3000/graphql/>; the frontend uses Vite's proxy for development API requests.
|
||||||
|
|
||||||
To test the frontend against a different backend, set `VITE_DEV_API_PROXY` when starting Vite, for example `VITE_DEV_API_PROXY=https://bbs.neuf.no uv run bin/run-frontend`. This affects the development proxy only; use caution with a live backend, since app changes and submissions may modify production data.
|
To test the frontend against a different backend, set `VITE_DEV_API_PROXY` when starting Vite, for example `VITE_DEV_API_PROXY=https://bbs.neuf.no mise run frontend-run`. This affects the development proxy only; use caution with a live backend, since app changes and submissions may modify production data.
|
||||||
|
|
||||||
To create the admin during data seeding instead, set `BBS_SEED_ADMIN_PASSWORD` for that command; the command only creates a local `admin` superuser if one does not already exist.
|
To create the admin during data seeding instead, set `BBS_SEED_ADMIN_PASSWORD` for that command; the command only creates a local `admin` superuser if one does not already exist.
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
python manage.py export_schema
|
|
||||||
cd frontend && npm run generate
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
uvx pre-commit run --all-files
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
cd frontend && npm run start -- --host 127.0.0.1
|
|
||||||
@@ -1,6 +1,40 @@
|
|||||||
[tools]
|
[tools]
|
||||||
|
node = "20"
|
||||||
|
prek = "latest"
|
||||||
python = "3.11"
|
python = "3.11"
|
||||||
uv = "latest"
|
uv = "latest"
|
||||||
|
|
||||||
|
[tasks.server]
|
||||||
|
run = "uv run manage.py runserver 127.0.0.1:3000"
|
||||||
|
|
||||||
|
[tasks.frontend-install]
|
||||||
|
run = "npm install"
|
||||||
|
dir = "frontend"
|
||||||
|
sources = ["package.json", "package-lock.json"]
|
||||||
|
outputs = ["node_modules/.package-lock.json"]
|
||||||
|
|
||||||
|
[tasks.frontend-run]
|
||||||
|
depends = ["frontend-install"]
|
||||||
|
run = "npm run start"
|
||||||
|
dir = "frontend"
|
||||||
|
|
||||||
|
[tasks.frontend-build]
|
||||||
|
depends = ["frontend-install"]
|
||||||
|
run = "npm run build"
|
||||||
|
dir = "frontend"
|
||||||
|
|
||||||
|
[tasks.generate-schema]
|
||||||
|
depends = ["frontend-install"]
|
||||||
|
run = "uv run manage.py export_schema && cd frontend && npm run generate"
|
||||||
|
|
||||||
|
[tasks.pre-commit]
|
||||||
|
run = "prek run --all-files"
|
||||||
|
|
||||||
[tasks.test]
|
[tasks.test]
|
||||||
run = "uv run pytest --cov"
|
run = "uv run pytest --cov"
|
||||||
|
|
||||||
|
[tasks.lint]
|
||||||
|
run = "uv run ruff check ."
|
||||||
|
|
||||||
|
[tasks.fmt]
|
||||||
|
run = "uv run ruff format ."
|
||||||
Reference in new issue
Block a user