Version support for datastore/Proposal: Difference between revisions
Sascha silbe (talk | contribs) m Version support for datastore moved to Version support for datastore/Proposal: Create hierarchy |
|||
| (8 intermediate revisions by 2 users not shown) | |||
| Line 1: | Line 1: | ||
{{TOCright}} | {{TOCright}} | ||
| Line 11: | Line 6: | ||
* Name: Sascha Silbe | * Name: Sascha Silbe | ||
* Age: 29 | * Age: 29 | ||
* EMail: | * EMail: domain sugarlabs.org, user silbe (obfuscated for SPAM reasons) | ||
* Wiki user name: sascha_silbe | * Wiki user name: sascha_silbe | ||
* IRC nickname: silbe | * IRC nickname: silbe | ||
* | * Native language: german (english preferred for technical communication) | ||
* Location: Germany | * Location: Germany | ||
* Work hours: about 12h to 00h local time, i.e. 10h to 22h UTC | * Work hours: about 12h to 00h local time, i.e. 10h to 22h UTC | ||
* Open source projects (with other developers beside me) I participated in: [http://husky.sourceforge.net/ Husky (Fidonet on Linux)] (many years ago, co-founded the project; my profile on that page is rather outdated), [http://www.openstreetmap.org OSM], contributed bug reports and patches to a large number of projects. Try a web search on my name, it's unique (AFAIK at least). | * Open source projects (with other developers beside me) I participated in: [http://husky.sourceforge.net/ Husky (Fidonet on Linux)] (many years ago, co-founded the project; my profile on that page is rather outdated), [http://www.openstreetmap.org OSM], contributed bug reports and patches to a large number of projects. Try a web search on my name, it's unique (AFAIK at least). | ||
* Current affiliation with Sugar Labs: maintainer of the [[Development Team/Buildbot|build infrastructure]] | |||
==About my project== | ==About my project== | ||
* Name of project: Version support for [[ | * Name of project: Version support for [[Development Team/Datastore Rewrite|data store]] / [[Design_Team/Designs/Journal|Journal]] | ||
* Technologies used: The ones currently in use by the data store / journal. The bonus part might introduce additional ones (e.g. sqlite) for indexing. | * Technologies used: The ones currently in use by the data store / journal. The bonus part might introduce additional ones (e.g. sqlite) for indexing. | ||
| Line 28: | Line 24: | ||
and happens automatically), but rather add a new version to the entry. Enhance the UI to allow easy (and simple to understand) | and happens automatically), but rather add a new version to the entry. Enhance the UI to allow easy (and simple to understand) | ||
access to "old" versions, including modification (which means automatically saving in a new branch). | access to "old" versions, including modification (which means automatically saving in a new branch). | ||
As "easy and simple to understand" isn't actually easy to implement, I'll concentrate on enhancing | As "easy and simple to understand" isn't actually easy to implement, I'll concentrate on enhancing the current Journal view | ||
by adding previous/next buttons to the details view of each entry for the primary part of the project. | |||
Adding a version tree details view and possibly other ways of presenting versions are planned for the optional | |||
and possibly other ways of presenting versions are planned for the optional (based on remaining time) "bonus part". | (based on remaining time) "bonus part". Metadata is going to be part of each version (and mutable without creating | ||
a new version) at first. | |||
===Rationale=== | |||
Version support for data store / Journal already | Version support for data store / Journal already | ||
[http://wiki.laptop.org/go/OLPC_Human_Interface_Guidelines/The_Laptop_Experience#Implicit_Versioning_System was part of] the | [http://wiki.laptop.org/go/OLPC_Human_Interface_Guidelines/The_Laptop_Experience#Implicit_Versioning_System was part of] the | ||
[http://wiki.laptop.org/go/OLPC_Human_Interface_Guidelines/The_Laptop_Experience#The_Journal original design concept] | [http://wiki.laptop.org/go/OLPC_Human_Interface_Guidelines/The_Laptop_Experience#The_Journal original design concept] | ||
for the Journal, but [[ | for the Journal, but [[Development Team/Datastore Rewrite#Versioned_entries_.28not_fulfilled_yet.29|hasn't been finished yet]]. | ||
There are several prototypes ([http://wiki.laptop.org/go/Olpcfs Olpcfs], [http://dev.laptop.org/git/users/cscott/olpcfs2/ olpcfs2]) | There are several prototypes ([http://wiki.laptop.org/go/Olpcfs Olpcfs], [http://dev.laptop.org/git/users/cscott/olpcfs2/ olpcfs2]) | ||
| Line 48: | Line 46: | ||
For this reason, I don't believe that any of these prototypes will mature enough to get integrated | For this reason, I don't believe that any of these prototypes will mature enough to get integrated | ||
in Sugar even mid-term. My project focusses on the version support instead, enhancing the | in Sugar even mid-term. My project focusses on the version support instead, enhancing the | ||
[[ | [[Development Team/Datastore Rewrite|current data store]] instead of replacing it, with the Journal as the only | ||
intended user of the versioning API (though, at least in theory, regular activities could access it as well). | intended user of the versioning API (though, at least in theory, regular activities could access it as well). | ||
| Line 57: | Line 55: | ||
=== Time line === | === Time line === | ||
;2009-04-03 | |||
:Application deadline | |||
;2009-04-12 | |||
:Easter (sunday); UI mockup submitted for review by [[Design_Team|Design Team]] | |||
;2009-04-20 | |||
:start of (university) term; announcement of accepted GSoC proposals | |||
;2009-05-10 | |||
:submitted API draft for review by [[Development_Team|Development Team]] | |||
;2009-05-16 | |||
:[[Marketing Team/Events/MiniCamp Paris 2009|SugarCamp Europe 2009]] | |||
;2009-05-23 | |||
:start of GSoC | |||
;2009-05-31 | |||
:current code examined and understood; API, on-disk format and UI design chosen | |||
;2009-06-07 | |||
:data store enhanced to be able to deal with versions (basic API) | |||
;2009-06-14 | |||
:added (working) prev/next buttons to Journal details view | |||
;2009-06-21 | |||
:added support for importing from existing data store | |||
;2009-06-28 | |||
:added unit tests (and potentially regression tests), fixed all known bugs, submitted for review by [[Design_Team|Design Team]] | |||
;2009-07-06 | |||
:GSoC midterm evaluation ("working and 90% done"); added indexing (e.g. using sqlite) | |||
;2009-07-13 | |||
:code integrated upstream for increased exposure (testing!); started discussion on extended UI design (version tree etc.) | |||
;2009-07-25 | |||
:end of (university) term | |||
;2009-08-10 | |||
:end of GSoC | |||
;2009-10-31 | |||
:Fedora 12 release; Sugar 0.86 release short time later? | |||
== Me and the community == | |||
=== Action after getting stuck === | |||
For this project, getting stuck means needing advice on UI issues. As I can ask both the whole [[Design_Team|Design Team]] and a friend of mine for input, it's rather unlikely that nobody will be around for a significant amout of time. Also I don't see the code produced by this project as the one and only answer to the problem, but rather as a start of a process. So I could just do an arbitrary choice and continue with the project, it's still adaptable later. | |||
=== Impact of this project === | |||
One of the initial design goals will actually be provided. Instead of giving users the choice of irrevocably deleting either the | |||
old or the new content upon exit as current desktop applications do (unless the user explicitly invokes a "Save As" operation | |||
prior to exit), the computer will now retain both and provide the user with ways to access them. | |||
=== Sugar Pilot === | |||
While I would very much like a Pilot to occur in my vicinity (once both this project and the Rainbow support have been merged), | |||
I'm not yet sure what the best target would be as I'm not directly involved with any school. | |||
sure | |||
=== Keeping the community updated === | |||
For regular updates, I'll probably update a wiki page, as those interested in it can subscribe and get notifications via email. | |||
There are going to be several projects going on, so sending the reports to the regular mailing lists feels like spamming. | |||
For problems and questions, I can use both the IRC channel and the mailing lists, depending on the exact nature and target | |||
audience (e.g. details on the current data store are best asked on IRC, while UI design questions are best elaborated in | |||
a mail thread where there's sufficient time to do research to back up arguments). | |||
==Miscellaneous== | |||
I'm skipping the screenshot of the simple text replacement task for time reasons. I guess being the maintainer of the | |||
[[Development Team/Buildbot|build infrastructure]] and having committed several patches on the bugtracker should be | |||
sufficient substitute. :) | |||
== | * T-Shirt size: depending on the actual size (instead of just what's printed on the label) it's M up to XXL. Usually I go for L. | ||
=== Great learning experience as a child === | |||
Wow, good question. I don't remember any particular event right now. In general, I learned most (and most easily) when I was | |||
actually doing something, without any external help. Reading books (even text books, though not the school ones) was fun as well and | |||
helped me get further insight and new ideas. That's still the case, though "the internet" has replaced books for me. | |||
=== Anything else to like the project more === | |||
I don't think there's any need for raising the priority of this projects even higher, but as you asked I'll give a reason nonetheless: | |||
Working on this project will significantly increase my understanding of the data store, the Journal and the whole Glucose software | |||
stack. As a result, [http://dev.sugarlabs.org/ticket/593 adding Rainbow support] is going to get a lot easier. | |||
[[Category:2009 GSoC applications]] | [[Category:2009 GSoC applications]] | ||