Skip to content

Split develop, deploy and profile builds for both iOS and Android in flutter tool #2366

Closed

Description

@eseidelGoogle

more docs on the modes are here: https://github.com/flutter/flutter/wiki/Flutter's-modes


develop:

  • very fast edit/refresh
  • Checked mode is possible
  • Interpreted or JITed (device vs. simulator, possible we'll want to use interpreter in both places when possible)
  • Observatory enabled.

profile:

  • Checked mode code removed
  • Ahead of time compiled (AOTC) when possible
  • Observatory enabled.

deploy:

  • checked mode removed
  • ATOC
  • Observatory removed.

We don't have to actually make the configs different to begin with, but we do need to expose this difference in the flutter tool in order to make space for the backend work (like wiring in the Interpreter mode on iOS develop on devices).

@chinmaygarde @devoncarew

Activity

  1. sethladd commented on Mar 3, 2016

    @sethladd
    Contributor

    This may be implied but develop mode enables fast edit/refresh cycles.

    On Thu, Mar 3, 2016, 9:00 AM Eric Seidel [email protected] wrote:

    develop:

    • Checked mode is possible
    • Interpreted or JITed (device vs. simulator, possible we'll want to
      use interpreter in both places when possible)
    • Observatory enabled.

    profile:

    • Checked mode code removed
    • Ahead of time compiled (AOTC) when possible
    • Observatory enabled.

    deploy:

    • checked mode removed
    • ATOC
    • Observatory removed.

    We don't have to actually make the configs different to begin with, but we
    do need to expose this difference in the flutter tool in order to make
    space for the backend work (like wiring in the Interpreter mode on iOS
    develop on devices).

    @chinmaygarde https://github.com/chinmaygarde @devoncarew
    https://github.com/devoncarew

    —
    Reply to this email directly or view it on GitHub
    #2366.

  2. devoncarew commented on Mar 3, 2016

    @devoncarew
    Contributor

    Is the profile build configuration necessary? deploy would work for profiling modulo the removal of the observatory.

    This would mean we don't pass things like --checked into run (or build), we pass --deploy or --dev.

    I'm going to assume that dev mode and deploy mode would likely load their assets (images and code) in different ways. Dev mode may be a shell we build with any native code, but where the dart code is sideloaded (and re-loaded). The deploy mode would AOT it all into one binary, deployable artifact.

  3. abarth commented on Mar 3, 2016

    @abarth
    Contributor

    Is the profile build configuration necessary?

    The difference is whether to include observatory (binary size) and whether to have the sampling profiler running (battery). If you don't have a profiling build, you either need to pay the costs of the devtools/profiler in production or not be able to profile the production configuration.

  4. eseidelGoogle commented on Mar 14, 2016

    @eseidelGoogle
    ContributorAuthor

    #2042 tracks the iOS build support necessary for this tooling.

  5. added
    toolAffects the "flutter" command-line tool. See also t: labels.
    on Mar 18, 2016
  6. added
    c: new featureNothing broken; request for a new capability
    engineflutter/engine related. See also e: labels.
    on Apr 1, 2016
  7. added this to the milestone on Apr 1, 2016
  8. devoncarew commented on Apr 18, 2016

    @devoncarew
    Contributor

    The current names are develop, profile, and deploy. Do people have preferences re: renaming the modes, to either:

    • debug, profile, deploy
    • debug, profile, release
  9. devoncarew commented on Apr 18, 2016

    @devoncarew
    Contributor

    I'm working on a PR which would rename to debug, profile, deploy.

  10. Hixie commented on Apr 18, 2016

    @Hixie
    Contributor

    Searching google for [debug release] and [debug deploy] suggests the first pair is more widely used.

  11. sethladd commented on May 11, 2016

    @sethladd
    Contributor

    How close are we to closing this? Do we have a checklist of remaining items?

    Two related items:

    #3269 (build and upload gen_snapshot to darwin-x64)

    #3827 (document the various modes)

  12. devoncarew commented on May 25, 2016

    @devoncarew
    Contributor

    @chinmaygarde, @tvolkert, I re-purposed this bug as a burndown of the remaining items. Can you update the ios related ones (listed in the very first entry in the bug)? Thanks!

  13. chinmaygarde commented on May 25, 2016

    @chinmaygarde
    Contributor

    I updated the entries. Thanks.

  14. devoncarew commented on May 26, 2016

    @devoncarew
    Contributor

    @chinmaygarde, I updated based on some testing, and filed #4200 (re: --profile and --release against simulators).

  15. abarth commented on Jan 27, 2017

    @abarth
    Contributor

    Done.

  16. github-actions commented on Aug 16, 2021

    @github-actions

    This thread has been automatically locked since there has not been any recent activity after it was closed. If you are still experiencing a similar issue, please open a new bug, including the output of flutter doctor -v and a minimal reproduction of the issue.

  17. locked as resolved and limited conversation to collaborators on Aug 16, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    c: new featureNothing broken; request for a new capabilityengineflutter/engine related. See also e: labels.toolAffects the "flutter" command-line tool. See also t: labels.

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions