Skip to content

Contributing

Development Installation

uv is the default tool used for development in this repository.

Clone the repository and sync all packages:

git clone --recurse-submodules https://github.com/Jaded-Encoding-Thaumaturgy/vs-view.git
cd vs-view
uv sync --all-extras --all-groups

Run the development version:

uv run vsview

Cython Extensions

If you are in an environment where you cannot compile Cython extensions, in pyproject.toml:

  • Remove "src/vspackrgb" from tool.uv.workspace.members
  • Comment out vspackrgb = { workspace = true } in tool.uv.sources

You can now run uv sync to use the precompiled version from PyPi.

VSCode / VSCodium

The settings below configure formatting, type-checking, and file associations consistently across the codebase.

Copy them into your vsview/.vscode/settings.json:

vsview/.vscode/settings.json
{
    "[python]": {
        "editor.defaultFormatter": "charliermarsh.ruff"
    },
    "[json]": {
        "editor.defaultFormatter": "vscode.json-language-features",
        "editor.tabSize": 2
    },
    "[toml]": {
        "editor.defaultFormatter": "tamasfe.even-better-toml"
    },
    "[github-actions-workflow]": {
        "editor.defaultFormatter": "esbenp.prettier-vscode"
    },
    "files.associations": {
        "*.vpy": "python"
    },
    "editor.codeActionsOnSave": {
        "source.organizeImports": "always"
    },
    "editor.formatOnSave": true,
    "mypy-type-checker.args": [
        "--fixed-format-cache"
    ],
    "mypy-type-checker.importStrategy": "fromEnvironment",
    "python.analysis.autoFormatStrings": true,
    "python.analysis.autoImportCompletions": true,
    "python.analysis.packageIndexDepths": [
        {
            "depth": 2,
            "name": "PySide6"
        }
    ],
    "python.analysis.stubPath": "stubs",
    "python.analysis.typeCheckingMode": "standard",
    "python.analysis.typeEvaluation.deprecateTypingAliases": true,
    "python.analysis.typeEvaluation.enableReachabilityAnalysis": true,
    "python.testing.pytestArgs": [
        "."
    ],
    "python.testing.pytestEnabled": true,
    "python.testing.unittestEnabled": false,
    "search.exclude": {
        "**/submodules": true
    },
}