Repository navigation
Simplify local development and streamline repository infrastructure - #1858
Open
Tera (0x5bfa) wants to merge 5 commits into
Open
Tera (0x5bfa) wants to merge 5 commits into
Tera (0x5bfa) wants to merge 5 commits into
Conversation
There was a problem hiding this comment.
🔵 Needs a closer look
The broad infrastructure changes require maintainer validation of official signing, SBOM generation, and end-to-end artifact delivery.
No open issues 🎉
What changed in this PR
Simplifies CsWin32’s contributor workflow around standard .NET commands while separating local development from official build infrastructure.
Changes:
- Migrates to SLNX and adjusts build ordering and packaging.
- Replaces bootstrap scripts with native CI setup and separates package feeds.
- Removes template automation, obsolete pipelines, and unused tooling.
| File | Description |
|---|---|
| tools/variables/ProfilingInputsDropName.ps1 | Removes profiling-drop variable helper. |
| tools/variables/BusinessGroupName.ps1 | Removes archival metadata helper. |
| tools/Set-EnvVars.ps1 | Removes bootstrap environment helper. |
| tools/MergeFrom-Template.ps1 | Removes template merging script. |
| tools/Install-NuGetPackage.ps1 | Removes package-install helper. |
| tools/Install-NuGetCredProvider.ps1 | Removes custom credential-provider installer. |
| tools/Install-DotNetSdk.ps1 | Removes custom SDK installer. |
| tools/Get-ProcDump.ps1 | Adds explicit feed configuration and failure handling. |
| tools/Get-LibTemplateBasis.ps1 | Removes template ancestry lookup. |
| tools/Convert-PDB.ps1 | Uses official package-feed configuration. |
| tools/Check-DotNetSdk.ps1 | Removes SDK detection helper. |
| tools/Check-DotNetRuntime.ps1 | Removes runtime detection helper. |
| tools/artifacts/VSInsertion.ps1 | Removes OptProf artifact collection. |
| test/Restore.Tests.ps1 | Removes bootstrap retry tests. |
| test/Microsoft.Windows.CsWin32.Tests/MyReferenceAssemblies.cs | Selects feeds by build environment. |
| test/Directory.Build.targets | Adds generation-tool build dependencies. |
| test/Directory.Build.props | Makes MicroBuild dependency conditional. |
| SUPPORT.md | Removes standalone support guidance. |
| src/VSInsertionMetadata/VSInsertionMetadata.targets | Removes profiling metadata targets. |
| src/VSInsertionMetadata/ProfilingInputs.props | Removes profiling input placeholder. |
| src/VSInsertionMetadata/Library.VSInsertionMetadata.proj | Removes template metadata project. |
| src/OptProf.targets | Removes profiling configuration. |
| src/Microsoft.Windows.CsWin32/Microsoft.Windows.CsWin32.targets | Prevents reference rebuilds during no-build packing. |
| README.md | Adds standard build instructions. |
| nuget.config | Separates local sources using package mapping. |
| Microsoft.Windows.CsWin32.slnx | Adds XML solution definition. |
| Microsoft.Windows.CsWin32.sln | Removes replaced solution format. |
| init.ps1 | Removes PowerShell bootstrap. |
| init.cmd | Removes command-shell bootstrap. |
| Directory.Solution.targets | Builds solution before packing when required. |
| Directory.Packages.props | Gates MicroBuild package inclusion. |
| Directory.Build.props | Separates local and MicroBuild configuration. |
| COPYRIGHT | Removes standalone copyright notice. |
| CONTRIBUTING.md | Documents revised development and official workflows. |
| CodeQL.yml | Removes legacy classification configuration. |
| azure-pipelines/vs-validation.yml | Removes optional insertion-validation pipeline. |
| azure-pipelines/unofficial.yml | Removes obsolete exclusions and OptProf comments. |
| azure-pipelines/PostPRMessage.ps1 | Removes validation comment helper. |
| azure-pipelines/OptProf.yml | Removes profiling pipeline. |
| azure-pipelines/OptProf_part2.yml | Removes profiling continuation pipeline. |
| azure-pipelines/official.yml | Removes commented OptProf options. |
| azure-pipelines/NuGetSbom.props | Houses official-build output settings. |
| azure-pipelines/nuget.config | Adds dedicated official feed configuration. |
| azure-pipelines/microbuild.before.yml | Removes OptProf-specific setup. |
| azure-pipelines/microbuild.after.yml | Removes profiling artifact publishing. |
| azure-pipelines/libtemplate-update.yml | Removes Azure template-update automation. |
| azure-pipelines/integration-test.yml | Installs SDKs through native task. |
| azure-pipelines/install-dependencies.yml | Replaces bootstrap with native setup and restores. |
| azure-pipelines/Get-InsertionPRId.ps1 | Removes validation insertion lookup. |
| azure-pipelines/dotnet.yml | Removes profiling-only execution branch. |
| azure-pipelines/build.yml | Simplifies jobs and updates dependency setup. |
| azure-pipelines/archive-sourcecode.yml | Removes source archival pipeline. |
| azure-pipelines/Archive-SourceCode.ps1 | Removes archival request helper. |
| azure-pipelines.yml | Removes obsolete editor-path exclusion. |
| .vscode/tasks.json | Removes workspace build task. |
| .vscode/settings.json | Removes workspace editor settings. |
| .vscode/launch.json | Removes debugger attachment configuration. |
| .vscode/extensions.json | Removes extension recommendations. |
| .prettierrc.yaml | Removes unused formatter configuration. |
| .github/workflows/libtemplate-update.yml | Removes GitHub template-update automation. |
| .github/workflows/docs.yml | Uses native SDK setup and tool restore. |
| .github/workflows/docs_validate.yml | Updates runner and documentation setup. |
| .github/workflows/copilot-setup-steps.yml | Uses native SDK setup and package restore. |
| .github/workflows/build.yml | Separates build, pack, and test setup. |
| .github/actions/publish-artifacts/action.yaml | Removes unused publishing action. |
| .editorconfig | Defines SLNX indentation. |
| .config/dotnet-tools.json | Removes unused CLI tools. |
Review effort: Balanced
This branch has not been deployed
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.
Context
I understand that the repository's original author created
Library.Templateto make repository setup easier and more consistent. That is a useful goal, and this is not a criticism of the template or of using it across repositories.By "focused" here, I mean the day-to-day contributor workflow: CsWin32 is a source generator with build/package integration and a substantial test matrix. Those parts have real complexity, but contributors should be able to work with the repository through Visual Studio or the standard .NET CLI without first understanding a general-purpose bootstrap and template-update layer. For this repository, the maintenance and setup overhead of that layer appears to outweigh its benefits.
Changes
Microsoft.Windows.CsWin32.slntoMicrosoft.Windows.CsWin32.slnxand update the related documentation and build configuration.init.cmd/init.ps1bootstrap flow with the SDK specified inglobal.jsonand standarddotnetcommands.dotnetdirectly.The documented local workflow is:
Official build and release infrastructure
The official Azure Pipelines path retains 1ESPT/MicroBuild integration, signing, SBOM generation, artifact publishing, and release/insertion workflows. It continues to use the Microsoft feed configuration and existing MicroBuild tasks.
Validation
dotnet packanddotnet pack --no-build.The official 1ESPT pipeline, production signing, and end-to-end artifact delivery were not run as part of this change.
If this cleanup is not a direction the maintainers want, or an unsolicited infrastructure change is not welcome, please let me know. I’m happy to close the PR or narrow its scope.