Skip to content
Snippets Groups Projects
This project is mirrored from https://github.com/haskell/Cabal.git. Pull mirroring updated .
  1. Jun 16, 2025
    • Matthew Pickering's avatar
      Implement v2-outdated command for cabal-install · 8b9c274e
      Matthew Pickering authored and Mikolaj Konarski's avatar Mikolaj Konarski committed
      This commit updates the outdated command to the new v2 architecture:
      
      - Transform the old `outdated` command into a new v2-style command `v2-outdated`
      - Support three modes of operation:
        - Check for outdated dependencies in v1-style freeze file
        - Check for outdated dependencies in project context (cabal.project & cabal.project.freeze)
        - Check for outdated dependencies in local packages
      
      Since the `cabal outdated` command now supports the v2-architecture, you
      can request to run the `v2-outdated` command on any target.
      
      I also introduced the `resolveTargetsFromLocalPackages` which resolves
      which local packages targets refer to without having to run the solver.
      This will be useful for `cabal check` as well.
      
      A change in behaviour from before is that the package description is
      flattened, so all bounds will be warned about rather than those in
      conditional branches being ignored.
      
      Fixes #8283
      8b9c274e
    • Matthew Pickering's avatar
      Refactor resolveTargets to allow resolving targets from a PackageDescription · 0f1f67cb
      Matthew Pickering authored and Mikolaj Konarski's avatar Mikolaj Konarski committed
      This commit refactors `resolveTargets` to allow you to either resolve
      targets from
      
      * The output of the solver by `resolveTargetsFromSolver`
      * The package descriptions `resolveTargetsFromLocalPackages`
      
      This allows you to use `v2-` infrastructure with commands which don't
      require running the solver step (for example, v2-outdated).
      0f1f67cb
    • mergify[bot]'s avatar
      Merge pull request #10845 from haskell/wip/10726 · c947766e
      mergify[bot] authored
      plan.json: Include compiler-abi field
      c947766e
    • Matthew Pickering's avatar
      plan.json: Include compiler-abi field · 642cf20a
      Matthew Pickering authored
      The plan.json file was missing crucial information needed to locate
      packages in the store directory structure. When cabal-install stores
      packages, it uses a full compiler identifier including an ABI tag (e.g.,
      "ghc-9.10.1-69c3") but plan.json only included the basic compiler ID
      ("ghc-9.10.1"). This made it impossible for external tools like
      cabal-plan to correctly locate packages and their files in the store.
      
      This commit adds a new "compiler-abi" field with the ABI tag string
      
      The issue reported in the original ticket seems to be about the location
      of LICENSE files, but the plan.json may still lack sufficient
      information to locate all license files since the packages may not be
      located in the store, but in different package databases given by
      the --package-db flag.  This will do for now.
      
      Fixes #10726
      642cf20a
  2. Jun 14, 2025
    • mergify[bot]'s avatar
      Merge pull request #10880 from haskell/wip/10181 · 42001163
      mergify[bot] authored
      multi-repl: Support module renaming for ghc-9.12 onwards
      42001163
    • Matthew Pickering's avatar
      multi-repl: Support module renaming for ghc-9.12 onwards · 2be50814
      Matthew Pickering authored and Mikolaj Konarski's avatar Mikolaj Konarski committed
      In ghc-9.12 the -rexported-module flag was extended to add support for
      module renaming.
      
      Therefore now if a module uses a module renaming, then the
      -reexported-module flag is passed the renaming.
      
      Fixes #10181
      2be50814
    • mergify[bot]'s avatar
      Merge pull request #10840 from haskell/wip/v2-gen-bounds · f805d5d6
      mergify[bot] authored
      Implement v2-gen-bounds function
      f805d5d6
    • Matthew Pickering's avatar
      Implement v2-gen-bounds function · b41f09a1
      Matthew Pickering authored and Mikolaj Konarski's avatar Mikolaj Konarski committed
      This commit implements project-aware functionality for the `cabal gen-bounds` command,
      allowing it to work correctly in multi-package projects. Previously, running `gen-bounds`
      from within a package directory that depends on another local package would fail
      because it couldn't find the local dependency.
      
      The implementation follows the same pattern as other v2 commands, creating a full
      project context that knows about all packages defined in the cabal.project file.
      This allows `gen-bounds` to properly analyze dependencies between local packages
      and suggest appropriate bounds.
      
      ```
      cabal gen-bounds <TARGET>
      ```
      
      Fixes #7504 #8654 #9752 #5932
      b41f09a1
  3. Jun 12, 2025
  4. Jun 07, 2025
  5. Jun 05, 2025
  6. May 24, 2025
    • mergify[bot]'s avatar
      Merge pull request #10817 from haskell/wip/investigate-recomp · 55aba141
      mergify[bot] authored
      Fix PATH changes not triggering REPL reconfiguration (#2015)
      55aba141
    • Matthew Pickering's avatar
      Fix PATH changes not triggering REPL reconfiguration (#2015) · cf4083b4
      Matthew Pickering authored and Mikolaj Konarski's avatar Mikolaj Konarski committed
      When a user's PATH environment variable changes between Cabal commands,
      the environment in the REPL becomes incorrect. This occurs because
      during initial package configuration, the current PATH is captured via
      `programSearchPathAsPATHVar` and then stored in the `programOverrideEnv`
      field of a ConfiguredProgram. These `ConfiguredProgram`s are subsequently
      serialized into the setup-config file, effectively baking in the PATH
      environment from the time of configuration.
      
      The issue manifests when `PATH` is updated after initial configuration.
      Although the solver re-runs when detecting `PATH` changes, the
      `dryRunLocalPkg` function examines `ElaboratedConfiguredPackage` and
      incorrectly determines that nothing has changed that would require
      reconfiguration. This decision is incorrect because `setup-config` now
      contains a stale reference to the original `PATH` value, which no longer
      matches the current environment.
      
      To fix this problem, we need to store the `ConfiguredProgram`s directly in
      `ElaboratedConfiguredPackage`. This approach will ensure that when `PATH`
      changes, the `ConfiguredProgram`s will also change, properly triggering
      reconfiguration. While this solution will cause more recompilations when
      `PATH` changes, it guarantees that the correct environment is always used
      during builds and REPL sessions.
      
      An alternative approach would be to stop baking the `PATH` variable into
      the environment of programs, but this would require more substantial
      changes to how Cabal manages environment variables.
      
      Fixes #2015
      cf4083b4
    • mergify[bot]'s avatar
      Merge pull request #10967 from zlonast/jsp-options · 824735d7
      mergify[bot] authored
      Adding JavaScript Preprocessor Support
      824735d7
  7. May 21, 2025
  8. May 18, 2025
  9. May 17, 2025
  10. May 14, 2025
  11. May 13, 2025
  12. May 11, 2025
  13. May 10, 2025
  14. May 02, 2025
  15. Apr 30, 2025
  16. Apr 27, 2025
  17. Apr 26, 2025
  18. Apr 25, 2025
  19. Apr 23, 2025
  20. Apr 22, 2025
  21. Apr 16, 2025
Loading