diff --git a/README.md b/README.md index 1b7f48db..f72657f3 100644 --- a/README.md +++ b/README.md @@ -46,7 +46,6 @@ Most of these features can be controlled not only from the toolbar, but also usi git clone git@github.com:purescript/trypurescript.git cd trypurescript/client -bower install npm install npm run build npm run bundle diff --git a/client/.gitignore b/client/.gitignore index 06268e3b..370786a3 100644 --- a/client/.gitignore +++ b/client/.gitignore @@ -1,13 +1,10 @@ -/bower_components/ /node_modules/ -/.pulp-cache/ /package-lock.json /output/ /generated-docs/ -/.psc-package/ /.psc* /.purs* /.psa* /.stack* /js/index.js - +.spago/ diff --git a/client/bower.json b/client/bower.json deleted file mode 100644 index db33e025..00000000 --- a/client/bower.json +++ /dev/null @@ -1,62 +0,0 @@ -{ - "name": "try-purescript", - "ignore": [ - "**/.*", - "node_modules", - "bower_components", - "output" - ], - "dependencies": { - "purescript-console": "^4.1.0", - "purescript-foreign-generic": "^10.0.0", - "purescript-jquery": "^5.0.0", - "purescript-js-timers": "^4.0.1", - "purescript-parallel": "^4.0.0", - "purescript-prelude": "^4.1.0", - "purescript-random": "^4.0.0", - "purescript-web-html": "^2.3.0" - }, - "devDependencies": { - "purescript-arrays": "^5.1.0", - "purescript-bifunctors": "^4.0.0", - "purescript-console": "^4.1.0", - "purescript-const": "^4.1.0", - "purescript-contravariant": "^4.0.0", - "purescript-control": "^4.1.0", - "purescript-distributive": "^4.0.0", - "purescript-effect": "^2.0.0", - "purescript-either": "^4.1.0", - "purescript-enums": "^4.0.0", - "purescript-exceptions": "^4.0.0", - "purescript-exists": "^4.0.0", - "purescript-foldable-traversable": "^4.1.0", - "purescript-foreign": "^5.0.0", - "purescript-foreign-object": "^2.0.0", - "purescript-free": "^5.1.0", - "purescript-functions": "^4.0.0", - "purescript-functors": "^3.1.0", - "purescript-generics-rep": "^6.1.0", - "purescript-globals": "^4.0.0", - "purescript-identity": "^4.1.0", - "purescript-integers": "^4.0.0", - "purescript-lazy": "^4.0.0", - "purescript-math": "^2.1.0", - "purescript-maybe": "^4.0.0", - "purescript-ordered-collections": "^1.0.0", - "purescript-prelude": "^4.1.0", - "purescript-profunctor": "^4.0.0", - "purescript-proxy": "^3.0.0", - "purescript-quickcheck": "^6.1.0", - "purescript-random": "^4.0.0", - "purescript-refs": "^4.1.0", - "purescript-semirings": "^5.0.0", - "purescript-st": "^4.0.0", - "purescript-strings": "^4.0.0", - "purescript-tailrec": "^4.0.0", - "purescript-transformers": "^4.1.0", - "purescript-tuples": "^5.1.0", - "purescript-typelevel-prelude": "^5.0.2", - "purescript-unfoldable": "^4.0.0", - "purescript-validation": "^4.0.0" - } -} diff --git a/client/package.json b/client/package.json index d17d3499..f8708fed 100644 --- a/client/package.json +++ b/client/package.json @@ -1,14 +1,14 @@ { "private": true, "scripts": { - "clean": "rimraf output && rimraf .pulp-cache", - "build": "pulp build -- --censor-lib --strict", - "bundle": "pulp build -O --to js/index.js" + "clean": "rimraf output", + "build": "spago build --purs-args '--censor-lib --strict'", + "bundle": "spago bundle-app --to js/index.js" }, "devDependencies": { - "pulp": "^13.0.0", - "purescript-psa": "^0.7.3", "purescript": "^0.13.6", - "rimraf": "^2.5.4" + "purescript-psa": "^0.7.3", + "rimraf": "^2.5.4", + "spago": "^0.14.0" } } diff --git a/client/packages.dhall b/client/packages.dhall new file mode 100644 index 00000000..d293079b --- /dev/null +++ b/client/packages.dhall @@ -0,0 +1,128 @@ +{- +Welcome to your new Dhall package-set! + +Below are instructions for how to edit this file for most use +cases, so that you don't need to know Dhall to use it. + +## Warning: Don't Move This Top-Level Comment! + +Due to how `dhall format` currently works, this comment's +instructions cannot appear near corresponding sections below +because `dhall format` will delete the comment. However, +it will not delete a top-level comment like this one. + +## Use Cases + +Most will want to do one or both of these options: +1. Override/Patch a package's dependency +2. Add a package not already in the default package set + +This file will continue to work whether you use one or both options. +Instructions for each option are explained below. + +### Overriding/Patching a package + +Purpose: +- Change a package's dependency to a newer/older release than the + default package set's release +- Use your own modified version of some dependency that may + include new API, changed API, removed API by + using your custom git repo of the library rather than + the package set's repo + +Syntax: +Replace the overrides' "{=}" (an empty record) with the following idea +The "//" or "⫽" means "merge these two records and + when they have the same value, use the one on the right:" +------------------------------- +let overrides = + { packageName = + upstream.packageName // { updateEntity1 = "new value", updateEntity2 = "new value" } + , packageName = + upstream.packageName // { version = "v4.0.0" } + , packageName = + upstream.packageName // { repo = "https://www.example.com/path/to/new/repo.git" } + } +------------------------------- + +Example: +------------------------------- +let overrides = + { halogen = + upstream.halogen // { version = "master" } + , halogen-vdom = + upstream.halogen-vdom // { version = "v4.0.0" } + } +------------------------------- + +### Additions + +Purpose: +- Add packages that aren't already included in the default package set + +Syntax: +Replace the additions' "{=}" (an empty record) with the following idea: +------------------------------- +let additions = + { package-name = + { dependencies = + [ "dependency1" + , "dependency2" + ] + , repo = + "https://example.com/path/to/git/repo.git" + , version = + "tag ('v4.0.0') or branch ('master')" + } + , package-name = + { dependencies = + [ "dependency1" + , "dependency2" + ] + , repo = + "https://example.com/path/to/git/repo.git" + , version = + "tag ('v4.0.0') or branch ('master')" + } + , etc. + } +------------------------------- + +Example: +------------------------------- +let additions = + { benchotron = + { dependencies = + [ "arrays" + , "exists" + , "profunctor" + , "strings" + , "quickcheck" + , "lcg" + , "transformers" + , "foldable-traversable" + , "exceptions" + , "node-fs" + , "node-buffer" + , "node-readline" + , "datetime" + , "now" + ] + , repo = + "https://github.com/hdgarrood/purescript-benchotron.git" + , version = + "v7.0.0" + } + } +------------------------------- +-} + + +let upstream = + https://github.com/purescript/package-sets/releases/download/psc-0.13.6-20200404/packages.dhall sha256:f239f2e215d0cbd5c203307701748581938f74c4c78f4aeffa32c11c131ef7b6 + +let overrides = {=} + +let additions = {=} + +in upstream // overrides // additions diff --git a/client/spago.dhall b/client/spago.dhall new file mode 100644 index 00000000..8cfd517e --- /dev/null +++ b/client/spago.dhall @@ -0,0 +1,57 @@ +{- +Welcome to a Spago project! +You can edit this file as you like. +-} +{ name = "try-purescript" +, dependencies = + [ "arrays" + , "bifunctors" + , "console" + , "const" + , "contravariant" + , "control" + , "distributive" + , "effect" + , "either" + , "enums" + , "exceptions" + , "exists" + , "foldable-traversable" + , "foreign" + , "foreign-generic" + , "foreign-object" + , "free" + , "functions" + , "functors" + , "generics-rep" + , "globals" + , "identity" + , "integers" + , "jquery" + , "js-timers" + , "lazy" + , "math" + , "maybe" + , "ordered-collections" + , "parallel" + , "prelude" + , "profunctor" + , "proxy" + , "psci-support" + , "quickcheck" + , "random" + , "refs" + , "semirings" + , "st" + , "strings" + , "tailrec" + , "transformers" + , "tuples" + , "typelevel-prelude" + , "unfoldable" + , "validation" + , "web-html" + ] +, packages = ./packages.dhall +, sources = [ "src/**/*.purs" ] +}