Couldn't the version specified in `bower.json` be solidified and then read from there, just like the `package.json` is read? No more race condition, only one place to edit, though slightly more laborious (no semver squishiness, not sure that's a bad thing, though).