Adding dependencies to applications

Code: 
KB-E1017
Applies to: 
OpenShift
Issue: 

My application has 3rd party dependencies, how can I get them installed on OpenShift?

Resolution: 

OpenShift has a mechanism for installing dependencies for all of the application types.  In all cases, the dependencies are installed server side when the developer performs a 'git push' to deploy a new version of their application (all files should be added to the git repo prior to the push).

JBoss:
Dependencies that are required for your application should be part of your pom.xml file and will be installed when Maven processes the file.

PHP:
PHP application owners can create a file called 'deplist.txt' in the root of the git repository with a list of dependenices that will be installed using 'pear'.  The list should look something like this:
net_url
auth_sasl

Ruby:
Ruby application owners can create a file called 'Gemfile' in the root of the git repository with a list of dependencies that will be installed using 'gem'.  The list should look something like this:
source 'http://rubygems.org'

gem 'rails', '3.1.0'
# Bundle edge Rails instead:
# gem 'rails',     :git => 'git://github.com/rails/rails.git'
gem 'sqlite3'

Python
Python application owners should modify 'setup.py' in the root of the git repository with the list of dependencies that will be installed using easy_install.  The setup.py should look something like this:

from setuptools import setup

setup(name='YourAppName',
      version='1.0',
      description='OpenShift App',
      author='Your Name',
      author_email='example@example.com',
      url='http://www.python.org/sigs/distutils-sig/',
      install_requires=['Django>=1.3', 'CloudMade'],
     )

Perl
Perl application owners can create a file called 'deplist.txt' in the root of the git repository with a list of dependencies that will be installed using 'cpan'.  The list should look something like this:
    YAML
    Dancer
    Plack::Handler::Apache2

Nodejs:
Nodejs application owners can use 'deplist.txt' as well as 'package.json' in the root of the git repository to configure a list of dependencies that will be installed using 'npm'.  Please review the sample files for more details on usage.