Build and packaging library
  • Python 54.1%
  • Makefile 33.7%
  • Shell 12.2%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Jan Lindemann 6b4bcdfaf8
All checks were successful
CI / Packaging - Kali Linux (pull_request) Successful in 4m23s
CI / Packaging - OpenSUSE Tumbleweed (pull_request) Successful in 4m28s
CI / Packaging test (pull_request) Successful in 0s
CI / Packaging - Kali Linux (push) Successful in 3m58s
CI / Packaging - OpenSUSE Tumbleweed (push) Successful in 4m16s
CI / Packaging test (push) Successful in 0s
lib.App: Add a root command slot
The application's top-level behavior is defined by overriding
App._add_arguments() and App._run(). The lightweight run-and-options
unit, Cmd, can already be mounted at any node of the command tree, but
the root is reserved for the application itself. An application that
wants to host a plain command at the top level therefore has to
subclass App and carry its full lifecycle implementation.

Add a root parameter to App.__init__(). When it is given a command
class, App instantiates it and uses it as the top level: the command's
options are registered on the top-level parser, it becomes the parent
of the top-level subcommands, and App._run() delegates the run to it.
The command's children are wired as the top-level subcommands, so the
same Cmd can now occupy the root node. When root is not given, the
previous auto-discovery behavior is preserved unchanged.

Keep the top-level subcommand heading as plain "Available subcommands"
whether it is hosted by the application or by a root command, while
nested command levels continue to qualify the heading with the parent
name. Add a unit test that mounts a root command hosting a child and
checks option registration, dispatch, setup and teardown, and
resolution of the application through the parent chain.

Assisted-by: unsloth/Qwen3.8-27B-GGUF:Q4_K_M with pi.dev v0.84.2
Signed-off-by: Jan Lindemann <jan@janware.com>
2026-08-17 12:53:05 +02:00
.github/workflows ci.yaml: test-packaging.yaml@{master-test -> master} 2026-06-08 19:43:15 +02:00
bin bin, make, scripts: Re-add files necessary for packaging jw-build 2025-11-14 11:22:50 +01:00
conf py-check.mk: Run isort with "make format" 2026-08-11 16:45:14 +02:00
make defs.mk: Default VERSION -> 0.1.0-0-dev 2026-08-15 20:44:30 +02:00
scripts defs.mk: Default VERSION -> 0.1.0-0-dev 2026-08-15 20:44:30 +02:00
src lib.App: Add a root command slot 2026-08-17 12:53:05 +02:00
test lib.App: Add a root command slot 2026-08-17 12:53:05 +02:00
.gitignore cache.mk: Include from topdir.mk, not make.mk 2026-07-22 14:38:24 +02:00
HASH Release 1.0.0-253@kali-rolling/amd64 2026-08-16 04:15:38 +00:00
Makefile cache.mk: Include from topdir.mk, not make.mk 2026-07-22 14:38:24 +02:00
RELEASES Release 1.0.0-253@kali-rolling/amd64 2026-08-16 04:15:38 +00:00
VERSION Start version: 1.0.0-253 2026-08-15 23:22:26 +00:00