-
Notifications
You must be signed in to change notification settings - Fork 4.8k
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
Reshuffle shared source files #38509
Conversation
API change check API changes are not detected in this pull request. |
I think we should keep |
How would you feel about moving it temporarily and then driving consistency as a holistic effort when we move it back to being a shared resource? One observation here is that we've created two of these types that do the same thing with |
Could you explain the benefit in moving it if we plan to just move it back?
ErrorResponse was created before NullableResponse and therefore doesn't inherit from it, so I don't see them as duplicate. That one seems fine to move, IMO. |
Sure. We have a lot of challenges with our shared source files today, many related to the issues listed in the PR description. I'd like to take an accounting of each of these files to understand what roles they play, what dependencies they actually have (some of them are referenced by libraries that don't actually use them), and how they're connected to each other. All of this is driving toward turning these into public types so they can be shared in the way .NET intends to share types. Moving them temporarily helps tease out the dependencies, and uses the CIs to validate hypotheses to ensure we don't make mistaken assumptions. It'll help us take out some of the snarly tangles in the circular dependency problem across the autorest.csharp repo so we can see that more clearly. Overall, the smaller the set of files in the src/Shared folder is, the easier it will be to see patterns to make it clear what the work remaining is here. I'm hoping to bring a list of projects to our team in a few weeks as options for people to consider driving during MQ. So, if it's not a big problem to move it back in a bit, that would be really helpful for this effort. I'm happy to keep track of things we want to move back however works best for everyone.
I'm not sure I understand this - Thanks! |
Do we have a timeline for when it would move back?
Sure - Response types that intend to have no value should inherit directly from |
Whenever we're ready to make it a public type? Or if there's a reason to share it across libraries before that, if we need to compromise on public/shared. Or, as soon as the accounting is done, which I'm hoping is only a few weeks, but should be before EOY, probably during MQ? What's best for your timeline?
I see, cool, thanks for that. So then I was thinking about it incorrectly - it looks like |
MQ sounds reasonable - thanks for all the additional context. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
tables LGTM
* Move GZipUtf8JsonRequestContent to Monitor * Move GuidUtilities to ServiceBus * Make GeoRedundantFallbackPolicy internal * move ErrorResponse<T> into HttpPipelineExtensions * Move NoValueResponse<T> to Tables
As pre-work to address:
I'm working on an accounting of our shared source files and which libraries use them.
To make this easier, I'd like to at least temporarily move files used by only a single library into that library. If any of these files need to stay shared, please let me know because that will be useful information in our prioritization and planning around the issues listed above.
This PR specifically:
It's worth noting that the last two types address the same API need, and if we make these public as part of #28369, we should likely merge them into a single type.