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.
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
$PATH
.1 -
Install required packages.2
pip install beautifulsoup4 pycrypto webtest
-
From the root directory of this repository, run:
dev_appserver.py app
-
Open your browser to http://localhost:8080/ to see that it works.
-
To run tests:
./test.py
-
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 $PATH
.
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
pip
is not available, install brew and runbrew 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.
The CSS files are generated from the source Sass files using Compass. 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. 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
-
Edit the
.scss
files undercss/sass
.
When you make changes to SCSS files, make sure to check in the generated CSS files with them.
We appreciate feedback. Please open issues and features.