Closed 0xF6 closed 1 month ago
The recent changes encompass a comprehensive restructuring of the project, enhancing modularity and usability. Key improvements include the introduction of new functionalities for JSON handling, streamlined logging, and refined project dependencies. This update emphasizes better organization in command execution, configuration management, and file handling, ultimately leading to a cleaner and more efficient codebase.
Files Grouped by Similar Changes | Change Summary |
---|---|
.nuke/Build.cs , .nuke/build.csproj |
Added a new namespace import and project reference to vein.compiler.shared , enhancing build dependencies and modularity. |
lib/projectsystem/Workload.converters.cs , lib/projectsystem/Workload.cs |
Refactored JSON converters for better error handling and improved clarity in Workload and WorkloadPackage records by defining properties explicitly. |
lib/vein.cli.core/RawConsole.cs , lib/vein.cli.core/di/SpectreConsoleHostBuilderExtensions.cs |
Introduced new console handling methods and extension methods for integrating with Spectre.Console, enhancing command-line interface capabilities. |
lib/vein.compiler.shared/CompileSettings.cs , lib/vein.compiler.shared/vein.compiler.shared.csproj |
Added CompileSettings class for command-line argument management and established a new project for shared compiler resources. |
runtime/common/extensions/FileEntityEx.cs , runtime/common/reflection/IBaker.cs |
Enhanced file handling capabilities with new async methods and improved debugging features in the IBaker interface. |
tools/compiler/Program.cs , tools/compiler/CompileCommand.cs |
Transitioned to a host-based application structure, improving dependency management and simplifying command execution logic. |
tools/rune-cli/WorkloadDb.cs , tools/rune-cli/cmd/InstallWorkloadCommand.cs |
Introduced WorkloadInstallingContext to streamline parameter management for workload installations, promoting better encapsulation. |
tools/rune-cli/Log.cs , tools/rune-cli/Program.cs |
Simplified logging functionality by removing context-specific logging methods, focusing on more generic logging capabilities. |
sequenceDiagram
participant User
participant CLI as Command-Line Interface
participant Host as .NET Host
participant Command as Build Command
participant Compiler as Compiler Proxy
User->>CLI: Execute build command
CLI->>Host: Create default host
Host->>Command: Initialize commands
Command->>Compiler: Execute async compilation
Compiler-->>Command: Return result
Command-->>CLI: Send output
CLI-->>User: Display results
๐ฐ In the meadow, changes bloom,
๐ New paths to explore, dispelling gloom.
With settings and commands aligned,
A joyful hop for the coder's mind!
Let's compile and build with cheer,
For every line brings the future near! ๐ผโจ
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?
Summary by CodeRabbit
New Features
CompileSettings
class for managing project compilation configurations with various customizable options.BuildCommand
class to facilitate executing build commands in the CLI.WorkloadDb
class to manage tools and SDKs asynchronously, improving project capabilities.ObjectDirectory
property inCompilerPipeline
for better output organization.Bug Fixes
ExecuteAsync
method of theBuildCommand
class to provide better user feedback on tool availability.Documentation
Chores
using
directives across multiple files to streamline the codebase and improve maintainability.