Diff for "Projects/LiveBranches"

Not logged in - Log In / Register

Differences between revisions 7 and 8
Revision 7 as of 2011-06-27 17:15:34
Size: 1743
Editor: spiv
Comment: Lots of loggerhead pages are now exposed via JSON
Revision 8 as of 2011-06-28 15:24:09
Size: 1833
Editor: danilo
Comment:
Deletions are marked like this. Additions are marked like this.
Line 41: Line 41:
    * `lp:~jtv/launchpad/expand-diffs` to render the existing /diff (not using JSON yet)

Live branches

Show branch content within the main web application, rather than sequestered on bazaar.l.n

This is intended to mesh with ArchitectureGuide/ServicesRoadmap.

Moving parts:

  • loggerhead serves machine-readable branch content (files, diffs, revision metadata, etc)
  • same-origin proxy that republishes this through code.launchpad.net (probably in Apache)
  • javascript updates to show content within the page
  • branch page redesign to make it work well

New things to show on the branch page:

  • per-revision lists of changed file
  • per-revision diffs
  • files in the tip of the branch
  • more than the 10 most recent revisions

Operational changes:

  • add rewrite/proxy rules on nutmeg/banana front-end apaches
  • possible firewall changes to allow that proxying to occur
  • robots.txt should block access to the proxied urls

Issues:

  • republished information must be safe against xss-type attacks from user content

Specific work items:

  • return JSON from loggerhead (currently returns HTML snippets)
    • lp:~spiv/loggerhead/jsonify

    • Done by including +json, eg branch/+json/+revlog/$REVID

    • URLs handled: /+revlog, /+filediff, /files, /revision

    • URLs already returning raw content: /diff, /download

    • URLs being skipped: DirEntry, /changes, /view, /atom, /search

    • URLs needing significant changes: /annotate

  • proxy data from loggerhead through on https://code.launchpad.net/ (lp:~jelmer/launchpad/apache-config-loggerhead)

  • in Launchpad add javascript (i.e. client-side) templating/rendering of that JSON content. Use hidden HTML node in page, copy and populate with values from JSON, add new node to page.
    • lp:~jtv/launchpad/expand-diffs to render the existing /diff (not using JSON yet)

Projects/LiveBranches (last edited 2011-06-28 15:24:09 by danilo)