static/ - CSS and JS assets. All assets go under a named subfolder.
templates/ - HTML assets for use with go templates.
api/resp/ - Response structs supported by Milo.
common/miloerror - Error subclass used to pass HTTP statuses.
client/cmd/backfill - Git data backfiller.
Subdirectory layout
To retain convention, each data source (e.g. swarming, DM) should have the following files:
html.go - All routable HTML endpoints of type handler.
Themes and Templates
Milo supports the switching of themes (template bundles) based on user
preference. Themes must follow these layouts:
Go Templates go under appengine/frontend/templates/[[Theme Name]]
** Base templates go under appengine/frontend/templates/[[Theme Name]]/includes
** Actual templates go under appengine/frontend/templates/[[Theme Name]]/pages
Static resources (css, javascript, images, etc) go under
/frontend/static/[[Theme Name]]. This boundry isn't enforced, this is just by
convention, so one theme is allowed to use resources in other themes (but it
is not recommended)
Add the Theme Name into the map in appengine/settings/theme.go:THEMES
Seeding data for local development
After starting the dev_appserver, run go run client/cmd/backfill/main.go buildbot
-master="chromium.win" -remote-url="localhost:8080" -dryrun=false
-buildbot-fallback=true (replace the port number with your dev_appserver port
number)