Merge hotreload-utils source into runtime repo#126512
Merged
akoeplinger merged 7 commits intodotnet:mainfrom Apr 10, 2026
Merged
Merge hotreload-utils source into runtime repo#126512akoeplinger merged 7 commits intodotnet:mainfrom
akoeplinger merged 7 commits intodotnet:mainfrom
Conversation
Copy the hotreload-utils source code from dotnet/hotreload-utils into src/tools/hotreload-delta-gen/ and replace the NuGet PackageReference with direct in-repo MSBuild targets, eliminating the cross-repo dependency. Changes: - Add 5 projects + shared code from hotreload-utils under src/tools/hotreload-delta-gen/ - Create eng/testing/hotreload-delta-gen.targets replacing the NuGet package's .targets file - Update 3 consumers (ApplyUpdate tests, WASM HotReload test, Mono sample) to import local targets instead of NuGet package - Add BuildTool and Tasks to src/libraries/pretest.proj for build ordering - Remove hotreload-utils dependency from eng/Version.Details.xml and eng/Version.Details.props - Suppress analyzers on imported code (RunAnalyzers=false) matching the illink pattern Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Contributor
|
Tagging subscribers to this area: @dotnet/runtime-infrastructure |
Contributor
There was a problem hiding this comment.
Pull request overview
This PR vendors the hotreload-utils delta generation toolchain into the runtime repo under src/tools/hotreload-delta-gen/, replaces the external NuGet-based integration with in-repo MSBuild targets, and updates existing consumers to use the in-repo targets.
Changes:
- Added in-repo hot reload delta generator source (tool + MSBuild task + shared data/types) under
src/tools/hotreload-delta-gen/. - Introduced
eng/testing/hotreload-delta-gen.targetsto replace the NuGet package.targetsand updated consumers to import it. - Removed the
dotnet/hotreload-utilsdependency from versioning files and ensured build ordering viasrc/libraries/pretest.proj.
Reviewed changes
Copilot reviewed 43 out of 43 changed files in this pull request and generated 9 comments.
Show a summary per file
| File | Description |
|---|---|
| src/tools/hotreload-delta-gen/Microsoft.DotNet.HotReload.Utils.Generator/Util/FSWGen.cs | Adds FileSystemWatcher-to-Channel async event streaming for live delta generation. |
| src/tools/hotreload-delta-gen/Microsoft.DotNet.HotReload.Utils.Generator/Util/AsyncEnumerableExtras.cs | Adds helper to provide an empty IAsyncEnumerable<T>. |
| src/tools/hotreload-delta-gen/Microsoft.DotNet.HotReload.Utils.Generator/Script/ParsedScript.cs | Adds parsed-script representation for scripted delta runs. |
| src/tools/hotreload-delta-gen/Microsoft.DotNet.HotReload.Utils.Generator/Script/Json/Parsing.cs | Adds JSON parsing for scripted delta input. |
| src/tools/hotreload-delta-gen/Microsoft.DotNet.HotReload.Utils.Generator/Runners/ScriptRunner.cs | Adds runner that reads a script file and generates deltas. |
| src/tools/hotreload-delta-gen/Microsoft.DotNet.HotReload.Utils.Generator/Runners/LiveRunner.cs | Adds runner that watches the filesystem for live edits and generates deltas. |
| src/tools/hotreload-delta-gen/Microsoft.DotNet.HotReload.Utils.Generator/Runner.cs | Adds common runner orchestration (baseline setup, capability handling, delta loop). |
| src/tools/hotreload-delta-gen/Microsoft.DotNet.HotReload.Utils.Generator/Plan/Change.cs | Adds plan/change primitives used across scripted/live modes. |
| src/tools/hotreload-delta-gen/Microsoft.DotNet.HotReload.Utils.Generator/Microsoft.DotNet.HotReload.Utils.Generator.csproj | Defines the generator project and Roslyn/MSBuild dependencies. |
| src/tools/hotreload-delta-gen/Microsoft.DotNet.HotReload.Utils.Generator/EnC/EditAndContinueCapabilities.cs | Vendors EnC capability enum used for Roslyn Hot Reload integration. |
| src/tools/hotreload-delta-gen/Microsoft.DotNet.HotReload.Utils.Generator/EditAndContinueCapabilitiesParser.cs | Adds parsing of capability strings into enum values. |
| src/tools/hotreload-delta-gen/Microsoft.DotNet.HotReload.Utils.Generator/DocResolver.cs | Adds file-path → DocumentId mapping for Roslyn documents. |
| src/tools/hotreload-delta-gen/Microsoft.DotNet.HotReload.Utils.Generator/DiffyException.cs | Adds typed exception with process exit code propagation. |
| src/tools/hotreload-delta-gen/Microsoft.DotNet.HotReload.Utils.Generator/DeltaProject.cs | Core delta build logic using Roslyn HotReloadService. |
| src/tools/hotreload-delta-gen/Microsoft.DotNet.HotReload.Utils.Generator/DeltaOutputStreams.cs | Wraps delta output streams and disposal semantics. |
| src/tools/hotreload-delta-gen/Microsoft.DotNet.HotReload.Utils.Generator/DeltaNaming.cs | Defines naming convention for emitted delta artifacts per revision. |
| src/tools/hotreload-delta-gen/Microsoft.DotNet.HotReload.Utils.Generator/Delta.cs | Defines delta input record for the generation pipeline. |
| src/tools/hotreload-delta-gen/Microsoft.DotNet.HotReload.Utils.Generator/Config.cs | Adds config model and builder for scripted/live invocation. |
| src/tools/hotreload-delta-gen/Microsoft.DotNet.HotReload.Utils.Generator/BaselineProject.cs | Adds baseline project loading and HotReloadService session setup. |
| src/tools/hotreload-delta-gen/Microsoft.DotNet.HotReload.Utils.Generator/BaselineArtifacts.cs | Defines baseline artifacts bundle passed through generation pipeline. |
| src/tools/hotreload-delta-gen/Microsoft.DotNet.HotReload.Utils.Generator.Tasks/Microsoft.DotNet.HotReload.Utils.Generator.Tasks.csproj | Adds MSBuild task project used by the new targets file. |
| src/tools/hotreload-delta-gen/Microsoft.DotNet.HotReload.Utils.Generator.Tasks/HotReloadDeltaGeneratorComputeScriptOutputs.cs | Adds MSBuild task to compute incremental inputs/outputs from the delta script. |
| src/tools/hotreload-delta-gen/Microsoft.DotNet.HotReload.Utils.Generator.Frontend/Microsoft.DotNet.HotReload.Utils.Generator.Frontend.csproj | Adds CLI frontend project for the generator. |
| src/tools/hotreload-delta-gen/Microsoft.DotNet.HotReload.Utils.Generator.Frontend/Frontend.cs | Adds argument parsing and exit-code handling for CLI invocation. |
| src/tools/hotreload-delta-gen/Microsoft.DotNet.HotReload.Utils.Generator.Data/UpdateHandlerInfo.cs | Adds JSON-serializable update handler info payload. |
| src/tools/hotreload-delta-gen/Microsoft.DotNet.HotReload.Utils.Generator.Data/Script/Json/ScriptCapabilitiesConverter.cs | Adds JSON converter to support capabilities as string or string array. |
| src/tools/hotreload-delta-gen/Microsoft.DotNet.HotReload.Utils.Generator.Data/Script/Json/Script.cs | Adds JSON model types for delta scripts. |
| src/tools/hotreload-delta-gen/Microsoft.DotNet.HotReload.Utils.Generator.Data/OutputSummary/OutputSummary.cs | Adds JSON model types for delta output summaries. |
| src/tools/hotreload-delta-gen/Microsoft.DotNet.HotReload.Utils.Generator.Data/Microsoft.DotNet.HotReload.Utils.Generator.Data.csproj | Adds data-only project for shared contracts. |
| src/tools/hotreload-delta-gen/Microsoft.DotNet.HotReload.Utils.Generator.BuildTool/README.md | Documents the build tool usage (historical/package-oriented wording). |
| src/tools/hotreload-delta-gen/Microsoft.DotNet.HotReload.Utils.Generator.BuildTool/Program.cs | Adds entrypoint forwarding to the CLI frontend. |
| src/tools/hotreload-delta-gen/Microsoft.DotNet.HotReload.Utils.Generator.BuildTool/Microsoft.DotNet.HotReload.Utils.Generator.BuildTool.csproj | Adds executable build-tool project. |
| src/tools/hotreload-delta-gen/Directory.Build.targets | Imports parent tool build targets for this tool subtree. |
| src/tools/hotreload-delta-gen/Directory.Build.props | Sets TFM/lang/nullable and disables analyzers for imported code. |
| src/tools/hotreload-delta-gen/Common/TempDirectory.cs | Adds temp directory helper. |
| src/tests/FunctionalTests/WebAssembly/Browser/HotReload/ApplyUpdateReferencedAssembly/ApplyUpdateReferencedAssembly.csproj | Switches from NuGet package reference to importing in-repo targets. |
| src/mono/sample/mbr/console/ConsoleDelta.csproj | Switches from NuGet package reference to importing in-repo targets. |
| src/libraries/System.Runtime.Loader/tests/ApplyUpdate/Directory.Build.targets | Imports in-repo hotreload delta gen targets for ApplyUpdate tests. |
| src/libraries/System.Runtime.Loader/tests/ApplyUpdate/Directory.Build.props | Removes NuGet package reference for delta generation in ApplyUpdate tests. |
| src/libraries/pretest.proj | Adds tool/task projects to pretest build ordering. |
| eng/Version.Details.xml | Removes hotreload-utils dependency entry. |
| eng/Version.Details.props | Removes hotreload-utils version properties. |
| eng/testing/hotreload-delta-gen.targets | New in-repo MSBuild targets replacing the NuGet-provided .targets. |
src/tools/hotreload-delta-gen/Microsoft.DotNet.HotReload.Utils.Generator/Util/FSWGen.cs
Show resolved
Hide resolved
src/tools/hotreload-delta-gen/Microsoft.DotNet.HotReload.Utils.Generator/Util/FSWGen.cs
Show resolved
Hide resolved
...n/Microsoft.DotNet.HotReload.Utils.Generator.Data/Script/Json/ScriptCapabilitiesConverter.cs
Show resolved
Hide resolved
...rosoft.DotNet.HotReload.Utils.Generator.Tasks/HotReloadDeltaGeneratorComputeScriptOutputs.cs
Show resolved
Hide resolved
...rosoft.DotNet.HotReload.Utils.Generator.Tasks/HotReloadDeltaGeneratorComputeScriptOutputs.cs
Show resolved
Hide resolved
...tools/hotreload-delta-gen/Microsoft.DotNet.HotReload.Utils.Generator/Runners/ScriptRunner.cs
Show resolved
Hide resolved
...tools/hotreload-delta-gen/Microsoft.DotNet.HotReload.Utils.Generator/Runners/ScriptRunner.cs
Show resolved
Hide resolved
src/tools/hotreload-delta-gen/Microsoft.DotNet.HotReload.Utils.Generator/Plan/Change.cs
Show resolved
Hide resolved
src/tools/hotreload-delta-gen/Microsoft.DotNet.HotReload.Utils.Generator/BaselineArtifacts.cs
Show resolved
Hide resolved
This was referenced Apr 3, 2026
Open
akoeplinger
approved these changes
Apr 8, 2026
thaystg
approved these changes
Apr 8, 2026
akoeplinger
approved these changes
Apr 8, 2026
...tNet.HotReload.Utils.Generator.Tasks/Microsoft.DotNet.HotReload.Utils.Generator.Tasks.csproj
Outdated
Show resolved
Hide resolved
...Microsoft.DotNet.HotReload.Utils.Generator/Microsoft.DotNet.HotReload.Utils.Generator.csproj
Outdated
Show resolved
Hide resolved
akoeplinger
reviewed
Apr 8, 2026
Co-authored-by: Alexander Köplinger <alex.koeplinger@outlook.com>
src/tools/hotreload-delta-gen/Microsoft.DotNet.HotReload.Utils.Generator/BaselineProject.cs
Show resolved
Hide resolved
src/tools/hotreload-delta-gen/Microsoft.DotNet.HotReload.Utils.Generator.Frontend/Frontend.cs
Show resolved
Hide resolved
src/tools/hotreload-delta-gen/Microsoft.DotNet.HotReload.Utils.Generator/BaselineProject.cs
Show resolved
Hide resolved
This was referenced Apr 9, 2026
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
src/tools/hotreload-delta-gen/Microsoft.DotNet.HotReload.Utils.Generator/BaselineArtifacts.cs
Show resolved
Hide resolved
This was referenced Apr 9, 2026
akoeplinger
approved these changes
Apr 10, 2026
Member
|
/ba-g unrelated infrastructure failures |
Open
1 task
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.
Copy the hotreload-utils source code from dotnet/hotreload-utils into src/tools/hotreload-delta-gen/ and replace the NuGet PackageReference with direct in-repo MSBuild targets, eliminating the cross-repo dependency.
Changes: