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

Added FlutterFlow Version Management #245

merged 19 commits into from
Feb 14, 2025

Conversation

pinkeshmars
Copy link
Collaborator

Description

Added FlutterFlow Version Management

Linear ticket and magic word Fixes DEVR-731

Type of change

  • Typo fix
  • New feature
  • Enhancement to current docs
  • Removed outdated references
  • Update assets

Copy link

Review PR in StackBlitz Codeflow Run & review this pull request in StackBlitz Codeflow.

@github-actions github-actions bot requested a review from PoojaB26 January 3, 2025 04:17
@leighajarett
Copy link
Collaborator

@pinkeshmars left a bunch of comments - I think we need to clarify a bunch of things here, some things I still need to figure out myself so will get back to you on those

@leighajarett leighajarett requested a review from codywhunt January 6, 2025 16:10
@leighajarett
Copy link
Collaborator

One other thing to include is that you cant change the version off of main

@leighajarett
Copy link
Collaborator

Actually we will only be launching this for enterprise this release, so will go out next week. Let's include a banner that says right now this is only available for enterprise users

@pinkeshmars
Copy link
Collaborator Author

One other thing to include is that you cant change the version off of main

Added.

@pinkeshmars
Copy link
Collaborator Author

Actually we will only be launching this for enterprise this release, so will go out next week. Let's include a banner that says right now this is only available for enterprise users

ok, for now, I have replaced it with the existing 'paid plan' banner.

@pinkeshmars
Copy link
Collaborator Author

Hi @leighajarett you can take a look again. Please note that, I could not include the visuals right now due to some issues. I'll post it in the eng ticket.

@leighajarett
Copy link
Collaborator

Thanks @pinkeshmars - I made several changes and I think it looks good from my perspective. Since this is pretty complex, I will ask @agreaves and @br0nk to take a look as well

@leighajarett leighajarett requested review from br0nk and removed request for PoojaB26 and codywhunt January 8, 2025 10:05
- **Upgrade to more recent Stable Version**: When a new stable version is released, you will see it as an option in the dropdown shown above. You can upgrade the pinned version to a more recent stable version whenever they become available. Newer stable versions will have higher numbers (i.e. 5.1 is newer than 5.0)
- **Downgrade to a previous Stable Version:** You can downgrade to a prior stable release (i.e. downgrade from 5.1 to 5.0), however **changes made since upgrading will be lost** (i.e. changes made after modifying pinned version from 5.0 to 5.1). Therefore, we recommend [commiting](https://docs.flutterflow.io/collaboration/branching/#create-commits) all changes on the main branch before upgrading - plus testing after upgrading so you can quickly downgrade if necessary.
- **Set to *Latest Version* (Unpinned):** You can unpin your project by setting it to the *Latest Version* which will use the latest [standard release](#standard-release-corresponds-to-patch-version).
- **Opt-in to the *Next Stable*:** Your project may be on a standard version that does not have a correspond stable version (i.e. you are on 5.0.1 but the 5.0 stable will correspond to 5.0.4). In that case, you can choose to opt-in to the *Next Stable Version*. This will pin your project to the next stable version once it becomes available.
Copy link
Contributor

Choose a reason for hiding this comment

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

Nit: "corresponding"

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Updated! thanks @michael-mcroskey

@@ -136,7 +136,7 @@ To import a library project into another FlutterFlow project, you must go to the
- By default, the latest published version of the library is imported, but you can choose to depend on an earlier version if needed.
- You can also import the `current` version of the library to use the latest state of the library on the main branch - however, this is not recommended.
- You must have a paid plan to import a library.

- When you import a library into a project or another library, the library’s version must be lower than the project or library it’s being imported into. Learn more about managing the library’s FlutterFlow version [**here**](../projects/settings/version-management.md) and [**here**](../projects/settings/version-management.md#version-management-with-libraries).
Copy link

Choose a reason for hiding this comment

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

lower than the project -> not set to 'current' and less than or equal to

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Updated!

The version number consists of three parts:

- **Major Version:** Incremented when introducing substantial changes that significantly alter the product.
- **Minor Version:** Incremented for changes that notably enhance or modify the FlutterFlow development experience—such as upgrading to a new Flutter version or adding a large feature.
Copy link

Choose a reason for hiding this comment

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

adding a large feature -> substantially changing generated code or project structure.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Updated!


- **Major Version:** Incremented when introducing substantial changes that significantly alter the product.
- **Minor Version:** Incremented for changes that notably enhance or modify the FlutterFlow development experience—such as upgrading to a new Flutter version or adding a large feature.
- **Patch Version:** Incremented with routine releases that include new features, improvements, or bug fixes.
Copy link

Choose a reason for hiding this comment

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

Incremented for releases that contain bugfixes and minor improvements that do not contain breaking changes to generated code or project structure.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Updated!

![version-in-builder](imgs/version-in-builder.png)


#### Standard Release [Corresponds to Patch Version]
Copy link

Choose a reason for hiding this comment

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

Remove [Corresponds to Patch Version]

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!


When your project is **not pinned** to a stable release (default behavior), you will automatically use the **latest standard release.**

#### Stable Release [Corresponds to Minor Version]
Copy link

Choose a reason for hiding this comment

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

Remove [Corresponds to Minor Version]

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!

2. When a new stable version is released, you can choose when you would like to upgrade based on your own release schedule and development process. For instance, you might wait until you're not actively developing a new feature, or you could check the release notes first to see if there are must-have features that would prompt you to upgrade sooner.
3. When you’re ready to upgrade, commit all your changes on main to save your progress. Create a new branch from the main branch, [update the pinned version](#modifying-the-pinned-version), and test all functionalities to ensure compatibility. If any modifications are needed, make those changes in the new branch.
4. Run your app on the platforms you support—using a simulator, emulator, or physical device to ensure everything works as intended. See the [Local Run documentation](https://docs.flutterflow.io/testing/local-run/) for details.
4. If everything looks good, you can merge the new branch into the main branch. However, to merge branches successfully, ensure that both the main branch and the new branch are pinned to the same FlutterFlow version! If for some reason your app is not working as expected, you can choose to leave or close the branch until you are ready to make the modifications needed to support the latest FlutterFlow version (i.e. upgrade dependencies/custom code).
Copy link

Choose a reason for hiding this comment

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

  1. -> 5.

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! Thanks :)


## Version Management with Libraries

[Libraries](../libraries.md) have their own versions, and each library version corresponds to a specific FlutterFlow version. The FlutterFlow version of the library version is determined by the version used (pinned or otherwise) when the project was updated.
Copy link

Choose a reason for hiding this comment

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

Library versions don't really correspond 1:1 to Flutterflow versions. Library versions monotonically increase as libraries are released.

I would recommend instead saying:

Libraries have their own versions.  Like projects, libraries edited in FlutterFlow can only be used in versions
of FlutterFlow >= the FlutterFlow version in which the library was was edited.

To ensure that new versions of libraries used in a pinned project are compatible with a pinned project, we
recommend pinning all libraries used in a pinned project to the same (or lower) Flutterflow version as the
pinned project.

Pinned projects cannot add a library with the version set to 'current' or to a library version that has been
edited on a later release of FlutterFlow.

Projects cannot be pinned if they a contain a library with the version set to 'current' or to a library version
that has been edited on a later release of FlutterFlow.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Updated!

Library projects can also be pinned to a specific version, ensuring that all library versions use that FlutterFlow release until the pinned version is changed.

:::info
When you import a library into a project or another library, the library’s version must be lower than the version used for the project it’s being imported into; otherwise, you will encounter an error.
Copy link

Choose a reason for hiding this comment

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

lower than -> lower than or equal to

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!

Comment on lines 124 to 132
<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., you made changes when you upgraded from 5.0 to 5.1, but then you want to downgrade back to 5.0).
**To avoid data loss, thoroughly test your app after upgrading to ensure you want to continue with the updated version.**
</p>
</details>
Copy link

Choose a reason for hiding this comment

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

Omit this. Downgrading won't be supported in v0.

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!

What happens if there is no stable version available for me to pin my project to?
</summary>
<p>
If your project was created and edited on a [standard release](#standard-release-corresponds-to-patch-version) that does not correspond to a [stable version](#stable-release-corresponds-to-minor-version), you may not see an earlier stable version to downgrade to - because this would reset the state of your project. Instead, you can choose to opt-in to the [*next stable release*](#pinning-your-project).
Copy link

Choose a reason for hiding this comment

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

not see an earlier stable version to downgrade to - because this would reset the state of your project. -> not see a stable version available.

Also add:
If set to the next stable release, a project will immediately be pinned when opened when a new stable release becomes available.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Updated!

@br0nk
Copy link

br0nk commented Feb 11, 2025

Left some comments based on what is actually included for v0. Mainly:

  • No support for pinning rollbacks for now.
  • Pinning to different Flutterflow versions is available per-branch.
  • patch number changes per-deployment, but doesn't affect project compatibility across FlutterFlow versions. Discuss pinning and compatibility only in terms of major.minor version number.

@pinkeshmars
Copy link
Collaborator Author

Hi @br0nk All review comments are addressed now! Just need clarification on this and this.

Also, let me know when we should publish it?

@br0nk
Copy link

br0nk commented Feb 12, 2025

Hi @br0nk All review comments are addressed now! Just need clarification on this and this.

Also, let me know when we should publish it?

Thanks! I just commented on each.

I think the usual process is to publish after the release? We are tentatively planning to release this on Thursday (tomorrow), but this is up to the discretion of Leigha & Sanjana

@pinkeshmars
Copy link
Collaborator Author

Hi @br0nk All review comments are addressed now! Just need clarification on this and this.
Also, let me know when we should publish it?

Thanks! I just commented on each.

I think the usual process is to publish after the release? We are tentatively planning to release this on Thursday (tomorrow), but this is up to the discretion of Leigha & Sanjana

ok, I have addressed the rest of the comments, so this PR is ready to merge now. Thanks @br0nk

@br0nk
Copy link

br0nk commented Feb 13, 2025

+@PoojaB26 for questions on when to publish this

@PoojaB26 PoojaB26 merged commit e6895c2 into main Feb 14, 2025
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants