Merged
Conversation
There was a problem hiding this comment.
Pull request overview
This pull request modernizes the build system and simplifies the PowerShell module loading architecture while adding new features and updating dependencies. The changes migrate from traditional Visual Studio solution files to the newer .slnx format, replace custom build scripts with InvokeBuild-based automation, and refactor module loading to use PowerShell's native module assembly initializer for .NET Framework instead of a custom assembly resolver.
Changes:
- Build system replaced with InvokeBuild-based scripts (
build.ps1,Sixel.build.ps1) removing old scripts (vsbuild.ps1,docs.ps1,common.ps1,Pester.ps1) - Module loading refactored: bin→lib directory structure, new
ModuleAssemblyInitializer.csfor .NET Framework, simplifiedLoadContext.csfor .NET Core - Code style standardized via comprehensive
.editorconfigwith Stroustrup brace style, modern C# preferences, and analyzer configurations - New Braille protocol support added, Contour terminal detection, and experimental helper classes (
SizeHelperDev,ResizerDev) - Dependencies updated: SixLabors.ImageSharp 3.1.12 (net8.0) / 2.1.13 (net472), System.Text.Encoding.CodePages 10.0.3
- Module version bumped to 0.7.0
Reviewed changes
Copilot reviewed 51 out of 52 changed files in this pull request and generated 14 comments.
Show a summary per file
| File | Description |
|---|---|
| build.ps1 | New build entry point with InvokeBuild integration |
| Sixel.build.ps1 | Main build tasks for compilation, help generation, and testing |
| Sixel.sln → Sixel.slnx | Migration to simplified solution format |
| module/Sixel.psm1 | Refactored loading with bin→lib path changes and simplified resolver |
| src/Sixel/Helpers/ModuleAssemblyInitializer.cs | New assembly resolver for .NET Framework 4.7.2 |
| src/Sixel.Shared/LoadContext.cs | Streamlined ALC implementation for .NET Core |
| src/Sixel/Protocols/Braille.cs | New Braille image protocol implementation |
| src/Sixel/Helpers/{SizeHelperDev,ResizerDev}.cs | Experimental helper classes for image sizing |
| src/Sixel/Terminal/VTWriter.cs | Formatting changes with duplicate condition bug |
| src/Sixel/Protocols/Blocks.cs | Simplified transparency detection |
| src/Sixel/Cmdlet/*.cs | Static HttpClient pattern and formatting updates |
| src/Sixel/Sixel.csproj | Updated dependencies and analyzer configuration |
| .editorconfig | Comprehensive code style and analyzer configuration |
| .gitignore | Updated to exclude all .md files except specific paths |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This pull request introduces several significant changes aimed at modernizing and simplifying the build and module loading process for the project. The key updates include replacing the traditional Visual Studio solution with a simpler solution format, overhauling the build scripts for better automation and cross-platform compatibility, and streamlining the PowerShell module loading logic to remove legacy .NET Framework-specific assembly resolution. Additionally, code style and analyzer settings have been centralized in a new
.editorconfigfile, and the module version has been incremented to 0.7.0 with updated release notes.Build and Solution Structure Modernization:
Sixel.slnand replaced it with a more conciseSixel.slnxsolution format, reflecting a move away from Visual Studio-specific tooling. [1] [2]build.ps1as the main entry point andSixel.build.ps1for project-specific tasks, enabling improved automation, support for multiple tasks (build, test, help generation), and better cross-platform compatibility. [1] [2]Module Loading and .NET Compatibility:
Sixel.psm1to remove the custom assembly resolver for .NET Framework 4.7.2, simplifying the code and aligning with a unified loading approach for both .NET Core and .NET Framework. [1] [2] [3]libdirectory instead ofbinfor loading assemblies, reflecting the new build output structure. [1] [2]LoadContext.csand referenced the new module initializer for PowerShell 5.1.Development Experience and Code Quality:
.editorconfigto standardize code formatting, analyzer severities, and C# style preferences across the repository, improving code consistency and maintainability.Versioning and Documentation:
0.7.0inSixel.psd1and updated release notes to reflect library updates and bugfixes. [1] [2]