Skip to content

Port dual-deck DJ app + halo-light into this repo#84

Merged
robmorgan merged 5 commits into
mainfrom
dj-nx
Jul 20, 2026
Merged

Port dual-deck DJ app + halo-light into this repo#84
robmorgan merged 5 commits into
mainfrom
dj-nx

Conversation

@robmorgan

@robmorgan robmorgan commented Jul 20, 2026

Copy link
Copy Markdown
Owner

Summary

  • Replaces this repo's lighting-console crates/ (core/fixtures/halo/ui) with the new dual-deck DJ app + halo-light lighting layer from robmorgan/halo (the sibling working repo), along with the matching root Cargo.toml/Cargo.lock.
  • Brings over .claude/ (project skills, e.g. the screenshot skill) and ROADMAP.md from the source repo — additive, no conflicts.
  • Everything else in this repo is untouched: shows/, _docs/, docs/, root markdown (README.md, CLAUDE.md, CONTRIBUTING.md, TODO.md, LICENSE.md), CI (.github/), .gitignore, rustfmt.toml, .vscode/, config.json/config.template.json, start.sh/start-capture.sh, exp/.
  • Second commit reformats the ported code against this repo's own rustfmt.toml (nightly-only import grouping) — no behavior change.

Test plan

  • cargo build --workspace — clean (only 2 pre-existing dead-code warnings from the source repo)
  • cargo test --workspace — 93/93 passing
  • cargo +nightly fmt --all -- --check — clean
  • Launched the release binary in this repo with a real track loaded; confirmed BPM analysis, waveform rendering, mixer, library, and lighting programmer UI all work correctly
  • CI: first run on this branch is the real test of whether the Linux runner's system libs cover eframe's wgpu backend (previously this repo's UI used the glow backend) — watch the Linux job and add apt packages if it fails to link

…alo-light

Swaps crates/ (core/fixtures/halo/ui -> halo/halo-light) and the root
Cargo.toml/Cargo.lock for the new dual-deck DJ app with lighting layer,
while keeping shows/, docs, CI, and other project metadata from this repo.
The ported code wasn't formatted against this repo's rustfmt.toml
(group_imports/imports_granularity=Module). No behavioral change.
crates/halo/Cargo.toml depends on ../../../timestretch-rs as a path
dependency (it's published to crates.io at 0.8.0 but halo's code already
uses PreAnalysisArtifact::resample_to, added after that release — so a
registry dependency isn't viable yet). CI's checkout only had this repo,
so the path resolved to a nonexistent directory and every job failed at
the formatting-check step before it could build anything. Check out
robmorgan/timestretch-rs (public) one level above this checkout so the
same relative path that works locally also resolves in CI.
actions/checkout@v6 refuses `path: ../timestretch-rs` directly ("Repository
path ... is not under ..."). Check out into an in-workspace subdirectory
instead and mv it up a level in a plain shell step.
… libs

winit refuses to build at all on Linux without at least one windowing
backend feature enabled. crates/halo disables eframe's default features
and only opted into accesskit/default_fonts/persistence/wgpu, dropping
the x11/wayland features that normally come along with eframe's defaults.
Add them back, and install the dev packages winit/smithay-client-toolkit
need to link against on the CI runner.
@robmorgan
robmorgan merged commit b8f02c0 into main Jul 20, 2026
3 of 6 checks passed
@robmorgan
robmorgan deleted the dj-nx branch July 20, 2026 12:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant