This is the server that will be used on pub.dartlang.org
as the default
package repository for the Pub package manager.
For license information, please see LICENSE.
pub_dartlang.py The entry point for running the app.
app.yaml App Engine configuration.
third_party/ External dependencies, included in the repo so that App
Engine will see them.
handlers/ Code that handles HTTP requests.
models/ Models for persisting data to the App Engine Datastore.
views/ Mustache templates.
test.py The entry point for testing the app.
tests/ Code for testing the app.
The server is written in Python and intended to run on Google App Engine. To run it locally, perform the following steps:
-
Install the App Engine SDK.
-
Make sure the SDK is on your
$PATH
. -
pip install pycrypto
-
From the root directory of this repository, run:
dev_appserver.py .
That's it. All the dependencies needed to run the app are included in the repository so that App Engine can use them, so no further installation is necessary.
The tests have some external dependencies. Before you can run the tests, perform the following steps once:
-
Install the App Engine SDK.
-
Make sure the SDK is on your
$PATH
. -
Run:
easy_install webtest easy_install beautifulsoup4
Once everything is installed, you can run the tests by running:
./test.py
The CSS files are generated from the source Sass files using Compass. The HTML documentation files are generated from the source Markdown using Jekyll. To get ready to make changes, you'll need Ruby and Python. Then:
-
Ensure you have bundler installed:
gem install bundler
-
Run this to install the dependencies:
bundle install
-
Run this to install the latest version of Pygments for syntax highlighting:
sudo pip install --upgrade pygments
Note that this is only needed on your development machine to iterate on the CSS and documentation. The deployed server just uses the pre-compiled CSS and HTML and only requires Python.
Once you have everything installed, to modify the styles and documentation:
-
Run Foreman to automatically regenerate the CSS and HTML files when any Sass or Markdown files change:
bundle exec foreman start
-
Edit the
.scss
files undercss/sass
and the.markdown
files underdoc
.
When you make changes to SCSS or Markdown files, make sure to check in the generated CSS or HTML files with them.
Footnotes
-
Some Linux distributions come with PyCrypto installed by default. Make sure you have at least version 2.6 installed. โฉ