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

Refactor AMQP logic to better isolate rust AMQP code from uAMQP code. #6008

Merged

Conversation

LarryOsterman
Copy link
Member

@LarryOsterman LarryOsterman commented Sep 18, 2024

Most of this change is refactoring code, but there is a significant difference in this PR:

doxygen really doesn't handle conditional compilation well if there are ambiguous filenames in the repo. A large part of how this refactoring works depends on the fact that there are files with the same name in two different locations, so doxygen doesn't do well with this.

To resolve the issue, I changed doxygen to scope to just files in the "inc" subdirectory and the readme.md file.

That may result in public APIs which are not in the "inc" directory being dropped, but we shouldn't have any public APIs which aren't in the "inc" subdirectory.

@LarryOsterman
Copy link
Member Author

Ping :).

@LarryOsterman
Copy link
Member Author

Ping please.

@ahsonkhan
Copy link
Member

Hi Larry, this is a fairly large PR (I understand a lot of it is refactoring). How would you recommend we review it? Put another way, what areas should we try to focus our attention on, which you think will be the most valuable for you?

@LarryOsterman
Copy link
Member Author

Hi Larry, this is a fairly large PR (I understand a lot of it is refactoring). How would you recommend we review it? Put another way, what areas should we try to focus our attention on, which you think will be the most valuable for you?

You should ignore the moved files - that's about 250 or so of the files in the PR.

Concentrate on the 50 or so remaining files.

The vast majority of the changes are removing #if UAMQP conditionals from the UAMQP specific code, and removing UAMQP specific code from the rust implementation.

Note that there are some vestiges of the UAMQP stuff in the rust implementations, that's done so I have boilerplate in place to make the rust implementations of stuff that's not there yet.

LarryOsterman and others added 2 commits September 20, 2024 16:02
…r than attempting to run; removed some uAMQP-only features (Azure#5986)

* Checkpoint of connection logic

* Started implementing Rust based Connection by pulling out uAMQP artifacts

* Implemented AMQP Connection in Rust; started API surface refactoring for Rust APIs; Refactored tests to remove some uAMQP only elements.

* Don't leak runtime context on calls

* export UUID from AMQP

* clang-format
@LarryOsterman LarryOsterman merged commit ec564d5 into Azure:feature/rust_amqp Sep 20, 2024
3 of 6 checks passed
@LarryOsterman LarryOsterman deleted the larryo/refactor_amqp branch September 20, 2024 23:03
Copy link
Member

@ahsonkhan ahsonkhan left a comment

Choose a reason for hiding this comment

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

Reviewed the 112/383 files as best I could at a high level.
I believe the rest are all file renames without changes.

LarryOsterman added a commit that referenced this pull request Sep 24, 2024
…#6008)

* refactor uAMQP and Rust AMQP into separate implementations for ease of use

* Add connection support; restructured tests to fail on RUST AMQP rather than attempting to run; removed some uAMQP-only features  (#5986)

* Checkpoint of connection logic

* Started implementing Rust based Connection by pulling out uAMQP artifacts

* Implemented AMQP Connection in Rust; started API surface refactoring for Rust APIs; Refactored tests to remove some uAMQP only elements.

* Don't leak runtime context on calls

* export UUID from AMQP

* Cleaned up some more elements; reduced scope of doxygen significantly

* runtime context needs to be process global not thread global; all tests pass or fail at this point

* Merged main into branch
LarryOsterman added a commit that referenced this pull request Sep 25, 2024
…#6008)

* refactor uAMQP and Rust AMQP into separate implementations for ease of use

* Add connection support; restructured tests to fail on RUST AMQP rather than attempting to run; removed some uAMQP-only features  (#5986)

* Checkpoint of connection logic

* Started implementing Rust based Connection by pulling out uAMQP artifacts

* Implemented AMQP Connection in Rust; started API surface refactoring for Rust APIs; Refactored tests to remove some uAMQP only elements.

* Don't leak runtime context on calls

* export UUID from AMQP

* Cleaned up some more elements; reduced scope of doxygen significantly

* runtime context needs to be process global not thread global; all tests pass or fail at this point

* Merged main into branch
LarryOsterman added a commit that referenced this pull request Sep 30, 2024
…#6008)

* refactor uAMQP and Rust AMQP into separate implementations for ease of use

* Add connection support; restructured tests to fail on RUST AMQP rather than attempting to run; removed some uAMQP-only features  (#5986)

* Checkpoint of connection logic

* Started implementing Rust based Connection by pulling out uAMQP artifacts

* Implemented AMQP Connection in Rust; started API surface refactoring for Rust APIs; Refactored tests to remove some uAMQP only elements.

* Don't leak runtime context on calls

* export UUID from AMQP

* Cleaned up some more elements; reduced scope of doxygen significantly

* runtime context needs to be process global not thread global; all tests pass or fail at this point

* Merged main into branch
LarryOsterman added a commit that referenced this pull request Sep 30, 2024
…#6008)

* refactor uAMQP and Rust AMQP into separate implementations for ease of use

* Add connection support; restructured tests to fail on RUST AMQP rather than attempting to run; removed some uAMQP-only features  (#5986)

* Checkpoint of connection logic

* Started implementing Rust based Connection by pulling out uAMQP artifacts

* Implemented AMQP Connection in Rust; started API surface refactoring for Rust APIs; Refactored tests to remove some uAMQP only elements.

* Don't leak runtime context on calls

* export UUID from AMQP

* Cleaned up some more elements; reduced scope of doxygen significantly

* runtime context needs to be process global not thread global; all tests pass or fail at this point

* Merged main into branch
LarryOsterman added a commit that referenced this pull request Oct 2, 2024
…#6008)

* refactor uAMQP and Rust AMQP into separate implementations for ease of use

* Add connection support; restructured tests to fail on RUST AMQP rather than attempting to run; removed some uAMQP-only features  (#5986)

* Checkpoint of connection logic

* Started implementing Rust based Connection by pulling out uAMQP artifacts

* Implemented AMQP Connection in Rust; started API surface refactoring for Rust APIs; Refactored tests to remove some uAMQP only elements.

* Don't leak runtime context on calls

* export UUID from AMQP

* Cleaned up some more elements; reduced scope of doxygen significantly

* runtime context needs to be process global not thread global; all tests pass or fail at this point

* Merged main into branch
LarryOsterman added a commit that referenced this pull request Oct 8, 2024
…#6008)

* refactor uAMQP and Rust AMQP into separate implementations for ease of use

* Add connection support; restructured tests to fail on RUST AMQP rather than attempting to run; removed some uAMQP-only features  (#5986)

* Checkpoint of connection logic

* Started implementing Rust based Connection by pulling out uAMQP artifacts

* Implemented AMQP Connection in Rust; started API surface refactoring for Rust APIs; Refactored tests to remove some uAMQP only elements.

* Don't leak runtime context on calls

* export UUID from AMQP

* Cleaned up some more elements; reduced scope of doxygen significantly

* runtime context needs to be process global not thread global; all tests pass or fail at this point

* Merged main into branch
LarryOsterman added a commit that referenced this pull request Oct 14, 2024
…#6008)

* refactor uAMQP and Rust AMQP into separate implementations for ease of use

* Add connection support; restructured tests to fail on RUST AMQP rather than attempting to run; removed some uAMQP-only features  (#5986)

* Checkpoint of connection logic

* Started implementing Rust based Connection by pulling out uAMQP artifacts

* Implemented AMQP Connection in Rust; started API surface refactoring for Rust APIs; Refactored tests to remove some uAMQP only elements.

* Don't leak runtime context on calls

* export UUID from AMQP

* Cleaned up some more elements; reduced scope of doxygen significantly

* runtime context needs to be process global not thread global; all tests pass or fail at this point

* Merged main into branch
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