Azure / Azure/azure-functions-dotnet-worker
Revisit IFunctionMetadataProvider API
- Dominant language
- C#
- Stars
- 466
- Forks
- 215
- Avg merge
- 3d 10h
- Merged PRs (30d)
- 7
Description
The API for `IFunctionMetadataProvider` doesn't make a lot of sense as we move towards source-generation:
- no need for it to be `async`
- no need for it to take the `scriptRoot` as a parameter
The original assumption was that we'd always be reading this from disk... but we don't anymore. The use of `scriptRoot`, while ugly, isn't a big deal. But because it's `async`, it requires us to use [sync-over-async here](https://github.com/Azure/azure-functions-dotnet-worker/blob/014190d4b728552cb2ab5aef9a90616cd4e60004/extensions/Worker.Extensions.Http.AspNetCore/src/AspNetMiddleware/FunctionsEndpointDataSource.cs#L59).
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by locating IFunctionMetadataProvider and its implementations and usages, then inspect FunctionsEndpointDataSource.cs at the linked sync-over-async call. Trace how metadata is obtained with source generation and assess the API changes needed to remove async and scriptRoot; done means consumers no longer require sync-over-async and the updated contract works across its implementations.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp
- Domain
- backend-api-design
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100