User:Alsroot/trash/Activity as a regular Journal Object


Summary

Use Journal objects to represent activities.

Owner

Current status

  • Targeted release: 0.86
  • Last updated: Tue Jul 28 04:32:53 UTC 2009
  • Percentage of completion: 0%

Detailed Description

The problems that 0.84 has in case of activity versions are:

  • it can't upgrade activities if they were pre-installed from native packages; it makes process of upgrading activities from .xo impossible
  • sugar can have only one activity version installed at the same time i.e. it could be useful to have several versions simultaneously e.g. to start proper version when join request arrived(activity version of arrived request could be different to installed version)
  • why not treat activities as a regular sugar(Journal) objects

What sugar can do to fix these issues:

  • scan /usr/share/sugar/activities and ~/Activities directories at startup(like it does at present) to get list of pre-installed activities - it makes sense in case of LTSP or when sugar user develops activities(in that case its useful to store them in ~/Activities)
  • pre-installed activities could be represented by Journal entry(in fact pre-installed activities and Journal entry could be treated as special case of object bundles with activities)
  • at the and sugar has all activities/activity-versions in Journal(pre-installed and installed from object bundles)
  • Home view is a subset of Journal(in case of browsing objects) and will let users run last version of particular activity(or selected version); btw we can have in Home view's list not only activity objects but any object
  • when join request arrived, sugar runs proper version of activity or download(if it doesn't exist) from user or ASLO

Benefit to Sugar

What is the benefit to the platform? If this is a major capability update, what has changed? If this is a new feature, what capabilities does it bring? Why will Sugar become a better platform or project because of this feature?

Scope

  • rework activity registry code in sugar
  • migrate Home view to Journal
  • code to auto-load proper activity version(while joining) if it doesn't exist

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

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

Glucose dependencies.

Contingency Plan

None necessary, revert to previous release behaviour.

Documentation

Release Notes

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