blob: edd94b78b3c4634adb636a12d16eef738e0bdeee [file] [log] [blame] [view]
# Milo - The interface into luci.
# Layout
* appengine/frontend/
* milo.go - Main router and entry point into app.
* 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)