Since 87b11bd we were treating client-only refreshes of the initial
server build as if they were initial builds, and not resetting the
project context. This meant among other things that local packages
weren't being rebuilt, which led to #5074 (but also would have led to a
whole bunch of other problems).
Fixes#5074.
1. Add `addAssets` API to `package.js`
2. Rename `getSourcesFunc` to `getFiles` in internal code
3. Changed `PackageAPI#sources` to `PackageAPI#files` with a new structure that
has separate objects for assets and sources
4. Added some tests for different error conditions
5. The same file can now be a source and an asset
Although we remove the Cordova project directory when upgrading to
Meteor 1.2, this only happens once per project, and the
.meteor/local/cordova-build directory is usually ignored, and thus
preserved per machine. This means we can’t avoid checking for outdated
platforms on every run to make sure we remove the directory when needed.
Although we convert tarball URLs when building, and we still need to do
this for plugins added through packages, seeing the old URLs in `meteor
list` may confuse people. So we now attempt to convert them as part of
upgrading, together with the plugin ID changes. This also gives us the
opportunity to warn people right away if they’ve been using non-GitHub
tarball URLs.
If set, it assumes that all local packages are portable and can be
deployed to any platform.
If you are using this, you need to consistently use it every time you
run Meteor, not just when deploying. The first time you use it in a
project that has been used without it, you should run `meteor rebuild`.
Exclude core packages (whose versions are pinned) from being printed
when we say:
"Newer versions of the following indirect dependencies are available".
This is a temporary workaround for an issue that occurs when building
an app that uses Crosswalk.
We usually attempt to copy android-release-unsigned.apk to the root
build dir after a successful release build, but because Crosswalk
depends on native code, the resulting apk is architecture-specific
(android-armv7-release-unsigned.apk and
android-x86-release-unsigned.apk).
For now, I’m just adding a check so we don’t throw ENOENT. Built apks
can be found as usual in android/project/build/outputs/apk, they’re
just not copied to the root build dir.