libfreefare icon indicating copy to clipboard operation
libfreefare copied to clipboard

Please revert 1ce3db3c or make a new major release

Open clausecker opened this issue 9 years ago • 6 comments

The commit 1ce3db3c completely breaks the libfreefare API. This is a bad thing. Please either revert it or make a new major release to underline that the new version has a completely incompatible API.

clausecker avatar Jan 18 '16 01:01 clausecker

HI,

While it is not stated anywhere, me follow the Semantic Versioning Specification. Quoting it:

4 - Major version zero (0.y.z) is for initial development. Anything may change at any time. The public API should not be considered stable.

The referenced commit renames enum values. If you do not want to synchronize your code (yet), I invite you to add some #defines to map the old names onto the new ones during the transition.

smortex avatar Jan 18 '16 09:01 smortex

It has been like this for three years now without any indication that the software is still actively changing, at least not in any project documentation I found. No, not releasing a 1.0.0 version is not a magical ritual that deflects the responsibility for API stability from you. You are doing all your users a huge disservice by breaking the API like this. I'm seriously considering a fork at this point just so I don't have to fix my go bindings (which have been stable for two years now) every time you decide to break the API.

clausecker avatar Jan 18 '16 11:01 clausecker

I understand your point, I'm adding this issue to the 1.0.0 milestone

smortex avatar Jan 18 '16 11:01 smortex

As a consumer of the library, you may also have interesting insights about it. Feel free to open issues or submit pull requests and assign them to the 1.0.0 release ;-)

smortex avatar Jan 18 '16 11:01 smortex

If you are going to break the API anyway, consider removing all uses of pragma pack from the public interface. Pragma pack makes it very hard to use your library from other languages as not all foreign function interfaces support the non-standard pragma pack. There isn't a good reason why it's there either.

clausecker avatar May 22 '16 17:05 clausecker