LibreQoS Packaging and Release
Use this skill for packaging and shipped-file work.
Scope
- Packaging scripts:
src/build_dpkg.sh,src/build_rust.sh - Node manager asset copy/build path:
src/rust/lqosd/copy_files.sh,src/rust/lqosd/dev_build.sh - Files copied into installed layouts such as
/opt/libreqos/src,/opt/libreqos/src/bin,/etc/systemd/system, and packaged static assets
Invariants
src/build_dpkg.shis the functional source of truth for shipped.debinstalls.src/build_rust.shandsrc/build_dpkg.shshould stay aligned where they overlap on binaries, static assets, helper scripts, and operator expectations.- If a change adds, renames, moves, or newly requires a shipped file, update packaging in the same change.
- Never assume packaging will pick up a new file automatically. Verify the copy/install path explicitly.
Workflow
- Read
AGENTS.mdfirst for current packaging and safety rules. - Identify every new or changed file the feature needs at runtime, install time, or service start time.
- Review
src/build_dpkg.shand any related copy/build helpers for the relevant copy/install path. - Update the packaging/build scripts in the same change as the feature.
- If node_manager assets are involved, also review
copy_files.sh,dev_build.sh, and the node_manager build contract. - If install behavior or service expectations changed, update docs in the same change.
References
- Read
references/package-surface.mdwhen deciding whether a file is part of the shipped install or where it is copied from.
Validation
- Run
bash -non changed shell scripts. - If node_manager assets are involved, run
src/rust/lqosd/src/node_manager/js_build/test-build-contract.sh. - After any repo change, invoke
hecklervia$libreqos-review-subagents-workflowbefore returning to the user. - After each source-code implementation batch, also invoke
reapervia$libreqos-review-subagents-workflow. - During large sessions, invoke
$libreqos-review-subagents-workflow(andhelenif UI changed). - If you did not run a full package build, say so explicitly.
- Before finishing, answer this directly: "Does
src/build_dpkg.shinclude every new required file?"
High-Risk Changes
- Service files and post-install behavior
- Static assets copied through intermediate build helpers
- Python/Rust files that work in-repo but are missing from the installed package
update_api.sh/lqos_apipackaging behavior- Any change that assumes
/opt/libreqos/srccontains files that packaging does not copy
Notes
- Package-content drift is a recurring failure mode in this repo.
src/build_rust.shcan restart services on the local host; treat it as an operationally sensitive script, not a harmless build helper.