Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SOVERSION bump required #274

Closed
roehling opened this issue May 5, 2020 · 5 comments
Closed

SOVERSION bump required #274

roehling opened this issue May 5, 2020 · 5 comments

Comments

@roehling
Copy link

roehling commented May 5, 2020

I noticed that the SOVERSION is still at 1 even though each release introduces binary incompatibilities. Unfortunately C++ is very picky with its binary interface, so seemingly harmless changes that are source code compatible can break binary compatibility.

For instance, going from rc5 to rc6 introduced the change from typedef struct _material_t ... material_t to struct material_t that changes the exported symbols for all functions taking material_t parameters, but the SOVERSION was not bumped.

It would be nice if at least the full releases would manage that change properly, because it makes it much simpler to package the library in a Linux distribution.

@syoyo
Copy link
Collaborator

syoyo commented May 5, 2020

TinyObjLoader is header-only library and we basically do not recommend to distribute tinyobjloader as a binary package.

Anyway, bumping SOVERSION should be easy.
What is best way to specify SOVERSION for Windows/macOS/Linux ?

Although semantic versioning allows -rc tag https://semver.org/, I'm not sure it is possible to add such a tag to SOVERSION. For example:

set(TINYOBJLOADER_SOVERSION "2.0.0-rc.6")

@roehling
Copy link
Author

roehling commented May 5, 2020

Actually, the SOVERSION can be just about anything. It is common to count up an integer whenever the ABI changes. If maintaining a stable ABI over multiple releases is not a priority, you can also just set the SOVERSION to the actual version number.

@syoyo syoyo closed this as completed in 4cb4af6 May 6, 2020
@syoyo
Copy link
Collaborator

syoyo commented May 6, 2020

After some web searches, it looks its common to use major version number for SOVERSION, so I have bumped it to 2

@roehling
Copy link
Author

I'm hijacking this issue for a follow-up question, mainly out of curiosity: what are your plans regarding the finalized 2.0.0 release? I've seen several projects migrate to the release candidates now, so there is clearly some interest.

@syoyo
Copy link
Collaborator

syoyo commented Dec 1, 2020

@roehling As far as I know there should be no critical issues in v2.0.0 RC version so I think its mostly ready to release v2.0.0, after finishing full or nearly full python binding #207 and some code/API cleanups. I cannot promise when we can releasev2.0.0, but probably by Spring 2021.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants