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.
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`.
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 main2026-11-06 16:32:53 +00:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Description
Follow-up to spec #16. PR #38 removed upstream references from user-facing surfaces but left four in
src/: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.text_injector.py): linked the upstream wiki. It now points at the fork'sdocs/TROUBLESHOOTING.md. On niri it points atdocs/NIRI.mdinstead, because IBus is excluded there.ibus_engine.py): now this fork's repository.gateway_embed/): kept on its upstream URL. Settings → Advanced cloneshttps://github.com/VocaHQ/vocagatewayat the pinnedv0.1.0tag at runtime. No fork of that project exists, so no fork URL was invented. The URL is recorded as a credit in code, anddocs/GATEWAY_EMBED.mdnow 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 inSRC_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
Checklist
pytest), for the touched and related files (see notes)Screenshots (if applicable)
Not applicable: the changes are log messages, a component metadata field and a doc paragraph.
Notes for reviewers
docs/TROUBLESHOOTING.md, whose KDE Plasma section covers IBus Wayland.src/only):pyproject.tomlline 126,Homepage = "https://github.com/VocaHQ/vocalinux". It is package metadata, and the sweep still allows it under the tests, docs and packaging rule.mainhas 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.