Skip to content

fix(multitenancy): corrige downgrade NU1605 no Softprime em restore limpo - #37

Open
cloviscoli wants to merge 2 commits into
masterfrom
claude/lucid-archimedes-ppdwxy
Open

fix(multitenancy): corrige downgrade NU1605 no Softprime em restore limpo#37
cloviscoli wants to merge 2 commits into
masterfrom
claude/lucid-archimedes-ppdwxy

Conversation

@cloviscoli

Copy link
Copy Markdown
Contributor

Problema

O CI da master quebrou com NU1605 (package downgrade) no Softprime.Multitenancy durante dotnet restore:

Detected package downgrade: Microsoft.Extensions.DependencyInjection.Abstractions from 8.0.0 to 3.1.32.
  Softprime.Multitenancy -> Microsoft.AspNetCore.Http 2.3.11 -> Microsoft.Extensions.Options 8.0.2 -> DI.Abstractions (>= 8.0.0)
  Softprime.Multitenancy -> Microsoft.Extensions.DependencyInjection.Abstractions (>= 3.1.32)

Causa: as versões 2.2.x do Microsoft.AspNetCore.Http saíram de lista no NuGet.org. Em restore limpo (como o do runner), o NuGet sobe para 2.3.11, que arrasta transitivamente Extensions.Options 8.0.x → DI.Abstractions 8.0.0, conflitando com a referência direta antiga (3.1.1). Sob o TreatWarningsAsErrors ligado na Fase 5, esse downgrade (normalmente warning) virou erro. Não reproduzia em builds com cache quente — só em restore limpo.

Correção

  • Alinha Microsoft.AspNetCore.Http* em 2.3.11 e Microsoft.Extensions.* em 8.0.x no Softprime.Multitenancy.csproj (todos suportam netstandard2.0), eliminando o downgrade.
  • O bump trouxe as anotações nullable do Caching.Memory 8.0, expondo um CS8604 em MemoryCacheTenantResolver.cs. Resolvido com ! em tenantIdentifier no Set — o guard IsNullOrWhiteSpace já garante não-nulo; o netstandard2.0 apenas não tem a anotação [NotNullWhen(false)] que o net10 usa para inferir isso. Zero mudança de comportamento.

Validação local

  • Solution inteira buildando (Release, regime estrito).
  • Codout.Multitenancy (net10) e Softprime.Multitenancy (netstandard2.0) compilam limpos.
  • 42 testes do Multitenancy verdes.
  • pack + package validation OK nos dois pacotes.

🤖 Generated with Claude Code

https://claude.ai/code/session_01BnjVoHxcLymD2Mp9RcdG3u


Generated by Claude Code

claude added 2 commits June 16, 2026 14:57
…impo

As refs 2.2.x do Microsoft.AspNetCore.Http saíram de lista; em restore
limpo (CI) o NuGet sobe para 2.3.11, que puxa Extensions.Options 8.0.x
-> DI.Abstractions 8.0.0, conflitando com a ref direta antiga (3.1.1)
e falhando como erro sob TreatWarningsAsErrors. Alinha Http* em 2.3.11
e Extensions.* em 8.0.x (todos suportam netstandard2.0). Adiciona '!'
em tenantIdentifier no Set (guard já garante não-nulo; netstandard2.0
não tem a anotação NotNullWhen de IsNullOrWhiteSpace).

https://claude.ai/code/session_01BnjVoHxcLymD2Mp9RcdG3u
…de teste

Advisory novo (NU1903) no SQLitePCLRaw.lib.e_sqlite3 2.1.11 — transitivo
do SQLite in-memory usado só por EF.Tests/NH.Tests — quebrava o restore
sob TreatWarningsAsErrors. Dependência de teste não vai para nenhum
pacote publicado, então o advisory segue como warning visível mas não
bloqueia CI/release. Os projetos publicáveis mantêm a auditoria como
erro (proteção real inalterada).

https://claude.ai/code/session_01BnjVoHxcLymD2Mp9RcdG3u
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants