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%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
plafonlinux d44cdc9ffc
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
Booster: «перезагрузка» не показывается, пока bootc качает обновление
staged-деплоймент может появиться до окончания загрузки; reboot_pending
теперь сбрасывается, пока upgrade_in_progress.
2026-10-03 19:46:32 +02:00
.forgejo/workflows feat: publish source archives for tagged releases 2026-09-30 14:17:33 +02:00
api Статус GetStatus: признак stale у кэшированного снимка, кэш помечается свежим после успешного чтения 2026-09-29 14:48:39 +02:00
blocks Add tested Atomic Booster Vala application 2026-09-13 01:52:30 +02:00
build-aux/altlinux Пакет: Release по нумерации проекта (наибольший тег: 29, дальше 29.<коммитов>) вместо времени сборки 2026-09-28 22:38:13 +02:00
core Статус GetStatus: признак stale у кэшированного снимка, кэш помечается свежим после успешного чтения 2026-09-29 14:48:39 +02:00
data Компоненты обновляются только с образом: убраны загрузка/установка/откат Niti и Booster в обход образа, версии из маркеров RPM 2026-09-28 19:09:57 +02:00
docs Не путать нераспознанную строку прогресса bootc с ошибкой обновления 2026-10-02 18:06:07 +02:00
modules Канал образа и дата сборки: значение по умолчанию без файла 2026-09-29 13:12:39 +02:00
scripts CI: проверка шаблонов Vala с baseline 2026-09-29 15:52:25 +02:00
services Booster: «перезагрузка» не показывается, пока bootc качает обновление 2026-10-03 19:46:32 +02:00
tests Booster: «перезагрузка» не показывается, пока bootc качает обновление 2026-10-03 19:46:32 +02:00
.gitignore updates: harden release and component integration 2026-09-14 23:05:40 +02:00
ARCHITECTURE.md Document ALS CI status and release prerequisite 2026-09-13 01:54:45 +02:00
Containerfile Add tested Atomic Booster Vala application 2026-09-13 01:52:30 +02:00
Makefile ci: fix Booster memcheck paths and Forgejo lint 2026-09-30 14:03:03 +02:00
meson.build Откат Welcome-вкладки + снуз/скип обновлений + "О каналах" 2026-09-13 09:33:32 +02:00
PLAN.md Document ALS CI status and release prerequisite 2026-09-13 01:54:45 +02:00
README.md CI: сборка под ASan/UBSan и valgrind для тестов 2026-09-29 14:48:39 +02:00

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 — вкладки, собранные только через общий TabModule API;
  • 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.