Make a clean PR in mflux (inspect diff, quick verification, commit, push, open PR) using repo conventions.
just test-fastgh isnβt available, fall back to the GitHub web UI (or stop and ask).The release-note CI check fails the PR if the body has no complete release-note block. Do these steps for every PR:
.github/pull_request_template.md to body.md and write the PR body in that file. Do not write the body from nothing.body.md, fill in the release-note block. The opening fence must be exactly ```release-note, on its own line. Put the note on the lines below the fence, not on the fence line.none.body.md:python3 - body.md <<'PY'
import re, sys
body = open(sys.argv[1], newline="").read()
m = re.search(r"^```release-note[ \t\r]*\n(.*?)^```[ \t\r]*$", body, re.DOTALL | re.IGNORECASE | re.MULTILINE)
sys.exit(0 if m and m.group(1).strip() else "FAIL: no complete release-note block")
PY
gh pr create --body-file body.md. Do not use --body, --fill or the editor, because then GitHub does not get the body that you checked.gh pr edit <n> --body-file body.md). The check runs again on an edit. You do not need a new commit.Keep the regex the same as .github/workflows/release-note.yml and _FENCE in src/mflux/release/release_notes.py.
Use after the core port lands and you are polishing for merge. For the full integration surfaces tick list (LoRA key formats, save routing, tokenizer edge cases, etc. learned from past closed PRs), see mflux-model-porting β Integration surfaces checklist.
just lint and just test-fastjust ci-extract after changing AVAILABLE_MODELS or scripts/ci_extract_models.pyMFLUX_PRESERVE_TEST_OUTPUT=1 uv run pytest tests/image_generation/test_generate_image_<model>.py -m slow -v
mflux-debugging, mflux-manual-testing)List files changed outside src/mflux/models/<model>/:
| Category | Expected |
|---|---|
pyproject.toml, cli/defaults/defaults.py, ModelConfig, mflux-save routing |
Required wiring |
scripts/ci_extract_models.py OVERLAY / EXTRA_ENTRIES |
Required CI-manifest wiring for every new model key or standalone tool |
README.md table + attribution |
Required |
Training runner.py, example JSON, .gitignore JSON exceptions |
If training supported |
| Shared VAE/callback/training one-liners | Only if required; document blast radius in PR |
Personal .gitignore, unrelated formatting |
Remove |
Verify quantized README disk claims with measurement:
du -sh ~/.cache/huggingface/hub/models--<org>--<Model>*
mflux-save --model <alias> --quantize 8 --path /tmp/model-q8 && du -sh /tmp/model-q8
README.md model table row (correct release date).src/mflux/assets/; may need git add -f when *.jpg is gitignored).