flagos-ai / flagos-ai/community

[FEP-0019] Wave 1 Packaging Tracking (11 repositories)

Open
#59 0 comments 0 reactions 0 assignees View on GitHub
FEP sig/os
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.