diff --git a/.devcontainer/README.md b/.devcontainer/README.md index cec62c802..1b7429c8d 100644 --- a/.devcontainer/README.md +++ b/.devcontainer/README.md @@ -89,6 +89,18 @@ Additional tasks are available for common maintenance operations: - **Migrate Database**: To apply database migrations. - **Create Superuser**: To create an admin user for the application. +## Committing from the Host Machine + +The DevContainer automatically installs pre-commit hooks during setup. However, these hooks are configured for use inside the container. + +If you want to commit changes from your host machine (outside the DevContainer), you need to set up pre-commit on your host. This installs it as a standalone tool. + +```bash +uv tool install pre-commit && pre-commit install +``` + +After this, you can commit either from inside the DevContainer or from your host machine. + ## Let's Get Started! Follow the steps above to get your development environment up and running. Happy coding! diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index cec8e2177..aef29bd90 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -3,26 +3,30 @@ "dockerComposeFile": "docker-compose.devcontainer.sqlite-tika.yml", "service": "paperless-development", "workspaceFolder": "/usr/src/paperless/paperless-ngx", - "postCreateCommand": "/bin/bash -c 'rm -rf .venv/.* && uv sync --group dev && uv run pre-commit install'", + "containerEnv": { + "UV_CACHE_DIR": "/usr/src/paperless/paperless-ngx/.uv-cache" + }, + "postCreateCommand": "/bin/bash -c 'rm -rf .venv/.* && uv sync --group dev && uv run pre-commit install'", "customizations": { "vscode": { - "extensions": [ - "mhutchie.git-graph", - "ms-python.python", - "ms-vscode.js-debug-nightly", - "eamodio.gitlens", - "yzhang.markdown-all-in-one" - ], - "settings": { - "python.defaultInterpreterPath": "/usr/src/paperless/paperless-ngx/.venv/bin/python", - "python.pythonPath": "/usr/src/paperless/paperless-ngx/.venv/bin/python", - "python.terminal.activateEnvInCurrentTerminal": true, - "editor.formatOnPaste": false, - "editor.formatOnSave": true, - "editor.formatOnType": true, - "files.trimTrailingWhitespace": true - } + "extensions": [ + "mhutchie.git-graph", + "ms-python.python", + "ms-vscode.js-debug-nightly", + "eamodio.gitlens", + "yzhang.markdown-all-in-one", + "pnpm.pnpm" + ], + "settings": { + "python.defaultInterpreterPath": "/usr/src/paperless/paperless-ngx/.venv/bin/python", + "python.pythonPath": "/usr/src/paperless/paperless-ngx/.venv/bin/python", + "python.terminal.activateEnvInCurrentTerminal": true, + "editor.formatOnPaste": false, + "editor.formatOnSave": true, + "editor.formatOnType": true, + "files.trimTrailingWhitespace": true + } } - }, - "remoteUser": "paperless" - } + }, + "remoteUser": "paperless" +} diff --git a/.devcontainer/vscode/tasks.json b/.devcontainer/vscode/tasks.json index 6475e14d1..0cc954232 100644 --- a/.devcontainer/vscode/tasks.json +++ b/.devcontainer/vscode/tasks.json @@ -174,12 +174,22 @@ { "label": "Maintenance: Install Frontend Dependencies", "description": "Install frontend (pnpm) dependencies", - "type": "pnpm", - "script": "install", - "path": "src-ui", + "type": "shell", + "command": "pnpm install", "group": "clean", "problemMatcher": [], - "detail": "install dependencies from package" + "options": { + "cwd": "${workspaceFolder}/src-ui" + }, + "presentation": { + "echo": true, + "reveal": "always", + "focus": true, + "panel": "shared", + "showReuseMessage": false, + "clear": true, + "revealProblems": "onProblem" + } }, { "description": "Clean install frontend dependencies and build the frontend for production", diff --git a/.gitignore b/.gitignore index c7b5c4d8e..715760b29 100644 --- a/.gitignore +++ b/.gitignore @@ -40,6 +40,7 @@ htmlcov/ .coverage .coverage.* .cache +.uv-cache nosetests.xml coverage.xml *,cover