Skip to main content

ZC Buildout recipe for setting up a google appengine development environment

Project description

Buildout recipe for setting up a google appengine development environment.

The rod.recipe.appengine is a zc.buildout recipe to build, test and deploy projects for the google appengine. It makes it easy to use eggs and resolve their dependencies automatically.

To be honest, this is a recipe for scrambled eggs. It produces a zip file containing all configured external packages in a traditional folder hierarchy.

A brief documentation

This recipe takes a number of options:

appengine-lib

Path to an already installed appengine library

eggs

List of required eggs

packages

A list of packages to be included into the zip archive, which will be uploaded to the appspot.

src

The directory which contains the project source files.

url

The url for fetching the google appengine distribution

zip-name

The name of the zip archive containing all external packages ready to deploy.

Tests

We will define a buildout template used by the recipe:

>>> buildout_template = """
... [buildout]
... develop = %(egg_src)s
... parts = sample
...
... [sample]
... recipe = rod.recipe.appengine
... eggs = foo.bar
... url = http://googleappengine.googlecode.com/files/google_appengine_1.2.3.zip
... """

We’ll start by creating a buildout:

>>> import os.path
>>> import rod.recipe.appengine.tests as tests
>>> egg_src = os.path.join(os.path.split(tests.__file__)[0], 'foo.bar')
>>> write('buildout.cfg', buildout_template % {'egg_src': egg_src})

Running the buildout gives us:

>>> output = system(buildout)
>>> if output.endswith("Google App Engine distribution...\n"): True
... else: print output
True

And now we try to run the appserver script:

>>> print system(os.path.join('bin', 'sample'))
<BLANKLINE>
...
Invalid arguments
<BLANKLINE>

There should be a configuration script in bin as well:

>>> print system(os.path.join('bin', 'appcfg'))
Usage: appcfg [options] <action>
<BLANKLINE>
...
<BLANKLINE>

Changes

1.2.1 2009-07-03

  • Uses a much better method for excluding optional c extensions and compiled modules.

  • A step forward in platform independence.

1.2.0 2009-06-24

  • Creates appcfg script.

1.1.1 2009-06-07

  • Makes symbolic links for application files.

  • Downloads stay untouched.

1.1.0 2009-04-08

  • Mostly rewritten.

  • Installs google appengine as part.

  • Adding dummy pkg_resources module to handle namespace package relicts.

  • Tests added.

  • Ready for Google App Engine SDK 1.2.0

1.0.0b5 2009-01-20

  • Requires Google App Engine SDK 1.1.8

1.0.0b4 2008-09-04

  • Create and use PROJECT_HOME/var to place temporary project files like data base files.

1.0.0b3 2008-09-02

  • Copy package contents to temporary library directory.

1.0.0b2 2008-09-02

  • Installs the whole distribution in the parts directory now. So it is ready to test and deploy.

1.0.0b1 2008-09-01

  • First beta release.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rod.recipe.appengine-1.2.1.tar.gz (12.3 kB view details)

Uploaded Source

Built Distribution

rod.recipe.appengine-1.2.1-py2.5.egg (17.1 kB view details)

Uploaded Source

File details

Details for the file rod.recipe.appengine-1.2.1.tar.gz.

File metadata

File hashes

Hashes for rod.recipe.appengine-1.2.1.tar.gz
Algorithm Hash digest
SHA256 4aa56a24e9e5dc02c505730c8b92591bc97e5393ec27001c3f9ab5355ee2aaa0
MD5 0502d5f3db9e339a94c68d4a5e2ea336
BLAKE2b-256 219b759e69a4f8dd67dee39d0e84e796895509b1b85cd62f100a058dba5e69ab

See more details on using hashes here.

File details

Details for the file rod.recipe.appengine-1.2.1-py2.5.egg.

File metadata

File hashes

Hashes for rod.recipe.appengine-1.2.1-py2.5.egg
Algorithm Hash digest
SHA256 1ea5f14e29b1ea27db5529be58299838c5832a50b0399642627ee536dbc02f41
MD5 8c2ab34979aed5f75d40b983fce4d933
BLAKE2b-256 d3e9c61de6bfda162f9b9565ee57f120c194dee5ff294e2c193fccfe6b4f84db

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page