Changes

no edit summary
Line 63: Line 63:     
*Skills needed: intermediate GTK and python skillz
 
*Skills needed: intermediate GTK and python skillz
 +
 +
==== Versioned Datastore ====
 +
 +
* To add [[DevelopmentTeam/DatastoreRewrite#Versioned_entries_.28not_fulfilled_yet.29|Version support]] for [[Journal]] / [[DevelopmentTeam/Almanac/sugar.datastore.datastore|DataStore]]: Start with (old) [http://wiki.laptop.org/go/Olpcfs Olpcfs] and (newer; less-documented; based on an RCS backend and a relatively small amount of fuse magic) [http://dev.laptop.org/git/users/cscott/olpcfs2/ olpcfs2]. Get Sugar to mount OLPCFS2, a working virtual versioned filesystem, and keep its datastore there. Get datastore to create a new version for each save (automatic or manual). Modify journal UI to use these versions, fork from old versions, etc. Keep with the same name / tags, create a branch if metadata was changed. Allow the user to access "older" versions (Keeping and "old" version will create a branch) and view ancestry (tree of branches).
 +
 +
We would not expect a GSoC project to be necessarily ready to check into our trunk. For instance, you could avoid facing the issue of pruning old versions for disk space, or not have a converter for existing datastores. However, it should work as a proof-of-concept with a variety of activities.
 +
 +
*Priority for Sugar: High
 +
 +
*Difficulty: Hard
 +
 +
*Skills needed: FUSE/file systems; Python UI; Packaging and building.
    
=== Toolkits / Frameworks (for activity developers) ===
 
=== Toolkits / Frameworks (for activity developers) ===
Line 184: Line 196:     
==== Research projects: code exists, but more-or-less unpolished, and it would be awesome to get one of these really working well ====
 
==== Research projects: code exists, but more-or-less unpolished, and it would be awesome to get one of these really working well ====
==== Versioned Datastore ====<!-- keep that title if you move the entry, there are inbound links. -->
  −
* [[DevelopmentTeam/DatastoreRewrite#Versioned_entries_.28not_fulfilled_yet.29|Version support]] for [[Journal]] / [[DevelopmentTeam/Almanac/sugar.datastore.datastore|DataStore]]: create a new version for each (automatic or manual) Keep with the same name / tags, create a branch if metadata was changed. Allow the user to access "older" versions (Keeping and "old" version will create a branch) and view ancestry (tree of branches). See also (old) [http://wiki.laptop.org/go/Olpcfs Olpcfs] and (newer; less-documented; based on an RCS backend and a relatively small amount of fuse magic) [http://dev.laptop.org/git/users/cscott/olpcfs2/ olpcfs2].
   
* There is also [http://wiki.laptop.org/go/Journal%2C_reloaded Journal, reloaded], another research project with real code behind it that is promising but languishing. In this case, the idea is to make the journal "tagging" view transparently compatible with a traditional hierarchical directory structure.  
 
* There is also [http://wiki.laptop.org/go/Journal%2C_reloaded Journal, reloaded], another research project with real code behind it that is promising but languishing. In this case, the idea is to make the journal "tagging" view transparently compatible with a traditional hierarchical directory structure.  
 
* bemasc's [http://dev.laptop.org/git/users/bemasc/groupthink/ groupthink], expanded: The idea is to have a data structure which keeps itself in sync across many laptops "behind the scenes", thus providing drop-in collaboration as long as the structure in question provides the needed functionality. The problem is that the existing code is unpolished, and only supports some pretty limited data structures. I have some ideas of [[how groupthink could be more general]]. [[User:Homunq|Homunq]] 00:43, 11 March 2009 (UTC)
 
* bemasc's [http://dev.laptop.org/git/users/bemasc/groupthink/ groupthink], expanded: The idea is to have a data structure which keeps itself in sync across many laptops "behind the scenes", thus providing drop-in collaboration as long as the structure in question provides the needed functionality. The problem is that the existing code is unpolished, and only supports some pretty limited data structures. I have some ideas of [[how groupthink could be more general]]. [[User:Homunq|Homunq]] 00:43, 11 March 2009 (UTC)
273

edits