Platform Team/Guide/Sweets Packaging: Difference between revisions
| Line 65: | Line 65: | ||
For example if service developer is going to add binary implementations for f9/f11, and the same service dependency in these distributions has different ABIs, activity developer has to build two additional binaries, for f9 and f11. In that case developer creates two sections ''F9'' and ''F11'', put exact dependency versions(to separate particular section from others) and invoke ''0sugar dist_bin <section-name>'' in proper f9/f11 environment. | For example if service developer is going to add binary implementations for f9/f11, and the same service dependency in these distributions has different ABIs, activity developer has to build two additional binaries, for f9 and f11. In that case developer creates two sections ''F9'' and ''F11'', put exact dependency versions(to separate particular section from others) and invoke ''0sugar dist_bin <section-name>'' in proper f9/f11 environment. | ||
== 0sugar | == 0sugar tool == | ||
To start developing services, install [http://0install.net/injector.html injector] tool, and ''0sugar | To start developing services, install [http://0install.net/injector.html injector] tool, and ''0sugar'' - main tool to maintain services infrastructure. | ||
0alias 0sugar | 0alias 0sugar http://download.sugarlabs.org/services/0sugar/feed.xml | ||
While working, ''0sugar | While working, ''0sugar'' creates ''dist/'' directory in project's root and uses it as a rsynced copy of service's directory on the server. So, you need ssh access to sunjammer server, create ticket for ''shell.sugarlabs.org'' category on http://bugs.sugarlabs.org/. | ||
''0sugar | ''0sugar'' commands are: | ||
* ''init'', get feed file from the server and place it to dist/ | * ''init'', get feed file from the server and place it to dist/ | ||
* ''fetch'', rsync entirely dist/ from the server | * ''fetch'', rsync entirely dist/ from the server | ||
* ''dist'', create source or any arch tarball/implementation in ''dist/'' directory and tweak ''dist/feed.xml'' correspondingly<br>If there is second option-less argument, it will be treated as a path of tarball to release(e.g. you can create such tarball by ''make distcheck'' command for autotools based projects), otherwise ''0sugar | * ''dist'', create source or any arch tarball/implementation in ''dist/'' directory and tweak ''dist/feed.xml'' correspondingly<br>If there is second option-less argument, it will be treated as a path of tarball to release(e.g. you can create such tarball by ''make distcheck'' command for autotools based projects), otherwise ''0sugar'' will tar all project files(and try to avoid temporary files as much as possible)<br>''dist'' will create | ||
** any arch archive, if ''build-command'' field was omitted in ''service.info'' | ** any arch archive, if ''build-command'' field was omitted in ''service.info'' | ||
** source archive, if ''service.info'' has ''build-command'' field | ** source archive, if ''service.info'' has ''build-command'' field | ||
| Line 89: | Line 89: | ||
* increase/change version/stability field in ''service.info'' file | * increase/change version/stability field in ''service.info'' file | ||
* ''0sugar | * ''0sugar dist'' to change local feed in ''dist/'' and place there tarball | ||
* ''0sugar | * ''0sugar push'' to rsync changed files from ''dist/'' to the server | ||
=== Binary services === | === Binary services === | ||
| Line 99: | Line 99: | ||
* if you want to support binaries for different dependencies environments, add additional sections to ''service.info'' file with ''requires'' fields that describe dependencies versions of particular environment | * if you want to support binaries for different dependencies environments, add additional sections to ''service.info'' file with ''requires'' fields that describe dependencies versions of particular environment | ||
* increase/change version/stability field in ''service.info'' file | * increase/change version/stability field in ''service.info'' file | ||
* ''0sugar | * ''0sugar dist'' to add sources tarball to ''dist/'' and change local feed correspondingly | ||
* on every platform, you are trying to support binaries for, run ''0sugar | * on every platform, you are trying to support binaries for, run ''0sugar dist_bin'' to build, and add to local field, binaries for this particular platform | ||
* if you added additional sections to ''service.info'', run ''0sugar | * if you added additional sections to ''service.info'', run ''0sugar dist_bin <section-name>'' in every environment, ''services.info'' has additional sections for | ||
* ''0sugar | * ''0sugar push'' to rsync changed files from ''dist/'' to the server | ||
== Versioning scheme == | == Versioning scheme == | ||