From 540fb6229cfa0de7a8c894209d4ea78121cf7565 Mon Sep 17 00:00:00 2001 From: Artur Gajowy Date: Mon, 25 Sep 2023 21:54:51 +0200 Subject: [PATCH 1/7] Bump `base`, `unix` in prometheus-proc --- prometheus-proc/prometheus-proc.cabal | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/prometheus-proc/prometheus-proc.cabal b/prometheus-proc/prometheus-proc.cabal index ef83d29..19fe4db 100644 --- a/prometheus-proc/prometheus-proc.cabal +++ b/prometheus-proc/prometheus-proc.cabal @@ -17,13 +17,13 @@ source-repository head library exposed-modules: Prometheus.Metric.Proc - build-depends: base >=4.10 && <4.18 + build-depends: base >=4.10 && <4.19 , directory >= 1.2.5.0 && < 1.4 , filepath >=1.4 && <1.5 , prometheus-client >= 1.0.0 && < 1.2 , regex-applicative >=0.3 && <0.4 , text >= 0.7 && < 2.1 - , unix >=2.7 && <2.8 + , unix >=2.7 && <2.9 , unix-memory >=0.1 && <0.2 hs-source-dirs: src default-language: Haskell2010 From 078a5e56edf0a7a0c7149181942bc43156414279 Mon Sep 17 00:00:00 2001 From: Will Coster Date: Sun, 3 Mar 2024 19:34:03 +0000 Subject: [PATCH 2/7] Migrate to Github actions for CI --- {.travis => .ci}/stack-lts-12.yaml | 0 {.travis => .ci}/stack-lts-16.yaml | 0 .ci/stack-lts-19.yaml | 10 ++++ {.travis => .ci}/stack-lts-2.yaml | 0 .ci/stack-lts-21.yaml | 10 ++++ .ci/stack-lts-22.yaml | 10 ++++ {.travis => .ci}/stack-lts-3.yaml | 0 .ci/stack-nightly.yaml | 10 ++++ .github/workflows/stack.yml | 86 ++++++++++++++++++++++++++++++ .gitignore | 4 +- 10 files changed, 129 insertions(+), 1 deletion(-) rename {.travis => .ci}/stack-lts-12.yaml (100%) rename {.travis => .ci}/stack-lts-16.yaml (100%) create mode 100644 .ci/stack-lts-19.yaml rename {.travis => .ci}/stack-lts-2.yaml (100%) create mode 100644 .ci/stack-lts-21.yaml create mode 100644 .ci/stack-lts-22.yaml rename {.travis => .ci}/stack-lts-3.yaml (100%) create mode 100644 .ci/stack-nightly.yaml create mode 100644 .github/workflows/stack.yml diff --git a/.travis/stack-lts-12.yaml b/.ci/stack-lts-12.yaml similarity index 100% rename from .travis/stack-lts-12.yaml rename to .ci/stack-lts-12.yaml diff --git a/.travis/stack-lts-16.yaml b/.ci/stack-lts-16.yaml similarity index 100% rename from .travis/stack-lts-16.yaml rename to .ci/stack-lts-16.yaml diff --git a/.ci/stack-lts-19.yaml b/.ci/stack-lts-19.yaml new file mode 100644 index 0000000..71ea7b4 --- /dev/null +++ b/.ci/stack-lts-19.yaml @@ -0,0 +1,10 @@ +flags: {} +packages: +- ../example/ +- ../prometheus-client +- ../prometheus-metrics-ghc +- ../prometheus-proc +- ../wai-middleware-prometheus +extra-deps: +- unix-memory-0.1.2 +resolver: lts-19.33 diff --git a/.travis/stack-lts-2.yaml b/.ci/stack-lts-2.yaml similarity index 100% rename from .travis/stack-lts-2.yaml rename to .ci/stack-lts-2.yaml diff --git a/.ci/stack-lts-21.yaml b/.ci/stack-lts-21.yaml new file mode 100644 index 0000000..6354a35 --- /dev/null +++ b/.ci/stack-lts-21.yaml @@ -0,0 +1,10 @@ +flags: {} +packages: +- ../example/ +- ../prometheus-client +- ../prometheus-metrics-ghc +- ../prometheus-proc +- ../wai-middleware-prometheus +extra-deps: +- unix-memory-0.1.2 +resolver: lts-21.25 diff --git a/.ci/stack-lts-22.yaml b/.ci/stack-lts-22.yaml new file mode 100644 index 0000000..18f3029 --- /dev/null +++ b/.ci/stack-lts-22.yaml @@ -0,0 +1,10 @@ +flags: {} +packages: +- ../example/ +- ../prometheus-client +- ../prometheus-metrics-ghc +- ../prometheus-proc +- ../wai-middleware-prometheus +extra-deps: +- unix-memory-0.1.2 +resolver: lts-22.12 \ No newline at end of file diff --git a/.travis/stack-lts-3.yaml b/.ci/stack-lts-3.yaml similarity index 100% rename from .travis/stack-lts-3.yaml rename to .ci/stack-lts-3.yaml diff --git a/.ci/stack-nightly.yaml b/.ci/stack-nightly.yaml new file mode 100644 index 0000000..90c60f9 --- /dev/null +++ b/.ci/stack-nightly.yaml @@ -0,0 +1,10 @@ +flags: {} +packages: +- ../example/ +- ../prometheus-client +- ../prometheus-metrics-ghc +- ../prometheus-proc +- ../wai-middleware-prometheus +extra-deps: +- unix-memory-0.1.2 +resolver: nightly-2024-03-01 \ No newline at end of file diff --git a/.github/workflows/stack.yml b/.github/workflows/stack.yml new file mode 100644 index 0000000..0e6b288 --- /dev/null +++ b/.github/workflows/stack.yml @@ -0,0 +1,86 @@ +# https://github.com/haskell/actions/tree/main/setup + +name: build +on: + push: + branches: [main, master] + pull_request: + branches: [main, master] + +permissions: + contents: read + +jobs: + build: + name: Stack resolver ${{ matrix.stackage-version }} on ${{ matrix.os }} + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + os: [ubuntu-latest] + stackage-version: + - stack.yaml + - .ci/stack-nightly.yaml + - .ci/stack-lts-22.yaml + - .ci/stack-lts-21.yaml + - .ci/stack-lts-19.yaml + - .ci/stack-lts-16.yaml + - .ci/stack-lts-12.yaml + - .ci/stack-lts-3.yaml + + steps: + - uses: actions/checkout@v3 + + - uses: haskell-actions/setup@v2 + name: Set up stack ${{ matrix.stackage-version }} + id: setup + with: + enable-stack: true + stack-version: latest + + - uses: actions/cache/restore@v3 + name: Restore cached ~/.stack + with: + path: ~/.stack + key: ${{ runner.os }}-stack-global-${{ hashFiles(matrix.stackage-version) }}-${{ hashFiles('**/*.cabal') }}-version-${{ matrix.stackage-version }} + restore-keys: | + ${{ runner.os }}-stack-global- + - uses: actions/cache/restore@v3 + name: Restore cached .stack-work + with: + path: .stack-work + key: ${{ runner.os }}-stack-work-${{ hashFiles(matrix.stackage-version) }}-${{ hashFiles('**/*.cabal') }}-${{ hashFiles('**/*.hs') }}-version-${{ matrix.stackage-version }} + restore-keys: | + ${{ runner.os }}-stack-work- + + - name: Install dependencies + run: stack build --stack-yaml ${{ matrix.stackage-version }} --dependencies-only --test --bench + + # Cache dependencies already here, so that we do not have to rebuild them should the subsequent steps fail. + + - uses: actions/cache/save@v3 + name: Cache ~/.stack + with: + path: ~/.stack + key: ${{ runner.os }}-stack-global-${{ hashFiles(matrix.stackage-version) }}-${{ hashFiles('**/*.cabal') }}-version-${{ matrix.stackage-version }} + restore-keys: | + ${{ runner.os }}-stack-global- + - uses: actions/cache/save@v3 + name: Cache .stack-work + with: + path: .stack-work + key: ${{ runner.os }}-stack-work-${{ hashFiles(matrix.stackage-version) }}-${{ hashFiles('**/*.cabal') }}-${{ hashFiles('**/*.hs') }}-version-${{ matrix.stackage-version }} + restore-keys: | + ${{ runner.os }}-stack-work- + + - name: Build + run: stack build --stack-yaml ${{ matrix.stackage-version }} + + - name: Run tests + run: stack test --stack-yaml ${{ matrix.stackage-version }} + + - name: Run benchmarks + run: stack bench --stack-yaml ${{ matrix.stackage-version }} + + - name: Build documentation + run: stack haddock --stack-yaml ${{ matrix.stackage-version }} diff --git a/.gitignore b/.gitignore index 40e44b0..10c1a6e 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,6 @@ dist/ .cabal-sandbox/ cabal.sandbox.config cabal.config -/.stack-work +.stack-work +*/*.yaml.lock +.devcontainer \ No newline at end of file From 04f40bc0381e98f9d0a632d01b57b7386433a132 Mon Sep 17 00:00:00 2001 From: Will Coster Date: Sun, 3 Mar 2024 21:32:28 +0000 Subject: [PATCH 3/7] Add data-sketches as extra-dep to older ci versions --- .ci/stack-lts-12.yaml | 1 + .ci/stack-lts-16.yaml | 1 + .ci/stack-lts-2.yaml | 1 + .ci/stack-lts-3.yaml | 1 + 4 files changed, 4 insertions(+) diff --git a/.ci/stack-lts-12.yaml b/.ci/stack-lts-12.yaml index c852469..7dff685 100644 --- a/.ci/stack-lts-12.yaml +++ b/.ci/stack-lts-12.yaml @@ -6,5 +6,6 @@ packages: - ../prometheus-proc - ../wai-middleware-prometheus extra-deps: +- data-sketches-0.3.1.0 - unix-memory-0.1.2 resolver: lts-12.26 diff --git a/.ci/stack-lts-16.yaml b/.ci/stack-lts-16.yaml index 33ce712..670ea01 100644 --- a/.ci/stack-lts-16.yaml +++ b/.ci/stack-lts-16.yaml @@ -6,5 +6,6 @@ packages: - ../prometheus-proc - ../wai-middleware-prometheus extra-deps: +- data-sketches-0.3.1.0 - unix-memory-0.1.2 resolver: lts-16.6 diff --git a/.ci/stack-lts-2.yaml b/.ci/stack-lts-2.yaml index dc010b4..a8ea939 100644 --- a/.ci/stack-lts-2.yaml +++ b/.ci/stack-lts-2.yaml @@ -7,4 +7,5 @@ packages: extra-deps: - atomic-primops-0.8.2 - clock-0.8 +- data-sketches-0.3.1.0 resolver: lts-2.22 diff --git a/.ci/stack-lts-3.yaml b/.ci/stack-lts-3.yaml index 38a83fd..5562164 100644 --- a/.ci/stack-lts-3.yaml +++ b/.ci/stack-lts-3.yaml @@ -6,4 +6,5 @@ packages: - ../wai-middleware-prometheus extra-deps: - clock-0.8 +- data-sketches-0.3.1.0 resolver: lts-3.22 From bfaeffd9f3434647092a3c26a6c6b2f5c6c8e542 Mon Sep 17 00:00:00 2001 From: Will Coster Date: Sun, 3 Mar 2024 21:34:31 +0000 Subject: [PATCH 4/7] Bump base and text bounds in prometheus-proc --- prometheus-proc/ChangeLog.md | 4 ++++ prometheus-proc/prometheus-proc.cabal | 4 ++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/prometheus-proc/ChangeLog.md b/prometheus-proc/ChangeLog.md index 8b6321f..6bc688d 100644 --- a/prometheus-proc/ChangeLog.md +++ b/prometheus-proc/ChangeLog.md @@ -1,3 +1,7 @@ +# HEAD + +* Relax bounds on base, unix, and text to support GHC 9.6 and 9.8 + # 0.1.5.0 -- 2023-05-11 * Support base-4.17 and (GHC 9.2 & GHC 9.4) diff --git a/prometheus-proc/prometheus-proc.cabal b/prometheus-proc/prometheus-proc.cabal index 19fe4db..bcfeae0 100644 --- a/prometheus-proc/prometheus-proc.cabal +++ b/prometheus-proc/prometheus-proc.cabal @@ -17,12 +17,12 @@ source-repository head library exposed-modules: Prometheus.Metric.Proc - build-depends: base >=4.10 && <4.19 + build-depends: base >=4.10 && <5 , directory >= 1.2.5.0 && < 1.4 , filepath >=1.4 && <1.5 , prometheus-client >= 1.0.0 && < 1.2 , regex-applicative >=0.3 && <0.4 - , text >= 0.7 && < 2.1 + , text >= 0.7 && < 2.2 , unix >=2.7 && <2.9 , unix-memory >=0.1 && <0.2 hs-source-dirs: src From 7c8f5c9789df4cdf5a0daa4bb3a62c890790101d Mon Sep 17 00:00:00 2001 From: Will Coster Date: Sun, 3 Mar 2024 21:50:38 +0000 Subject: [PATCH 5/7] Better stack caching --- .github/workflows/stack.yml | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/.github/workflows/stack.yml b/.github/workflows/stack.yml index 0e6b288..fee8ac0 100644 --- a/.github/workflows/stack.yml +++ b/.github/workflows/stack.yml @@ -42,16 +42,19 @@ jobs: name: Restore cached ~/.stack with: path: ~/.stack - key: ${{ runner.os }}-stack-global-${{ hashFiles(matrix.stackage-version) }}-${{ hashFiles('**/*.cabal') }}-version-${{ matrix.stackage-version }} + key: ${{ runner.os }}-stack-globa-version-${{ matrix.stackage-version }}l-${{ hashFiles(matrix.stackage-version) }}-${{ hashFiles('**/*.cabal') }} restore-keys: | - ${{ runner.os }}-stack-global- + ${{ runner.os }}-stack-global-version-${{ matrix.stackage-version }}-${{ hashFiles(matrix.stackage-version) }} + ${{ runner.os }}-stack-global-version-${{ matrix.stackage-version }}- - uses: actions/cache/restore@v3 name: Restore cached .stack-work with: path: .stack-work - key: ${{ runner.os }}-stack-work-${{ hashFiles(matrix.stackage-version) }}-${{ hashFiles('**/*.cabal') }}-${{ hashFiles('**/*.hs') }}-version-${{ matrix.stackage-version }} + key: ${{ runner.os }}-stack-work-version-${{ matrix.stackage-version }}-${{ hashFiles(matrix.stackage-version) }}-${{ hashFiles('**/*.cabal') }}-${{ hashFiles('**/*.hs') }} restore-keys: | - ${{ runner.os }}-stack-work- + ${{ runner.os }}-stack-work-version-${{ matrix.stackage-version }}-${{ hashFiles(matrix.stackage-version) }}-${{ hashFiles('**/*.cabal') }}- + ${{ runner.os }}-stack-work-version-${{ matrix.stackage-version }}-${{ hashFiles(matrix.stackage-version) }}- + ${{ runner.os }}-stack-work-version-${{ matrix.stackage-version }}- - name: Install dependencies run: stack build --stack-yaml ${{ matrix.stackage-version }} --dependencies-only --test --bench @@ -62,16 +65,12 @@ jobs: name: Cache ~/.stack with: path: ~/.stack - key: ${{ runner.os }}-stack-global-${{ hashFiles(matrix.stackage-version) }}-${{ hashFiles('**/*.cabal') }}-version-${{ matrix.stackage-version }} - restore-keys: | - ${{ runner.os }}-stack-global- + key: ${{ runner.os }}-stack-global-version-${{ matrix.stackage-version }}-${{ hashFiles(matrix.stackage-version) }}-${{ hashFiles('**/*.cabal') }} - uses: actions/cache/save@v3 name: Cache .stack-work with: path: .stack-work - key: ${{ runner.os }}-stack-work-${{ hashFiles(matrix.stackage-version) }}-${{ hashFiles('**/*.cabal') }}-${{ hashFiles('**/*.hs') }}-version-${{ matrix.stackage-version }} - restore-keys: | - ${{ runner.os }}-stack-work- + key: ${{ runner.os }}-stack-work-version-${{ matrix.stackage-version }}-${{ hashFiles(matrix.stackage-version) }}-${{ hashFiles('**/*.cabal') }}-${{ hashFiles('**/*.hs') }} - name: Build run: stack build --stack-yaml ${{ matrix.stackage-version }} From fd9494c313dc6cbd4fc072e0d49d281bb07c932d Mon Sep 17 00:00:00 2001 From: Will Coster Date: Sun, 3 Mar 2024 22:14:27 +0000 Subject: [PATCH 6/7] Keep tweaking older stack yamls --- .ci/stack-lts-12.yaml | 1 + .ci/stack-lts-16.yaml | 1 + .ci/stack-lts-19.yaml | 10 ---------- .ci/stack-lts-3.yaml | 1 + .github/workflows/stack.yml | 1 - 5 files changed, 3 insertions(+), 11 deletions(-) delete mode 100644 .ci/stack-lts-19.yaml diff --git a/.ci/stack-lts-12.yaml b/.ci/stack-lts-12.yaml index 7dff685..2798be8 100644 --- a/.ci/stack-lts-12.yaml +++ b/.ci/stack-lts-12.yaml @@ -7,5 +7,6 @@ packages: - ../wai-middleware-prometheus extra-deps: - data-sketches-0.3.1.0 +- data-sketches-core-0.1.0.0 - unix-memory-0.1.2 resolver: lts-12.26 diff --git a/.ci/stack-lts-16.yaml b/.ci/stack-lts-16.yaml index 670ea01..e2da4ba 100644 --- a/.ci/stack-lts-16.yaml +++ b/.ci/stack-lts-16.yaml @@ -7,5 +7,6 @@ packages: - ../wai-middleware-prometheus extra-deps: - data-sketches-0.3.1.0 +- data-sketches-core-0.1.0.0 - unix-memory-0.1.2 resolver: lts-16.6 diff --git a/.ci/stack-lts-19.yaml b/.ci/stack-lts-19.yaml deleted file mode 100644 index 71ea7b4..0000000 --- a/.ci/stack-lts-19.yaml +++ /dev/null @@ -1,10 +0,0 @@ -flags: {} -packages: -- ../example/ -- ../prometheus-client -- ../prometheus-metrics-ghc -- ../prometheus-proc -- ../wai-middleware-prometheus -extra-deps: -- unix-memory-0.1.2 -resolver: lts-19.33 diff --git a/.ci/stack-lts-3.yaml b/.ci/stack-lts-3.yaml index 5562164..c752dc7 100644 --- a/.ci/stack-lts-3.yaml +++ b/.ci/stack-lts-3.yaml @@ -7,4 +7,5 @@ packages: extra-deps: - clock-0.8 - data-sketches-0.3.1.0 +- data-sketches-core-0.1.0.0 resolver: lts-3.22 diff --git a/.github/workflows/stack.yml b/.github/workflows/stack.yml index fee8ac0..43c2fb2 100644 --- a/.github/workflows/stack.yml +++ b/.github/workflows/stack.yml @@ -23,7 +23,6 @@ jobs: - .ci/stack-nightly.yaml - .ci/stack-lts-22.yaml - .ci/stack-lts-21.yaml - - .ci/stack-lts-19.yaml - .ci/stack-lts-16.yaml - .ci/stack-lts-12.yaml - .ci/stack-lts-3.yaml From 303dbb69bddbc75f3481e3f183b672b8beffb58d Mon Sep 17 00:00:00 2001 From: Will Coster Date: Sun, 3 Mar 2024 22:36:50 +0000 Subject: [PATCH 7/7] Drop older stack resolvers from ci --- .github/workflows/stack.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/stack.yml b/.github/workflows/stack.yml index 43c2fb2..3990fb0 100644 --- a/.github/workflows/stack.yml +++ b/.github/workflows/stack.yml @@ -24,8 +24,6 @@ jobs: - .ci/stack-lts-22.yaml - .ci/stack-lts-21.yaml - .ci/stack-lts-16.yaml - - .ci/stack-lts-12.yaml - - .ci/stack-lts-3.yaml steps: - uses: actions/checkout@v3