outwatch / purescript-outwatch

A functional and reactive UI framework based on Rx and VirtualDom
https://outwatch.github.io/?lang=purescript
Apache License 2.0
34 stars 5 forks source link

Issues building a project with PS 0.11.4 #13

Closed andreasthoelke closed 7 years ago

andreasthoelke commented 7 years ago

When trying to build one of the examples, I'm running into the following issues, which seem related to the purescript 0.11 transition:

Using pulp 11.0.0, purescript 0.11.4, if I do:

git clone https://github.com/OutWatch/purescript-outwatch cd purescript-outwatch npm install bower install npm run build:example-counter

I get:


  The following values are not defined in the foreign module for module RxJS.BehaviorSubject:

    _empty

* ERROR: Subcommand terminated with exit code 1

npm ERR! Darwin 16.5.0
npm ERR! argv "/usr/local/Cellar/node/7.2.1/bin/node" "/usr/local/bin/npm" "run" "build:example-counter-store"
npm ERR! node v7.2.1
npm ERR! npm  v4.0.3
npm ERR! code ELIFECYCLE
npm ERR! purescript-outwatch@0.6.0 build:example-counter-store: `npm run clean:output && pulp browserify --optimise --include examples/counter-store/src --to examples/counter-store/dist/app.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the purescript-outwatch@0.6.0 build:example-counter-store script 'npm run clean:output && pulp browserify --optimise --include examples/counter-store/src --to examples/counter-store/dist/app.js'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the purescript-outwatch package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     npm run clean:output && pulp browserify --optimise --include examples/counter-store/src --to examples/counter-store/dist/app.js
npm ERR! You can get information on how to open an issue for this project with:
npm ERR!     npm bugs purescript-outwatch
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!     npm owner ls purescript-outwatch
npm ERR! There is likely additional logging output above.

If I try to set up a fresh project with:

pulp init bower install purescript-outwatch

I get a long list of dialogs, this being the first:

Unable to find a suitable version for purescript-prelude, please choose one by typing one of the numbers below:
    1) purescript-prelude#^2.1.0 which resolved to 2.5.0 and is required by purescript-control#2.0.0, purescript-dom#3.8.1, purescript-eff#2.0.0, purescript-functions#2.0.0, purescript-invariant#2.0.0, purescript-newtype#1.3.0, purescript-outwatch#0.6.1
    2) purescript-prelude#^2.5.0 which resolved to 2.5.0 and is required by purescript-either#2.2.1, purescript-maybe#2.1.1
    3) purescript-prelude#^2.3.0 which resolved to 2.5.0 and is required by purescript-snabbdom#0.2.3
    4) purescript-prelude#^2.0.0 which resolved to 2.5.0 and is required by purescript-form-urlencoded#2.0.0
    5) purescript-prelude#^2.4.0 which resolved to 2.5.0 and is required by purescript-tuples#3.2.0
    6) purescript-prelude#^3.0.0 which resolved to 3.0.0 and is required by outw2, purescript-control#3.0.0, purescript-dom#4.3.1, purescript-eff#3.1.0, purescript-either#3.0.0, purescript-functions#3.0.0, purescript-invariant#3.0.0, purescript-maybe#3.0.0, purescript-newtype#2.0.0, purescript-nonempty#4.0.0, purescript-rxjs#eaf9609267, purescript-tuples#4.0.0

If I'm answering all with the highest option (6 in the above case) - which should give me PS 11 compatibility(?), and then run:

pulp build

I get:

Error 1 of 5:

  at bower_components/purescript-affjax/src/Network/HTTP/Affjax.purs line 58, column 1 - line 58, column 1

    Unable to parse module:
    The `!` symbol is no longer used for the kind of effects.
  The new equivalent is the named kind `Effect`, defined in `Control.Monad.Eff` in the `purescript-eff` library.

  See https://github.com/purescript/documentation/blob/master/errors/ErrorParsingModule.md for more information,
  or to contribute content related to this error.

Error 2 of 5:

  at bower_components/purescript-affjax/src/Network/HTTP/Affjax/Request.purs line 30, column 1 - line 30, column 1

    Unable to parse module:
    The `*` symbol is no longer used for the kind of types.
  The new equivalent is the named kind `Type`.

  See https://github.com/purescript/documentation/blob/master/errors/ErrorParsingModule.md for more information,
  or to contribute content related to this error.

plus 3 more errors related to PS 0.11 issues.

I eventually could get an example built by setting the critical libs as direct dependencies:

  "dependencies": {
    "purescript-prelude": "^3.0.0",
    "purescript-console": "^3.0.0",
    "purescript-eff": "^3.1.0",
    "purescript-snabbdom": "^1.0.0",
    "purescript-affjax": "^4.0.0",
    "purescript-foldable-traversable": "^3.0.0",
    "purescript-argonaut-core": "^3.1.0",
    "purescript-outwatch": "^0.6.1",
    "purescript-quickcheck": "^4.0.0",
    "purescript-rxjs": "https://github.com/LukaJCB/purescript-rxjs.git"

pulp browserify --to index.js then succeeds, however when loading the bundle in the bowser I get a multitude of errors like:

Uncaught TypeError: Cannot read property 'id' of undefined
    at emptyNodeAt (index.js:18128)
    at patch (index.js:18367)
    at index.js:41565
    at index.js:19510
    at index.js:19510
    at index.js:19510
    at SafeSubscriber._next (index.js:40681)
    at SafeSubscriber.__tryOrSetError (index.js:1284)
    at SafeSubscriber.next (index.js:1226)
    at Subscriber._next (index.js:1166)
LukaJCB commented 7 years ago

Ah, that's a shame, thank you for finding this, will work on fixing this soon!

andreasthoelke commented 7 years ago

Thank you for fixing this, @LukaJCB!