Changes

no edit summary
Line 14: Line 14:  
* if you added additional sections to ''service.info'', run ''0sugar dist_bin <section-name>'' in every environment, ''services.info'' has additional sections for
 
* if you added additional sections to ''service.info'', run ''0sugar dist_bin <section-name>'' in every environment, ''services.info'' has additional sections for
 
* ''0sugar push stable'' to rsync changed files from ''dist/'' to the server<br>see [[#Release workflows]] for other release scenarios
 
* ''0sugar push stable'' to rsync changed files from ''dist/'' to the server<br>see [[#Release workflows]] for other release scenarios
 +
 +
== Development tools support ==
 +
 +
Useful addons to popular development tools. These are optional features that simplify service development process.
 +
 +
=== Autotools ===
 +
 +
Add [http://git.sugarlabs.org/projects/toolkit/repos/mainline/blobs/master/m4/service.m4 service.m4] macros file to your project. It provides:
 +
 +
* ''SERVICE_INIT'' macro to initialize services support, use it after other (AC|AM)_INIT macros like in [http://git.sugarlabs.org/projects/toolkit/repos/mainline/blobs/master/configure.ac]<br>It takes optional string to define prefix value for ''DIST_'' variables,  in most cases it should be just ''sugar''<br>Macro exports follows variables:
 +
** ''SERVICE_NAME'', name of service in service.info file
 +
** ''SERVICE_VERSION'', version of service in service.info file
 +
** ''SERVICE_REVISION'', revision number from dist/revision file
 +
** ''DIST_NAME'', combines prefix macro argument with ''SERVICE_NAME'' to use it as a distribution name(see example below)
 +
** ''DIST_VERSION'', combines ''SERVICE_VERSION'' and ''SERVICE_REVISION'' to use it as a distribution version(see example below)
 +
** ''SERVICE_SUMMARY'', summary from service.info file
 +
** macro also changes ''PACKAGE'' and ''VERSION'' variables with values from proper ''DIST_'', so it rewrites ''AC_INIT'' arguments(you have to use fake values for ''AC_INIT'' macro)
 +
** if ''[Library]'' section exists in service.info file, macro will
 +
*** check if ''SERVICE_VERSION'' is a plain number
 +
*** export ''SERVICE_AGE'', age from ''[Library]'' section
 +
*** export ''SERVICE_LIBRARY_VERSION'' which is libtool's -version-info parameter
 +
*** if ''service.pc.in'' presents in root directory, rename it to ''DIST_NAME''.pc.in
 +
 +
* ''SERVICE_ECHO'' convenient macro to print various variables
 +
 +
These macros could be used like in [http://git.sugarlabs.org/projects/toolkit/repos/mainline/trees/master Toolkit] service.