Commit Graph

121 Commits

Author SHA1 Message Date
David Glasser
9bda5a5bb1 remove unnecessary metadata files 2015-07-16 14:24:44 -07:00
Slava Kim
dcf0a3a9f2 Add a test of custom minifiers 2015-07-16 14:03:19 -07:00
David Glasser
cf737183ca Change import subdirectory name to 'imports'
@dgreensp:

    The more I think about it, the more I don't like naming a directory
    after a singular noun like `import`.  We have `packages/` already,
    and I want to put my modules in a directory called `modules/`, not
    `module/`, just like I don't want to put my assets in `asset/`, or
    my stylesheets in `stylesheet/`, etc.  It's ok to have a singular
    suffix and a plural directory name: to have `.import` files go in
    `imports` or `.template` files go in `templates`.  Directory names
    like `doc` and `lib` follow an old Unix convention of three-letter
    names.  And if the `import` directory name is actually a verb, not a
    noun, that is confusing because putting files in the `import`
    directory does not import them.  It just causes them to be
    considered imports (noun).
2015-07-16 12:48:53 -07:00
Slava Kim
c1e7f76d38 Fix the CSS splitting test 2015-07-16 11:12:24 -07:00
David Glasser
f9ac25dd6b use new names in stylus test 2015-07-16 00:45:05 -07:00
David Glasser
bdf1968ceb Change less heuristic back to default-process
In addition to the old `*.lessimport` and `*.import.less` mechanisms for
telling the `less` package that a file isn't a root, you can also put it
in an `import` subdirectory or pass `{isImport: true}` to
`api.addFiles`. We no longer will need to rename every less file when we
upgrade.

Next commit will revert the changes to examples and docs.
2015-07-16 00:29:19 -07:00
Slava Kim
c0cf8b078b A WIP test to check CSS splitting in minifier working 2015-07-15 19:15:33 -07:00
David Glasser
53038bf544 test getExtension() === null 2015-07-15 00:30:29 -07:00
David Glasser
bb0880c381 Fix and test registerCompiler addAsset 2015-07-14 23:55:49 -07:00
David Glasser
0629678414 Use registerCompiler via isobuild:compiler-plugin
Previously, registerCompiler was enabled by the *real* package
`compiler-plugin`, which arranged to only be available in versions of
the tool that support registerCompiler via... well, mostly via wishful
thinking.

Now this is implemented via a fake package called
isobuild:compiler-plugin. "isobuild" is a real Atmosphere organization
that will never publish any packages. The tool pretends that packages
isobuild:compiler-plugin@1.0.0, isobuild:linter-plugin@1.0.0, and
isobuild:minifier-plugin@1.0.0 exist, and carefully arranges for them to
be avoided in the actual process of building and app; they just are
referenced in Version Solver.

When we add future features like this, users of this version of Meteor
who try to depend on packages that need the feature will get a nice
error message pointing to
https://github.com/meteor/meteor/wiki/Isobuild-Feature-Packages

Users of current versions of Meteor who try to depend on packages that
require isobuild:compiler-plugin will get a slightly confusing message
about isobuild:compiler-plugin not existing.  Users of current versions
of Meteor who try to depend on packages only some of whose versions
require isobuild:compiler-plugin will get a version that doesn't require
it.
2015-07-14 10:30:42 -07:00
David Glasser
66e8b7bcfc fix run --once test 2015-07-13 16:14:59 -07:00
Slava Kim
8900a8abfd WIP fixing minifiers 2015-07-13 15:59:13 -07:00
Slava Kim
43a86ebbee Fix the linting command for a single package
and adjust the test to reflect that we should get an output for Cordova too
2015-07-13 11:41:38 -07:00
Slava Kim
d6ae4b8a1f Tests for linting 2015-07-10 20:37:07 -07:00
David Glasser
51296bbd39 add test app missing from 70cc03cfbf 2015-07-06 19:36:47 -07:00
David Glasser
70cc03cfbf catch errors running registerCompiler callback
also, add XXX comments about the (very old) issue that source map
filenames are wrong for plugin files
2015-06-30 02:23:44 -07:00
David Glasser
ef04a21dfd better error if published source has no handler 2015-06-30 01:38:37 -07:00
David Glasser
05366ab5c2 fix duplicate compiler extension errors
There are a few different times when we detect duplicate compiler
extensions.
(a) We detect them in Plugin.registerCompiler if a single
    isopack itself registers duplicate extensions.
(b) When compiling a unibuild in compiler.compile, we check to see if a unibuild's
    plugin-providing dependencies overlap.
(c) When preparing a unibuild for bundle-time source processing, we
    check the same condition.

(Why do we need to re-check in (c)? If a unibuild was published and
passed (b) at publish time but is being bundled with different versions
of dependencies, it might fail (c).)

There were a few fixes here:

- In compiler.js (b), if we detected a duplicate extension, the code to get
  the name of the conflict package was wrong and could throw.
- In compiler-plugin (c), we just weren't using buildmessage.

With just those fixes, we would actually see *both* kind of errors show
up if the error was in the app rather than a package, because
bundler.bundle didn't actually bail out on error after compiler.compile!
So we added that fix too, with a relatively conservative WatchSet.
2015-06-30 01:18:05 -07:00
David Glasser
fc87db45ac test disk cache 2015-06-30 00:21:11 -07:00
David Glasser
dd548edd72 less: better error for unknown @import
also, fix coffee/less self-test
2015-06-30 00:09:42 -07:00
Slava Kim
8281b32465 Implement lru in-memory caching for stylus 2015-06-29 15:23:51 -07:00
David Glasser
61d4be9940 fix source map test for better world
"app/" in stack traces was an artifact of how we lay out files in the
built server, not how the source files are laid out, and isn't actually
as good as just using the source file name.  Slava improved this on this
branch by just using the real file name. So the test (newly merged from
devel) needs to be improved to match.

While we're at it, let's test for filenames in a package.
2015-06-27 00:00:24 -07:00
David Glasser
919be97b6f Merge branch 'devel' into batch-plugins
Resolves these conflicts:
	meteor
	scripts/dev-bundle-server-package.js
	scripts/dev-bundle-tool-package.js
	tools/files.js

This requires building a new dev bundle, and moving the wrapCallSite
thing to source-map-retriever-stack.js.
2015-06-26 23:24:56 -07:00
Slava Kim
a2a8013032 A self-test for testing stylus 2015-06-24 20:27:57 -07:00
Sashko Stubailo
86e616e593 Add app that I forgot to add in the last commit 2015-06-23 21:32:13 -07:00
Sashko Stubailo
312663db67 Transpile the Meteor command line tool with Babel
- Uses Ben's meteor-babel npm package that has a default config
- From a checkout, uses the meteor-babel/register module and compiles at runtime
- When meteor-tool is published, precompiles the files
- Adds tests to make sure source maps work everywhere
2015-06-23 14:32:49 -04:00
Slava Kim
3c7a86fc3c Tests for minifiers errors 2015-06-16 11:57:29 -07:00
David Glasser
cef1a77691 test caching for local plugins 2015-06-09 00:02:34 -07:00
David Glasser
774b9754ec Test less caching, and improve client refresh
Specifically, ensure that we don't even include client-specific files in
the server WatchSet by making sure we pass a precise set of extensions
to initFromAppDir.  We still also rule out wrong-arch files at a later
stage too (because sourceExtensions only affects initFromAppDir).

Without the change to compiler.js, the final test (adding
yet-another-root.main.less) restarts the server rather than printing
"Client modified -- refreshing".
2015-06-08 22:41:55 -07:00
David Glasser
456d19a65e coffeescript self-test w/ local package file 2015-06-08 21:02:48 -07:00
David Glasser
01404de8fe start of a self-test showing coffee/less caching
doesn't do less yet
2015-06-04 22:49:42 -07:00
Bartosz Wojtkowiak
1f2f584fe8 realtive path of cordova plugin should be relative to meteor project 2015-05-21 18:02:14 -07:00
Bartosz Wojtkowiak
d978ad4493 fixes according to comments from PR#4229 2015-05-21 18:02:06 -07:00
Bartosz Wojtkowiak
cd28950846 Cordova: support for local plugins 2015-05-21 18:01:48 -07:00
David Glasser
9039e6b2da FIx mongo failover self-test
mongo now transitively uses webapp (because ddp-server does) so we can't
really make an app with mongo and no webapp.  This is a bit of a shame
and when we refactor the mongo package we should fix this... but until
then, let's just remove the no-longer-necessary main function and be OK
with this test running a pointless web server.
2015-04-16 12:49:40 -07:00
David Glasser
779f942aa3 Improvements to hot-code-push test
This test had been somewhat flaky.  It seems to be less flaky now.
Changes include:

- Trying to not send the client->server logging RPC if the client is
  about to reload due to autoupdate
- Making sure that the client doesn't send anything at all until a
  little bit after starting, in order to make the ordering of messages
  between tool-printed and server-printed messages more predictable

Also updated from standard-app-packages to meteor-tool.
2015-04-02 16:45:39 -04:00
David Glasser
a1e002a250 meteor run sees changes to .meteor/versions
`meteor run` doesn't always write changes to `.meteor/versions`: it only
does so if its release (or checkout-ness) matches `.meteor/release`.  So
it preferred to just remember the value of `.meteor/versions` from
rebuild to rebuild rather than forgetting what it knew and re-reading
the possibly-not-updated file.

However, if some other process changes `.meteor/versions`, it would
ignore that change.  With this fix, if `.meteor/versions` changes then
that is considered to be the previous versions list, not the last
version list from the same process.  For example, this would commonly
happen due to using `meteor update` to update packages (without changing
the tool, which would cause the runner to stop).

Fixes #3582.
2015-04-01 14:39:46 -04:00
David Glasser
63a0076305 mongo: provide direct access to node driver db
Specifically, Mongo.Collection objects on the server now have
rawCollection and rawDatabase methods.

You can use MongoInternals.NpmModules.mongodb.version to tell what
version of the mongodb npm module is the backend for HTTP.call.  This
version may change incompatibly from version to version of Meteor; use
at your own risk.  (For example, we expect to upgrade from the 1.4.x
series to the 2.x series in the not-too-distant future.)

Fixes #3640.
2015-03-05 17:12:37 -08:00
Slava Kim
9187dc2129 Fix one npm self-test on Windows 2015-03-05 15:54:37 -08:00
Slava Kim
5948763bbb More windows cordova tests, fixes for every command 2015-02-05 16:07:49 -08:00
David Glasser
0befea50f2 Delete versions.json files; they are no longer used 2014-12-19 11:34:07 -08:00
David Glasser
79527ccd9c Don't crash on circular dependency
Previously, we would register the circular dependency error properly
with buildmessage, but then try to build the package with a circular
dependency anyway, leading to a crash.

Fixes #3280.
2014-12-11 21:31:41 -08:00
David Glasser
6ea8443f30 Update calls to addFiles, onUse, and onTest 2014-12-09 20:18:31 -08:00
David Glasser
e7bfa5202e Update packages to use Package.registerBuildPlugin 2014-12-09 20:09:34 -08:00
David Glasser
7d4757b3ac Show package changes and prerelease warnings
This reimplements functionality that had been removed as part of the
`isopack-cache` branch refactoring.

Information about package changes is encapsulated inside a
PackageMapDelta object on the ProjectContext.  It is the responsibility
of the command that prepares the ProjectContext to choose to call
projectContext.packageMapDelta.displayOnConsole at the appropriate time
if it wishes to display changes.

Part of #3006.
2014-12-01 01:26:35 -08:00
David Glasser
4a5636b8fd remove more remnants of 'programs' directory 2014-11-25 09:06:28 -08:00
David Glasser
3b7459e62a start on self-test. file 'run' passes 2014-11-25 09:06:27 -08:00
Emily Stark
97c85bc3da Exit 'meteor run' when cordova plugins or platforms change.
We don't have a way to HCP a changed set of plugins or platforms, so
just exit and ask the user to re-run. There are probably some cases
where we don't have to exit (e.g. if you add the android platform, we
probably don't need to exit out of 'meteor run ios'), but we exit in all
cases for simplicity.
2014-10-21 15:59:40 -07:00
ekatek
7f134bdfb4 changed the test to catch that we fail to not link in the export variable 2014-10-08 22:06:47 -07:00
David Glasser
3faf1aa21e make test more convincing 2014-10-07 18:26:21 -07:00