Skip to content

shayne-fletcher/ghc-lib-parser-ex

Repository files navigation

ghc-lib-parser-ex

License BSD3 Hackage version Stackage version ghc-lib-parser-ex-ghc-lib-parser-9.10.1.20240511

Copyright © 2020-2024 Shayne Fletcher. All rights reserved. SPDX-License-Identifier: BSD-3-Clause

The ghc-lib-parser-ex package contains GHC API parse tree utilities. It works with or without ghc-lib-parser.

Using ghc-lib-parser-ex

Package ghc-lib-parser-ex is on Hackage e.g. cabal install ghc-lib-parser-ex. Like ghc-lib-parser, there are two release streams within the ghc-lib-parser-ex name.

Versioning policy

Package ghc-lib-parser-ex does not conform to the Haskell Package Versioning Policy.

Version numbers are of the form α.β.γ.δ where α.β corresponds to a GHC series and γ.δ are the major and minor parts of the ghc-lib-ex-parser package release. Examples:

  • Version 8.10.1.3 is compatible with any ghc-lib-parser-8.10.* (or ghc-8.10.*) package;
  • Version 0.20190204.2.0 is compatible with ghc-lib-parser-0.20190204.

The major part γ of the release number indicates an interface breaking change from the previous release. The minor part δ indicates a non-interface breaking change from the previous release.

Building ghc-lib-parser-ex

Produce and test ghc-lib-parser-ex package distributions by executing the CI script:

    git clone git@github.com:shayne-fletcher/ghc-lib-parser-ex.git
    cd ghc-lib-parser-ex
    cabal run exe:ghc-lib-parser-ex-build-tool --allow-newer="ghc-lib-parser-ex:ghc-lib-parser" --constraint="ghc-lib-parser == 9.10.1.20240511" -- --version-tag 9.10.0.1

To run hlint on this repository, hlint --cpp-include cbits --cpp-define GHC_XXXX . (where XXXX at this time is one of 8_8, 8_10, 9_0, 9_2, 9_4, 9_6, 9_8 or 9_10).

Releasing ghc-lib-parser-ex (notes for maintainers)

Update the changelog, git tag <version> && git push origin <version> then build via the above instructions and upload the resulting .tar.gz files to Hackage.