Changes

Line 176: Line 176:  
* users who interested in testing(enabled testing mode) will get your new development version
 
* users who interested in testing(enabled testing mode) will get your new development version
 
* you don't have to change ''compatibility-version'' and ''version'' all time for micro releases, ''0sugar'' will implicitly change revision of new pushes and user's saccharin will download last changes
 
* you don't have to change ''compatibility-version'' and ''version'' all time for micro releases, ''0sugar'' will implicitly change revision of new pushes and user's saccharin will download last changes
 +
 +
== 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)
 +
** ''SERVICE_AGE'', age from service.info file (make sense only for libraries)<br>If value is not empty, ''SERVICE_INIT'' adds:
 +
*** checks if ''SERVICE_VERSION'' is a plain number
 +
*** exports ''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] serivce.
    
== Tips ==
 
== Tips ==