Fixando a versão do SwiftLint na CI quando o Homebrew não deixa
brew install swiftlint instala o que estiver estável hoje, e a CI de release é a mais exposta a essa deriva. A fixação é o binário portátil, não uma formula.
brew install swiftlint instala o que estiver estável hoje, e a CI de release é a mais exposta a essa deriva. A fixação é o binário portátil, não uma formula.
Extraindo algoritmos para fora do alcance do MusicKit, um parâmetro de mock que era silenciosamente ignorado, e dois testes que vinham passando pelo motivo errado o tempo todo.
Uma limpeza da camada de serviço do MusicKit em que apagar métodos mortos travou todos os testes de uma vez, e a solução foi um build limpo, não um debugger.
Três fetches sequenciais em que um nem era necessário de cara, dois recálculos quadráticos, e um linter que expôs por que eu estava realmente escrevendo todos aqueles comentários.
Conformidades a Codable sintetizadas pelo compilador também herdam o isolamento padrão em MainActor, e async let tem exigências mais rígidas que a task que você já tinha.
Um padrão não se corrige de uma vez só. Mais um scan de biblioteca no main actor, escondido num caminho de escrita, e uma API em lote numa única direção.
IDs de biblioteca usados em requisições de catálogo: dois sintomas, um bug só, uma correção verificada no dispositivo, e o número de 1.610 artistas que forçou um redesenho.
O armazenamento de 'Não Tenho Interesse' só guardava chaves. Depois ele precisou virar uma tela, e o modelo precisou carregar sua própria descrição.
118 testes verdes, uma passada limpa no simulador, e botões mortos num telefone de verdade. O bug era um serviço @MainActor fazendo trabalho síncrono entre awaits.
@MainActor elimina data races, não races de interleaving. Um token de geração, uma guarda contra falha desatualizada, e um teste de race determinístico.
Página 3 de 5