diff --git a/.gitea/ISSUE_TEMPLATE/bug.yaml b/.gitea/ISSUE_TEMPLATE/bug.yaml new file mode 100644 index 0000000..ac0449e --- /dev/null +++ b/.gitea/ISSUE_TEMPLATE/bug.yaml @@ -0,0 +1,108 @@ +name: Bug Report +about: Something broke +title: "bug: " +labels: + - bug + +body: + - type: textarea + id: description + attributes: + label: What happened + placeholder: Describe the bug + validations: + required: true + + - type: textarea + id: expected + attributes: + label: What should happen + placeholder: Expected behavior + validations: + required: true + + - type: textarea + id: steps + attributes: + label: Steps to reproduce + placeholder: | + 1. + 2. + 3. + render: shell + validations: + required: true + + - type: dropdown + id: os + attributes: + label: OS + options: + - NixOS + - Arch + - Debian / Ubuntu + - Fedora + - Alpine + - Artix + - Gentoo + - Other + validations: + required: false + + - type: input + id: other-os + attributes: + label: Other OS (if "Other" above) + placeholder: e.g. Void, Gentoo, FreeBSD + validations: + required: false + + - type: dropdown + id: init + attributes: + label: Init system + description: Relevant for UWSM configuration + options: + - systemd + - non-systemd (openrc / runit / s6 / ...) + validations: + required: false + + - type: input + id: other-init + attributes: + label: Other init system (if "non-systemd" above) + placeholder: e.g. openrc, runit, s6, dinit + validations: + required: false + + - type: input + id: qt-version + attributes: + label: Qt version + placeholder: 6.11.1 + validations: + required: false + + - type: input + id: commit + attributes: + label: Branch / commit + placeholder: main / abc1234 + validations: + required: false + + - type: textarea + id: logs + attributes: + label: Logs / backtrace / screenshots + render: shell + validations: + required: false + + - type: textarea + id: workaround + attributes: + label: Found a workaround? + validations: + required: false diff --git a/.gitea/ISSUE_TEMPLATE/feature.yaml b/.gitea/ISSUE_TEMPLATE/feature.yaml new file mode 100644 index 0000000..1d8fba6 --- /dev/null +++ b/.gitea/ISSUE_TEMPLATE/feature.yaml @@ -0,0 +1,51 @@ +name: Feature Request +about: Idea or improvement +title: "feat: " +labels: + - enhancement + +body: + - type: textarea + id: problem + attributes: + label: What's missing / annoying + placeholder: The use case or pain point + validations: + required: true + + - type: textarea + id: solution + attributes: + label: How should it work + placeholder: Describe the desired behavior + validations: + required: true + + - type: textarea + id: alternatives + attributes: + label: Other approaches considered + validations: + required: false + + - type: dropdown + id: scope + attributes: + label: Area + options: + - Core / Daemon + - UI / Components + - Plugin system + - CMake / Build + - CI / Tooling + - Documentation + - Other + validations: + required: false + + - type: textarea + id: context + attributes: + label: Mockups / references / notes + validations: + required: false diff --git a/.gitea/PULL_REQUEST_TEMPLATE.yaml b/.gitea/PULL_REQUEST_TEMPLATE.yaml new file mode 100644 index 0000000..cd94046 --- /dev/null +++ b/.gitea/PULL_REQUEST_TEMPLATE.yaml @@ -0,0 +1,59 @@ +name: Pull Request +about: Submit changes +title: "" +labels: [] + +body: + - type: textarea + id: description + attributes: + label: What & why + placeholder: Describe the change and motivation + validations: + required: true + + - type: input + id: issue + attributes: + label: Related issue + placeholder: "#123" + validations: + required: false + + - type: dropdown + id: type + attributes: + label: Type + options: + - Bug fix + - New feature + - Refactor / style + - CI / build / tooling + - Documentation + validations: + required: true + + - type: checkboxes + id: tested + attributes: + label: Tested + options: + - label: Build succeeds + - label: Existing tests pass + - label: Manually verified + + - type: textarea + id: breaking + attributes: + label: Breaking changes? + placeholder: API/ABI breakage? Migration path? + + - type: checkboxes + id: checklist + attributes: + label: Checklist + options: + - label: CI passes (format, lint, typecheck) + - label: Clean commits + - label: No new warnings + - label: Docs updated if needed diff --git a/.gitea/workflows/python.yml b/.gitea/workflows/python.yml index 270c3b4..2baf3ed 100644 --- a/.gitea/workflows/python.yml +++ b/.gitea/workflows/python.yml @@ -81,6 +81,29 @@ jobs: cd cli python -m pytest tests/ -v + typecheck: + runs-on: alpine + container: node:26-alpine + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Install tools + run: | + apk add --no-cache \ + git \ + python3 \ + py3-pip + python3 -m venv .venv + . .venv/bin/activate + pip install --no-cache-dir basedpyright + + - name: Type check + run: | + . .venv/bin/activate + basedpyright + buildcheck: runs-on: alpine container: node:26-alpine diff --git a/pyproject.toml b/pyproject.toml index d1aa9c9..2c53644 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -54,6 +54,10 @@ select = [ "RUF", ] +[tool.basedpyright] +typeCheckingMode = "basic" +include = ["cli/src"] + [tool.pytest.ini_options] testpaths = ["cli/tests"] pythonpath = ["cli/src"]