Проблема номер один
И вот, в результате возникла такая идея – а что если сделать сервис, которому даешь URL, а он сам находит и показывает ChangeLog проекта? Ведь какая проблема с большинством, да что там с большинством – со всеми софтверными проектами – сложно найти, что у них изменилось от версии к версии. А в release notes, порой, можно найти интересные и полезные вещи. Разработчики Django, к примеру, пишут не только от том что изменилось, но и про всякие деприкешены и про то, как мигрировать с одной мажорной версии на другую.В общем, невероятно ценно иметь такое место, куда можно посмотреть и оценить возможный масштаб бедствия после апгрейда всех зависимостей. Когда такого места нет, послеобновления часто случается такое:
Однако даже для проекта, мейнтейнеры которого заботливо ведут ChangeLog, найти его бывает проблематично. Почему? Да потому что фреймворки и библиотеки пишут люди, а люди все разные. Кто то записывает release notes в файлике NEWS
, кто то в ChangeLog
, a некоторые разбрасывают их по отдельным файликам типа docs/src/releases/1.7.rst
. Хуже всех те, кто то вообще не ведет человеческих релиз ноутов и заставляет вас ползать по гит-логу и собирать крупицы знаний по коммит-мессаджам.
Проблема номер два
Вторая проблема, которая логично проистекает из первой – невозможность регулярно получать обновления каждого из проектов, который тебе интересен. Ну нельзя подписаться на изменения одного файликаCHANGES
лежащего на гитхабе! Некоторые мэйнтейнеры библиотек решают эту проблему, начиная писать о релизах в блог или, что лучше, используя GitHub Releases, но и в этом случае у вас появляются разные места и способы подписки на обновления. Это всё равно, что выстраивать пирамидки из камней – рано или поздно где-то что-то развалится:
Как бы то ни было, но в рамках Django Dash 2013 мы не стали браться за решение всех перечисленых проблем, и задались целью сделать минимальный MVP, способный показывать release notes любого проекта на гитхабе. И на это у нас было 48 часов. У нас, это у меня и двух моих коллег: Гены Чибисова и Гены Кандаурова.
Первая версия AllMyChanges.com была одностраничным приложением на angular.js и бэкенда на Django. Фронтенд рисовал всё красиво (ведь именно этим фронтенды обычно и занимаются), а бэкенд выполнял всю сложную работу – клонировал репозиторий, искал там changelog, используя сложные эвристики, а если не находил, то группировал коммит-мессаджи так, чтобы сформировать release notes из них, экономя тем самым силы и время пользователей.
И всё это работало. Работало отлично.
Жаль только, что единственный судья Django Dash наш сервис не оценил. Быть может, он его даже и не попробовал. Но плох тот основатель стартапа который остановится после средненькой оценки на хакатоне. Короче, я решил сервис развивать, и наверное, сейчас это единственный из проектов, сделанных на Django Dash 2013, который до сих пор жив.
Быстро сказка сказывается да не быстро стартап делается
Особенно, когда делается он ради удовольствия и в свободное от работы время.Примерно через 9 месяцев появилась новая версия AllMyChanges, которая решала вторую проблему и давала возможность подписаться на любые release notes и получать уведомления о выходе новых релизов.
В отличие от сервисов, которые просто отслеживать выход новых версий (VersionEye, Gemnasium, Libraries.io и т.д.), Allmychanges не только присылает нотифайку, эй, друг, смотри ангулар версии 1.2.3 вышел. В дополнение к этому мы присылаем полное описание того, что изменилось в версии 1.2.3, отсобенным образом выделяя места в тексте, которые относятся к исправлению ошибок, уязвимостей или ведут к обратной несовместимости.
Так же отличается и принцип работы с библиотеками. Почти все сервисы которые отслеживают выход новых версий, завязаны на конкретный язык или несколько языков, а данные берут с репозиториев типа PyPi или Ruby Gems. При этом они, как правило, работают с понятием "проект" и там нет возможности подписаться на отдельный фреймворк или библиотеку.
AllMyChanges в этом плане более гибок. Он не только доставляет вам полные release notes, но и позволяет подписываться абсолютно на всё, для чего возможно извлечь номера версий и текстовое описание. К примеру, вы можете начать вести changelog правил дорожного движения прямо на github в обычном текстовом файлике.Затем кинуть ссылку на файлик в AllMyChanges и всё – кто угодно сможет подписаться на публикацию новых изменений ПДД! И не забудьте про семантическое версионирование.
Вы нужны нам. Да, ты, ты и ты
Этому проекту есть куда развиваться и несомненно он будет улучшаться гораздо быстрее если вы все, вот прямо сейчас, отложите чтение хабра и начнете усиленно им пользоваться. Нам нужны ваши идеи и советы для того, чтобы двигаться в правильном направлении, так что, обязательно пишите на support@allmychanges.com или в Gitter чатик.This entry passed through the Full-Text RSS service - if this is your content and you're reading it on someone else's site, please read the FAQ at http://ift.tt/jcXqJW.
Комментариев нет:
Отправить комментарий