Skip to content

Commit a2c0c82

Browse files
Migrate to Spago and update CI (#138)
1 parent bf5029f commit a2c0c82

15 files changed

Lines changed: 243 additions & 224 deletions

File tree

‎.eslintrc.json‎

Lines changed: 0 additions & 26 deletions
This file was deleted.

‎.github/workflows/ci.yml‎

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -6,30 +6,30 @@ on:
66
pull_request:
77
branches: [master]
88

9+
permissions:
10+
contents: read
11+
912
jobs:
1013
build:
1114
runs-on: ubuntu-latest
1215
steps:
13-
- uses: actions/checkout@v2
14-
15-
- uses: purescript-contrib/setup-purescript@main
16-
with:
17-
purescript: "unstable"
16+
- uses: actions/checkout@v6
1817

19-
- uses: actions/setup-node@v2
18+
- uses: actions/setup-node@v6
2019
with:
21-
node-version: "14.x"
20+
node-version: "24"
2221

2322
- name: Install dependencies
24-
run: |
25-
npm install -g bower
26-
npm install
27-
bower install --production
23+
run: npm install
2824

2925
- name: Build source
30-
run: npm run-script build
26+
run: npm run build
3127

3228
- name: Run tests
33-
run: |
34-
bower install
35-
npm run-script test --if-present
29+
run: npm test
30+
31+
- name: Lint
32+
run: npm run lint
33+
34+
- name: Check formatting
35+
run: npm run format:check

‎.gitignore‎

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
/.*
22
!/.gitignore
3-
!/.eslintrc.json
3+
!/.tidyrc.json
4+
!/.oxfmtrc.json
45
!/.github/
56
/bower_components/
67
/node_modules/
78
/output/
8-
package-lock.json
9+
/package-lock.json
10+
/spago.lock

‎.oxfmtrc.json‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
"trailingComma": "es5"
3+
}

‎.tidyrc.json‎

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
{
2+
"importSort": "ide",
3+
"importWrap": "source",
4+
"indent": 2,
5+
"operatorsFile": null,
6+
"ribbon": 1,
7+
"typeArrowPlacement": "first",
8+
"unicode": "never",
9+
"width": null
10+
}

‎CHANGELOG.md‎

Lines changed: 22 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
Notable changes to this project are documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
44

5-
## [Unreleased]
5+
## [Unreleased](https://github.com/purescript/purescript-quickcheck/compare/v8.0.2...HEAD)
66

77
Breaking changes:
88

@@ -12,14 +12,22 @@ Bugfixes:
1212

1313
Other improvements:
1414

15+
## [v8.0.2](https://github.com/purescript/purescript-quickcheck/releases/tag/v8.0.2) - 2026-10-17
16+
17+
Other improvements:
18+
19+
- Migrate from Bower/Pulp to Spago and update CI, linting, and formatting (#138 by @thomashoneyman).
20+
1521
## [v8.0.1](https://github.com/purescript/purescript-quickcheck/releases/tag/v8.0.1) - 2022-04-27
1622

1723
Bugfixes:
24+
1825
- Remove duplicate `numbers` import from the bower.json file to support publishing to Pursuit (#128 by @thomashoneyman)
1926

2027
## [v8.0.0](https://github.com/purescript/purescript-quickcheck/releases/tag/v8.0.0) - 2022-04-27
2128

2229
Breaking changes:
30+
2331
- Migrate FFI to ES modules (#130 by @kl0tl and @JordanMartinez)
2432
- Replaced polymorphic proxies with monomorphic `Proxy` (#132 by @JordanMartinez)
2533
- Make `frequency` use `NonEmptyArray` (#131 by @JordanMartinez)
@@ -29,34 +37,42 @@ Breaking changes:
2937
New features:
3038

3139
Bugfixes:
40+
3241
- `quickCheckPure` and `quickCheckPure'` stack safety (#127)
3342

3443
Other improvements:
44+
3545
- Drop `math` dependency; update imports (#133 by @JordanMartinez)
3646

3747
## [v7.1.0](https://github.com/purescript/purescript-quickcheck/releases/tag/v7.1.0) - 2021-04-27
3848

3949
New features:
50+
4051
- Export `enum` and `randomSampleOne` (#125 by @JordanMartinez)
4152

4253
Other improvements:
54+
4355
- Fix warning revealed by v0.14.1 PS release (#125 by @JordanMartinez)
4456

4557
## [v7.0.0](https://github.com/purescript/purescript-quickcheck/releases/tag/v7.0.0) - 2021-02-26
4658

4759
Breaking changes:
60+
4861
- Added support for PureScript 0.14 and dropped support for all previous versions (#115)
4962
- Fixed `genericCoarbitrary` so it no longer explicitly relates to the generated data (#99)
5063
- Replaced `NonEmpty Array` and `NonEmpty List` with `NonEmptyArray` and `NonEmptyList` (#118)
51-
- Replaced `globals` dependency with `numbers` (#120)
64+
- Replaced `globals` dependency with `numbers` (#120)
5265

5366
New features:
54-
- Added `randomSampleOne` (#114)
67+
68+
- Added `randomSampleOne` (#114)
5569

5670
Bugfixes:
57-
- Allowed full `Number` range for chooseFloat (#97)
71+
72+
- Allowed full `Number` range for chooseFloat (#97)
5873

5974
Other improvements:
75+
6076
- Dropped `generics-rep` dependency as its now included in `prelude` (#121)
6177
- Replaced monomorphic proxies with `Type.Proxy.Proxy` and polymorphic variables (#116)
6278
- Migrated CI to GitHub Actions and updated installation instructions to use Spago (#117)
@@ -118,7 +134,7 @@ Other improvements:
118134
- Updated for PureScript 0.11
119135
- Use `NonEmpty` for `Gen`s where called for (@matthewleon)
120136
- Improved behaviour of `chooseInt` (@matthewleon)
121-
- Added `Arbitrary` and `Coarbitrary` instances for `NonEmpty` and `NonEmptyList` (@matthewleon)
137+
- Added `Arbitrary` and `Coarbitrary` instances for `NonEmpty` and `NonEmptyList` (@matthewleon)
122138
- Added `enum` `Gen` for `BoundedEnum` values (@matthewleon)
123139

124140
## [v3.1.1](https://github.com/purescript/purescript-quickcheck/releases/tag/v3.1.1) - 2016-11-22
@@ -202,6 +218,7 @@ This release works with versions 0.7.\* of the PureScript compiler. It will not
202218
## [v0.5.0](https://github.com/purescript/purescript-quickcheck/releases/tag/v0.5.0) - 2015-02-21
203219

204220
**This release requires PureScript v0.6.8 or later**
221+
205222
- Updated dependencies
206223

207224
## [v0.4.0](https://github.com/purescript/purescript-quickcheck/releases/tag/v0.4.0) - 2015-01-10

‎GUIDE.md‎

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,12 @@ QuickCheck works by generating random data with which to test your properties. T
1616

1717
QuickCheck defines the `quickCheck` function, which will print test results to the console, or fail with an exception in the event of a test failure.
1818

19-
Create a new project using Pulp, install `purescript-quickcheck`, and open PSCi:
19+
Create a new project using Spago, install `quickcheck`, and open PSCi:
2020

2121
```text
22-
pulp init
23-
bower install purescript-quickcheck
24-
pulp repl
22+
spago init
23+
spago install quickcheck
24+
spago repl
2525
```
2626

2727
Start by importing the QuickCheck library:

‎bower.json‎

Lines changed: 0 additions & 54 deletions
This file was deleted.

‎package.json‎

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,17 @@
11
{
22
"private": true,
33
"scripts": {
4-
"clean": "rimraf output && rimraf .pulp-cache",
5-
"build": "eslint src && pulp build -- --censor-lib --strict",
6-
"test": "pulp test"
4+
"build": "spago build",
5+
"test": "spago test",
6+
"lint": "oxlint --deny-warnings src test",
7+
"format": "purs-tidy format-in-place src test && oxfmt --write .",
8+
"format:check": "purs-tidy check src test && oxfmt --check ."
79
},
810
"devDependencies": {
9-
"eslint": "^7.15.0",
10-
"pulp": "16.0.0-0",
11-
"purescript-psa": "^0.8.2",
12-
"rimraf": "^3.0.2"
11+
"oxfmt": "^0.73.0",
12+
"oxlint": "^1.88.0",
13+
"purescript": "^0.15.16",
14+
"purs-tidy": "^0.11.1",
15+
"spago": "^1.0.5"
1316
}
1417
}

‎spago.yaml‎

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
package:
2+
name: quickcheck
3+
description: An implementation of QuickCheck in PureScript.
4+
build:
5+
strict: true
6+
pedanticPackages: true
7+
publish:
8+
version: 8.0.2
9+
license: BSD-3-Clause
10+
location:
11+
githubOwner: purescript
12+
githubRepo: purescript-quickcheck
13+
dependencies:
14+
- arrays: ">=7.0.0 <8.0.0"
15+
- console: ">=6.0.0 <7.0.0"
16+
- control: ">=6.0.0 <7.0.0"
17+
- effect: ">=4.0.0 <5.0.0"
18+
- either: ">=6.0.0 <7.0.0"
19+
- enums: ">=6.0.0 <7.0.0"
20+
- exceptions: ">=6.0.0 <7.0.0"
21+
- foldable-traversable: ">=6.0.0 <7.0.0"
22+
- gen: ">=4.0.0 <5.0.0"
23+
- identity: ">=6.0.0 <7.0.0"
24+
- integers: ">=6.0.0 <7.0.0"
25+
- lazy: ">=6.0.0 <7.0.0"
26+
- lcg: ">=4.0.0 <5.0.0"
27+
- lists: ">=7.0.0 <8.0.0"
28+
- maybe: ">=6.0.0 <7.0.0"
29+
- newtype: ">=5.0.0 <6.0.0"
30+
- nonempty: ">=7.0.0 <8.0.0"
31+
- numbers: ">=9.0.0 <10.0.0"
32+
- partial: ">=4.0.0 <5.0.0"
33+
- prelude: ">=6.0.0 <7.0.0"
34+
- record: ">=4.0.0 <5.0.0"
35+
- st: ">=6.0.0 <7.0.0"
36+
- strings: ">=6.0.0 <7.0.0"
37+
- tailrec: ">=6.0.0 <7.0.0"
38+
- transformers: ">=6.0.0 <7.0.0"
39+
- tuples: ">=7.0.0 <8.0.0"
40+
test:
41+
main: Test.Main
42+
strict: true
43+
pedanticPackages: true
44+
dependencies:
45+
- assert: ">=6.0.0 <7.0.0"
46+
workspace: {}

0 commit comments

Comments
 (0)