From 9ac6af56369ea0cca382ad5814de98b3fad548d2 Mon Sep 17 00:00:00 2001 From: Kieron Lanning Date: Wed, 2 Sep 2026 22:35:05 +0100 Subject: [PATCH 1/2] feat: updated packable defaults --- README.md | 6 +- .../sdk-configuration-reference/SKILL.md | 4 +- .../SKILL.md | 7 + src/src/DotNetProjectSdk/Sdk/Sdk.props | 17 +- src/src/DotNetProjectSdk/Sdk/Sdk.targets | 49 +++++ .../RoslynComponentDefaultsTests.cs | 191 +++++++++++++++++- 6 files changed, 259 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index d1e8a50..27d8730 100644 --- a/README.md +++ b/README.md @@ -227,7 +227,7 @@ Version detection logging is disabled by default. Set `VersionDetectionLogEnable | `NamespacePrefix` | *(required)* | Root namespace prefix, e.g. `Acme`. Results in `Acme.MyProject`. | | `DisableNamespacePrefixCheck` | `false` | Set to `true` to suppress the build error for missing `NamespacePrefix`. | | `TargetFramework` | `net10.0` | Override the default TFM per-project or globally. Defaults to `netstandard2.0` for projects declaring `IsRoslynComponent=true`. | -| `IsRoslynComponent` | `false` | When explicitly `true`, applies source-generator defaults for a single `netstandard2.0` target, analyzer rules, SourceLink, generated-file output, dependency output, symbol packaging, telemetry exclusion, and package build output. | +| `IsRoslynComponent` | `false` | When explicitly `true`, applies source-generator defaults: a single `netstandard2.0` target, `LangVersion=latest`, `Nullable=enable`, `TreatWarningsAsErrors=true`, extended analyzer rules, SourceLink, generated-file output, dependency output, symbol packaging (`IncludeSymbols=false` by default), telemetry exclusion, and package build output. Packable Roslyn components automatically pack the built analyzer assembly (and its PDB) into `analyzers/dotnet/cs/`. Roslyn development dependencies (`Microsoft.CodeAnalysis.*`, `Microsoft.CodeAnalysis.Analyzers`) default to `PrivateAssets="all"`. | | `PackProjectReferencedSourceGenerators` | `true` | Automatically packs analyzer `ProjectReference` outputs and their runtime dependencies under `analyzers/dotnet/cs/`. Set to `false` to opt out; set `Pack="false"` on an individual reference to exclude only that generator. | | `SourceLinkPackageName` | `Microsoft.SourceLink.GitHub` | SourceLink provider. Set to `Microsoft.SourceLink.AzureDevOps.Git` for ADO repos. | | `DisableSourceLink` | `false` | Set to `true` to stop the SDK from adding the configured SourceLink package automatically. | @@ -243,8 +243,8 @@ For projects where `IsPackable=true`, the SDK provides these defaults **only whe | Property | Default | Description | | -- | -- | -- | | `GenerateDocumentationFile` | `true` | Emits XML documentation. | -| `IncludeSymbols` | `true` | Produces a symbol package. | -| `SymbolPackageFormat` | `snupkg` | Symbol package format (`symbols.nupkg` for Roslyn components). | +| `IncludeSymbols` | `true` | Produces a symbol package (`false` for Roslyn components — their PDB ships in `analyzers/dotnet/cs/` instead). | +| `SymbolPackageFormat` | `snupkg` | Symbol package format. Always the modern `.snupkg`; the legacy `.symbols.nupkg` is never produced by default. | | `PublishRepositoryUrl` | `true` | Publishes the repository URL. | | `EmbedUntrackedSources` | `true` | Embeds untracked sources for SourceLink. | | `DebugType` | `portable` | Ensures portable PDBs for symbol-package delivery. | diff --git a/src/src/DotNetProjectSdk/Sdk/.agents/skills/sdk-configuration-reference/SKILL.md b/src/src/DotNetProjectSdk/Sdk/.agents/skills/sdk-configuration-reference/SKILL.md index 25e0657..7e60ecb 100644 --- a/src/src/DotNetProjectSdk/Sdk/.agents/skills/sdk-configuration-reference/SKILL.md +++ b/src/src/DotNetProjectSdk/Sdk/.agents/skills/sdk-configuration-reference/SKILL.md @@ -44,7 +44,7 @@ These are the most important configurable properties exposed by the SDK: - `NamespacePrefix` — required unless `DisableNamespacePrefixCheck=true` - `DisableNamespacePrefixCheck` — default `false` - `TargetFramework` — defaults to `net10.0` when neither `TargetFramework` nor `TargetFrameworks` is set; projects explicitly declaring `IsRoslynComponent=true` default to `netstandard2.0` -- `IsRoslynComponent` — when explicitly `true`, applies source-generator defaults: a single `netstandard2.0` target, extended analyzer rules, disabled SourceLink and untracked-source embedding, no dependency file, compiler-generated output under the framework-specific intermediate directory, `symbols.nupkg`, `PackSourceGeneratorSymbols`, telemetry exclusion, and excluded normal build output +- `IsRoslynComponent` — when explicitly `true`, applies source-generator defaults: a single `netstandard2.0` target, `LangVersion=latest`, `Nullable=enable`, `TreatWarningsAsErrors=true`, extended analyzer rules, disabled SourceLink and untracked-source embedding, no dependency file, compiler-generated output under the framework-specific intermediate directory, telemetry exclusion, excluded normal build output, `IncludeSymbols=false` (no `.symbols.nupkg`/`.snupkg` by default — the PDB ships in `analyzers/dotnet/cs/`), and `PrivateAssets=all` applied to `Microsoft.CodeAnalysis.*` / `Microsoft.CodeAnalysis.Analyzers` references. Packable Roslyn components automatically pack the built analyzer assembly and PDB into `analyzers/dotnet/cs/` - `PackProjectReferencedSourceGenerators` — default `true`; packable projects automatically include analyzer `ProjectReference` outputs and runtime dependencies under `analyzers/dotnet/cs/`. Set it to `false` globally or use `Pack="false"` on one analyzer reference to opt out. - `EnableAssemblyNameGeneration` — default `true`; when `true`, `AssemblyName` and default `PackageId` follow the fully evaluated `RootNamespace`. Set `false` before the SDK import to use the standard project-name behaviour - `DisableProjectFileNamingConventionCheck` — default `false`; disables the directory-name/file-name match validation @@ -60,7 +60,7 @@ These are the most important configurable properties exposed by the SDK: - `ExcludeMSTelemetryExtension` — default `false`; removes `Microsoft.Extensions.Telemetry.Abstractions`, only relevant if `ExcludePurviewTelemetry` is also `true` - `IsPackable` — defaults to `false` if not set elsewhere - `PackageTags`, `IncludeSource`, `IncludeSymbols`, `PublishRepositoryUrl`, `SymbolPackageFormat` — standard pack-related settings the SDK participates in for packable projects -- Packable-project defaults (only applied when the consuming project has not supplied a value): `GenerateDocumentationFile=true`, `IncludeSymbols=true`, `SymbolPackageFormat=snupkg`, `PublishRepositoryUrl=true`, `EmbedUntrackedSources=true`, `DebugType=portable`. Portable PDBs are delivered through the `.snupkg`; the normal `.nupkg` does not receive PDB files unless the project opts in explicitly +- Packable-project defaults (only applied when the consuming project has not supplied a value): `GenerateDocumentationFile=true`, `IncludeSymbols=true`, `SymbolPackageFormat=snupkg`, `PublishRepositoryUrl=true`, `EmbedUntrackedSources=true`, `DebugType=portable`. Portable PDBs are delivered through the `.snupkg`; the normal `.nupkg` does not receive PDB files unless the project opts in explicitly. Roslyn components default `IncludeSymbols=false` and ship their PDB inside `analyzers/dotnet/cs/` instead - If the repo root is discoverable, the repository-root `README.md` is packed automatically (and registered via `PackageReadmeFile`) when the file exists and `PackageReadmeFile` was not configured explicitly ## Test framework settings diff --git a/src/src/DotNetProjectSdk/Sdk/.agents/skills/sdk-project-behavior-and-detection/SKILL.md b/src/src/DotNetProjectSdk/Sdk/.agents/skills/sdk-project-behavior-and-detection/SKILL.md index 23a0001..bb27583 100644 --- a/src/src/DotNetProjectSdk/Sdk/.agents/skills/sdk-project-behavior-and-detection/SKILL.md +++ b/src/src/DotNetProjectSdk/Sdk/.agents/skills/sdk-project-behavior-and-detection/SKILL.md @@ -145,6 +145,13 @@ This is why consistent naming and placement matter so much in repos that use the - Packs the repository-root `README.md` (registered via `PackageReadmeFile`) when the file exists and `PackageReadmeFile` is unset; skips when a README is already being packed - Non-packable projects (including web apps) default `WarnOnPackingNonPackableProject=false` so solution-wide pack operations skip them silently +### For Roslyn component (analyzer/source-generator) projects + +- Defaults a single `netstandard2.0` target, `LangVersion=latest`, `Nullable=enable`, `TreatWarningsAsErrors=true`, extended analyzer rules, disabled SourceLink, and excluded normal build output (`IncludeBuildOutput=false`) +- Defaults `IncludeSymbols=false` — no `.symbols.nupkg` or `.snupkg` is produced by default; the analyzer PDB ships inside the main `.nupkg` under `analyzers/dotnet/cs/` beside the analyzer assembly +- Packable Roslyn components automatically pack the built analyzer assembly (and PDB) into `analyzers/dotnet/cs/`; `SymbolPackageFormat` defaults to the modern `snupkg` if symbols are explicitly opted into +- `Microsoft.CodeAnalysis.*` and `Microsoft.CodeAnalysis.Analyzers` references are defaulted to `PrivateAssets=all` (development-only dependencies) so they never leak into the packed nuspec + ### For test and shared-testing projects - Applies test-friendly `NoWarn` defaults diff --git a/src/src/DotNetProjectSdk/Sdk/Sdk.props b/src/src/DotNetProjectSdk/Sdk/Sdk.props index 72e4f7d..9eb9405 100644 --- a/src/src/DotNetProjectSdk/Sdk/Sdk.props +++ b/src/src/DotNetProjectSdk/Sdk/Sdk.props @@ -320,13 +320,19 @@ netstandard2.0 true + + latest + enable + true + + false + $(NoWarn);NU5128; true false false - symbols.nupkg - $(TargetsForTfmSpecificDebugSymbolsInPackage);PackSourceGeneratorSymbols true false @@ -615,8 +621,7 @@ true true true - snupkg + snupkg portable diff --git a/src/src/DotNetProjectSdk/Sdk/Sdk.targets b/src/src/DotNetProjectSdk/Sdk/Sdk.targets index 22547f8..dd60ab1 100644 --- a/src/src/DotNetProjectSdk/Sdk/Sdk.targets +++ b/src/src/DotNetProjectSdk/Sdk/Sdk.targets @@ -15,6 +15,55 @@ >$(IntermediateOutputPath)generated + + + + + + + + + + all + + + all + + + all + runtime; build; native; contentfiles; analyzers + + + + + true + + + """ + ) + .BuildAsync(cancellationToken); + + var properties = await harness.GetPropertiesAsync( + cancellationToken, + "LangVersion", + "Nullable", + "TreatWarningsAsErrors", + "IncludeSymbols", + "NoWarn" + ); + + await Assert.That(properties["LangVersion"]).IsEqualTo("latest"); + await Assert.That(properties["Nullable"]).IsEqualTo("enable"); + await Assert.That(properties["TreatWarningsAsErrors"]).IsEqualTo("true"); + await Assert + .That(properties["IncludeSymbols"]) + .IsEqualTo("false") + .Because("Roslyn components must not produce a symbol package by default."); + await Assert + .That(properties["NoWarn"]) + .Contains("NU5128") + .Because("Analyzer-only packages need NU5128 suppressed so TreatWarningsAsErrors does not fail the pack."); + } + + [Test] + public async Task RoslynComponent_ExplicitCompilerDefaults_ArePreserved(CancellationToken cancellationToken) + { + using var harness = await ProjectHarness + .For("SourceGeneration") + .WithProjectFileContent( + """ + + + true + 12.0 + disable + false + + + """ + ) + .BuildAsync(cancellationToken); + + var properties = await harness.GetPropertiesAsync( + cancellationToken, + "LangVersion", + "Nullable", + "TreatWarningsAsErrors" + ); + + await Assert.That(properties["LangVersion"]).IsEqualTo("12.0"); + await Assert.That(properties["Nullable"]).IsEqualTo("disable"); + await Assert.That(properties["TreatWarningsAsErrors"]).IsEqualTo("false"); + } + + [Test] + public async Task PackableRoslynComponent_Pack_AnalyzerDllAndPdb_NoLib_NoSymbolsPackage( + CancellationToken cancellationToken + ) + { + using var harness = await ProjectHarness + .For("SourceGeneration") + .WithProjectFileContent( + """ + + + true + true + + + """ + ) + .BuildAsync(cancellationToken); + + var packageDirectory = Path.Combine(harness.SolutionDirectory, "packages"); + var packageVersion = $"0.0.0-integration-test-{Guid.NewGuid():N}"; + var (exitCode, stdOut, stdErr) = await harness.RunMSBuildAsync( + $"-restore -t:Pack -p:PackageOutputPath=\"{packageDirectory}\" -p:PackageVersion={packageVersion} -p:Version={packageVersion}", + cancellationToken + ); + + await Assert.That(exitCode).IsEqualTo(0).Because(TestHelpers.GenerateError(stdOut, stdErr)); + + var nupkgFiles = Directory.GetFiles(packageDirectory, "Test.SourceGeneration.*.nupkg"); + await Assert + .That(nupkgFiles) + .HasSingleItem() + .Because("Only the main .nupkg must be produced; no .symbols.nupkg or .snupkg is generated by default."); + + using var package = await ZipFile.OpenReadAsync(nupkgFiles[0], cancellationToken); + var entries = package.Entries.Select(entry => entry.FullName).ToList(); + await Assert.That(entries).Contains("analyzers/dotnet/cs/Test.SourceGeneration.dll"); + await Assert.That(entries).Contains("analyzers/dotnet/cs/Test.SourceGeneration.pdb"); + await Assert + .That(entries.Any(entry => entry.StartsWith("lib/", StringComparison.OrdinalIgnoreCase))) + .IsFalse() + .Because("IncludeBuildOutput=false must keep the lib/ output empty."); + } + + [Test] + public async Task NonPackableRoslynComponent_DoesNotPackAnalyzerAsset(CancellationToken cancellationToken) + { + using var harness = await ProjectHarness + .For("SourceGeneration") + .WithProjectFileContent( + """ + + + true + + + """ + ) + .BuildAsync(cancellationToken); + + var noneItems = await harness.GetItemIdentitiesAsync("None", cancellationToken); + await Assert + .That(noneItems.Any(item => item.EndsWith("Test.SourceGeneration.dll", StringComparison.OrdinalIgnoreCase))) + .IsFalse() + .Because("Only packable Roslyn components get the analyzer asset packaging."); + } + + [Test] + public async Task RoslynComponent_RoslynDevDependencies_PrivateAssetsAll(CancellationToken cancellationToken) + { + using var harness = await ProjectHarness + .For("SourceGeneration") + .WithProjectFileContent( + """ + + + true + + + + + + + """ + ) + .BuildAsync(cancellationToken); + + var csharpPrivateAssets = await harness.GetItemMetadataValuesAsync( + "PackageReference", + "PrivateAssets", + "Microsoft.CodeAnalysis.CSharp", + cancellationToken + ); + await Assert.That(csharpPrivateAssets).Contains("all"); + + var analyzersPrivateAssets = await harness.GetItemMetadataValuesAsync( + "PackageReference", + "PrivateAssets", + "Microsoft.CodeAnalysis.Analyzers", + cancellationToken + ); + await Assert.That(analyzersPrivateAssets).Contains("all"); + + var analyzersIncludeAssets = await harness.GetItemMetadataValuesAsync( + "PackageReference", + "IncludeAssets", + "Microsoft.CodeAnalysis.Analyzers", + cancellationToken + ); + await Assert + .That(analyzersIncludeAssets.Any(value => value.Contains("analyzers", StringComparison.OrdinalIgnoreCase))) + .IsTrue() + .Because("Microsoft.CodeAnalysis.Analyzers should flow as an analyzer-only development asset."); + } } From b03ece87ec0a3ddb54702ad339ff1e0d87326ed9 Mon Sep 17 00:00:00 2001 From: Kieron Lanning Date: Wed, 2 Sep 2026 22:36:00 +0100 Subject: [PATCH 2/2] chore: bumped version --- .changeset/README.md | 8 -------- .changeset/breezy-suits-teach.md | 5 ----- .changeset/busy-apes-type.md | 5 ----- .changeset/config.json | 11 ----------- .changeset/dry-crabs-join.md | 5 ----- .changeset/eager-doodles-strive.md | 5 ----- .changeset/eleven-pandas-agree.md | 6 ------ .changeset/four-cycles-doubt.md | 5 ----- .changeset/fruity-stars-check.md | 5 ----- .changeset/funky-rats-hug.md | 5 ----- .changeset/gentle-tires-attend.md | 5 ----- .changeset/large-buses-poke.md | 5 ----- .changeset/lucky-glasses-battle.md | 5 ----- .changeset/olive-poets-live.md | 5 ----- .changeset/petite-rabbits-hide.md | 5 ----- .changeset/pre.json | 27 --------------------------- .changeset/rich-candles-relax.md | 5 ----- .changeset/strict-schools-chew.md | 5 ----- .changeset/thick-snails-bathe.md | 5 ----- .changeset/tiny-pears-burn.md | 5 ----- .changeset/warm-phones-repair.md | 5 ----- package.json | 5 +---- 22 files changed, 1 insertion(+), 141 deletions(-) delete mode 100644 .changeset/README.md delete mode 100644 .changeset/breezy-suits-teach.md delete mode 100644 .changeset/busy-apes-type.md delete mode 100644 .changeset/config.json delete mode 100644 .changeset/dry-crabs-join.md delete mode 100644 .changeset/eager-doodles-strive.md delete mode 100644 .changeset/eleven-pandas-agree.md delete mode 100644 .changeset/four-cycles-doubt.md delete mode 100644 .changeset/fruity-stars-check.md delete mode 100644 .changeset/funky-rats-hug.md delete mode 100644 .changeset/gentle-tires-attend.md delete mode 100644 .changeset/large-buses-poke.md delete mode 100644 .changeset/lucky-glasses-battle.md delete mode 100644 .changeset/olive-poets-live.md delete mode 100644 .changeset/petite-rabbits-hide.md delete mode 100644 .changeset/pre.json delete mode 100644 .changeset/rich-candles-relax.md delete mode 100644 .changeset/strict-schools-chew.md delete mode 100644 .changeset/thick-snails-bathe.md delete mode 100644 .changeset/tiny-pears-burn.md delete mode 100644 .changeset/warm-phones-repair.md diff --git a/.changeset/README.md b/.changeset/README.md deleted file mode 100644 index 654c6d4..0000000 --- a/.changeset/README.md +++ /dev/null @@ -1,8 +0,0 @@ -# Changesets - -Hello and welcome! This folder has been automatically generated by `@changesets/cli`, a build tool that works -with multi-package repos, or single-package repos to help you version and publish your code. You can -find the full documentation for it [in our repository](https://github.com/changesets/changesets). - -We have a quick list of common questions to get you started engaging with this project in -[our documentation](https://github.com/changesets/changesets/blob/main/docs/common-questions.md). diff --git a/.changeset/breezy-suits-teach.md b/.changeset/breezy-suits-teach.md deleted file mode 100644 index ac47e04..0000000 --- a/.changeset/breezy-suits-teach.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"changeops": patch ---- - -Fixed default variable issue diff --git a/.changeset/busy-apes-type.md b/.changeset/busy-apes-type.md deleted file mode 100644 index 4e1efbb..0000000 --- a/.changeset/busy-apes-type.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"changeops": patch ---- - -Fixed incorrect .git folder detection diff --git a/.changeset/config.json b/.changeset/config.json deleted file mode 100644 index 5c58ec9..0000000 --- a/.changeset/config.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "$schema": "https://unpkg.com/@changesets/config@3.1.4/schema.json", - "changelog": "@changesets/cli/changelog", - "commit": false, - "fixed": [], - "linked": [], - "access": "restricted", - "baseBranch": "main", - "updateInternalDependencies": "patch", - "ignore": [] -} diff --git a/.changeset/dry-crabs-join.md b/.changeset/dry-crabs-join.md deleted file mode 100644 index 2d90785..0000000 --- a/.changeset/dry-crabs-join.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"changeops": patch ---- - -added versioning caching per-session diff --git a/.changeset/eager-doodles-strive.md b/.changeset/eager-doodles-strive.md deleted file mode 100644 index 9afa9f0..0000000 --- a/.changeset/eager-doodles-strive.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"changeops": patch ---- - -now copying .editorConfig and global.json into project structure diff --git a/.changeset/eleven-pandas-agree.md b/.changeset/eleven-pandas-agree.md deleted file mode 100644 index 6fa5077..0000000 --- a/.changeset/eleven-pandas-agree.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -"changeops": patch ---- - -- Added support for auto including Shared*.csproj files -- Added Strict mode on package.json version diff --git a/.changeset/four-cycles-doubt.md b/.changeset/four-cycles-doubt.md deleted file mode 100644 index 73d5cf5..0000000 --- a/.changeset/four-cycles-doubt.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"changeops": patch ---- - -fixed IsCLIProject properties diff --git a/.changeset/fruity-stars-check.md b/.changeset/fruity-stars-check.md deleted file mode 100644 index b0d7443..0000000 --- a/.changeset/fruity-stars-check.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"changeops": patch ---- - -hardenend version detection diff --git a/.changeset/funky-rats-hug.md b/.changeset/funky-rats-hug.md deleted file mode 100644 index afe888f..0000000 --- a/.changeset/funky-rats-hug.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"changeops": patch ---- - -fixed editorconfig props not exposed to VS correctly diff --git a/.changeset/gentle-tires-attend.md b/.changeset/gentle-tires-attend.md deleted file mode 100644 index 45ef5aa..0000000 --- a/.changeset/gentle-tires-attend.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"changeops": patch ---- - -updated to support different substitite frameworks diff --git a/.changeset/large-buses-poke.md b/.changeset/large-buses-poke.md deleted file mode 100644 index 422c09d..0000000 --- a/.changeset/large-buses-poke.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"changeops": major ---- - -initial release diff --git a/.changeset/lucky-glasses-battle.md b/.changeset/lucky-glasses-battle.md deleted file mode 100644 index d4cee1d..0000000 --- a/.changeset/lucky-glasses-battle.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"changeops": patch ---- - -hardended aspire host defaults diff --git a/.changeset/olive-poets-live.md b/.changeset/olive-poets-live.md deleted file mode 100644 index 4fbd49e..0000000 --- a/.changeset/olive-poets-live.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"changeops": patch ---- - -fixed issues with sdk file location when packaged diff --git a/.changeset/petite-rabbits-hide.md b/.changeset/petite-rabbits-hide.md deleted file mode 100644 index 42bd9fb..0000000 --- a/.changeset/petite-rabbits-hide.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"changeops": patch ---- - -expanded support for CLI diff --git a/.changeset/pre.json b/.changeset/pre.json deleted file mode 100644 index a943644..0000000 --- a/.changeset/pre.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "mode": "pre", - "tag": "prerelease", - "initialVersions": { - "changeops": "0.0.0" - }, - "changesets": [ - "breezy-suits-teach", - "busy-apes-type", - "dry-crabs-join", - "eager-doodles-strive", - "eleven-pandas-agree", - "four-cycles-doubt", - "fruity-stars-check", - "funky-rats-hug", - "gentle-tires-attend", - "large-buses-poke", - "lucky-glasses-battle", - "olive-poets-live", - "petite-rabbits-hide", - "rich-candles-relax", - "strict-schools-chew", - "thick-snails-bathe", - "tiny-pears-burn", - "warm-phones-repair" - ] -} diff --git a/.changeset/rich-candles-relax.md b/.changeset/rich-candles-relax.md deleted file mode 100644 index e34077a..0000000 --- a/.changeset/rich-candles-relax.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"changeops": patch ---- - -added embedded attribute gen" diff --git a/.changeset/strict-schools-chew.md b/.changeset/strict-schools-chew.md deleted file mode 100644 index 55c45e1..0000000 --- a/.changeset/strict-schools-chew.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"changeops": patch ---- - -InternalsVisibleTo for shared testing infra diff --git a/.changeset/thick-snails-bathe.md b/.changeset/thick-snails-bathe.md deleted file mode 100644 index 33789a6..0000000 --- a/.changeset/thick-snails-bathe.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"changeops": patch ---- - -fixed test project namespace generation diff --git a/.changeset/tiny-pears-burn.md b/.changeset/tiny-pears-burn.md deleted file mode 100644 index 304167a..0000000 --- a/.changeset/tiny-pears-burn.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"changeops": patch ---- - -fixing default values diff --git a/.changeset/warm-phones-repair.md b/.changeset/warm-phones-repair.md deleted file mode 100644 index 0c1e840..0000000 --- a/.changeset/warm-phones-repair.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"changeops": patch ---- - -Make SDK property conditions explicit and harden executable project detection for top-level Program.cs projects. diff --git a/package.json b/package.json index d61f5b7..fa5d9d8 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,4 @@ { "name": "changeops", - "version": "1.0.0-prerelease.44", - "devDependencies": { - "@changesets/cli": "^2.31.0" - } + "version": "1.0.0-prerelease.45" }