[Qgis-developer] Breaking API and merge of threading branch

Martin Dobias wonder.sk at gmail.com
Wed Aug 10 05:58:38 EDT 2011


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


More information about the Qgis-developer mailing list