-
Notifications
You must be signed in to change notification settings - Fork 857
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
Please bump GLSLANG_PATCH_LEVEL after major API changes #1538
Comments
imho they are already doing so much for the community with quality tagged releases such as "master-tot", "untagged-048c4dbc7f021224a933", and "Overload400-PrecQual". Do you know how much work it is for them to increase |
We are indeed using stable tags. Before making the last set of large changes, the stable release tag It is likely time to make a new stable tag, based on the settling down of that recent large set of changes, unless we need to deal differently with these changes. I have been updating the patch level, etc., on functional changes, but it is worth considering for this kind of change as well. The patch level could be changing basically every commit, but I'm not sure that is necessary. Perhaps you wanted the minor version bumped (the middle number). About the actual problem; I'm not sure I understand why this is a problem. It was strongly requested by multiple IHVs to not have #ifdef in the interface. The guidance was this should not break things, as it should be okay to have extra ignored fields in an interface data structure without breaking consumers setting/reading of a subset of them. The If there is something to fix about the IHV |
There are a number of issues with this approach:
I think it falls down to the exact interpretation of "extra fields". This issue could most likely have been avoided by moving the new fields to the end of the struct, after the
Judging by how high (numerically) the patch level is already, I'd gathered that was the intent? I mean it boils down to a question of what the goal here is:
Given that the current patch level leans more towards 2 than towards 1, I'd suggest going all the way with it and changing it whenever needed - even if that's basically every commit. (It's also IMO unnecessary to have it be part of the release version numbers, instead you could just enumerate those If the intent is for users to avoid git master and instead always use tagged releases, then it makes no sense for the patch level to increase at all except on new tags.
I'd also tend to agree with this, FWIW. My issue is not the removal of the |
So, the incremental action here is to more consistently bump the minor version for changes of this size (rather than just the patch version). |
In git master you removed the
NV_EXTENSIONS
macro checks from theTBuiltInResources
, which every user is forced to copy/paste from the glslang examples. Since having done this, you didn't bump theGLSLANG_PATCH_LEVEL
, so you broke the compilation of every single dependent without a way to conditionally compile. So as it stands, users can either write code that works only on master but not on the latest release, or write code that works only on the latest release but not master.Can you please update the GLSLANG_PATCH_LEVEL, ideally every time you break the core API?
(As an aside, I don't understand why glslang doesn't just provide its own
TBuiltInResources
in the headers, so that users can just use it instead of copy/pasting it from the examples. About 50% of my glslang code is just this struct definition. You already define it inStandAlone/ResourceLimits.h
but this header does not get installed as part of the public API - which is odd because theCMakeLists
references a libraryglslang-default-resource-limits
that doesn't seem to actually get built. What's up with this?)The text was updated successfully, but these errors were encountered: