Platform Team/Package Management System: Difference between revisions

Line 35: Line 35:
== How it works at a glance ==
== How it works at a glance ==


Instruments and services that are used within Zero Sugar:
Services that are used within Zero Sugar:
* [[Activity Team/Zero Sugar/0sugar|0sugar]], the main tool, everything happens via the {{Code|0sugar}} command.
 
* [http://build.opensuse.org/ OBS], openSUSE Build Service, that is patched to accomplish Zero Sugar needs. OBS will be hosted on SugarLabs servers and accessible from http://refinery.sugarlabs.org site. It will be a central place for all files related procedures like hosting various files, building binaries, providing GNU/Linux distribution repositories for centralized Sugar deployments.
* [http://build.opensuse.org/ OBS], openSUSE Build Service, that is patched to accomplish Zero Sugar needs. Accessible from http://bazaar.sugarlabs.org site. It will be a central place for all files related procedures like hosting various files, building binaries, providing GNU/Linux distribution repositories for centralized Sugar deployments.
* [http://0install.net/ 0install] decentralized deployment infrastructure.
* [http://0install.net/ 0install] decentralized deployment infrastructure.
* [http://www.packagekit.org/ PackageKit] to install software from native packaging systems.
* [http://www.packagekit.org/ PackageKit] to install software from native packaging systems.
Line 61: Line 61:
=== Recipe file ===
=== Recipe file ===


The process departing point is a [[Activity Team/Zero Sugar/0sugar.info Specification|recipe file]] which is used within Zero Sugar to accomplish the major task - how to prepare the code to launch.
The process departing point is a [[Activity Team/Zero Sugar/0sugar.recipe Specification|recipe file]] which is used within Zero Sugar to accomplish the major task - how to prepare the code to launch.


The Zero Sugar recipe file is an all-sufficient entity. With only the file and {{Code|0sugar}} tool, it is possible to prepare the code necessary to launch in various environments like the major rpm/deb-based GNU/Linux distributions or just launch locally.
The Zero Sugar recipe file is an all-sufficient entity. With only the file and {{Code|0sugar}} tool, it is possible to prepare the code necessary to launch in various environments like the major rpm/deb-based GNU/Linux distributions or just launch locally.
Line 69: Line 69:
The preparation step can be trivial, unless the code requires a building stage. Building might occur:
The preparation step can be trivial, unless the code requires a building stage. Building might occur:
* on the developer's workstation, to deploy to environments similar to the developer's,
* on the developer's workstation, to deploy to environments similar to the developer's,
* on http://refinery.sugarlabs.org, to build for the GNU/Linux distributions that are supported by Refinery Team, or
* on http://bazaar.sugarlabs.org, to build for the GNU/Linux distributions that are supported, or
* building might happen on the user's side, if other methods don't work.
* building might happen on the user's side, if other methods don't work.


Line 81: Line 81:
* ''client-server'', doer needs to upload code to the server, and users will download it.<br>The particular method might be different:
* ''client-server'', doer needs to upload code to the server, and users will download it.<br>The particular method might be different:
** via the 0install infrastructure,
** via the 0install infrastructure,
** via http://refinery.sugarlabs.org repositories with native packages,
** via http://bazaar.sugarlabs.org repositories with native packages,
** by uploading bundles to servers like ASLO.
** by uploading bundles to servers like ASLO.
* ''distributor'', most likely similar to ''client-server'', but different from the doer's point of view, since only the distributor is responsible for a particular distribution method.
* ''distributor'', most likely similar to ''client-server'', but different from the doer's point of view, since only the distributor is responsible for a particular distribution method.
Line 89: Line 89:
The regular workflow within Zero Sugar, in the case of coding a Python-based activity, will look like the following:
The regular workflow within Zero Sugar, in the case of coding a Python-based activity, will look like the following:


* Create new project and package on http://refinery.sugarlabs.org.
* Create new project and package on http://bazaar.sugarlabs.org.
* Create activity [[Activity_Team/Zero_Sugar/0sugar.info_Specification#Python_activity|recipe file]].
* Create activity [[Activity_Team/Zero_Sugar/0sugar.recipe_Specification#Python_activity|recipe file]].
* Code the activity.
* Code the activity.
* Try current code in Sugar just by selecting an icon in the activities list.
* Try current code in Sugar just by selecting an icon in the activities list.
* When a milestone is achieved, call {{Code|0sugar dist commit}} to create sources tarballs and send them to http://refinery.sugarlabs.org.
* When a milestone is achieved, call {{Code|0sugar push}} to create sources tarball and send it to http://bazaar.sugarlabs.org.
* After that, activity will be accessible for direct usage (via 0install) and for distributors that are eager to deploy it (via native packages).
* After that, activity will be accessible for direct usage (via 0install) and for distributors that are eager to deploy it (via native packages).