This is the server that is 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.
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 for Python.
- Make sure the SDK is on your
Install required packages.2
pip install beautifulsoup4 pycrypto webtest
From the root directory of this repository, run:
Open your browser to http://localhost:8080/ to see that it works.
To run tests:
To publish packages to your local test server, visit http://localhost:8080/admin (sign in as administrator), go to the "Private Key" tab & enter any string into the private key field.
1 This might have been done already if you allowed the Google App
Engine launcher to add symbolic links to your
2 On installing packages:
- Beautiful Soup & WebTest are only required for running tests.
- Some Linux distributions come with PyCrypto installed by default. Make sure at least version 2.6 installed.
- If using Mac and
pipis not available, install brew and run
brew install python.
Pub is open source, and we appreciate Pull Requests. Please read more about contributing to pub.dartlang.org.
See the docs on branches and versions.
Modifying the CSS and Documentation
Ensure you have bundler installed:
gem install bundler
Run this to install the dependencies:
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. The deployed server just uses the pre-compiled CSS and only requires Python.
Once you have everything installed, to modify the styles:
Run Foreman to automatically regenerate the CSS files when any Sass files change:
bundle exec foreman start
When you make changes to SCSS files, make sure to check in the generated CSS files with them.
Reporting issues, feature requests, and bugs
We appreciate feedback. Please open issues and features.