micro-manager / pymmdevice

(Experimental) Python device adapters for Micro-Manager
0 stars 0 forks source link

Versioning #12

Open henrypinkard opened 6 days ago

henrypinkard commented 6 days ago

How should the versioning of pydevice work? What's the relationship between it and the device interface version in core? @marktsuchida I know you had some good insights on this

marktsuchida commented 6 days ago

When the device interface version changes, the more common cases are adding a device type, adding member functions, or replacing existing member functions with equivalent functionality. The last type can usually be absorbed by PyDevice in its C++ code. When features are added, new Python devices will be able to use them but existing ones won't care.

The harder problem is the versioning between devices written in Python and the PyDevice adapter. In the long term, we'd want to be able to make some guarantees so that a range of PyDevice adapter versions work with a given version of Python device code. Hopefully we'll gain some experience with the types of things that need consideration while we're still in unstable-API mode.