Renames the project from karaoke-maker to songtrace end to end, with no
behaviour change. songtrace is one word (no hyphen/underscore split),
evocative, and literally accurate: you supply a song and its reference
lyrics, and the pipeline traces the melody line out of them (forced
alignment for word timings, pitch tracking for notes).
Design and plan: ~/specs/2026-07-27-songtrace-rename-design.md and ~/specs/2026-07-27-songtrace-rename-plan.md (not committed to this repo,
per personal convention).
Six commits, one per task:
Move src/karaoke_maker/ → src/songtrace/, rewrite all importers in tests//scripts/. Distribution/CLI still say karaoke-maker at this
point, so version('karaoke-maker') keeps resolving.
Rename the distribution and CLI command (pyproject.toml [project]/[project.scripts], cli.py's prog=/version() lookup, DockerfileCMD, Compose service name).
Rename the config env var (KARAOKE_MAKER_CONFIG → SONGTRACE_CONFIG),
the default config path (~/.config/songtrace/config.toml), the Config.creator default, and the separate E2E test env-var family
(KARAOKE_E2E* → SONGTRACE_E2E*). This is a deliberate clean break —
no fallback to the old env var/path, no deprecation warning.
Restyle the web UI wordmark (KARAOKE/MAKER → SONG/TRACE), keeping
the カラオケ katakana subline. No CSS changes. Screenshot regenerated.
Update the README: heading, tagline, config section, six command
examples, and a migration note for existing installs.
Final verification sweep + a small fix-up commit for two minor
documentation gaps found in final review (the migration note didn't
mention uninstalling the stale karaoke-maker console script, and didn't
flag that the Compose service rename orphans the old container on
upgrade).
What was tested
Full pytest suite: 230 passed, 1 skipped (test_e2e.py, gated on SONGTRACE_E2E, unset by design) — run after every task and again before
opening this PR.
songtrace --version, command -v karaoke-maker (confirms the old
console script is gone after reinstall), songtrace.web.STATIC asset
resolution, and the ~/.config/songtrace/config.toml default-path
fallback (the one load_config branch no test covers) — all verified
directly, not just inferred from green tests.
git grep -in "karaoke" across the whole tree returns exactly three
matches, all deliberate domain vocabulary (cli.py's help text, pyproject.toml's description, the README's migration command) — no
stray karaoke-maker/karaoke_maker/KARAOKE_ identifiers anywhere.
Web UI screenshot regenerated via Playwright and visually confirmed to
show the new SONG / TRACE wordmark.
Not verified in this environment:docker compose build && docker compose up -d — no Docker daemon available in the sandbox. Both Dockerfile and docker-compose.yml were reviewed statically and look
correct (ENV SONGTRACE_CONFIG=..., CMD ["songtrace", "serve"],
service key songtrace), but a live build/serve check on a host with
Docker is still owed before this is fully verified.
Out of scope (host-side, not part of this PR)
Renaming the Gitea repo itself (branderson/karaoke-maker → branderson/songtrace) and updating origin.
Renaming the local working-copy directory.
Moving ~/.config/karaoke-maker/ to ~/.config/songtrace/ on any
bare-metal install (the README's new migration note covers this for
end users).
**Summary generated by LLM agent**
## Summary
Renames the project from `karaoke-maker` to `songtrace` end to end, with no
behaviour change. `songtrace` is one word (no hyphen/underscore split),
evocative, and literally accurate: you supply a song and its reference
lyrics, and the pipeline traces the melody line out of them (forced
alignment for word timings, pitch tracking for notes).
Design and plan: `~/specs/2026-07-27-songtrace-rename-design.md` and
`~/specs/2026-07-27-songtrace-rename-plan.md` (not committed to this repo,
per personal convention).
Six commits, one per task:
- Move `src/karaoke_maker/` → `src/songtrace/`, rewrite all importers in
`tests/`/`scripts/`. Distribution/CLI still say `karaoke-maker` at this
point, so `version('karaoke-maker')` keeps resolving.
- Rename the distribution and CLI command (`pyproject.toml`
`[project]`/`[project.scripts]`, `cli.py`'s `prog=`/`version()` lookup,
`Dockerfile` `CMD`, Compose service name).
- Rename the config env var (`KARAOKE_MAKER_CONFIG` → `SONGTRACE_CONFIG`),
the default config path (`~/.config/songtrace/config.toml`), the
`Config.creator` default, and the separate E2E test env-var family
(`KARAOKE_E2E*` → `SONGTRACE_E2E*`). This is a deliberate clean break —
no fallback to the old env var/path, no deprecation warning.
- Restyle the web UI wordmark (`KARAOKE`/`MAKER` → `SONG`/`TRACE`), keeping
the カラオケ katakana subline. No CSS changes. Screenshot regenerated.
- Update the README: heading, tagline, config section, six command
examples, and a migration note for existing installs.
- Final verification sweep + a small fix-up commit for two minor
documentation gaps found in final review (the migration note didn't
mention uninstalling the stale `karaoke-maker` console script, and didn't
flag that the Compose service rename orphans the old container on
upgrade).
## What was tested
- Full pytest suite: 230 passed, 1 skipped (`test_e2e.py`, gated on
`SONGTRACE_E2E`, unset by design) — run after every task and again before
opening this PR.
- `songtrace --version`, `command -v karaoke-maker` (confirms the old
console script is gone after reinstall), `songtrace.web.STATIC` asset
resolution, and the `~/.config/songtrace/config.toml` default-path
fallback (the one `load_config` branch no test covers) — all verified
directly, not just inferred from green tests.
- `git grep -in "karaoke"` across the whole tree returns exactly three
matches, all deliberate domain vocabulary (`cli.py`'s help text,
`pyproject.toml`'s description, the README's migration command) — no
stray `karaoke-maker`/`karaoke_maker`/`KARAOKE_` identifiers anywhere.
- Web UI screenshot regenerated via Playwright and visually confirmed to
show the new SONG / TRACE wordmark.
- **Not verified in this environment:** `docker compose build && docker
compose up -d` — no Docker daemon available in the sandbox. Both
`Dockerfile` and `docker-compose.yml` were reviewed statically and look
correct (`ENV SONGTRACE_CONFIG=...`, `CMD ["songtrace", "serve"]`,
service key `songtrace`), but a live build/serve check on a host with
Docker is still owed before this is fully verified.
## Out of scope (host-side, not part of this PR)
- Renaming the Gitea repo itself (`branderson/karaoke-maker` →
`branderson/songtrace`) and updating `origin`.
- Renaming the local working-copy directory.
- Moving `~/.config/karaoke-maker/` to `~/.config/songtrace/` on any
bare-metal install (the README's new migration note covers this for
end users).
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.
Summary generated by LLM agent
Summary
Renames the project from
karaoke-makertosongtraceend to end, with nobehaviour change.
songtraceis one word (no hyphen/underscore split),evocative, and literally accurate: you supply a song and its reference
lyrics, and the pipeline traces the melody line out of them (forced
alignment for word timings, pitch tracking for notes).
Design and plan:
~/specs/2026-07-27-songtrace-rename-design.mdand~/specs/2026-07-27-songtrace-rename-plan.md(not committed to this repo,per personal convention).
Six commits, one per task:
src/karaoke_maker/→src/songtrace/, rewrite all importers intests//scripts/. Distribution/CLI still saykaraoke-makerat thispoint, so
version('karaoke-maker')keeps resolving.pyproject.toml[project]/[project.scripts],cli.py'sprog=/version()lookup,DockerfileCMD, Compose service name).KARAOKE_MAKER_CONFIG→SONGTRACE_CONFIG),the default config path (
~/.config/songtrace/config.toml), theConfig.creatordefault, and the separate E2E test env-var family(
KARAOKE_E2E*→SONGTRACE_E2E*). This is a deliberate clean break —no fallback to the old env var/path, no deprecation warning.
KARAOKE/MAKER→SONG/TRACE), keepingthe カラオケ katakana subline. No CSS changes. Screenshot regenerated.
examples, and a migration note for existing installs.
documentation gaps found in final review (the migration note didn't
mention uninstalling the stale
karaoke-makerconsole script, and didn'tflag that the Compose service rename orphans the old container on
upgrade).
What was tested
test_e2e.py, gated onSONGTRACE_E2E, unset by design) — run after every task and again beforeopening this PR.
songtrace --version,command -v karaoke-maker(confirms the oldconsole script is gone after reinstall),
songtrace.web.STATICassetresolution, and the
~/.config/songtrace/config.tomldefault-pathfallback (the one
load_configbranch no test covers) — all verifieddirectly, not just inferred from green tests.
git grep -in "karaoke"across the whole tree returns exactly threematches, all deliberate domain vocabulary (
cli.py's help text,pyproject.toml's description, the README's migration command) — nostray
karaoke-maker/karaoke_maker/KARAOKE_identifiers anywhere.show the new SONG / TRACE wordmark.
docker compose build && docker compose up -d— no Docker daemon available in the sandbox. BothDockerfileanddocker-compose.ymlwere reviewed statically and lookcorrect (
ENV SONGTRACE_CONFIG=...,CMD ["songtrace", "serve"],service key
songtrace), but a live build/serve check on a host withDocker is still owed before this is fully verified.
Out of scope (host-side, not part of this PR)
branderson/karaoke-maker→branderson/songtrace) and updatingorigin.~/.config/karaoke-maker/to~/.config/songtrace/on anybare-metal install (the README's new migration note covers this for
end users).