0.84/Reliability
< 0.84
Datastore rework
People
Owner: Tomeu Vizoso
Peers:
- Marco Pesenti Gritti
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)
- 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)
- #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)
- 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)
Status
- Tomeu is working on a prototype of the datastore rewrite.
- 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.
Memory bloat
People
Owner: Marco Pesenti Gritti
Peers
- Riccardo Lucchese
- Tomeu Vizoso
Actions
- Improve base memory usage of the sugar shell and related services. (tomeu)
- 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)
Not yet assigned:
- We need some way to constantly monitor memory usage.
Status
- Several heavy shell dependency has been dropped.
- Merge of the journal and of the shell service into the shell is in progress.
Quality assurance
People
Owner: Marco Pesenti Gritti
Peers:
- Simon Schampijer
- Joel Stanley
Actions
- Get a buildbot running on at least Fedora and Ubuntu.
- Pylint the core codebase, check regressions in the buildbot, make it a requirement to be pylint clean to submit patches.
- Add basic checks on the buildbot about shell and activity startup.
- 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.
Status
- Defined the general goals.
- Work on the buildbot is in progress, but it's already useful.
- Zach working on sugarbot integration.
- sugar shell and module are pylint clean and checked by the buildbot.