Commit Graph

9156 Commits

Author SHA1 Message Date
David Glasser
53a844770f version bump for rc11 release/GLASSER-TEST@2.0 release/METEOR-CORE@0.9.0-rc11 2014-08-21 18:45:08 -07:00
David Glasser
5fbb8bc9f1 help update for create --package 2014-08-21 18:45:08 -07:00
Emily Stark
3c6c51acd1 Add extra check in stats retrieval in test 2014-08-21 18:31:46 -07:00
Emily Stark
1852e7b2c0 Update test for new package stats format 2014-08-21 18:23:38 -07:00
Emily Stark
81a0a0c7e2 Update to new package stats format 2014-08-21 18:23:38 -07:00
Emily Stark
0c2dd7aff4 Change package stats server hostname 2014-08-21 18:23:37 -07:00
David Glasser
ceb8be5776 Remove distracting #web.browser from CS errors
You can get them back with $METEOR_SHOW_UNIBUILDS.
2014-08-21 17:53:37 -07:00
David Glasser
5295907f99 Make unknown package failure better
We throw a better (eg, constraintSolverError-tagged) "package not found"
at the appropriate spot later.
2014-08-21 17:47:00 -07:00
David Glasser
e36c4184ab fix old bundler test failure 2014-08-21 17:46:51 -07:00
David Glasser
bc1520cbdd great, now we can use parseConstraint 2014-08-21 17:09:36 -07:00
David Glasser
628be93f61 fix tests that tested lies! 2014-08-21 17:09:23 -07:00
David Glasser
5d5d1876da De-dup package name/constraint parsing code
Now we can all any of them from even before uniload is ready in the tool

I <3 symlinks
2014-08-21 17:00:21 -07:00
David Glasser
a9c740165c stop uniload packages from using versionsFrom
They don't need to and it won't work.
2014-08-21 16:52:02 -07:00
David Glasser
d6855456a2 Use buildmessage better in api.use, etc
Provide good messages when you provide invalid things to api.use and
api.imply.

Provide better message when you provide invalid things to
api.versionsFrom.

Drop "notInitialized" hack from catalog: now that we load things in
order, it's not necessary.  (This means life will break if you use
api.versionsFrom in a uniloaded package. So don't do that.)
2014-08-21 16:48:13 -07:00
David Glasser
2453820597 fix buildmessage errors within onUse/onTest
Adding buildmessage.markBoundary ensures that we don't display a stack
containing the call stack in the tool above this point.
2014-08-21 16:42:46 -07:00
David Glasser
5bc415c51a Improve package name/version parsing errors
We now throw more specific errors, consistent between both tools and
package-version-parser (copy-and-pasted code, sadly, but we really do
have to make this check before uniload-from-checkout).
2014-08-21 16:21:12 -07:00
David Glasser
c68e1489bd 'meteor create --package foo' in app DTRT
It puts the package in $APPROOT/packages/foo instead of ./foo.
2014-08-21 15:06:46 -07:00
ekatek
2f73eebf0a even better wording 2014-08-21 15:01:58 -07:00
ekatek
7f0e7eee67 even better wording 2014-08-21 15:00:48 -07:00
ekatek
d81bbefa22 better error message 2014-08-21 15:00:12 -07:00
ekatek
c89ff1fa25 check to make sure package names don't start with a dot 2014-08-21 13:49:36 -07:00
ekatek
e859266aaf changes, as per glasser's code review 2014-08-21 13:41:29 -07:00
Justin SB
625a87fe19 Avoid passing empty options, and defend against it if we do release/GLASSER-TEST@1.0-cs1 2014-08-21 12:01:23 -07:00
David Glasser
c926cf01f0 Cache minimal constraint versions 2014-08-21 11:39:01 -07:00
David Glasser
aa53f0bfd2 Simplify ConstraintsList data structure
It now no longer has N nested 2-element hashmaps; the 2-element split
happens at the top level in the JS object.  And a nested hash_map is now
just a set (it's great that we can rely on the interned-ness of
constraints!)

8% benchmark speedup and less code.
2014-08-21 11:31:27 -07:00
David Glasser
05b6277c97 delete unused field 2014-08-21 10:52:05 -07:00
David Glasser
ff3d3d0e82 delete unused methods 2014-08-21 10:51:00 -07:00
David Glasser
f1a50bbc93 show stack if error is unexpected 2014-08-21 10:48:20 -07:00
David Glasser
13f82bb09d Keep alternatives sorted
Instead of recalculating the "edge versions", just keep the list of
alternatives for each dep sorted and look at the first and last.

Provides another 25% speedup to the benchmark, deletes a lot of
code, *AND* removes the one part of the constraint solver that tries to
have a deep understanding of the different constraint types other than
the "is this constraint satisfied" function (ie, makes it easier to add
more constraint types later).
2014-08-21 10:45:44 -07:00
David Glasser
374c1cda45 Simplify "make trivial easy choices immediately"
Instead of having two different spots where we do special checks to see
if a piece of the state might have only one alternative, we just ensure
that the ResolverState itself always eagerly converts one-alternative
dependencies into choices.
2014-08-21 02:40:02 -07:00
David Glasser
75fcdf5d3e Refactor ConstraintSolver.Resolver
Factor out the "state" into its own class, ResolverState.  The big
difference from the previous state object: it actually explicitly tracks
the set of potential UnitVersions for every active dependency.  This
essentially replaces the DependencyList class.

Because we always know exactly how many options there are for a given
dependency, we can both generalize and simplify the "propagate
transitive exact deps" optimization.  That optimization only worked on
"foo@=1.2.3" dependencies, which meant it didn't apply in any other
situation where there was only one possible package to choose. But there
are a whole lot of other situations like that: local packages, packages
that just don't have many versions, packages that already have a lot of
constraints applied to them, etc.  By tracking the set of potential
alternatives, we can just make sure to always expand 1-alternative units
first. We also maintain the aspect of the optimization where we don't
need to call the cost function until we've actually gotten to a state
with multiple neighbors.

This keeps #2410 fixed as well.

I've removed the constraintAncestor support as part of this refactoring,
so some error messages may be worse than they were before. But this
should set me up pretty well to improve error messages tomorrow.
2014-08-21 01:28:55 -07:00
David Glasser
f96d00932b Merge branch 'constraint-solver-errors-ancestor' into release-0.9.0
Improves the #2410 fix to (at least for the particular case) be a little
less hacky: it's now OK if bad packages exist somewhere in the graph as
long as there's a way to avoid them.
2014-08-20 23:22:37 -07:00
David Glasser
6e325247d5 Prefer to explore local packages first
(Or other packages where there is literally one version in existence.)
2014-08-20 23:21:30 -07:00
David Glasser
e98cd49b3b A more specific error for nonexistent package
This helps with #2410 though that particular case doesn't work since
paths are explored in a bad order.
2014-08-20 23:21:30 -07:00
David Glasser
eb101e90b8 Also use mori for choices
Now there's no _.clone in resolver.js!
2014-08-20 23:21:30 -07:00
David Glasser
8d72be167b track ancestry as chain, not just root
switch constraintAncestor to be a nested mori.hash_map/mori.list
2014-08-20 23:21:30 -07:00
David Glasser
7e32a1cba4 Revert "one weird hack to maybe have better messages for nonexistent packages"
This reverts commit 75df1097e0.
2014-08-20 23:21:30 -07:00
David Glasser
4586d60e7d Revert "bad merge diffs"
This reverts commit 7946be9f9b.
2014-08-20 23:21:30 -07:00
Matthew Arbesfeld
d771fdbf2a Fix uniload for packages with plugins 2014-08-20 20:54:58 -07:00
David Glasser
080f6f60dd Lower version numbers of some third-party packages
We haven't yet decided how we want to do versioning for packages that
mostly just wrap non-Meteor code that has its own version numbers. We
might stick to totally-unrelated version numbers (and maybe add a
"wrapped version" field that gets displayed in the upgrade/downgrade
messages?), or change to matching upstream versions (with techniques for
dealing with changes to packaging, a la debian_revision), or something
different.

But since changing to match upstream versions is a possibility, let's
make sure that that operation won't be viewed as a "downgrade" by
updating the wrapped packages whose upstream versions are 0.*.
2014-08-20 17:14:57 -07:00
ekatek
7946be9f9b bad merge diffs 2014-08-20 16:20:29 -07:00
ekatek
75df1097e0 one weird hack to maybe have better messages for nonexistent packages 2014-08-20 16:19:24 -07:00
David Glasser
0bc445e8d2 Make slow operations more bearable with Patience
Introduces a "Patience" class which lets CPU-bound operations like the
constraint solver yield every so often, and print messages if an
operation (CPU-bound or not) are taken or not.
2014-08-20 15:49:58 -07:00
ekatek
019d3d289e don't crash when removing a nonexistent package 2014-08-20 15:20:22 -07:00
Emily Stark
4ce2888596 Change meetup /members URL.
Apparently secure.meetup.com doesn't work anymore.
2014-08-20 11:53:03 -07:00
David Glasser
6f1c74465b adjust which tests are from checkout 2014-08-19 19:34:26 -07:00
ekatek
b28a84cca2 wrap opennign server connection in a try/catch block from refresh 2014-08-19 18:47:37 -07:00
Matthew Arbesfeld
0df7bdc378 Fix client side reload race condition
There was a race condition between the bundle process and when we established
the client watch set. We now store the future for the old bundle process so
that it cannot be invalidated.
2014-08-19 18:38:36 -07:00
David Glasser
2866a2018f version bump for rc10 release/METEOR-CORE@0.9.0-rc10 2014-08-19 17:31:18 -07:00
ekatek
ff8498dd1b mark tests from checkout if they use the test server due to release duplication issues 2014-08-19 17:07:53 -07:00