Всем привет.
Для хранения исходников программ существует много систем контроля версий. Как известно, никто в здравом уме не хранит в репозитории файлы, получаемые в результате сборки.
Задался таким вопросом: существуют ли системы для хранения релизов, уже собранных и готовых к использованию программ? Например, пользователь через веб-интерфейс заходит в эту систему, выбирает нужный проект, выбирает версию релиза и может скачать собранную программу, почитать changelog, оставить комментарий и т.д.
В гугле не забанили, но ничего не нашлось. Вероятно, не угадываю с формулировкой запроса.
Как известно, никто в здравом уме не хранит в репозитории файлы, получаемые в результате сборки.
Почему не хранят? В чем проблема? Системы контроля версий умеют хранить бинарные файлы, к тому же всякие конфиг файлы, changelog будут также в этой системе, что должно быть очень удобно. Ну а как хранить релизы - зависит от выбранной системы.
Проблем несколько, вот только некоторые навскидку:
- зачем хранить ненужные тяжёлые файлы, которые можно собрать из исходников?
- каждый коммит будет засорённый diff из-за них.
- у Вас при каждом merge будут конфликты в этих файлах.
Виктор: для себя наверное лучше держать в CI. Например, мы используем Team City и там есть возможности для сборки и сохранения результатов сборки с кучей возможных настроек.
Системы контроля версий могут полностью сохранять проект. Но обычно сохраняются только исходники. Непонятно, что мешает вам откатиться до нужной версии и собрать релиз
Ничего не мешает, но вопрос-то не в этом.
Вопрос в том, чтобы пользователи всегда имели возможность скачать нужный релиз или Вы предлагаете по каждому запросу откатываться и для каждого собирать проект нужной версии?
Может я не совсем верно сформулировал вопрос. Тут главный упор на хранение и простой доступ к релизам для пользователя, а не на их бекапах, так как можно заново собрать из исходников, в случае чего.
mureevms: собственно, это и нужно. Только я предполагал, что есть готовые решения, заточенные под такую задачу (может быть какая-то CMS). Есть же трекеры задач, вики-сайты и т.д.
Виктор: Обычно релизы выкладывают на сайтах (типа вот версия программы x.x.x.x) или же выкладывают на FTP-сервер. Чем вас не устраивает такое решение? А систему контроля версий использовать только для разработчиков и людей, которые будут продвигать продукт
> Вопрос в том, чтобы пользователи всегда имели возможность скачать нужный релиз
Думаю это более важная проблема, чем проблема, обозначенная в основном вопросе.
Зачем пользователям старый релиз? Зачем был выпущен новый, если старый более востребован?
Часто вижу, что разные версии на сайте разделены поддоменами или подпапками. mysite/v1/file.msi, mysite/v2/file.msi.
Это если говорить о пользователях. А если говорить о разработчиках, то хранить бинарники нет смысла, их всегда можно пересобрать из исходников.
Разработчикам нет смысла хранить бинарники, согласен. А по поводу старых релизов не согласен - Вам никогда не нужно было скачать старый Скайп или Фотошоп (извиняюсь за сравнение с такими гигантами)? Новое не всегда лучше во всех аспектах. Кому-то может быть интересен старый релиз. Но даже если рассматривать только последний релиз, его тоже нужно где-то выложить и хотелось бы это делать без использования файлообменников и написания своего сайта. Думал, может есть общепризнанные практики и решения.
Виктор: Про Sourceforge уже написали, там и репозиторий поднять можно и сайтик с тикетами и ссылками на скачивание... И гитхаб, опять же. Но я не в курсе, какой объём диска предоставляется, могут быть проблемы с большими файлами.
Я сделал свой сайт, просто потому что захотелось сделать свой сайт. Ну и "для солидности".)
maagames.ru: Это всё публичные проекты, а ещё хотелось бы какого-то разделения доступа к проектам. Скажем так: корпоративный каталог бинарников только для сотрудников компании)