Plan for 0.14 pre-release

358 views
Skip to first unread message

Evan Czaplicki

unread,
Nov 17, 2014, 9:46:31 PM11/17/14
to elm-d...@googlegroups.com
So I want to get a 0.14 pre-release out this week. Specifically this evening. I'm about to grab dinner, but I want some public commitment so I feel I can't wait til tomorrow :P

The key blocker is the package catalog website. It's ready enough, but I don't want to be committed to the packages we publish this week. We also may mess stuff up, stuff may still change, etc.

So here's my plan. I am going to do everything according to enforced versioning, tagging according to the rules of elm-package. Next week, I'll destroy the database of this website and we'll start again. I'll roll back all my tags to 1.0.0 and reality will start again. Obviously this is not ideal, but a bunch of people are blocking on this right now, specifically because all the build tools have changed (so it's a one time thing).

The idea is to do a trial run, work out all the kinks, and then never look back. Throughout this week, I may need to trash the database for various reasons so I'll let everyone on the list know when that has happened. If the database goes, you will be in an inconsistent state, so you need to trash your elm-stuff/ as well.

Sounds plausible?

Richard Feldman

unread,
Nov 17, 2014, 9:49:51 PM11/17/14
to elm-d...@googlegroups.com
Works for me!

Evan Czaplicki

unread,
Nov 18, 2014, 4:27:19 AM11/18/14
to elm-d...@googlegroups.com
Okay, here's the process as of right now:
The key difference is that things now point to package.elm-lang.org which actually exists online now. So at this point, it should be possible to:
  • use elm-package to install, publish, and diff packages
  • browse published packages at package.elm-lang.org
  • use elm-make to build whatever project you want to try out
  • build the package.elm-lang.org website yourself by checking out the repo in Elm-Platform/master/ and linking it to the shared sandbox by running (cabal sandbox init --sandbox=..) from the root of the cloned repo. Build the server with (cabal build), run (elm-package install) to get all the dependencies, and then run ./dist/build/run-server/run-server to see it in action. If you are changing frontend/ you'll need to restart the server to see it recompile.
NOTE: Comments on elm-package and elm-make are useful at this stage. Comments on elm-lang/core and evancz/elm-html are useful, those packages are close-ish to ready. Comments on everything else are not useful right now! The other stuff is not done. I know! The package catalog website has some visual stuff going on, some pages are missing. Yes, I am aware.

Things that are not ready include:
  • elm-repl - it sort of works, but type signatures are missing
  • elm-reactor - something is weird with setting it up via cabal right now
  • the main elm-lang.org website - no idea what the status is
So my tasks for tomorrow will be getting elm-repl and elm-reactor going again. It seems not so bad, elm-repl was pretty quick.

In any case, that should be enough to get the 3 or 4 folks who were having trouble building going. I'll try to get installers out soon though.

Finally, my biggest question right now is about [] vs List, so let me know how much you like it after you try it out.

--
You received this message because you are subscribed to the Google Groups "Elm Discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email to elm-discuss...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Evan Czaplicki

unread,
Nov 18, 2014, 4:31:11 AM11/18/14
to elm-d...@googlegroups.com
As a side note, if you want to help in some way but are not sure how, a great thing to do would be to get the tests on elm-lang/core running properly again. Max and Alex know the most about that stuff, so ask them, not me!

Alex Neslusan

unread,
Nov 18, 2014, 5:43:42 AM11/18/14
to elm-d...@googlegroups.com
I've been really busy lately, but I'd like to try to get this working again!

Evan Czaplicki

unread,
Nov 18, 2014, 5:53:49 AM11/18/14
to elm-d...@googlegroups.com
No pressure! I think we'll get stuff done, so don't feel obligated. I understand when things are busy :)
--
Sent from Gmail Mobile

Rudi Chen

unread,
Nov 19, 2014, 4:19:16 AM11/19/14
to elm-d...@googlegroups.com
Quick note, runhaskell BuildFromSource.hs took a few tries before it
compiled everything for me, but it never compiled the executable "elm"
which elm-reactor needs. Fortunately, using the 0.13 version seems to
work for now.

Also, I haven't seen this mentioned anywhere in the docs, but elm-repl
requires ncurses (e.g. libncurses5-dev) which isn't installed by
default on various Ubuntu branches I tried and doesn't fetch it
automatically either.

I'm still porting my code from 0.14 but so far looks good, nice to see
some of the cleanup in elm-html. I don't feel very strongly on the
List vs [], I don't feel impacted in anyway by the change, though List
is more consistent with the rest of type signatures I suppose.

Evan Czaplicki

unread,
Nov 19, 2014, 4:32:23 AM11/19/14
to elm-d...@googlegroups.com
As of a few minutes ago, elm-reactor should be working if you update absolutely everything. If you don't need it, probably focus on other things. If you have not tried any of this stuff yet, now elm-reactor is usable!

Can you start an issue about the ncurses dependency? I was not aware of that, and it does not sound necessary. Max or Joe, any ideas what relies on that? I think they both get notified when an issue is opened, but they may have some intuition.

Max New

unread,
Nov 19, 2014, 7:18:05 AM11/19/14
to Evan Czaplicki, elm-d...@googlegroups.com
On Wed, Nov 19, 2014 at 4:32 AM, Evan Czaplicki <eva...@gmail.com> wrote:
As of a few minutes ago, elm-reactor should be working if you update absolutely everything. If you don't need it, probably focus on other things. If you have not tried any of this stuff yet, now elm-reactor is usable!

Can you start an issue about the ncurses dependency? I was not aware of that, and it does not sound necessary. Max or Joe, any ideas what relies on that? I think they both get notified when an issue is opened, but they may have some intuition.

By default haskeline uses terminfo on any non-windows OS: https://github.com/judah/haskeline/blob/master/haskeline.cabal#L123-L126 which depends on curses.
The advantages to using terminfo/curses are listed here: https://github.com/judah/haskeline/blob/master/haskeline.cabal#L28-L38, but you can always pass a flag to say not to use it, in which case you can install without curses.

J David Eisenberg

unread,
Nov 19, 2014, 1:30:28 PM11/19/14
to elm-d...@googlegroups.com


On Wednesday, November 19, 2014 1:32:23 AM UTC-8, Evan wrote:
As of a few minutes ago, elm-reactor should be working if you update absolutely everything. If you don't need it, probably focus on other things. If you have not tried any of this stuff yet, now elm-reactor is usable!

Where, precisely, should I go to get this updated version? I tried doing

runhaskell BuildFromSource.hs master

but the result said it was still 0.13 when I did elm --version.

Also, does the change to List and removal of cons mean that I can no longer use [ ] to create a list?

 

Janis Voigtländer

unread,
Nov 19, 2014, 1:43:53 PM11/19/14
to elm-d...@googlegroups.com
> Also, does the change to List and removal of cons mean that I can no
> longer use [ ] to create a list?

Oh, I very much hope that "removal of cons" is not something that has happened.

Evan Czaplicki

unread,
Nov 19, 2014, 4:11:39 PM11/19/14
to elm-d...@googlegroups.com
You are using the new stuff, but I do not bump versions until release. That's sort of a historical holdover from when cabal lacked sandboxes and things were more awful than today managing different versions.

At the type level, [a] has become (List a) but nothing else changed. I recognize that that thread did not go well :P I think the root question is "what's the right default sequence representation?" but that's for another release at this point.

Rudi Chen

unread,
Nov 19, 2014, 11:46:37 PM11/19/14
to elm-d...@googlegroups.com
Silly question, where did Html.toElement go...?

Evan Czaplicki

unread,
Nov 19, 2014, 11:49:41 PM11/19/14
to elm-d...@googlegroups.com
It may have fallen out when I refactored the modules. I think I was planning to do another pass over it but got distracted. I'll add it back and ping here when it's around :) In the meantime, I think you can use the one in evancz/virtual-dom without a problem.

Rudi Chen

unread,
Nov 20, 2014, 1:53:14 AM11/20/14
to elm-d...@googlegroups.com
Yup, I've managed to compile everything after using the one in VirtualDom and changing the code to use the new Channels.

Almost there! One more thing - now when I run with elm-reactor, I get "ElmRuntime not defined". I saw that you have a commit that removed it, so I'm not sure why this happens - I have everything updated to the new version. elm-reactor still looks for the executable 'elm' which I get from 0.13 though, so I guess core.js from 0.13 got pulled in?

Evan Czaplicki

unread,
Nov 21, 2014, 2:14:03 AM11/21/14
to elm-d...@googlegroups.com
Html should have the functions toElement and fromElement now.

Are you sure you have the latest version of elm-reactor? The things you are saying do not sound right.

Rudi Chen

unread,
Nov 21, 2014, 4:00:25 AM11/21/14
to elm-d...@googlegroups.com
I have the latest version, I deleted the master/ directory and rebuilt the whole thing yesterday. Using 'which elm-reactor' indeed prints the path of the latest compiled version in the master/ directory.

Let's see, so the first thing that seems wrong is that elm-reactor requires the elm executable which I must get from 0.13/. Can you run elm-reactor if there is no 'elm' executable?

Otherwise, the two files in elm-stuff/ that have references to ElmRuntime are :
elm-stuff/packages/evancz/virtual-dom/1.0.0/src/wrapper.js:    var RenderUtils = ElmRuntime.use(ElmRuntime.Render.Utils);
elm-stuff/packages/evancz/virtual-dom/1.0.0/src/Native/VirtualDom.js:   var RenderUtils = ElmRuntime.use(ElmRuntime.Render.Utils);

So I changed elm-package.json to look like this, bumping the virtual-dom version since I see from your commits that there is a new one:
{
    "version": "1.0.0",
    "summary": "helpful summary of your project, less than 80 characters",
    "repository": "https://github.com/USER/PROJECT.git",
    "license": "BSD3",
    "source-directories": [
        "."
    ],
    "exposed-modules": [],
    "dependencies": {
        "evancz/virtual-dom": "1.1.0",
        "evancz/elm-html": "1.1.0",
        "elm-lang/core": "1.0.0"
    }
}

But I can't use it, because elm-html still needs 1.0.0. Finally, if I use elm-html 1.1.0, I get :

Error in package evancz/elm-html 1.1.0 when compiling Html:

Error in definition toElement:
Could not find type 'Element'.

Sorry for all the trouble! I know you have a lot of other things to do already ^^'

Evan Czaplicki

unread,
Nov 21, 2014, 4:25:28 AM11/21/14
to elm-d...@googlegroups.com
No worries, this is good feedback, now is the time to find bugs! I just messed up with the version bounds on elm-html 1.1.0, so I'll try to correct that tomorrow. In the meantime, I think you can mess with the code in elm-stuff/packages/ to get it working for you, but that is a bad idea in general!

With the elm-reactor thing, I think I just realized the issue. It calls "elm" to get its version number, which happened to work on my machine which has lots of things installed on it, but it's definitely a bug. I'll put that on my list of tasks for tomorrow.

Sorry for all the issues you have run into! I think things are getting closer though. I'll be doing more comprehensive reviews before I create pre-release installers, so I think that'll flush out some of the most silly mistakes.

Jason Merrill

unread,
Nov 21, 2014, 5:18:44 PM11/21/14
to elm-d...@googlegroups.com
I just tried to get master built by running

  runhaskell src/BuildFromSource.hs master

and ran into

  Cloning into 'elm-make'...
  remote: Counting objects: 455, done.
  remote: Compressing objects: 100% (8/8), done.
  remote: Total 455 (delta 2), reused 0 (delta 0)
  Receiving objects: 100% (455/455), 79.60 KiB | 0 bytes/s, done.
  Resolving deltas: 100% (296/296), done.
  Checking connectivity... done.
  Already on 'master'
  Your branch is up-to-date with 'origin/master'.
  Already up-to-date.
  Writing a default package environment file to
  /Users/jwm/src/elm-platform/Elm-Platform/master/elm-make/cabal.sandbox.config
  Using an existing sandbox located at
  /Users/jwm/src/elm-platform/Elm-Platform/master
  Resolving dependencies...
  cabal: Could not resolve dependencies:
  trying: elm-make-0.1 (user goal)
  next goal: elm-package (dependency of elm-make-0.1)
  Dependency tree exhaustively searched.

  Note: when using a sandbox, all packages are required to have consistent
  dependencies. Try reinstalling/unregistering the offending packages or
  recreating the sandbox.

I put the whole log up as a gist here: https://gist.github.com/jwmerrill/0a5fe94854e570cfc540

John Mayer

unread,
Nov 21, 2014, 5:21:00 PM11/21/14
to elm-d...@googlegroups.com

Oh I think I ran into this too. Is elm-package a a dependency of elm-make? If so, they're out of order in BuildFromSource

Rudi Chen

unread,
Nov 21, 2014, 5:23:49 PM11/21/14
to elm-d...@googlegroups.com
Yeah I ran into this issue too. Just run the build command 2-3 times.

Evan Czaplicki

unread,
Nov 21, 2014, 5:33:02 PM11/21/14
to elm-d...@googlegroups.com
Ahhh, I made a silly mistake. The order that the dependencies are declared in the script actually maps onto the build order, and I forgot this and made things alphabetical. I'll switch it back now! Sorry for the mistake :/

Evan Czaplicki

unread,
Nov 21, 2014, 5:40:13 PM11/21/14
to elm-d...@googlegroups.com
Okay, latest version should be fixed now. I also added a note so that future me would not make the same mistake.

Jason Merrill

unread,
Nov 22, 2014, 12:33:24 AM11/22/14
to elm-d...@googlegroups.com
Thanks, after this change a clean install worked for me.

Now I'm having trouble figuring out how to contribute to core. I thought I'd roll up my sleeves and try to resolve

https://github.com/elm-lang/core/issues/9

and/or

https://github.com/elm-lang/core/commit/f465e1107309c5e363535ddd57437106a55b34fc#diff-0e98d55e294053b5203b3ad344c14056R398

since I hit these trying to upgrade a couple example programs that I made earlier.

But I don't know where I can edit core in a way that will influence code compiled with elm-make. I don't see core anywhere in Elm-Platform/master. I do see it in elm-stuff/packages/elm-lang/core/1.0.0 so it looks like maybe elm-make goes out and grabs a copy of core from somewhere, but this is not a git repo, so editing it doesn't seem productive.

Max Goldstein

unread,
Nov 22, 2014, 10:37:54 AM11/22/14
to elm-d...@googlegroups.com
Echoing Jason: installs cleanly, now what?

Joseph Collard

unread,
Nov 24, 2014, 12:19:00 PM11/24/14
to elm-d...@googlegroups.com
But I don't know where I can edit core in a way that will influence code compiled with elm-make. I don't see core anywhere in Elm-Platform/master. I do see it in elm-stuff/packages/elm-lang/core/1.0.0 so it looks like maybe elm-make goes out and grabs a copy of core from somewhere, but this is not a git repo, so editing it doesn't seem productive.

Here is the process I use:

1. Create a test file for whatever I am trying to fix and run elm-make on it. 
2. Run elm-make. This pulls all of the dependencies to elm-stuff/packages/elm-lang/core/1.0.0/
3. I `cd` to elm-stuff/packages/elm-lang/core/  and `rm 1.0.0`
4. I `git clone` the version of core I've made changes to / want to make changes to

Now, when I run elm-make from my project root, it will use my modified files.

To me, this feels really gritty. I would really like a way to specify a non-published version of a library in `elm-package.json`. For example, `jcollard/core`. This was possible with `elm-get` and I'm hoping it will eventually be in elm-package as well.

Jason Merrill

unread,
Nov 24, 2014, 4:21:46 PM11/24/14
to elm-d...@googlegroups.com
This process got things moving for me. Thanks. It is... gritty.

Evan Czaplicki

unread,
Nov 24, 2014, 5:08:30 PM11/24/14
to elm-d...@googlegroups.com
Sorry about the process being tough now, the goal was to get things out so folks could conceivably do stuff with 0.14, not to have a nice finished well-documented process (because stuff is still getting worked out). So thanks for working through this stuff as things fall into place.

--

Evan Czaplicki

unread,
Nov 24, 2014, 6:34:35 PM11/24/14
to elm-d...@googlegroups.com
I just moved all of the updates to elm packages (core, virtual-dom, and elm-html) to package.elm-lang.org and am trying to test them out on elm-todomvc. Things seem to be going okay so far. I'd recommend removing elm-stuff/ and checking to see if elm-compiler, elm-package, and elm-make are up to date.
Reply all
Reply to author
Forward
0 new messages