flagos-ai / flagos-ai/community
[FEP-0019] Wave 1 Packaging Tracking (11 repositories)
- Dominant language
- Python
- Stars
- 11
- Forks
- 26
- Avg merge
- 1h 24m
- Merged PRs (30d)
- 8
Description
## Summary
Tracking issue for FEP-0019 (Unified Package Integration, #19) Wave 1 rollout.
Per the approved FEP, each Wave 1 repository delivers:
- baseline: Debian `.deb` + RPM `.rpm` packages published to FlagOS Nexus
- Python projects additionally publish wheels to PyPI as the primary channel
- package review stays within the owning SIG (no cross-SIG approval required)
**Milestone: FlagOS 2.2** — all implementation PRs must be merged before the **2026-08-31 code freeze** (release 2026-09-28, see #47).
## Status update (2026-08-28, 3 days before freeze)
- All open Wave 1 PRs are rebased onto their current base branch and `MERGEABLE`; none has an unanswered review comment. Every remaining PR is waiting on a maintainer (review, or first-contributor workflow approval).
- FlagCX#549 (openEuler 24.03 RPM matrix row) merged 2026-08-27.
- FlagGems#3418 rebased (was 430 behind) and the maintainer's source-restructure request answered; FlagGems#4939 now adds `__init__.py` to all eight importable subpackages missing it (previously only `fused/DSA`); FlagGems#5812 filed for the new import-time Triton-driver dependency on `master`; FlagGems#5683 verified on A100 under SQLAlchemy 1.4.31.
- FlagFFT#12 reworked onto current `main` (follows the `flagfft_codegen` package and `BACKEND` option; keeps the bundled `libtriton_jit` on purpose, see §2 below).
- FlagBLAS#1 rebased (was 305 behind), DEB rebuilt and install-smoked.
- libtriton_jit#47/#48/#49 closed as superseded by #61.
- Realistic freeze outcome: Wave 1 stays at 4/11 merged unless maintainers act this week; the FEP-0019 tracking issue should then be re-milestoned per community#47 freeze rules rather than closed.
## Decision record (2026-08-19)
- **Workflow approvals:** FlagTensor #4 and FlagDNN #1 remain `action_required`. GitHub requires a repository maintainer to approve these first-contributor workflows; `shiptux` does not have that permission. This is a maintainer action, not a contributor-owned task.
- **libtriton_jit #61 reviewer:** DEB/RPM CI is green, but the PR is `REVIEW_REQUIRED` with no reviewer assigned. Wait for a repository maintainer response; if it remains unattended, `shiptux` will PIN/escalate. No reviewer is assigned without maintainer consent.
- **FlagFFT first publication backend:** NVIDIA only. MThreads follows when a publicly usable build image is available; PPU follows upstreaming of its backend; IX follows FlagFFT #17.
- **DEB/RPM ABI:** Keep separate distro-specific ABI matrices. Each format must remain compatible with its target distribution; DEB and RPM do not need to share an ABI stack, and cross-format ABI compatibility is not a requirement.
## Wave 1 checklist (4/11 merged)
### Merged
- [x] FlagCX — flagos-ai/FlagCX#476 (deb earlier; RPM merged 06-22)
- [x] FlagTree — flagos-ai/FlagTree#607 (merged 06-03)
- [x] FlagSparse — flagos-ai/FlagSparse#12 (merged 06-02)
- [x] FlagAttention — flagos-ai/FlagAttention#31 (merged 05-27)
### CI green, pending review
- [ ] FlagGems — flagos-ai/FlagGems#3418 (rebased 08-27 onto the restructured tree: setuptools backend, `cpp/` split, tests/benchmark in wheel; CI awaiting maintainer approval; install smoke stays red until FlagGems#4939 lands)
- [ ] FlagBLAS — flagos-ai/FlagBLAS#1 (rebased 08-28; DEB rebuilt and install-smoked locally; reviewer pinged)
### In progress
- [ ] FlagDNN — flagos-ai/FlagDNN#1 (updated from the retired pure-Python package to native 0.2.0 runtime/devel packages; local DEB/RPM builds and installed CMake consumer pass; CI is currently `action_required` pending FlagDNN maintainer approval, and the package depends on libtriton_jit#61 publishing 0.1.0-3)
- [ ] FlagScale — flagos-ai/FlagScale#1205 (rebased on main + typos-config fix, CI re-running as of 2026-07-14; earlier unit-test failures were a stale base, fixed on main)
- [ ] FlagQuantum — flagos-ai/FlagQuantum#4 (awaiting first-contributor CI approval)
- [ ] FlagTensor — flagos-ai/FlagTensor#4 (updated to backend-neutral Python plus NVIDIA runtime/dev/CPython packages; local DEB/RPM builds, imports, and installed CMake consumer pass; CI is currently `action_required` pending FlagTensor maintainer approval, and the package depends on libtriton_jit#61 publishing 0.1.0-3)
- [ ] FlagAudio — flagos-ai/FlagAudio#2 (awaiting first-contributor CI approval)
## Cross-repository packaging follow-up
### 1. System dependency use
- [x] flagos-ai/libtriton_jit#61 builds both DEB and RPM against distro fmt and nlohmann-json packages instead of FetchContent copies.
- [x] The same PR preserves generated libc/libstdc++/Python runtime dependencies while filtering only vendor CUDA/PyTorch SONAMEs.
- [x] FlagTensor #4 and FlagDNN #1 consume `libtriton-jit-nvidia >= 0.1.0-3` through `find_package(TritonJIT)` instead of building a private copy.
- [x] FlagTensor DEB keeps system OpenPyXL and PyYAML, but leaves matplotlib in the Python 3.12 vendor environment because Jammy's package pulls in a CPython 3.10 NumPy extension.
- [ ] flagos-ai/FlagFFT#12 should eventually move from the bundled `deps/libtriton_jit` build to the system TritonJIT package. **Blocked (2026-08-28):** FlagFFT `main` pins an `Artlesbol/libtriton_jit` revision (`dae63dc`) carrying the PPU backend and launch-path changes (~450 lines over flagos-ai master), so the system package cannot build FlagFFT until those are upstreamed. #12 keeps the private bundled copy; it already declares `nlohmann-json3-dev` / `json-devel`.
- [ ] Continue the native-package audit for other private fmt/json/third-party copies. FlagCX #530 and FlagTree #924 have already merged system nlohmann-json changes.
### 2. Backend package coverage
- [x] libtriton_jit#61 parameterizes `nvidia|metax|mthreads` packages as CMake `CUDA|MACA|MUSA`.
- [ ] Enable the MetaX and Moore Threads CI rows after publicly usable build images provide each vendor SDK and matching PyTorch stack.
- [x] Update FlagFFT #12 for current main — done 2026-08-27 (follows `flagfft_codegen`, `-DBACKEND=CUDA`; NVIDIA-only first publication).
- [ ] Upstream FlagFFT's PPU support from its `Artlesbol/libtriton_jit` submodule commit `dae63dc` before replacing that submodule with the flagos-ai system package. flagos-ai/libtriton_jit currently supports IX but not PPU, while #61 packages only CUDA/MACA/MUSA flavors.
- [x] Decide which non-NVIDIA FlagFFT packages belong in the first publication wave: first publication is NVIDIA only; MThreads waits for a public build image, PPU waits for upstream backend code, and IX waits for FlagFFT #17.
### 3. DEB/RPM parity
- [x] libtriton_jit#61 applies the fmt/json system-dependency fix to both DEB and RPM.
- [x] FlagTensor #4 and FlagDNN #1 use the same external TritonJIT package boundary, native package split, SONAME policy, and RPATH cleanup in both formats.
- [x] The currently validated ABI matrices are documented explicitly:
- DEB: CUDA 12.8 / Python 3.12 / PyTorch 2.10 / Triton 3.6 / pybind11 3.0
- RPM: CUDA 12.6 / Python 3.9 / PyTorch 2.8 / Triton 3.4 / pybind11 3.1
- [x] Keep separate DEB and RPM ABI matrices: each format stays compatible with its target distribution, but the two formats do not need to share an ABI stack.
### Merge and publication order
- [ ] Merge libtriton_jit#61 (DEB/RPM CI green; `REVIEW_REQUIRED`; no reviewer assigned since 07-31 — escalated to the active maintainers on 2026-08-28).
- [ ] Publish `libtriton-jit-nvidia 0.1.0-3` runtime and development packages to the FlagOS APT/YUM repositories.
- [ ] Re-run and merge FlagTensor #4 and FlagDNN #1 against the published dependency.
- [x] Rework and validate FlagFFT #12 after the first-release backend scope is decided (2026-08-27: rebased, local DEB build + install checks pass).
## Exit criteria
- All 11 checkboxes above merged and packages published to Nexus (wheels on PyPI where applicable)
- FEP-0019 status flipped from `Implementable` to `Implemented`
## Notes
- `libtriton_jit` deb/rpm packaging merged earlier (2026-02/03); it is outside the Wave 1 scope but listed here for context.
- Risks to the 08-31 code freeze will be raised in #47 as early as possible.
/cc @wbavon
Contributor guide
Research direction
Start with the FEP-0019 decision record, the Wave 1 checklist, and community#47 freeze rules, then review the linked repository PRs and the libtriton_jit#61 dependency order. This tracking issue is complete when all 11 repositories have merged implementations, packages are published to Nexus (and wheels to PyPI where applicable), and FEP-0019 changes to Implemented.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cmake, python
- Domain
- build-system, release
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100