Fledge: A CI/CD tool for Flutter

Overview

pub package Build Status drawing

Fledge

See https://medium.com/@nocnoc/cicd-for-flutter-fdc07fe52abd for introduction to Fledge.

Fledge: A CICD tool for Flutter

Automatically build, test, sign and release your Flutter app to both Apple and Google stores.

Supports public and private build servers in the cloud (Travis, Cirrus, etc...) and in-house (Jenkins, GitLab, etc...).

There are many steps involved each time an app, or an app upgrade, is delivered to both stores. Fledge exists to document and automate these steps.

Quick start

For example, with GitHub and Travis:

  1. Install Fledge

    $ pub global activate fledge
    
  2. Add secrets
    Set your secret variables in:

    https://travis-ci.org/<your name>/<your repo>/settings
    

    secret variables
    These variables are used for signing and uploading to both stores.

  3. Add app to Fledge
    Install the Travis config file and Fastlane files

    $ fledge config -b travis
  4. Start a beta
    Run pipeline on Travis

    $ fledge beta
    

    This will build your app, upload to both store consoles and release to beta testers.

  5. Release to users

    $ fledge release
    

    This will release the app to users.

Documentation

As with any mobile app, there are several one-time setup tasks (most of which you have to do anyway… even without a CICD tool).

To avoid having to gather together all the bits and pieces of information required to deliver a Flutter app, the Fledge project has created complete documentation to walk you thru all the setup tasks for the more common scenarios.

One of the reasons the Fledge projects exists is to document these one-time setup tasks and progressively automate them where possible (and then remove from documentation).

Fledge Docs

View the documentation site for complete usage and configuration information.

Demo

For a demo of Fledge in action see: https://github.com/mmcc007/todo. Links are included to view the pipeline on Travis that delivers betas and releases to both stores.

The demo app was delivered automatically to both Google and Apple stores using a Fledge pipeline.

You can download the demo app to your android or iOS device:
GitErDone GitErDone

Fledge trace-back feature

This feature allows you to track what version of your app is running on any device. Useful for support and bug-fixing.

To use the Fledge trace-back feature, tap on the app title 'GitErDone' to view the 'About'.

On an android device you will see:
android screenshot

On an iOS device you will see:
ios screenshot

You can then trace back to the Fledge pipeline that delivered the app (click on image below for link to actual pipeline):
fledge pipeline

License

Fledge is distributed by an MIT license.

Contributing

When contributing to this repository, please feel free to discuss via issue or pull request.

Issues and pull requests are welcome.

Your feedback is used to guide where development effort is focused. So feel free to create as many issues and pull requests as you want. You should expect a timely and considered response.

BTW: to contribute to the manual, fork the project and make updates to the gh-pages branch. Then create a PR. The manual is a collection of markdown docs (like the README.md).

Code of Conduct

Fledge is committed to fostering a welcoming community.

Big Thanks

Mobile Testing Platform and Open Source <3 Provided by Sauce Labs

Comments
  • Setup for dummies

    Setup for dummies

    I know how to use flutter but the signing and release process is complex.

    Thanks for making fledge btw.

    Can you make a doc.md to show all the steps.

    Getting apple and Android stuff setup. Have to go to their web site and press all these buttons. Swords names etc.

    Getting fastlane setup locally.

    Travis can only do android builds. Can it do iOS.

    good first issue 
    opened by ghost 5
  • Team ID required in ios Appfile

    Team ID required in ios Appfile

    Next I also needed to provide my Team ID in the ios Appfile. Perhaps this is only required because i have multiple teams? But again, it could be added to the manual.

    Originally posted by @yvanvds in https://github.com/mmcc007/fledge/issues/2#issuecomment-471615971

    doc 
    opened by mmcc007 5
  • Bad state: Not running from source in the Dart repo.

    Bad state: Not running from source in the Dart repo.

    I got this error after running fledge config -b gitlab --trace on Windows I already followed comments on Issue 16 and nothing.

    C:\Users\jbaylac\Documents\projects\consumer_mobile>fledge config -b gitlab --trace
    Bad state: Not running from source in the Dart repo.
    package:fledge/src/io.dart 552:5   dartRepoRoot.<fn>
    package:fledge/src/io.dart 566:3   dartRepoRoot
    package:fledge/src/io.dart 550:14  dartRepoRoot
    package:fledge/src/io.dart 904:20  _pathTo7zip.<fn>
    package:fledge/src/io.dart 905:3   _pathTo7zip
    package:fledge/src/io.dart 902:14  _pathTo7zip
    package:fledge/src/io.dart 924:40  _extractTarGzWindows.<fn>
    ===== asynchronous gap ===========================
    dart:async                         _AsyncAwaitCompleter.completeError
    package:fledge/src/io.dart         _extractTarGzWindows.<fn>
    ===== asynchronous gap ===========================
    dart:async                         _asyncThenWrapperHelper
    package:fledge/src/io.dart         _extractTarGzWindows.<fn>
    package:fledge/src/io.dart 820:20  withTempDir
    ---- Log transcript ----
    IO  : Spawning "cmd /c ver" in C:\Users\jbaylac\Documents\projects\consumer_mobile\.
    IO  : Finished ver. Exit code 0.
        | stdout:
        | |
        | | Microsoft Windows [Version 10.0.17134.706]
        | Nothing output on stderr.
    IO  : unpacking package:fledge/resource/fastlane/fastlane.tar.gz to .
    FINE: Extracting .tar.gz stream to ..
    IO  : Created temp directory C:\Users\jbaylac\AppData\Local\Temp\pub_671e8dba-7016-11e9-940b-04d3b0c275ad
    IO  : Creating C:\Users\jbaylac\AppData\Local\Temp\pub_671e8dba-7016-11e9-940b-04d3b0c275ad\data.tar.gz from stream.
    FINE: Created C:\Users\jbaylac\AppData\Local\Temp\pub_671e8dba-7016-11e9-940b-04d3b0c275ad\data.tar.gz from stream.
    IO  : Deleting directory C:\Users\jbaylac\AppData\Local\Temp\pub_671e8dba-7016-11e9-940b-04d3b0c275ad.
    ERR : Bad state: Not running from source in the Dart repo.
    FINE: Exception type: StateError
    ERR : package:fledge/src/io.dart 552:5   dartRepoRoot.<fn>
        | package:fledge/src/io.dart 566:3   dartRepoRoot
        | package:fledge/src/io.dart 550:14  dartRepoRoot
        | package:fledge/src/io.dart 904:20  _pathTo7zip.<fn>
        | package:fledge/src/io.dart 905:3   _pathTo7zip
        | package:fledge/src/io.dart 902:14  _pathTo7zip
        | package:fledge/src/io.dart 924:40  _extractTarGzWindows.<fn>
        | ===== asynchronous gap ===========================
        | dart:async                         _AsyncAwaitCompleter.completeError
        | package:fledge/src/io.dart         _extractTarGzWindows.<fn>
        | ===== asynchronous gap ===========================
        | dart:async                         _asyncThenWrapperHelper
        | package:fledge/src/io.dart         _extractTarGzWindows.<fn>
        | package:fledge/src/io.dart 820:20  withTempDir
    ---- End log transcript ----
    
    good first issue 
    opened by JordyBaylac 3
  • dev branch might not be listed first

    dev branch might not be listed first

    Hey, me again :-)

    I just had an issue where fledge stopped with the error:

    must be in dev branch and all files committed and pushed
    

    But of course i was in the dev branch and all files were commited and pushed. What went wrong: I still had another branch in my project, so the git branch command lists:

       androidx
     * dev
       master
    

    As you can see, the dev branch exists and is active (hence the asterisk). But your code in lib/src/commands/beta.dart has the validateRepo function which contains

        if (!(gitResult.isNotEmpty && gitResult[0].contains('dev')))
    

    which explains why i got this error. You are expecting dev to the first line, while in my case it is the second. Unless there are other git version that do things differently, I'd suggest you iterate through the lines and see if the dev one starts with an asterisk.

    Unless of course different git apps do not have the same output. My git version outputs:

    • git version 2.17.2 (Apple Git-113) => on my old mac
    • git version 2.17.1.windows.2 => on my windows dev machine

    Both are using this format.

    PS. And no, you don't have to rush to fix this. I just deleted the androidx branch and could continue. It was already merged so I didn't need it anymore.

    bug 
    opened by yvanvds 3
  • Setting-up 2-step verification in Apple store console

    Setting-up 2-step verification in Apple store console

    It works. Awesome!

    I got a few quirks down the road though.

    First is that my account has 2 step verification enabled. You do mention this in your manual. I created a second account, but when I tried to verify that i could login with it, it asked me to add security questions. I thought this might be another kind of 2 step verification, so I spent half an hour trying to disable it. Turns out it wasn't a problem at all, but maybe you could mention that part in your manual to save overly cautious people like me from this :-)

    Taken from original post by @yvanvds in https://github.com/mmcc007/fledge/issues/2#issuecomment-471615971

    doc 
    opened by mmcc007 3
  • ios certificates are not working

    ios certificates are not working

    Hey, thanks for this. I followed your tutorial, using github and travis-ci. But my iOS build is stuck at sync_code_signing. I've disabled the suppress_output wrapper in Fastfile to get some more output, but can't really paste it all in here because there's a lot of sensitive text in there.

    First step is loading the Matchfile, which is successful. Detected values are ok. Next the remote git repo is cloned and i get the message 'Successfully decrypted certificates repo. Sounds good.

    Now there's an error:

    [13:17:03]: Installing certificate... security: SecKeychainSearchCopyNext: The specified item could not be found in the keychain. [13:17:04]: There are no local code signing identities found.

    My first thought that this was the problem, but I'm not sure. Because next it lists my Installed Certificate with all details and below that the Installed Provisioning Profile. Then I get a message:

    All required keys, certificates and provisioning profiles are installed 🙌 [13:17:04]: Setting Provisioning Profile type to 'app-store' [13:17:04]: Certificates and profiles installed [13:17:04]: ----------------------------------------- [13:17:04]: --- Step: update_project_provisioning --- [13:17:04]: ----------------------------------------- [13:17:04]: You’re updating provisioning profiles directly in your project, but have you considered easier ways to do code signing? [13:17:04]: https://docs.fastlane.tools/codesigning/GettingStarted/ [13:17:04]: Downloading root certificate from (https://www.apple.com/appleca/AppleIncRootCertificate.cer) to path '/tmp/AppleIncRootCertificate.cer' [13:17:04]: Error setting value '' for option 'profile' +------------------------------------+---------------------------------------------------------+ | Lane Context | +------------------------------------+---------------------------------------------------------+ | ORIGINAL_DEFAULT_KEYCHAIN | "/Users/travis/Library/Keychains/login.keychain-db" | | DEFAULT_PLATFORM | ios | | PLATFORM_NAME | ios | | LANE_NAME | ios beta | | SIGH_PROFILE_TYPE | app-store | | MATCH_PROVISIONING_PROFILE_MAPPING | {"com.mute.klankenbos"=>"match AppStore com.mute.klankenbos"} | +------------------------------------+---------------------------------------------------------+ [13:17:04]: Path to provisioning profile is invalid

    So there's two errors here, right before and right after the Lane Context listing. And that's when the build stops, so I guess they're the real problem here. But since loading the certificates and profiles worked, I'm not sure where I should look now.

    Any ideas? The fastlane match configuration succeeded without any problems earlier. I do realise that this is probably not an issue with your project, but I did follow all instructions in your manual. So it might be that something was left out. (Or maybe I simply forgot one of the steps, of course.)

    bug good first issue 
    opened by yvanvds 3
  • Running on Windows yields errors

    Running on Windows yields errors

    Attempting to set up a new project running on Windows. It appears there are some path checks that may be incorrect on Windows. I get the following stack:

    Bad state: Not running from source in the Dart repo.
    package:fledge/src/io.dart 552:5                                                  dartRepoRoot.<fn>
    package:fledge/src/io.dart 566:3                                                  dartRepoRoot
    package:fledge/src/io.dart 550:14                                                 dartRepoRoot
    package:fledge/src/io.dart 904:20                                                 _pathTo7zip.<fn>
    package:fledge/src/io.dart 905:3                                                  _pathTo7zip
    package:fledge/src/io.dart 902:14                                                 _pathTo7zip
    package:fledge/src/io.dart 924:40                                                 _extractTarGzWindows.<fn>
    ===== asynchronous gap ===========================
    package:fledge/src/io.dart 820:20                                                 withTempDir
    ===== asynchronous gap ===========================
    package:fledge/src/io.dart 915:10                                                 _extractTarGzWindows
    package:fledge/src/io.dart 842:18                                                 extractTarGz
    ===== asynchronous gap ===========================
    package:fledge/src/commands/config.dart 84:9                                      unpackTarGzFile
    ===== asynchronous gap ===========================
    package:fledge/src/commands/config.dart 48:15                                     ConfigCommand.run
    ===== asynchronous gap ===========================
    package:args/command_runner.dart 196:27                                           CommandRunner.runCommand
    ===== asynchronous gap ===========================
    package:fledge/src/command_runner.dart 158:39                                     FledgeCommandRunner.runCommand.<fn>
    dart:async                                                                        new Future.sync
    package:fledge/src/utils.dart 109:12                                              captureErrors.<fn>
    dart:async                                                                        runZoned
    package:fledge/src/utils.dart 126:5                                               captureErrors
    package:fledge/src/command_runner.dart 158:13                                     FledgeCommandRunner.runCommand
    ===== asynchronous gap ===========================
    package:fledge/src/command_runner.dart 107:11                                     FledgeCommandRunner.run
    ===== asynchronous gap ===========================
    ..\..\flutter\.pub-cache\hosted\pub.dartlang.org\fledge-0.1.3\bin\main.dart 4:25  main
    This is an unexpected error. Please run
    
        fledge --trace config -b gitlab
    
    and include the logs in an issue on https://github.com/mmcc007/fledge/issues/new
    
    good first issue doc 
    opened by ctartamella 2
  • Increasing version number

    Increasing version number

    But then there's another problem: I cannot increase the version number. Reading the manual, i was under the assumption that it would increase automatically? Either way, increasing it manually does not work either:

    fastlane start_beta major
    [17:25:06]: fastlane detected a Gemfile in the current directory
    [17:25:06]: however it seems like you don't use `bundle exec`
    [17:25:06]: to launch fastlane faster, please use
    [17:25:06]: 
    [17:25:06]: $ bundle exec fastlane start_beta major
    [17:25:06]: 
    [17:25:06]: Get started using a Gemfile for fastlane https://docs.fastlane.tools/getting-started/ios/setup/#use-a-gemfile
    [17:25:11]: ---------------------------
    [17:25:11]: --- Step: opt_out_usage ---
    [17:25:11]: ---------------------------
    [17:25:11]: Disabled upload of used actions
    [17:25:11]: Could not find lane 'start_beta major'. Available lanes: start_beta, release
    +------+---------------+-------------+
    |          fastlane summary          |
    +------+---------------+-------------+
    | Step | Action        | Time (in s) |
    +------+---------------+-------------+
    | 1    | opt_out_usage | 0           |
    +------+---------------+-------------+
    [17:25:11]: fastlane finished with errors
    [!] Could not find lane 'start_beta major'. Available lanes: start_beta, release
    

    I'm not sure how to handle that, because when I google for how to increase the build number with fastlane, the instructions don't come near to what is in your manual. So far i get by with removing the tags from git with:

    git tag -d 0.0.1
    git push -d origin 0.0.1
    

    But that won't help me when i actually want to publish a new build.

    Again, thanks for helping.

    Originally posted by @yvanvds in https://github.com/mmcc007/fledge/issues/2#issuecomment-471615971

    doc 
    opened by mmcc007 2
  • Bump addressable from 2.7.0 to 2.8.0 in /example

    Bump addressable from 2.7.0 to 2.8.0 in /example

    Bumps addressable from 2.7.0 to 2.8.0.

    Changelog

    Sourced from addressable's changelog.

    Addressable 2.8.0

    • fixes ReDoS vulnerability in Addressable::Template#match
    • no longer replaces + with spaces in queries for non-http(s) schemes
    • fixed encoding ipv6 literals
    • the :compacted flag for normalized_query now dedupes parameters
    • fix broken escape_component alias
    • dropping support for Ruby 2.0 and 2.1
    • adding Ruby 3.0 compatibility for development tasks
    • drop support for rack-mount and remove Addressable::Template#generate
    • performance improvements
    • switch CI/CD to GitHub Actions
    Commits
    • 6469a23 Updating gemspec again
    • 2433638 Merge branch 'main' of github.com:sporkmonger/addressable into main
    • e9c76b8 Merge pull request #378 from ashmaroli/flat-map
    • 56c5cf7 Update the gemspec
    • c1fed1c Require a non-vulnerable rake
    • 0d8a312 Adding note about ReDoS vulnerability
    • 89c7613 Merge branch 'template-regexp' into main
    • cf8884f Note about alias fix
    • bb03f71 Merge pull request #371 from charleystran/add_missing_encode_component_doc_entry
    • 6d1d809 Adding note about :compacted normalization
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 1
  • Create Alpha release for Android and iOS

    Create Alpha release for Android and iOS

    Can anyone help me customize the default settings to create an Alpha release for both Android and iOS. I have made changes in android/fastlane/Fastfile for the Alpha release. We need to create the Alpha environment for android and iOS both.

    Following is my code in Fastfile in Alpha :

    import "../../fastlane/Fastlane.common"
    
    #fastlane_version "2.55.0"
    opt_out_usage
    
    before_all do
      #ensure_git_branch
      #ensure_git_status_clean
      #git_pull
    end
    
    default_platform(:android)
    
    platform :android do
      desc "Runs all the tests"
      lane :test do
        gradle(task: "test")
      end
    
      desc "Build and push to play store track"
      private_lane :build_and_push_to_play_store_track do |options|
        get_build_name_and_build_number
        release_notes(OS: 'android')
        sh ("cd ../.. && flutter build apk --build-name=#{@build_name} --build-number=#{@build_number}")
        upload_to_play_store(
          track: options[:track],
          apk: '../build/app/outputs/apk/release/app-release.apk',
          json_key_data: ENV['GOOGLE_DEVELOPER_SERVICE_ACCOUNT_ACTOR_FASTLANE'],
          #skip_upload_screenshots: false,
          #skip_upload_images: false
        )
      end
    
      desc 'Push a release build to beta track'
      lane :beta do
        #ensure_git_branch(branch: 'dev')
        gradle(task: 'clean')
        gradle(task: 'bundle', build_type: 'Release')
        build_and_push_to_play_store_track(track: "beta")
      end
      desc 'Submit a new Alpha Build to Alpha'
      lane :alpha do
          gradle(task: 'clean')
          gradle(task: 'bundle', build_type: 'Release')
          build_and_push_to_play_store_track(track: 'alpha')
      end
    
      desc "Promote latest release build from beta to production and publish to the Play Store"
      lane :release do
        #ensure_git_branch(branch: 'master')
        #build_and_push_to_play_store_track(track: "production")
        release_notes(OS: 'android')
        upload_to_play_store(
          track: 'beta',
          track_promote_to: 'production',
          json_key_data: ENV['GOOGLE_DEVELOPER_SERVICE_ACCOUNT_ACTOR_FASTLANE'],
          skip_upload_apk: true,
          skip_upload_metadata: true,
          skip_upload_images: true,
          skip_upload_screenshots: true,
        )
      end
    
    end
    
    

    As I am a bit confused, can you please confirm for following :

    For GOOGLE_DEVELOPER_SERVICE_ACCOUNT_ACTOR_FASTLANE key in Gitlab CI-CD env variables. Do we need to pass the user email id which is used to log in the account or do we need to pass the value of private_key from the .json file downloaded from the process of the google developer console?

    opened by niranjan-b-prajapati 1
  • Why not using fastlane directly ?

    Why not using fastlane directly ?

    Hi, great lib.

    I have few questions if you don’t mind.

    As far as I understand, fledge’s just wrapping fastlane functionality. Which mean that fledge is dependent on ruby, bundle being installed.

    So my first question is why not just directly use fastlane over fledge?

    What are the advantages that fledge offers besides creating the platform specific fastlane folders?

    Second the tool’s expecting a specific git branch name (dev), what if we have different setup for our branch naming?

    good first issue 
    opened by bitsydarel 1
  • Bump addressable from 2.7.0 to 2.8.1 in /example

    Bump addressable from 2.7.0 to 2.8.1 in /example

    Bumps addressable from 2.7.0 to 2.8.1.

    Changelog

    Sourced from addressable's changelog.

    Addressable 2.8.1

    • refactor Addressable::URI.normalize_path to address linter offenses (#430)
    • remove redundant colon in Addressable::URI::CharacterClasses::AUTHORITY regex (#438)
    • update gemspec to reflect supported Ruby versions (#466, #464, #463)
    • compatibility w/ public_suffix 5.x (#466, #465, #460)
    • fixes "invalid byte sequence in UTF-8" exception when unencoding URLs containing non UTF-8 characters (#459)
    • Ractor compatibility (#449)
    • use the whole string instead of a single line for template match (#431)
    • force UTF-8 encoding only if needed (#341)

    #460: sporkmonger/addressable#460 #463: sporkmonger/addressable#463 #464: sporkmonger/addressable#464 #465: sporkmonger/addressable#465 #466: sporkmonger/addressable#466

    Addressable 2.8.0

    • fixes ReDoS vulnerability in Addressable::Template#match
    • no longer replaces + with spaces in queries for non-http(s) schemes
    • fixed encoding ipv6 literals
    • the :compacted flag for normalized_query now dedupes parameters
    • fix broken escape_component alias
    • dropping support for Ruby 2.0 and 2.1
    • adding Ruby 3.0 compatibility for development tasks
    • drop support for rack-mount and remove Addressable::Template#generate
    • performance improvements
    • switch CI/CD to GitHub Actions
    Commits
    • 8657465 Update version, gemspec, and CHANGELOG for 2.8.1 (#474)
    • 4fc5bb6 CI: remove Ubuntu 18.04 job (#473)
    • 860fede Force UTF-8 encoding only if needed (#341)
    • 99810af Merge pull request #431 from ojab/ct-_do_not_parse_multiline_strings
    • 7ce0f48 Merge branch 'main' into ct-_do_not_parse_multiline_strings
    • 7ecf751 Merge pull request #449 from okeeblow/freeze_concatenated_strings
    • 41f12dd Merge branch 'main' into freeze_concatenated_strings
    • 068f673 Merge pull request #459 from jarthod/iso-encoding-problem
    • b4c9882 Merge branch 'main' into iso-encoding-problem
    • 08d27e8 Merge pull request #471 from sporkmonger/sporkmonger-enable-codeql
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Bump jmespath from 1.4.0 to 1.6.1 in /example

    Bump jmespath from 1.4.0 to 1.6.1 in /example

    Bumps jmespath from 1.4.0 to 1.6.1.

    Release notes

    Sourced from jmespath's releases.

    Release v1.6.1 - 2022-03-07

    • Issue - Use JSON.parse instead of JSON.load.

    Release v1.6.0 - 2022-02-14

    • Feature - Add support for string comparissons.

    Release v1.5.0 - 2022-01-10

    • Support implicitly convertible objects/duck-type values responding to to_hash and to_ary.

      [See related GitHub pull request #51](jmespath/jmespath.rb#51).

    Changelog

    Sourced from jmespath's changelog.

    1.6.1 (2022-03-07)

    • Issue - Use JSON.parse instead of JSON.load.

    1.6.0 (2022-02-14)

    • Feature - Add support for string comparisons.

    1.5.0 (2022-01-10)

    • Support implicitly convertible objects/duck-type values responding to to_hash and to_ary.

      [See related GitHub pull request #51](jmespath/jmespath.rb#51).

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Getting below error on running  fledge beta

    Getting below error on running fledge beta

    fledge beta Git error. Command: git log origin/dev..dev fatal: ambiguous argument 'origin/dev..dev': unknown revision or path not in the working tree. Use '--' to separate paths from revisions, like this: 'git [...] -- [...]'

    Please suggest something to fix this...

    good first issue waiting for response 
    opened by v2Nitesh 10
Owner
Maurice McCabe
Flutter fan
Maurice McCabe
This is tool to create 3D Models which can be used in Flutter Applications. Tool is developed completely using Flutter.

three_d_model_tool A new Flutter project. Getting Started This project is a starting point for a Flutter application. A few resources to get you start

Shubham Yeole 2 Nov 8, 2022
Simple tool to open WhatsApp chat without saving the number, developed using Google's Flutter Framework. for Android/ IOS/ Desktop/ Web

OpenWp Simple tool to open WhatsApp chat without saving the number Explore the docs » View Demo · Report Bug · Request Feature Table of Contents About

Swarup Bhanja Chowdhury 15 Nov 1, 2022
Integrate Flutter with the Facebook Stetho tool for Android

flutter_stetho A plugin that connects Flutter to the Chrome Dev Tools on Android devices via the Stetho Android Library. Network Inspector The main fe

Brian Egan 215 Nov 20, 2022
🚀 A simple & beautiful mobile tool for pictures uploading built by flutter

Flutter-PicGo 图片上传+管理新体验 应用概述 Flutter-PicGo: 一个用于快速上传图片并获取图片URL链接的手机版工具 Flutter-PicGo 本体支持如下图床: GitHub [v1.0+] SM.MS [v1.1+] Gitee [v1.2+] 七牛云 [v1.3+]

PicGo 320 Jan 5, 2023
Custom flutter testing CLI tool for individual test runs and group testing

fluttertest Custom flutter testing CLI tool for inidividual test runs or group testing Overview Flutter is a great framework which has helps developer

vi_mi 15 Nov 6, 2022
A collection of templates to make new Flutter components using the Mason build tool.

Mason Flutter Templates A collection of templates to make new Flutter components using the Mason build tool. Setup in Project To use these templates i

Marcus Twichel 5 Jun 21, 2022
This is an opinionated code-generation tool from GraphQL to Dart/Flutter.

GraphQL Codegen This is an opinionated code-generation tool from GraphQL to Dart/Flutter. It'll allow you to generate Dart serializers and client help

United Traders 1 Dec 29, 2021
MetaFlutter - A tool to build Flutter layouts on-device

MetaFlutter MetaFlutter is a project to create Flutter layouts on device. Learn, explore and experiment with Flutter widgets directly on your phone. M

Deven Joshi 162 Nov 22, 2022
A tool which automatically generates Flutter localization resources from CSV and Excel files.

flappy_translator A tool which automatically generates Flutter localization resources from CSV and Excel files. This is especially useful as any team

Smart&Soft 55 Sep 15, 2022
Simple & Beautiful App (Tool) made in Flutter to Download Media from YouTube

SongTube is a new beautiful and fast application made in flutter, it supports YouTube audio and video downloading at any quality, In-App YouTube Brows

SongTube 805 Dec 30, 2022
Quickly is build as a tool to enhance your Flutter UI development experience and make code easier

Quickly is build as a tool to enhance your Flutter UI development experience and make code easier. It is highly inspired by Bootstrap and Tailwind CSS. It also provide lots of extension methods on String, List and Map.

Aniket Khote 11 Oct 24, 2022
A new Flutter project for PC to control mobiles by adb tool.

mobile_controller A new Flutter project for PC to control mobiles by adb tool. Develop in progress, not release yet... Features Provide computer contr

Hulk Su 5 Nov 15, 2022
A Flutter tool that makes golden testing easy.

???? Alchemist Developed with ?? by Very Good Ventures ?? and Betterment ☀️ . A Flutter tool that makes golden testing easy. Alchemist is a Flutter pa

Betterment 210 Dec 12, 2022
Alternative i18n tool for Dart and Flutter.

Simple internationalization (i18n) package for Dart and Flutter. Supports: AngularDart Flutter hot reload deferred loading of translations social dist

fnx.io 32 Dec 10, 2022
shared_versions is a command line tool that allow share the versions for multiple packages in Flutter

shared_versions shared_versions is a CLI tool that allow share the versions for multiple packages in Flutter. Usage shared_versions will match the pac

Littlegnal 6 Sep 20, 2022
Icons Launcher - A command-line tool that simplifies the task of updating your Flutter app's launcher icon.

Icons Launcher - A command-line tool that simplifies the task of updating your Flutter app's launcher icon. Full flexibility allows you to only update the launcher icon for specific platforms as needed.

Mrr Hak 48 Nov 17, 2022
⚡️ This project uses the flutter UI tool kit to build an education/skill app for offering online tutorials.

⚡️ This project uses the flutter UI tool kit to build an education/skill app for offering online tutorials.

Godson 8 Nov 10, 2022
Simple & Beautiful App (Tool) made in Flutter to Download Media from YouTube. Based on the original SongTube App repository.

songtube A new Flutter project. Getting Started This project is a starting point for a Flutter application. A few resources to get you started if this

SongTube 11 Dec 18, 2022
The one and only Docker Tool you will ever need again

# container_tool A new Flutter project. ## Getting Started This project is a starting point for a Flutter application. A few resources to get you

null 1 Nov 17, 2021