OpenYellow - логическое продолжение идеи, активно обсуждаемой в контексте статьи "Насколько глубок 1С-ный GitHub?". Помимо полемики по теме открытого исходного кода в целом, большое внимание (с множеством пожеланий и предложений) было приковано к таблице, в которой был отобран Топ-200 GitHub репозиториев по числу звезд для языка 1С.
В частности, поднимались такие вопросы как:
- Почему мой проект [ИмяРепозитория] не попал в топ?
- Нужны репозитории, созданные для 1С, но на других языках
- Необходимо указание даты последнего обновления для определения заброшенных репозиториев
Конечно, обрадованный заинтересованностью сообщества в такой не совсем свойственной нашей области теме, я не мог оставить их без внимания. Поэтому, сегодня я хочу показать вам обновленный вариант рейтинга лучших репозиториев с учетом всех замечаний и пожеланий - OpenYellow. Сейчас вкратце опишу, что же у меня получилось
OpenYellow - агрегатор open-source проектов
Таблица разрослась до агрегатора. Агрегатора с несколькими таблицами:
При переходе по ссылке вы попадете на главную страницу. Там можно найти разнообразную информацию, краткие сводки и, разумеется, ссылки на таблицы рейтинга. Их теперь 3:
- Топ-500
- Последние созданные репозитории
- Последние обновленные репозитории
Отбор стал куда более мягким - теперь проекту достаточно иметь 1 звезду на GitHub для попадания в списки. В частности в список последних созданных репозиториев, чтобы о нем кто-нибудь узнал.
Но таблицы последних созданных и последних обновленных не столь интересны. Лучше поговорим об основной таблице - Топ 500 лучших репозиториев. Тем более, что она была создана первой - большинство обновок перекочевали и в остальные таблицы тоже
Топ-200 превратился в Топ-500
Самое простое нововведение - репозиториев в списке стало гораздо больше. Сделано это было в связи с сильно увеличившейся выборкой проектов: помимо оставшегося с прошлого раза отбора по языку 1С, добавились такие отборы как:
- 1С ('С' кириллическая) в описании репозитория
- 1C ('С' латинская):Enterprise в описании
- 1C ('С' латинская):Предприятие в описании (да, да, есть и такие описания)
- 1c-enterprise в Topics
- 1c-edt в Topics
Запросы с этими отборами выполняются независимо, т.е. если ваш репозиторий подходит хотя бы по одному из перечисленных критериев, то он обязательно попадет в топ (касается и всех остальных таблиц). Если, конечно, выдержит суровую конкуренцию и влезет в пантеон 500 лучших >:)
Спойлер: нужно 11 звезд минимум
Что касается, напрашивающихся сюда, отборов по ключам bsl и 1C ('C' латинская), то они не были добавлены, так как затягивают слишком большую выборку лишних репозиториев не по теме, начиная со всяких 1Click и 1Ch, заканчивая миллионом вещей со словом bsl в описании.
Новые разрезы: язык, тэги, дата обновления и др.
Помимо количества строк, увеличилось и количество полей с информацией о репозитории. Вполне очевидно появилось поле язык, так как в топе есть теперь реализации с применением разных технологий, добавились тэги (они же Topics с Github), дата обновления, а также группа чисто рейтинговых полей: место, изменение и динамика, о которых я расскажу чуть позже. Главное, что необходимо отметить про поля с информацией: по ним всем можно отбираться + есть общий поиск по таблице (в правом верхнем углу). Найти репозитории только на интересующую вас тему теперь проще простого.
Соревновательный аспект
В отличии от базы репозиториев из прошлой статьи, данный топ - реально таблица лидеров. За это отвечают первые 3 колонки: место, изменение и динамика. С первым все понятно - как и раньше, позиция репозитория в топе определяется количеством звезд, а после звезд - форков. Дополнительные же два поля отвечают за отображение изменения позиции между обновлениями данных - показатель Изменение отвечает за показ числа мест, на которые сдвинулся репозиторий в ту или иную сторону с прошлого раза, а поле Динамика отображает стрелочку (направление) этого изменения, чтобы все выглядело красиво и наглядно
Все таблицы обновляется условно раз в день: каждые 15 минут выполняется один запрос из набора, по типу "1c-enterprise в тэгах, 16-25 звезд". Всего таких запросов 72, т.е. 72 * 15 / 60 = 18 часов. После того, как все запросы выполнены, запускается выгрузка в Notion. Она довольно долгая и не всегда срабатывает с первого раза (по непонятным причинам Notion иногда выкидывает ошибку 502) - еще примерно 30 минут - 1 час. Вот и выходит раз в день. Динамика же формируется сравнением прошлой выгрузки с текущей - изменение рейтинга на длинной дистанции я (во всяком случае, пока) не храню.
Прочие свистелки
Как вы могли заметить, данный рейтинг - уже не просто обезличенная сводка. Теперь у этой сводки есть имя, замечательное лого, отсылающее к стандартному желтому кружку 1С (спасибо Midjourney), а самое главное - человеческий URL - openyellow.notion.site. Все еще довольно длинный, но уже вполне приемлемый и удобоваримый. Брендинг это весело, короче. Но весело то мне, само собой. Моментом , способным заинтересовать уже непосредственно авторов проектов, находящихся в топе, стали значки (они же пины, shields, badges).
Если вы хотите поддержать проект и помочь остальным разработкам в топе стать более популярными, то в последней колонке позиции рейтинга есть markdown разметка персонального значка для вашего репозитория
Это svg на основе Shields.io, который отображает позицию выбранного проекта в рейтинге, а при нажатии на него - переходит на персональную страницу в топе OpenYellow
Вот так он выглядит:
И вот такую страницу открывает при нажатии:
Значки привязаны по ID к репозиториям и обновляются вместе с появлением обновлений в Notion. Добавить его в свой Readme можно просто вставив туда предложенный в колонке Значок текст
Выглядит вполне аутентично, на мой скромный взгляд.
Обратная связь
Если у вас есть вопросы или предложения, то обязательно напишите в комментариях. Я вполне мог не учесть какие-нибудь популярные ключевые слова, присущие 1С репозиториям, не добавить поля с удобной и полезной информацией - буду рад обратной связи. Найти эту статью, также, можно на главной странице OpenYellow
В заключение
В целом, выводы я уже сделал в первой статье про GitHub, могу лишь повторить и подбить идеи из дискуссии в комментариях к ней: как бы не было уютно и приятно выкладывать разработки на Инфостарт, вещать на заинтересованную аудиторию, получая за это вполне себе вознаграждение материальное, а не эфемерное - open-source (и GitHub как самая очевидная общеизвестная площадка для этого дела) крайне важен.
Общедоступный репозиторий - это не просто инструмент для публикации и распространения, но система, позволяющая объединять отдельных людей в команды, управлять версиями и релизами, прозрачно использовать чужие наработки в своих проектах и много чего еще. Не говоря уже про сам по себе Git, как систему контроля версий: возьму на себя смелость сказать, что многие, в той или иной мере, недовольны моральным устареванием инструментария платформы. Но многие ли используют все то новое, что нам доступно сейчас? Git, Jenkins, EDT? Кто-нибудь руководствуется TDD или пишет хотя бы простые тесты? Наверняка для многих станет новостью, что самым популярным vanessa репозиториям (которые про автоматизированное тестирование) уже по 7-8 лет в обед
xUnit вообще 11 (sic!)
Я веду к тому, что GitHub - как раз важная часть этакой струи мэйнстрима, с которой, по понятным причинам, так сложно бывает в консервативном мире 1С. Важная и как сама площадка, и как летопись развития интересных проектов - способных найти банально больше участников для дальнейшего развития, но о которых просто никто не знает.
Пробегитесь глазами по описаниям репозиториев - наверняка найдете что-нибудь интересное. И обязательно поддержите: поставьте звездочку, прочтите статью на Инфостарт, если она указана, помогите в разработке - это важно.
Поддержка равно мотивация, мотивация равно больше крутых проектов.
Спасибо за внимание!
Ссылка на OpenYellow: https://openyellow.notion.site
Другие статьи:
- Первая статья по теме: Насколько глубок 1С-ный GitHub?
- Данные, кстати, грузятся из 1С. Если вы тоже хотите свою таблицу в Notion на основе данных базы: Работа с Notion API | Обновление Открытого пакета интеграций
Мой GitHub: https://gitub.com/Bayselonarrend Лицензия MIT: https://mit-license.org