NuGet Release Governance
Objetivo
Orientar mudancas de release do ComplexityAnalysis.Analyzers como pacote NuGet de Roslyn Analyzer, preservando rastreabilidade, seguranca e controle explicito de publicacao.
Quando usar
- Alterar
dotnet pack, metadados de package,.nupkgou.snupkg. - Revisar versionamento, release notes ou GitHub Actions de release.
- Validar conteudo do pacote antes de publicar.
- Avaliar supply-chain, permissoes, secrets, assinaturas, provenance ou seguranca de pipeline.
Regras obrigatorias
- Nunca executar
dotnet nuget pushsem solicitacao explicita. - Nunca criar GitHub Release sem solicitacao explicita.
- Nunca publicar pacote real automaticamente.
- Nunca ampliar permissoes de workflow sem justificativa.
- Nunca introduzir segredo em arquivo versionado.
- O package do analyzer deve carregar o assembly em
analyzers/dotnet/cs/. - Roslyn e ferramentas de desenvolvimento devem permanecer privadas quando aplicavel.
- O pacote nao deve expor dependencias transitivas desnecessarias.
Checklist de package
PackageId,Description, tags e repository metadata estao corretos.PackageVersionfoi informado de forma explicita no pack..nupkgcontem o DLL do analyzer emanalyzers/dotnet/cs/..nupkgnao contemlib/netstandard2.0/para o assembly do analyzer..nupkgnao contem DLLs do projeto original.- Roslyn nao aparece como dependencia transitiva no
.nuspec. .snupkgso e produzido quando configurado intencionalmente.- Release notes descrevem mudancas observaveis e breaking changes.
Validacao
dotnet restore ./ComplexityAnalysis.Analyzers.sln
dotnet build ./ComplexityAnalysis.Analyzers.sln --configuration Release --no-restore
dotnet pack ./src/ComplexityAnalysis.Analyzers/ComplexityAnalysis.Analyzers.csproj --configuration Release --no-build -p:PackageVersion=0.0.0-local
Inspecione o .nupkg localmente antes de concluir alteracoes de empacotamento.