rebar/test/upgrade_project
olgeni 505458eecb Use "pwd -P" to get the current physical path.
It is a portable version of the realpath(1) utility that you can find on
Mac OS X and FreeBSD (see also The Open Group Base Specifications Issue
6, IEEE Std 1003.1).

Without the -P flag, pwd(1) might return different values when the
current path contains one or more symlinks, depending on how you got
into the current directory.

In simplenode.runner, this may cause PIPE_DIR to have different values
on each use, which will make it impossible to connect to the running
node unless you guess the correct path yourself.
2013-06-10 22:15:49 +02:00
..
apps/dummy/src Add 'generate-appups' command 2011-02-15 18:33:18 +01:00
rel Use "pwd -P" to get the current physical path. 2013-06-10 22:15:49 +02:00
README.md add more info to readme 2012-03-31 13:05:02 -07:00
rebar.config Add 'generate-upgrade' command 2011-01-27 18:37:39 +01:00

Building version 0.1

rebar compile
rebar generate
mv rel/dummy rel/dummy_0.1
rebar clean
# start the release:
cd rel/dummy_0.1
bin/dummy console

erl> dummy_server:get_state().
erl> dummy_server:set_state(123).
erl> dummy_server:get_state().

Building version 0.2

# Now, in another terminal we prepare an upgrade..

# change release version numbers from 0.1 to 0.2 in
$EDITOR apps/dummy/src/dummy.app.src
$EDITOR rel/reltool.config

rebar compile
rebar generate
# previous_release path is relative to your rel directory
rebar generate-appups previous_release=dummy_0.1
rebar generate-upgrade previous_release=dummy_0.1
tar -zvtf rel/dummy_0.2.tar.gz

Deploying with release_handler

mv rel/dummy_0.2.tar.gz rel/dummy_0.1/releases/

# Now use release_handler in the running erlang console for the deploy:

erl> release_handler:unpack_release("dummy_0.2").
erl> release_handler:install_release("0.2").
erl> release_handler:make_permanent("0.2").

erl> release_handler:which_releases().
erl> dummy_server:get_state().