Skip to content
Snippets Groups Projects
This project is mirrored from https://github.com/haskell/Cabal. Pull mirroring updated .
  1. Apr 19, 2024
    • Matthew Pickering's avatar
      testsuite: Refactor withShorterPathForNewBuildStore · 2a2d0b30
      Matthew Pickering authored and Rodrigo Mesquita's avatar Rodrigo Mesquita committed
      This makes `withShorterPathForNewBuildStore` fit more nicely into the
      rest of the testing infrastructure.
      
      * Move `withShorterPathForNewBuildStore` to `TestM` monad
      * Move responsibility for passing `--store-dir` to `cabalGArgs` function
      * Move `findDependencyInStore` into `TestM`, and remove requirement to
        pass path to store directory.
      * Introduce `testStoreDir` function which returns the store location
        (and honours `withShorterPathForNewBuildStore`)
      * Migrate tests which use `withShorterPathForNewBuildStore`.
      2a2d0b30
  2. Apr 18, 2024
  3. Apr 17, 2024
  4. Apr 16, 2024
  5. Apr 15, 2024
  6. Apr 14, 2024
    • fendor's avatar
      Redesign 'cabal path' command to account for projects (#9583) · 4a8a7c5d
      fendor authored
      
      * Redesign 'cabal path' command to account for projects
      
      Previously, `cabal path` was only able to query from the global
      configuration file, e.g., `~/.cabal/config` or the XDG equivalent.
      Adding support for cabal project is a huge boost to usability.
      
      We take the foundations and turn them into `cabal v2-path` which takes
      project configuration, such as `cabal.project` into account.
      Note, the command is still named `cabal path`, but for the sake of
      disambiguation, we refer to this new iteration of the command as `cabal
      v2-path`.
      
      In addition, we add support for multiple output formats, such as
      key-value pairs and json.
      
      The key-value pair output prints a line for each queried key and its
      respective value:
      
          key1: value2
          key2: value2
      
      If only a single key is queried, we print only the
      value, for example:
      
          value1
      
      The json output format is versioned by the cabal-install version which
      is part of the json object.
      Thus, all result objects contain at least the key "cabal-install-version".
      
      We expand the `cabal v2-path` to also produce information of the
      compiler that is going to be used in a `cabal build` or `cabal repl` invocation.
      To do that, we rebuild the install plan and query for the configured
      compiler program.
      This is helpful for downstream tools, such as HLS, to figure out the GHC
      version required to compile a project with.
      
      We also add an exhaustive test suite for 'cabal path' cmd
      
      We test that each query honours cabal.project files, cli parameters, and
      is composable with the other query flags.
      
      We extend the test output normalisers for ghc compiler location and
      cabal-install version, as the 'cabal path' command outputs the exact ghc
      and ghc-pkg location. In addition, the json output format is versioned
      on the cabal-install version.
      
      Currently, we query the cabal-install version on each test normalisation
      run. This might be unnecessary expensive, and could be avoided by
      introducing a 'cabalProgram' that specifies how the program version can
      be found. This way, we can cache the version query.
      
      Add '--cache-home' flag thats shows the cabal's cache root
      
      Rename '--cache-dir' to the more correct '--remote-repo-dir'.
      
      * Update 'cabal path' documentation
      
      * Add changelog.d entry
      
      ---------
      
      Co-authored-by: default avatarmergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
      4a8a7c5d
  7. Apr 13, 2024
  8. Apr 12, 2024
  9. Apr 11, 2024
  10. Apr 09, 2024
  11. Apr 08, 2024
  12. Apr 07, 2024
  13. Apr 06, 2024
Loading