Azure / Azure/azure-functions-dotnet-worker

Revisit IFunctionMetadataProvider API

Open
#2,110 0 comments 0 reactions 0 assignees View on GitHub
feature: source-metadata-generator
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.