[erlang-questions] Erlang development workflow
Sun Mar 4 01:19:25 CET 2012
I suspect you have a few choices about how you might do this. In terms of getting the latest 'code' onto the ARM, you can either
1. synchronise the file systems
2. synchronise the loaded beam code on two emulators
How do you get your code onto the ARM's local storage currently? There is a 'reloader' module floating around the internet (especially on github) which takes any recent file system changes and does a code purge and reload (hence the name) on updated modules. If you find a way to synchronise local file system changes so they're reflected on the ARM, the reloader module should do the rest. The way it works IIRC is that it tracks either the beam files (in ebin) or the source files (in src) - I can't remember which - and when something changes, it reloads.
You could also use common test to run your test suites on the ARM node using ct_master, although I have no idea how the file system requirements will work in this scenario.
Another option that might suit you would be to keep a test 'server' running continuously on the ARM and control this from your PC using the ethernet connection. There are several mechanisms that could work well here, the simplest of which is to ship the code updates to the ARM over the ethernet connection (e.g., pass the updated beam code to code:load_binary using an rpc:call).
In any of these cases, once you've set up the synchronisation and test mechanism(s), you could easily make sure that any changes trigger either a smoke test or a full test run.
I suspect many others on this list will have more ideas too, as there are quite of lot of ways to skin this particular type of cat using Erlang.
On 3 Mar 2012, at 21:32, Frank Hunleth wrote:
> I was wondering if anyone could share ideas or experiences on their
> Erlang workflow especially for when the development machine is not the
> best test machine. My situation is that I am running Erlang on an
> embedded ARM that has Ethernet and decent DRAM and local storage. I
> can do some development on my PC, but there's special hardware
> attached to the ARM that my code needs to control sometimes. It would
> really be nice if I could have an efficient workflow that lets me
> develop on the PC and run on the ARM with the minimum number of manual
> steps between editing and testing. I'm coming to Erlang from an
> embedded C/C++ background. At the moment, my process is not much
> better than what I'm used to. It seems like there are many potential
> options, and I'm not sure what the best route is.
> erlang-questions mailing list
More information about the erlang-questions