Hi there watching the recent developments in the master branch I see various nice improvements. And they have something in common: they do _not_ break API compatibility :-)
I would like to bring up this topic, because we should purge a lot of cruft and deprecated APIs on the road to 2.0. The reason why I start this is that I have been closely looking at the merge of threading branch to master. The changes in that branch are essentially of three types: 1. asynchronous map rendering (i.e. ability to browse the map while it is still being rendered) 2. thread-safe API for vector access 3. various speed optimizations Asynchronous map rendering is relatively simple to merge and requires only few API changes. But without new API for access to layers it is possible to produce crashes (e.g. map is still being rendered when you decide to start editing or do some analysis). The new API for vector access (using iterators) will require removal of the old API (select(), nextFeature()) in order to work well. And that means that virtually any functionality that uses layers' data has to be updated to new API. We need to break things in order to make threaded rendering work. The question is how to proceed and how to communicate that to users. The procedure could look like this: - set a date when we will start breaking API compatibility - create a tag in git that would be the last revision of master branch compatible with 1.x API - change plugin manager so that it allows only plugins that say qgis 2.0 is the minimal version for them to run - change plugin installer so that it works only with new plugin repository and shows plugins for qgis 2.0 Is there anything else we should consider? The point is to make the transition as smooth as possible for those using qgis-master. And what are your opinions when should we start with the breakage... in a month? in a week? tomorrow? now? :-) Martin _______________________________________________ Qgis-developer mailing list [email protected] http://lists.osgeo.org/mailman/listinfo/qgis-developer
