React: Модернизация процесса выпуска

Созданный на 29 апр. 2016  ·  3Комментарии  ·  Источник: facebook/react

Слишком много работы, чтобы сделать релиз React прямо сейчас. На данный момент для меня это в основном мышечная память, но это должно быть легко сделать любому. Исторически сложилось так, что я выполнял определенные шаги вручную, потому что я облажался и хотел иметь возможность сделать паузу и перепроверить.

Есть несколько вещей, которые усугубляют сложность:

  • использование репозитория react-bower в качестве первой цели push

    • что является результатом создания ссылок fb.me / CDN, которые должны происходить во внутренней инфраструктуре FB.

  • ручные шаги в нескольких репозиториях
  • ручная модификация версии
  • активы должны быть в нескольких местах, скопированы между филиалами

Несколько идей:

  • мы должны иметь возможность различать предварительные и финальные версии. Это должна быть одна команда для отправки новой альфы в любой момент, и они должны быть легкими.
  • окончательным выпускам нужно немного больше, так как они будут устанавливаться людьми по умолчанию и иметь дополнительные требования (например, журналы изменений, активы в нескольких местах)
  • npm run release , который затем делает все. Это может быть интерактивный процесс
  • начать использовать API выпусков GitHub для хранения ресурсов сборки, сокращая шаги
  • настроить cdn.reactjs.org и просто разместить там наши сборки, полностью отказавшись от fb.me (риск, нам придется запускать это вечно…)

    • альтернативы: работайте с существующими CDN и убедитесь, что у нас есть версии, развернутые по команде (автообновление на основе запроса может привести к задержкам, такие вещи, как jsfiddle, нашему руководству нужны активы, доступные немедленно)

  • исследуйте lerna, может быть полезно с несколькими имеющимися у нас пакетами, хотя в идеале мы хотим распутать релизы
Build Infrastructure

Самый полезный комментарий

Кажется, сейчас мы действительно в хорошем месте.
(Спасибо @bvaughn)

Все 3 Комментарий

альтернативы: работайте с существующими CDN и убедитесь, что у нас есть версии, развернутые по команде (автообновление на основе запроса может привести к задержкам, такие вещи, как jsfiddle, нашему руководству нужны активы, доступные немедленно)

С помощью Redux мы направляем людей на http://npmcdn.com @mjackson.

Спасибо за упоминание, @gaearon. Я уже некоторое время намекал @zpao , что хотел бы, чтобы он дал шанс npmcdn . ;)

В прошлом месяце мы обслужили более 100 миллионов запросов от более чем 16 миллионов уникальных посетителей, поэтому, возможно, мы готовы справиться с тем трафиком, который React нам предоставит. В настоящее время я работаю над поиском спонсоров и условий обслуживания, чтобы люди могли знать, чего они могут от этого ожидать.

Что касается задержек, в настоящее время мы указываем нашей CDN (CloudFlare) кэшировать перенаправления на 5 минут. Так, например, запрос на https://npmcdn.com/react@15/dist/react.min.js будет перенаправлен на последний выпуск не более чем через 5 минут после того, как он будет отправлен в npm.

Кажется, сейчас мы действительно в хорошем месте.
(Спасибо @bvaughn)

Была ли эта страница полезной?
0 / 5 - 0 рейтинги