fix(app): drop upstream references from user-facing source #40

Merged
xavierk merged 1 commits from fix/src-upstream-references into main 2026-11-06 16:32:53 +00:00
Owner

Description

Follow-up to spec #16. PR #38 removed upstream references from user-facing surfaces but left four in src/:

  • Missing system packages (main.py): the error told users to pipe the upstream install script to bash. It now names the Void xbps package (sudo xbps-install -Su voculinux) and the fork's install doc. The pipx line is dropped: pipx is not a published channel.
  • IBus daemon hint (text_injector.py): linked the upstream wiki. It now points at the fork's docs/TROUBLESHOOTING.md. On niri it points at docs/NIRI.md instead, because IBus is excluded there.
  • IBus component homepage (ibus_engine.py): now this fork's repository.
  • VocaGateway (gateway_embed/): kept on its upstream URL. Settings → Advanced clones https://github.com/VocaHQ/vocagateway at the pinned v0.1.0 tag at runtime. No fork of that project exists, so no fork URL was invented. The URL is recorded as a credit in code, and docs/GATEWAY_EMBED.md now says the project is upstream's and not published by Voculinux.

Tests: the rename sweep no longer lets upstream slugs through under src/. Every upstream reference in source must be a recorded line in SRC_UPSTREAM_CREDITS, matched exactly and once. The three old literals are added to the denied list. New behaviour tests cover the xbps hint, the niri and non-niri IBus hints, and the component homepage.

Related issue

Refs #16

Type of change

  • Bug fix
  • New feature
  • Breaking change
  • Documentation
  • Refactor
  • Tests
  • Packaging / CI

Checklist

  • Code follows project style (Black, isort, flake8)
  • Documentation updated when user-facing behavior or install steps change
  • Tests added or updated for the change
  • Local tests pass (pytest), for the touched and related files (see notes)
  • Conventional commit message style

Screenshots (if applicable)

Not applicable: the changes are log messages, a component metadata field and a doc paragraph.

Notes for reviewers

  • Gateway URL is deliberately upstream's. Confirm that is the right call. The alternative is to remove the Settings action, which is a product decision.
  • The fork has no standalone IBus setup guide, so the IBus hint links to docs/TROUBLESHOOTING.md, whose KDE Plasma section covers IBus Wayland.
  • Not changed, out of scope (src/ only): pyproject.toml line 126, Homepage = "https://github.com/VocaHQ/vocalinux". It is package metadata, and the sweep still allows it under the tests, docs and packaging rule.
  • Test scope: the full suite on main has about 145 pre-existing order-dependent gi-mock failures. Run per file, these all pass: test_rename_sweep, test_main, test_main_args_deps, test_main_edge_cases, test_dbus_activation, test_host_process, test_ibus_engine_core, test_text_injector, test_text_injector_ext, test_injection_ladder, test_gateway_embed, test_app_identity, test_upstream_intake_policy.
## Description Follow-up to spec #16. PR #38 removed upstream references from user-facing surfaces but left four in `src/`: - **Missing system packages** (`main.py`): the error told users to pipe the upstream install script to bash. It now names the Void xbps package (`sudo xbps-install -Su voculinux`) and the fork's install doc. The pipx line is dropped: pipx is not a published channel. - **IBus daemon hint** (`text_injector.py`): linked the upstream wiki. It now points at the fork's `docs/TROUBLESHOOTING.md`. On niri it points at `docs/NIRI.md` instead, because IBus is excluded there. - **IBus component homepage** (`ibus_engine.py`): now this fork's repository. - **VocaGateway** (`gateway_embed/`): kept on its upstream URL. Settings → Advanced clones `https://github.com/VocaHQ/vocagateway` at the pinned `v0.1.0` tag at runtime. No fork of that project exists, so no fork URL was invented. The URL is recorded as a credit in code, and `docs/GATEWAY_EMBED.md` now says the project is upstream's and not published by Voculinux. Tests: the rename sweep no longer lets upstream slugs through under `src/`. Every upstream reference in source must be a recorded line in `SRC_UPSTREAM_CREDITS`, matched exactly and once. The three old literals are added to the denied list. New behaviour tests cover the xbps hint, the niri and non-niri IBus hints, and the component homepage. ## Related issue Refs #16 ## Type of change - [x] Bug fix - [ ] New feature - [ ] Breaking change - [x] Documentation - [ ] Refactor - [x] Tests - [ ] Packaging / CI ## Checklist - [x] Code follows project style (Black, isort, flake8) - [x] Documentation updated when user-facing behavior or install steps change - [x] Tests added or updated for the change - [x] Local tests pass (`pytest`), for the touched and related files (see notes) - [x] Conventional commit message style ## Screenshots (if applicable) Not applicable: the changes are log messages, a component metadata field and a doc paragraph. ## Notes for reviewers - **Gateway URL is deliberately upstream's.** Confirm that is the right call. The alternative is to remove the Settings action, which is a product decision. - The fork has no standalone IBus setup guide, so the IBus hint links to `docs/TROUBLESHOOTING.md`, whose KDE Plasma section covers IBus Wayland. - Not changed, out of scope (`src/` only): `pyproject.toml` line 126, `Homepage = "https://github.com/VocaHQ/vocalinux"`. It is package metadata, and the sweep still allows it under the tests, docs and packaging rule. - Test scope: the full suite on `main` has about 145 pre-existing order-dependent gi-mock failures. Run per file, these all pass: `test_rename_sweep`, `test_main`, `test_main_args_deps`, `test_main_edge_cases`, `test_dbus_activation`, `test_host_process`, `test_ibus_engine_core`, `test_text_injector`, `test_text_injector_ext`, `test_injection_ladder`, `test_gateway_embed`, `test_app_identity`, `test_upstream_intake_policy`.
xavierk added 1 commit 2026-11-06 16:28:14 +00:00
fix(app): drop upstream references from user-facing source
CI / security (pull_request) Successful in 1m10s
CI / lint (pull_request) Successful in 23s
CI / ai-review (pull_request) Successful in 8s
b24398657c
The missing-dependency guidance now names the Void xbps package and this
fork's install doc, instead of piping the upstream install script to bash
(and drops the pipx line, since pipx is not a published channel). The IBus
daemon hint points at the fork's docs; on niri it points at NIRI.md, because
IBus is excluded there. The IBus component homepage is this fork's repository.

VocaGateway keeps its upstream clone URL: Settings clones that separate
project at its pinned tag at runtime. The URL is now recorded as a credit,
and the gateway guide says the project is upstream's.

The rename sweep no longer lets upstream slugs through under src/. Each
upstream reference in source is a recorded line, matched exactly and once.

Refs #16
xavierk merged commit a4a831c3c6 into main 2026-11-06 16:32:53 +00:00
Sign in to join this conversation.