nlpo3 icon indicating copy to clipboard operation
nlpo3 copied to clipboard

How to manage breaking changes from main lib for binding?

Open Gorlph opened this issue 4 years ago • 2 comments
trafficstars

Now, each binding uses a published crate of main lib, but what would happen if the main lib signature is changed like in #31?

Should the changes in main lib be merged into some "dev" branch, then publish new version of the main crate from approved "dev" branch and then update main crate dependency of each binding, fix binding and then make a pull request to main?

Gorlph avatar Aug 04 '21 18:08 Gorlph

Looking at the coming contributions, I agree on dev branch idea.

Some published API doc for main lib will help facilitate this as well. As it will be more clear about the change/breaking of API.

bact avatar Aug 04 '21 22:08 bact

Or we use a version branching model like https://github.com/elixir-lang/elixir or https://github.com/golang/go/. They has a main branch for development and create a branch per version (v1.0, v1.1, etc). With this way, we can have a breaking change in main (or development) branch and can easily backport a bug to support version.

wingyplus avatar Aug 05 '21 04:08 wingyplus