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

version: Rework to support single version override. #2651

Merged
merged 1 commit into from
May 21, 2021

Conversation

davecgh
Copy link
Member

@davecgh davecgh commented May 14, 2021

This reworks the way versions are handled internally to reverse the semantics such that the individual semver components (major, minor, patch, prerelease, and buildmetadata) are parsed from a full string and exported at init time.

Also, since the version is now parsed and verified to be accurate, it updates the pre-release parsing to properly support dots as required by the spec and combines the pre-release and build normalization funcs since they are now the same.

This provides a few main benefits:

  • Allows a single linker override to fully specify the version string instead of having separate ones that can only override the prerelease and build metadata portions
  • Provides run-time checks to ensure the full version string is valid per the semver spec regardless of whether it was specified directly in the source or provided via the linker
  • Is slightly more efficient since the full version string is no longer dynamically created on each invocation

Finally, while here, add some comments regarding the release process to help maintainers.

@davecgh davecgh added this to the 1.7.0 milestone May 14, 2021
This reworks the way versions are handled internally to reverse the
semantics such that the individual semver components (major, minor,
patch, prerelease, and buildmetadata) are parsed from a full string and
exported at init time.

Also, since the version is now parsed and verified to be accurate, it
updates the pre-release parsing to properly support dots as required by
the spec and combines the pre-release and build normalization funcs
since they are now the same.

This provides a few main benefits:

- Allows a single linker override to fully specify the version string
  instead of having separate ones that can only override the prerelease
  and build metadata portions
- Provides run-time checks to ensure the full version string is valid
  per the semver spec regardless of whether it was specified directly in
  the source or provided via the linker
- Is slightly more efficient since the full version string is no longer
  dynamically created on each invocation

Finally, while here, add some comments regarding the release process to
help maintainers.
@davecgh davecgh force-pushed the version_full_version_override branch from e14396f to c88eb03 Compare May 14, 2021 09:16
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 this pull request may close these issues.

5 participants