#summary Maintaining third-party code using /vendor
#labels Importance-Details,Phase-Implementation,Contents-Draft

= Vendor branches =

`trunk/thirdparty` contains several packages that are
maintained as
[http://svnbook.red-bean.com/en/1.0/ch07s04.html svn vendor branches].
The `svn_load_dirs.pl` script in `trunk/thirdparty/svn`
is used to maintain these vendor branches.

== Updating Google App Engine ==

Download the latest `.zip` file containing the Google
App Engine SDK from the
[http://code.google.com/p/googleappengine/downloads/list Google App Engine SDK downloads list].
Unzip the downloaded `.zip` file.

From the `trunk/` directory of a Melange `svn` working
copy the `svn_load_dirs.pl` command would look something
like:

{{{
thirdparty/svn/svn_load_dirs.pl \
 --svn_username SVN_USERNAME \
 --svn_password SVN_PASSWORD \
 https://soc.googlecode.com/svn/trunk/thirdparty/google_appengine/ \
 . \
 PATH/TO/google_appengine/
}}}

Where:
  * _SVN_USERNAME_ is your [http://code.google.com/p/soc/ Melange] user name
  * _SVN_PASSWORD_ is your [http://code.google.com/hosting/settings Google Code Subversion password]
  * _PATH/TO/google_appengine/_ is the path to the unzipped Google App Engine SDK

At some point, if the
[http://code.google.com/p/googleappengine/source/browse/ Google App Engine SDK source repository]
ever begins tracking the contents of the release download
`.zip` files, needing to download the archive file and unzip
it will be replaced with `svn:externals` for
`/vendor/google_appengine`.

== Updating Django ==

From the `trunk/` directory of a Melange `svn` working
copy the `svn_load_dirs.pl` command would look something
like:

{{{
thirdparty/svn/svn_load_dirs.pl \
 --svn_username SVN_USERNAME \
 --svn_password SVN_PASSWORD \
 https://soc.googlecode.com/svn/trunk/app/django \
 . \
 ../vendor/django
}}}

Where:
  * _SVN_USERNAME_ is your [http://code.google.com/p/soc/ Melange] user name
  * _SVN_PASSWORD_ is your [http://code.google.com/hosting/settings Google Code Subversion password]
