Community RC1 for Elm 0.19.1

Keep discussion on Discourse and Slack. Please do not post on HN, reddit, twitter, etc.

The goal of 0.19.1 is generally to clean up the rough edges introduced in 0.19.0 such that we have a really solid foundation for newcomers, professionals, scientists, etc.

The BETA went well a while back, so the next phase is to make sure that the updated elm-test is working as expected. This is called Release Candidate 1 (RC1) and hopefully it will be the last round before a public release.

Instructions

Use the following commands to download the elm RC1 binary into one of your projects:

# Mac
curl -L -o elm https://44a95588fe4cc47efd96-ec3c2a753a12d2be9f23ba16873acc23.ssl.cf2.rackcdn.com/elm-0_19_1-rc1-mac
chmod +x elm

# Linux
curl -L -o elm https://44a95588fe4cc47efd96-ec3c2a753a12d2be9f23ba16873acc23.ssl.cf2.rackcdn.com/elm-0_19_1-rc1-linux
chmod +x elm

# Windows
# Download https://44a95588fe4cc47efd96-ec3c2a753a12d2be9f23ba16873acc23.ssl.cf2.rackcdn.com/elm-0_19_1-rc1-windows.exe

You should now have a file named elm (or elm.exe on Windows) that you can run directly. Try running ./elm --version to make sure it prints out 0.19.1-rc-1.

Now get the new elm-test beta by running:

npm install elm-test@beta
./node_modules/.bin/elm-test --version # 0.19.1-beta2

This version of elm-test should work with 0.19.1, but not with previous versions.

Run with ./node_modules/.bin/elm-test --compiler=./elm to use the local RC1 version of the compiler.

Goals

The goal now is to make sure that:

  1. Everything seems alright with the elm RC1 binaries.
  2. elm-test works as expected with your projects.
  3. The upgrade instructions cover everything.

To report anything that may need changes, please create an SSCCE and report your findings in this thread on discourse or in the #core-coordination channel on slack.


Note: I am hoping to do the public release next week, so now is the time for authors to do any remaining prep work for various command line tools. There should not be much to do except try things out one last time.


Thank you to anyone who gives RC1 a try, and please keep discussion on discourse and slack. There may still be problems, so I’d like to do more testing before this reaches a broader audience through HN, reddit, twitter, etc. I’ll make a post on elm-lang.org and share it on twitter when it is ready for a broader release like that!

And thank you to the folks who helped test the ALPHA and BETA so far!

52 Likes

Thank you for all of the work on this!

I’m running the release candidate and haven’t noticed any issues yet on our app, and it has fixed the Map.! bug with the debugger for us.

Compile times are around 3.5 seconds for a full build and half a second for incremental builds, the codebase is ~80K LOC.

For anyone wanting to test out the release with elm-webpack-loader you can set the pathToElm option to point it to the RC1 binary.

{
  loader: "elm-webpack-loader",
  options: {
    cwd: __dirname,
    runtimeOptions: "-A128m -H128m -n8m",
    debug: true,
    pathToElm: "/usr/local/bin/elm-19-rc1"
  }
}
12 Likes

Tested a smaller project (~7K LOC) and did not see any regressions. The only thing I did run into was a ‘Confusing File’ error (I didn’t see it listed in the upgrade instructions), which was caused by a source tree layout that needed to be cleaned up anyways.

Compile times have been reduced from 223ms to 120ms.

4 Likes

Tested in two of my projects (about 8K and 28K LOC) - works fine. Found two issues with ambiguous imports.

In the smaller project I have few hundreds tests - all of them ran without an issue.
In the larger project compile time seemingly went down a bit.

Thanks for your great job Evan!

4 Likes

Tested on a 42k LOC project, the problem with not compiling with debug flag is gone and I haven’t seen any issues using the binary.
The 1.2k tests in the project ran fine after synchronising two file paths with module names. The error message shown was very clear :).

2 Likes

Is there a tagged commit in elm/compiler than I can use to test on NixOS?

2 Likes

I think you can use just latest master. The reason for missing tag is probably to preserve public from consuming the release.

1 Like

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.