Platform Team/Guide/Sweets Usage: Difference between revisions

No edit summary
Line 4: Line 4:


* Install PackageKit and PackageKit authentication agent from native packages. On Debian-based systems, these packages are {{Code|packagekit}} and {{Code|packagekit-gnome}} (for Gnome Desktop Environment). For Fedora, {{code|PackageKit}} and {{Code|gnome-packagekit}}.
* Install PackageKit and PackageKit authentication agent from native packages. On Debian-based systems, these packages are {{Code|packagekit}} and {{Code|packagekit-gnome}} (for Gnome Desktop Environment). For Fedora, {{code|PackageKit}} and {{Code|gnome-packagekit}}.
* PackageKit authentication agent should be launched to let the {{Code|sweets}} command install dependencies. Usually it is started after being logged into a Desktop Environment session (it isn't for Sugar session).
* PackageKit authentication agent should be launched to let the {{Code|sweets}} command install dependencies. Usually it is started after being logged into a Desktop Environment session (it isn't for Sugar session).
* Download and launch our [http://download.sugarlabs.org/packages/0sugar/sweets.sh self-extracted installer]. Note, sweets is not intended to be installed from {{Code|root}} user, use your current system user all time.
* Installer will add {{Code|~/.local/bin}} directory to the {{Code|PATH}}. So, re-login from an X session to take into account the new {{Code|PATH}}.


{{Admon/warning|In the current implementation, installation progress is not reported while installing packages via PackageKit.|When there are many dependencies to install for the first time, it might take some time to install them.<br>To see installation progress use the {{Code|pkmon}} command.}}
* Clone sweets sources and install it (after the first run you need to relogin to take into account new PATH value, then just run {{Code|sweets}} command):
 
git clone --recursive git://git.sugarlabs.org/sdk/sweets.git
sweets/sweets upgrade
 
== Launch sugar ==
 
To launch sugar session:
 
sweets sdk/sugar
 
or to run from Xephyr:
 
sweets sdk/sugar:emulator
 
== Development workflow with sweets ==


== Clone the sources ==


To checkout sugar project sources:


sweets --refresh --deep clone sugar


Where {{Code|--deep}} says {{Code|sweets}} process all dependencies.


Each project will be placed into the default {{Code|~/sweets}} directory. These are regular sources clones with one exception, each project contains a [[Platform Team/Recipe Specification|sweets.recipe]] spec file.
Projects might be cloned in the regular way; {{Code|sweets clone}} is just a convenient method since some of the projects are gitorious forks.


== Launch sugar ==


To launch sugar session:


sweets sugar


or to run from Xephyr:


sweets sugar:emulator
During the first launch, sources will be auto-built and kept in internal storage. To make sweets useful for the code you are developing, register sources ([[Platform Team/Recipe Specification|sweets.recipe]] should exist in sources):


To see the progress of your sweet command
sweets checkout [''path-to-sources'']


sweets -v sugar:emulator
After that, sources might be launched via sweets by mentioning its ''sweet'' value.


To see 0install logs
  sweets ''your-sweet''
  sweets -vvv sugar:emulator


During the first launch, sources will be built. To rebuild them at any time:
Registered projects will be built according to {{Code|[Build]}} section commands in recipe files. In general, for autotools-based projects, there is no further need for the {{Code|sweets}} command, just run {{Code|make install}} to build current sources and copy them to the directory that was specified by {{Code|sweets}} in the configure stage.


sweets -ff make ''sweet''
For glucose projects, there is no need even in calling the {{Code|make}} command, python code will be reused from its original place (see {{Code|binding}} options in [[Platform Team/Recipe Specification|sweets.recipe]] files), change the code and restart sugar.


To see build output, use {{Code|-v}} command line argument (adding more {{Code|-v}} arguments will increase verbose level).
For activities, follow regular activity developing procedure - clone them to {{Code|~/Activities}} directory and run from sugar shell.


=== Run sweets from X session ===
=== Run sweets from X session ===
Line 50: Line 52:


  PATH=$HOME/.local/bin:$PATH
  PATH=$HOME/.local/bin:$PATH
  sweets sugar
  sweets sdk/sugar


and create a {{Code|/usr/share/xsessions/sweets.desktop}} desktop file:
and create a {{Code|/usr/share/xsessions/sweets.desktop}} desktop file:
Line 60: Line 62:
  Exec=/etc/X11/Xsession
  Exec=/etc/X11/Xsession
  Type=Application
  Type=Application
== Development workflow with sweets ==
Cloned projects will be built according to {{Code|[Build]}} section commands in recipe files. In general, for autotools-based projects, there is no further need for the {{Code|sweets}} command, just run {{Code|make install}} to build current sources and copy them to the directory that was specified by {{Code|sweets}} in the configure stage.
For glucose projects, there is no need even in calling the {{Code|make}} command, python code will be reused from its original place (see {{Code|binding}} options in [[Platform Team/Recipe Specification|sweets.recipe]] files), change the code and restart sugar.
For activities, follow regular activity developing procedure - clone them to {{Code|~/Activities}} directory and run from sugar shell.
== Upgrade ==
To use testing versions, enable "Help test new versions" checkbox on:
0launch -g
To upgrade sweets itself to the recent version:
sweets -R upgrade
== Run sweets from sources ==
git clone --recursive git://git.sugarlabs.org/sdk/sweets.git
sweets/sweets upgrade
After the first run, you need to relogin to take into account new PATH value. Then, just run {{Code|sweets}} command.


== Current limitations ==
== Current limitations ==


* Glucose needs to be patched, thus these are gitorious forks.
* Packages cannot be built from sources without cloning.
* For now, {{Code|sweets}} knowns only about glucose dependencies to install them from native packages in Debian, Ubuntu, Fedora, Mandriva, openSUSE, and Gentoo.
* For now, {{Code|sweets}} knowns only about glucose dependencies to install them from native packages in Debian, Ubuntu, Fedora, Mandriva, openSUSE, and Gentoo.
* Activities can't reuse sweets benefits.
* Activities can't reuse sweets benefits.