User:Alsroot/trash/Object Bundles


Summary

Package Journal objects to bundles to preserve sugar related metadata.

Owner

Current status

  • Targeted release: 0.86
  • Last updated: Tue Jul 21 02:18:17 UTC 2009
  • Percentage of completion: 0%

Detailed Description

This feature is a first approach to unified format for all types of bundles(in 0.86 it will support only Journal entries and new library bundles).

Bundle files hierarchy

  • MANIFEST EOL-terminalted list of files inside bundle
  • METADATA file in INI format which describes bundle

METADATA file

METADATA files could consists of several predefined sections:

  • [Metadata*]
  • [Activity] (reserved for future use)
  • [Library] (reserved for future use)
  • [General] (reserved for future use)

Any field in METADATA file can have _file suffix, in that case content of this field(substring w/o _file suffix) will be fetched from file inside of the bundle.

[Metadata] section

This section is mandatory. It describes Datastore metadata fields of final entry in Journal.

Field Flags Notes
journal_file optional if exists, this file will be unpacked while uploading bundle to Journal and current section defines its metadata
otherwise defines metadata for bundle itself and bundle will be stored as is in Journal
exec optional command to activate Journal object(according to journal_file), if its absent then either activity or mime_type based action
activity optional bundle_id of activity to start Journal object(according to journal_file), exec overrides this field
mime_type mandatory define metadata for a file which which will be stored in Journal(according to journal_file)
* optional any Datastore field, predefined or user defined

METADATA file could have several [Manifest] sections, in that case they would be parted by different suffixes e.g. [Manifest2], [Manifest.additional] etc.

MANIFEST file

File which contains a new-line-terminated list of file names inside bundle.

Benefit to Sugar

Let users export/import Journal objects.

Scope

  • deprecate .xoj bundles
  • provide unified format for metadata file in .xo bundles which should support
    • activities, former .xo bundles (0.88)
    • libraries, former .xol bundles (0.88)
    • journal entries, former .xoj bundles (0.86)
  • make Browse upload object bundles when the server says so

How To Test

  1. Create a new TurtleArt activity
  2. Upload the new entry to the SL wiki using Browse
  3. Use Browse to download the entry back to Journal
  4. Resume it from Journal

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

Fructose 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