Wed May 20 11:01:31 CEST 2015
On 2015年5月20日 水曜日 11:33:36 Loïc Hoguin wrote:
> Yesterday the topic of Windows development was brought up on Twitter. I
> looked into it and it's clearly an issue. ...
Indeed, it is.
The solution to this that we've been toying with (well, deploying in limited cases, but still not polished) is a from-source updater/builder that wraps an Erlang program. It checks a source repository (if available at the moment, or at all), validates the source package signature, and either runs the last built version of a program, or pulls-and-builds the latest version of a program at the time it is called.
This is all in Erlang, and so works the same way on Linux and Windows.
The use case, though, is probably an unusual one in the Erlang world: client applications, and *not* building releases (running everything with the host's Erlang runtime, the way one does Python/Perl/Ruby/Java programs).
The abnormality of the use case relative to Erlangdom explains why we couldn't find any tools for this sort of thing, but implementing them wasn't impossibly hard. The abnormality of the use case also indicates that probably nobody else has this use case or cares about it.
In our case using this method the real difference between Linux and Windows environments is how the initial program is installed -- in Windows a typical GUI click-to-install executable that does some registry magic and sets up batch files and icons is necessary to kick things off (well, necessary if you want a typical Windows user to actually use your programs).
The good news is that all the underlying stuff that is already included in a stock Erlang environment in the interest of building releases provides a complete base from which to build a from-source self-updating executor, which makes it easy to support Linux and Windows equally from the point of initial installation.
Hopefully we can polish up the tool a bit (its still horribly ugly), document the process of rolling a Windows installer, and open source it.
More information about the erlang-questions