Skip to content

Major: v3#320

Open
DecSmith42 wants to merge 174 commits into
mainfrom
feature/v-next
Open

Major: v3#320
DecSmith42 wants to merge 174 commits into
mainfrom
feature/v-next

Conversation

@DecSmith42
Copy link
Copy Markdown
Owner

No description provided.

Copilot AI review requested due to automatic review settings May 4, 2026 02:15
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot wasn't able to review this pull request because it exceeds the maximum number of files (300). Try reducing the number of changed files and requesting a review from Copilot again.

DecSmith42 added 28 commits May 25, 2026 10:50
Added the `LibGit2Sharp` package (v0.31.0) to the `_atom` project for enhanced Git repository interaction capabilities.
…n labels

Updated workflows to use `WorkflowLabels` for platform, framework, and version definitions for better consistency and readability. Removed unused classes and redefined multiple injection options. Migrated `GithubIfBuild` test cases and adjusted workflow test cases accordingly.
Added `DecSm.Atom.Workflows.Definition` to global usings for improved accessibility across the module.
Refactored `WithGithubRunsOnMatrix` and `WithGithubTokenInjection` methods for improved consistency and readability. Updated `GithubRunsOn` to use `WorkflowExpression` for labels. Removed redundant static properties for predefined runner configurations.
Added `EnvVarName` computed property to `ParamModel` and `ParamDefinition` for consistent environment variable naming. Updated `ParamService` to leverage the new property, improving readability and reducing duplication.
Enhanced workflow generation logic by introducing `IWorkflowExpressionGenerator` for improved expression handling and consistency. Refactored multiple areas, including runs-on labels, environment variables, and secret injections, to leverage the new generator. Simplified property access and reduced redundancy across GitHub and DevOps workflow writers.
…ndancy

Removed redundant static properties and refactored workflow option records for improved clarity and consistency. Simplified the structure of options like `ToggleWorkflowOption`, `GithubCheckoutOption`, and `WorkflowSecretsInjection` by standardizing their definitions. Updated namespaces to align with the new organization.
…tions

Removed the `IGithubExpression` record and its related implementations as they were no longer necessary. This includes literals, operators, function expressions, and tests under `ExpressionsTests`. Streamlined the codebase to improve maintainability and reduce unused types.
Simplified the `WithDevopsPoolMatrix` method implementation for improved clarity and consistency. Updated parameter handling and adjusted namespace dependencies to align with recent workflow architecture changes.
…ng change checks

Introduced new workflow expression functionalities like `Not`, `And`, `Or`, `Coalesce`, and others to enhance GitHub workflow definition capabilities. Added logic for checking pull requests against potential breaking changes using the public API surface. Integrated `ICheckPrForBreakingChanges` and `IWorkflowExpressionWriter` for improved workflow management and customization.
Moved `CheckPrForBreakingChanges` logic in `Build.cs` to a specific workflow section and updated its injection configuration. Ensured consistency with GitHub token permissions and matrix setup. Removed redundant duplicate declarations for improved clarity.
Updated `GithubWorkflowWriter` to include `workflowStep.Options` in the processing of environment and parameter injections. Ensured that environment injections correctly exclude matching parameter injections to maintain expected behavior.
Updated `Validate.yml` and `Build.cs` to include `pull-request-number` parameter for PR breaking change checks. Ensured proper injection of GitHub event data to support enhanced workflow logic.
Refactored logic in `ICheckPrForBreakingChanges` to enhance clarity and functionality. Introduced separate handling for breaking change comments and non-breaking change comments. Prevented redundant mutation executions and improved error handling for mutation results.
Added `AtomFileSystem.cs` to the list of files checked for breaking changes in `ICheckPrForBreakingChanges`. Improved repository variable handling by splitting and formatting GitHub repository strings.
Improved handling of breaking change detection by introducing clearer formatting of repository variables and generating detailed draft PR review threads. Included file-specific line details for breaking changes to assist reviewers in identifying affected areas. Removed redundant code execution for review thread creation.
…flows

Centralized breaking change detection logic into `SetupBuildInfo` and removed `ICheckPrForBreakingChanges` target to streamline workflow execution. Enhanced PR review comment generation with detailed breaking change insights. Updated workflows to ensure proper permissions and environment variable handling for seamless integration.
Enhanced workflows by injecting Azure Vault secrets and environment variables to support secure operations. Refactored breaking change detection in PR reviews for better clarity and streamlined mutation execution.
…ndling

Enhanced GitHub repository variable handling for improved readability by splitting and formatting `.Variables.Repository` more clearly. Adjusted breaking change detection logic to use relative paths with consistent forward slashes for generating PR review threads.
…logic

Refactored repository variable formatting for better readability by splitting and aligning `.Variables.Repository`. Enhanced logic for breaking change detection by adding relative path computation and consistent forward slashes. Introduced logs for path-specific breaking changes and improved draft PR review thread generation to include detailed file and line information.
Improved readability of repository variable formatting by aligning GitHub `.Variables.Repository`. Enhanced breaking change logic by trimming paths, ensuring consistent forward slashes, and wrapping path references in single quotes for better accuracy.
Introduced structured breaking change types (major, minor) with corresponding comment generation. Added methods for formatting target files and identifying the latest release version. Refactored breaking change logic to provide actionable insights, improving review clarity and version bump detection.
…handling

Added debug logs to improve traceability of change detection steps, including repository owner, version, commit hashes, and change classification (major/minor). Consolidated breaking change handling into a new `Change` record for clearer structure. Refined detection of suspicious and major changes with improved logging of intermediate results, enhancing review clarity.
Simplified code by removing unused logic for checking suspicious changes that prevented comment mutation execution. This ensures the comment mutation always occurs, improving clarity and consistency.
…lper

Extracted breaking change detection and related utilities from `ISetupBuild` into a new `IApiSurfaceHelper` interface for better modularity and code reuse. Updated workflows and targets to leverage the new helper. Removed redundant environment variables from GitHub workflows for improved clarity.
Introduced a method to create GitHub check runs for detecting breaking changes in pull requests. The check dynamically determines success or failure based on categorized (major/minor) breaking changes and current version information. Enhanced PR review clarity with additional status updates and descriptions.
Added the `checks: write` permission to the `Validate.yml` workflow and corresponding logic in `Build.cs` to support creating and updating GitHub check runs. This improves integration with GitHub Actions for enhanced validation and status reporting.
DecSmith42 added 17 commits May 25, 2026 10:53
… utilities

- Introduced `IImplicitTargetDependencyOption` to improve tracking of implicit dependencies in workflows.
- Added `Flatten` method to `TextExpressionUtils` for recursive traversal and normalization of complex text expressions.
- Updated `TargetCondition` and `TargetStepCondition` to implement `IImplicitTargetDependencyOption` for better dependency handling.
- Refactored `DevopsWorkflowBuilder` to leverage `ParamOutput` helper for cleaner and more concise target condition expressions.
- Enhanced `WorkflowResolver` with logging warnings for unlisted implicit dependencies in jobs.
- Improved secret injection with utility methods `WorkflowSecretInjectionForSecretProvider.GetOptions` and `WorkflowSecretsInjectionFromEnvironment.GetOptions` for clearer code readability and consistency across workflows.
- Added new `.props` files for various projects to enable transitive dependencies:
  - `DecSm.Atom.FileSystem`
  - `DecSm.Atom.Process`
  - `DecSm.Atom.SemanticVersion`
  - `DecSm.Atom.Workflows`
  - `DecSm.StructuredText` (including submodules for GitHub Actions and Azure DevOps Pipelines)
- Updated `.csproj` files to include the `.props` files in the `buildTransitive` package path.
- Expanded dependency inclusions in `.props` files for modules like `Dotnet`, `GithubWorkflows`, `AzureKeyVault`, and `GitVersion`.
- Improved logical grouping and ordering of dependencies in multiple `.props` files.
- Renamed `DecSm.Atom.StructuredText.props` to `DecSm.StructuredText.props` in `.csproj` for accurate reference.
- Added `DecSm.Atom.StructuredText.Expressions` as a global dependency in `.props`.
- Removed unnecessary `DecSm.Atom.Module.Dotnet.Cli.Generated` and `DecSm.Atom.Module.Dotnet.Model.Util` from `DecSm.Atom.Module.Dotnet.props`.
- Updated `DecSm.Atom.Module.Dotnet.Model.Util` to `DecSm.Atom.Module.Dotnet.Util` in `.props`.
- Removed unused `DecSm.Atom.Workflows.Extensions` from `Build.cs`.
- Restored `DecSm.Atom.Workflows.Extensions` in `_usings.cs`.
- Fixed inconsistent spacing in `DecSm.StructuredText.props`.
Removed redundant `None` inclusions for analyzer DLLs in `DecSm.Atom.Workflows.csproj`. These entries were unnecessary as the associated `ProjectReference` items already provide the required functionality. This change simplifies the project file and avoids duplicate references.
…ArgsParser

- Refactored `_aliasToTargetName` to use lazy initialization via `AliasToTargetName` to prevent circular dependency issues with `IBuildDefinition`.
- Updated references to `_aliasToTargetName` with `AliasToTargetName` throughout the class.
- Ensures proper handling of alias resolution and command parsing without initialization conflicts.
…ents

- Removed `Alias` property from `TargetModel` and `TargetDefinition`.
- Deleted all alias-related logic in `CommandLineArgsParser`, including lazy initialization and alias-to-target name mappings.
- Simplified `WriteCommand` method in `HelpService` by removing alias display.
- Updated BuildResolver to reflect changes in `TargetModel` structure.
- Removed associated tests and test cases for alias operations in `CommandLineArgsParserTests` and other test classes.
- Renamed `IGenerateWorkflowFiles` interface and related references to `IGen` for improved brevity and clarity.
- Updated all usages across source and test files, including method names, namespaces, and command-line argument references.
- Adjusted dependent interfaces, such as `IWorkflowBuildDefinition`, to reflect the new name.
- Ensured test cases and utilities are updated accordingly to avoid errors.
- Updated `GithubWorkflowFileWriter` to ignore duplicate entries in `MatrixDimensions` by applying `.Distinct()`.
- Ensures proper handling and avoids potential runtime errors when duplicates are present.
- Added a TODO comment for implementing proper duplicate detection logic in the future.
- Removed `Alias` and `WithAlias` member entries from the verified API surface in `PublicApiSurfaceTests`.
- Aligned test expectations with recent updates to `TargetModel` and `TargetDefinition` structure.
- Ensures consistency between API surface tests and current implementation.
- Introduced `AT0002_ConfigureHostPartialMethodNotImplementedAnalyzer` to ensure interfaces with `[ConfigureHost]` attribute include the required partial method `ConfigureHostFrom{InterfaceName}`.
- Implemented `AT0003_ConfigureHostBuilderPartialMethodNotImplementedAnalyzer` for `[ConfigureHostBuilder]` to validate the presence of `ConfigureBuilderFrom{InterfaceName}`.
- Added corresponding code fix providers to auto-generate method stubs when missing.
- Created unit tests to verify diagnostics and fix implementations for both analyzers.
- Ensures stricter enforcement of interface design requirements through compiler diagnostics.
… directives

Updated `CodeFixProvider` implementations to dynamically determine and apply the appropriate newline format based on existing syntax trivia. Replaced hardcoded `CarriageReturnLineFeed` with `EndOfLineTrivia` to better support multi-platform environments.

Also formatted verifier declarations in related test files for improved readability.
…al implementation and builder configuration

- Made `IWorkflowBuildDefinition` a `partial interface` to enable `ConfigureHostBuilder` usage.
- Moved builder configuration logic from `WorkflowBuildDefinition` to `IWorkflowBuildDefinition`.
- Refactored `BuildDefinitionInterfaceSourceGenerator` to dynamically generate class names for interfaces.
- Updated `_usings` to include missing namespaces.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants