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

Рекомендации по workflow для Lingo.dev CI/CD

Введение

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

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

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

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

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

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

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

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

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

Компромиссы

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

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

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

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

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

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

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

Компромиссы

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

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

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

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

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

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

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

Компромиссы

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

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

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

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

Команд, которым нужен максимальный контроль и видимость переводов при сохранении работы с feature-ветками.

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

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

Компромиссы

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