Skip to content

Commit

Permalink
Support GHC up to 9.6 and add CI for them all (#457)
Browse files Browse the repository at this point in the history
* Minor changes for 9.6: imports and TypeOperators

Bump up some bounds on base which should make this a safe change
on older ghc versions.

* Use Language.Haskell.Syntax.Module.Name on 9.6

* Backward compatibility break: quote `forall`

GHC started warning about using `forall` as an identifier.  We might
as well quote it now and document in the release notes.

* Relax version bounds for 9.6

* Rework the CI

Reduce the matrix to versions to 9.{0,2,4,6}

* Temporarily use ghc-source-gen from hackage until it's in stackage
  • Loading branch information
blackgnezdo authored Dec 23, 2023
1 parent ba85e9d commit 7bee22e
Show file tree
Hide file tree
Showing 32 changed files with 143 additions and 85 deletions.
4 changes: 2 additions & 2 deletions .github/workflows/cabal-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@ jobs:
submodules: true
- uses: haskell/actions/setup@v2
with:
ghc-version: '9.6.1'
cabal-version: '3.8.1.0'
ghc-version: '9.6.3'
cabal-version: '3.10.2.0'
- run: cabal build --dependencies-only --project-file ghc96.cabal.project all
- run: cabal build --project-file ghc96.cabal.project all
- run: cabal test --project-file ghc96.cabal.project all
8 changes: 4 additions & 4 deletions discrimination-ieee754/discrimination-ieee754.cabal
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
cabal-version: 1.12

-- This file has been generated from package.yaml by hpack version 0.34.4.
-- This file has been generated from package.yaml by hpack version 0.36.0.
--
-- see: https://github.com/sol/hpack

name: discrimination-ieee754
version: 0.1.0.1
version: 0.1.0.2
synopsis: Discrimination of floating-point numbers via their IEEE754 representation.
description: Support for sorting/grouping by floating-point numbers. Uses the technique described by http://stereopsis.com/radix.html.
category: Data
Expand All @@ -31,7 +31,7 @@ library
hs-source-dirs:
src
build-depends:
base >=4.10 && <4.17
base >=4.10 && <4.19
, contravariant >=1.3 && <1.6
, data-binary-ieee754 ==0.4.*
, discrimination >=0.3 && <0.6
Expand All @@ -46,7 +46,7 @@ test-suite test
test
build-depends:
QuickCheck
, base >=4.10 && <4.17
, base >=4.10 && <4.19
, contravariant >=1.3 && <1.6
, data-binary-ieee754 ==0.4.*
, discrimination >=0.3 && <0.6
Expand Down
4 changes: 2 additions & 2 deletions discrimination-ieee754/package.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
name: discrimination-ieee754
version: '0.1.0.1'
version: '0.1.0.2'
synopsis: Discrimination of floating-point numbers via their IEEE754 representation.
description: >
Support for sorting/grouping by floating-point numbers.
Expand All @@ -12,7 +12,7 @@ license: BSD3
github: google/proto-lens/discrimination-ieee754

dependencies:
- base >= 4.10 && < 4.17
- base >= 4.10 && < 4.19
- data-binary-ieee754 >= 0.4 && < 0.5
- contravariant >= 1.3 && < 1.6
- discrimination >= 0.3 && < 0.6
Expand Down
15 changes: 12 additions & 3 deletions matrix.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,19 @@ build:
compiler: ghc-8.10.7
stackyaml: stack-8.10.yaml

- resolver: lts-19.20
- resolver: lts-19.33
compiler: ghc-9.0.2
stackyaml: stack.yaml

- resolver: lts-20.15
compiler: ghc-9.2.7
- resolver: lts-20.26
compiler: ghc-9.2.8
stackyaml: stack.yaml

- resolver: lts-21.25
compiler: ghc-9.4.8
stackyaml: stack.yaml

- resolver: lts-22.1
compiler: ghc-9.6.3
stackyaml: stack.yaml

6 changes: 3 additions & 3 deletions proto-lens-arbitrary/package.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
name: proto-lens-arbitrary
version: "0.1.2.11"
version: "0.1.2.12"
synopsis: Arbitrary instances for proto-lens.
description: >
The proto-lens-arbitrary allows generating arbitrary messages for
Expand All @@ -15,10 +15,10 @@ extra-source-files:

dependencies:
- proto-lens >= 0.4 && < 0.8
- base >= 4.10 && < 4.17
- base >= 4.10 && < 4.19
- bytestring >= 0.10 && < 0.12
- containers >= 0.5 && < 0.7
- text >= 1.2 && < 2.1
- text >= 1.2 && < 2.2
- lens-family >= 1.2 && < 2.2
- QuickCheck >= 2.8 && < 2.15

Expand Down
8 changes: 4 additions & 4 deletions proto-lens-arbitrary/proto-lens-arbitrary.cabal
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
cabal-version: 1.12

-- This file has been generated from package.yaml by hpack version 0.34.4.
-- This file has been generated from package.yaml by hpack version 0.36.0.
--
-- see: https://github.com/sol/hpack

name: proto-lens-arbitrary
version: 0.1.2.11
version: 0.1.2.12
synopsis: Arbitrary instances for proto-lens.
description: The proto-lens-arbitrary allows generating arbitrary messages for use with QuickCheck.
category: Data
Expand Down Expand Up @@ -34,10 +34,10 @@ library
src
build-depends:
QuickCheck >=2.8 && <2.15
, base >=4.10 && <4.17
, base >=4.10 && <4.19
, bytestring >=0.10 && <0.12
, containers >=0.5 && <0.7
, lens-family >=1.2 && <2.2
, proto-lens >=0.4 && <0.8
, text >=1.2 && <2.1
, text >=1.2 && <2.2
default-language: Haskell2010
4 changes: 3 additions & 1 deletion proto-lens-benchmarks/proto-lens-benchmarks.cabal
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
cabal-version: 2.0

-- This file has been generated from package.yaml by hpack version 0.34.4.
-- This file has been generated from package.yaml by hpack version 0.36.0.
--
-- see: https://github.com/sol/hpack

Expand Down Expand Up @@ -32,6 +32,8 @@ library
Data.ProtoLens.BenchmarkUtil
other-modules:
Paths_proto_lens_benchmarks
autogen-modules:
Paths_proto_lens_benchmarks
hs-source-dirs:
src
ghc-options: -O2 -rtsopts
Expand Down
8 changes: 4 additions & 4 deletions proto-lens-discrimination/package.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
name: proto-lens-discrimination
version: '0.1.1.2'
version: '0.1.1.3'
synopsis: Support for using proto-lens types with http://hackage.haskell.org/package/discrimination.
description: >
Reflection-based implementations of Sort for proto-lens'
Expand All @@ -15,22 +15,22 @@ extra-source-files:

custom-setup:
dependencies:
- base >= 4.10 && < 4.17
- base >= 4.10 && < 4.19
- Cabal
- proto-lens-setup >= 0.4 && < 0.5

build-tools: proto-lens-protoc:proto-lens-protoc

dependencies:
- base >= 4.11 && < 4.17
- base >= 4.11 && < 4.19
- bytestring >= 0.10 && < 0.12
- contravariant >= 1.3 && < 1.6
- containers >= 0.5 && < 0.7
- discrimination >= 0.3 && < 0.6
- discrimination-ieee754 == 0.1.*
- lens-family >= 1.2 && < 2.2
- proto-lens >= 0.6 && < 0.8
- text >= 1.2 && < 2.1
- text >= 1.2 && < 2.2

library:
source-dirs: src
Expand Down
17 changes: 10 additions & 7 deletions proto-lens-discrimination/proto-lens-discrimination.cabal
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
cabal-version: 2.0

-- This file has been generated from package.yaml by hpack version 0.34.4.
-- This file has been generated from package.yaml by hpack version 0.36.0.
--
-- see: https://github.com/sol/hpack

name: proto-lens-discrimination
version: 0.1.1.2
version: 0.1.1.3
synopsis: Support for using proto-lens types with http://hackage.haskell.org/package/discrimination.
description: Reflection-based implementations of Sort for proto-lens' generated types.
category: Data
Expand All @@ -29,7 +29,7 @@ source-repository head
custom-setup
setup-depends:
Cabal
, base >=4.10 && <4.17
, base >=4.10 && <4.19
, proto-lens-setup ==0.4.*

library
Expand All @@ -39,20 +39,22 @@ library
Data.ProtoLens.Discrimination
other-modules:
Paths_proto_lens_discrimination
autogen-modules:
Paths_proto_lens_discrimination
hs-source-dirs:
src
build-tool-depends:
proto-lens-protoc:proto-lens-protoc
build-depends:
base >=4.11 && <4.17
base >=4.11 && <4.19
, bytestring >=0.10 && <0.12
, containers >=0.5 && <0.7
, contravariant >=1.3 && <1.6
, discrimination >=0.3 && <0.6
, discrimination-ieee754 ==0.1.*
, lens-family >=1.2 && <2.2
, proto-lens >=0.6 && <0.8
, text >=1.2 && <2.1
, text >=1.2 && <2.2
default-language: Haskell2010

test-suite discrimination_test
Expand All @@ -65,6 +67,7 @@ test-suite discrimination_test
Proto.Map
Proto.Map_Fields
autogen-modules:
Paths_proto_lens_discrimination
Proto.Enum
Proto.Enum_Fields
Proto.Map
Expand All @@ -76,7 +79,7 @@ test-suite discrimination_test
build-depends:
HUnit >=1.3 && <1.7
, QuickCheck >=2.8 && <2.15
, base >=4.11 && <4.17
, base >=4.11 && <4.19
, bytestring >=0.10 && <0.12
, containers >=0.5 && <0.7
, contravariant >=1.3 && <1.6
Expand All @@ -90,5 +93,5 @@ test-suite discrimination_test
, test-framework ==0.8.*
, test-framework-hunit ==0.3.*
, test-framework-quickcheck2 ==0.3.*
, text >=1.2 && <2.1
, text >=1.2 && <2.2
default-language: Haskell2010
6 changes: 3 additions & 3 deletions proto-lens-optparse/package.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
name: proto-lens-optparse
version: '0.1.1.10'
version: '0.1.1.11'
synopsis: Adapting proto-lens to optparse-applicative ReadMs.
description: >
A package adapting proto-lens to optparse-applicative ReadMs.
Expand All @@ -17,8 +17,8 @@ extra-source-files:
dependencies:
- proto-lens >= 0.1 && < 0.8
- base >= 4.10 && < 4.19
- optparse-applicative >= 0.13 && < 0.18
- text >= 1.2 && < 2.1
- optparse-applicative >= 0.13 && < 0.19
- text >= 1.2 && < 2.2

library:
source-dirs: src
Expand Down
8 changes: 4 additions & 4 deletions proto-lens-optparse/proto-lens-optparse.cabal
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
cabal-version: 1.12

-- This file has been generated from package.yaml by hpack version 0.35.2.
-- This file has been generated from package.yaml by hpack version 0.36.0.
--
-- see: https://github.com/sol/hpack

name: proto-lens-optparse
version: 0.1.1.10
version: 0.1.1.11
synopsis: Adapting proto-lens to optparse-applicative ReadMs.
description: A package adapting proto-lens to optparse-applicative ReadMs. This gives an easy way to define options and arguments for text-format protobuf types.
category: Data
Expand Down Expand Up @@ -34,7 +34,7 @@ library
src
build-depends:
base >=4.10 && <4.19
, optparse-applicative >=0.13 && <0.18
, optparse-applicative >=0.13 && <0.19
, proto-lens >=0.1 && <0.8
, text >=1.2 && <2.1
, text >=1.2 && <2.2
default-language: Haskell2010
8 changes: 4 additions & 4 deletions proto-lens-protobuf-types/package.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
name: proto-lens-protobuf-types
version: '0.7.1.2'
version: '0.7.1.3'
synopsis: Basic protocol buffer message types.
description: >
This package provides bindings standard protocol message types,
Expand All @@ -23,18 +23,18 @@ extra-source-files:

custom-setup:
dependencies:
- base >= 4.10 && < 4.17
- base >= 4.10 && < 4.19
- Cabal
- proto-lens-setup == 0.4.*

build-tools: proto-lens-protoc:proto-lens-protoc

dependencies:
- base >= 4.10 && < 4.17
- base >= 4.10 && < 4.19
- lens-family >= 1.2 && < 2.2
- proto-lens == 0.7.*
- proto-lens-runtime == 0.7.*
- text >= 1.2 && < 2.1
- text >= 1.2 && < 2.2

library:
source-dirs: src
Expand Down
10 changes: 5 additions & 5 deletions proto-lens-protobuf-types/proto-lens-protobuf-types.cabal
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
cabal-version: 2.0

-- This file has been generated from package.yaml by hpack version 0.35.0.
-- This file has been generated from package.yaml by hpack version 0.36.0.
--
-- see: https://github.com/sol/hpack

name: proto-lens-protobuf-types
version: 0.7.1.2
version: 0.7.1.3
synopsis: Basic protocol buffer message types.
description: This package provides bindings standard protocol message types, for use with the proto-lens library.
category: Data
Expand Down Expand Up @@ -36,7 +36,7 @@ source-repository head
custom-setup
setup-depends:
Cabal
, base >=4.10 && <4.17
, base >=4.10 && <4.19
, proto-lens-setup ==0.4.*

library
Expand Down Expand Up @@ -81,9 +81,9 @@ library
build-tool-depends:
proto-lens-protoc:proto-lens-protoc
build-depends:
base >=4.10 && <4.17
base >=4.10 && <4.19
, lens-family >=1.2 && <2.2
, proto-lens ==0.7.*
, proto-lens-runtime ==0.7.*
, text >=1.2 && <2.1
, text >=1.2 && <2.2
default-language: Haskell2010
6 changes: 6 additions & 0 deletions proto-lens-protoc/Changelog.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,11 @@
# Changelog for `proto-lens-protoc`


## v0.8.0.0
- Relax upper bounds for ghc-9.6
- Incompatible change: change `forall` to `forall'` in generated code
due to GHC warning of the upcoming change.

## v0.7.1.1
- Relax upper bounds for ghc-9.2

Expand Down
Loading

0 comments on commit 7bee22e

Please sign in to comment.