--- layout: post author: name: Steve Gill url: https://twitter.com/stevesgill title: "Apache Cordova CLI 4.0 Release" categories: announcements tags: news releases --- We are happy to announce that `Apache Cordova CLI 4.0` has been released! We have also released `Cordova-Browser 3.6.0`, `Cordova-Android 3.6.4`, `Cordova-Windows 3.6.4`, and `Cordova-WP8 3.6.4`. Most notable changes include: * **Cordova CLI** version bump to `4.0.0` to reflect our changes in [release policy](https://github.com/apache/cordova-coho/blob/master/docs/versioning-and-release-strategy.md). * **WP8** and **Windows** both implemented support for `--target` flag * Initial support for **Cordova-Browser** platform. * [CB-5390](https://issues.apache.org/jira/browse/CB-5390) Uninstall - recursively remove dependencies of dependencies To upgrade: (replace `android` with the platform you want to update): npm install -g cordova cd my_project cordova platform update android For non-CLI projects or for pre-3.0 projects, refer to the [upgrade guides](http://cordova.apache.org/docs/en/4.0.0/guide_platforms_index.md.html). ## Cordova CLI bumped to version 4.0 We have recently decided to update our release process to include independent releases for platforms. This means that our platform maintainers can release updates when they need to and not have to wait for other platforms to be ready to release. Users should expect more frequent releases with bug fixes and new features. Users can always view what versions of platforms they are using in a cordova project with the `cordova platform list` command. Users workflow is exactly the same and updating existing projects should not be an issue. Our [docs](http://cordova.apache.org/docs/en/dev/index.html) will be released alongside our **CLI**. The **CLI** is released with a set of default platforms pinned. For instance, this release of **Cordova-CLI** will include **Cordova-Android@3.6.4** pinned by default. This means that when you type `cordova platform add android`, it will fetch and install version `3.6.4` into your project. It is also very simple to install a different version of a platform for a project if you wish by specifying the version of the platform when you are adding. Ex. `cordova platform add android@3.5.1`. Of course we always recommend using the latest release when possible. In this release, all of our platforms are still in the 3.6.x range in terms of versions. Expect this to change as we do more releases. You can read more about our new versioning strategy at [https://github.com/apache/cordova-coho/blob/master/docs/versioning-and-release-strategy.md](https://github.com/apache/cordova-coho/blob/master/docs/versioning-and-release-strategy.md). ## New Platform: Cordova Browser We have just released **Browser** as a platform. Add it to your projects with `cordova platform add browser`. This feature is intended for development purposes. We are working on adding **browser** support to our core plugins. [Ray Camden](https://twitter.com/raymondcamden) has put together detailed blog post outlining which plugins we currently support at [http://www.raymondcamden.com/2014/9/24/Browser-as-a-platform-for-your-PhoneGapCordova-apps](http://www.raymondcamden.com/2014/9/24/Browser-as-a-platform-for-your-PhoneGapCordova-apps). Please file any issues and feature requests in our [issue tracker](https://issues.apache.org/jira/browse/CB/). Make sure to fill in the component field as `browser`. ## What's new in Android * Update JS snapshot to version `3.6.4` * [CB-7634](https://issues.apache.org/jira/browse/CB-7634) Detect `JAVA_HOME` properly on **Ubuntu** * [CB-7579](https://issues.apache.org/jira/browse/CB-7579) Fix `run` script's ability to use non-arch-specific `APKs` * [CB-6511](https://issues.apache.org/jira/browse/CB-6511) Fixes build for **Android** when app name contains unicode characters. * [CB-7460](https://issues.apache.org/jira/browse/CB-7460) Fixing bug with `KitKat` where the background colour would override the CSS colours on the application * [CB-7674](https://issues.apache.org/jira/browse/CB-7674) Preference activation no longer occurs in `CordovaActivity.onCreate()` ## What's new in Windows Phone 8 * Updated JS snapshot to version `3.6.4` * [CB-7616](https://issues.apache.org/jira/browse/CB-7616) partial match support for `--target` * Fixing paths for `npm` published versions * move `node_modules` up to same level as `package.json` * [CB-7455](https://issues.apache.org/jira/browse/CB-7455) add `bundledDependencies` * Moves `node_modules` from package root to bin/ folder * [CB-7444](https://issues.apache.org/jira/browse/CB-7444) Fixes `XHR` callback failure when requested file doesn't exists ## What's new in Windows * Update JS snapshot to version `3.6.4` * [CB-7617](https://issues.apache.org/jira/browse/CB-7617) partial match support for `--target` * Added `bundledDependencies` + fixed some whitespace ## What's new in Cordova-Browser * Update JS snapshot to version `3.6.0` * added initial **Windows** `run` support * No longer need to kill `Chrome` for `macOS` * added `create.bat` for **Windows** support ## What's new in Cordova-CLI * Made version `semVer` compliant and bumped to `4.0.0` * Pinned dependencies ## What's new in Cordova-Plugman * Pinned dependencies ## What's new in Cordova-Lib * Bumped version to `4.0.0` to be `semVer` compliant and to match **Cordova CLI** version * Pinned dependencies in `package.json` * Updated `platforms.js` for `3.6.4` * [CB-5390](https://issues.apache.org/jira/browse/CB-5390) Uninstall - recursively remove dependencies of dependencies * Fixes `HooksRunner` test - should run `before_plugin_uninstall` * [CB-6481](https://issues.apache.org/jira/browse/CB-6481) `getPluginsHookScripts` to work if plugin platform not defined * [CB-6481](https://issues.apache.org/jira/browse/CB-6481) Context opts should copy not reference * [CB-6481](https://issues.apache.org/jira/browse/CB-6481) Fixed `HooksRunner` and tests. Avoided issue with parallel tests running. Added checks for handling mocked `config.xml` and `package.json` in `HooksRunner` and `scriptsFinder`. Addressed `jshint` issues. Renamed `ScriptsFinder` to `scriptsFinder` * [CB-6481](https://issues.apache.org/jira/browse/CB-6481) Addressed community review notes: Removed `commonModules` from `Context`. Renamed `Hooker` and subclasses to `HooksRunner` and `scriptsFinder`. Moved `scriptsRunner` code into `HooksRunner` * [CB-6481](https://issues.apache.org/jira/browse/CB-6481) Replaced `CordovaError` throwing with Error per @kamrik review. Extracted `prepareOptions` `Hooker` method * [CB-6481](https://issues.apache.org/jira/browse/CB-6481) Docs: deprecated `.cordova/hooks` + other minor updates * [CB-6481](https://issues.apache.org/jira/browse/CB-6481) Updated hooks documentation * [CB-6481](https://issues.apache.org/jira/browse/CB-6481) Added unified hooks support for cordova app and plugins * [CB-7572](https://issues.apache.org/jira/browse/CB-7572) Serve - respond with `304` when resource **not modified** * `computeCommitId` for **browserify** workflow fixed to handle cli and non cli workflows * [CB-7219](https://issues.apache.org/jira/browse/CB-7219) `prepare-browserify` now supports `commitId` and `platformVersion` for `cordovajs` * [CB-7615](https://issues.apache.org/jira/browse/CB-7615) Read `config.xml` after pre-prepare hooks fire * [CB-7578](https://issues.apache.org/jira/browse/CB-7578) **Windows** Fix platform name reported by `pre_package` hook * [CB-7576](https://issues.apache.org/jira/browse/CB-7576) Support `windows` `merges` folder for **Windows** platform * Added tests for browser platform ## Plugin versions tested with this release * cordova-plugin-battery-status: 0.2.11 * cordova-plugin-camera: 0.3.2 * cordova-plugin-console: 0.2.11 * cordova-plugin-contacts: 0.2.13 * cordova-plugin-device: 0.2.12 * cordova-plugin-device-motion: 0.2.10 * cordova-plugin-device-orientation: 0.3.9 * cordova-plugin-dialogs: 0.2.10 * cordova-plugin-file: 1.3.1 * cordova-plugin-file-transfer: 0.4.6 * cordova-plugin-geolocation: 0.3.10 * cordova-plugin-globalization: 0.3.1 * cordova-plugin-inappbrowser: 0.5.2 * cordova-plugin-media: 0.2.13 * cordova-plugin-media-capture: 0.3.3 * cordova-plugin-network-information: 0.2.13 * cordova-plugin-splashscreen: 0.3.3 * cordova-plugin-statusbar: 0.1.8 * cordova-plugin-vibration: 0.3.11 ## Pinned Platform Versions for Cordova CLI 4.0.0 * Cordova Amazon-FireOS: 3.6.3 * Cordova Android: 3.6.4 * Cordova BlackBerry: 3.6.3 * Cordova Browser: 3.6.0 * Cordova FirefoxOS: 3.6.3 * Cordova iOS: 3.6.3 * Cordova Ubuntu: 3.6.3 * Cordova Windows: 3.6.4 * Cordova WP8: 3.6.4