opcua-asyncio
opcua-asyncio copied to clipboard
v0.9.14 -> v0.9.90 breaks NodeId interface
Description
The upgrade from v0.9.14 to v0.9.90 breaks the interface of NodeId.
To Reproduce
Steps to reproduce the behavior incl code:
Write code that initialises a NodeId
from asyncua==0.9.14
as follows:
NodeId(identifier=2259, namespaceidx=0, nodeidtype=None)
Test to assert this code works.
Upgrade to asyncua==0.9.90
.
Expected behavior
The code should continue to work, as 0.9.14
to 0.9.90
is a patch version upgrade.
Actual behaviour
TypeError: __init__() got an unexpected keyword argument 'identifier'
Version
Python-Version: 3.7.6
opcua-asyncio Version (e.g. master branch, 0.9): 0.9.90
Shit i knew i was forgetting something when releasing yesterday. Next major number is 1 so i choose 0.90 instead, you are welcome to propose a better idea. But i should really have written a big warning about that breaking change. The constructors are now autogenerated and use the UA cases: Identifier
Also FYI i added a few wrappers to remove the worst things like argument order inversions. But some renaming generating clear errors and making things much more consistent were left
In my CI, I rely on the semver convention, wherever it seems to be respected, to allow automatic patch upgrades but not minor version upgrades (e.g. for your library, asyncua >=0.9.14, <0.10.0
). You could make the breaking version 0.10.0
at least, even though it doesn't comply with semver to have breaking changes in a minor update... Any reason that you don't want to bump to 1.0.0
? I guess it's a roadmap issue?
I do not want 1.0 so people do not think this is a stable product yet. It is not like i am paid to maintain it. I just happen to need some functionalities
Meh, stability, what is that? :) semver is your friend when it comes to communicating the instability, though