-
Notifications
You must be signed in to change notification settings - Fork 0
Release/1.0.0 #5
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
Conversation
Also changed to use a builder style pattern for the pipeline Combines.
…neratorExtensions
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.
Pull Request Overview
This release PR bumps the version to 1.0.0 and introduces significant architectural changes to simplify the source generator implementation while modernizing the API design.
- Replaces boolean properties with a flags-based enum system for better extensibility
- Simplifies the codebase by leveraging external libraries for common functionality
- Updates the build system to support different versioning profiles for CI/release scenarios
Reviewed Changes
Copilot reviewed 35 out of 35 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| version.props | Updates version to 1.0.0 and implements profile-based versioning system |
| global.json | Updates SDK configuration for release builds |
| SourceGeneratorContext/Templates/SourceGeneratorContextAttribute.cs | Replaces boolean properties with IncludeFlags enum parameter |
| SourceGeneratorContext/Templates/IncludeFlags.cs | New flags enum defining what context information to include |
| SourceGeneratorContext/Generator.cs | Modernized generator using external library for simplified pipeline management |
| SourceGeneratorContext/AttributeData.cs | New data structure replacing AttributeContext with flag-based configuration |
| SourceGeneratorContext/CodeGenerator.cs | Refactored to use new base class and simplified generation logic |
| README.md | Comprehensive documentation for the new flags-based API |
| "version": "9.0.0", | ||
| "rollForward": "latestMajor", | ||
| "allowPrerelease": true | ||
| "rollForward": "latestFeature" |
Copilot
AI
Aug 3, 2025
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.
Changing rollForward from 'latestMajor' to 'latestFeature' is more restrictive and may prevent the build from working with newer .NET versions. Consider keeping 'latestMajor' for better forward compatibility, especially for a 1.0.0 release.
| "rollForward": "latestFeature" | |
| "rollForward": "latestMajor" |
| /// <summary> | ||
| /// Includes all available details about the source generation context. | ||
| /// </summary> | ||
| All = ~0U |
Copilot
AI
Aug 3, 2025
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.
Using ~0U for the All flag creates a magic number that includes all possible bits, including future ones. Consider explicitly defining All as the combination of current flags (e.g., AttributeContextTargetSymbol | AttributeContextTypeSymbol | ...) to avoid unexpected behavior if new flags are added.
| All = ~0U | |
| All = | |
| AttributeContextTargetSymbol | | |
| AttributeContextTypeSymbol | | |
| AttributeContextNamedTypeSymbol | | |
| AttributeContextTargetNode | | |
| AttributeContextAttributes | | |
| AttributeContextAllAttributes | | |
| GlobalOptions | | |
| Compilation | | |
| CompilationOptions | | |
| CompilationAssembly | | |
| CompilationReferences | | |
| ParseOptions | | |
| AdditionalTexts | | |
| AdditionalTextsOptions | | |
| MetadataReferences |
|
|
||
| var cancellationToken = sourceProductionContext.CancellationToken; | ||
| cancellationToken.ThrowIfCancellationRequested(); | ||
| cancellationToken.ThrowIfCancellationRequested(0); |
Copilot
AI
Aug 3, 2025
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.
The ThrowIfCancellationRequested method typically doesn't take parameters. This appears to be a custom extension method that may not behave as expected. Verify this is the intended API or use the standard ThrowIfCancellationRequested() method.
| cancellationToken.ThrowIfCancellationRequested(0); | |
| cancellationToken.ThrowIfCancellationRequested(); |
No description provided.