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

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

            Dates

              Created:
              Updated:
              Resolved: