Skip to content

Update Aspire to 13.6.1 (packages and AppHost SDK) #44

Closed

Description

@MendesMat

Contexto

O Dependabot abriu o PR #41, que leva Aspire.Hosting.PostgreSQL e Aspire.Npgsql.EntityFrameworkCore.PostgreSQL de 13.5.4 para 13.6.1. Ele não alterou o Aspire.AppHost.Sdk, que continua em 13.5.4 no ControlService.AppHost.csproj, nem a linha da stack no AGENTS.md. O CI verde do #41 não prova que o sistema sobe, porque o CI compila e testa, mas não inicia o AppHost.

Escopo

  • backend/ControlService/Directory.Packages.props: Aspire.Hosting.PostgreSQL e Aspire.Npgsql.EntityFrameworkCore.PostgreSQL em 13.6.1. Esta issue autoriza a mudança de versão desses dois pacotes; nenhum pacote novo.
  • backend/ControlService/src/ControlService.AppHost/ControlService.AppHost.csproj, linha 1: Aspire.AppHost.Sdk/13.6.1.
  • AGENTS.md, linha da stack: ".NET Aspire 13.5" passa a ".NET Aspire 13.6".
  • Verificação manual do sistema rodando (T02 a T04), com a evidência no relatório final e no pull request.
  • Entrega pela opção A: branch chore/update-aspire-13-6 a partir da main, pull request próprio com Closes #44.

Fora do escopo

  • Fechar, juntar ou alterar o PR Bump Aspire.Hosting.PostgreSQL and Aspire.Npgsql.EntityFrameworkCore.PostgreSQL #41 — o dono decide depois do merge.
  • Usar recursos novos do 13.6 (WithRepl, terminais, variáveis de volume) — recomendação futura, se houver necessidade.
  • Configurar ou desligar o histórico do painel — recomendação futura; aqui só se registra onde ele grava.
  • Mudar .github/dependabot.yml ou o CI — recomendação futura.
  • Corrigir código por causa de mudança incompatível — nenhuma é esperada; se o build ou a subida falharem por isso, parar e avisar o dono.

Dependências

Riscos

  • O SDK 13.6.1 pode trazer um aviso novo, e aviso quebra o build — aparece no check.ps1. Corrigir a causa; não suprimir sem falar com o dono.
  • A supressão de ASPIRE010 pode ter mudado de efeito — aparece se o AppHost tentar confiar no certificado ao subir. Nesse caso, parar e avisar o dono.
  • O contêiner persistente controlservice-postgres, criado pelo 13.5.4, pode ser recriado pelo 13.6.1 — os dados ficam no volume, que não pode ser apagado. Conferir o volume antes e depois (T04).
  • O painel passa a gravar logs e traces num banco SQLite sem criptografia, e a documentação não diz a pasta — localizar a pasta e registrar no relatório; ela não pode estar dentro do repositório.
  • A API recusa subir se faltar um segredo — a mensagem cita a chave. O dono define o valor; o agente não escolhe segredos.
  • A main pode andar durante a execução — atualizar o branch com gh pr update-branch.

Decisões do levantamento

  • Entrega pela opção A (pull request próprio a partir da main) — o squash de um PR do Dependabot sai com autor dependabot[bot] e Co-authored-by, o que o AGENTS.md proíbe.
  • Versão 13.6.1 nos três componentes — é a mais nova publicada do Aspire.AppHost.Sdk e a mesma do PR Bump Aspire.Hosting.PostgreSQL and Aspire.Npgsql.EntityFrameworkCore.PostgreSQL #41.
  • A mistura 13.5.4 + 13.6.1 não é testada — ela não será entregue.

Notas de versão do 13.6 que afetam o projeto

  • Nenhuma das cinco mudanças incompatíveis nos atinge (MongoDB, Cosmos DB, Azure Front Door, tipos de terminal, apelido de connection string para nomes com hífen; o nosso nome é controlservice).
  • O painel iniciado pelo AppHost passa a guardar em SQLite o histórico de até dez execuções, sem criptografia e sem ajuste de permissões no Windows.
  • O 13.6.1 corrige contêineres de sessão que ficavam ligados no Windows depois de parar o AppHost; contêineres persistentes não mudam.
  • O .NET SDK 11 só é exigido pelo recurso de builds coordenados, que o projeto não usa.

Testes

Esta issue não muda comportamento do produto, então não há teste automatizado novo nem Red. As verificações abaixo são manuais, e a saída de cada uma entra no relatório final.

ID Teste Camada Regra Resultado esperado
T01 Deve compilar e passar em toda a suíte com os três componentes do Aspire em 13.6.1 Verificação (check.ps1) — Código de saída 0, zero avisos, todos os testes verdes, formatação limpa
T02 Deve subir o AppHost com o PostgreSQL e a API Verificação manual (dotnet run --project src/ControlService.AppHost, em segundo plano) — O console mostra o link do painel, sem erro; o contêiner controlservice-postgres está em execução
T03 Deve responder no endpoint de saúde da API Verificação manual (curl.exe -k https://localhost:7243/health) — Status 200, corpo Healthy
T04 Deve manter o volume do banco Verificação manual (docker volume inspect controlservice-postgres-data, antes e depois) — O volume existe nas duas vezes, com a mesma data de criação

Sem teste próprio: as versões no Directory.Packages.props e no .csproj — cobertas por T01 e T02. A linha do AGENTS.md — conferida na revisão.

Depois de T04, parar toda a árvore de processos do AppHost.

Critérios de aceite

  • As verificações T01 a T04 passam, com o comando e a saída no relatório final.
  • check.ps1 termina sem avisos, com todos os testes do projeto verdes.
  • Uma busca por 13.5 no repositório (fora de bin/ e obj/) não encontra mais nenhuma menção ao Aspire.
  • O volume controlservice-postgres-data não foi apagado.
  • O relatório final diz em que pasta o painel grava o histórico.
  • Pull request aberto a partir da main, com Closes #44, CI verde, sem Co-authored-by.
  • O PR Bump Aspire.Hosting.PostgreSQL and Aspire.Npgsql.EntityFrameworkCore.PostgreSQL #41 continua aberto e intocado.
  • docs/ não muda; AGENTS.md atualizado no mesmo pull request.

Recomendações futuras

  • Fazer o Dependabot atualizar também o Aspire.AppHost.Sdk, para o próximo PR vir completo — exige mudar .github/ e precisa ser pesquisado antes.
  • Decidir se o histórico do painel fica ligado, depois de saber onde ele grava.
  • Acrescentar ao guia de atualização de dependências que um PR do grupo aspire precisa do SDK alinhado e da subida do AppHost.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    dependenciesPull requests that update a dependency file

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions