(eg, when roundtripping through JsImage.readFromDisk)
Pre-0.9.0 this just means excessive rebuilds; on the packaging branch,
this means excessive version number bumps!
There were two separate issues here:
- npm-shrinkwrap.json wasn't actually being used as part of the
watchset/buildinfo, so changes to it might not cause the package to
be considered for rebuilding
- meteor-npm only compared top-level changes when deciding whether to
update, not all changes
Fixes#1648
stat fails if a symlink points to something nonexistent. since we're
literally looking for stuff physically under a directory, we don't need
to chase symlinks.
This is useful when the output tarball would just be unpacked immediately
anyway, e.g. because it is part of a larger build process. This shaves
eight seconds off my build. :)
This reverts commit 32fc06e7f8.
As Glasser points out, our command option parsing is such that all `-a`
flags for commands have to be consistent in whether they are boolean or
not. Since we could easily imagine wanting a boolean `-a` or `-r` flag
in the future, we should be careful about adding these aliases. We'll
update the docs to remove `-a` and `-r` instead.
They are not safe for spaces in paths. There might be other places to look for trouble.
I've run the following command to produce this commit: (on OS X, copy-and-pasting the below exactly)
find . -type f -name '*.sh' -print0 | # Find all .sh files
xargs -0 fgrep -H -- '`' | # See all places with backticks in them
fgrep 'cd `dirname $0' | # I deemed these problematic (variable assignments are safe)
cut -d ':' -f 1 | # Take the <file> from <file>:<line> produced by "grep -H"
tr '\n' '\0' | # Also here, spaces can be problematic - always do "xargs -0"!
xargs -0 -- sed -i '' 's/cd `dirname $0`/cd "`dirname "$0"`"/g'
The significance of adding the two levels of "'s can be verified by running the following in your Terminal:
$ node -e 'console.log(process.argv.splice(1))' -- `echo 1 2`
[ '1', '2' ]
$ node -e 'console.log(process.argv.splice(1))' -- "`echo 1 2`"
[ '1 2' ]
$ node -e 'console.log(process.argv.splice(1))' -- "`echo "1 2"`"
[ '1 2' ]
The linux tar whinges about unrecognised headers (though newer versions
include an option to not warn).
By building tar files without proprietary, we will be able to use
files.createTarball() in more places.
For example, undo commits 1c36bbaa79 and
1e2a40ef2b