[Sugar-devel] Easy development process of core sugar components

Aleksey Lim alsroot at member.fsf.org
Fri Oct 22 11:43:02 EDT 2010


Hi all,

This is a trying to replace jhbuild. For example, for me it was all time
needless obscured, i.e., it somewhat `git clone` to somewhere, somehow
built it and somehow run it, and all this only for 4-5 core projects
(its deps might be installed from official or custom repos).

New workflow is inspired of evidence and simplicity (in workflow, not
in how it works under-the-hood) by activity development workflow.
What you need are:

* in most cases (except fc14) you need additional run-time dependencies,
  attach Platform and Core repositories and install sugar
  `sweets download sugar/emulator` (to install all required deps and
  glucose for usage by default) from Bazaar
* git clone glucose project to ~/sweets (or to ~/Activities)
* check what will happen while building by looking to spec file -
  sweets.recipe[2] (i.e., an analog of activity.info)
* run `sweets build` being within git cloned directory to build it
* from any place in fs, call `sweets <sweet-value-from-recipe>`
  to launch it (build phase might be omitted, sweets will check if
  build already happened and start building otherwise)
* you can change python code in cloned projects w/o need to run build
  command (the same .py files are used to run sugar, see "implement"
  option in Build section in recipe file), of course sugar itself should
  be restarted to take into account new .py code
* the same for all glucose project (if component was not cloned,
  installed version will be used)

Current limitations:

* to use new scheme, glucose needs to be patched. It is not in master,
  so use bazaar branches[3] that any synced w/ trunk
* dependency solving is inefficient and temporary, it will be replaced
  by invoking 0install in further implementation
* build time dependencies need to be installed manually, auto-install will
  be supported later, by 0install (here 0install means not only fetching
  custom builds but, most likely, ask 0install what native packages
  should be installed by PackageKit)
  * fedora based systems:
    autoconf automake libtool make intltool pygtk2-devel gtk2-devel
    GConf2-devel gnome-common icon-slicer icon-naming-utils xorg-x11-apps
    libSM-devel alsa-lib-devel
  * debian based systems:
    build-essential intltool python-gtk2-dev libgtk2.0-dev libgconf2-dev
    icon-slicer icon-naming-utils x11-apps  libsm-dev libasound2-dev
    libtool gnome-common


[1] http://lists.sugarlabs.org/archive/sugar-devel/2010-October/028108.html
[2] http://wiki.sugarlabs.org/go/Activity_Team/Zero_Sugar/Recipe_Specification#.5BBuid.5D
[3] git://git.sugarlabs.org/sugar-base/bazaar.git
    git://git.sugarlabs.org/sugar/bazaar.git
    git://git.sugarlabs.org/sugar-toolkit/bazaar.git
    git://git.sugarlabs.org/sugar-presence-service/bazaar.git
    git://git.sugarlabs.org/sugar-artwork/bazaar.git

-- 
Aleksey


More information about the Sugar-devel mailing list