Difference between revisions of "Features/Content support"

From Sugar Labs
Jump to navigation Jump to search
(Created page with '<noinclude>{{GoogleTrans-en}}{{TOCright}}</noinclude> == Summary == ''A sentence or two summarizing what this feature is and what it will do. This information is used for the ov…')
 
 
(7 intermediate revisions by 2 users not shown)
Line 1: Line 1:
<noinclude>{{GoogleTrans-en}}{{TOCright}}</noinclude>
+
<noinclude>{{GoogleTrans-en}}{{TOCright}}
 +
[[Category:FeatureLanded|Content support]]
 +
</noinclude>
  
 
== Summary ==
 
== Summary ==
''A sentence or two summarizing what this feature is and what it will do. This information is used for the overall feature summary page for each release.''
+
Sugar should be able to support easy installation and distribution of books, multimedia, and other content.
  
 
== Owner ==
 
== Owner ==
Line 8: Line 10:
  
 
== Current status ==
 
== Current status ==
* Targeted release: (SUGAR_VERSION)
+
 
* Last updated: (DATE)
+
* Targeted release: 0.100
* Percentage of completion: XX%
+
* Last updated: July 2013
 +
* Percentage of completion: 100%
  
 
== Detailed Description ==
 
== Detailed Description ==
  
It could be useful to provide as simple as possible method for non-tech users e.g. sugar could send info to predefined server instead of asking questions.
+
[[Content bundles]] have long been both a crucial part of the OLPC-Sugar offering (see http://wiki.laptop.org/go/Creating_a_collection), and a pain through having some deficiencies.
 +
 
 +
They are important because it is the only easy way for a deployment to add pre-made content to Sugar (e.g. books). The strong point of the design here is that beyond a not-too-strange library.info metadata file, you do not have to interact with anything too technical (e.g. python) beyond the HTML content itself. It is something that seems to fall within
 +
capabilities of deployment teams without much difficulty, whereas activity development is often a painful step up.
 +
 
 +
They are quite widely used and in my experience visiting deployments "how do we add our content to the laptop" is a very frequent question - I always ran training sessions on content bundles in response. Here are some examples of the kinds of bundles that exist:
 +
* World maps
 +
* Music (e.g., one album)
 +
* Grade 3 textbooks
 +
* Grade 5 textbooks
 +
* Collections of local historical tales
 +
* Multimedia about local culture (dance/music)
 +
 
 +
However they are a pain because Sugar never really supported them very well. Sugar can launch them from the Journal, but shipped content that the user has never opened before does not exist in the Journal, so there was something missing here.
 +
 
 +
To fill the gap, OLPC added a system (olpc-library) to produce a HTML index of content bundles and this is the Browse homepage, but that isn't great either - it's not part of Sugar where it should be, and users have to open the web browser as if they are going online when they are just looking to open some preinstalled content.
 +
 
 +
With my recent work on [[Features/Automatic activity updates|automatic activity updates]], we had to add content bundles to the bundle registry so that they will be updated appropriately. Now that this is done, it is very easy to remove this deficiency.Content bundles now appear alongside activities, in the list and favourites views. They are launched as expected with a click.
 +
 
 +
Sugar's support for content is currently minimal. You are limited to shipping the content on USB disk to each computer, or through a website (one-click-per-file). The widely-deployed .xol content bundles only have minimal support (they can only be launched from the journal).
 +
 
 +
With this change, it is envisioned that the OLPC-specific way of providing a content bundle index (through olpc-library) would go away. The [[Content bundles|content bundle format]] has been tweaked to remove unused fields. However, it is fully compatible with existing content bundles.
  
 
== Benefit to Sugar ==
 
== Benefit to Sugar ==
  
Easy way which lets user provide full debug info after encountering a bug.
+
Sugar deployers finally have a simple method of shipping content to all systems within a deployment.
  
 
== Scope ==
 
== Scope ==
''What work do the developers have to accomplish to complete the feature in time for release?  Is it a large change affecting many parts of the distribution or is it a very isolated change? What are those changes?''
+
 
 +
A small Sugar patch is needed, to show content bundles on the home screen (rather than ignore them), and some tweaks to the ContentBundle class is needed so that it matches the API of the ActivityBundle class.
  
 
== How To Test ==
 
== How To Test ==
''This does not need to be a full-fledged document.  Describe the dimensions of tests that this feature is expected to pass when it is done.  If it needs to be tested with different hardware or software configurations, indicate them.  The more specific you can be, the better the community testing can be.''
 
 
''Remember that you are writing this how to for interested testers to use to check out your feature - documenting what you do for testing is OK, but it's much better to document what *I* can do to test your feature.''
 
 
''A good "how to test" should answer these four questions:''
 
 
* ''What special hardware / data / etc. is needed (if any)?
 
* ''How do I prepare my system to test this feature? What packages need to be installed, config files edited, etc.?
 
* ''What specific actions do I perform to check that the feature is working like it's supposed to?
 
* ''What are the expected results of those actions?''
 
  
== User Experience ==
+
Install content bundles and make sure that you can open them. Make them available on the favorites view and check they can be opened from there. Check that you can erase them and that they are then gone from disk.
''If this feature is noticeable by its target audience, how will their experiences change as a result?  Describe what they will see or notice.''
 
  
 
== Dependencies ==
 
== Dependencies ==
''What other packages (RPMs) depend on this package?  Are there changes outside the developers' control on which completion of this feature depends?  In other words, completion of another feature owned by someone else and might cause you to not be able to finish on time or that you would need to coordinate?  Other upstream projects like python?''
 
  
== Contingency Plan ==
+
None.
''If you cannot complete your feature by the final development freeze, what is the backup plan?  This might be as simple as "None necessary, revert to previous release behaviour."  Or it might not.  If you feature is not completed in time we want to assure others that other parts of Sugar will not be in jeopardy.''
 
  
== Documentation ==
+
== Release Notes ==
''Is there upstream documentation on this feature, or notes you have written yourself?  Link to that material here so other interested developers can get involved.''
 
  
== Release Notes ==
+
to be written after implementation and testing
''The Sugar Release Notes inform end-users about what is new in the release. An Example is [[0.84/Notes]]. The release notes also help users know how to deal with platform changes such as ABIs/APIs, configuration or data file formats, or upgrade concerns.  If there are any such changes involved in this feature, indicate them here.  You can also link to upstream documentation if it satisfies this need.  This information forms the basis of the release notes edited by the release team and shipped with the release.''
 
  
 
== Comments and Discussion ==
 
== Comments and Discussion ==
* See [[{{TALKPAGENAME}}|discussion tab for this feature]] <!-- This adds a link to the "discussion" tab associated with your page.  This provides the ability to have ongoing comments or conversation without bogging down the main feature page -->
+
* See [[{{TALKPAGENAME}}|discussion tab for this feature]]
 
 
 
 
[[Category:Feature Page Incomplete]]
 
[[Category:Feature]]
 
----
 
''You can add categories to tie features back to real deployments/schools requesting them, for example <nowiki>[[</nowiki>Category:Features requested by School Xyz]]''
 

Latest revision as of 14:19, 5 November 2013


Summary

Sugar should be able to support easy installation and distribution of books, multimedia, and other content.

Owner

DanielDrake dsd@laptop.org

Current status

  • Targeted release: 0.100
  • Last updated: July 2013
  • Percentage of completion: 100%

Detailed Description

Content bundles have long been both a crucial part of the OLPC-Sugar offering (see http://wiki.laptop.org/go/Creating_a_collection), and a pain through having some deficiencies.

They are important because it is the only easy way for a deployment to add pre-made content to Sugar (e.g. books). The strong point of the design here is that beyond a not-too-strange library.info metadata file, you do not have to interact with anything too technical (e.g. python) beyond the HTML content itself. It is something that seems to fall within capabilities of deployment teams without much difficulty, whereas activity development is often a painful step up.

They are quite widely used and in my experience visiting deployments "how do we add our content to the laptop" is a very frequent question - I always ran training sessions on content bundles in response. Here are some examples of the kinds of bundles that exist:

  • World maps
  • Music (e.g., one album)
  • Grade 3 textbooks
  • Grade 5 textbooks
  • Collections of local historical tales
  • Multimedia about local culture (dance/music)

However they are a pain because Sugar never really supported them very well. Sugar can launch them from the Journal, but shipped content that the user has never opened before does not exist in the Journal, so there was something missing here.

To fill the gap, OLPC added a system (olpc-library) to produce a HTML index of content bundles and this is the Browse homepage, but that isn't great either - it's not part of Sugar where it should be, and users have to open the web browser as if they are going online when they are just looking to open some preinstalled content.

With my recent work on automatic activity updates, we had to add content bundles to the bundle registry so that they will be updated appropriately. Now that this is done, it is very easy to remove this deficiency.Content bundles now appear alongside activities, in the list and favourites views. They are launched as expected with a click.

Sugar's support for content is currently minimal. You are limited to shipping the content on USB disk to each computer, or through a website (one-click-per-file). The widely-deployed .xol content bundles only have minimal support (they can only be launched from the journal).

With this change, it is envisioned that the OLPC-specific way of providing a content bundle index (through olpc-library) would go away. The content bundle format has been tweaked to remove unused fields. However, it is fully compatible with existing content bundles.

Benefit to Sugar

Sugar deployers finally have a simple method of shipping content to all systems within a deployment.

Scope

A small Sugar patch is needed, to show content bundles on the home screen (rather than ignore them), and some tweaks to the ContentBundle class is needed so that it matches the API of the ActivityBundle class.

How To Test

Install content bundles and make sure that you can open them. Make them available on the favorites view and check they can be opened from there. Check that you can erase them and that they are then gone from disk.

Dependencies

None.

Release Notes

to be written after implementation and testing

Comments and Discussion