Выбор рабочего процесса

Рекомендации по рабочим процессам для Lingo.dev CI/CD

Введение

Lingo.dev CI/CD разработан с учетом гибкости и может интегрироваться с любыми существующими рабочими процессами. Однако, в качестве отправной точки, на этой странице представлены рекомендуемые рабочие процессы, которые стоит рассмотреть.

Примечание: Не существует "лучшего" рабочего процесса. Каждый из них имеет свои компромиссы и будет привлекателен для разных пользователей в зависимости от их предпочтений, размера команды и устоявшихся методов работы.

Рекомендуемые рабочие процессы

Вариант 1: Коммит в основную ветку

Когда изменения контента сливаются в вашу основную ветку, переводы автоматически генерируются и коммитятся обратно в основную ветку.

Лучше всего подходит для

Команд, которые хотят получать невидимые, бесшовные обновления переводов с минимальным участием разработчиков.

Преимущества

  • Полностью автоматизировано — не требуется вмешательство человека
  • Переводы сразу доступны в основной ветке
  • Самая простая настройка и обслуживание
  • Нет необходимости управлять дополнительными ветками или pull request'ами

Компромиссы

  • Отсутствие процесса проверки переводов
  • Возможность того, что коммиты с переводами вызовут дополнительные запуски CI
  • Изменения появляются напрямую в основной ветке без видимости того, что было переведено
  • Меньше контроля над тем, когда переводы будут развернуты

Вариант 2: Pull request из основной ветки

После того как контент сливается в основную ветку, переводы генерируются и отправляются как новый pull request из основной ветки.

Лучше всего подходит для

Команд, которые хотят видеть переводы и иметь возможность их проверять, сохраняя процесс централизованным в основной ветке.

Преимущества

  • Изменения переводов видны и могут быть проверены перед слиянием
  • Четкий журнал аудита того, какой контент был переведен
  • Возможность вносить ручные корректировки перед принятием переводов
  • Поддерживает чистую историю основной ветки с явными коммитами переводов

Компромиссы

  • Требуется ручное одобрение pull request (если не настроено автоматическое слияние)
  • Небольшая задержка между изменениями контента и доступностью перевода
  • Дополнительные pull request для управления в вашем рабочем процессе

Вариант 3: Коммит в feature-ветку

Когда изменения контента вносятся в feature-ветки, переводы автоматически генерируются и коммитятся непосредственно в эти же ветки.

Лучше всего подходит для

Команд, работающих с долгоживущими feature-ветками, которые хотят, чтобы переводы были частью процесса разработки функций.

Преимущества

  • Переводы готовы, когда готова функция
  • Нет необходимости в отдельной работе с переводами во время проверки функции
  • Завершенные функции включают как контент, так и переводы
  • Хорошо работает с развертыванием через feature-флаги

Компромиссы

  • Коммиты переводов появляются в истории feature-ветки
  • Возможны конфликты слияния, если несколько разработчиков работают над одной веткой
  • Переводы привязаны к завершению функции, а не к готовности контента
  • Могут генерироваться переводы для экспериментальных функций, которые никогда не будут выпущены

Вариант 4: Pull request из feature-ветки

Когда изменения контента происходят в feature-ветках, переводы генерируются и отправляются как отдельные pull request из этих веток.

Лучше всего подходит для

Команд, которые хотят максимального контроля и прозрачности над переводами, сохраняя при этом рабочие процессы feature-веток.

Преимущества

  • Полная прозрачность изменений переводов на уровне функций
  • Возможность просматривать и корректировать переводы до завершения функции
  • Четкое разделение между разработкой функций и интеграцией переводов
  • Гибкость в выборе времени для принятия обновлений переводов

Компромиссы

  • Самый сложный рабочий процесс для управления
  • Несколько pull request на одну функцию (функция + переводы)
  • Возможность устаревания pull request переводов, если функции изменяются
  • Требуется координация между pull request функции и перевода