Проект allyourcodebase упаковывает C/C++ библиотеки и программы для сборочной системы Zig — так их можно собрать одной командой zig build, в том числе под любую целевую платформу. Помимо прямого удобства для пользователей тулчейна Zig, каждая упаковка показывает мейнтейнерам оригинальных проектов, как может выглядеть build.zig и build.zig.zon для их кода.
Ценность для сопровождающего формулируется просто: Zig забирает на себя роли Make, GNUMake, CMake, autoconf, bash-, batch- и powershell-скриптов, поставляя полноценную кросс-платформенную сборочную систему. Он же тянет за собой Clang как компилятор, работает как пакетный менеджер и убирает нужду в Docker или матрице CI-образов для сборки под разные архитектуры — кросс-компиляция идёт из коробки. Все системные зависимости становятся опциональными, и окружение больше не влияет на результат.
Если вы мейнтейнер и хотите перенести наработки allyourcodebase в апстрим — забирайте всё, что нужно, из репозитория организации, а затем откройте Issue, чтобы ваш пакет был заархивирован, а люди перенаправлены к вам. Единственное условие: ваша интеграция build.zig не должна добавлять больше системных зависимостей, чем было в версии allyourcodebase. Например, если их пакет использует zstd через allyourcodebase/zstd, ожидается, что вы либо оставите ту же зависимость, либо через System Library Integration дадите пользователю выбор. Если же вы не планируете тянуть чужие пакеты через Zig-менеджер, помощь всё равно окажут, но организация продолжит поддерживать свой форк.
Сами упаковки делаются по одной из двух схем. Первая: в своём репо добавляют апстрим как зависимость в build.zig.zon и кладут build.zig — наглядно видно, что проекту нужны всего два файла. Вторая: форкают оригинальный проект, удаляют старые сборочные скрипты, вносят нужные патчи (например, учат вспомогательные утилиты принимать выходной путь аргументом, а не писать жёстко в cwd). Такой вариант глубже проработан, но требует от мейнтейнера большей аккуратности при слиянии.
Хотите помочь — напишите kristoff и запросите доступ в организацию. Правила такие: лицензия вашего кода должна быть не строже оригинальной (берите MIT, не ошибётесь); в репо — только сборочные файлы, без Zig-специфичных обвязок вроде биндингов; таргетируйтесь на последнюю стабильную версию Zig; начинайте с первой стратегии и переходите к форку, только если нужны патчи исходников или глубокая чистка промежуточных шагов сборки. Обязателен CI (можно скопировать скрипт из allyourcodebase/AFLplusplus), а также готовность изредка обновлять build.zig под свежий релиз апстрима. Готовому репо ставьте теги zig и zig-package.