smarco / WFA2-lib

WFA-lib: Wavefront alignment algorithm library v2
Other
162 stars 36 forks source link

Consider following semantic versioning #82

Closed twrightsman closed 1 year ago

twrightsman commented 1 year ago

I've started to write Python bindings for WFA2-lib and got bitten by a few API-related things. I started out trying pyWFA but they were using an older (v2.2?), vendored version of WFA2-lib. It seemed that the API had changed quite a bit from v2.2 to v2.3.3, so I figured I'd try writing bindings to v2.3.3, which is packaged in bioconda and also is the only stable version released, if I understand correctly.

I had to write a small patch (see https://github.com/smarco/WFA2-lib/pull/83) to get the bindings to build against v2.3.3 properly, but also looked in to updating the bindings to work with the latest main changes, since it seems a lot of fixes and features have made it in since v2.3.3. However, I noticed the API changed again.

In the interest of reducing the burden on users of this really cool library, could you consider following a versioning scheme like SemVer, where the public API doesn't break without a major version bump?

smarco commented 1 year ago

Hi,

I am sorry you had so many problems writing Python bindings for WFA2-lib. I appreciate your effort and I will work to make this less painful. For the moment:

1) I have created a new tag and release v2.3.4 (with your patch) and branch (wfalib.v2.3.4). 2) Patches, that don't break the API, will now be pushed onto development (v2.3.5). 3) From now on, I will not change anything that breaks the API until the new mayor release is completely ready. 4) I will use SemVer, from now on.

More suggestions are welcome. Let me know.

twrightsman commented 1 year ago

Hi @smarco,

I really appreciate your response and efforts, thank you! This should make things easier for users of the library and packagers.

I will let you know if I encounter any other issues. And thank you for developing this incredibly useful library.