Skip to content

Added FlutterFlow Version Management #245

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 19 commits into from
Feb 14, 2025
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file not shown.
97 changes: 97 additions & 0 deletions docs/resources/projects/version-management.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
---
slug: flutterflow-version-management
title: FlutterFlow Version Management
tags: [Versioning]
keywords: [Versioning, FlutterFlow Version Management, Pin project FlutterFlow, Downgrade FlutterFlow version, Upgrade FlutterFlow version, FlutterFlow stable releases]
description: Learn how to manage FlutterFlow version for your project.
sidebar_position: 7
---

# FlutterFlow Version Management

FlutterFlow is constantly evolving to provide new features, address bugs, and keep up-to-date with Flutter and third-party packages. However, frequent updates can sometimes introduce unwanted changes or conflicts that break existing projects—especially those that rely on custom code or specific Flutter/package versions.

To mitigate these issues, FlutterFlow offers you a **Version Management** system that allows you to pin your project to a particular stable release of FlutterFlow. Projects pinned to a stable release will **not** automatically receive the latest FlutterFlow updates, giving you more control and stability over your development environment.

:::info

The FlutterFlow Version Management feature is available only on [**paid plans**](https://www.flutterflow.io/pricing).

:::

## Why Version Management Matters

- **Prevents Unexpected Breakage:** Frequent updates to FlutterFlow can break your project—particularly custom code—if underlying Flutter or package versions change. Pinning to a stable release ensures that your project’s code will not be affected by unexpected FlutterFlow updates.
- **Offers Control Over Update Timing:** FlutterFlow updates might occur at inopportune times (e.g., right before you plan to deploy). Version Management allows you to choose **if and when** to move your project to a newer release.
- **Enhances Reliability:** By using the pinned version, you can be confident that the same version of FlutterFlow, Flutter, and packages that you’ve tested will remain consistent, preventing surprises during critical development or deployment stages.

## Key Concepts

Below are the foundational ideas behind FlutterFlow’s Version Management system. Understanding these concepts will help you maintain project stability and control when upgrading.

### Stable Release

A **stable release** of FlutterFlow is a version that has passed rigorous testing and is frozen to specific:

- Flutter version
- Pubspec dependencies
- FlutterFlow frontend
- Project code generation

Stable releases are chosen on a regular cadence (e.g., quarterly or monthly). **Note** that each stable release will be supported for a set duration (6 months by default).

### Pinning Your Project

When you “pin” your project to a stable release, no updates from FlutterFlow will apply to your project during the pinned period. Each stable release will have associated web and desktop frontends, allowing you to continue working on your project without interruptions.

:::info
- **For Desktop**: You will download and install the dedicated binary for the pinned stable release. This binary won’t auto-update to give you a consistent development environment.
- **For Web**: You will access a unique URL to open the FlutterFlow pinned to that specific release.
- **No forced upgrades**: You won’t be prompted to switch to the latest FlutterFlow release until your pinned version’s support window (e.g., 6 months) has ended.
:::

To pin a project, navigate to **Settings and Integrations > Project Setup > Pin Version** and select the stable release you want to lock into.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is no longer correct, it's in the app details section

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thanks for letting me know! updated.


### Project Upgrades

When your project is pinned, you can only upgrade to a later stable release (downgrading to a previous stable release is not allowed) once you decide to move on from the current pinned version. You can unpin your project at any time, which will automatically update it to the latest available FlutterFlow release.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is not correct.

First off, lets call this section "Viewing and Modifying Pinned Versions"

  • Make it clear that you can see the version of FlutterFlow that the project is pinned to from the dashboard, and when you open up the project in web you will be redirected to use that version of Flutter by navigating to a different URL (still working on details for desktop, let me get back to you on that one)

-You can change the version the project is pinned to by going to the app details, make it clear how users can do this (i.e. change the version in the dropdown). When the pinned version has been changed, users can only edit the project using that version of FlutterFlow.

  • Also make it clear that only owners can do this.

  • You can upgrade to a later or an earlier release, however if you downgrade the release version, any changes you have made to that project since you moved above that release will be lost. --> you have this correct in FAQs but it says something different here

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done!


## FlutterFlow Version Workflow
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Lets say "Recommended FlutterFlow Version Workflow"

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done


Let’s understand the versioning workflow of setting up and managing a pinned project with an example. Understanding each phase ensures you can confidently control your project’s FlutterFlow version.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I dont think this paragraph is necessary - lets remove it

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Removed!


![versioning-workflow.avif](imgs/versioning-workflow.avif)

1. **Encounter a Breaking Change**: Suppose you upgrade from **FlutterFlow version 4.2** to **4.3**, and notice breaking changes in your custom code. Rather than scrambling to fix these errors or getting stuck in version 4.3, you can opt to **pin your project to version 4**, a reliable stable release.
2. **Pin a Project**: By pinning your project to version 4, you effectively freeze the Flutter version, pubspec dependencies, and code generation at that stable point. This prevents all new updates from affecting your project or introducing further breakage.
3. **Skip Intermediate Versions**: While FlutterFlow continues to release newer versions (4.3, 4.4, 4.5), you remain on 4 until you decide it’s time to upgrade. This approach lets you safely build and publish your app without worrying about incremental breaking changes.
4. **Upgrade Directly to the Next Stable Release**: When FlutterFlow designates a future stable release, you can jump straight from 4 to 4.5 or 5, bypassing any issues in the in-between versions. This way, you only upgrade once, reducing the risk of multiple compatibility checks along the way.
5. **Stay in Control**: While pinned to a stable release, FlutterFlow will **not** automatically update your project. You alone decide when (and if) to move to a later stable release or whatever latest version by unpinning the project.

## FAQs

<details>
<summary>
What happens if I downgrade to a lower version of FlutterFlow after making changes in a higher version?
</summary>
<p>
Any changes made in a higher version will be lost when you revert to a lower version (e.g., by pinning to the last stable release).
**To avoid data loss, thoroughly test your app after upgrading to ensure you want to continue with the updated version before downgrading.**
</p>
</details>

<details>
<summary>Can I downgrade my project after upgrading to a new stable release?</summary>
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This question directly conflicts with the one above it - so I am really not sure what you mean here.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I recall seeing something like this in the docs (you shared with me). However, since you’ve clarified that users can freely upgrade or downgrade between stable releases while pinned, I’m removing this question now.

<p>
You will not be able to downgrade a project to a prior stable release. You can only choose to ‘pin’ your project to the next stable release that occurs (or has occurred) after your project change.
</p>
</details>

<details>
<summary>
Can I open the same project in multiple versions of FlutterFlow simultaneously?
</summary>
<p>
No, you cannot open the same project in two different versions of FlutterFlow at the same time.
</p>
</details>
Loading