Release v0.3.1 - #10
Merged
Merged
Conversation
O Windows Update subiu a wslc de 2.9.4 para 2.9.9 e quebrou o app. O `--format json` virou NDJSON — um objeto por linha, sem array em volta — e `network list` renomeou `Id` para `ID`, então a view Redes morria em "Unexpected non-whitespace character after JSON". Todas as listagens passam agora por parseJsonLines, que aceita as duas formas: a CLI é instalada pelo Windows Update, não por nós, e o app não escolhe qual versão vai encontrar. Duas falhas silenciosas vieram junto, e nenhuma dava erro na tela. O `stats` chegava sempre vazio no motor CLI, porque o fallback era `--no-stream`, que deixou de existir. E três das quatro limpezas nem rodavam: nenhum `prune` da 2.9.9 aceita `--force`, e `image`/`volume prune` precisam de `--all`, senão limpam só as pendentes e os anônimos — bem menos do que o rótulo promete. A auditoria seguinte foi feita contra a árvore de `--help` da CLI, recursiva, não contra uma lista nossa. Foi assim que apareceu o `container cp` inteiro, que duas auditorias anteriores tinham deixado passar por enumerarem o que já conhecíamos. Ele chega como diálogo próprio, nos dois sentidos, e não é igual ao docker: entrando, o destino precisa ser uma pasta que já existe — a wslc não renomeia —, enquanto saindo ela cria o arquivo. Medido nos dois casos. Os logs abriam despejando o arquivo inteiro desde o primeiro byte, porque só mandávamos `--follow`. O botão da lista agora pede uma cauda e o título do painel diz qual recorte está em tela; "Logs com opções…" escolhe linhas, hora e intervalo. No motor nativo o log vem por callback, sem recorte, e lá o título não promete o que não pode entregar. A remoção forçada não virou item de menu. A ação normal continua onde estava e, quando a CLI recusa por "em execução" ou "em uso", o botão aparece no próprio aviso da falha — quem clica já leu o motivo. O dublê passou a seguir as mesmas duas regras, senão esse caminho só existiria contra a máquina de verdade. O resto da 2.9.8/2.9.9 entrou onde já havia lugar: as cinco opções do `network connect`, `--ip-range` no create, as nove do `image build`, `container create` como "criar sem iniciar", `--ip`/`--mount`/`--pull` no run, as cinco do `exec`, sinal e espera no stop (que o SDK também aceita, então valem nos dois motores) e labels de volume. O `-f` de `volume rm` e `network rm` NÃO é força: a ajuda diz "não gere erro se não existir", e ele só é usado na remoção em massa, onde a lista pode ter envelhecido entre ler e remover. Cada flag foi sondada contra a CLI instalada antes de entrar, e o que é exclusivo dela some da tela no motor nativo em vez de falhar depois de clicado. Um teste do terminal também era uma corrida latente: "conectado" casava tanto o chip de status quanto a primeira linha que o shell imprime.
Acerto com a CLI wslc 2.9.9: o que ela mudou, e o que ela ganhou
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.
Promove a
devpara amaine lança a v0.3.1.O que sai nesta versão
O Windows Update subiu a wslc de 2.9.4 para 2.9.9 e quebrou o app. Esta versão é o acerto com ela — o que ela mudou embaixo de nós, e o que ela ganhou que ainda não estava na tela.
Corrigido. A view Redes voltou a abrir: o
--format jsonda 2.9.9 devolve um objeto por linha em vez de uma lista, e o app quebrava ao carregar a tela. Duas falhas eram silenciosas, sem erro nenhum: as colunas de CPU e memória chegavam sempre vazias no motor CLI, e três das quatro limpezas — containers parados, imagens sem uso, volumes sem uso — nem começavam, porque a 2.9.9 recusa a opção que o app passava. A coluna Portas voltou a mostrar o endereço publicado, o status voltou a dizer há quanto tempo o container está naquele estado, e as redesbridge/host/nonedeixaram de oferecer uma remoção que só dava erro.Adicionado. Copiar arquivos entre o Windows e um container, nos dois sentidos — comando que a wslc ganhou na 2.9.8 e o app não tinha. Logs com recorte: o botão abre nas últimas 500 linhas em vez de despejar o log inteiro, e "Logs com opções…" escolhe linhas, hora e intervalo. Remover container em execução ou imagem em uso deixou de ser um beco sem saída: o aviso da falha traz o botão para remover assim mesmo. Mais a aba Avançado do build, as cinco opções novas do conectar à rede, a faixa de IPs no criar rede, "criar sem iniciar", IP fixo e montagens detalhadas no executar, opções no comando rápido, sinal e espera no parar, e rótulos de volume.
Alterado. Imagens, volumes, redes e a versão da CLI passaram a ser lidos em JSON em vez da tabela de texto, que vem traduzida conforme o idioma do Windows. Os erros do motor nativo passaram a dizer o que aconteceu, em vez de mostrar só o código. E o que só existe na CLI some da tela quando o motor nativo está ativo, em vez de falhar depois de clicado.
Verificado
383 testes de unidade e 178 E2E, com cada flag sondada contra a wslc 2.9.9 instalada antes de entrar no código. Detalhe do que foi medido — inclusive onde a wslc não se comporta como o docker — na #9 e nas regras 19 a 21 do
ROADMAP.md.O que o merge dispara
O workflow de release lê a versão do
package.json(0.3.1) e as notas dopatchnotes.json, roda o CI inteiro no estado que vai virar tag, empacota, abre o.exena fumaça e só então cria a tag anotadav0.3.1e publica a release com o instalador, o portátil, o.blockmape olatest.yml.Quem está na 0.3.0 recebe esta versão pelo próprio app: é a primeira atualização automática do projeto.