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

[abseil] update to latest release (20230125.0) #29692

Merged
merged 13 commits into from
Feb 21, 2023

Conversation

coryan
Copy link
Contributor

@coryan coryan commented Feb 16, 2023

The new version does not require the patch to switch the C++ standard. It automatically updates the installed absl/base/options.h based on the C++ standard in use when the package is built. All that is needed to enable C++17 (if it is not the compiler's default) is adding -DCMAKE_CXX_STANDARD=17 to the command-line.

This is required to upgrade Protobuf #29697

  • Changes comply with the maintainer guide
  • SHA512s are updated for each updated download
  • The "supports" clause reflects platforms that may be fixed by this new version
  • Any fixed CI baseline entries are removed from that file.
  • Any patches that are no longer applied are deleted from the port's directory.
  • The version database is fixed by rerunning ./vcpkg x-add-version --all and committing the result.
  • Only one version is added to each modified port's versions file.

github-actions[bot]
github-actions bot previously approved these changes Feb 16, 2023
Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Use the version scheme "version" instead of "version-string" in port "abseil".

Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a new experimental fast check for PR issues. Please let us know if this bot is helpful!

PRs must add only one version and must not modify any published versions

When making any changes to a library, the version or port-version in vcpkg.json or CONTROL must be modified.

error: checked-in files for abseil have changed but the version was not updated
version: 20230125.0
old SHA: 3fe3cd27e41dddc3cd3b04f6bae73cacc041fd2d
new SHA: 238de578616f1e214d673b2b3e66c22c31675b6a
Did you remember to update the version or port version?
Use --overwrite-version to bypass this check
***No files were updated***

Use the version scheme "version" instead of "version-string" in port "abseil".

Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a new experimental fast check for PR issues. Please let us know if this bot is helpful!

PRs must add only one version and must not modify any published versions

When making any changes to a library, the version or port-version in vcpkg.json or CONTROL must be modified.

error: checked-in files for abseil have changed but the version was not updated
version: 20230125.0
old SHA: 238de578616f1e214d673b2b3e66c22c31675b6a
new SHA: aa4f29f110c771e7096ba356501e4a0d6d3d9baa
Did you remember to update the version or port version?
Use --overwrite-version to bypass this check
***No files were updated***

github-actions[bot]
github-actions bot previously approved these changes Feb 16, 2023
Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Use the version scheme "version" instead of "version-string" in port "abseil".

github-actions[bot]
github-actions bot previously approved these changes Feb 16, 2023
Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Use the version scheme "version" instead of "version-string" in port "abseil".

github-actions[bot]
github-actions bot previously approved these changes Feb 16, 2023
Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Use the version scheme "version" instead of "version-string" in port "abseil".

ports/abseil/vcpkg.json Outdated Show resolved Hide resolved
@coryan coryan marked this pull request as ready for review February 16, 2023 18:50
@Cheney-W Cheney-W added category:port-update The issue is with a library, which is requesting update new revision requires:author-response labels Feb 17, 2023
github-actions[bot]
github-actions bot previously approved these changes Feb 17, 2023
@coryan
Copy link
Contributor Author

coryan commented Feb 17, 2023

I think the changes to etcd are more robust w.r.t. to different compilers having different default C++ standards. Please take another look.

@coryan
Copy link
Contributor Author

coryan commented Feb 17, 2023

This will require more changes in etcd-cpp-apiv3. It is not using target_link_libraries() for gRPC, and therefore misses any C++ standard settings propagated from Abseil and gRPC. I will try to get back to this, but I am happy if somebody else does a better job with it.

An alternative might be to force Abseil to compile with C++14 1 and then change any downstream deps to use C++14 or C++17 depending on what was used for Abseil. That can prove tricky when the default C++ version depends on the compiler version (e.g. different versions of GCC default to C++14 or C++17).

Footnotes

  1. Unless the cxx17 feature is enabled, when you would use C++17, and one would need to add a cxx20 feature because Abseil is adding polyfills for some C++20 things too).

@devjgm
Copy link

devjgm commented Feb 17, 2023

This will require more changes in etcd-cpp-apiv3. It is not using target_link_libraries() for gRPC, and therefore misses any C++ standard settings propagated from Abseil and gRPC. I will try to get back to this, but I am happy if somebody else does a better job with it.

An alternative might be to force Abseil to compile with C++14 1 and then change any downstream deps to use C++14 or C++17 depending on what was used for Abseil. That can prove tricky when the default C++ version depends on the compiler version (e.g. different versions of GCC default to C++14 or C++17).

Footnotes

  1. Unless the cxx17 feature is enabled, when you would use C++17, and one would need to add a cxx20 feature because Abseil is adding polyfills for some C++20 things too).

Maybe someone from etcd could take a look: etcd-cpp-apiv3/etcd-cpp-apiv3#194

@sighingnow
Copy link
Contributor

sighingnow commented Feb 18, 2023

Adding -DCMAKE_CXX_STANDARD=17 to etcd-cpp-apiv3's profile.cmake could resolve its failure. See also etcd-cpp-apiv3/etcd-cpp-apiv3#194 (comment)

@coryan
Copy link
Contributor Author

coryan commented Feb 18, 2023

Okay, I think this is working correctly now. Please take another look and sorry for the high number of commits.

@Cheney-W Cheney-W added info:reviewed Pull Request changes follow basic guidelines and removed requires:author-response labels Feb 20, 2023
@JavierMatosD JavierMatosD merged commit 341d025 into microsoft:master Feb 21, 2023
@coryan coryan deleted the abseil-updated-to-20230125-LTS branch February 21, 2023 16:37
@dg0yt dg0yt mentioned this pull request Feb 24, 2023
7 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
category:port-update The issue is with a library, which is requesting update new revision info:reviewed Pull Request changes follow basic guidelines
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants