Difference between revisions of "0.84/Reliability"

From Sugar Labs
Jump to navigation Jump to search
 
(24 intermediate revisions by 4 users not shown)
Line 1: Line 1:
 +
<noinclude>{{GoogleTrans-en}}{{TOCright}}</noinclude>[[Category:FeatureLanded]]
 
== Datastore rework ==
 
== Datastore rework ==
  
Line 9: Line 10:
 
* Marco Pesenti Gritti
 
* Marco Pesenti Gritti
  
=== TODO ===
+
=== Actions ===
  
* The datastore code needs to be rewritten, to simplify and improve maintainability. As a first step the API will not be changed at all (other than removing removable devices support, see next goal), so that the new implementation can be swapped in without changes to activities and Sugar. '''(tomeu)'''
+
* Design alternative UI for managing removable devices. '''(eben)'''
* Drop for now the management of removable devices inside the DS. Removable devices support in Sugar should happen without intervention from the DS. This will require that Sugar grows some kind of simple file manager that access the file system directly. '''(tomeu)'''
+
* Implement managing removable devices out of the DS. '''(tomeu)'''
 +
* When an existing entry is modified, keep the old version and reference them with a version number. Compress versions with deltas. The journal needs to add a possibility to launch different versions of an activity from within the detail view. '''(tomeu)'''
 +
 
 +
=== Done ===
 +
 
 +
* The datastore code needs to be rewritten, to simplify and improve maintainability. As a first step the API will not be changed at all (other than removing removable devices support), so that the new implementation can be swapped in without changes to activities and Sugar. '''(tomeu)'''
 +
* Drop for now the management of removable devices inside the DS. Removable devices support in Sugar should happen without intervention from the DS. '''(tomeu)'''
 
* [http://dev.laptop.org/ticket/8155 #8155] The datastore should hard link identical files, to handle repeated downloads of the same content without filling up NAND. '''(tomeu)'''
 
* [http://dev.laptop.org/ticket/8155 #8155] The datastore should hard link identical files, to handle repeated downloads of the same content without filling up NAND. '''(tomeu)'''
* When an existing entry is modified, keep the old version and reference them with a version number. Compress versions with deltas. The journal needs to add a possibility to launch different versions of an activity from within the detail view. '''(tomeu)'''
+
* Support arbitrary metadata properties that activities wish to add [http://dev.laptop.org/ticket/4662 #4662]. '''(tomeu)'''
* Degrade gracefully if a database gets corrupted- Basic functionality should only depend on the filesystem being available. Any other data structures (full text index) should be rebuildable from the filesystem. '''(tomeu)'''
+
* Degrade gracefully if a database gets corrupted- Basic functionality should only depend on the filesystem being available. Any other data structures (full text index) should be rebuildable from the filesystem. '''(tomeu)''' [http://dev.laptop.org/ticket/6269 #6269]
 +
 
 +
== Solid clipboard ==
 +
 
 +
=== People ===
 +
 
 +
Owner: Eben Eliason
 +
 
 +
Peers:
 +
 
 +
* Tomeu Vizoso
 +
* Marco Pesenti Gritti
 +
 
 +
=== Actions ===
 +
 
 +
* Allow activities to supply a title along a clipping. '''(tomeu)'''
 +
* Allow activities to supply an icon along a clipping. '''(tomeu)'''
 +
* Display a preview of the clipping in the palette. '''(tomeu)'''
 +
* Display the colors of the activity that provided the clipping. '''(tomeu)'''
 +
* Calculate good fallbacks for activities that fail to provide any of the above items. '''(tomeu)'''
 +
* We really need to support a direct "paste" action on clipping items, which poses an implementation challenge.  It's important, however, to make this action work in our "object oriented" environment.
 +
* We should have secondary option for paste-and-remove (option-ctrl-v) on the paste button.
 +
* We should have secondary option for copy-and-erase (ctrl-x) on the copy button, to handle the action usually known as "cut".
 +
* The clipboard should support drag'n'drop reordering of clippings, both to make a series of paste-and-removes occur in a desired order, and to allow one to move clippings back to the top, so they don't fall off the bottom as more are made. '''(tomeu)'''
 +
 
 +
=== Tickets ===
 +
 
 +
This list is a subset which focuses on the key areas I would like to address.  For a more complete list, which invcludes some less noteworthy yet attention deserving bugs, please view the [http://dev.laptop.org/query?status=assigned&status=new&status=reopened&summary=%7Eclipboard&summary=%7Eclipping&col=id&col=summary&col=status&col=type&col=priority&col=milestone&col=component&order=priority full trac query].
 +
 
 +
*{{Trac|3189|Clippings need API for activity supplied titles}}
 +
*{{Trac|5751|Clipboard objects need meaningful labels}}
 +
*{{Trac|3691|Clippings should take on the colors of the activity they were clipped from}}
 +
*{{Trac|1954|Need "paste" action on clippings}}
 +
*{{Trac|3117|Clippings need previews}}
 +
*{{Trac|4292|Clippings need support for custom icons}}
 +
*{{Trac|2926|Paste and remove: Popping clippings from clipboard stack when pasted}}
 +
*{{Trac|5755|Clipboard should support drag'n'drop reordering (instead of duplicating clippings)}}
  
=== Status ===
+
=== Done ===
  
* Tomeu is working on a prototype of the datastore rewrite.
+
* Eben is working to refine the [http://wiki.laptop.org/go/Specifications/Clipboard clipboard specification]
* If the journal is not going to display the contents of removable devices, we (Eben) need to design an alternative UI.
 
* More work needed to define the goals.
 
  
== Scalable presence service ==
+
== Memory bloat ==
  
 
=== People ===
 
=== People ===
  
Owner: Simon Schampijer
+
Owner: Marco Pesenti Gritti
  
 
Peers
 
Peers
  
* Guillaume Desmottes
+
* Riccardo Lucchese
* Dafydd Harries
+
* Tomeu Vizoso
* Eben Eliason
+
 
 +
=== Actions ===
 +
 
 +
* Improve base memory usage of the Activity class. '''(marco)'''
 +
 
 +
* Write a clear check list about things you need to do to ensure you are not leaking pygtk widgets. '''(tomeu)'''
  
=== TODO ===
+
* The reference cycle between Widget, Palette and Invoker is causing a lot of leaks. The Palette should not know about the invoker at all. The Invoker should control the Palette instead, pop it up and down, set his position etc. '''(marco)'''
  
See [http://wiki.laptop.org/go/Gadget_integration_TODO Gadget integration TODO] for more details.
+
* BuddyModel is referenced by sugar.presence.buddy.Buddy which is cached, so it doesn't get released as soon as we would like. '''(tomeu)'''
  
* Complete [http://wiki.laptop.org/go/Gadget Gadget] implementation, which should hopefully fix our current scalabity issues and offer new features as activity and buddies search. '''(cassidy)'''
+
=== Ideas ===
* Integrate Gadget in glucose. It will require work on several modules, including sugar-presence-service, sugar-toolkit and sugar. '''(cassidy)'''
 
* Integrate gadget in the Sugar UI. [http://dev.laptop.org/ticket/7711 #7711] '''(erikos, eben)'''
 
  
=== Status ===
+
* We need some way to constantly monitor memory usage.
  
* Gagdet 0.01 has been released.
+
=== Done ===
* Design meeting to see if the current API fits
 
  
== Scalable link local presence ==
+
* Improve base memory usage of the sugar shell and related services. '''(tomeu)'''
 +
 
 +
== Quality assurance ==
  
 
=== People ===
 
=== People ===
  
Owner: ???
+
Owner: Marco Pesenti Gritti
 +
 
 +
Peers:
 +
 
 +
* Simon Schampijer
 +
* Joel Stanley
 +
 
 +
=== Ideas ===
  
* Sjoerd Simons
+
* Integrate sugarbot into sugar-jhbuild and buildbot. Write tests for it and encourage the activity authors to do so too.
* Elliott Fairweather
+
* Start writing unit tests and use nose to run them into the buildbot. We will have to figure out how to unit test UI code.
* Polychronis Ypodimatopoulos
+
* Form a community driven bug squad to help with testing and bug triaging, both on the XO version of Sugar and on other distributions. It's important that we get testing well before OLPC is trying to close down it's releases.
 +
* Developers should start using Sugar daily, either on the XO or on a normal laptop.
  
=== Status ===
+
=== Done ===
  
* Completely undefined
+
* Get a buildbot running on at least Fedora and Ubuntu. '''(marco)'''
 +
* Pylint the core codebase, check regressions in the buildbot, make it a requirement to be pylint clean to submit patches. '''(marco)'''
 +
* Add basic checks on the buildbot about shell and activity startup. '''(marco)'''

Latest revision as of 14:23, 5 November 2013

Datastore rework

People

Owner: Tomeu Vizoso

Peers:

  • Marco Pesenti Gritti

Actions

  • Design alternative UI for managing removable devices. (eben)
  • Implement managing removable devices out of the DS. (tomeu)
  • When an existing entry is modified, keep the old version and reference them with a version number. Compress versions with deltas. The journal needs to add a possibility to launch different versions of an activity from within the detail view. (tomeu)

Done

  • The datastore code needs to be rewritten, to simplify and improve maintainability. As a first step the API will not be changed at all (other than removing removable devices support), so that the new implementation can be swapped in without changes to activities and Sugar. (tomeu)
  • Drop for now the management of removable devices inside the DS. Removable devices support in Sugar should happen without intervention from the DS. (tomeu)
  • #8155 The datastore should hard link identical files, to handle repeated downloads of the same content without filling up NAND. (tomeu)
  • Support arbitrary metadata properties that activities wish to add #4662. (tomeu)
  • Degrade gracefully if a database gets corrupted- Basic functionality should only depend on the filesystem being available. Any other data structures (full text index) should be rebuildable from the filesystem. (tomeu) #6269

Solid clipboard

People

Owner: Eben Eliason

Peers:

  • Tomeu Vizoso
  • Marco Pesenti Gritti

Actions

  • Allow activities to supply a title along a clipping. (tomeu)
  • Allow activities to supply an icon along a clipping. (tomeu)
  • Display a preview of the clipping in the palette. (tomeu)
  • Display the colors of the activity that provided the clipping. (tomeu)
  • Calculate good fallbacks for activities that fail to provide any of the above items. (tomeu)
  • We really need to support a direct "paste" action on clipping items, which poses an implementation challenge. It's important, however, to make this action work in our "object oriented" environment.
  • We should have secondary option for paste-and-remove (option-ctrl-v) on the paste button.
  • We should have secondary option for copy-and-erase (ctrl-x) on the copy button, to handle the action usually known as "cut".
  • The clipboard should support drag'n'drop reordering of clippings, both to make a series of paste-and-removes occur in a desired order, and to allow one to move clippings back to the top, so they don't fall off the bottom as more are made. (tomeu)

Tickets

This list is a subset which focuses on the key areas I would like to address. For a more complete list, which invcludes some less noteworthy yet attention deserving bugs, please view the full trac query.

Done

Memory bloat

People

Owner: Marco Pesenti Gritti

Peers

  • Riccardo Lucchese
  • Tomeu Vizoso

Actions

  • Improve base memory usage of the Activity class. (marco)
  • Write a clear check list about things you need to do to ensure you are not leaking pygtk widgets. (tomeu)
  • The reference cycle between Widget, Palette and Invoker is causing a lot of leaks. The Palette should not know about the invoker at all. The Invoker should control the Palette instead, pop it up and down, set his position etc. (marco)
  • BuddyModel is referenced by sugar.presence.buddy.Buddy which is cached, so it doesn't get released as soon as we would like. (tomeu)

Ideas

  • We need some way to constantly monitor memory usage.

Done

  • Improve base memory usage of the sugar shell and related services. (tomeu)

Quality assurance

People

Owner: Marco Pesenti Gritti

Peers:

  • Simon Schampijer
  • Joel Stanley

Ideas

  • Integrate sugarbot into sugar-jhbuild and buildbot. Write tests for it and encourage the activity authors to do so too.
  • Start writing unit tests and use nose to run them into the buildbot. We will have to figure out how to unit test UI code.
  • Form a community driven bug squad to help with testing and bug triaging, both on the XO version of Sugar and on other distributions. It's important that we get testing well before OLPC is trying to close down it's releases.
  • Developers should start using Sugar daily, either on the XO or on a normal laptop.

Done

  • Get a buildbot running on at least Fedora and Ubuntu. (marco)
  • Pylint the core codebase, check regressions in the buildbot, make it a requirement to be pylint clean to submit patches. (marco)
  • Add basic checks on the buildbot about shell and activity startup. (marco)