Atomic Booster Vala — нативный системный менеджер ALT Atomic на Vala, GTK4 и libadwaita
- Vala 93.4%
- Python 3.5%
- Shell 1.5%
- Meson 1.1%
- Makefile 0.2%
- Other 0.2%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
|
All checks were successful
Vala pattern lint / lint (push) Successful in 25s
build-and-test / release (push) Has been skipped
build-and-test / test (push) Successful in 1m45s
Sanitizers and Valgrind / asan-ubsan (push) Successful in 1m58s
Sanitizers and Valgrind / memcheck (push) Successful in 1m58s
RPM / rpm (push) Successful in 2m24s
staged-деплоймент может появиться до окончания загрузки; reboot_pending теперь сбрасывается, пока upgrade_in_progress. |
||
| .forgejo/workflows | ||
| api | ||
| blocks | ||
| build-aux/altlinux | ||
| core | ||
| data | ||
| docs | ||
| modules | ||
| scripts | ||
| services | ||
| tests | ||
| .gitignore | ||
| ARCHITECTURE.md | ||
| Containerfile | ||
| Makefile | ||
| meson.build | ||
| PLAN.md | ||
| README.md | ||
Atomic Booster Vala
Новая нативная реализация Atomic Booster на Vala + GTK4 + libadwaita.
Python-реализация в ~/atomic-booster/ остаётся рабочим референсом поведения и
D-Bus-контракта. Проект публикуется в ALS; Forgejo CI описан в
.forgejo/workflows/ci.yml и запускается после включения Actions в настройках
репозитория.
Главные принципы
apiзадаёт единый публичный контракт приложения, вкладок, блоков, backend-ов и операций;coreвладеет application lifecycle, окнами, module registry, D-Bus и общим состоянием;servicesне знают о GTK и возвращают typed models/operations;modules— вкладки, собранные только через общийTabModuleAPI;blocks— переиспользуемые GTK/libadwaita-секции с единым lifecycle;- каждый async subprocess имеет cancellable, timeout, wait и dispose cleanup;
- каждый новый Vala-грабельный паттерн сначала подтверждается тестом, затем
заносится в
~/NitiVala/Vala.md; - первый smoke/integration run выполняется в отдельном distrobox, чтобы не затрагивать актуальный Python AB; чистая воспроизводимая сборка выполняется в Podman/fixtures.
- функциональные модули не разрастаются в монолиты: UI-строки, форматтеры, диалоги, операции и lifecycle-код раскладываются по небольшим файлам внутри соответствующей папки модуля; перед добавлением нового кода сверяемся с Python-референсом и переиспользуем его функциональный скелет.
Структура
См. ARCHITECTURE.md, PLAN.md и исследование интеграции с Niti Updates.
Санитайзеры и valgrind
В CI по dev и ежедневно выполняются ASan/UBSan и отдельный make memcheck
с Valgrind. Локально используйте meson setup build --wipe -Db_sanitize=address,undefined
и meson test -C build atomicbooster-api; подавления внешних библиотек лежат
в tests/sanitizers/lsan.supp.