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

Switch spirv_headers to SemVer #197

Closed
Jasper-Bekkers opened this issue May 5, 2021 · 5 comments · Fixed by #204
Closed

Switch spirv_headers to SemVer #197

Jasper-Bekkers opened this issue May 5, 2021 · 5 comments · Fixed by #204

Comments

@Jasper-Bekkers
Copy link
Collaborator

See #117 and #196

Because spirv_headers doesn't follow SemVer, making changes to it, and keeping downstream dependencies from breaking we should switch over to SemVer and ditch the Vulkan / SPIR-V numbering scheme and instead just document which SPIR-V version corresponds to the current crate version. This should solve most of the problems in the future (but may introduce some confusion around which SPIR-V version is exposed instead).

I think it's probably better to have that confusion during development, rather then breaking downstream builds.

@Jasper-Bekkers
Copy link
Collaborator Author

If we wanted to continue to encode the spirv spec - we might be able to encode it into the patch version instead. However, I'd much rather just stick to regular SemVer without any fancy additions like this.

@antiagainst also suggested just publishing this crate under a new name (spirv instead of spirv_headers) and starting over with semver. Though personally I'd also be fine with just bumping this crate to 0.2 since that doesn't correspond to a SPIR-V version either.

@antiagainst
Copy link
Collaborator

I've pinged @neon64 on #21 regarding the spirv crate. Hopefully we can switch to that crate with a clean slate. Or we can also start with v2 of spirv_headers and using that going from now. My preference is the first; but either way works for me.

@Jasper-Bekkers
Copy link
Collaborator Author

Jasper-Bekkers commented May 5, 2021

To restore some order to the world I'll yank both rspriv 0.8.0 and spirv_headers 1.5.1 while we wait for a reply. (And alternatively just publish v2 of spirv_headers right after, if we care) so we can work this out in the meantime.

@kvark any objections to yanking these versions?

@kvark
Copy link
Member

kvark commented May 5, 2021

much appreciated, thank you!

@MarijnS95
Copy link
Collaborator

We could possibly use Version Metadata to include the spirv version, that ends up looking like 0.8.0+1.5.2 (useful in crate and perhaps tag history). This metadata is only informational and otherwise ignored, cargo even recommends against specifying it in [dependencies].

MarijnS95 added a commit that referenced this issue Nov 5, 2024
Since inheriting the `spirv` crate and dropping the `spirv_headers`
crate in #204, and following up on a choice in #197 to no longer have
the SPIR-V major/minor version in our crate version which disallows us
from making any breaking changes to the crate, we reset the version to
`0.1.0` and embedded the SPIR-V version via _version metadata_ instead.
This stale comment in the README was still indicating as such though,
confusing users in e.g. #252 that our `spirv` crate was somehow exposing
SPIR-V 1.3 (should have been 0.3 by that logic which is the current
latest version).  Remove it entirely.

Note also that since #225 / #226 our version metadata is no longer the
SPIR-V version/revision but the Vulkan SDK tag that it was released
with.  The SPIR-V version isn't bumped often enough to match extensions
in new SDK releases, making the SDK tag more indicative of the included
API surface instead.
MarijnS95 added a commit that referenced this issue Dec 28, 2024
Since inheriting the `spirv` crate and dropping the `spirv_headers`
crate in #204, and following up on a choice in #197 to no longer have
the SPIR-V major/minor version in our crate version which disallows us
from making any breaking changes to the crate, we reset the version to
`0.1.0` and embedded the SPIR-V version via _version metadata_ instead.
This stale comment in the README was still indicating as such though,
confusing users in e.g. #252 that our `spirv` crate was somehow exposing
SPIR-V 1.3 (should have been 0.3 by that logic which is the current
latest version).  Remove it entirely.

Note also that since #225 / #226 our version metadata is no longer the
SPIR-V version/revision but the Vulkan SDK tag that it was released
with.  The SPIR-V version isn't bumped often enough to match extensions
in new SDK releases, making the SDK tag more indicative of the included
API surface instead.
MarijnS95 added a commit that referenced this issue Dec 28, 2024
Since inheriting the `spirv` crate and dropping the `spirv_headers`
crate in #204, and following up on a choice in #197 to no longer have
the SPIR-V major/minor version in our crate version which disallows us
from making any breaking changes to the crate, we reset the version to
`0.1.0` and embedded the SPIR-V version via _version metadata_ instead.
This stale comment in the README was still indicating as such though,
confusing users in e.g. #252 that our `spirv` crate was somehow exposing
SPIR-V 1.3 (should have been 0.3 by that logic which is the current
latest version).  Remove it entirely.

Note also that since #225 / #226 our version metadata is no longer the
SPIR-V version/revision but the Vulkan SDK tag that it was released
with.  The SPIR-V version isn't bumped often enough to match extensions
in new SDK releases, making the SDK tag more indicative of the included
API surface instead.
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

Successfully merging a pull request may close this issue.

4 participants