From 5acf0e4a3cfafca569a9e22f1730f11c8c6a4a07 Mon Sep 17 00:00:00 2001 From: Tristan Sloughter Date: Sat, 21 Sep 2013 13:51:27 -0500 Subject: add overview, overlays and configuration pages --- overview/index.md | 64 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 overview/index.md (limited to 'overview/index.md') diff --git a/overview/index.md b/overview/index.md new file mode 100644 index 0000000..66e1a5f --- /dev/null +++ b/overview/index.md @@ -0,0 +1,64 @@ +--- +layout: default +title: Relx Overview +--- + +Overview +======== + +Relx is a tool that, given a specification, assembles +releases. That is it makes an assessment of all of the Erlang/OTP Apps +available to it and the constraints that you supply as part of your +configuration and resolves a complete set of OTP Applications and +thier versions for use in the release. This may be a bit hard to +understand if you are not familiar with the way version resolutions +work in package management systems. So lets look at an example. + +Lets say that you have the following OTP Applications + + app1-1.2 + with dependencies + app2 + app5 + app6 + app1-1.3 + with dependencies + app2 + app6 + app2-2.0 + with dependencies + app6 + app2-2.1 + with dependencies + app6 + app7 + app3-2.0 + app4-1.0.0 + app5-3.0 + app6-1.0 + with dependencies + app3 + app7-2.0 + +This is the world of OTP Apps your Relx knows about (basically OTP +Apps in the Library Directories you have specified). You have set a +config that looks like the following: + + {release, {awesome_supercool, "1.0"}, + [{app1, "1.3", '>='}, + {app2, "2.0", '>'}, + app3]} + +When the Relx process has run you will end up with a complete +release as follows + + {release, {awesome_supercool, "1.0"}, + [{app1, "1.3"}, + {app2, "2.1"}, + {app3, "2.0"}, + {app6, "1.0"}, + {app7, "2.0"}]} + +As you can see that is a fully realied view of your direct and +transative dependencies based on the world that Relx knows about +and the constraints that you specified in your configuration. -- cgit v1.2.3