OpenSync 0.39 Release Notes
Yet another E.X.P.E.R.I.M.E.N.T.A.L. release of OpenSync. This release is intended for developers, testers and for packages. OpenSync? 0.3x releases aren't intended to be stable. We don't recommend this release for productive use. We don't recommend this release to be packaged as part of a distribution.
--- end of sad/scary disclamer ---
This is our last release until the next stable release. The complete API was examined and should be stable.
Changes since last release:
- Updates and improvements in the API documentation based on doxygen (ticket #755). Moved doxygen annotations from the source files to the headers (ticket #898)
- Shrinked the public API. Less public interfaces for plugins and applications.
- Removed XML format from OpenSync core. Now XML format is maintained separately
- Reference counting for all OpenSync modules (#978)
- Sync plugin API changes
- Introduce optional plugin sink function "connect_done". This plugin function gets called after connect() and before get_changes().
- Removed "write" function. This plugin function was never used inside the engine and just causes confusion. Currently there is also no need for a "sync framework" to do "single writes" out of sync order
- Format plugin API changes
- Implemented optional "validation" format plugin function. This function is intended to get called after each format conversion which end in the format plugin specific format, which provide such validation function (#910)
- Introduced osync_objformat_set_finalize_func and osync_objformat_set_initialize_func for the public API. Those function allow to register format-plugin specific initalize/finalize functions. Which get called when the format-plugin get loaded by the format-environment. This function allow to allocated user-data which will be passed with all format-plugin calls. And must get released within the finalize call.
- Changed all format specific function signatures to pass a void *user_data pointer. Now it is possible to create format specific data in initialize which gets passed to all other format functions (#1019)
- Introduced caps_converter function osync_bool (* OSyncFormatCapsConverterFunc) (OSyncCapabilities *oldcaps, OSyncCapabilities newcaps, OSyncError error); (#1146)
- Dropped merge/demerge function. Now merge/demere is independent of formats (#1084)
- New IPC implementation by Graham Cobb
- Support for ObjType mixing in OSyncEngine (#992)
- Multiply callback for synchronization forecast (#850)
- Format independent use of merge/demerge via new OSyncCapabilities and OSyncMerger (#1084)
- Common list pattern for all OpenSync modules (#975)
- Dropped file location from OSyncHashtable interface (#1082 and #1083)
- Dropped file location from OSyncAnchor interface
- Key=value pattern for OSyncAnchor (#1090)
- Replace OSyncAnchor with OSyncStateDB (#1091)
- Improved exception handling in all OpenSync modules (#1087)
- Started to write new OpenSync API usage examples for 0.40 API (#972)
- Bugfixing: Open Tickets for 0.40
- Review the internal API
- Complete the API documentation
- Finishing OpenSync Whitepaper
- Porting other plugins to latest changes for 0.3X
Thanks to everyone for actively contributing to the OpenSync project by testing, writing code, updating tickets and keeping the project alive!