[CICD] Add Debian + RPM packaging#1205
Open
shiptux wants to merge 14 commits into
Open
Conversation
Adds packaging/debian/ and packaging/rpm/ to produce:
- python3-flagscale_1.0.0-1_all.deb (587 KB, noarch)
- python3-flagscale-1.0.0-1.fc43.noarch.rpm (2.0 MB)
Build pattern mirrors FlagCX:
- debian/ uses dh-python with the pyproject buildsystem; minimal
Build-Depends, Architecture: all because FlagScale is pure Python
- rpm spec uses %pyproject_wheel / %pyproject_install / %pyproject_save_files
(compatible with Fedora 44+; replaces the deprecated %py3_build pair)
- build-helpers/Dockerfile.deb is Ubuntu 22.04 + dh-python +
pybuild-plugin-pyproject + setuptools>=77 via pip (Ubuntu 22.04's
apt setuptools predates PEP 639 license-file support)
Heavy runtime deps (transformers, torch, etc.) are intentionally NOT
declared as Depends to keep the package installable on systems without
GPU drivers; users install those via pip extras as needed.
…kday; preserve pip stderr
…o debian:trixie-slim for setuptools>=77
Triggered on push tag v*, PR touching packaging/, or manual dispatch. Runs the existing local build helper in a container and uploads the produced .deb / .rpm as actions artifacts named 'flagscale-amd64-packages' / 'flagscale-amd64-rpm-packages', matching the central flagos-packaging publish pipeline's components/flagscale.yml artifact_pattern.
…urce0 with %{url}
…ession); add Vcs fields; UTC timestamp; preserve build stderr
…c features used; ubuntu:24.04 build now passes)
…ra-core Depends; filter hydra-core from RPM Requires (not in distro, install via pip)
… trixie unnecessary)
…nt; Source0 fedora-style
…2); apt --no-install-recommends (flagos-ai#10); CI trigger on src paths (flagos-ai#8); .dockerignore (flagos-ai#11)
- spec: re-add explicit %{_bindir}/flagscale (verified: %pyproject_save_files does NOT pick it up despite [project.scripts]), tighten __requires_exclude regex, escape %%pyproject_save_files in comment
- Dockerfile.deb: add build-essential
- INSTALL.md: user-side hydra-core install
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
PR Category
CICD
PR Types
New Features
PR Description
Adds Debian (
.deb) and RPM packaging configuration underpackaging/debian/andpackaging/rpm/so FlagScale can bedistributed as a noarch package alongside the rest of the FlagOS
stack via standard
apt install/dnf installflows.Produced binaries (built locally on Ubuntu 22.04 / Fedora 43):
python3-flagscale_1.0.0-1_all.deb(≈587 KB, noarch)python3-flagscale-1.0.0-1.fc43.noarch.rpm(≈2.0 MB)Ships the
flagscaleCLI under/usr/bin/flagscale. Heavy ML deps(PyTorch, Megatron, vLLM) are intentionally NOT declared as hard
Depends — they're sized / sourced by the user (e.g.
pip install "flagscale[cuda-train]"or via NVIDIA's NGC container).What changed (all under
packaging/, no source code changes):debian/{control,rules,changelog,copyright,source/format}— Debiansource-format-3.0-native packaging using
dh-python+pyproject-rpm-macros.rpm/specs/flagscale.spec— RPM spec mirroring the DEB layout,using
%pyproject_wheel/%pyproject_install/%pyproject_save_filesfor modern Fedora compatibility.{debian,rpm}/build-helpers/— single-command containerizedbuild:
bash packaging/debian/build-helpers/build-flagscale.shproduces the .deb without host build-deps; same shape for RPM.
How it was tested:
ubuntu:24.04+debian:trixiecontainersapt install python3-flagscalesucceed;importlib.util.find_spec('flagscale')resolves under
/usr/lib/python3/dist-packages/flagscale/.https://shiptux.github.io/flagos-packaging/aptvalidated on2026-05-20 (see flagos-packaging docs).
Distribution:
This artifact is consumed by a central FlagOS publish repo
(sandbox at https://github.com/shiptux/flagos-packaging; the
production endpoint remains the FlagOS Nexus mirror at
resource.flagos.net).Known limitations:
flagos-packaging's
docs/compatibility-status.md.