GitHub внедрил новую систему уведомлений, которая лучше предыдущей, но внедрил он её нехорошо

в 8:42, , рубрики: Git, github, разработка, метки:

6 августа 2012 года во блоге Гитхаба появилась новость, посвящённая внедрению новой системы уведомлений и звёзд. Я намерен сперва подробно пересказать новость, а затем вкратце упомянуть о том, что мне не нравится в этой новости.

Интерфейс уведомлений

Первая и наиболее заметная новинка заключается в изменении интерфейса уведомлений:

[интерфейс уведомлений]

Во-первых, косметическому изменению подвергся индикатор новых уведомлений. Раньше он располагался справа от имени пользователя, был подобием радиомачты и содержал ярко-оранжевый прямоугольник с числом новых уведомлений. Теперь он располагается непосредственно справа от логотипа Гитхаба и имеет вид кнопки с кружком-индикатором в центре, обычно серым, но обретающим голубовато-синий цвет при наличии новых уведомлений. Изменение косметическое, но двоичный индикатор («есть или нет») стал менее информативным, чем индикатор с числом уведомлений.

Во-вторых, список уведомлений разбит на группы по репозиториям. Раньше уведомления располагались просто в обратном хронологическом порядке по мере их поступления, то есть сплошной кучею. Нынешний порядок более логичен: он позволяет читателю не переключать своё внимание от репозитория к репозиторию.

Звёзды

Другая новинка заключается в появлении системы звёзд. Чтобы выразить свой интерес к репозиторию, ранее его было принято добавлять в наблюдаемые (watched), а теперь все репозитории, ранее вами так помеченные, попадают на страницу звёзд (stars):

[страница звёзд]

Пометить звездою репозиторий (или снять с него ранее поставленную звезду) можно при помощи кнопки «Star», которая в панели инструментов на странице репозитория находится на том месте, которое прежде занимала кнопка «Watch»; новая кнопка «Watch», управляющая поведением новой системы уведомлений, располагается чуть левее:

[панель кнопок]

Ранее все новости (проблемы, форки, запросы на слияние, правки в вики, коммиты, реплики в обсуждениях) ото всех наблюдаемых репозиториев поступали в область, называемую dashboard feed (как я понял, это основная часть заглавной страницы GitHub.com, показываемой залогиненному пользователю). Эти наблюдаемые репозитории превратились в помеченные звёздами, но пометка звездою теперь не приводит к поступлению новостей в dashboard feed.

Уведомления и наблюдение

Уведомления теперь поступают от репозиториев, находящихся в вашем списке наблюдаемых репозиториев, который пополняется вышеупомянутою новою кнопкою «Watch».

Если вы наблюдаете за некоторым репозиторием, то станете получать уведомления обо всех репликах в его обсуждениях:

  • Проблемы (issues) и комментарии к ним.
     
  • Запросы на слияние (pull requests) и комментарии к ним.
     
  • Комментарии к коммитам.

Сведения о деятельности в наблюдаемых репозиториях также поступают в dashboard feed.

Если же не наблюдаете, то станете получать уведомления только о тех обсуждениях, в которых участвуете:

  • Упоминания вашего логина (в виде «@логин»).
     
  • Назначения (assignments).
     
  • Реплики в тех коммитах, которые вами написаны или приняты.
     
  • Реплики в обсуждениях, в которых вы принимали участие.

Автоматическое наблюдение

Список наблюдаемых репозиториев был автоматически создан и наполнен теми репозиториями, к которым у вас имелся непосредственный доступ (push access). Вы можете пройтись по списку и нажать «Unwatch» напротив тех репозиториев, которые наблюдать не интересно. Также в нём справа имеется галочка (по умолчанию поставленная); до тех пор, пока она не снята, каждое присвоение вам прав непосредственного доступа (push access) к некоторому репозиторию повлечёт за собою автоматическое добавление этого же репозитория в ваш список наблюдения:

[список наблюдаемых репозиториев]

При каждом таком автоматическом добавлении к вам на e-mail будет приходить соответствующее письмо:

[письмо об автодобавлении наблюдаемого репозитория]

Распределение уведомлений по темам

Реплики на одну и ту же тему (например, комментарии по одной и той же проблеме или к одному и тому же коммиту) станут группироваться в одну строку, а не плодиться:

[группировка уведомлений]

Обещано примерно такое же поведение соответствующих им писем с уведомлениями, поступающих в GMail или в современные почтовые программы.

Упрощение настроек

Настройки поступления уведомлений упрощены до предела возможного. Теперь там только четыре галочки:

[настройка поступления уведомлений]

Маршрутизация почты с уведомлениями

Случается так, что один проект делают для души, а другой — на зарплате. Теперь можно настраивать тот адрес, на который придёт уведомление из репозитория, в зависимости от той организации, которой принадлежит репозиторий:

[настройка маршрутизации уведомлений]

Вид поступающих по почте уведомлений также подвергся существенному улучшению.

Что мне не понравилось

Я пересказал новость, а теперь, как и обещал, расскажу о том, что мне не понравилось.

Во-первых и в-главных, систему внедрили извращённым способом, нарушив ранее настроенное у пользователей поведение Гитхаба.

Как было раньше? Уведомления о деятельности в наблюдаемых репозиториях приходили в dashboard feed, а уведомления о тех обсуждениях, в которых участвуете, приходили на страницу уведомлений. (Может быть, и не только о них — зависело от настроек уведомлений, конечно).

Как стало теперь? Уведомления о деятельности в наблюдаемых репозиториях приходят в dashboard feed, а уведомления о тех обсуждениях, в которых участвуете, приходят в раздел «Participating» на странице уведомлений.

Стало быть, теперь всё почти как раньше? Нет, потому что список наблюдаемых репозиториев принудительно очистили, убрав его содержимое в список звёзд! И до тех пор, пока список наблюдений вручную не пополнишь до прежнего состояния (по одному заходя в репозитории из списка звёзд и нажимая на их страницах кнопку «Watch») — до тех пор не видать тебе о них ни одного уведомления, если только не было ещё и прав push access. Соответственно, и dashboard feed будет как зависший до тех пор.

Во-вторых, подсчёт звёзд — это ведь гораздо хуже подсчёта наблюдателей. Сами понимаете, надеюсь, что раньше количество форков у проекта означало количество тех людей, которым не лень попробовать повозёхаться с его кодом, а количество наблюдателей означало количество тех людей, которым не лень день за днём читать новости о его развитии (в почте или хотя бы в dashboard feed, если уведомления не настроены). Оба эти числá на счётчиках были весьма информативными. Но теперь прекрасный прежний счётчик наблюдателей убрали, а вместо него рядом с числом форков поставили число звёзд — да ведь это просто число людей, которым не лень один раз жмякнуть мышóю по кнопке «Star», которая всего лишь добавляет репозиторий в некоторый список «интересных» и больше ни на что не влияет. Как гугловская «+1», да только ещё легковеснее.

В-третьих, настройки уведомлений упростили не просто до такой степени, что пользоваться ими может любой дурак, но даже и до такой степени, что при их использовании чувствуешь себя одураченным. Раньше я мог отключить отсылку мне сообщений изо всех тех мест, где оставлял реплики (в конце концов, ну мало ли где я оставлял их?… я и вон тот коммит, преисполненный мрачного юмора, прокомментировал однажды), но отключить отдельно: оставить уведомления об «@упоминаниях», назначениях и прочее. Теперь это позади, так что ли?

Позавчера на Хабрахабре я расхваливал GitHub и сказал, в частности, что про GitHub мне сложно сказать что-то плохое (да и от других я про GitHub ничего худого покамест не слыхал). Однако, как оказалось, ужé позавчера мне следовало бы воздержаться от таких речей. Новое изменение системы уведомлений, к тому времени состоявшееся, при всех своих очевидных и радостных достоинствах ужé содержало целых три малозаметных и скверных недостатка. GitHub подложил мне, как говорится, свинью.

Досадно, господа, ещё как досадно! Не позабудьте и вы проверить теперь, каковы окажутся у Вас списки уведомлений, не надо ли их пополнить со страницы звёзд.

Автор: Mithgol

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js