Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add more breadcrumbs for how to use remote packages. documentation change only. #9386

Merged
merged 71 commits into from
Dec 2, 2023

Commits on Oct 31, 2023

  1. Configuration menu
    Copy the full SHA
    18e39bf View commit details
    Browse the repository at this point in the history

Commits on Nov 1, 2023

  1. Configuration menu
    Copy the full SHA
    00e2718 View commit details
    Browse the repository at this point in the history

Commits on Nov 2, 2023

  1. Update doc/cabal-project.rst

    reword.
    julialongtin authored Nov 2, 2023
    Configuration menu
    Copy the full SHA
    46da089 View commit details
    Browse the repository at this point in the history
  2. Update doc/cabal-project.rst

    reword.
    julialongtin authored Nov 2, 2023
    Configuration menu
    Copy the full SHA
    a5f0253 View commit details
    Browse the repository at this point in the history
  3. Update doc/cabal-project.rst

    clearer.
    julialongtin authored Nov 2, 2023
    Configuration menu
    Copy the full SHA
    88768cb View commit details
    Browse the repository at this point in the history
  4. Update doc/cabal-project.rst

    clearer!
    julialongtin authored Nov 2, 2023
    Configuration menu
    Copy the full SHA
    03ec810 View commit details
    Browse the repository at this point in the history
  5. Update doc/cabal-project.rst

    good mechanical description.
    julialongtin authored Nov 2, 2023
    Configuration menu
    Copy the full SHA
    9dee2a1 View commit details
    Browse the repository at this point in the history

Commits on Nov 3, 2023

  1. wrap.

    julialongtin committed Nov 3, 2023
    Configuration menu
    Copy the full SHA
    6262ddc View commit details
    Browse the repository at this point in the history

Commits on Nov 4, 2023

  1. Update doc/cabal-project.rst

    add missing double ticks.
    julialongtin authored Nov 4, 2023
    Configuration menu
    Copy the full SHA
    ad6d340 View commit details
    Browse the repository at this point in the history

Commits on Nov 26, 2023

  1. Configuration menu
    Copy the full SHA
    99a3790 View commit details
    Browse the repository at this point in the history

Commits on Dec 2, 2023

  1. Configuration menu
    Copy the full SHA
    0aa249b View commit details
    Browse the repository at this point in the history
  2. doc: render math with HTML to make it selectable (fix #8453) (#9361)

    * doc: render math with HTML to make it selectable (fix #8453)
    
    * Update doc/conf.py
    
    Co-authored-by: Bryan Richter <bryan@haskell.foundation>
    
    ---------
    
    Co-authored-by: Bryan Richter <bryan@haskell.foundation>
    Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
    3 people authored and julialongtin committed Dec 2, 2023
    Configuration menu
    Copy the full SHA
    547d4e1 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    8a06e9e View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    f77f140 View commit details
    Browse the repository at this point in the history
  5. Ignore CmmSourcesExe Demo

    Ignore because it warns about missing MachDeps.h
    philderbeast authored and julialongtin committed Dec 2, 2023
    Configuration menu
    Copy the full SHA
    a70382f View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    37ab658 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    0425f5e View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    d140693 View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    f9d472e View commit details
    Browse the repository at this point in the history
  10. Revert #3639 (Don't pass -package-db and -package flags to --abi-hash) (

    #9384)
    
    * Revert #3639 (Don't pass -package-db and -package flags to --abi-hash)
    
    With ghc>=9.6 `ghc --abi-hash` initialises the plugins so it will fail
    if a cabal file specifies `ghc-options: -fplugin=Foo`.
    
    Closes: #9375
    
    * Also revert in GHC.hs
    
    ---------
    
    Co-authored-by: Hamish Mackenzie <Hamish.K.Mackenzie@gmail.com>
    Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
    3 people authored and julialongtin committed Dec 2, 2023
    Configuration menu
    Copy the full SHA
    315fd08 View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    c7f0909 View commit details
    Browse the repository at this point in the history
  12. Restructure Cabal documentation top-level parts

    The goal is for users to easier find pages for typical problems through search engines and page navigation.
    - The top-level layout is based on the popular documentation structure by https://documentation.divio.com/ to give a
       clear structure to users and future documentation contributors:
      * Guides: Present a solution to a single, atomic, typical user problem.
      * Reference: Describe user API (CLI fields, syntax etc) with technical rigour and completeness.
      * Explanation: Discuss background information, scope, design decisions etc.
    - Move existing documentation roughly into these categories with minimal editing as the basis for further editing.
    - Rename guide titles to mention how-to for improving SEO.
    - Rename some files to improve SEO since that name becomes part of the URL (often called slug).
      Important page keywords should appear in the slug as well to make pages rank higher in search engines.
    malteneuss authored and julialongtin committed Dec 2, 2023
    Configuration menu
    Copy the full SHA
    902c919 View commit details
    Browse the repository at this point in the history
  13. Configuration menu
    Copy the full SHA
    9103d5e View commit details
    Browse the repository at this point in the history
  14. Configuration menu
    Copy the full SHA
    4ce4e48 View commit details
    Browse the repository at this point in the history
  15. Do not run CI for documentation changes

    The github workflows are not run if the
    changes are completely contained within
    the doc/ subdirectory. The only exception
    is the users-guide.yml github action.
    BinderDavid authored and julialongtin committed Dec 2, 2023
    Configuration menu
    Copy the full SHA
    c4d0a03 View commit details
    Browse the repository at this point in the history
  16. Move Backpack section to user guides

    David Binder authored and julialongtin committed Dec 2, 2023
    Configuration menu
    Copy the full SHA
    653e874 View commit details
    Browse the repository at this point in the history
  17. Remove TBW virtual modules section

    David Binder authored and julialongtin committed Dec 2, 2023
    Configuration menu
    Copy the full SHA
    c79eeb1 View commit details
    Browse the repository at this point in the history
  18. Configuration menu
    Copy the full SHA
    413f336 View commit details
    Browse the repository at this point in the history
  19. Record install options

    philderbeast authored and julialongtin committed Dec 2, 2023
    Configuration menu
    Copy the full SHA
    4c63a98 View commit details
    Browse the repository at this point in the history
  20. Reject index-states after last known index-state (#8944)

    Co-authored-by: Javier Sagredo <jasataco@gmail.com>
    Co-authored-by: Andrea Bedini <andrea.bedini@tweag.io>
    Co-authored-by: Andrea Bedini <andrea@andreabedini.com>
    3 people authored and julialongtin committed Dec 2, 2023
    Configuration menu
    Copy the full SHA
    13247e8 View commit details
    Browse the repository at this point in the history
  21. Configuration menu
    Copy the full SHA
    9a27b91 View commit details
    Browse the repository at this point in the history
  22. Use comma with then

    Co-authored-by: Artem Pelenitsyn <a.pelenitsyn@gmail.com>
    2 people authored and julialongtin committed Dec 2, 2023
    Configuration menu
    Copy the full SHA
    3c8d79b View commit details
    Browse the repository at this point in the history
  23. Use narrow rather than upset

    philderbeast authored and julialongtin committed Dec 2, 2023
    Configuration menu
    Copy the full SHA
    4e65005 View commit details
    Browse the repository at this point in the history
  24. Configuration menu
    Copy the full SHA
    591e49b View commit details
    Browse the repository at this point in the history
  25. Fix AutogenModulesToggling test

    By converting this to a setupTest we use the in-tree Cabal library
    rather than relying on a proxy of the GHC version to provide the right
    Cabal library version.
    
    Supersedes #9398
    mpickering authored and julialongtin committed Dec 2, 2023
    Configuration menu
    Copy the full SHA
    f382433 View commit details
    Browse the repository at this point in the history
  26. Configuration menu
    Copy the full SHA
    811ba61 View commit details
    Browse the repository at this point in the history
  27. Add dependencies used by PackageTests to exe:cabal-tests

    The runner allows the tests to use extra dependencies and the custom Prelude
    from 'cabal-testsuite'.
    However, if the tests use a dependency, say 'directory', and there are two
    packages with the same unit id available in the store, the test fails since
    it doesn't know which one to pick.
    By including an extra dependency to directory, we force the test runner to
    use a specific version directory, fixing the test failure.
    fendor authored and julialongtin committed Dec 2, 2023
    Configuration menu
    Copy the full SHA
    78c1c24 View commit details
    Browse the repository at this point in the history
  28. Use Paths_cabal_install for cabal-install version number (#9421)

    * Use PackageInfo for cabal-install version number
    
    * Use Paths_cabal_install instead
    
    * Adjust documentation
    
    ---------
    
    Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
    2 people authored and julialongtin committed Dec 2, 2023
    Configuration menu
    Copy the full SHA
    d36b9f1 View commit details
    Browse the repository at this point in the history
  29. Configuration menu
    Copy the full SHA
    2ca9349 View commit details
    Browse the repository at this point in the history
  30. Add test requirement to PR template

    Adding test becomes a checkmark instead of “bonus points”.
    ffaf1 authored and julialongtin committed Dec 2, 2023
    Configuration menu
    Copy the full SHA
    914b090 View commit details
    Browse the repository at this point in the history
  31. A 'cabal path' command. (#8879)

    * Add a 'cabal path' command.
    
    * Formatting fix.
    
    * Another formatting fix.
    
    * Categorise "cabal path" as global command.
    
    * Allow individual paths to be printed.
    
    * Less duplication.
    
    * Add config-file to "cabal path".
    
    * Use sum type instead of strings.
    
    * cabal path: support --installdir.
    
    * Add documentation.
    
    * Better text.
    
    * Formatting.
    
    * Add some tests.
    
    * Improve tests.
    
    * Add changelog entry.
    
    * Mention "cabal path" in directory documentation.
    
    ---------
    
    Co-authored-by: Artem Pelenitsyn <a.pelenitsyn@gmail.com>
    2 people authored and julialongtin committed Dec 2, 2023
    Configuration menu
    Copy the full SHA
    cede294 View commit details
    Browse the repository at this point in the history
  32. Reimplement cabal check (#8427)

    * Fix Semigroup target instance
    
    When two target names are the same, `mappend`ing them should not
    error but just pick the first name.
    
    * Add `desugarBuildToolSimple`
    
    * Reimplement cabal check
    
    * Reorder test output
    
    * Fix autogen modules tests .cabal files
    
    * Add a number of tests
    
    * Add test for #7423
    
    i.e. Do not warn on -O2 if under off-by-default package configuration
    flag conditional.
    
    * Add a regression for:
    
        * Add another -WErrr test
            This is to make sure we do *not* report it if it is under
            a user, off-by-default flag.
        * Add test for non manual user flags.
        * Add “absolute path in extra-lib-dirs” test
        * Add if/else test
        * Add “dircheck on abspath” check
        * Add Package version internal test
        * Add PackageVersionsStraddle test
    
    * Add changelog for #8427
    
    * Integrate various reviews
    
    * Integrate Artem’s review
    
    (review) Clarify `combineNames` documentation
    
    By explaining the way it operates (working if the two names are equal
    or one is empty) and renaming the function from `combineName` to
    `combineNames`.
    
    (review) Use guards instead of if/then/else
    
    (review) Match inside argument list
    
    (review) Replace “white” with “allow”
    
    (review) Fix typo in comment
    
    (review) Fix typo in Check module documentation
    
    (review) Harmonise indentation for `data` decls
    
    First field goes in a new line than the data constructor, so we
    have more space.
    
    (review) Rename `Prim` module to `Types`
    
    (review) Add checkPackageFilesGPD
    
    `checkPackageFiles` — which works on PD — was used to perform IO. We
    introduce a function that does the same thing but works on GPD (which
    is more principled).
    
    `checkPackageFiles` cannot just be removed, since it is part of the
    interface of Distribution.PackageDescription.Check. Deprecation can
    be planned once “new check” is up and running.
    
    * Integrate Andreas’ review
    
    (review) Add named section to missing upper bound check
    
    “miss upper bound” checks will now list target type and name (“On
    executable 'myexe', these packages miss upper bounds”) for easier
    fixing by the user.
    
    (review) remove `cabal gen-bounds` suggestion
    
    Reasonable as `cabal gen-bounds` is stricter than `cabal check`, see
    #8427 (comment)
    Once `gen-bounds` behaves in line with `check` we can readd the
    suggestion.
    
    (review) Do not warn on shared bounds
    
    When a target which depends on an internal library shares some
    dependencies with the latter, do not warn on upper bounds.
    
    An example is clearer
    
        library
         build-depends: text < 5
        ⁝
         build-depends: myPackage,        ← no warning, internal
                        text,             ← no warning, shared bound
                        monadacme         ← warning!
    
    * Integrate Artem’s review /II
    
    (review) Split Check.hs
    
    Check.hs has been split in multiple file, each une sub 1000 lines:
    
    Check              857 lines
    Check.Common       147 lines
    Check.Conditional  204 lines
    Check.Monad        352 lines
    Check.Paths        387 lines
    Check.Target       765 lines
    Check.Warning      865 lines
    
    Migration guide:
    - Check              GPD/PD checks plus work-tree checks.
    - Check.Common       common types and functions that are
                         *not* part of monadic checking setup.
    - Check.Conditional  checks on CondTree and related matter
                         (variables, duplicate modules).
    - Check.Monad        Backbone of the checks, monadic inter-
                         face and related functions.
    - Check.Paths        Checks on files, directories, globs.
    - Check.Target       Checks on realised targets (libraries,
                         executables, benchmarks, testsuites).
    - Check.Warning      Datatypes and strings for warnings
                         and severities.
    
    (review) remove useless section header
    
    (review) Fix typo
    
    (review) Add warnings documentation (list)
    
    For each warning, we document constructor/brief description
    in the manual.  This might not be much useful as not but it
    will come handy when introducing `--ignore=WARN` and similar
    flags.
    
    * (review Andreas) Clarify CheckExplanation comment
    
    Whoever modifies `CheckExplanation` data constructors needs to be
    aware that the documentation in  doc/cabal-commands.rst  has to be
    updated too.
    
    * Move internal Check modules to `other-modules`
    
    No need to expose Distribution.PackageDescription.Check.*
    to the world. API for checking, for cabal-install and other
    tools, should be in Distribution.PackageDescription.Check.
    
    * Make fourmolu happy
    
    Cabal codebase has now a formatter/style standard (see #8950).
    
    “Ravioli ravioli, give me the formuoli”
    
    * Do not check for OptO in scripts
    
    See #8963 for reason and clarification requests.
    
    * Remove useless PackageId parameter
    
    It is now in the Reader part of CheckM monad.
    
    * Do not check PVP on internal targets
    
    Internal: testsuite, benchmark.
    See #8361.
    
    * Make hlint happy
    
    * Fix #9122
    
    When checking internal version ranges, we need to make sure we
    are not mistaking a libraries with the same name but from different
    packages. See #9132.
    
    * Fix grammar
    
    neither…nor, completing what done in #9162
    
    * Integrate Brandon’s review: grammar
    
    * Remove unnecessary `-fvia-C` check
    
    Brandon’s review/II.
    
    ---------
    
    Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
    2 people authored and julialongtin committed Dec 2, 2023
    Configuration menu
    Copy the full SHA
    0d382b1 View commit details
    Browse the repository at this point in the history
  33. ci: Enable windows tests for 9.6.3

    There were two failing tests:
    
    1. CCompilerOverride, was attempting to use gcc.exe rather than
       clang.exe without also overriding the C options which led to
       incorrect options being passed to gcc.exe. The fix is to override to
       clang.exe on ghc-9.4 or newer.
    2. ForeignLibs exposes a bug in GHC
       (https://gitlab.haskell.org/ghc/ghc/-/issues/24185) and hence is
       skipped for GHCs newer than 9.4 where it was first introduced.
    
    Towards fixing #8451, we just need to fix the shared library issue now.
    mpickering authored and julialongtin committed Dec 2, 2023
    Configuration menu
    Copy the full SHA
    c3a92e5 View commit details
    Browse the repository at this point in the history
  34. testsuite: Be explicit about runtime test dependencies

    Issue #8356 reports occasional errors from running the testsuite about
    multiple package versions available. This stems from the invokation of
    `runghc` not being explicit about all dependencies of the testsuite.
    
    The solution is provide a component in the cabal file which is explicit
    about which packages the tests can depend on. This component has a
    build-depends section which lists all the dependencies that the tests
    require.
    
    It would be better if this component was a library component but we
    can't do this with a Custom setup because of limitations to do with
    per-component builds.
    
    Then we also enable `-hide-all-packages`, so the dependency will not be
    available if it is not explicitly listed as a dependency.
    
    You could also imagine a future where the Setup.hs script found the test
    files and compiled a single executable which would run all the tests,
    rather than invoking runghc on each one individually.
    
    Fixes #8356
    mpickering authored and julialongtin committed Dec 2, 2023
    Configuration menu
    Copy the full SHA
    8a0a0f0 View commit details
    Browse the repository at this point in the history
  35. hurd: Enable using $ORIGIN in RPATH

    GNU/Hurd fully supports RPATH and the $ORIGIN development, and we indeed
    want to use it for relocatable installations shipped in Debian GNU/Hurd.
    sthibaul authored and julialongtin committed Dec 2, 2023
    Configuration menu
    Copy the full SHA
    6df6a48 View commit details
    Browse the repository at this point in the history
  36. Fix the platform string for GNU/Hurd

    Since version 9.4.7-1, ghc fails to build on the GNU/Hurd port of Debian,
    see
    
    https://buildd.debian.org/status/fetch.php?pkg=ghc&arch=hurd-i386&ver=9.4.7-1&stamp=1697717885&raw=0
    
    Error, rule finished running but did not produce file:
      _build/stage0/lib/i386-gnu-ghc-9.4.6/ghc-boot-th-9.4.7/libHSghc-boot-th-9.4.7.a
    
    and indeed, what did get produce was rather
    _build/stage0/lib/i386-hurd-ghc-9.4.6/ghc-boot-th-9.4.7/libHSghc-boot-th-9.4.7.a
    (i386-hurd instead of i386-gnu).
    
    This is due to confusion between hurd and gnu in various places.  Apparently
    previous versions of ghc were using gnu for the GNU/Hurd port, and thus
    putting libraries etc. in i386-gnu. So we have to follow the existing
    practice.
    sthibaul authored and julialongtin committed Dec 2, 2023
    Configuration menu
    Copy the full SHA
    5a21d99 View commit details
    Browse the repository at this point in the history
  37. Fix configuation of ldProgram

    Standard GNU `ld` ues `--relocatable` while `ld.gold` uses a `-relocatable`
    flag (with a single `-`). Code will now detect both versions.
    erikd authored and julialongtin committed Dec 2, 2023
    Configuration menu
    Copy the full SHA
    09a09df View commit details
    Browse the repository at this point in the history
  38. Chain configuration of ldProgram

    `ldProgram` gets configured in two places, a seemingly default and
    a GHC specific version. The later needs to be updated so that it
    first calls the default configuration and then the new GHC version.
    erikd authored and julialongtin committed Dec 2, 2023
    Configuration menu
    Copy the full SHA
    db33242 View commit details
    Browse the repository at this point in the history
  39. Use linker capability detection to improve linker use

    The function `comperSupportsGhciLibs` has been renamed to
    `linkerSupportsGhciLibs` because its about the linker not the compiler.
    
    The function `comperSupportsGhciLibs` was using the compiler version
    as a proxy for whether the linker supports relocatable objects. Now
    support for relocatable objects is detected by running the linker.
    erikd authored and julialongtin committed Dec 2, 2023
    Configuration menu
    Copy the full SHA
    e406c64 View commit details
    Browse the repository at this point in the history
  40. add merge+no rebase

    and a few typos while reviewing
    geekosaur authored and julialongtin committed Dec 2, 2023
    Configuration menu
    Copy the full SHA
    2aa76b5 View commit details
    Browse the repository at this point in the history
  41. Add support for 64-bit SPARC as a separate architecture

    Previously, sparc64 was defined as an alias for the 32-bit SPARC
    architecture which was true while SPARC mainland was mostly 32
    bits. More recently, 64-bit SPARC has become a port of its own,
    so it needs to be treated as a separate architecture.
    glaubitz authored and julialongtin committed Dec 2, 2023
    Configuration menu
    Copy the full SHA
    71b7a6f View commit details
    Browse the repository at this point in the history
  42. Remove debug-conflict-sets flag from solver package

    Fixes #8937.
    
    The debug-conflict-sets build flag probably hasn't been used for a long time,
    and it isn't currently tested. This commit removes the flag, converts the
    ConflictSet type back to a newtype, and removes an unnecessary instance.
    grayjay authored and julialongtin committed Dec 2, 2023
    Configuration menu
    Copy the full SHA
    30e6ea7 View commit details
    Browse the repository at this point in the history
  43. Finish improvements to the CI configuration for documentation changes (

    …#9460)
    
    * Add bootstrap postjob to CI config
    
    Add a new job to the bootstrap.yml GitHub action config.
    This job succeeds if, and only if, all the other bootstrap
    jobs succeed.
    
    * Do not run bootstrap CI jobs for documentation changes
    
    The approach was already introduced in #9355 for the validate jobs.
    This commit introduces the same change also for the bootstrap jobs.
    
    * Also ignore CONTRIBUTING.md and README.md in CI
    
    We do not run the entire CI suite for documentation changes.
    Previously, only changes which were restricted to the 'docs/'
    subdirectory were considered to be documentation changes.
    With this commit we also recognize changes to README.md and
    CONTRIBUTING.md as documentation changes.
    
    * Document improved CI for documentation in CONTRIBUTING.md
    
    The CONTRIBUTING.md file now mentions that documentation changes
    do not waste expensive CI resources.
    
    * Recognize all README.md in subdirs as documentation
    
    Expensive CI jobs should not run on changes which affect only
    README.md files.
    BinderDavid authored and julialongtin committed Dec 2, 2023
    Configuration menu
    Copy the full SHA
    893dcdb View commit details
    Browse the repository at this point in the history
  44. formatting: Add style-commit makefile target

    This target allows you to format a range of commits, for example:
    
    ```
    make style-commit COMMIT=HEAD~1
    > Last commit is formatted
    make style-commit COMMIT=abcde
    > Commits between HEAD and abcde are formatted
    ```
    mpickering authored and julialongtin committed Dec 2, 2023
    Configuration menu
    Copy the full SHA
    f6a46db View commit details
    Browse the repository at this point in the history
  45. Fix assertion failure when combining build-tool-depends and --enable-…

    …documentation
    
    The `setDocumentation` function was modifying the elaborated package
    after the hash was computed. This led to the assertion failing as the
    computed hash was different to what was computed in the initial install
    plan.
    
    Therefore in order to fix this we either needed to:
    
    1. Set elabBuildHaddocks = False at the point where the hash is
       initially computed.
    2. Verify that elabBuildHaddocks = True will not lead to unexpected
       results.
    
    The latter has been implemented.
    
    The elabBuildHaddocks option is only consulted in
    `hasValidHaddockTargets`, at which point documentation building the
    executable component is disabled because elabHaddockExecutables is
    False.
    
    In the added test we ensure this by checking that we didn't build
    documentation for the executable which is built because of
    build-tool-depends.
    
    Fixes #6006 #8313
    mpickering authored and julialongtin committed Dec 2, 2023
    Configuration menu
    Copy the full SHA
    1c55df4 View commit details
    Browse the repository at this point in the history
  46. Configuration menu
    Copy the full SHA
    93c5abf View commit details
    Browse the repository at this point in the history
  47. Configuration menu
    Copy the full SHA
    d24a35a View commit details
    Browse the repository at this point in the history
  48. Configuration menu
    Copy the full SHA
    2d5002f View commit details
    Browse the repository at this point in the history
  49. cabal-install-solver: fix pkgconf 1.9 --modversion regression

    Check that the numbers of *versions* output is equal to the number of pkgconf's
    
    fixes #8923
    
    The pkgconf behavior was reverted upstream in 2.0
    
    (this should cover the case too of checking that equal pkgList lines are output also)
    juhp authored and julialongtin committed Dec 2, 2023
    Configuration menu
    Copy the full SHA
    4416f86 View commit details
    Browse the repository at this point in the history
  50. External commands: Add tests for #9402 #9403 #9404

    This adds 4 tests which test the new external commands feature:
    
    * ExternalCommand - Tests the expected usage of external command invoked
      via cabal-install
    * ExternalCommandSetup - Tests that the ./Setup interface does not
      support external commands (#9403)
    * ExternalCommandEnv - Tests that environment variables are set and
      preserved appropiately  (#9402)
    * ExternalCommandHelp - Test that `cabal help <cmd>` is interpreted appropiately (#9404)
    mpickering authored and julialongtin committed Dec 2, 2023
    Configuration menu
    Copy the full SHA
    ce064fb View commit details
    Browse the repository at this point in the history
  51. Finish off the external commands feature

    * Remove 'CommandDelegate' in favour of abstracting the fallback in
      'commandsRun', there is a new variant 'commdandRunWithFallback' which
      takes a continuation
      - This restores the modularity between the `Cabal` library and
        `cabal-install` as now `Cabal` doesn't need to know anything about
        the external command interface.
      - Fixes #9403
    * Set the $CABAL environment variable to the current executable path
      - This allows external commands to be implemented by calling $CABAL,
        which is strongly preferred to linking against the Cabal library as
        there is no easy way to guantee your tool and `cabal-install` link
        against the same `Cabal` library.
      - Fixes #9402
    * Pass the name of the argument
      - This allows external commands to be implemented as symlinks to an
        executable, and multiple commands can be interpreted by the same
        executable.
      - Fixes #9405
    * `cabal help <cmd>` is interpreted as `cabal-<cmd> --help` for external
      commands.
      - This allows the `help` command to also work for external
      commands and hence they are better integrated into cabal-install.
      - Fixes #9404
    
    The tests are updated to test all these additions.
    
    These features bring the external command interface up to par with the
    cargo external command interface.
    mpickering authored and julialongtin committed Dec 2, 2023
    Configuration menu
    Copy the full SHA
    245e68a View commit details
    Browse the repository at this point in the history
  52. Use Base16 hash for script path.

    Issue #9334 shows that `%` characters on Windows result in invalid
    paths, also `/` characters on Linux create invalid paths.
    
    This changes from using base64 to using base16 with the same length
    we use for unit-ids.
    jasagredo authored and julialongtin committed Dec 2, 2023
    Configuration menu
    Copy the full SHA
    2e2ac78 View commit details
    Browse the repository at this point in the history
  53. Migrate to haskell-actions/setup

    As of 2023-09-09, haskell/action/setup is no longer maintained.
    
    The comment
    
      # latest is mandatory for cabal-testsuite, see #8133
    
    is removed; as the validate job was already fixing a version of cabal-install.
    andreabedini authored and julialongtin committed Dec 2, 2023
    Configuration menu
    Copy the full SHA
    ac463a0 View commit details
    Browse the repository at this point in the history
  54. testsuite: Introduce Cabal-tests library for common testsuite functions

    I noticed that Distribution.Utils.TempTestDir was only used in the
    testsuite but defined in the Cabal library. Rather than expose this in
    the public interface of the `Cabal` library, it is cleaner to refactor
    it into a separate library (`Cabal-tests`) which can be used by any
    testsuite component.
    
    Also, in future it gives a clearer place to put utility functions which
    need to be shared across the testsuite but not exposed in Cabal.
    Cabal-tests can also freely add dependencies (such as exceptions) which
    we might want to avoid adding to the Cabal library.
    
    Fixes #9453
    mpickering authored and julialongtin committed Dec 2, 2023
    Configuration menu
    Copy the full SHA
    a4f0349 View commit details
    Browse the repository at this point in the history
  55. Configuration menu
    Copy the full SHA
    357ae58 View commit details
    Browse the repository at this point in the history
  56. GHC 9.8 compat: update hashes of data structures as computed by Struc…

    …tured
    
    It seems, GHC 9.8 changed something in the code generation for data types.
    Structured class is supposed to catch such cases.
    ulysses4ever authored and julialongtin committed Dec 2, 2023
    Configuration menu
    Copy the full SHA
    487b0ef View commit details
    Browse the repository at this point in the history
  57. GHC 9.8 compat: bump base, update Unknown GHC

    And bump Cabal's "supported version" of GHC
    ulysses4ever authored and julialongtin committed Dec 2, 2023
    Configuration menu
    Copy the full SHA
    ebe3949 View commit details
    Browse the repository at this point in the history
  58. CI: GHC 9.8

    ulysses4ever authored and julialongtin committed Dec 2, 2023
    Configuration menu
    Copy the full SHA
    2b37781 View commit details
    Browse the repository at this point in the history
  59. merge master

    julialongtin committed Dec 2, 2023
    Configuration menu
    Copy the full SHA
    a57001c View commit details
    Browse the repository at this point in the history
  60. Configuration menu
    Copy the full SHA
    395b473 View commit details
    Browse the repository at this point in the history
  61. Configuration menu
    Copy the full SHA
    fc4ce65 View commit details
    Browse the repository at this point in the history