Skip to content

build: stop compiling libopus, and drop cmake from the image - #285

Merged
InstaZDLL merged 1 commit into
mainfrom
build/drop-libopus
Oct 17, 2026
Merged

InstaZDLL merged 1 commit into
mainfrom
build/drop-libopus

Conversation

@InstaZDLL

@InstaZDLL InstaZDLL commented Oct 17, 2026 •

Copy link
Copy Markdown
Owner

Summary

Closes #282. waveflow-core now keeps its libopus decoder behind an opus feature in its default set (InstaZDLL/WaveFlow#883). This server already declares default-features = false and decodes everything through FFmpeg, so:

  • The pin moves from bd8d360 to 9b50f3de (the merge of #883). cargo update -p waveflow-core removes opusic-sys and the cmake crate from the graph.
  • The Dockerfile's builder stage no longer installs cmake; the comment says why it is absent.

The pin also brings what landed on WaveFlow's main in between. In the graph that is realfft/rustfft and their small dependencies, added for the desktop's rhythm analysis. lofty does not move, so the scanner's tag types stay on one version.

How I tested

  • cargo tree -i opusic-sys and cargo tree -e build -i cmake: no match.
  • cargo clippy --all-targets --all-features -D warnings and the whole cargo test --all-features: green.
  • cargo metadata --locked: the lockfile records the new revision.
  • Not tested: the image build. Docker is not running on this machine, and the image is only built by release.yml at a tag. Nothing left in the graph has a build script asking for cmake, but the first proof of the Dockerfile change will be the next release build, or a manual docker build ..
  • The local CodeRabbit review raised one finding — that Cargo.lock still names the old revision. It does not: the committed lock carries rev=9b50f3de…, and --locked resolves.

Summary by CodeRabbit

  • Maintenance
    • Mise à jour d’un composant utilisé par l’application.
    • Réduction des outils installés lors de la compilation de l’image Docker.

waveflow-core now keeps its libopus decoder behind an opus feature in its default set (InstaZDLL/WaveFlow#883). This server declares default-features = false and decodes through FFmpeg, so moving the pin removes opusic-sys and the cmake crate from the graph, and the builder stage no longer installs cmake.

The pin also brings what landed on WaveFlow's main since bd8d360, which adds realfft for its rhythm analysis; lofty does not move.

Closes #282

Signed-off-by: InstaZDLL <github.105mh@8shield.net>
@github-actions github-actions Bot added scope: server Server core (Rust) scope: deps Dependencies type: build labels Oct 17, 2026
@coderabbitai

coderabbitai Bot commented Oct 17, 2026 •

Copy link
Copy Markdown
Contributor

Review in Change Stack →

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration
  • Configuration used: Repository: InstaZDLL/waveflow-server/.coderabbit.yaml
  • Review profile: ASSERTIVE
  • Plan: Advanced
  • Run ID: bf8c46ed-7f9e-4c1b-8b12-c54f820d2df8
📥 Commits

Reviewing files that changed from the base of the PR and between 391bf6c and 4e6f7d0.

⛔ Files ignored due to path filters: 1
  • Cargo.lock is excluded by !**/*.lock, !Cargo.lock, !*.lock
📒 Files selected for processing: 2
  • Cargo.toml
  • Dockerfile

Included review availability: This review used your included allowance. 0 included reviews remain after this review. Your included PR review attempts over the past 7 days set your current allowance at 1 review per hour.

📝 Walkthrough

La révision Git de waveflow-core est mise à jour. Le Dockerfile retire cmake et précise que le serveur utilise FFmpeg pour le décodage.

Changes: Configuration de construction

Layer / File(s) Summary
Dépendance et image de construction
Cargo.toml, Dockerfile
Cargo.toml épingle une nouvelle révision de waveflow-core et conserve default-features = false. Le Dockerfile retire cmake et indique que le serveur décode via FFmpeg.

Priority: ⬇️ Low

Estimated code review effort: 1 (Trivial) | ~5 minutes

Change: Other

Merge Risk: ⚪ Minimal · up to 4e6f7

The change updates a dependency pin and removes an unneeded build tool from the image. No concrete failure was found. The next release build will confirm the image builds.

### Architecture Summary

Architecture risk: 🔵 Low · up to 4e6f7

The change affects 2 systems.

Changed systems: Cargo.toml, Dockerfile

Architecture concerns
No architecture-level concerns identified.

Review details

Systems and components

  • observed — Cargo.toml (service) was modified; 1 changed file maps to changed impact.
  • observed — Dockerfile (service) was modified; 1 changed file maps to changed impact.

Before / after behavior

  • observed — Modified behavior in Cargo.toml: La révision Git de waveflow-core passe de bd8d360cf3db4da946fcd52ec14ed912169c25ec à 9b50f3de288d62b0ff9f867ab7bda504b255cc5c ; le dépôt et la désactivation des fonctionnalités par défaut restent identiques.
  • observed — Modified behavior in Dockerfile: Le commentaire indique que le décodeur libopus de waveflow-core est désactivé par default-features = false et que le serveur utilise FFmpeg. L’installation conserve git et ca-certificates, mais ne comprend plus cmake.
Pre-merge checks: Passed 5
Check name Status Explanation
Title check Passed Le titre décrit clairement les deux changements principaux : l’arrêt de la compilation de libopus et la suppression de cmake de l’image Docker.
Description check Passed La description présente le contexte, les changements, les validations effectuées et la limite connue concernant le build Docker. Elle utilise des intitulés différents du modèle et ne contient pas la c…
Linked Issues check Passed Les exigences de #282 sont couvertes. Cargo.toml épingle waveflow-core sur 9b50f3de… et conserve default-features = false. Le rapport indique que cargo tree -i opusic-sys et `cargo tree -e b…
Out of Scope Changes check Passed Les changements restent dans le périmètre de #282. Ils modifient uniquement l’épingle de waveflow-core, la configuration de dépendances associée et l’installation de cmake dans le Dockerfile. L’…
Docstring Coverage Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0…
Full details: Description check

Explanation

La description présente le contexte, les changements, les validations effectuées et la limite connue concernant le build Docker. Elle utilise des intitulés différents du modèle et ne contient pas la confirmation AGPL-3.0-only et DCO, mais elle reste suffisamment complète.

Full details: Linked Issues check

Explanation

Les exigences de #282 sont couvertes. Cargo.toml épingle waveflow-core sur 9b50f3de… et conserve default-features = false. Le rapport indique que cargo tree -i opusic-sys et cargo tree -e build -i cmake ne trouvent aucune correspondance. Le Dockerfile ne préinstalle plus cmake et documente la raison. Les validations cargo metadata --locked, cargo clippy et cargo test réussissent. La construction de l’image n’a pas été exécutée, mais cette absence ne démontre pas un défaut de code.

Full details: Out of Scope Changes check

Explanation

Les changements restent dans le périmètre de #282. Ils modifient uniquement l’épingle de waveflow-core, la configuration de dépendances associée et l’installation de cmake dans le Dockerfile. L’ajout indirect de realfft et rustfft provient de la nouvelle révision épinglée et reste lié à cette mise à jour.

Full details: Docstring Coverage

Explanation

No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0 files. (2 skipped: 2 unsupported.)

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Comment @coderabbitai help to get the list of available commands.

@github-actions github-actions Bot added the size: s 10-50 lines label Oct 17, 2026
@InstaZDLL InstaZDLL self-assigned this Oct 17, 2026
@InstaZDLL
InstaZDLL merged commit 593a33e into main Oct 17, 2026
15 checks passed
@InstaZDLL
InstaZDLL deleted the build/drop-libopus branch October 17, 2026 10:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

scope: deps Dependencies scope: server Server core (Rust) size: s 10-50 lines type: build

Projects

None yet

Development

Successfully merging this pull request may close these issues.

build: stop building libopus through waveflow-core when the server never uses it

1 participant