{"push_id":1428930706,"size":1,"distinct_size":1,"ref":"refs/heads/fmthoma/print-conflict-set","head":"ad04e7496bdffa7ac3029f4d1351c41c7d6ddf13","before":"4839eaf8eed38522479477e447e17033283dbf6c","commits":[{"sha":"ad04e7496bdffa7ac3029f4d1351c41c7d6ddf13","author":{"name":"Franz Thoma","email":"049faf4d17569c4d4623f7c97f3fc590b0499a7b@tngtech.com"},"message":"Make error message clearer\n\nThe error displayed is the first error, which matches the first\nconflict set in the non-exhaustive case. In the exhaustive case,\nhowever, we display the last conflict set alongside the first error.\n\nThe change in the error message, »the rest of the dependency tree«,\nshould make it clearer that the error may not come from the final\nbranches of the dependency tree, but that there may be a lot of branches\nbeing traversed between the first error and the final conflict set, so\nthey may not be congruent.\n\n(Reasoning for displaying the first rather than the last error in the\nnon-exhaustive case: Both the first and the last error may be occur near\nthe leaves, so the conflict set may be incomplete. At the first\nbackjump, however, the conflicts are more likely to be relevant as the\nsolver has made fewer compromises at that point.\nIn the exhaustive case, this is not relevant as the final conflict set\nis located at the root, so the conflict set contains all the conflicts\nof a certain path through the tree. This is much more useful than the\nfirst conflict set.)\n\nExample:\n\n```\n> ./.stack-work/install/x86_64-linux-nix/ghc-8.0.1/8.0.1/bin/cabal install --dry-run cabal-install-1.24.0.0 cabal-install-1.22.9.0\nWarning: The package list for 'hackage.haskell.org' is 46 days old.\nRun 'cabal update' to get the latest list of available packages.\nResolving dependencies...\ncabal: Could not resolve dependencies:\nnext goal: cabal-install (user goal)\nrejecting: cabal-install-1.24.0.0 (constraint from user target requires\n==1.22.9.0)\nrejecting: cabal-install-1.22.9.0 (constraint from user target requires\n==1.24.0.0)\nrejecting: cabal-install-1.22.8.0, cabal-install-1.22.7.0,\ncabal-install-1.22.6.0, cabal-install-1.22.5.0, cabal-install-1.22.4.0,\ncabal-install-1.22.3.0, cabal-install-1.22.2.0, cabal-install-1.22.0.1,\ncabal-install-1.22.0.0, cabal-install-1.20.2.0, cabal-install-1.20.1.0,\ncabal-install-1.20.0.6, cabal-install-1.20.0.5, cabal-install-1.20.0.4,\ncabal-install-1.20.0.3, cabal-install-1.20.0.2, cabal-install-1.20.0.1,\ncabal-install-1.20.0.0, cabal-install-1.18.2.0, cabal-install-1.18.1.0,\ncabal-install-1.18.0.8, cabal-install-1.18.0.7, cabal-install-1.18.0.6,\ncabal-install-1.18.0.5, cabal-install-1.18.0.4, cabal-install-1.18.0.3,\ncabal-install-1.18.0.2, cabal-install-1.18.0.1, cabal-install-1.18.0,\ncabal-install-1.16.1.0, cabal-install-1.16.0.2, cabal-install-1.16.0.1,\ncabal-install-1.16.0, cabal-install-0.14.1, cabal-install-0.14.0,\ncabal-install-0.10.2, cabal-install-0.10.0, cabal-install-0.8.2,\ncabal-install-0.8.0, cabal-install-0.6.4, cabal-install-0.6.2,\ncabal-install-0.6.0, cabal-install-0.5.2, cabal-install-0.5.1,\ncabal-install-0.5.0, cabal-install-0.4.0 (constraint from user target requires\n==1.22.9.0)\nAfter searching the rest of the dependency tree exhaustively, these were the\ngoals I've had most trouble fulfilling: cabal-install (49)\n```","distinct":true,"url":"https://api.github.com/repos/fmthoma/cabal/commits/ad04e7496bdffa7ac3029f4d1351c41c7d6ddf13"}]}
{"actor":{"display_login":"fmthoma"}}