LIST ONLY - not for sharing on reddit, discourse, hn, twitter, etc.
Thank you everyone for trying out the alpha, keeping it all in the #elm-dev slack, and generally making it a nice time! :)
I linked to new binaries from
here. New things include:
- elm init exists to start very basic projects
- I moved all @elm-lang repos to @elm, so elm-lang/core is now elm/core
- I fixed a bunch of the bugs ya'll reported. Not everything though!
- I found a pretty tricky bug with code gen of recursive values. Very sorry if you ran into it!
Recursive Values
One of the changes in 0.19 is that Elm is stricter about recursive values. They can only be at the top-level now. (I wrote about the compilation scheme used to generate recursive values
here.) It is still possible to write non-terminating values that Elm cannot detect. For example:
loop = (\_ -> loop) 0
Detecting this in general is
the halting problem, so as a best effort, the new binaries should show really pretty and helpful errors on initialization if you run into a situation like this. (It should show the loop with ascii art, like with cyclic dependencies.)
Please try going through your code and taking out as many Decode.lazy, Random.lazy, and Parser.lazy as you can. This is helpful because (1) you should not need as many as with 0.18 and (2) it will help find any oddities around this code!
Publishing Packages
With the switch from elm-lang/html to elm/html, I also dropped all the packages since they will all have incorrect elm.json files.
You will need to update your code and republish with a beta-1.0.0 tag. I wrote a little script to help me remove all alpha-1.0.0 tags:
for tag in $(git tag -l)
do
if [[ $tag == alpha-* ]]
then
echo $tag
git tag -d $tag
git push origin :refs/tags/$tag
fi
done
From there you can do something like this to republish with a beta tag:
git tag -a beta-1.0.0 -m "beta"
git push origin beta-1.0.0
rm -rf ~/.elm/
rm -rf elm-stuff/
elm publish