Skip to content

Releases: lydell/elm-watch

1.0.0-beta.13

05 Aug 20:23
Compare
Choose a tag to compare
  • Improved: elm-watch used to wait for elm make to finish, no matter how long it takes. Due to compiler bugs, certain input can cause elm make to hang. If you then changed your code to avoid the compiler bugs, elm-watch would notice your change but still wait for that previous elm make invocation to finish. In this version, elm-watch kills elm make after 10 seconds if you make a new change while it’s running. The idea is to avoid killing elm make to avoid corrupting the elm-stuff folder, but after 10 seconds it should have been done long ago.
  • Improved: If you delete the elm-stuff folder (like some compiler error messages suggest), elm-watch now automatically re-runs.
  • Improved: Compilation is now atomic. elm-watch used to run elm make --output=your/output.js and then read your/output.js and add the extra hot reloading code and run postprocessing. However, I managed to refresh the page in the browser while that was happening, so I got just Elm’s JS loaded and I was confused why the elm-watch UI wasn’t there. In this version, elm-watch runs elm make --output=elm-stuff/elm-watch/0.js instead – it first writes to a temporary file, and then writes to your real output path once everything is ready. Note: This also moves elm-stuff/elm-watch-stuff.json to elm-stuff/elm-watch/stuff.json, since the temporary files are written in elm-stuff/elm-watch/ and I wanted everything in there. Since elm-watch is a beta and elm-watch-stuff.json contains nothing essential I didn’t bother with any migration or so of it.
  • Improved: A tiny little performance boost by avoiding unnecessary string/buffer conversions internally.

1.0.0-beta.12

09 Jul 10:53
Compare
Choose a tag to compare
  • Fixed: A bug on Windows where long running postprocess commands weren’t killed as they are supposed to when compilation is interrupted by a new code change.
  • Improved: All tests now pass on Windows (locally, not in CI yet) and there are no known Windows issues.

1.0.0-beta.11

02 Jul 13:16
Compare
Choose a tag to compare
  • Improved: elm-watch now ships with a workaround for an Elm compiler bug, where elm emits some non-JSON when your elm-stuff/ folder is corrupt. The workaround results in a nicer error message on elm-watch’s side.

1.0.0-beta.10

08 May 19:15
Compare
Choose a tag to compare
  • Fixed: Tab characters are not allowed in Elm files. They are also not allowed inside JSON strings. The Elm compiler has a --report json flag which elm-watch uses. See where this is going? The compiler has a bug where when it encodes the “NO TABS” error as JSON, it doesn’t turn the literal tab character that was the problem into \t. This caused elm-watch to fail parsing the JSON. elm-watch now includes a workaround for this situation so it can display the error message.
  • Improved: If you start your target names with an emoji, elm-watch now tries to display them better.

1.0.0-beta.9

01 May 18:28
Compare
Choose a tag to compare
  • Improved: Injecting the hot reloading code is now ~20x faster. On a big project, it went from ~170 ms to ~10 ms for me.
  • Fixed: Time spent queuing for postprocessing is now calculated correctly.

1.0.0-beta.8

19 Mar 21:40
Compare
Choose a tag to compare
  • Fixed: All Elm programs except Browser.application works when served on the file:// protocol (when you open an HTML file straight in the browser). However, elm-watch hot reloading code accidentally triggered the Browser.application runtime error for file:// even on other program types, such as Browser.element. That is now fixed, so you can use Browser.element with a plain HTML file if you like.
  • Improved: Windows support. 80-90% of all tests pass. The example seems to work when playing around with it a little bit. You can definitely try it out on Windows, but I don’t dare promising there will be no problems.

1.0.0-beta.7

18 Mar 19:29
Compare
Choose a tag to compare
  • Removed: The terminal resize listener added in 1.0.0-beta.5:
    • I got the question if a rebuild really is triggered on resize. That’s an indication that it is too weird.
    • I got feedback that it can be useful to keep the scrolling position (when having many compilation errors) and making the terminal larger to better see an error. This means we can’t re-render either.
    • It’s not super bad without the resize listener. The target timings won’t be aligned and the separators won’t have the correct length.
    • Everything will still be rendered correctly on the next cycle.

1.0.0-beta.6

15 Mar 19:30
Compare
Choose a tag to compare
  • Improved: Running elm-watch in the (currently quite secret) debug mode now prints the Project data structure, which (among other things) shows the absolute paths of all interesting files in your project, such as which elm.json files elm-watch found and uses for your targets.

1.0.0-beta.5

15 Mar 07:48
Compare
Choose a tag to compare
  • Fixed: elm-watch now reacts to you resizing the terminal window. Previously, the separators between error messages would be too long or too short, and the timings of each target wouldn’t be right-aligned correctly.

1.0.0-beta.4

14 Mar 19:30
Compare
Choose a tag to compare
  • Fixed: When only type checking targets (because no Web Sockets are connected), the timing printed for parsing all imports of your code was wrong. Each target included the time of all previous targets instead of just timing itself.