Uploaded image for project: 'Apache Cordova'
  1. Apache Cordova
  2. CB-6453

[CLI] Experimental Refactor

    XMLWordPrintableJSON

    Details

      Description

      [editing in progress]

      I've started an experimental refactor of the Cordova CLI. This is to improve the overall code quality, and solve issues which face projects which consume Cordova CLI as a dependency.

      The refactor will drastically change how the CLI operates internally, but will be backwards compatible and nonbreaking.

      1. goals
      • improve project stability when used as a cli
      • improve project stability when consumed as an api
      • improve modularization of code
      • non breaking
      1. architecture
        currently:
        CDV.
        BUILD
        CREATE
        ....

      the goal
      CLI
      cli/build
      cordova/build
      cli/create
      cordova/create
      ....
      CDV.
      cordova/build
      cordova/create
      ....

      while initially looking more complex, this architecture forces us to eat our own dog food: we create an api, then expose it as a cli.

      1. Current State
      • cli/api functionality is jumbled together
      • cannot include api functionality without pulling in cli as well (or individually require'ing files)
      • difficult to diagnose simple bugs due to poor modularization
      1. Future State
      • improved stability
      • improved contributor sanity (easier to workwith)
      • consume our own product (the api) insuring that releases are more stable
      • bugs related to i/o can be isolated from core functionality without having to maintain complex tests

        Attachments

          Activity

            People

            • Assignee:
              Unassigned
              Reporter:
              lorin.beer Lorin Beer
            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: