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

Enable Rust based AMQP by default #6362

Merged

Conversation

LarryOsterman
Copy link
Member

@LarryOsterman LarryOsterman commented Jan 21, 2025

Enable Rust based AMQP stack.

  • Changed defaults for AMQP to build Rust stack by default rather than uAMQP (uAMQP is still there as a backup).
  • Added ability to globally disable all Rust based code
  • Added ability to globally disable all AMQP based packages.
  • Cleaned up mechanisms for disabling components based on environment.
    • In the older model, global conditions like "build UWP" were checked on individual components. In the newer model, a "disable " switch is defined, and the switch state is altered in the root cmakelists.txt file to reflect the global conditions.
  • Updated AMQP tests to pass using TestAmqpBroker.
  • Removed use of Azure::Nullable<AmqpValue> because AmqpValue is inherently nullable, so Nullable<AmqpValue> is redundant
  • Changed FetchContent_Populate (which is deprecated) to FetchContent_MakeAvailable - this silences an annoying warning in the CI pipeline.
  • Added a preset for disabling Rust for sanity checking purposes.

NOTE:
That this PR lays the foundation for enabling Rust by default, but it does not complete the work. There is additional work needed to fix mac related issues and some internal-to-fe2o3 issues that have been found during the CI pipeline runs. But this PR is already rather large so this is effectively a checkpoint of a work-in-progress.

GitHub CoPilot Summary:

This pull request introduces several changes to the build configuration and codebase to support the integration of Rust-based APIs in the C++ SDK, while also addressing compatibility issues and making various improvements. The most important changes include enabling and temporarily disabling Rust in the build, updating the CMake configuration for UWP builds, and modifying the AMQP library integration.

Build Configuration Updates:

AMQP Library Integration:

Code Changes:

Test Setup and Cleanup:

@azure-sdk
Copy link
Collaborator

azure-sdk commented Jan 21, 2025

API change check

APIView has identified API level changes in this PR and created following API reviews.

azure-core-amqp-cpp
azure-messaging-eventhubs-cpp

sdk/core/ci.yml Outdated Show resolved Hide resolved
@LarryOsterman LarryOsterman marked this pull request as ready for review January 27, 2025 23:59
@LarryOsterman LarryOsterman force-pushed the larryo/enable-rust-amqp branch from b248dd0 to 548029b Compare January 28, 2025 15:01
@LarryOsterman
Copy link
Member Author

Ping :).

CMakeLists.txt Outdated Show resolved Hide resolved
@LarryOsterman LarryOsterman merged commit d3e4904 into Azure:feature/rust_amqp Jan 29, 2025
76 checks passed
LarryOsterman added a commit that referenced this pull request Jan 30, 2025
* AMQP tests now pass; Integrate TestAmqpBroker with CI pipeline

* Updated changelogs to reflect API changes made during AMQP updates

* Replace uAMQP with Rust AMQP as the default AMQP transport; Updated build configurationj to reflect that

* Test fixes

* PR feedback; test fixes
LarryOsterman added a commit that referenced this pull request Feb 4, 2025
* AMQP tests now pass; Integrate TestAmqpBroker with CI pipeline

* Updated changelogs to reflect API changes made during AMQP updates

* Replace uAMQP with Rust AMQP as the default AMQP transport; Updated build configurationj to reflect that

* Test fixes

* PR feedback; test fixes
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants