How to debug package constraint?

just updated some packages and now get this error when building. Seems like there is something missing from the error message as it doesn’t indicate what is conflicting. Any ideas?

   While selecting package versions:
   error: Potentially incompatible change required to top-level dependency:
   meteortesting:mocha 0.4.4, was 0.5.0.
   Constraints on package "meteortesting:mocha":
   
   To allow potentially incompatible changes to top-level dependencies, you
   must pass --allow-incompatible-update on the command line.

My packages has this:

...
meteortesting:mocha
...

versions

...
meteortesting:mocha@0.5.0
...

Figured out the issue. I had a local package meteormocha:browser-tests with a lower version than the required one. It wouldn’t allow the upgrade because of this. Would be nice if Meteor told me though!

What helped you figure out where the conflicting dependency came from?

Right now I’m looking at:

While selecting package versions:
error: Conflict: Constraint coffeescript@1.0.4 is not satisfied by coffeescript
2.0.3_1.
Constraints on package "coffeescript":
* coffeescript@2.0.3_1 <- top level
* coffeescript@1.0.4 <- zimme:active-route 2.3.2
* coffeescript@1.0.4 <- zimme:iron-router-auth 3.1.0
* coffeescript@1.2.3 <- meteorstuff:materialize-modal 1.1.3
* coffeescript@1.0.6 <- softwarerero:accounts-t9n 2.0.3
* coffeescript@1.0.6 <- webtempest:animate 0.1.9

But none of those packages appear to require a specific version of coffee script.

“meteor list --tree” isn’t helpful either:

meteor list --tree --weak |grep coffeescript@
coffeescript@1.12.7_3
├── coffeescript@1.12.7_3 (top level)
├── coffeescript@1.12.7_3 (top level)
├── coffeescript@1.12.7_3 (top level)
├── coffeescript@1.12.7_3 (top level)
├── coffeescript@1.12.7_3 (top level)

in my case it was simply that there were no packages listed so i figured out that was a local development package. your case is different, hopefully someone else can help with it.

I see.

I figured out that the conflicting constraints are coming from the downloaded atmosphere packages. E.g.:

$ grep -A1 coffeescript ~/.meteor/packages/zimme_active-route/2.3.2/os.json
      "package": "coffeescript",
      "constraint": "1.0.4"
$

Interestingly zimme:active-route’s package.js does not have a constraint on coffeescript. It just lists plain “coffeescript” as dependency.