Перейти к основному содержимому

Закрепление проектов за стабильными версиями FlutterFlow

FlutterFlow постоянно развивается, чтобы предоставлять новые функции, устранять ошибки и оставаться в актуальном состоянии с Flutter и сторонними пакетами. Однако частые обновления могут вносить нежелательные изменения, которые ломают существующие проекты — особенно те, что зависят от пользовательского кода с внешними зависимостями.

Чтобы минимизировать эти проблемы, FlutterFlow предлагает систему управления версиями, которая позволяет закрепить проект за конкретным стабильным релизом FlutterFlow. Проекты, закрепленные за стабильным релизом, не будут автоматически получать последние обновления FlutterFlow, что дает вам больше контроля над процессом разработки.

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

к сведению

На данный момент возможность закрепления проекта FlutterFlow за стабильную версию доступна только пользователям с планом Enterprise.

Когда стоит закреплять проект за стабильной версией?

Закрепление проекта за стабильной версией FlutterFlow дает следующие преимущества:

  • Предотвращение неожиданных сбоев: Обновления FlutterFlow могут вносить ошибки в ваш проект — особенно если в нем есть пользовательский код. Закрепление за стабильным релизом снижает риск неожиданных изменений в проекте.
  • Контроль над временем обновлений: Обновления FlutterFlow могут происходить в неподходящий момент (например, прямо перед планируемым выпуском новой версии вашего приложения). Закрепление проекта за стабильной версией позволяет выбрать когда переходить на более новую версию.

Основные понятия

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

FlutterFlow выпускает новую версию продукта примерно раз в неделю. При выпуске новой версии общий номер версии увеличивается.

Номер версии состоит из трех частей:

  • Основная версия: Увеличивается при введении существенных изменений, которые значительно изменяют продукт.
  • Младшая версия: Увеличивается для изменений, которые заметно улучшают или модифицируют опыт разработки в FlutterFlow — например, при обновлении до новой версии Flutter, существенных изменениях в генерируемом коде или структуре проекта, либо введении крупных новых функций.
  • Исправляющая версия: Увеличивается в рамках рутинных релизов, включающих исправления ошибок и мелкие улучшения, обеспечивая стабильность без введения breaking-изменений в генерируемый код или структуру проекта.

semantic_versioning

Текущую версию FlutterFlow можно увидеть в левом верхнем углу конструктора.

version-in-builder

Стандартный релиз

Стандартный релиз FlutterFlow выпускается примерно раз в неделю. Однако это может измениться в зависимости от потребностей пользователей.

Если ваш проект не закреплен за стабильным релизом (поведение по умолчанию), вы будете автоматически использовать последний стандартный релиз.

Стабильный релиз

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

  • Внесены значительные изменения в генерацию кода проекта.
  • Обновлена базовая версия Flutter или зависимости Pubspec в генерируемых проектах.
  • Введены обновления, влияющие на структуру проекта (например, добавлен новый тип виджета).

Каждому стабильному релизу присваивается уникальный номер версии Основная.Младшая. Проекты, которые не редактировались в версии FlutterFlow с номером Основная.Младшая выше, чем у стабильного релиза, могут быть закреплены за этой стабильной версией.

примечание

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

Закрепление проекта

Чтобы закрепить проект, перейдите в раздел Settings and Integrations > General > App Details >Version Pinning и выберите стабильный релиз, за который хотите зафиксироваться.

pin-version

Изменение закрепленной версии

У вас есть несколько вариантов для изменения закрепленной версии проекта:

  • Обновление до более новой стабильной версии: Когда выходит новая стабильная версия, она появится в выпадающем списке, показанном выше. Вы можете обновить закрепленную версию до более новой стабильной версии в любое время, когда она станет доступной. Новые стабильные версии имеют более высокие номера (т.е. 5.1 новее, чем 5.0).
  • Установка Latest Version (снятие закрепления): Вы можете снять закрепление с проекта, установив Latest Version, что будет использовать последний стандартный релиз.
  • Включение Next Stable: Ваш проект может находиться на стандартной версии, для которой нет соответствующей стабильной версии (т.е. вы на 5.0.1, но стабильная 5.0 соответствует 5.0.4). В этом случае вы можете выбрать включение Next Stable Version. Если она уже доступна, проект будет сразу закреплен за этой версией.
Закрепление и снятие закрепления нельзя отменить

После снятия закрепления с проекта или закрепления за более позднюю версию это действие нельзя отменить. Если вы не уверены, совместима ли новая версия FlutterFlow с вашим проектом, мы рекомендуем создать новую ветку и обновить закрепленную версию в ней, чтобы предварительно просмотреть изменения перед применением к основному проекту.

Доступ к подходящей стабильной версии

Как упоминалось выше, после обновления проекта до стабильной версии редактировать его можно только с использованием этой версии FlutterFlow.

  • Для веб-версии: Вы будете автоматически перенаправлены на URL стабильной версии, за которую закреплен проект, при открытии проекта из панели FlutterFlow (т.е. при переходе на app.flutterflow.io или enterprise-[region].flutterflow.io).
  • Для десктопной версии: Вы установите специальное десктопное приложение для закрепленного стабильного релиза. Десктопное приложение для стабильных релизов не обновляется автоматически; вам потребуется установить новую версию при обновлении проекта до новой стабильной версии.

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

Если у вас сложное приложение с пользовательским кодом, зависящим от конкретных версий зависимостей пакетов, может быть полезно закрепить проект за конкретной версией. Это рекомендуемый нами рабочий процесс для управления версиями проектов.

  1. Если вы считаете, что проект стоит закрепить за стабильным релизом, выберите закрепление за доступной на данный момент стабильной версией (если такая есть).
  2. Когда выходит новая стабильная версия, вы можете выбрать время обновления в соответствии с вашим графиком релизов и процессом разработки. Например, вы можете подождать, пока не закончите активную разработку новой функции, или сначала ознакомиться с примечаниями к релизу, чтобы увидеть, есть ли обязательные функции, побуждающие обновиться раньше.
  3. Когда будете готовы к обновлению, закоммитьте все изменения в основной ветке, чтобы сохранить прогресс. Создайте новую ветку от основной, обновите закрепленную версию и протестируйте все функции на совместимость. Если потребуются модификации, внесите их в новой ветке.
  4. Запустите приложение на поддерживаемых платформах — с использованием симулятора, эмулятора или реального устройства, чтобы убедиться, что все работает как задумано. Подробности см. в документации по локальному запуску.
  5. Если все в порядке, вы можете слить новую ветку в основную. Однако для успешного слияния веток убедитесь, что основная ветка и новая ветка закреплены за одной и той же версией FlutterFlow! Если по какой-то причине приложение работает не так, как ожидалось, вы можете оставить или закрыть ветку, пока не будете готовы внести необходимые модификации для поддержки последней версии FlutterFlow (т.е. обновить зависимости/пользовательский код).
подсказка

Смотрите видео здесь для руководства по обновлению зависимостей.

Управление версиями с библиотеками

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

Чтобы обеспечить совместимость новых версий библиотек, используемых в закрепленном проекте, с самим проектом, мы рекомендуем закреплять все библиотеки, используемые в закрепленном проекте, за той же (или более ранней) версией FlutterFlow, что и сам проект.

Проекты библиотек также могут быть закреплены за конкретной версией, обеспечивая использование этой версии FlutterFlow для всех версий библиотек до изменения закрепленной версии.

к сведению
  • Закрепленные проекты не могут добавлять библиотеку с версией, установленной на 'current', или версию библиотеки, отредактированную в более позднем релизе FlutterFlow.

  • Проекты не могут быть закреплены, если они содержат библиотеку с версией, установленной на 'current', или версию библиотеки, отредактированную в более позднем релизе FlutterFlow.

подсказка

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

Часто задаваемые вопросы

Можно ли редактировать мой проект в нескольких версиях FlutterFlow?

Нет. Если проект не закреплен за конкретной версией, вы всегда будете использовать последний релиз FlutterFlow. Если проект закреплен за конкретной версией FlutterFlow, вы будете перенаправлены на редактирование в этой версии.

Как часто выпускаются новые стабильные версии?

Мы стремимся выпускать новые стабильные версии FlutterFlow примерно раз в месяц.

Как узнать, что включено в новую стабильную версию?

Мы сейчас работаем над отображением примечаний к релизу непосредственно в продукте, чтобы вы могли легко просмотреть, что добавлено или изменено в каждой новой стабильной версии.

Что делать, если в используемой версии FlutterFlow есть ошибки?

Если возникнут критические ошибки, мы можем предоставить hotfix или патчи для старых версий FlutterFlow. Однако некоторые исправления зависят от обновления базового фреймворка Flutter или связанных зависимостей, что не всегда возможно для старых версий. Это риск использования старой версии FlutterFlow вместо последней.

Можно ли устанавливать разные закрепленные версии для различных веток в проекте?

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

Однако для успешного слияния веток убедитесь, что основная ветка и новая ветка закреплены за одной и той же версией FlutterFlow.

Что делать, если нет доступной стабильной версии для закрепления проекта?

Если проект был создан и редактировался в стандартном релизе, который не соответствует стабильной версии, вы можете не увидеть доступной стабильной версии. Вместо этого вы можете выбрать включение в следующий стабильный релиз. Если установлен следующий стабильный релиз, проект будет сразу закреплен при открытии, когда новая стабильная версия станет доступной.

Какой рекомендуемый подход, если у меня несколько проектов и библиотек, над которыми я работаю?

Если вы решите закрепить проект за стабильной версией FlutterFlow, мы рекомендуем закреплять все ваши проекты и зависимости за одной и той же версией — и стараться обновлять все проекты до следующей версии примерно в одно время. Это упрощает обеспечение совместимости между проектами и библиотеками, которые зависят друг от друга. Кроме того, это позволяет иметь единую десктопную среду FlutterFlow для работы.