Changes

no edit summary
Line 1: Line 1: −
This guide describes how to use Sugar Labs' Packaging Management System. See also [[Platform_Team/Sweets|introduction page]].
+
This guide describes how to use Sugar Labs' Packaging Management System. See also [[Platform_Team/Sweets|introduction page]] and [[Platform_Team/Guide/Sweets_Packaging|Packaging guide]].
    
== Installation ==
 
== Installation ==
Line 45: Line 45:  
  git submodule update
 
  git submodule update
   −
== Launch sugar ==
+
== Usage ==
   −
To launch sugar session:
+
Read the [[Platform_Team/Sweets/Glossary|Sweets Glossary]] to understand the basic conception. The rest of the text will operate with following terms:
   −
sweets sdk/sugar
+
* {{Code|SWEET}}, the full ''interface'' url, like {{Code|http://sweets.sugarlabs.org/sdk/sugar}}, or the short one, like {{Code|sdk/sugar}};
 +
* {{Code|COMMAND}}, ''sweet'''s command that points how to run particular ''sweet''; by default, ''sweet''s have only {{Code|run}} command but it is possible to have several commands;
 +
* {{Code|VERSION}}, ''sweet'''s version
 +
 
 +
See the [[#Sugar_via_Sweets|Sugar via Sweets]] section for real examples how use ''Sweets'' to run Sugar Shell.
 +
 
 +
=== Launch ===
 +
 
 +
To launch a ''sweet'' with verbatim passing optional {{Code|ARGUMENTS}}:
 +
 
 +
sweets SWEET [ARGUMENTS]
   −
or to run from Xephyr:
+
Sometimes ''sweet''s support several launching command, it is possible to specify one during the launch:
   −
  sweets sdk/sugar:emulator
+
  sweets SWEET:COMMAND
   −
It is possible to run different glucose versions via sweets (for now, testing 0.92+ and stable 0.88 based on Dextrose-2), e.g.:
+
To run particular, not the latest, version:
   −
  sweets sdk/sugar:emulator=0.88
+
  sweets SWEET[''=''|''>=''|''<=''VERSION]
    
To get the full list of available versions:
 
To get the full list of available versions:
sweets show sdk/sugar -v
     −
For launch command, all arguments passed after sweet name are treated as launched sweet's arguments. For example, it is possible to run sugar by bassing {{Code|-f}} argument:
+
sweets status SWEET -v
 +
 
 +
=== Troubleshooting ===
   −
sweets sdk/sugar:emulator=0.88 -f
+
If {{Code|sweets}} can't find proper ''implementation'', see the {{Code|e}} lines in the output of:
   −
If sweets can't find proper implementation, see the {{Code|E}} lines in output of:
+
  sweets status SWEET -vdd
  sweets show sdk/sugar -vdd
     −
== Search ==
+
=== Search ===
   −
It is possible to search sweets among locally known ones and registered on http://sweets.sugarlabs.org (not yet implemented). The search is based on [http://xapian.org/ Xapian] search engine. Thus, it is possible to use Xapian's [http://xapian.org/docs/queryparser.html query language].
+
It is possible to search ''sweet''s among locally known ones and registered on http://sweets.sugarlabs.org (not yet implemented). The search is based on [http://xapian.org/ Xapian] search engine. Thus, it is possible to use Xapian's [http://xapian.org/docs/queryparser.html query language].
    
For command format is:
 
For command format is:
   −
  sweets search ''query''
+
  sweets search QUERY
    
Notice that [http://xapian.org/docs/queryparser.html#partially-entered-query-matching partial] search is enabled. So, the query {{Code|tele}} will be treated as {{Code|tele*}} to search all words that start from {{Code|tele}}.
 
Notice that [http://xapian.org/docs/queryparser.html#partially-entered-query-matching partial] search is enabled. So, the query {{Code|tele}} will be treated as {{Code|tele*}} to search all words that start from {{Code|tele}}.
   −
Sweets supports following search [http://xapian.org/docs/queryparser.html#searching-within-a-probabilistic-field prefixes] basing of [[Platform_Team/Recipe_Specification|recipe options]]:
+
{{Code|sweets}} supports following search [http://xapian.org/docs/queryparser.html#searching-within-a-probabilistic-field prefixes] basing of [[Platform_Team/Recipe_Specification|recipe options]]:
    
* '''interface''' the first interface from implementations list, e.g., {{Code|http://sweets.sugarlabs.org/sdk/sugar}};
 
* '''interface''' the first interface from implementations list, e.g., {{Code|http://sweets.sugarlabs.org/sdk/sugar}};
Line 97: Line 107:  
So, it possible to search only among particular sweet attributes, like {{Code|name:telepathy}} to search only among sweet names.
 
So, it possible to search only among particular sweet attributes, like {{Code|name:telepathy}} to search only among sweet names.
   −
Sweets support additional notation for exact searching in form of {{Code|''prefix''<nowiki>:=</nowiki>''string''}}. For example the query {{Code|name<nowiki>:=</nowiki>sugar}} will find sweets only with exactly {{Code|sugar}} name and omit names like {{Code|sugar-base}}. If search string contains spaces, wrap it to double quotes, {{Code|name<nowiki>:=</nowiki>"Sugar Commander"}}. Note, wildcards does not work in exact search case and asterisks will be treated literally.
+
{{Code|sweets}} support additional notation for exact searching in form of {{Code|''prefix''<nowiki>:=</nowiki>''string''}}. For example the query {{Code|name<nowiki>:=</nowiki>sugar}} will find ''sweet''s only with exactly {{Code|sugar}} name and omit names like {{Code|sugar-base}}. If search string contains spaces, wrap it to double quotes, {{Code|name<nowiki>:=</nowiki>"Sugar Commander"}}. Note, wildcards does not work in exact search case and asterisks will be treated literally.
 
  −
== Development workflow with sweets ==
  −
 
  −
During the first launch, sources will be auto-built and kept in internal storage. To make sweets useful for development, checkout developing project sources in sweets:
  −
 
  −
sweets checkout [''path-to-sources'']
  −
 
  −
The only thing that is required from sources is having a [[Platform Team/Recipe Specification|sweets.recipe]] spec file for non-activity projects or {{Code|activity/activity.info}} (that conforms to the same spec) for activities. All sweets for Glucose components are located in the http://git.sugarlabs.org/sdk project.
  −
 
  −
After being checked out, these sources might be launched using {{Code|<nowiki>http://</nowiki>sweets.sugarlabs.org/''sweet-value-from-sweets.recipe''}} or just mentioning a sweet value:
  −
 
  −
sweets ''sweet''
  −
 
  −
For glucose projects, you can find ready-to-use and always-rebased-to-upstream projects in the [http://git.sugarlabs.org/sdk SDK] http://git.sugarlabs.org project. For now, there are two branches: {{Code|master}} for recent trunk, and {{Code|master-0.88}} for 0.88 code based on Dextrose-2 patches.
  −
 
  −
Checked out projects will be built according to the {{Code|[Build]}} section commands in the {{Code|sweets.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 {{Code|make install them}} 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), just change the code and restart sugar.
      
=== Run sweets from X session ===
 
=== Run sweets from X session ===
   −
Place sweets invocation into your {{Code|~/.xsession}} file:
+
Place {{Code|sweets}} invocation into your {{Code|~/.xsession}} file:
    
  PATH=$HOME/.local/bin:$PATH
 
  PATH=$HOME/.local/bin:$PATH
Line 130: Line 124:  
  Exec=/etc/X11/Xsession
 
  Exec=/etc/X11/Xsession
 
  Type=Application
 
  Type=Application
 +
 +
== Sugar via Sweets ==
 +
 +
There is {{Code|sdk/sugar}} ''sweet'' that represents the whole Sucrose. For now, it supports the following versions:
 +
 +
* '''0.88''' stable Dextrose-2,
 +
* '''0.92''' stable upstream 0.92 branch,
 +
* '''0.93''' testing version of current upstream trunk with initial support of ''Sweets'' in the Shell.
 +
 +
Run sugar session without mentioning any version and the most recent (as possible) will be launched:
 +
 +
sweets sdk/sugar
 +
 +
Sugar ''sweet'' supports {{Code|emulator}} command to run Sugar from Xephyr:
 +
 +
sweets sdk/sugar:emulator
    
== Current limitations ==
 
== Current limitations ==