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 == |