diff options
author | Rickard Green <rickard@erlang.org> | 2014-03-20 17:10:32 +0100 |
---|---|---|
committer | Rickard Green <rickard@erlang.org> | 2014-03-20 17:10:32 +0100 |
commit | 3c06b5b3cdde72453d97910889e38e91c1dd4870 (patch) | |
tree | 1e58ec80f38cdea611b1ce297a1826ee869de605 /lib/kernel | |
parent | a50d7e892e3b2b3c8241eabd6bd0121672a6720f (diff) | |
parent | e0052804daa336e0d05b8a451e15b07afd085074 (diff) | |
download | otp-3c06b5b3cdde72453d97910889e38e91c1dd4870.tar.gz otp-3c06b5b3cdde72453d97910889e38e91c1dd4870.tar.bz2 otp-3c06b5b3cdde72453d97910889e38e91c1dd4870.zip |
Merge branch 'rickard/runtime-dep/OTP-11773'
* rickard/runtime-dep/OTP-11773:
Introduce system_information:sanity_check()
Verify runtime_dependencies when running 'otp_build patch_app'
Add test-case verifying runtime dependencies found by xref
Introduce runtime_dependencies in .app files
Bump versions and ensure that all are "normal" versions
Diffstat (limited to 'lib/kernel')
-rw-r--r-- | lib/kernel/doc/src/app.xml | 36 | ||||
-rw-r--r-- | lib/kernel/src/kernel.app.src | 3 |
2 files changed, 36 insertions, 3 deletions
diff --git a/lib/kernel/doc/src/app.xml b/lib/kernel/doc/src/app.xml index 7c9d6eecec..b24a2bd7bd 100644 --- a/lib/kernel/doc/src/app.xml +++ b/lib/kernel/doc/src/app.xml @@ -61,7 +61,8 @@ {applications, Apps}, {env, Env}, {mod, Start}, - {start_phases, Phases}]}. + {start_phases, Phases}, + {runtime_dependencies, RTDeps}]}. Value Default ----- ------- @@ -77,8 +78,10 @@ Apps [App] [] Env [{Par,Val}] [] Start {Module,StartArgs} [] Phases [{Phase,PhaseArgs}] undefined +RTDeps [ApplicationVersion] [] Module = Name = App = Par = Phase = atom() - Val = StartArgs = PhaseArgs = term()</code> + Val = StartArgs = PhaseArgs = term() + ApplicationVersion = string()</code> <p><c>Application</c> is the name of the application.</p> <p>For the application controller, all keys are optional. The respective default values are used for any omitted keys.</p> @@ -87,6 +90,8 @@ Phases [{Phase,PhaseArgs}] undefined <c>description</c>, <c>vsn</c>, <c>modules</c>, <c>registered</c> and <c>applications</c>. The other keys are ignored by <c>systools</c>.</p> + <warning><p>The <c>RTDeps</c> type was introduced in OTP 17.0 and + might be subject to changes during the OTP 17 release.</p></warning> <taglist> <tag><c>description</c></tag> <item> @@ -185,6 +190,33 @@ Phases [{Phase,PhaseArgs}] undefined start phases must be a subset of the set of phases defined for the primary application. Refer to <em>OTP Design Principles</em> for more information.</p> </item> + <tag><marker id="runtime_dependencies"><c>runtime_dependencies</c></marker></tag> + <item><p>A list of application versions that the application + depends on. An example of such an application version is + <c>"kernel-3.0"</c>. Application versions specified as runtime + dependencies are minimum requirements. That is, a larger + application version than the one specified in the + dependency satisfies the requirement. For information on + how to compare application versions see + <seealso marker="doc/system_principles:versions">the + documentation of versions in the system principles + guide</seealso>. Note that that the application version + specifies a source code version. An additional indirect + requirement is that installed binary application of + the specified version has been built so that it is + compatible with the rest of the system.</p> + <p>Some dependencies might only be required in specific runtime + scenarios. In the case such optional dependencies exist, these are + specified and documented in the corresponding "App" documentation + of the specific application.</p> + <warning><p>The <c>runtime_dependencies</c> key was introduced in + OTP 17.0. The type of its value might be subject to changes during + the OTP 17 release.</p></warning> + <warning><p>All runtime dependencies specified in OTP applications + during the OTP 17 release might not be completely correct. This + is actively worked on. Declared runtime dependencies in OTP + applications are expected to be correct in OTP 18.</p></warning> + </item> </taglist> </section> diff --git a/lib/kernel/src/kernel.app.src b/lib/kernel/src/kernel.app.src index cb8c98ab06..5658c6b6cf 100644 --- a/lib/kernel/src/kernel.app.src +++ b/lib/kernel/src/kernel.app.src @@ -114,6 +114,7 @@ pg2]}, {applications, []}, {env, [{error_logger, tty}]}, - {mod, {kernel, []}} + {mod, {kernel, []}}, + {runtime_dependencies, ["erts-6.0", "stdlib-2.0", "sasl-2.4"]} ] }. |