Platform Team/Sugar Packaging Management System

From Sugar Labs

Jump to: navigation, search

Important note, this text is about community-driven processes that are decentralized by design. Deployment organisations like OLPC are more centralized by their nature and have absolutely different deployment schemes. And, of course, both schemes are important and useful.

Contents

Purposes

Sugar is not unique when faced with questions such as how to deploy new features to users. There are well-tested and robust models in the FOSS world for projects that follow regular release schedules, e.g., 6-month, support, long-term supported releases, etc. But, there may be cases where Sugar has its own specific needs:

So, the right answer could be a more scalable and decentralized development model. That doesn't mean we should follow only a decentralized model, but we can effectively mix both—a centralized model with the core team that features regular releases—and add an optional, decentralized model.

Implementation ideas

Activity development could be based on a pair of software-level solutions that are tied to each other.

Intermediate level libraries

A decentralized development model here means that the activity developers' focus is moved from core releases to releases of core libraries that they use in activities. So, the cornerstone idea is switching from a monolithic Sucrose + activities scheme to a monolithic Sucrose + intermediate level libraries + activities.

The major purposes in having intermediate software-level libraries are:

See Polyol group to learn about a possible implementation.

0install deployment mechanism

Intermediate level libraries will be especially useful if their recent versions could be installed on every Sugar in the field, whatever the Sucrose release on a particular machine. 0install is an obvious choice since it is

Another, but no-less-useful 0install feature is having several versions of the code at the same time. For example, if an activity can work only with a particular version of some intermediate library, it should work with this exact version even if it is really old, of course, this library version should be still supported.

See Sugar Services to learn about possible implementations.

Activity developer's point of view

Having covered all the above, an activity developer needs only assure one thing to be sure that his activity will work on all Sugars in the field: Declare what intermediate libraries are needed and, maybe, what particular versions are needed. See Activity Developers Guide to learn how it is implemented in 0sugar.

So, to support a huge repository of Learner's/doer's code (see 3rd point of purposes), there is no need in having a huge QA effort to review every new piece of code—we just rely on the activity coder having declared all the required libraries/versions (those used during activity coding).

Personal tools
Namespaces
Variants
Actions
Sugar
Projects
Teams
Local Labs
Using the Wiki
Google translations