Когда я начинал делать собственные продукты, мне казалось, что самые трудные части — продажи, платежи и юридические требования. Всё это действительно сложно. Но у самостоятельного программного продукта есть ещё одна большая и довольно незаметная снаружи задача: доставить его пользователю так, чтобы он мог скачать, установить и запустить программу без приключений.
С SaaS проще хотя бы в одном отношении: обновление происходит на сервере, а пользователь открывает уже новую версию. С настольным приложением нужно подготовить подходящий пакет для каждой поддерживаемой операционной системы и архитектуры. Для Cubrim это сейчас отдельные сборки для Linux x86_64 и ARM64, Windows x86_64, macOS на Intel и Apple Silicon, а также universal-архив для macOS.
Но собрать бинарный файл — только начало.
У каждой площадки свой вход
На одной платформе пользователю достаточно portable-архива. На другой нужен установочный пакет. Для распространения через магазин появляются требования к аккаунту разработчика, метаданным, подписи, проверке и формату загрузки. Apple, Google и Microsoft описывают разные процедуры, а конкретный набор сертификатов, ключей или токенов зависит от выбранного канала.
Это нельзя однажды настроить и забыть. Каждый новый релиз проходит один и тот же контур:
- собрать совместимые пакеты;
- подписать их там, где это требуется;
- протестировать установку и запуск в целевой среде;
- опубликовать файлы и контрольные суммы;
- проверить, что пользователь действительно может пройти весь путь;
- при ошибке — исправить её и повторить цикл.
Агенты могут автоматизировать значительную часть этой работы, но не отменяют проверку в среде пользователя. Если пакет предназначен для Windows, финальный тест нужен на Windows. Если заявлена поддержка Intel Mac и Apple Silicon, обе архитектуры должны быть частью проверяемого релизного контура.
Cubrim заставил пройти этот путь на практике
10 июля 2026 года я выпустил первую публичную версию Cubrim. На странице релиза доступны архивы для Linux, Windows и macOS, отдельные macOS-пакеты для Intel и Apple Silicon, universal-архив и файл с контрольными суммами. Размеры пакетов — примерно от 1,7 до 3,6 MiB: маленькая программа, но у её дистрибуции уже вполне взрослый список задач.
У Cubrim уже есть результаты, ради которых хочется сделать продукт доступным людям. В обновлённом world benchmark он занял первое место на файле x-ray с коэффициентом 0,445067 против 0,454471 у PPMd и выиграл несколько специализированных сравнений. При этом общий опубликованный результат скромнее и честнее: пятое место из восьми, коэффициент 0,2524 и победа над gzip на 19 из 24 файлов. Это не «лучший архиватор для всего», а рабочая исследовательская система с сильными результатами на отдельных типах данных и понятной картой того, что ещё нужно улучшать.
Из ручной рутины — в повторяемый процесс
Сейчас моя ближайшая задача — довести дистрибуцию Cubrim до состояния, в котором человеку не нужно понимать устройство релизного процесса. Он выбирает свою платформу, получает подходящий пакет и видит понятную инструкцию. Подпись, проверки, публикация и контрольные суммы должны оставаться за кадром.
Параллельно я хочу превратить этот опыт в повторяемый фреймворк. Не очередной скрипт, который работает только в одном репозитории, а процесс, где для каждого канала явно описаны входные данные, проверки, публикация и подтверждение результата. Если агенты участвуют в выпуске, они должны не просто загрузить файл, а доказать, что опубликован именно нужный пакет и что ссылка работает.
У маленького архиватора оказалась большая дистрибуционная задача. Именно поэтому она интересна: если выстроить надёжный путь для Cubrim, его можно будет использовать и для других самостоятельных программ.
Первая публичная версия Cubrim уже доступна на GitHub. Если вы выпускаете desktop-приложения и сталкивались с подписью, установщиками или несколькими магазинами, расскажите в обсуждении Arcanada в Telegram, какая часть релизного пути отнимает у вас больше всего времени.