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
chore: add a BoM compatibility table to repository #12662
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Salakar
reviewed
Apr 17, 2024
Salakar
reviewed
Apr 17, 2024
puf
reviewed
Apr 18, 2024
Lyokone
changed the title
chore: proposal for version compatibility table
chore: add a compatibility table to repository
Apr 18, 2024
Lyokone
changed the title
chore: add a compatibility table to repository
chore: add a BoM compatibility table to repository
Apr 18, 2024
exaby73
approved these changes
Apr 18, 2024
TarekkMA
approved these changes
Apr 18, 2024
russellwheatley
requested changes
Apr 18, 2024
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice, just a few things from me 👍
Based on chats internally my feedback would be:
|
Salakar
reviewed
Apr 18, 2024
Salakar
reviewed
Apr 18, 2024
Salakar
reviewed
Apr 18, 2024
cynthiajoan
reviewed
Apr 18, 2024
TarekkMA
approved these changes
May 7, 2024
russellwheatley
approved these changes
May 7, 2024
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
This PR allows binding a set of Firebase plugin versions into a single parent version named a BoM (Bill of Materials) version - an overarching version that internally specifies all versions of the FlutterFire packages that work together for that BoM release (much like Android).
This PR adds a Melos script
bom
which updates 2 files:versions.json
which is a JSON file that can be consumed externally (e.g. the FlutterFire CLI) to get a match between a BoM version and all the other Flutter plugin versions and Firebase SDK versionsVERSIONS.md
which is a readable display version of the same informationThe contributing guide has been updated with instructions on how to run a BoM release. A BoM release can be run at any time. We use Melos (
melos bom
) to automatically suggest the next BoM version number (based on the types of package version changes between the last BoM version and now) but it can also be overridden manually (melos bom [customVersion]
).A typical BoM would look like:
guillaume@macbook $ melos bom New BoM version number (0.2.0): 0.2.0 JSON version data has been successfully written to scripts/versions.json Version 0.2.0 has been generated successfully!
Why do we need this?
To solve customer pain points in regards to using compatible versions of the FlutterFire set of plugins together, e.g. this tweet.
Some alternatives have been considered in the past:
Recently however we've been in a good position where the FlutterFire CLI has become the defacto way to do a bunch of things with FlutterFire and so we're able to explore solving problems like this with the CLI instead.