# Run Django dev server with Sqlite run-dev: DJANGO_DB=sqlite LOG_DIR=tmp DEBUG=true LOG_LEVEL=DEBUG DJANGO_SETTINGS_MODULE=core.settings.label_studio poetry run python label_studio/manage.py runserver # Run Django dev migrations with Sqlite migrate-dev: DJANGO_DB=sqlite LOG_DIR=tmp DEBUG=true LOG_LEVEL=DEBUG DJANGO_SETTINGS_MODULE=core.settings.label_studio poetry run python label_studio/manage.py migrate # Run Django dev make migrations with Sqlite makemigrations-dev: DJANGO_DB=sqlite LOG_DIR=tmp DEBUG=true LOG_LEVEL=DEBUG DJANGO_SETTINGS_MODULE=core.settings.label_studio poetry run python label_studio/manage.py makemigrations # Run Django dev shell environment with Sqlite shell-dev: DJANGO_DB=sqlite LOG_DIR=tmp DEBUG=true LOG_LEVEL=DEBUG DJANGO_SETTINGS_MODULE=core.settings.label_studio poetry run python label_studio/manage.py shell_plus env-dev-setup: if [ ! -f .env ]; then \ cp .env.development .env; \ fi docker-dev-override: if [ ! -f docker-compose.override.yml ]; then \ cp docker-compose.override.example.yml docker-compose.override.yml; \ fi # Configure Django dev server with Hot Module Replacement in docker docker-dev-setup: env-dev-setup docker-dev-override docker-run-dev: docker compose up --build docker-migrate-dev: docker compose run app python3 /label-studio/label_studio/manage.py migrate docker-collectstatic-dev: docker compose run app python3 /label-studio/label_studio/manage.py collectstatic # Install modules frontend-install: cd web && yarn install --frozen-lockfile; # Alias for backward compatibility frontend-setup: frontend-install # Run frontend dev server in Hot Module Replacement mode # For more information on HMR, see the "Environment Configuration" section in: # web/README.md frontend-dev: cd web && yarn run dev # Build frontend continuously on files changes frontend-watch: cd web && yarn run watch # Build production-ready optimized bundle frontend-build: frontend-setup cd web && yarn run build frontend-storybook-serve: frontend-setup cd web && yarn run ui:serve # Run tests test: cd label_studio && DJANGO_DB=sqlite pytest -v -m "not integration_tests" # Build image which includes test dependencies, for unit testing within docker build-testing-image: docker build -t heartexlabs/label-studio:latest . && docker build -t heartexlabs/label-studio:latest-testing -f Dockerfile.testing . # Run an interactive shell inside a testing container. Label studio dir will be mounted as a volume # to avoid need for rebuilds. Run `make build-testing-image` first. docker-testing-shell: docker run --volume ./label_studio:/label-studio/label_studio --volume ./mydata:/label-studio/data:rw -it heartexlabs/label-studio:latest-testing /bin/bash # Update urls update-urls: DJANGO_DB=sqlite LOG_DIR=tmp DEBUG=true LOG_LEVEL=DEBUG DJANGO_SETTINGS_MODULE=core.settings.label_studio poetry run python label_studio/manage.py show_urls --format pretty-json > ./label_studio/core/all_urls.json # Format changed files on branch fmt: pre-commit run --config .pre-commit-dev.yaml --hook-stage manual # Format all files in repo fmt-all: pre-commit run --config .pre-commit-dev.yaml --hook-stage manual --all-files # Check for lint issues on this branch fmt-check: pre-commit run --hook-stage pre-push # Check for lint issues in entire repo fmt-check-all: pre-commit run --hook-stage pre-push --all-files # Configure pre-push hook using pre-commit configure-hooks: pre-commit install --hook-type pre-push # Generate swagger.json generate-swagger: DJANGO_DB=sqlite LOG_DIR=tmp DEBUG=true LOG_LEVEL=DEBUG DJANGO_SETTINGS_MODULE=core.settings.label_studio poetry run python label_studio/manage.py generate_swagger swagger.json