Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
DEPRECATED - old pub.dartlang.org site in Python
Python CSS HTML Other
Branch: m2
Pull request Compare This branch is 1 commit ahead, 247 commits behind master.

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
css
doc
handlers
models
static
test
third_party
views
.gitignore
AUTHORS
Gemfile
Gemfile.lock
LICENSE
Procfile
README.md
_config.yml
app.yaml
appengine_config.py
index.yaml
pub_dartlang.py
test.py

README.md

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.

Repository Structure

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.

Running the Server Locally

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.
  • Install PyCrypto[^1]:

    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.

[^1]: Some Linux distributions come with PyCrypto installed by default. Make sure you have at least version 2.6 installed.

Running Tests

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

Modifying the CSS and Documentation

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:

  1. Ensure you have bundler installed:

    gem install bundler
    
  2. Run this to install the dependencies:

    bundle install
    
  3. 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:

  1. Run Foreman to automatically regenerate the CSS and HTML files when any Sass or Markdown files change:

    bundle exec foreman start
    
  2. Edit the .scss files under css/sass and the .markdown files under doc.

When you make changes to SCSS or Markdown files, make sure to check in the generated CSS or HTML files with them.

Something went wrong with that request. Please try again.