sneak preview: uv, Click, Rich, tui; flavors; Secure Boot?#62
Draft
rpardini wants to merge 77 commits intotinkerbell:mainfrom
Draft
sneak preview: uv, Click, Rich, tui; flavors; Secure Boot?#62rpardini wants to merge 77 commits intotinkerbell:mainfrom
rpardini wants to merge 77 commits intotinkerbell:mainfrom
Conversation
…les and dirs instead - this avoids remote-fs errors in mkosi when running against remote Docker daemon (eg: colima, Docker Desktop) - no, one can't simply mount tmpfs to `/work/mkosi.tools` -- mkosi wants to be able to delete it - ideally, `mkosi.output` (a misnomer?) would also be shared across invocations using a Volume (not yet though) Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
- so one can use `uv run build.py` without worrying about deps Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
- this way we don't overwhelm Debian apt mirrors during development Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
- drop all custom logging infra, standardize on logging - introduce Rich for logging & exception handling - replace custom progressbar with Rich's Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
- switch from system-breaking `pip` to fully-contained `uv` - let `uv` install Python, don't use Debian's -- we get a single Python version for free - also: use Docker buildx explicitly; use plain output - build/docs: switch from plain Python+pip to uv; mention 3.13 instead of 3.10 - consolidate usage of pyproject.toml; drop old requirements-dev.txt and requirements.txt - docker: run in interactive mode (tty) if isatty(), pass TERM/COLUMNS env - docker: prime `uv`'s caches during Dockerfile build Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
- gha/docker: force Rich colored 160-wide console under GHA - pass down GITHUB_ACTIONS env so children can know - gha: reduce apt verbosity drastically with `Dpkg::Use-Pty=0` Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
- so gha stops complaining about Node.js 20 Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
- .editorconfig for shell scripts and shell templates Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
…tools tree across invocations Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
- this will allow using a generic/distro kernel instead of building one Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
- hack until it uses the mkosi-supplied kernel for everything - artifacts: look for mkosi-supplied vmlinuz first Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
- self-built kernel from source will come back at a later stage, as a .deb package Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
- just do everything at once Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
…racut/initramfs-tools) Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
- also: show info about modules and full rootfs Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
- later to be reborn as standard apt package Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
- mkosi.finalize: clean up logging a bit - mkosi.postinst: debugs Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
gha: fix Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
gha: pass DEFAULT_FLAVOR_ID as KERNEL_VERSION for publish-combined - retry Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
- so one can use an HTTP local `registry:2` for testing pushes Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
- add to pyproject.toml, thus `uv run captain ...` Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
- using captain.cli._stages Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
click: kill old cli completely Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
- as it is called internally via docker Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
captain: simplify Rich logging and trace handler; let's not have two `click` packages Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
…ayers to optimize for parallel pulls Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
…ython + pip for mkosi - mkosi re-launches itself and ignores uv's env without a tools tree - uv instead does use the system Python if it matches constraints - build in /work in Dockerfile, allows to reuse .venv - don't mount a volume in /work, instead use the one provided by the Dockerfile Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
- refactor add_static_dir() into BaseFlavor - make has_iso() abstractmethod at BaseFlavor level - make kernel_packages() abstractmethod at common-debian level Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
- so it's `common-debian > common-acpi > trixie-full` - in the future: `common-debian > common-acpi > trixie-mainline` - common-acpi implements `has_iso()` as True Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
- CliContext is a Config factory, taking both common and specific options - actually implement --verbose, thus new default logging level is INFO Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
- show Locals - show all frames in traces - use Highlights for FORCE_COLOR=1 Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
- See https://github.com/Textualize/trogon and https://github.com/Textualize/textual - this cashes out on the Click / Rich investment Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
- reduce suffering while I juggle Click Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
- uv: split `Config::verbose_uv` from --verbose/Logging.DEBUG; use --quiet otherwise - use `shutil.get_terminal_size` to obtain and pass-down-Docker COLUMNS - nicer logging format, use a whale emoji for in-Docker logs - show Rich Table with Docker environment vars if --verbose - show Rich Panel and Rich Syntax for `util.run()` if --verbose Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
- we've a separate artifact for .iso Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
42973f5 to
ebf51be
Compare
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.
sneak preview: uv, Click, Rich, tui; flavors; Secure Boot?
/work/mkosi.tools-- mkosi wants to be able to delete itmkosi.output(a misnomer?) would also be shared across invocations using a Volume (not yet though)uv run build.pywithout worrying about deps/cache/packagesDocker Volume for download cachinguveverywherepipto fully-containeduvuvinstall Python, don't use Debian's -- we get a single Python version for freeuv's caches during Dockerfile buildDpkg::Use-Pty=0uvinstall instructions and fix log.py and init.pyin-docker:prefixdtbmkosi.outputfolder intoout/--flavor-idDpkg::Use-Pty "0";to mkosi sandbox tree--tls-verify=falseregistry:2for testing pushesclick_cliuv run captain ...obtain_builderclickpackagescommon-debian > common-acpi > trixie-fullcommon-debian > common-acpi > trixie-mainlinehas_iso()as TrueConfig::verbose_uvfrom --verbose/Logging.DEBUG; use --quiet otherwiseshutil.get_terminal_sizeto obtain and pass-down-Docker COLUMNSutil.run()if --verbose