Conversation
…sons and compelling copy Agent-Logs-Url: https://github.com/schivei/GenDI/sessions/1f71d59f-7521-4944-bd7f-b175258aae1d Co-authored-by: schivei <811061+schivei@users.noreply.github.com>
…tion elements Agent-Logs-Url: https://github.com/schivei/GenDI/sessions/1f71d59f-7521-4944-bd7f-b175258aae1d Co-authored-by: schivei <811061+schivei@users.noreply.github.com>
schivei
left a comment
There was a problem hiding this comment.
@copilot We also need more results into the benchmarks, comparing w/o GenDI and another comparing with constructor and with properties injection, to developer takes their own consideration, if the property injection mean while +-3% just present the results, but, if properties wins, emphasize it to convince developer, also if construtor wins, consider a mention when developer desires more performance against organization and readability, try to convince them in any case 😝.
Also, make a (if not exists, if try update) a section with next steps (ROADMAP it's important too to acquire contributors and users), try to think what we can improve and provide falling the same concept. Try a big list to keep project alive.
And then make a disclaimer to convince persons to be a contributor and another to sponsor.
P.S: I also need a MD file to post on GitHub discussions and other for LinkedIn. Put it on untracked folder like .github/extras to avoid execution of pipelines when I delete it.
…r/sponsor sections Agent-Logs-Url: https://github.com/schivei/GenDI/sessions/9e7c9e9b-2ade-4da1-8a42-2510ebb880f4 Co-authored-by: schivei <811061+schivei@users.noreply.github.com>
…mmit before merge) Agent-Logs-Url: https://github.com/schivei/GenDI/sessions/9e7c9e9b-2ade-4da1-8a42-2510ebb880f4 Co-authored-by: schivei <811061+schivei@users.noreply.github.com>
Done in two commits — Benchmarks (
Roadmap (
Contributor + Sponsor (
Social posts (
|
…mmed/AOT for GenDI and manual) Agent-Logs-Url: https://github.com/schivei/GenDI/sessions/0b6bd603-4881-4a89-ae64-a9880ffe98d8 Co-authored-by: schivei <811061+schivei@users.noreply.github.com>
…immed/AOT crash behavior Agent-Logs-Url: https://github.com/schivei/GenDI/sessions/c43d25c6-17e6-4f29-a400-83ed67245ed0 Co-authored-by: schivei <811061+schivei@users.noreply.github.com>
… across all website docs Agent-Logs-Url: https://github.com/schivei/GenDI/sessions/af1700b6-33e1-4140-9a0c-d18e1caee3a5 Co-authored-by: schivei <811061+schivei@users.noreply.github.com>
Agent-Logs-Url: https://github.com/schivei/GenDI/sessions/64950db3-0f1a-45c1-954c-08fecd6df54f Co-authored-by: schivei <811061+schivei@users.noreply.github.com>
…add 100% coverage infrastructure and edge-case tests; remove dead code (BuildEnumConstantExpression, decimal key case)" Agent-Logs-Url: https://github.com/schivei/GenDI/sessions/64950db3-0f1a-45c1-954c-08fecd6df54f Co-authored-by: schivei <811061+schivei@users.noreply.github.com>
| </PackageReference> | ||
| <PackageReference Include="Microsoft.CodeAnalysis.CSharp" Version="4.*" PrivateAssets="all" /> | ||
| <PackageReference Include="Microsoft.NET.Test.Sdk" Version="18.*" PrivateAssets="all" /> | ||
| <PackageReference Include="xunit" Version="2.*" PrivateAssets="all" /> |
There was a problem hiding this comment.
Must change to xunit.v3 in all test projects
There was a problem hiding this comment.
Done in 12b2a9c. All 5 test projects now use xunit.v3 3.* + xunit.runner.visualstudio 3.* (replacing xunit 2.*). Build succeeds with 0 warnings and all tests pass on net10.0.
…unner 3.*" Agent-Logs-Url: https://github.com/schivei/GenDI/sessions/46b6e9f1-7473-40b6-9f71-95c9c0e7c83c Co-authored-by: schivei <811061+schivei@users.noreply.github.com>
All upgrades are in. The open Dependabot PRs (#5–#9) are already superseded by the wildcard versions in this PR ( |
There was a problem hiding this comment.
Pull request overview
This pull request updates GenDI’s documentation and benchmark narrative to emphasize property injection and project roadmap, while also modernizing the .NET/test infrastructure (net10.0, package version wildcards, coverage tooling) and expanding generator test coverage.
Changes:
- Refresh documentation pages (intro, quick start, attributes, roadmap/contributing, benchmarks) with stronger emphasis on property injection and benchmark results.
- Add/expand tests for generator edge cases and GenDI attribute behavior; update generator test helpers.
- Upgrade projects/packages (including moving tests/apps to
net10.0) and add coverage tooling configuration.
Reviewed changes
Copilot reviewed 32 out of 32 changed files in this pull request and generated 10 comments.
Show a summary per file
| File | Description |
|---|---|
| website/docs/intro.md | Reworks intro messaging and feature list to emphasize property injection and compile-time generation. |
| website/docs/getting-started/quick-start.md | Updates quick start to use property injection as the primary style and adds keyed-services notes. |
| website/docs/getting-started/installation.md | Adds more structured installation steps and local tooling notes. |
| website/docs/core-concepts/service-registration.md | Adds clearer, more visual explanation of registration/activation and ordering. |
| website/docs/core-concepts/attributes.md | Expands attribute reference, especially [Inject], with rationale and examples. |
| website/docs/community/roadmap.md | Expands roadmap details and phase breakdown. |
| website/docs/community/contributing.md | Adds contributing guidance, contribution areas, and sponsorship section. |
| website/docs/advanced/testing-and-validation.md | Updates testing strategy section formatting and bullet clarity. |
| website/docs/advanced/nativeaot-and-trimming.md | Strengthens NativeAOT/trimming guidance and best practices. |
| website/docs/advanced/benchmarks.md | Expands benchmark scenarios/results and adds interpretation/binary size discussion. |
| tests/GenDI.SourceGenerator.Tests.Shared/GeneratorTestHelper.cs | Adds GenerateSourceWithAssemblyName overload to support namespace edge-case testing. |
| tests/GenDI.SourceGenerator.Tests.Shared/GeneratorEdgeCaseTests.cs | New edge-case tests for generator behavior, literals, escaping, and keyed/property branches. |
| tests/GenDI.SourceGenerator.NoCoverageAttribute.Tests/GenDI.SourceGenerator.NoCoverageAttribute.Tests.csproj | Moves to net10.0, switches package versions to wildcards, adds coverlet collector, and enables ReferenceOutputAssembly. |
| tests/GenDI.SourceGenerator.CoverageEnabled.Tests/GenDI.SourceGenerator.CoverageEnabled.Tests.csproj | Moves to net10.0, switches package versions to wildcards, adds coverlet collector, and enables ReferenceOutputAssembly. |
| tests/GenDI.SourceGenerator.CoverageDisabled.Tests/GenDI.SourceGenerator.CoverageDisabled.Tests.csproj | Moves to net10.0, switches package versions to wildcards, adds coverlet collector, and enables ReferenceOutputAssembly. |
| tests/GenDI.Phase3.Validation.Tests/GenDI.Phase3.Validation.Tests.csproj | Moves to net10.0, switches test packages to wildcards, adds coverlet collector. |
| tests/GenDI.Phase3.TrimValidation.App/GenDI.Phase3.TrimValidation.App.csproj | Moves to net10.0 and updates DI package version wildcard. |
| tests/GenDI.Phase3.NativeAotValidation.App/GenDI.Phase3.NativeAotValidation.App.csproj | Moves to net10.0 and updates DI package version wildcard. |
| tests/GenDI.Integration.Tests/GenDI.Integration.Tests.csproj | Moves to net10.0, adds coverlet packages, updates test/DI packages to wildcards. |
| tests/GenDI.Integration.Tests/AttributeUnitTests.cs | Adds unit tests covering attribute constructors/defaults and property round-trips. |
| tests/GenDI.Benchmarks/StartupRegistrationBenchmarks.cs | Adds manual baseline and property-injection benchmark alongside existing generated/reflection approaches. |
| tests/GenDI.Benchmarks/GenDI.Benchmarks.csproj | Updates BenchmarkDotNet/DI package versions (wildcards). |
| tests/GenDI.Benchmarks/BenchmarkServices.cs | Adds property-injection benchmark service variant and clarifies benchmark service intent. |
| src/GenDI/GenDI.csproj | Adds net10.0 TFM and updates DI abstractions package version wildcard. |
| src/GenDI.SourceGenerator/GenDISourceGenerator.Models.cs | Removes null guard in comparer GetHashCode. |
| src/GenDI.SourceGenerator/GenDISourceGenerator.Analysis.cs | Removes enum/decimal constant-expression helpers and simplifies constant rendering. |
| src/GenDI.SourceGenerator/GenDI.SourceGenerator.csproj | Updates Roslyn package version to wildcard. |
| ROADMAP.md | Expands and marks phases as completed; adds detailed Phase 6 plan. |
| README.md | Reframes positioning, adds property-injection pitch and examples, updates feature bullets. |
| docs/BENCHMARKS.md | Expands benchmark scenarios and adds deeper analysis and binary-size discussion. |
| .github/extras/linkedin.md | Adds release/announcement copy for external communication. |
| .github/extras/github-discussion.md | Adds draft GitHub Discussion announcement content. |
Comments suppressed due to low confidence (1)
src/GenDI.SourceGenerator/GenDISourceGenerator.Models.cs:60
ServiceRegistrationComparer.Equalsis null-tolerant, butGetHashCodeno longer guards againstnulland will now throw aNullReferenceExceptionif a null value is ever passed (the typical contract isArgumentNullException). Consider restoring an explicit null check (or making the comparer consistently non-nullable) to keep behavior predictable.
public bool Equals(ServiceRegistration? x, ServiceRegistration? y)
{
return x?.ServiceType == y?.ServiceType
&& x?.ImplementationType == y?.ImplementationType
&& x?.KeyExpression == y?.KeyExpression;
}
public int GetHashCode(ServiceRegistration obj)
{
unchecked
{
var hashCode =
((obj.ServiceType?.GetHashCode() ?? 0) * 397)
^ (obj.ImplementationType?.GetHashCode() ?? 0);
return (hashCode * 397) ^ (obj.KeyExpression?.GetHashCode() ?? 0);
}
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Agent-Logs-Url: https://github.com/schivei/GenDI/sessions/ddbdbf28-763e-4453-a91c-02665c7a9259 Co-authored-by: schivei <811061+schivei@users.noreply.github.com>
|
@copilot apply changes based on the comments in this thread |
…nerator Agent-Logs-Url: https://github.com/schivei/GenDI/sessions/ddbdbf28-763e-4453-a91c-02665c7a9259 Co-authored-by: schivei <811061+schivei@users.noreply.github.com>
Agent-Logs-Url: https://github.com/schivei/GenDI/sessions/ddbdbf28-763e-4453-a91c-02665c7a9259 Co-authored-by: schivei <811061+schivei@users.noreply.github.com>
…ark alignment Agent-Logs-Url: https://github.com/schivei/GenDI/sessions/9ec310c9-52fb-4d4f-bd43-6bcb0824c488 Co-authored-by: schivei <811061+schivei@users.noreply.github.com>
All review comments addressed in
|
|



coverlet.msbuildfrom Integration.Tests (already usingMicrosoft.Testing.Extensions.CodeCoverage)AssertNoSourceGeneratedhelper toGeneratorTestHelper— explicit empty-source check instead of relying onInvalidOperationExceptionfromLINQ.Single()GeneratorEdgeCaseTeststo use the new explicit helper for abstract/wrong-namespace testsAssert.Contains("F")→Assert.Contains("3.14F")andAssert.Contains("D")→Assert.Contains("2.71D")AddGenDIServices()— apples-to-apples comparison