Line 73: |
Line 73: |
| It is possible to search sweets among locally known ones and registered on http://obs.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 sweets among locally known ones and registered on http://obs.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]. |
| | | |
− | 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 wor | + | 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]]: |
| + | |
| + | * '''interface''' interface url, e.g., {{Code|http://sweets.sugarlabs.org/sdk/sugar}}; |
| + | * '''sweet''' interface in short Sweets notations, e.g., {{Code|sdk/sugar}}; |
| + | * '''implement''' the list of implemented interfaces; |
| + | * '''associate''' the list of associated interface; |
| + | * '''name''' the short name of a sweet; |
| + | * '''summary''' sweet's summary; |
| + | * '''description''' long sweet's description; |
| + | * '''category''' list of category names; |
| + | * '''license''' list of licenses; |
| + | * '''type''' sweet's type, might be {{Code|library}}, {{Code|application}} or {{Code|activity}}; |
| + | * '''keep''' if activity, that a sweet is representing, is favorited; |
| + | * '''tags''' the list of sweet's tags; |
| + | * '''mime_types''' the list of MIME types activity, that a sweet is representing, supports. |
| + | |
| + | 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. |
| + | |
| + | == 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 === |
| + | |
| + | Place sweets invocation into your {{Code|~/.xsession}} file: |
| + | |
| + | PATH=$HOME/.local/bin:$PATH |
| + | sweets sdk/sugar |
| + | |
| + | and create a {{Code|/usr/share/xsessions/sweets.desktop}} desktop file: |
| + | |
| + | [Desktop Entry] |
| + | Encoding=UTF-8 |
| + | Name=Sweets |
| + | GenericName=Sweets |
| + | Exec=/etc/X11/Xsession |
| + | Type=Application |
| + | |
| + | == Current limitations == |
| + | |
| + | * For now, {{Code|sweets}} knowns only about the glucose dependencies to install them from native packages in Debian, Ubuntu, Fedora, Mandriva, openSUSE, and Gentoo. |
| + | * Activities can't reuse sweets benefits. |
| + | |
| + | == Feedback == |
| + | |
| + | * [http://bugs.sugarlabs.org/newticket?component=sweets Submit] your bug report. |
| + | * Ask your question on IRC channels, [irc://irc.freenode.net/sugar #sugar] (not logged) or [irc://irc.freenode.net/sugar-newbies #sugar-newbies] (logged). |