Merge dotnet/templating source into dotnet/sdk (Phase 1: history-preserving migration)#53647
Merge dotnet/templating source into dotnet/sdk (Phase 1: history-preserving migration)#53647MichaelSimons wants to merge 3685 commits intodotnet:mainfrom
Conversation
….0.3xx-to-main [automated] Merge branch 'release/9.0.3xx' => 'main' Commit migrated from dotnet/templating@c39beef
It got accidentally added due to a darc bug, see dotnet/arcade-services#4837 Commit migrated from dotnet/templating@d82ec8b
Delete src/arcade/eng/common directory Commit migrated from dotnet/templating@6d78307
…into merge/release/8.0.1xx-to-release/8.0.3xx Commit migrated from dotnet/templating@01c61ad
….0.1xx-to-release/8.0.3xx [automated] Merge branch 'release/8.0.1xx' => 'release/8.0.3xx' Commit migrated from dotnet/templating@e51f82c
…into merge/release/8.0.3xx-to-release/8.0.4xx Commit migrated from dotnet/templating@75cccce
….0.3xx-to-release/8.0.4xx [automated] Merge branch 'release/8.0.3xx' => 'release/8.0.4xx' Commit migrated from dotnet/templating@e3b5e04
….0.4xx-to-release/9.0.1xx Commit migrated from dotnet/templating@9514b56
…into merge/release/9.0.1xx-to-release/9.0.3xx Commit migrated from dotnet/templating@d4177d5
Commit migrated from dotnet/templating@bdbdbe9
…et/templating#9044) * Update dependencies from https://github.com/dotnet/arcade build 20250425.5 Microsoft.DotNet.Arcade.Sdk From Version 8.0.0-beta.25214.7 -> To Version 8.0.0-beta.25225.5 * Update dependencies from https://github.com/dotnet/arcade build 20250428.2 Microsoft.DotNet.Arcade.Sdk From Version 8.0.0-beta.25214.7 -> To Version 8.0.0-beta.25228.2 * Update dependencies from https://github.com/dotnet/arcade build 20250429.5 Microsoft.DotNet.Arcade.Sdk From Version 8.0.0-beta.25214.7 -> To Version 8.0.0-beta.25229.5 * Update dependencies from https://github.com/dotnet/arcade build 20250430.1 Microsoft.DotNet.Arcade.Sdk From Version 8.0.0-beta.25214.7 -> To Version 8.0.0-beta.25230.1 * Update branding to 8.0.117 * Update queue to ubuntu 2204 * [release/8.0.3xx] Update dependencies from dotnet/arcade (dotnet/templating#9014) [release/8.0.3xx] Update dependencies from dotnet/arcade - Use System.Text.Json in tests instead of unlisted log4net * [release/8.0.1xx] Update dependencies from dotnet/arcade (dotnet/templating#9013) [release/8.0.1xx] Update dependencies from dotnet/arcade - Use System.Text.Json in tests instead of unlisted log4net * Update dependencies from https://github.com/dotnet/arcade build 20250514.2 (dotnet/templating#9024) [release/8.0.1xx] Update dependencies from dotnet/arcade * Update dependencies from https://github.com/dotnet/arcade build 20250514.2 (dotnet/templating#9025) [release/8.0.3xx] Update dependencies from dotnet/arcade * Update dependencies from https://github.com/dotnet/arcade build 20250514.2 (dotnet/templating#9026) [release/8.0.4xx] Update dependencies from dotnet/arcade * Update branding to 8.0.314 * Update branding to 8.0.411 * Delete src/arcade/eng/common directory It got accidentally added due to a darc bug, see dotnet/arcade-services#4837 * Delete src/arcade/eng/common directory --------- Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com> Co-authored-by: Sean Reeser <v-seanreeser@microsoft.com> Co-authored-by: Jason Zhai <v-wuzhai@microsoft.com> Co-authored-by: dotnet-maestro[bot] <42748379+dotnet-maestro[bot]@users.noreply.github.com> Co-authored-by: Marc Paine <marcpop@microsoft.com> Co-authored-by: Alexander Köplinger <alex.koeplinger@outlook.com> Co-authored-by: Michael Yanni <MiYanni@microsoft.com> Commit migrated from dotnet/templating@05b367e
It got accidentally added due to a darc bug, see dotnet/arcade-services#4837 Commit migrated from dotnet/templating@84cec7e
….0.3xx-to-main [automated] Merge branch 'release/9.0.3xx' => 'main' Commit migrated from dotnet/templating@0dc7b80
…dtemplatediscovery We build for NetMinimum when not in source build so target that Commit migrated from dotnet/templating@5c86301
…into merge/release/9.0.1xx-to-release/9.0.3xx Commit migrated from dotnet/templating@f32b405
….0.1xx-to-release/9.0.3xx [automated] Merge branch 'release/9.0.1xx' => 'release/9.0.3xx' Commit migrated from dotnet/templating@d23a2ad
…e/release/9.0.3xx-to-main Commit migrated from dotnet/templating@437173c
….0.3xx-to-main [automated] Merge branch 'release/9.0.3xx' => 'main' Commit migrated from dotnet/templating@5715045
* [VMR] Codeflow 86117ef-dotnet/templating@be6b7b2644e786ec47f14f5a01e756a939d80494 [[ commit created by automation ]] * Update dependencies from https://github.com/dotnet/dotnet build 275021 Updated Dependencies: System.CommandLine (Version 2.0.0-beta6.25360.101 -> 2.0.0-beta7.25362.103) Microsoft.DotNet.Arcade.Sdk (Version 10.0.0-beta.25360.101 -> 10.0.0-beta.25362.103) * Update dependencies from https://github.com/dotnet/dotnet build 275039 Updated Dependencies: System.CommandLine (Version 2.0.0-beta7.25362.103 -> 2.0.0-beta7.25363.101) Microsoft.DotNet.Arcade.Sdk (Version 10.0.0-beta.25362.103 -> 10.0.0-beta.25363.101) * Ajust following the change to dotnet/command-line-api --------- Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com> Co-authored-by: Gang Wang <v-gaw@microsoft.com> Commit migrated from dotnet/templating@43d52c4
[main] Source code updates from dotnet/dotnet - Remove properties which now live in Version.Details.props - Update global.json Commit migrated from dotnet/templating@70f24cf
`FirstOrDefault` can return null, so it's not safe to dereference unconditionally. Observed while debugging VS: ``` System.NullReferenceException: Object reference not set to an instance of an object. Microsoft.TemplateEngine.Orchestrator.RunnableProjects.LocalizationModelDeserializer.LoadPostActionModels.AnonymousMethod__4_4((System.Collections.Generic.IEnumerable<string> NameParts, string LocalizedString) s) System.Linq.Enumerable.WhereSelectEnumerableIterator<(System.Collections.Generic.IEnumerable<string>, string), (System.Collections.Generic.IEnumerable<string>, string)>.MoveNext() System.Linq.Lookup<string, (System.Collections.Generic.IEnumerable<string>, string)>.Create<(System.Collections.Generic.IEnumerable<string>, string)>(System.Collections.Generic.IEnumerable<(System.Collections.Generic.IEnumerable<string>, string)> source, System.Func<(System.Collections.Generic.IEnumerable<string>, string), string> keySelector, System.Func<(System.Collections.Generic.IEnumerable<string>, string), (System.Collections.Generic.IEnumerable<string>, string)> elementSelector, System.Collections.Generic.IEqualityComparer<string> comparer) System.Linq.GroupedEnumerable<(System.Collections.Generic.IEnumerable<string>, string), string, (System.Collections.Generic.IEnumerable<string>, string)>.GetEnumerator() Microsoft.TemplateEngine.Orchestrator.RunnableProjects.LocalizationModelDeserializer.LoadManualInstructionModels(System.Collections.Generic.IEnumerable<(System.Collections.Generic.IEnumerable<string> NameParts, string LocalizedString)> strings) Microsoft.TemplateEngine.Orchestrator.RunnableProjects.LocalizationModelDeserializer.LoadPostActionModels(System.Collections.Generic.List<(string Key, string Value)> localizedStrings) Microsoft.TemplateEngine.Orchestrator.RunnableProjects.LocalizationModelDeserializer.Deserialize(Microsoft.TemplateEngine.Abstractions.Mount.IFile file) Microsoft.TemplateEngine.Orchestrator.RunnableProjects.ScannedTemplateInfo.FindLocalizations() Microsoft.TemplateEngine.Orchestrator.RunnableProjects.ScannedTemplateInfo.ScannedTemplateInfo(Microsoft.TemplateEngine.Abstractions.IEngineEnvironmentSettings settings, Microsoft.TemplateEngine.Abstractions.IGenerator generator, Microsoft.TemplateEngine.Abstractions.Mount.IFile templateFile) Microsoft.TemplateEngine.Orchestrator.RunnableProjects.RunnableProjectGenerator.GetTemplatesFromMountPointInternalAsync(Microsoft.TemplateEngine.Abstractions.Mount.IMountPoint source, System.Threading.CancellationToken cancellationToken) Microsoft.TemplateEngine.Orchestrator.RunnableProjects.RunnableProjectGenerator.Microsoft.TemplateEngine.Abstractions.IGenerator.GetTemplatesFromMountPointAsync(Microsoft.TemplateEngine.Abstractions.Mount.IMountPoint source, System.Threading.CancellationToken cancellationToken) Microsoft.TemplateEngine.Edge.Settings.Scanner.ScanMountPointForTemplatesAsync(Microsoft.TemplateEngine.Edge.Settings.Scanner.MountPointScanSource source, bool logValidationResults, bool returnInvalidTemplates, System.Threading.CancellationToken cancellationToken) Microsoft.TemplateEngine.Edge.Settings.Scanner.ScanAsync(string mountPointUri, System.Threading.CancellationToken cancellationToken) Microsoft.TemplateEngine.Edge.Settings.TemplatePackageManager.UpdateTemplateCacheAsync.AnonymousMethod__2(int index) ``` Commit migrated from dotnet/templating@3e63ae5
Commit migrated from dotnet/templating@5c71193
…-json-postaction Document new options of json post action Commit migrated from dotnet/templating@fa94156
…ionEntry working Commit migrated from dotnet/templating@5bfe50c
Commit migrated from dotnet/templating@fe1a80e
Commit migrated from dotnet/templating@16f35d1
Commit migrated from dotnet/templating@461953b
Commit migrated from dotnet/templating@4c70ec7
…otnet/templating#10007) The pipeline hardcoded net8.0 in the path to the TemplateDiscovery DLL, but the Arcade SDK NetMinimum changed from net8.0 to net10.0 in January 2026, so the DLL is no longer produced at that path. This has caused every hourly run to fail since Jan 12. Use 'dotnet run --no-build --project' instead of a hardcoded DLL path so the pipeline is TFM-agnostic and won't break when TFMs change. Also add PublishTestResults@2 task so test results from the build step are published to Azure DevOps, matching the pattern used by the CI pipelines. ### Problem <!-- Add the issue number if exists. Describe the problem otherwise. --> ### Solution <!-- Describe the solution. --> ### Checks: - [ ] Added unit tests Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Commit migrated from dotnet/templating@a861186
Contributes to dotnet/templating#9193 Summary of changes. ## 1. Enable AOT compatibility analyzers on all `src/` projects Each `.csproj` under `src/` received: ```xml <IsAotCompatible Condition="$([MSBuild]::GetTargetFrameworkIdentifier('$(TargetFramework)')) == '.NETCoreApp'">true</IsAotCompatible> ``` The condition restricts it to .NET Core TFMs, avoiding errors on `netstandard2.0` / `net472`. ## 2. Replace reflection-based JSON serialization with source-generated contexts Three new `JsonSerializerContext` files were added to eliminate AOT-unsafe `JsonSerializer.Serialize(obj)` calls: | New file | Serializable type | |---|---| | `GlobalSettingsJsonSerializerContext.cs` | `GlobalSettingsData` | | `SettingsStoreJsonSerializerContext.cs` | `SettingsStore` | | `TemplateCacheJsonSerializerContext.cs` | `TemplateCache` | The callers in `GlobalSettings.cs`, `ComponentManager.cs`, and `TemplatePackageManager.cs` were updated to use the new typed `WriteObject<T>` overload with `JsonTypeInfo<T>`. ## 3. Convert `WriteObject` to a type-safe generic In `JExtensions.cs`, the untyped `WriteObject(string, object)` was replaced with: ```csharp WriteObject<T>(string path, T obj, JsonTypeInfo<T> jsonTypeInfo) ``` This uses `JsonSerializer.Serialize(stream, obj, jsonTypeInfo)` — fully AOT-safe. ## 4. Source-gen context for `JsonEncodeValueFormFactory` In `JsonEncodeValueFormFactory.cs`, the static `JsonSerializerOptions` + `JsonSerializer.Serialize(value, options)` was replaced with a `JsonEncodeSerializerContext` using `[JsonSerializable(typeof(string))]`, calling `JsonSerializer.Serialize(value, context.String)`. ## 5. AOT suppression attributes on reflection-heavy methods Methods that inherently use reflection (assembly loading, `Type.GetType()`, `Activator.CreateInstance`) received method-level `[UnconditionalSuppressMessage]` attributes with specific IL warning codes: | File | Methods annotated | Warning codes | |---|---|---| | `ComponentManager.cs` | Constructor, `TryGetComponent<T>`, `RegisterType`, `GetType` | IL2026, IL2057, IL2067, IL2070, IL2072, IL3000, IL3050 | | `Scanner.cs` | `ScanForComponents`, `LoadAllFromPath` | IL2026 | | `ReflectionLoadProbingPath.cs` | `SelectBestMatch`, `Resolving` | IL2026 | | `Bootstrapper.cs` | `Register(Assembly)` | IL2026 | ## 6. AOT annotations on remaining unsafe shared methods `ToJsonString(object)` and `FromObject(object)` in `JExtensions.cs` received `[RequiresUnreferencedCode]` + `[RequiresDynamicCode]` attributes, propagating warnings to callers. The callers in `TemplateSearchCache.Json.cs`, `TemplateSearchData.Json.cs`, `TemplatePackageSearchData.Json.cs`, and `TemplateDiscoveryMetadata.cs` received corresponding `[UnconditionalSuppressMessage]` attributes with justifications. All attributes are guarded with `#if NET7_0_OR_GREATER` (or `#if NET` where appropriate) so they compile cleanly on older TFMs. Commit migrated from dotnet/templating@97a3783
[[ commit created by automation ]] Commit migrated from dotnet/templating@8fa3d3e
> [!NOTE] > This is a codeflow update. It may contain both source code changes from > [the VMR](https://github.com/dotnet/dotnet) > as well as dependency updates. Learn more [here](https://github.com/dotnet/dotnet/tree/main/docs/Codeflow-PRs.md). This pull request brings the following source code changes [marker]: <> (Begin:d76c7d80-5f10-46a5-b5fd-11f3249ef6fc) ## From https://github.com/dotnet/dotnet - **Subscription**: [d76c7d80-5f10-46a5-b5fd-11f3249ef6fc](https://maestro.dot.net/subscriptions?search=d76c7d80-5f10-46a5-b5fd-11f3249ef6fc) - **Build**: [20260322.8](https://dev.azure.com/dnceng/internal/_build/results?buildId=2933324) ([307311](https://maestro.dot.net/channel/8298/github:dotnet:dotnet/build/307311)) - **Date Produced**: March 23, 2026 10:34:07 AM UTC - **Commit**: [491bbab262d2f8179cf5f5651bc0689d9c12739a](dotnet/dotnet@491bbab) - **Commit Diff**: [840ea13...491bbab](dotnet/dotnet@840ea13...491bbab) - **Branch**: [main](https://github.com/dotnet/dotnet/tree/main) **Updated Dependencies** - From [11.0.0-beta.26171.106 to 11.0.0-beta.26172.108][1] - Microsoft.DotNet.Arcade.Sdk - From [3.0.0-preview.3.26171.106 to 3.0.0-preview.3.26172.108][1] - System.CommandLine [marker]: <> (End:d76c7d80-5f10-46a5-b5fd-11f3249ef6fc) [1]: dotnet/dotnet@840ea13...491bbab [marker]: <> (Start:Footer:CodeFlow PR) ## Associated changes in source repos - dotnet/aspnetcore@faf0ea0...3dafd5c - dotnet/runtime@cf53805...443d53e - dotnet/sdk@31f158e...2122e7d <details> <summary>Diff the source with this PR branch</summary> ```bash darc vmr diff --name-only https://github.com/dotnet/dotnet:491bbab262d2f8179cf5f5651bc0689d9c12739a..https://github.com/dotnet/templating:darc-main-53fc3d74-8494-46da-8cb5-8311f988ae2c ``` </details> [marker]: <> (End:Footer:CodeFlow PR) Commit migrated from dotnet/templating@bcf27d1
Commit migrated from dotnet/templating@4db7cd3
Fixes dotnet/templating#10025 ## Problem After migrating from Newtonsoft.Json to System.Text.Json, loading template.json files with duplicate case-insensitive property keys (e.g. `"Empty"` and `"empty"`) throws an `ArgumentException`: ``` System.ArgumentException: An item with the same key has already been added. Key: empty (Parameter 'key') at System.Collections.Generic.OrderedDictionary`2.Add(TKey key, TValue value) at System.Text.Json.Nodes.JsonObject.InitializeDictionary() at System.Text.Json.Nodes.JsonObject.get_Count() ... at Microsoft.TemplateEngine.Orchestrator.RunnableProjects.ConfigModel.TemplateConfigModel..ctor(...) ``` This affected MAUI templates (`maui-blazor`, `maui-blazor-solution`) which intentionally had both `"Empty"` (PascalCase backward-compat alias) and `"empty"` (lowercase) symbol definitions. ## Root Cause In `src/Shared/JExtensions.cs`, the `NodeOptions` field was configured with `PropertyNameCaseInsensitive = true`: ```csharp private static readonly JsonNodeOptions NodeOptions = new() { PropertyNameCaseInsensitive = true }; ``` This caused `JsonObject` to use a case-insensitive internal dictionary. When any operation triggered `JsonObject.InitializeDictionary()` (e.g. accessing `.Count`, iterating via `.ToList()`), it attempted to insert both `"Empty"` and `"empty"` into the same case-insensitive dictionary, throwing on the duplicate. This setting was **redundant** — all case-insensitive property lookups in the codebase already go through the `GetPropertyCaseInsensitive()` helper method, which manually performs a case-insensitive fallback search. ## Fix **File changed:** `src/Shared/JExtensions.cs` - Removed the `NodeOptions` field entirely (it only existed to set `PropertyNameCaseInsensitive = true`) - Replaced all 6 usages of `NodeOptions` in `JsonNode.Parse()` calls with `null` (uses default `JsonNodeOptions`, which is case-sensitive) This means `JsonObject` now stores properties with their original casing and uses a case-sensitive internal dictionary — which tolerates keys like `"Empty"` and `"empty"` coexisting. Case-insensitive lookups continue to work through the existing `GetPropertyCaseInsensitive()` helper. ## Test Added **File:** `test/Microsoft.TemplateEngine.Orchestrator.RunnableProjects.UnitTests/TemplateConfigTests/GenericTests.cs` Added `CanReadTemplateWithDuplicateCaseInsensitiveSymbolKeys` — a regression test that verifies a template.json with symbols `"Empty"` and `"empty"` loads without throwing. Commit migrated from dotnet/templating@791a389
…ing#10052) ## Summary `Verify.XunitV3` auto-detects `[Theory]` parameters from the xunit v3 test context and appends them to snapshot file paths. This breaks snapshot matching because TemplateVerifier already manages naming uniqueness via `ScenarioName`. It can also cause path-too-long errors, particularly in Helix where the directory structure is deeper. This is a behavioral difference between `Verify.Xunit` (xunit v2) and `Verify.XunitV3` (xunit v3) — the v2 package does not auto-append parameters, while the v3 package does regardless of test runner mode. ## Fix Switch from `UseTypeName` + `UseMethodName` to `UseFileName`, which replaces the entire type+method+parameters naming in a single call. This prevents Verify from appending auto-detected parameters. `UseFileName` is the only Verify API that fully controls the output path — there is no more targeted API to disable parameter auto-appending. Snapshot file names remain functionally identical; the parameters previously managed via `UseMethodName` are now pre-baked into the file name string. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Commit migrated from dotnet/templating@80848b3
…source migration) Copy source, tools, tests, docs, samples, template_feed, and search-cache pipeline from dotnet/templating into dotnet/sdk with full commit history preserved. Path mapping: src/ → src/TemplateEngine/ tools/ → src/TemplateEngine/Tools/ test/ → test/TemplateEngine/ docs/ → documentation/TemplateEngine/ dotnet-template-samples/ → src/TemplateEngine/Samples/ template_feed/ → template_feed/ Microsoft.TemplateEngine.sln → src/TemplateEngine/Microsoft.TemplateEngine.sln search-cache-pipeline.yml → eng/pipelines/search-cache-pipeline.yml # Conflicts: # template_feed/README.md
The dotnet-template-samples content belongs with documentation, not source.
There was a problem hiding this comment.
Pull request overview
This PR performs Phase 1 of the dotnet/templating consolidation by migrating TemplateEngine source, tests, tools, docs, and samples into dotnet/sdk with history preserved, without integrating it into the SDK build yet.
Changes:
- Added TemplateEngine source tree under
src/TemplateEngine/(core engine + abstractions + contracts). - Added TemplateEngine documentation and template samples under
documentation/TemplateEngine/. - Added supporting project files for the migrated content (e.g., TemplateEngine
.csprojfiles).
Reviewed changes
Copilot reviewed 295 out of 1707 changed files in this pull request and generated 14 comments.
Show a summary per file
| File | Description |
|---|---|
| src/TemplateEngine/Microsoft.TemplateEngine.Core/TokenConfigExtensions.cs | Adds TokenConfig helper extension APIs. |
| src/TemplateEngine/Microsoft.TemplateEngine.Core/KeysChangedEventArgs.cs | Adds event args implementation for monitored variable collections. |
| src/TemplateEngine/Microsoft.TemplateEngine.Core/FileChange.cs | Adds file-change model used during instantiation/dry-run. |
| src/TemplateEngine/Microsoft.TemplateEngine.Core/CommonOperations.cs | Adds common processor operations (whitespace trimming, consume line, etc.). |
| src/TemplateEngine/Microsoft.TemplateEngine.Core/Operations/ReplacementTokens.cs | Adds replacement token model used by operations. |
| src/TemplateEngine/Microsoft.TemplateEngine.Core/Operations/Replacement.cs | Adds “replacement” operation provider implementation. |
| src/TemplateEngine/Microsoft.TemplateEngine.Core/Operations/Phase.cs | Adds phase model for operation sequencing. |
| src/TemplateEngine/Microsoft.TemplateEngine.Core/Operations/MarkupTokens.cs | Adds markup token bundle for markup parsing operations. |
| src/TemplateEngine/Microsoft.TemplateEngine.Core/Operations/MarkupTokenMapping.cs | Adds internal mapping for markup tokens. |
| src/TemplateEngine/Microsoft.TemplateEngine.Core/Operations/ExpandVariables.cs | Adds variable expansion operation provider. |
| src/TemplateEngine/Microsoft.TemplateEngine.Core/Operations/ConditionalTokens.cs | Adds token sets for conditional processing. |
| src/TemplateEngine/Microsoft.TemplateEngine.Core/Operations/ConditionEvaluator.cs | Adds delegate type for condition evaluation callbacks. |
| src/TemplateEngine/Microsoft.TemplateEngine.Core/Matching/TriePath.cs | Adds trie evaluation path tracking type. |
| src/TemplateEngine/Microsoft.TemplateEngine.Core/Matching/TrieNode.cs | Adds trie node type. |
| src/TemplateEngine/Microsoft.TemplateEngine.Core/Matching/TrieEvaluationDriver.cs | Adds driver that advances through byte buffers while evaluating trie. |
| src/TemplateEngine/Microsoft.TemplateEngine.Core/Matching/Trie.cs | Adds trie structure implementation for token matching. |
| src/TemplateEngine/Microsoft.TemplateEngine.Core/Matching/TerminalLocation.cs | Adds match result container for terminals. |
| src/TemplateEngine/Microsoft.TemplateEngine.Core/Matching/TerminalBase.cs | Adds base terminal type for trie matches. |
| src/TemplateEngine/Microsoft.TemplateEngine.Core/Matching/OperationTerminal.cs | Adds terminal tying an IOperation to a token index. |
| src/TemplateEngine/Microsoft.TemplateEngine.Core/Expressions/UnaryScope.cs | Adds unary expression scope model. |
| src/TemplateEngine/Microsoft.TemplateEngine.Core/Expressions/BinaryScope.cs | Adds binary expression scope model. |
| src/TemplateEngine/Microsoft.TemplateEngine.Core/Expressions/TokenScope.cs | Adds expression scope for literal/ref tokens. |
| src/TemplateEngine/Microsoft.TemplateEngine.Core/Expressions/Token.cs | Adds token container used by scope builder. |
| src/TemplateEngine/Microsoft.TemplateEngine.Core/Expressions/Operators.cs | Adds operator enum used by expression evaluation. |
| src/TemplateEngine/Microsoft.TemplateEngine.Core/Expressions/IEvaluable.cs | Adds expression node interface. |
| src/TemplateEngine/Microsoft.TemplateEngine.Core/Expressions/ITypeConverter.cs | Adds type conversion abstraction for expression evaluation. |
| src/TemplateEngine/Microsoft.TemplateEngine.Core/Expressions/IOperatorMap.cs | Adds operator map abstraction used by parsers. |
| src/TemplateEngine/Microsoft.TemplateEngine.Core/Expressions/TypeConverterDelegate.cs | Adds delegate type for typed conversion callbacks. |
| src/TemplateEngine/Microsoft.TemplateEngine.Core/Expressions/ScopeBuilderHelper.cs | Adds processor extension to create scope builders. |
| src/TemplateEngine/Microsoft.TemplateEngine.Core/Expressions/Shared/VisualBasicStyleConverters.cs | Adds VB-style numeric parsing conversions. |
| src/TemplateEngine/Microsoft.TemplateEngine.Core/Expressions/Shared/CppStyleConverters.cs | Adds C++-style numeric parsing and escape encoding/decoding. |
| src/TemplateEngine/Microsoft.TemplateEngine.Core/Expressions/Shared/CoreConverters.cs | Adds shared conversion helpers (hex parsing, etc.). |
| src/TemplateEngine/Microsoft.TemplateEngine.Core/Expressions/Cpp/TokenRef.cs | Adds C++ expression token reference model. |
| src/TemplateEngine/Microsoft.TemplateEngine.Core/Expressions/Cpp/TokenFamily.cs | Adds C++ token family enum. |
| src/TemplateEngine/Microsoft.TemplateEngine.Core/Expressions/Cpp/QuotedRegionKind.cs | Adds quoted region kind enum. |
| src/TemplateEngine/Microsoft.TemplateEngine.Core/Expressions/Cpp/Operator.cs | Adds C++ operator enum. |
| src/TemplateEngine/Microsoft.TemplateEngine.Core/Microsoft.TemplateEngine.Core.csproj | Adds TemplateEngine Core project definition for multi-targeting. |
| src/TemplateEngine/Microsoft.TemplateEngine.Core.Contracts/ValueReadEventHander.cs | Adds delegate for value-read events (monitored collections). |
| src/TemplateEngine/Microsoft.TemplateEngine.Core.Contracts/KeysChangedEventHander.cs | Adds delegate for keys-changed events (monitored collections). |
| src/TemplateEngine/Microsoft.TemplateEngine.Core.Contracts/IKeysChangedEventArgs.cs | Adds (currently empty) keys-changed event args interface. |
| src/TemplateEngine/Microsoft.TemplateEngine.Core.Contracts/IValueReadEventArgs.cs | Adds value-read event args interface. |
| src/TemplateEngine/Microsoft.TemplateEngine.Core.Contracts/IVariableCollection.cs | Adds monitored variable collection contract. |
| src/TemplateEngine/Microsoft.TemplateEngine.Core.Contracts/IVariableConfig.cs | Adds variable config contract. |
| src/TemplateEngine/Microsoft.TemplateEngine.Core.Contracts/IEngineConfig.cs | Adds engine config contract used by processor state. |
| src/TemplateEngine/Microsoft.TemplateEngine.Core.Contracts/IEncodingConfig.cs | Adds encoding config contract used for token matching and variables. |
| src/TemplateEngine/Microsoft.TemplateEngine.Core.Contracts/IProcessorState.cs | Adds processor state contract used by operations. |
| src/TemplateEngine/Microsoft.TemplateEngine.Core.Contracts/IProcessor.cs | Adds processor contract for running transformations on streams. |
| src/TemplateEngine/Microsoft.TemplateEngine.Core.Contracts/IRunSpec.cs | Adds run specification contract. |
| src/TemplateEngine/Microsoft.TemplateEngine.Core.Contracts/IGlobalRunSpec.cs | Adds global run specification contract. |
| src/TemplateEngine/Microsoft.TemplateEngine.Core.Contracts/IOrchestrator.cs | Adds orchestrator contract. |
| src/TemplateEngine/Microsoft.TemplateEngine.Core.Contracts/IPathMatcher.cs | Adds path matcher contract. |
| src/TemplateEngine/Microsoft.TemplateEngine.Core.Contracts/IToken.cs | Adds token contract used by matching/operations. |
| src/TemplateEngine/Microsoft.TemplateEngine.Core.Contracts/ITokenConfig.cs | Adds token-config contract capable of generating tokens by encoding. |
| src/TemplateEngine/Microsoft.TemplateEngine.Core.Contracts/ITokenTrie.cs | Adds token trie contract for efficient token matching. |
| src/TemplateEngine/Microsoft.TemplateEngine.Core.Contracts/ITokenTrieEvaluator.cs | Adds token trie evaluator contract. |
| src/TemplateEngine/Microsoft.TemplateEngine.Core.Contracts/IOperationProvider.cs | Adds operation-provider contract. |
| src/TemplateEngine/Microsoft.TemplateEngine.Core.Contracts/IOperation.cs | Adds operation contract used by the processor. |
| src/TemplateEngine/Microsoft.TemplateEngine.Core.Contracts/IReplacementTokens.cs | Adds replacement token contract. |
| src/TemplateEngine/Microsoft.TemplateEngine.Core.Contracts/Microsoft.TemplateEngine.Core.Contracts.csproj | Adds contracts project definition. |
| src/TemplateEngine/Microsoft.TemplateEngine.Core.Contracts/PublicAPI.Unshipped.txt | Adds PublicAPI analyzer baseline for new contracts APIs. |
| src/TemplateEngine/Microsoft.TemplateEngine.Abstractions/ChangeKind.cs | Adds file-change kind enum for instantiation results/dry-run. |
| src/TemplateEngine/Microsoft.TemplateEngine.Abstractions/IVariableCollection.cs | Adds base variable collection contract used by the engine. |
| src/TemplateEngine/Microsoft.TemplateEngine.Abstractions/TemplateParameterPriority.cs | Adds legacy parameter priority enum (obsolete). |
| src/TemplateEngine/Microsoft.TemplateEngine.Abstractions/TemplateParameterPrecedenceExtensions.cs | Adds conversion extensions between legacy priority and new precedence. |
| src/TemplateEngine/Microsoft.TemplateEngine.Abstractions/PrecedenceDefinition.cs | Adds precedence definition enum. |
| src/TemplateEngine/Microsoft.TemplateEngine.Abstractions/EvaluatedPrecedence.cs | Adds evaluated precedence enum. |
| src/TemplateEngine/Microsoft.TemplateEngine.Abstractions/ParameterChoice.cs | Adds parameter choice model. |
| src/TemplateEngine/Microsoft.TemplateEngine.Abstractions/ParameterChoiceLocalizationModel.cs | Adds localization model for parameter choices. |
| src/TemplateEngine/Microsoft.TemplateEngine.Abstractions/IAllowDefaultIfOptionWithoutValue.cs | Adds legacy interface for default-if-no-value behavior (obsolete). |
| src/TemplateEngine/Microsoft.TemplateEngine.Abstractions/IBaselineInfo.cs | Adds baseline info contract. |
| src/TemplateEngine/Microsoft.TemplateEngine.Abstractions/ICacheParameter.cs | Adds legacy cache parameter contract (obsolete). |
| src/TemplateEngine/Microsoft.TemplateEngine.Abstractions/ICacheTag.cs | Adds legacy cache tag contract (obsolete). |
| src/TemplateEngine/Microsoft.TemplateEngine.Abstractions/IComponentManager.cs | Adds component manager contract. |
| src/TemplateEngine/Microsoft.TemplateEngine.Abstractions/IEnvironment.cs | Adds environment abstraction for host integration. |
| src/TemplateEngine/Microsoft.TemplateEngine.Abstractions/IEngineEnvironmentSettings.cs | Adds environment settings contract (host, paths, components). |
| src/TemplateEngine/Microsoft.TemplateEngine.Abstractions/IFileChange.cs | Adds file-change contracts for instantiation effects. |
| src/TemplateEngine/Microsoft.TemplateEngine.Abstractions/ICreationEffects.cs | Adds creation effects contracts (v1 and v2). |
| src/TemplateEngine/Microsoft.TemplateEngine.Abstractions/ICreationPath.cs | Adds primary output path contract. |
| src/TemplateEngine/Microsoft.TemplateEngine.Abstractions/ICreationResult.cs | Adds creation result contract (post actions + outputs). |
| src/TemplateEngine/Microsoft.TemplateEngine.Abstractions/IIdentifiedComponent.cs | Adds identified component contract (Guid Id). |
| src/TemplateEngine/Microsoft.TemplateEngine.Abstractions/ILocalizationLocator.cs | Adds localization locator contract. |
| src/TemplateEngine/Microsoft.TemplateEngine.Abstractions/IParameterSet.cs | Adds legacy parameter set contract (obsolete). |
| src/TemplateEngine/Microsoft.TemplateEngine.Abstractions/IParameterSymbolLocalizationModel.cs | Adds parameter localization model contract. |
| src/TemplateEngine/Microsoft.TemplateEngine.Abstractions/IPathInfo.cs | Adds common paths contract for engine settings. |
| src/TemplateEngine/Microsoft.TemplateEngine.Abstractions/IPostAction.cs | Adds post action contract. |
| src/TemplateEngine/Microsoft.TemplateEngine.Abstractions/IPrioritizedComponent.cs | Adds prioritized component contract. |
| src/TemplateEngine/Microsoft.TemplateEngine.Abstractions/IScanTemplateInfo.cs | Adds scan template info contract. |
| src/TemplateEngine/Microsoft.TemplateEngine.Abstractions/ISearchPackFilter.cs | Adds legacy search pack filter contract (obsolete). |
| src/TemplateEngine/Microsoft.TemplateEngine.Abstractions/ISettingsLoader.cs | Adds legacy settings loader contract (obsolete). |
| src/TemplateEngine/Microsoft.TemplateEngine.Abstractions/IShortNameList.cs | Adds legacy short-name list contract (obsolete). |
| src/TemplateEngine/Microsoft.TemplateEngine.Abstractions/ISimpleConfigModifiers.cs | Adds legacy simple config modifiers contract (obsolete). |
| src/TemplateEngine/Microsoft.TemplateEngine.Abstractions/ITemplate.cs | Adds template contract (metadata + validation + generator + mount). |
| src/TemplateEngine/Microsoft.TemplateEngine.Abstractions/ITemplateInfo.cs | Adds template info contract (metadata + locator). |
| src/TemplateEngine/Microsoft.TemplateEngine.Abstractions/ITemplateLocator.cs | Adds template locator contracts. |
| src/TemplateEngine/Microsoft.TemplateEngine.Abstractions/ITemplateParameter.cs | Adds template parameter contract (priority/precedence, defaults, etc.). |
| src/TemplateEngine/Microsoft.TemplateEngine.Abstractions/IValidationEntry.cs | Adds validation entry contract. |
| src/TemplateEngine/Microsoft.TemplateEngine.Abstractions/IValidationInfo.cs | Adds validation info contract. |
| src/TemplateEngine/Microsoft.TemplateEngine.Abstractions/Microsoft.TemplateEngine.Abstractions.csproj | Adds abstractions project definition. |
| src/TemplateEngine/Microsoft.TemplateEngine.Abstractions/PhysicalFileSystem/IFileLastWriteTimeSource.cs | Adds legacy file timestamp source (obsolete). |
| src/TemplateEngine/Microsoft.TemplateEngine.Abstractions/Parameters/DataSource.cs | Adds parameter value data source enum. |
| src/TemplateEngine/Microsoft.TemplateEngine.Abstractions/Parameters/IParameterDefinitionSet.cs | Adds parameter definition set contract. |
| src/TemplateEngine/Microsoft.TemplateEngine.Abstractions/Parameters/IParameterSetData.cs | Adds merged/bound parameter set contract. |
| src/TemplateEngine/Microsoft.TemplateEngine.Abstractions/Parameters/ParameterData.cs | Adds parameter instance data model. |
| src/TemplateEngine/Microsoft.TemplateEngine.Abstractions/Parameters/ParameterDefinitionSet.cs | Adds parameter definition set implementation. |
| src/TemplateEngine/Microsoft.TemplateEngine.Abstractions/Parameters/ParameterSetDataExtensions.cs | Adds IParameterSetData convenience extensions. |
| src/TemplateEngine/Microsoft.TemplateEngine.Abstractions/TemplateFiltering/ITemplateMatchInfo.cs | Adds template match info contract for filtering results. |
| src/TemplateEngine/Microsoft.TemplateEngine.Abstractions/TemplateFiltering/MatchKind.cs | Adds filter match kind enum. |
| src/TemplateEngine/Microsoft.TemplateEngine.Abstractions/TemplatePackage/ITemplatePackage.cs | Adds template package contract. |
| src/TemplateEngine/Microsoft.TemplateEngine.Abstractions/TemplatePackage/ITemplatePackageProvider.cs | Adds template package provider contract. |
| src/TemplateEngine/Microsoft.TemplateEngine.Abstractions/TemplatePackage/ITemplatePackageProviderFactory.cs | Adds provider factory contract. |
| src/TemplateEngine/Microsoft.TemplateEngine.Abstractions/TemplatePackage/IManagedTemplatePackage.cs | Adds managed template package contract. |
| src/TemplateEngine/Microsoft.TemplateEngine.Abstractions/TemplatePackage/IManagedTemplatePackageProvider.cs | Adds managed template package provider contract. |
| src/TemplateEngine/Microsoft.TemplateEngine.Abstractions/TemplatePackage/TemplatePackage.cs | Adds basic template package implementation. |
| src/TemplateEngine/Microsoft.TemplateEngine.Abstractions/Installer/IInstallerFactory.cs | Adds installer factory contract. |
| src/TemplateEngine/Microsoft.TemplateEngine.Abstractions/Installer/ISerializableInstaller.cs | Adds serialization contract for built-in providers. |
| src/TemplateEngine/Microsoft.TemplateEngine.Abstractions/Installer/InstallRequest.cs | Adds install request model. |
| src/TemplateEngine/Microsoft.TemplateEngine.Abstractions/Installer/InstallResult.cs | Adds install result model. |
| src/TemplateEngine/Microsoft.TemplateEngine.Abstractions/Installer/UpdateRequest.cs | Adds update request model. |
| src/TemplateEngine/Microsoft.TemplateEngine.Abstractions/Installer/UninstallResult.cs | Adds uninstall result model. |
| src/TemplateEngine/Microsoft.TemplateEngine.Abstractions/Installer/InstallerConstants.cs | Adds installer constants used by default installers. |
| src/TemplateEngine/Microsoft.TemplateEngine.Abstractions/Installer/InstallerErrorCode.cs | Adds installer error codes. |
| src/TemplateEngine/Microsoft.TemplateEngine.Abstractions/Installer/InstallerOperationResult.cs | Adds base operation result model. |
| src/TemplateEngine/Microsoft.TemplateEngine.Abstractions/Installer/TemplatePackageData.cs | Adds serialized template package data model. |
| src/TemplateEngine/Microsoft.TemplateEngine.Abstractions/Installer/VulnerabilityInfo.cs | Adds vulnerability info record struct. |
| src/TemplateEngine/Microsoft.TemplateEngine.Abstractions/Mount/IDirectory.cs | Adds mount directory abstraction. |
| src/TemplateEngine/Microsoft.TemplateEngine.Abstractions/Mount/IFile.cs | Adds mount file abstraction. |
| src/TemplateEngine/Microsoft.TemplateEngine.Abstractions/Mount/IFileSystemInfo.cs | Adds mount FS entry abstraction. |
| src/TemplateEngine/Microsoft.TemplateEngine.Abstractions/Mount/IMountPoint.cs | Adds mount point abstraction. |
| src/TemplateEngine/Microsoft.TemplateEngine.Abstractions/Mount/IMountPointFactory.cs | Adds mount point factory abstraction. |
| src/TemplateEngine/Microsoft.TemplateEngine.Abstractions/Mount/IMountPointManager.cs | Adds legacy mount point manager abstraction (obsolete). |
| src/TemplateEngine/Microsoft.TemplateEngine.Abstractions/Mount/FileSystemInfoKind.cs | Adds mount entry kind enum. |
| src/TemplateEngine/Microsoft.TemplateEngine.Abstractions/Constraints/ITemplateConstraint.cs | Adds template constraint contract. |
| src/TemplateEngine/Microsoft.TemplateEngine.Abstractions/Constraints/ITemplateConstraintFactory.cs | Adds template constraint factory contract. |
| src/TemplateEngine/Microsoft.TemplateEngine.Abstractions/Constraints/TemplateConstraintInfo.cs | Adds constraint definition model. |
| src/TemplateEngine/Microsoft.TemplateEngine.Abstractions/Components/IBindSymbolSource.cs | Adds bind symbol source component contract. |
| src/TemplateEngine/Microsoft.TemplateEngine.Abstractions/Components/ISdkInfoProvider.cs | Adds SDK info provider component contract. |
| src/TemplateEngine/Microsoft.TemplateEngine.Abstractions/Components/IWorkloadsInfoProvider.cs | Adds workloads info provider component contract. |
| src/TemplateEngine/Microsoft.TemplateEngine.Abstractions/Components/WorkloadInfo.cs | Adds workload info model. |
| documentation/TemplateEngine/Home.md | Adds TemplateEngine documentation landing page. |
| documentation/TemplateEngine/Blog-posts.md | Adds list of community blog posts related to templating. |
| documentation/TemplateEngine/authoring-tools/Authoring-Tools.md | Adds authoring tools overview doc. |
| documentation/TemplateEngine/Samples/README.md | Adds template samples overview/readme. |
| documentation/TemplateEngine/Samples/Microsoft.TemplateEngine.Samples.csproj | Adds packaging project for samples content. |
| documentation/TemplateEngine/Samples/content/17-rename-file/README.md | Adds sample 17 README and content. |
| documentation/TemplateEngine/Samples/content/17-rename-file/MyProject.Con/Program.cs | Adds sample 17 project content. |
| documentation/TemplateEngine/Samples/content/17-rename-file/MyProject.Con/MyProject.Con.csproj | Adds sample 17 project content. |
| documentation/TemplateEngine/Samples/content/17-rename-file/MyProject.Con/FileToRename.cs | Adds sample 17 project content. |
| documentation/TemplateEngine/Samples/content/17-rename-file/MyProject.Con/.template.config/template.json | Adds sample 17 template definition. |
| documentation/TemplateEngine/Samples/content/16-string-value-transform/README.md | Adds sample 16 README and content. |
| documentation/TemplateEngine/Samples/content/16-string-value-transform/MyProject.Con/Program.cs | Adds sample 16 project content. |
| documentation/TemplateEngine/Samples/content/16-string-value-transform/MyProject.Con/MyProject.Con.csproj | Adds sample 16 project content. |
| documentation/TemplateEngine/Samples/content/16-string-value-transform/MyProject.Con/.template.config/template.json | Adds sample 16 template definition. |
| documentation/TemplateEngine/Samples/content/15-computed-symbol/README.md | Adds sample 15 README and content. |
| documentation/TemplateEngine/Samples/content/15-computed-symbol/MyProject.Con/Program.cs | Adds sample 15 project content. |
| documentation/TemplateEngine/Samples/content/15-computed-symbol/MyProject.Con/MyProject.Con.csproj | Adds sample 15 project content. |
| documentation/TemplateEngine/Samples/content/15-computed-symbol/MyProject.Con/.template.config/template.json | Adds sample 15 template definition. |
| documentation/TemplateEngine/Samples/content/14-guid/README.md | Adds sample 14 README and content. |
| documentation/TemplateEngine/Samples/content/14-guid/MyProject.Con/Program.cs | Adds sample 14 project content. |
| documentation/TemplateEngine/Samples/content/14-guid/MyProject.Con/MyProject.Con.csproj | Adds sample 14 project content. |
| documentation/TemplateEngine/Samples/content/14-guid/MyProject.Con/.template.config/template.json | Adds sample 14 template definition. |
| documentation/TemplateEngine/Samples/content/13-constant-value/README.md | Adds sample 13 README and content. |
| documentation/TemplateEngine/Samples/content/13-constant-value/MyProject.Con/Program.cs | Adds sample 13 project content. |
| documentation/TemplateEngine/Samples/content/13-constant-value/MyProject.Con/MyProject.Con.csproj | Adds sample 13 project content. |
| documentation/TemplateEngine/Samples/content/13-constant-value/MyProject.Con/.template.config/template.json | Adds sample 13 template definition. |
| documentation/TemplateEngine/Samples/content/12-random-number/README.md | Adds sample 12 README and content. |
| documentation/TemplateEngine/Samples/content/12-random-number/MyProject.Con/Program.cs | Adds sample 12 project content. |
| documentation/TemplateEngine/Samples/content/12-random-number/MyProject.Con/MyProject.Con.csproj | Adds sample 12 project content. |
| documentation/TemplateEngine/Samples/content/12-random-number/MyProject.Con/.template.config/template.json | Adds sample 12 template definition. |
| documentation/TemplateEngine/Samples/content/11-change-string-casing/README.md | Adds sample 11 README and content. |
| documentation/TemplateEngine/Samples/content/11-change-string-casing/MyProject.Con/Program.cs | Adds sample 11 project content. |
| documentation/TemplateEngine/Samples/content/11-change-string-casing/MyProject.Con/MyProject.Con.csproj | Adds sample 11 project content. |
| documentation/TemplateEngine/Samples/content/11-change-string-casing/MyProject.Con/.template.config/template.json | Adds sample 11 template definition. |
| documentation/TemplateEngine/Samples/content/10-symbol-from-date/README.md | Adds sample 10 README and content. |
| documentation/TemplateEngine/Samples/content/10-symbol-from-date/MyProject.Con/Program.cs | Adds sample 10 project content. |
| documentation/TemplateEngine/Samples/content/10-symbol-from-date/MyProject.Con/MyProject.Con.csproj | Adds sample 10 project content. |
| documentation/TemplateEngine/Samples/content/10-symbol-from-date/MyProject.Con/.template.config/template.json | Adds sample 10 template definition. |
| documentation/TemplateEngine/Samples/content/09-replace-onlyif-after/README.md | Adds sample 09 README and content. |
| documentation/TemplateEngine/Samples/content/09-replace-onlyif-after/MyProject.Con/site.css | Adds sample 09 content for onlyIf matching. |
| documentation/TemplateEngine/Samples/content/09-replace-onlyif-after/MyProject.Con/contact.txt | Adds sample 09 content. |
| documentation/TemplateEngine/Samples/content/09-replace-onlyif-after/MyProject.Con/Program.cs | Adds sample 09 project content. |
| documentation/TemplateEngine/Samples/content/09-replace-onlyif-after/MyProject.Con/MyProject.Con.csproj | Adds sample 09 project content. |
| documentation/TemplateEngine/Samples/content/09-replace-onlyif-after/MyProject.Con/.template.config/template.json | Adds sample 09 template definition. |
| documentation/TemplateEngine/Samples/content/08-restore-on-create/README.md | Adds sample 08 README and content. |
| documentation/TemplateEngine/Samples/content/08-restore-on-create/MyProject.Con.CSharp/Program.cs | Adds sample 08 project content. |
| documentation/TemplateEngine/Samples/content/08-restore-on-create/MyProject.Con.CSharp/MyProject.Con.csproj | Adds sample 08 project content. |
| documentation/TemplateEngine/Samples/content/08-restore-on-create/MyProject.Con.CSharp/.template.config/template.json | Adds sample 08 template definition. |
| documentation/TemplateEngine/Samples/content/08-restore-on-create/MyProject.Con.CSharp/.template.config/dotnetcli.host.json | Adds sample 08 CLI host config. |
| documentation/TemplateEngine/Samples/content/07-param-with-custom-short-name/README.md | Adds sample 07 README and content. |
| documentation/TemplateEngine/Samples/content/07-param-with-custom-short-name/MyProject.Con/contact.txt | Adds sample 07 content. |
| documentation/TemplateEngine/Samples/content/07-param-with-custom-short-name/MyProject.Con/Program.cs | Adds sample 07 project content. |
| documentation/TemplateEngine/Samples/content/07-param-with-custom-short-name/MyProject.Con/MyProject.Con.csproj | Adds sample 07 project content. |
| documentation/TemplateEngine/Samples/content/07-param-with-custom-short-name/MyProject.Con/.template.config/template.json | Adds sample 07 template definition. |
| documentation/TemplateEngine/Samples/content/07-param-with-custom-short-name/MyProject.Con/.template.config/dotnetcli.host.json | Adds sample 07 CLI host config. |
| documentation/TemplateEngine/Samples/content/06-console-csharp-fsharp/README.md | Adds sample 06 README and content. |
| documentation/TemplateEngine/Samples/content/06-console-csharp-fsharp/MyProject.Con.FSharp/Program.fs | Adds sample 06 F# content. |
| documentation/TemplateEngine/Samples/content/06-console-csharp-fsharp/MyProject.Con.FSharp/MyProject.Con.fsproj | Adds sample 06 F# project content. |
| documentation/TemplateEngine/Samples/content/06-console-csharp-fsharp/MyProject.Con.FSharp/.template.config/template.json | Adds sample 06 F# template definition. |
| documentation/TemplateEngine/Samples/content/06-console-csharp-fsharp/MyProject.Con.CSharp/Program.cs | Adds sample 06 C# content. |
| documentation/TemplateEngine/Samples/content/06-console-csharp-fsharp/MyProject.Con.CSharp/MyProject.Con.csproj | Adds sample 06 C# project content. |
| documentation/TemplateEngine/Samples/content/06-console-csharp-fsharp/MyProject.Con.CSharp/.template.config/template.json | Adds sample 06 C# template definition. |
| documentation/TemplateEngine/Samples/content/05-multi-project/README.md | Adds sample 05 README and content. |
| documentation/TemplateEngine/Samples/content/05-multi-project/MyProject.Console/Sample.cs | Adds sample 05 project content. |
| documentation/TemplateEngine/Samples/content/05-multi-project/MyProject.Console/MyProject.Console.csproj | Adds sample 05 project content. |
| documentation/TemplateEngine/Samples/content/05-multi-project/MyProject.Console.Test/MyTest.cs | Adds sample 05 test project content. |
| documentation/TemplateEngine/Samples/content/05-multi-project/MyProject.Console.Test/MyProject.Console.Test.csproj | Adds sample 05 test project content. |
| documentation/TemplateEngine/Samples/content/05-multi-project/.template.config/template.json | Adds sample 05 template definition. |
| documentation/TemplateEngine/Samples/content/04-parameter-from-list/README.md | Adds sample 04 README and content. |
| documentation/TemplateEngine/Samples/content/04-parameter-from-list/MyProject.Con/contact.txt | Adds sample 04 content. |
| documentation/TemplateEngine/Samples/content/04-parameter-from-list/MyProject.Con/Program.cs | Adds sample 04 project content. |
| documentation/TemplateEngine/Samples/content/04-parameter-from-list/MyProject.Con/MyProject.Con.csproj | Adds sample 04 project content. |
| documentation/TemplateEngine/Samples/content/04-parameter-from-list/MyProject.Con/.template.config/template.json | Adds sample 04 template definition. |
| documentation/TemplateEngine/Samples/content/03-optional-page/README.md | Adds sample 03 README and content. |
| documentation/TemplateEngine/Samples/content/03-optional-page/MyProject.StarterWeb/appsettings.json | Adds sample 03 web content. |
| documentation/TemplateEngine/Samples/content/03-optional-page/MyProject.StarterWeb/appsettings.Development.json | Adds sample 03 web content. |
| documentation/TemplateEngine/Samples/content/03-optional-page/MyProject.StarterWeb/Views/_ViewStart.cshtml | Adds sample 03 web content. |
| documentation/TemplateEngine/Samples/content/03-optional-page/MyProject.StarterWeb/Views/_ViewImports.cshtml | Adds sample 03 web content. |
| documentation/TemplateEngine/Samples/content/03-optional-page/MyProject.StarterWeb/Views/Shared/_Layout.cshtml | Adds sample 03 web content. |
| documentation/TemplateEngine/Samples/content/03-optional-page/MyProject.StarterWeb/Views/Shared/Error.cshtml | Adds sample 03 web content. |
| documentation/TemplateEngine/Samples/content/03-optional-page/MyProject.StarterWeb/Views/Home/Index.cshtml | Adds sample 03 web content. |
| documentation/TemplateEngine/Samples/content/03-optional-page/MyProject.StarterWeb/Views/Home/Contact.cshtml | Adds sample 03 web content. |
| documentation/TemplateEngine/Samples/content/03-optional-page/MyProject.StarterWeb/Views/Home/About.cshtml | Adds sample 03 web content. |
| documentation/TemplateEngine/Samples/content/03-optional-page/MyProject.StarterWeb/Startup.cs | Adds sample 03 web content. |
| documentation/TemplateEngine/Samples/content/03-optional-page/MyProject.StarterWeb/Program.cs | Adds sample 03 web content. |
| documentation/TemplateEngine/Samples/content/03-optional-page/MyProject.StarterWeb/MyProject.StarterWeb.csproj | Adds sample 03 web project content. |
| documentation/TemplateEngine/Samples/content/03-optional-page/MyProject.StarterWeb/Controllers/HomeController.cs | Adds sample 03 web content. |
| documentation/TemplateEngine/Samples/content/03-optional-page/MyProject.StarterWeb/.template.config/template.json | Adds sample 03 template definition. |
| documentation/TemplateEngine/Samples/content/02-add-parameters/README.md | Adds sample 02 README and content. |
| documentation/TemplateEngine/Samples/content/02-add-parameters/MyProject.Con/Program.cs | Adds sample 02 project content. |
| documentation/TemplateEngine/Samples/content/02-add-parameters/MyProject.Con/MyProject.Con.csproj | Adds sample 02 project content. |
| documentation/TemplateEngine/Samples/content/02-add-parameters/MyProject.Con/.template.config/template.json | Adds sample 02 template definition. |
| documentation/TemplateEngine/Samples/content/01-basic-template/README.md | Adds sample 01 README and content. |
| documentation/TemplateEngine/Samples/content/01-basic-template/MyProject.Con/Program.cs | Adds sample 01 project content. |
| documentation/TemplateEngine/Samples/content/01-basic-template/MyProject.Con/MyProject.Con.csproj | Adds sample 01 project content. |
| documentation/TemplateEngine/Samples/content/01-basic-template/MyProject.Con/.template.config/template.json | Adds sample 01 template definition. |
src/TemplateEngine/Microsoft.TemplateEngine.Core.Contracts/IKeysChangedEventArgs.cs
Show resolved
Hide resolved
src/TemplateEngine/Microsoft.TemplateEngine.Core/Operations/ExpandVariables.cs
Show resolved
Hide resolved
src/TemplateEngine/Microsoft.TemplateEngine.Core/Operations/ExpandVariables.cs
Show resolved
Hide resolved
src/TemplateEngine/Microsoft.TemplateEngine.Core/Operations/Replacement.cs
Show resolved
Hide resolved
src/TemplateEngine/Microsoft.TemplateEngine.Core/Operations/Replacement.cs
Show resolved
Hide resolved
src/TemplateEngine/Microsoft.TemplateEngine.Abstractions/PrecedenceDefinition.cs
Show resolved
Hide resolved
src/TemplateEngine/Microsoft.TemplateEngine.Core.Contracts/ValueReadEventHander.cs
Show resolved
Hide resolved
src/TemplateEngine/Microsoft.TemplateEngine.Core.Contracts/KeysChangedEventHander.cs
Show resolved
Hide resolved
documentation/TemplateEngine/Samples/content/16-string-value-transform/README.md
Show resolved
Hide resolved
documentation/TemplateEngine/Samples/content/15-computed-symbol/MyProject.Con/Program.cs
Show resolved
Hide resolved
The test project discovery globs in UnitTests.proj match TemplateEngine test projects under test/TemplateEngine/. These projects are not compatible with the SDK's XUnitRunner.targets infrastructure, causing Helix test failures. Add TemplateEngine\**\* to the exclude lists.
The template_feed/Microsoft.TemplateEngine.Authoring.Templates directory adds template.json and templatepack templates that now appear in tab completion results.
|
This import causes GitHub to treat the issue and PR numbers in the commit messages as referring to the wrong repository. For example, One way to make that less confusing would be to add trailers referring to the commits in the original repository, so that the links to issues and pull requests could be followed from there (assuming the original repository will be just archived rather than deleted). This would also let people find and read any comments on the original commits. It would be even nicer to inject the repository name or URL into the issue and PR numbers in commit messages, but I don't know how well that would work if issues are later moved from |
mmitche
left a comment
There was a problem hiding this comment.
Looks generally good. There do appear to be some missing dirs:
- https://github.com/dotnet/templating/tree/main/dotnet-template-samples - It has a few important bits (version file info, signing info, etc.)
- eng dir - Version info, publishing and signing.
- Root README and other similar files.
|
MiYanni
left a comment
There was a problem hiding this comment.
Structure looks good to me. Definitely makes sense to not pull eng files forward. That required some level of... massaging when moving dotnet/installer into this repo. So, I expect some level of that here too.
b741251 to
0e4a8a6
Compare
|
After discussing with @mmitche and the feedback from https://github.com/KalleOlaviNiemitalo, I re-wrote the migrated commit messages and appended a "Commit migrated from https://github.com/dotnet/templating/commit/" message to the end. This makes traversal of the history better. |
If you want to go one step further, rewriting the #NNNN to dotnet/templating#NNNN would also help. |
0e4a8a6 to
df8b505
Compare
Done. Pushed. All 3,681 templating commits now have: #NNN → dotnet/templating#NNN (1,229 references) |
Related to: dotnet/templating#10085
Summary
This PR copies the source, tests, tools, documentation, and supporting files from
dotnet/templatingintodotnet/sdkwith full commit history preserved. This is Phase 1 of the templating consolidation — source migration only, with no build integration yet.What's included
None of the migrated content is wired into the SDK build. The projects are not referenced in
sdk.slnxorsource-build.slnf, so they sit inert in the tree. Build integration will come in subsequent check-ins (Phase 2).Path mapping
dotnet/templating)dotnet/sdk)src/src/TemplateEngine/tools/src/TemplateEngine/Tools/test/test/TemplateEngine/template_feed/template_feed/(merged with existing)docs/documentation/TemplateEngine/dotnet-template-samples/documentation/TemplateEngine/Samples/Microsoft.TemplateEngine.slnsrc/TemplateEngine/Microsoft.TemplateEngine.slnsearch-cache-pipeline.ymleng/pipelines/search-cache-pipeline.ymlRepo scaffolding files (LICENSE, README, CODEOWNERS, Directory.Build.props, azure-pipelines*.yml, etc.) were intentionally excluded. Their contents will be merged into the corresponding SDK files in a later phase.
How history was preserved
dotnet/templatingto a temporary directory.git filter-repoto keep only the paths listed above and rename them to their SDK destinations:--allow-unrelated-histories, producing a two-parent merge commit.template_feed/README.md— kept the SDK version (the templating version was a redirect).The result preserves 3,681 commits from
dotnet/templating.git log --followtraces individual files back through the original templating history.Validation