OpenSync 0.37 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 ---
Progress? - Yes, finally somehow...
Last release in January(!!!) most changes were about porting and fixing of our Testsuite for OpenSync 0.3x API. Today we have 28 unittests which covers approx. 80% of the OpenSync core. And lots of new major implementions...
Changes since last release:
- introduced OSyncPluginConfig API http://article.gmane.org/gmane.comp.misc.opensync.devel/3003
- introduced OSyncUpdater API:
Handles member/group configuration changes with the help of XSLT conversion
stylesheets. (Note: new dependency libxslt - will be optional in future
releases). To check if Member and/or Plugin config is up to date:
- introduce new Hashtable API
- The hashtable is now restricted to one object type/table.
- Instead of performing single SQL queries an internal hashtable data structure is used for temporary store.
- The persistent store of the hashtable is done by the function osync_hashtable_save(), which is using SQL transaction. Call this function in your syncdone() plugin sink function.
- Hashtable needs to be loaded with function osync_hashtable_load()
- Added reference counting for hashtable object
- osync_hashtable_num_entries() return value changed from int to unsigned int
- osync_hashtable_nth_entry() got replaced by osync_hashtable_foreach(), which is more performant to iterate through the hashtable
- osync_hashtable_get_deleted() return value changed from char* Array to !OSyncList
- osync_hashtable_update_hash() got by replaced osync_hashtable_update_change() which allows to use the OSyncChange object, since this contains changetype and UID. Depending on the changetype more specific SQL query get prepared.
- osync_hashtable_write()/osync_hashtable_delete() got dropped.
- osync_hashtable_reset() and osync_hashtable_report() are gone - everything is done with osync_hashtable_update_change()
- It's FAST now (seriously)!
- ported "osyncplugin" to new API "osyncplugin" is a commandline tool to call directly Plugin API functions without running the entire OpenSync Engine. Perfect for plugin development and unit testing.
- tons of bug fixes and performance improvements
- Improve OSyncPluginConfig API for frontends
- Reviewing the use conversion path
- Review the need of a second discovery plugin callback within the sync process
Thanks to everyone for actively contributing to the OpenSync project by testing, writing code and keeping the project alive! I really appreciate this!