Make desktopcouch better for Novacut-like apps

Registered by Jason Gerard DeRose

dmedia and Novacut will have components that run both on desktops (talking to desktopcouch) and servers (talking to system-wide CouchDB). So what they need is raw CouchDB in both cases, to abstract away the "desktop" part. This is currently pretty difficult to do.

I also want to see more HTML5 apps built to run both locally in WebKit+desktopcouch and remotely in browser+CouchDB, so I want to talk about how dmedia is doing this, about upstreaming some of this code into desktopcouch so more apps can use it.

I have a bunch O notes here:

  https://wiki.ubuntu.com/DesktopCouchWishList

Blueprint information

Status:
Not started
Approver:
None
Priority:
Undefined
Drafter:
None
Direction:
Needs approval
Assignee:
None
Definition:
New
Series goal:
None
Implementation:
Unknown
Milestone target:
None

Related branches

Sprints

Whiteboard

Chad updated the wiki page with a few notes.

Action items from session (please correct if Jason got anything wrong):

 * It was agreed that reconnection hack must go, although exact approach still seems in debate. Sounds like Chad and Eric will work on this... please keep Jason in the loop so he can make sure the solution fits dmedia/Novacut needs

 * No objections to `abstractcouch`, so Jason will split this out of dmedia to give DC team simple target for compatibility, hopefully other apps will use pattern

 * It was agreed that CouchView would be good to upstream into desktopcouch. Whatever happens with reconnection hack, Jason will add smarts to CouchView to deal with CouchDB crashes, and propose for merge into desktopcouch

 * Jason and DC team did not see eye-to-eye on "Standard location for static webUI files". One possible solution to some issues is to put assets in attachments for doc in 2nd, non-replicated DB, or to use a validation rule that prevents specific doc from replicating. Jason still thinks his proposed solution is the best as it puts the least burden on Ubuntu app devs. With solutions proposed by DC team, it's still each app's responsibility to check that assets currently shipped in package match what is in DB... which means more boiler plate, and slower startup time (because of extra CouchDB requests). Jason might try to further argue for his proposed solution, but what DC team proposed is workable.

 * DC team still feels per-DB sync should be opt-out, however they agreed to ignore some specific DB name prefix. DC team did not like Jason's proposed "test_" (Jason agreed with their reasons after hearing them). David Jordon proposed "noreplicate_", which everyone seemed happy with. Chad: can you change DC to ignore "noreplicate_" instead of "test_"?

 * Flavorful discussion was had about "record_type". Jason will think on it more.

 * We need follow up on this bug - https://bugs.launchpad.net/desktopcouch/+bug/694909

(?)

Work Items