From d0d628fbe6d3401125c271484c119c7d826c33b6 Mon Sep 17 00:00:00 2001
From: Stanislav Ovchar <ovcharsa@elcomplus.ru>
Date: Thu, 25 May 2017 10:56:50 +0300
Subject: Document workaround with relx semver value

---
 doc/src/guide/releases.asciidoc | 55 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 55 insertions(+)

(limited to 'doc/src/guide/releases.asciidoc')

diff --git a/doc/src/guide/releases.asciidoc b/doc/src/guide/releases.asciidoc
index 67abe87..e571992 100644
--- a/doc/src/guide/releases.asciidoc
+++ b/doc/src/guide/releases.asciidoc
@@ -118,3 +118,58 @@ Or on Windows:
 $ bin/example_release.cmd upgrade "2/example_release"
 
 Your release was upgraded!
+
+=== Getting relx semver value
+
+There is a *workaround* to get the semver version value which is
+generated by relx based on VCS history.
+
+Create `rel/version` file with only one line inside:
+
+[source,erlang]
+{{ release_version }}
+
+Add/Update  `overlay` section of your `relx.config`
+
+[source,erlang]
+{overlay, [
+ {template, rel/version, version}
+]}.
+
+So when you run `mare rel` it creates file like `_rel/app/version` which
+would contain the version value generated by relx
+
+[source,bash]
+$ cat _rel/app/release
+1.0.0+build.11.ref5612aa0
+
+In your `Makefile` you can use this simple snippet to get the version.
+But please keep in mind that this should depend on `rel` target
+
+[source,make]
+$(shell cat $(RELX_OUTPUT_DIR)/$(RELX_REL_NAME)/version)
+
+Here is an example of the `Makefile`:
+[source,make]
+include erlang.mk
+#--------------------------- Custom targets -----------------------------------
+APP_VERSION = $(shell cat $(RELX_OUTPUT_DIR)/$(RELX_REL_NAME)/version)
+myrecipe: all
+        echo APP_VERSION = $(APP_VERSION)
+
+The output would be like:
+[source,bash]
+$ make myrecipe
+...
+===> Starting relx build process ...
+===> Resolving OTP Applications from directories:
+          /home/username/myapp/apps
+          /home/username/myapp/deps
+          /usr/lib/erlang/lib
+          /home/username/myapp/_rel
+===> Resolved myapp-0.3.10+build.11.ref5612aa0
+===> Including Erts from /usr/lib/erlang
+===> release successfully created!
+===> tarball /home/username/myapp/_rel/myapp/myapp-0.3.10+build.11.ref5612aa0.tar.gz successfully created!
+echo APP_VERSION = 0.3.10+build.11.ref5612aa0
+APP_VERSION = 0.3.10+build.11.ref5612aa0
-- 
cgit v1.2.3

