Chapter 01: Cordova Version...Issues
As I've mentioned before, Apache Cordova is a pretty fast moving project. There's a lot of people on the team and because there's multiple parts, separate teams work on each. The end result of this is that each part of Apache Cordova (CLI, Plugman, APIs, platform support) has its own release process. Since they're broken out into separate releases, there's no common version maintained across the whole project.
As you know, the book is called Apache Cordova 4 Programming and the intent was to cover Apache Cordova 4.x and support (as much as possible) the major version that follows as well. When the Apache Cordova team released Apache Cordova 4 in October 2014, it was only the CLI that was numbered with the 4.0 version; the platforms and plugins were all in a 3.x version. Early in 2015, platforms like the Android platform and others were updated to 4.0.
The good news is that for the most part most things interact pretty well regardless of the version, as long as they're close. More good news is that some of the mobile platform components were upgraded to version 4.x right about the time this book came out.
The bad news? The Cordova CLI was updated to version 5.0 about a week after this book was released. So, if you're looking at this book, with 4 in the title, and the Cordova web site and seeing that 5.0 has been released, you may think that this book is obsolete. It's not!
The reason the Cordova team made the leap from Cordova 4 to Cordova 5 was because of some pretty major changes to the CLI. Since Cordova 3 and the CLI was released, the Cordova team has struggled a bit with where to put things. If you remember from the early days of the CLI, plugins were originally published on GitHub and you loaded the plugin using the plugin's GitHub repository name. Very quickly thereafter, the team started instead to have the CLI access plugins by their unique ID (org.apache.cordova.device for example). Next, everything started moving to npmjs.org (Node Package Manager) and they decided to change the CLI version number when they did so.
This changes nothing for Cordova developers for the first 6 months, everything will continue to work the same. Later, after things have stabilized, all plugin IDs will change and everything will be loaded using npm. Look at Everything as Node Modules topic for more information about this change.