fix(ci): stop -p:Version cascade in dotnet pack; bump Data 6.3.0; drop unmaintained packages#11
Merged
Conversation
Two coupled fixes for the broken Codout.Framework.EF 6.3.0 release plus cleanup of three abandoned packages. ## Workflow fix (root cause) release.yml and mcp-release.yml were passing both -p:Version= and -p:PackageVersion= to dotnet pack. Setting Version cascades through the entire build graph: every ProjectReference also inherits Version=X, which silently rewrites dependency entries in the generated .nuspec. That is why the already-published Codout.Framework.EF 6.3.0 declares "<dependency id=Codout.Framework.Data version=6.3.0 />" even though Codout.Framework.Data.csproj has <Version>6.2.2</Version> on master: during the EF pack, -p:Version=6.3.0 leaked into Data too. Consumers running `dotnet restore` after upgrading to EF 6.3.0 fail with "Unable to find package Codout.Framework.Data with version >= 6.3.0". Fix: drop -p:Version= entirely; the .csproj already pins the package version. Keep -p:PackageVersion= so workflow_dispatch can still override the outgoing package version without affecting ProjectReference resolution. ## Codout.Framework.Data 6.3.0 Bump Codout.Framework.Data to 6.3.0 with no code/contract changes, so that the already-published EF 6.3.0 (which incorrectly demands Data >= 6.3.0) starts resolving on NuGet. Future EF builds will declare the correct Data version because of the workflow fix above. ## Drop unmaintained packages from the release surface Codout.Framework.DP, Cosmos repository, and DocumentDB repository have been broken for years: - DP implements an old IRepository<T> shape (Find instead of Where, no AllReadOnly/WherePaged/Refresh/CancellationToken overloads, etc.) and still references the legacy "Codout.Framework.DAL" folder that no longer exists. - Cosmos and DocumentDB target netcoreapp2.0 (out of support since 2018), use the deprecated Microsoft.Azure.DocumentDB.Core SDK, and reference Codout.Framework.NetStandard.* projects that are not in the repo at all. All three csproj now declare <IsPackable>false</IsPackable> and have been removed from .github/release-packages.json (24 entries remain). release.yml and mass-release.yml therefore skip them. Source files are kept for archaeology; CLAUDE.md spells out what would be needed to revive each one. ## CLAUDE.md Added two prescriptive sections: - "Pacotes excluídos do release automatizado" — names the three above and tells future AI agents to refuse a publish request until the package is modernized. - "Cuidados ao usar dotnet pack" — explicitly forbids -p:Version= and explains the cascade trap, so the same bug does not get reintroduced. ## Operational follow-up after merge The user should tag `data-v6.3.0` against master. release.yml (with the fix above) will pack and push Codout.Framework.Data 6.3.0 to NuGet.org, at which point the already-published EF 6.3.0 starts to restore cleanly without reverting any csproj. https://claude.ai/code/session_015jxScBEvdKkRwGvJTgK5Py
5 tasks
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.
TL;DR
Codout.Framework.EF 6.3.0 está quebrado no NuGet porque declara
Codout.Framework.Data >= 6.3.0, e Data 6.2.2 é a última versão publicada. Este PR:-p:Version=cascateando praProjectReference).DAL → Data.Root cause do EF 6.3.0 com dependência quebrada
release.ymlemcp-release.ymlpassavam dois flags prodotnet pack:-p:Version=Xé uma propriedade MSBuild que cascata pra todos os projetos do build graph, incluindoProjectReference. Durante o pack do EF,Version=6.3.0vazou para o build doCodout.Framework.Data, e o.nuspecresultante declarou<dependency id="Codout.Framework.Data" version="6.3.0" />— ignorando o<Version>6.2.2</Version>real do csproj.-p:PackageVersion=Xsó afeta o pacote em si e não cascata. O fix é remover-p:Version=e manter só-p:PackageVersion=. Aplicado em ambos os workflows.Bump técnico de Data → 6.3.0
Como o EF 6.3.0 já publicado tem essa dep quebrada e o NuGet não permite re-upload da mesma versão (mesmo após unlist), o caminho mais barato pra desbloquear consumidores é publicar
Codout.Framework.Data 6.3.0(sem mudanças de código — só bump de versão).Após mergear este PR, basta tagear
data-v6.3.0em master:Próximos releases de EF (qualquer >= 6.3.1) já vão declarar a dependência de Data corretamente, pois o workflow não cascata mais.
Pacotes desabilitados pra publicar
Codout.Framework.DPIsPackable=falseIRepository<T>antigo (semWhere,AllReadOnly,WherePaged,Refresh, overloads deCancellationToken...). ProjectReference aponta pra pastaCodout.Framework.DALque sumiu na renomeação praData.Codout.Framework.NetCore.Repository.CosmosIsPackable=falsenetcoreapp2.0(fora de suporte desde 2018). SDK legadoMicrosoft.Azure.DocumentDB.Core 1.5.0(substituído porMicrosoft.Azure.Cosmos). ProjectReferences pra projetosCodout.Framework.NetStandard.*que não existem no repo.Codout.Framework.NetCore.Repository.DocumentDBIsPackable=falseOs três foram removidos de
.github/release-packages.json(24 entries restantes). Source files preservados pra arqueologia.CLAUDE.mddocumenta o que seria preciso pra revivê-los e instrui AI agents a recusar pedidos de publish até serem modernizados.Reforço no
CLAUDE.mdDuas seções novas pra impedir regressão:
dotnet pack— proíbe explicitamente-p:Version=e explica a armadilha do cascade.Arquivos modificados
.github/workflows/release.yml-p:Version=do pack.github/workflows/mcp-release.yml.github/release-packages.jsonCodout.Framework.Data/Codout.Framework.Data.csprojCodout.Framework.DP/Codout.Framework.DP.csprojIsPackable=false+ comentáriosrc/NetCore/.../Cosmos.csprojIsPackable=false+ comentáriosrc/NetCore/.../DocumentDB.csprojIsPackable=false+ comentárioCHANGELOG.mdCLAUDE.mddotnet pack"Test plan
release-packages.jsonparsea (24 entries)grep -n "p:Version=" .github/workflows/*.ymlsó encontra ocorrência dentro de comentário<IsPackable>false</IsPackable>data-v6.3.0e confirmar publish no NuGet.orgdotnet add package Codout.Framework.EF --version 6.3.0deve resolver sem errohttps://claude.ai/code/session_015jxScBEvdKkRwGvJTgK5Py
Generated by Claude Code