Изменение спецификации

GTFS – это открытая спецификация, которая может меняться со временем. Ее создает и развивает сообщество, то есть транспортные агентства, разработчики и всех остальные, кто заинтересован в ее использовании. Каждый из них может присылать свои идеи о том, как ее улучшить. Чтобы помочь вам в этом, мы разработали описанные ниже процедуры и рекомендации.

Процесс изменения спецификации

Официальные тексты спецификации, а также сопроводительной и справочной документации составлены на английском языке. Если перевод на другой язык отличается от английской версии, следует руководствоваться текстом оригинала. Вся коммуникация ведется на английском языке.

  1. Создайте ветвь на GitHub и добавьте в нее все обновления разделов определения протокола, а также файлы спецификации и документации. Не прилагайте переводы этих файлов на другие языки.

  2. Создайте pull-запрос на странице https://github.com/google/transit, добавив в него подробное описание патча. После этого автор запроса становится его защитником.

  3. Как только pull-запрос будет зарегистрирован, защитник должен анонсировать его в списке рассылки GTFS, включив в публикацию ссылку на запрос. После этого запрос будет считаться зарегистрированным в качестве предложения. Pull-запрос также должен содержать ссылку на объявление в Google Группах, чтобы пользователям было проще находить его.

  4. После регистрации предложения начинается его обсуждение. В качестве площадки для обсуждения можно использовать только комментарии к запросу.

    • Обсуждение длится столько, сколько защитник посчитает необходимым, но не менее 7 календарных дней.
    • Если с какими-то комментариями защитник согласен, он должен сам обновлять свое предложение (то есть запрос на включение) в соответствии с ними.
    • Защитник может в любой момент отказаться от дальнейшей работы с предложением.
  5. Защитник может вынести на голосование уточненную по результатам отзывов версию предложения по истечении первых 7 дней, отведенных на его обсуждение.

    • Предложение может быть вынесено на голосование только после того, как по крайней мере один поставщик и один потребитель данных GTFS реализуют предложенное изменение. Для этого поставщик данных GTFS должен включить изменение в публичный GTFS-фид и добавить ссылку на это обновление в комментариях к запросу, а потребитель – добавить туда же ссылку на приложение, в котором изменение было реализовано в нетривиальном порядке (с его помощью удалось улучшить существующую или запустить новую функцию).
  6. Минимальный период голосования составляет не менее 7 полных календарных и не менее 5 полных рабочих дней (по швейцарскому производственному календарю). Голосование заканчивается в 23:59:59 по всемирному координированному времени (UTC).

    • В начале голосования защитник должен объявить время его окончания.
    • Во время голосования в текст предложения можно вносить только редакторские изменения (исправлять опечатки и улучшать формулировки, не меняя их смысла).
    • Любой пользователь GitHub может проголосовать за или против предложения в форме комментария к запросу, а также изменить свое решение до окончания отведенного на голосование времени. Чтобы изменить решение, пользователь должен перечеркнуть первоначальный комментарий и оставить новый.
    • Голоса, поданные до начала голосования, при подсчете не учитываются.
  7. Предложение принимается, если не менее трех пользователей выражают свое единодушное согласие с ним.

    • Голос автора предложения при подсчете общей суммы голосов не учитывается. Например, если пользователь X создает запрос и голосует за него, а потом свои голоса отдают пользователи Y и Z, считается, что предложение набрало два голоса.
    • Голоса против должны подкрепляться мотивировкой и в идеале содержать советы, которые помогут защитнику устранить недостатки предложения.
    • Если голосование не приносит положительного результата, защитник может либо продолжить работу над предложением, либо закрыть его. О своем решении защитник должен объявить в списке рассылки.
    • Если защитник решит продолжить работу над предложением, он может назначить повторное голосование в любой момент, но не позднее чем через 30 календарных дней после окончания предыдущего раунда голосования.
    • Если новый раунд голосования не будет назначен в установленный срок, считается, что защитник отказался от дальнейшей работы с предложением.
  8. В случае отказа от предложения соответствующий pull-запрос закрывается.

  9. Если предложение будет одобрено:

    • Google сделает все возможное, чтобы в течение пяти рабочих дней включить в спецификацию указанные в запросе изменения (при условии, что его автор подписал Лицензионное соглашение для участников).
    • В оригинальном pull-запросе не должно быть переводов. Позже мы добавим перевод на поддерживаемые языки, однако мы принимаем pull-запросы с переводами от членов сообщества. Они будут рассмотрены после анализа всех замечаний редактора.
  10. Окончательный результат рассмотрения pull-запроса должен быть объявлен в Google Группах – в той же цепочке, где запрос был первоначально анонсирован.