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

Make ConfigurationBinder source generator feature-complete #79527

Closed
10 of 12 tasks
layomia opened this issue Dec 12, 2022 · 3 comments
Closed
10 of 12 tasks

Make ConfigurationBinder source generator feature-complete #79527

layomia opened this issue Dec 12, 2022 · 3 comments
Assignees
Labels
area-Extensions-Configuration source-generator Indicates an issue with a source generator feature
Milestone

Comments

@layomia
Copy link
Contributor

layomia commented Dec 12, 2022

Follow up work for the configuration binding source generator (#44493, #82179).

Preview 3

  • Support objects with parameterless ctors
  • Initial collection support (readonly collections were left out)

Preview 4

Preview 5

Preview 6

Preview 7

RC 1

Stretch / tbd / validation

FX DC feedback

There may be bad UX edge cases that need to be investigated, such as :

  • The roslyn analyzers report an unused using-import from where the existing extension methods are (might be topically unlikely)
    • write the smallest possible source file that could invoke each hook and make sure that we don't have unused usings after source generator hooks the callsite.
  • Concerns around callers using static invocation syntax instead of instance/extension syntax.
    • feature not a bug
    • make sure it triggers linker warning
    • have documentation on that linker warning that leads people to using the generator. 
  • The generator might end up toggling itself on and off (by removing the calls to the existing methods)
    • have a discussion and review the triggering logic with folks from the compiler team
@layomia layomia added this to the 8.0.0 milestone Dec 12, 2022
@layomia layomia self-assigned this Dec 12, 2022
@ghost
Copy link

ghost commented Dec 12, 2022

Tagging subscribers to this area: @dotnet/area-extensions-configuration
See info in area-owners.md if you want to be subscribed.

Issue Details

[WIP] Placeholder for follow up work for the upcoming ConfigurationBinder source generator (#44493).

The task is to make all the ConfigurationBinder tests (which are now shared with the reflection-based implementation) pass. Identified work items include:

  • Implement the right constructor invocation logic for each POCO-style target config type
Author: layomia
Assignees: layomia
Labels:

area-Extensions-Configuration

Milestone: 8.0.0

@layomia layomia added the source-generator Indicates an issue with a source generator feature label Dec 12, 2022
@layomia layomia changed the title Make ConfigurationBinder source generator functionally feature-complete Make ConfigurationBinder source generator feature-complete Feb 16, 2023
@layomia layomia modified the milestones: 8.0.0, Future Jul 25, 2023
@jkotas
Copy link
Member

jkotas commented Sep 5, 2023

Also, we should have this source generator documented at https://learn.microsoft.com/en-us/dotnet/core/extensions/configuration. Once the documentation is available, please update this link to point to it.

@layomia
Copy link
Contributor Author

layomia commented Sep 6, 2023

Closing. Tracking remaining 8.0 work in https://github.com/orgs/dotnet/projects/303/views/1.

@layomia layomia closed this as completed Sep 6, 2023
@ghost ghost locked as resolved and limited conversation to collaborators Oct 27, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
area-Extensions-Configuration source-generator Indicates an issue with a source generator feature
Projects
None yet
Development

No branches or pull requests

2 participants