build, deploy, --prepare-app, and --get-ready for now.
Make the error message more generic (not mention which commands
support the flag, because it will be basically "all" of them). Also
replace "breaking" with "potentially incompatible" as discussed with
Matt a while back.
Biggest change here is filtering out non-constraining constraints
when listing constraints. For example, when we list the constraints
on "underscore", don't list a ton of lines that just say "underscore <- accounts-password" and the like (with no actual constraint on underscore).
For example, these tests would have caught the `var p = pv.p` typo,
and also the place `costWeights` was incorrectly set to `1` in
Solver#minimize.
We also test that conflicting top-level constraints are not a
problem if the package they refer to does not need to be selected.
That's what we've been calling it.
To see this break and then work, add the following line above
the comment that begins `// lock down versions...`:
```
self.solution = logic.solveAssuming('bar');
```
And then run the test "previous solution no longer needed"
in input-tests.js.
The old code would lock down "bar", including the fact that it
is in the current solution. The new code only locks down the version
number in the case where "bar" is used, so it is able to be optimized
away.
This reverts commit 4a6dd52bca.
This made some tests flaky because notSpaceSensitive sometimes (but not
always!) ate the newline after the regexp.
We should just disable word wrapping in processes run by self-test
instead.
Turn recursive addClauses->useFormulaTerm->addClauses into iterative.
Also do a couple tweaks that seem to improve performance.
The "stack overflow bug" case is now hovering around 10-20 seconds.
(It's a failure case, but it sure takes a while to fail.)
This reverts commit 5d3cfa2d76, reversing
changes made to 2b466a9015.
Ah well, we tried to enable websocket compression again and ran into
more bugs.
First, newer versions of websocket-driver seem to sometimes send
duplicate close messages:
https://github.com/faye/faye-websocket-node/issues/41
This occurs whether or not deflate is actually used.
Second, in some circumstances permessage-deflate seems to completely
corrupt messages. This was reasonably easily observable by running
test-packages with Chrome, and seeing that sometimes (but not always) a
large number of bad JSON messages got printed to the client
console. (Another symptom was that the total number of tests would be
larger than it should be, leading to messages like "Passed 1109 of
1153", presumably because the test name got corrupted in some status
messages.) https://github.com/faye/permessage-deflate-node/issues/4
See #3007.
From running benchmarks while changing the code:
* It doesn't seem to slow things down to *always* try to "hit 0"
when minimizing
* It does seem to slow things down if the "<= 0" constraint is
expressed using <= instead of "forbid the terms with non-zero
weights"
This change also fixes a bug where we required terms with zero
weights to be 0.
I thought it would help me write a test for a bug that turned
up in code review, but it doesn't. Still, I'm sure it will be
useful.
Also, Logic.Solution#getFormula is something I've been wanting
to write for a while.