Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Show provenance of import constraint
With this change to the solver message rendering, I also fix some bugs around project imports, adding tests for those cases. Reviewers asked that the Y-shaped import checks (using IORef) be made on a separate pull request. Removing those lead to cascading deletions. - Regenerate expected .out files - Show tree provenance of import constraint - Add trimmed down PackageTests/VersionPriority - Add changelog entry - Use NonEmpty - Fix check for cyclical import - Use primes for next iteration - Remove unused LANGUAGE pragmas - Rename to projectConfigPathRoot - Docs for ProjectConfigPath and showProjectConfigPath - Renaming - Add cyclical import tests with 1 and 2 hops in cycle - Use full path for cyclical error message - Expected output has project with full project path - Add fullPath local function - Project directory as FilePath, not Maybe FilePath - Use (_, projectFileName) binding splitFileName - Need full path to project parsing legacy - Inline seenImports conversion - Add cyclical checks with same file names and hops - Add noncyclical tests that hop over folders - Add a project testing skipping in and out of a folder - Update expectations of cyclical tests - Use canonicalizePath for collapsing .. when possible - Capture trace for later - Add module for ProjectConfigPath - Move functions for ProjectConfigPath to its module - Fetch URI is not prefixed with ./https://etc - Document normaliseConfigPath - Add doctests for normaliseConfigPath - Add doctest of canonicalizeConfigPath - Show an example of canonical paths - Use importer and importee in canonicalizeConfigPaths - Add logging - Use normLocPath, drop -XMultiWayIf - Remove seenImports parameter from parseProject - Follow hlint suggestion: Move brackets to avoid $ - Follow hlint warning: Use mapM - Follow hlint warning: Use traverse_ - Follow hlint suggestion: Use <$> - Add failing test skipping across folder - Remove normaliseConfigPath - Add hasDuplicatesConfigPath - Remove lengthConfigPath and nubConfigPath - Mention cabal-install-solver in the changelog - Left align project import tree with other content - Rerun tests to generate left-aligned tree output - Don't show "constraint from project requires ..." - Regenerate test outputs without (constraint from project ...) - Move fail reason printing to project config path module - Minimize diff of showFR - Show an "imported by: " list instead of a tree - Update info logging, avoiding leading spaces - When logging I found leading spaces were trimmed - Don't log relative location and path - Use unicode tree symbol in haddocks - A duplicate importing tests - Add Y-forking import test - A test for detecting when the same config is imported via many different paths - Fix a typo with ../noncyclical-same-filename-b.config - Add an intercepting cabal-testsuite/cabal.project - Use IORef to detect seen imports - Get rid of seenImports - Use IORef [FilePath] of uniqueImports - Add consProjectConfigPath - Expand the haddocks of newtype ProjectConfigPath - Clarify, it's the project root directory - Rename a function to makeRelativeConfigPath - Fix whitespace - Update output snippet in changelog - Put the info logging together - Split cycles and duplicates detection - Add fixes and duplicate import to the change log - Better reporting of duplicate imports - Report cycles and duplicates using unique file name - This is after canonicalizeConfigPath, relative to the project directory - Get rid of fullLocPath, use normLocPath only - Do reporting using paths relative to the directory of the project - Issue a warning for Y-shaped duplicate imports - Add duplicateImportMsg - Use pretty printing for duplicate import message - Use pretty printing for all ProjectConfigPath printing - Drop a parameter from duplicateImportMsg - Correct haddocks on docProjectConfigPath - Satisfy fourmolu - Remove the surplus space in "imported by " - Log project parsing at the debug level, up from info - Simplify the changelog snippet - Use normalized paths for solver messages - Satisfy fourmolu - Relative to the directory of the project - Duplicate imports are reported as warnings - No need to mention v2-build - Remove IORef - Subdue a check for duplicate imports - TODO: Catch duplicates across different import paths. We know how to do this - Remove check for duplicate imports - Improve the canonicalizeConfigPath doctests - Add haddocks, drop configPath from go - Make importsBy NonEmpty - Use testDir in doctests - Use canonical test directory - Regenerate expected outputs - Assume head of the path is the duplicate - Get rid of duplicateImportMsg - Remove unused imports in ProjectConfigPath - Follow hlint suggestion: use fewer imports - Remove fullConfigPathRoot - Follow hlint suggestion: redundant bracket - Use the original "source" variable name - Put the source next to its contents - Go with the original "seenImports" variable name - Avoid -XMultiWayIf - Not needed since we aren't checking for duplicates right now - Be consistent in naming sources - Move project dir alongside related params - Rename to pathRequiresVersion - Add back "constraint from" - Talk only of cycles and not duplicates - Don't report line number for cyclical import - Remove 2nd example in changelog - Remove Y-forked duplicate import test - Add "imported by" to assertOutputContains - Cull excess doctests of canonicalizeConfigPath - Add deep path doctest - Update haddocks of canonicalizeConfigPath - remove idempotent speculation (it isn't idempotent) - use "indirection" to describe "." and ".." - makes the path relative to the given directory - Remove seenImports - Use Explicit ProjectConfigPath - Missed one "constraint from" in changelog example - Don't check (verbosity >= verbose) separately - While the same level of verbosity as info, it is clearer to not check the level separately. - Might calculate the path but not use it. - Add AbsoluteDir - Keep provenance normalised for display - Remove stale REVIEW comment - Storing provenance normalized avoids this - Fix whitespace - Satisfy HLint warning: Redundant flip - Gut the repo/hashable packages - Revert AbsoluteDir to FilePath
- Loading branch information