From be9a2433c21d1f7cbf5857dbc87e6c7a6ced4d33 Mon Sep 17 00:00:00 2001 From: Serhii Khoma Date: Fri, 11 Oct 2024 09:54:14 +0700 Subject: [PATCH 1/7] feat: migrate to spago@next --- .github/workflows/ci.yml | 48 ++++++++++++--------------------------- bower.json | 12 ---------- package.json | 8 +++---- packages.dhall | 5 ---- spago.dhall | 14 ------------ spago.yaml | 25 ++++++++++++++++++++ test/{ => Test}/Main.purs | 0 7 files changed, 43 insertions(+), 69 deletions(-) delete mode 100644 packages.dhall delete mode 100644 spago.dhall create mode 100644 spago.yaml rename test/{ => Test}/Main.purs (100%) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index fc54710..f73d5b4 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -9,58 +9,38 @@ on: jobs: build: runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - - name: Set up PureScript toolchain + - name: Set up a PureScript toolchain uses: purescript-contrib/setup-purescript@main with: - purescript: "unstable" + purescript: "latest" purs-tidy: "latest" + spago: "unstable" - name: Cache PureScript dependencies - uses: actions/cache@v2 + uses: actions/cache@v4 with: - key: ${{ runner.os }}-spago-${{ hashFiles('**/*.dhall') }} + key: ${{ runner.os }}-spago-${{ hashFiles('**/spago.lock') }} path: | .spago output - - name: Set up Node toolchain - uses: actions/setup-node@v2 - with: - node-version: "14.x" - - - name: Cache NPM dependencies - uses: actions/cache@v2 - env: - cache-name: cache-node-modules + - name: Setup node and npm + uses: actions/setup-node@v4 with: - path: ~/.npm - key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package.json') }} - restore-keys: | - ${{ runner.os }}-build-${{ env.cache-name }}- - ${{ runner.os }}-build- - ${{ runner.os }}- + cache: npm + cache-dependency-path: "**/package-lock.json" - name: Install NPM dependencies run: npm install - - name: Build the project - run: npm run build + - name: Build source + run: spago build --censor-stats --strict --ensure-ranges --pedantic-packages - name: Run tests - run: npm run test + run: spago test --offline --censor-stats --strict --pedantic-packages -- --censor-codes=UserDefinedWarning - - name: Check formatting + - name: Verify formatting run: purs-tidy check src test - - - name: Verify Bower & Pulp - run: | - npm install bower pulp@16.0.0-0 - npx bower install - npx pulp build -- --censor-lib --strict - if [ -d "test" ]; then - npx pulp test - fi diff --git a/bower.json b/bower.json index 6709f7a..376d3e6 100644 --- a/bower.json +++ b/bower.json @@ -15,17 +15,5 @@ "repository": { "type": "git", "url": "https://github.com/purescript-contrib/purescript-react.git" - }, - "dependencies": { - "purescript-effect": "^4.0.0", - "purescript-exceptions": "^6.0.0", - "purescript-maybe": "^6.0.0", - "purescript-nullable": "^6.0.0", - "purescript-prelude": "^6.0.0", - "purescript-typelevel-prelude": "^7.0.0", - "purescript-unsafe-coerce": "^6.0.0" - }, - "devDependencies": { - "purescript-console": "^6.0.0" } } diff --git a/package.json b/package.json index 5617636..5b9b29b 100644 --- a/package.json +++ b/package.json @@ -1,11 +1,11 @@ { "private": true, "scripts": { - "build": "spago build --purs-args '--censor-lib --strict'", - "test": "spago test --no-install" + "build": "spago build --censor-stats --strict --ensure-ranges --pedantic-packages", + "test": "spago test --offline" }, "devDependencies": { - "eslint": "^7.10.0", - "purescript-psa": "^0.8.2" + "eslint": "^9.12.0", + "purescript-psa": "^0.9.0" } } diff --git a/packages.dhall b/packages.dhall deleted file mode 100644 index bc9c4ee..0000000 --- a/packages.dhall +++ /dev/null @@ -1,5 +0,0 @@ -let upstream = - https://github.com/purescript/package-sets/releases/download/psc-0.15.4-20221208/packages.dhall - sha256:e3549e48d0170e14838d8f0c44172253947dcb6117b51a763f33dca34f00ba43 - -in upstream diff --git a/spago.dhall b/spago.dhall deleted file mode 100644 index 0119ab6..0000000 --- a/spago.dhall +++ /dev/null @@ -1,14 +0,0 @@ -{ name = "react" -, dependencies = - [ "console" - , "effect" - , "exceptions" - , "maybe" - , "nullable" - , "prelude" - , "typelevel-prelude" - , "unsafe-coerce" - ] -, packages = ./packages.dhall -, sources = [ "src/**/*.purs", "test/**/*.purs" ] -} diff --git a/spago.yaml b/spago.yaml new file mode 100644 index 0000000..937cd43 --- /dev/null +++ b/spago.yaml @@ -0,0 +1,25 @@ +package: + name: react + description: PureScript bindings for react + publish: + license: MIT + version: 11.0.0 + location: + githubOwner: purescript-contrib + githubRepo: purescript-react + dependencies: + - effect: ">=4.0.0 <5.0.0" + - exceptions: ">=6.1.0 <7.0.0" + - maybe: ">=6.0.0 <7.0.0" + - nullable: ">=6.0.0 <7.0.0" + - prelude: ">=6.0.1 <7.0.0" + - typelevel-prelude: ">=7.0.0 <8.0.0" + - unsafe-coerce: ">=6.0.0 <7.0.0" + test: + main: Test.Main + dependencies: + - console +workspace: + extraPackages: {} + packageSet: + registry: 60.5.0 diff --git a/test/Main.purs b/test/Test/Main.purs similarity index 100% rename from test/Main.purs rename to test/Test/Main.purs From 7f9a1bd32b0aecf59e7c2e72a2ef4b80392f5e93 Mon Sep 17 00:00:00 2001 From: Serhii Khoma Date: Fri, 11 Oct 2024 09:54:14 +0700 Subject: [PATCH 2/7] feat: migrate to spago@next --- bower.json | 4 ---- 1 file changed, 4 deletions(-) diff --git a/bower.json b/bower.json index 376d3e6..63deaf9 100644 --- a/bower.json +++ b/bower.json @@ -8,10 +8,6 @@ "react" ], "license": "MIT", - "ignore": [ - "*", - "!src/**/*" - ], "repository": { "type": "git", "url": "https://github.com/purescript-contrib/purescript-react.git" From aa38da4477e5fee3f5dea227e1c36daea577882f Mon Sep 17 00:00:00 2001 From: Serhii Khoma Date: Fri, 11 Oct 2024 12:21:04 +0700 Subject: [PATCH 3/7] fix: ci --- .github/workflows/ci.yml | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f73d5b4..5d0fbec 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -29,9 +29,19 @@ jobs: - name: Setup node and npm uses: actions/setup-node@v4 + + - name: Cache NPM dependencies + uses: actions/cache@v4 + env: + cache-name: cache-node-modules with: - cache: npm - cache-dependency-path: "**/package-lock.json" + path: ~/.npm + key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}-${{ hashFiles('**/package.json') }} + restore-keys: | + ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}- + ${{ runner.os }}-build-${{ env.cache-name }}- + ${{ runner.os }}-build- + ${{ runner.os }}- - name: Install NPM dependencies run: npm install From 87c22d890d45d2c74cc219606718d5a8091044be Mon Sep 17 00:00:00 2001 From: Serhii Khoma Date: Sat, 12 Oct 2024 18:21:39 +0700 Subject: [PATCH 4/7] feat: remove bower.json and empty package-lock.json --- .github/workflows/ci.yml | 2 +- bower.json | 15 --------------- 2 files changed, 1 insertion(+), 16 deletions(-) delete mode 100644 bower.json diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5d0fbec..89cbf03 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -50,7 +50,7 @@ jobs: run: spago build --censor-stats --strict --ensure-ranges --pedantic-packages - name: Run tests - run: spago test --offline --censor-stats --strict --pedantic-packages -- --censor-codes=UserDefinedWarning + run: spago test --offline --censor-stats --strict --pedantic-packages - name: Verify formatting run: purs-tidy check src test diff --git a/bower.json b/bower.json deleted file mode 100644 index 63deaf9..0000000 --- a/bower.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "purescript-react", - "homepage": "https://github.com/purescript-contrib/purescript-react", - "description": "PureScript bindings for react", - "main": "", - "keywords": [ - "purescript", - "react" - ], - "license": "MIT", - "repository": { - "type": "git", - "url": "https://github.com/purescript-contrib/purescript-react.git" - } -} From d660c25089206a9bd6b6d903fb2dcd15bb17c842 Mon Sep 17 00:00:00 2001 From: Serhii Khoma Date: Sat, 12 Oct 2024 18:45:28 +0700 Subject: [PATCH 5/7] feat: update eslint --- .eslintrc.json | 28 ---------------------------- eslint.config.mjs | 11 +++++++++++ package.json | 3 +-- 3 files changed, 12 insertions(+), 30 deletions(-) delete mode 100644 .eslintrc.json create mode 100644 eslint.config.mjs diff --git a/.eslintrc.json b/.eslintrc.json deleted file mode 100644 index 9d6a62b..0000000 --- a/.eslintrc.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "extends": "eslint:recommended", - "parserOptions": { "ecmaVersion": 6, "sourceType": "module" }, - "rules": { - "block-scoped-var": "error", - "consistent-return": "error", - "eqeqeq": "error", - "guard-for-in": "error", - "no-bitwise": "error", - "no-caller": "error", - "no-extra-parens": "off", - "no-extend-native": "error", - "no-loop-func": "error", - "no-new": "error", - "no-param-reassign": "error", - "no-return-assign": "error", - "no-sequences": "error", - "no-unused-expressions": "error", - "no-use-before-define": "error", - "no-undef": "error", - "no-eq-null": "error", - "radix": ["error", "always"], - "indent": ["error", 2, { "SwitchCase": 1 }], - "quotes": ["error", "double"], - "semi": ["error", "always"], - "strict": ["error", "global"] - } -} diff --git a/eslint.config.mjs b/eslint.config.mjs new file mode 100644 index 0000000..1baba1b --- /dev/null +++ b/eslint.config.mjs @@ -0,0 +1,11 @@ +import globals from "globals"; +import pluginJs from "@eslint/js"; +import pluginReact from "eslint-plugin-react"; + + +export default [ + {files: ["**/*.{js,mjs,cjs,jsx}"]}, + {languageOptions: { globals: globals.browser }}, + pluginJs.configs.recommended, + pluginReact.configs.flat.recommended, +]; \ No newline at end of file diff --git a/package.json b/package.json index 5b9b29b..7bec000 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,6 @@ "test": "spago test --offline" }, "devDependencies": { - "eslint": "^9.12.0", - "purescript-psa": "^0.9.0" + "eslint": "^9.12.0" } } From 5412f2ddea3d7fc4fa9b4e11994ddefb4488f05a Mon Sep 17 00:00:00 2001 From: Serhii Khoma Date: Mon, 14 Oct 2024 11:28:09 +0700 Subject: [PATCH 6/7] feat: bump version to 12.0.0 --- spago.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spago.yaml b/spago.yaml index 937cd43..215f134 100644 --- a/spago.yaml +++ b/spago.yaml @@ -3,7 +3,7 @@ package: description: PureScript bindings for react publish: license: MIT - version: 11.0.0 + version: 12.0.0 location: githubOwner: purescript-contrib githubRepo: purescript-react From c2e34d2b81af609fb90d9d44df9aeaa8e419cdfe Mon Sep 17 00:00:00 2001 From: Serhii Khoma Date: Mon, 14 Oct 2024 14:56:29 +0700 Subject: [PATCH 7/7] fix: libraries should not use package sets at all -> use solver --- spago.yaml | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/spago.yaml b/spago.yaml index 215f134..7fb200d 100644 --- a/spago.yaml +++ b/spago.yaml @@ -19,7 +19,4 @@ package: main: Test.Main dependencies: - console -workspace: - extraPackages: {} - packageSet: - registry: 60.5.0 +workspace: {}