(not) proposing Snowy for GNOME 3.0



Hey Folks,


== Intro ==

I think it's a bit premature to propose an entirely new type of module
and moduleset in GNOME, but I think it is not a bad time to discuss
what a "web app" moduleset might be like.

I expect I'll propose Snowy "for real" for 3.2, after we have
dogfooded our hypothetical Tomboy Online release plan (see below).  As
a reminder, if you are interested in joining the current Tomboy Online
alpha, you are welcome to fill out our survey here:

https://spreadsheets.google.com/viewform?formkey=dFZleG05V196b3g4VUFSTHhzcTRFMmc6MQ


== Draft Proposal ==

Purpose: Snowy [0] is a Python/Django web app for synchronizing your
Tomboy notes. It provides read access to your note collection through
your browser, and will soon have note editing and sharing
functionality as well.  While it can be deployed by users on their own
servers, the primary focus is a GNOME-hosted version called Tomboy
Online, providing free note sync for all Tomboy users.

Sync is achieved through a RESTful API [1] designed with feedback from
Rodrigo Moya and Stuart Langridge from Canonical, who have implemented
the same API in Ubuntu One.  Tomboy and Conboy (third-party Maemo
client) have been syncing over this API for over a year now, and
recently Tomdroid (third-party Android client) released sync support
as well.

Target: hypothetical web release set

Dependencies: Django and various third-party Django libraries, a web
server, a database (TODO: Fill in with actual deps when actually
proposing)

Resource Usage: Snowy is fully GNOME-hosted, including git, ftp,
bugzilla, mailing list, and even Tomboy Online is hosted on GNOME
infrastructure.

Adoption: N/A

GNOME-ness: We have work to do to get translations hooked into GNOME
infrastructure.  I'm not entirely sure yet how documentation should be
handled.  Snowy development is closely tied to Tomboy development
(same maintainer, same initial userbase).  What "GNOME-ness" means for
a web app is something that still needs to be determined, imho.

3.0-readiness: N/A

License: AGPL


== Tomboy Online Release Plan ==

In initial conversations about how we plan to manage releases for
Tomboy Online, we have come up with this plan:

* Snowy follows the GNOME release schedule.
* Tomboy Online will only ever run official released code.
* Because of the above, we may find it necessary to release more
frequently than typical modules.
* In the VM provided by GNOME, we run two instances of Tomboy Online:
www.tomboy-online.org and edge.tomboy-online.org .  These instances
have completely separate user/note databases.
* www.tomboy-online.org will only run stable releases.
* edge.tomboy-online.org will run the latest development release
(except in the case where stable is newer/edgier).
* Because of the above, we may find it necessary to very actively
maintain the stable branch.
* Probably, we will run a new .0 stable release for a couple of weeks
on edge.t-o before deploying to www.t-o.  There shouldn't be any need
for such a delay for point releases after .0.

We think this will work well.  Users who want to try the latest
features can use edge.t-o, and users who want stability and don't mind
waiting 6 months for new features can use www.t-o, but can still rest
assured that they will receive timely fixes for security and stability
issues they may encounter.


== GNOME Web Platform ==

There is no GNOME web platform.  There are no new libraries being
proposed for use by all GNOME web modules.  It feels way too early to
try to make those sorts of decisions.  We need another module or two
before we discover what can and should be shared.

I will say that even if we end up with an Online Desktopish goal, we
should not strive for one big monster web app.    I think it makes
sense to focus on smaller, single-purpose web apps with sensible
integration points.

For example, we could have a Mugshot-like "identity" app for Teh
Social, and have it aggregate info from apps like Snowy.  We could tie
apps together with existing standards like OpenID and OAuth.  We could
come up with conventions for building RESTful APIs, standardize on
JSON, etc etc.  We could build standard GTK+ widgets for
authenticating with GNOME web services.  Whatever makes sense to make
integration between the GNOME desktop and the GNOME web easy on
developers and users.

Clearly, if we want to succeed on the web, we'll need to have a
defined web platform.  But I don't think we're there yet.



I'm getting sleepy and feeling kind of rambly, so I'm just going to
send this and go to sleep.  Any and all feedback is welcome.

Sandy

[0] http://live.gnome.org/Snowy
[1] http://live.gnome.org/Tomboy/Synchronization/REST


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]