refactor(just): move 00-entry.just to shared with optional imports - #1042
refactor(just): move 00-entry.just to shared with optional imports#1042Siddhj2206 wants to merge 2 commits into
Conversation
…ports The ujust entrypoint dispatches recipes for every variant, so it belongs in system_files/shared. changelog.just and system.just are Bluefin-specific and now import? so shared consumers without them (e.g. minimal variants) still get a working entrypoint with the shared recipe set. Assisted-by: OpenCode via GitHub Copilot Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
Verified the diff and every consumer wired to this entrypoint — LGTM with one suggestion. What the diff actually is (confirmed): a git mv of 00-entry.just from bluefin/ to shared/ (auto-detected rename, 2 ins / 2 del) plus relaxing import → import? for changelog.just and system.just. Nothing else touched.
Suggestion (not blocking): the new behavior — a variant without changelog.just/system.just still getting a working ujust — is currently unexercised. Every existing consumer provides both files, so import? is a pure no-op today. A cheap smoke test (run just -f .../shared/00-entry.just --list against a tree missing the two files via the existing test_ujust.bats harness, or a one-off in unit-tests.yml) would lock in the change's actual reason to exist. Minor nit: PR body says "Containerfile:47-48" for bluefin, but the merge lines it cites are in the bluefin repo's Containerfile, not this one — the line number set is right, just label the repo. |
hanthor
left a comment
There was a problem hiding this comment.
Why do this just to system and changelog? Seems like this is a specific solution for your custom image not something that is general purpose.
Every recipe file is now import? so variants that omit any recipe set still get a working ujust dispatcher (_default always runs). Assisted-by: OpenCode via GitHub Copilot Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
hanthor
left a comment
There was a problem hiding this comment.
Read the current diff directly: it's a git mv of 00-entry.just from bluefin/ to shared/ plus relaxing all six previously-mandatory imports to import?. This already reflects the "make them all import?" suggestion from the review thread — that conversation is resolved and the code matches it.
Verified the reasoning holds: the ujust wrapper and test_ujust.bats reference only the runtime path, not the repo path, so the move itself is safe. Both bluefin and bluefin-lts merge shared/ + bluefin/ into the same target and currently ship both changelog.just/system.just from the bluefin tree, so import? is a behavior-preserving no-op for every existing consumer today — it only changes what happens for a future variant missing those files (graceful skip instead of hard just failure), which is the actual point of the change.
No CI has run yet (0 check runs) — likely pending a maintainer's workflow-run approval. Given the change is a rename plus a strictness relaxation with no logic touched, I'm comfortable approving on the verified diff alone; worth confirming CI comes back clean before merge regardless.
Generated by Claude Code
Summary
Moves
system_files/bluefin/usr/share/ublue-os/just/00-entry.justtosystem_files/shared/usr/share/ublue-os/just/00-entry.justand makes everyimport in the entrypoint optional (
import?):apps.just,default.just,shared.just,update.just— now optionalchangelog.just,system.just— now optional (were mandatory, Bluefin-only)flutter.just,60-custom.just,60-bonedigger.just— already optionalWhy
The
00-entry.justdispatcher is consumed by every variant via the sharedujustwrapper (system_files/shared/usr/bin/ujust→just --justfile /usr/share/ublue-os/just/00-entry.just), so it belongs inshared/ratherthan
bluefin/. With all-optional imports, the shared dispatcher degradesgracefully: any variant ships exactly the recipe set it has, and
_defaultalways runs.
Impact (verified)
Containerfile:47-48merges bothsystem_filestrees recursively; final
/usr/share/ublue-os/just/tree is identical andall 9 files exist (
import?loads when present).elements/bluefin/common.bst:74-77copies both trees; entrypointnow arrives via the shared copy. Dakota overlays
default/changelog/system/flutter.justviajust-overrides.bstas before.projectbluefin/common(pinsghcr.io/get-aurora-dev/common— its own entrypoint is unchanged), zeroeffect.
ujustwrapper and
test_ujust.batsreference the runtime path only.Verification
just checkpasses (entrypoint now found undershared/)git mvrename detected + all importsimport?Closes N/A — no issue tracked.