At some point we will add a feature to the infrastructure that the apps will be updated to depend on. This modification will introduce a dependency, where newer apps will not work with older versions of the infrastructure.
If the PUNs set an environment variable OOD_PROXY_VERSION, which could also be set in the Apache config, then the apps could inspect this version string and throw an error or turn off features that depend on the newer version of the infrastructure.
For example, apps could assume that OOD_PROXY_VERSION=1.0 if OOD_PROXY_VERSION is not set. So then if we add a feature to Apache or to the PUN that a passenger app (like the dashboard) will depend on, we can detect if the version is compatible (version comparison is easy using the rubygems gem i.e. Gem::Version etc.)
This feature is not required until we introduce a change to the infrastructure that one or more apps would depend on.
Instead we are going to be merging infrastructure and core apps into a single rpm and installation directory such as /opt/ood so we won't require this.
At some point we will add a feature to the infrastructure that the apps will be updated to depend on. This modification will introduce a dependency, where newer apps will not work with older versions of the infrastructure.
If the PUNs set an environment variable OOD_PROXY_VERSION, which could also be set in the Apache config, then the apps could inspect this version string and throw an error or turn off features that depend on the newer version of the infrastructure.
For example, apps could assume that OOD_PROXY_VERSION=1.0 if OOD_PROXY_VERSION is not set. So then if we add a feature to Apache or to the PUN that a passenger app (like the dashboard) will depend on, we can detect if the version is compatible (version comparison is easy using the rubygems gem i.e. Gem::Version etc.)
This feature is not required until we introduce a change to the infrastructure that one or more apps would depend on.