No description
  • Rust 86.5%
  • Shell 13.5%
Find a file
Jonatas Oliveira 26c2afcbb6
All checks were successful
ci/woodpecker/push/pipelines Pipeline was successful
fix(mutação): baixar o teto do client de 56 para 28
Os dois números descrevem o mesmo conjunto de sobreviventes, contado de
dois jeitos. O crate tem lib.rs e main.rs declarando os mesmos módulos,
então cada arquivo entra em dois alvos de compilação e o cargo-mutants
gera dois mutantes idênticos por defeito: 56 mutantes em 26 posições de
código.

O teto vinha do total que o cargo-mutants reporta; a checagem compara o
total deduplicado (`sort -u missed.txt`), que dá 28. Do jeito que estava,
o crate toleraria 56 defeitos distintos -- o dobro do que o número
sugeria. Agora os dois falam a mesma língua.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PhdPjHUuVhXaitwT4mG53t
2026-09-08 07:35:05 +02:00
.cargo ci: give this crate a pipeline of its own 2026-09-03 13:28:26 +02:00
.githooks fix(mutação): baixar o teto do client de 56 para 28 2026-09-08 07:35:05 +02:00
.woodpecker ci: tirar a mutação do pipeline e rodar o CI inteiro no pre-commit 2026-09-05 11:27:37 +02:00
src build(deps): upgrade to Rust 1.98, edition 2024 and iced 0.14 2026-09-01 21:12:55 +02:00
tests test(ui): follow the new unit symbols in the ASCII renderer 2026-09-02 10:45:53 +02:00
.gitignore ci: give this crate a pipeline of its own 2026-09-03 13:28:26 +02:00
.mutants-teto fix(mutação): baixar o teto do client de 56 para 28 2026-09-08 07:35:05 +02:00
Cargo.toml ci: give this crate a pipeline of its own 2026-09-03 13:28:26 +02:00
LICENSE build: inherit package metadata from the workspace 2026-09-01 22:20:49 +02:00
README.md ci: tirar a mutação do pipeline e rodar o CI inteiro no pre-commit 2026-09-05 11:27:37 +02:00

client

Cliente gráfico do RPG ASCII Tático, em iced.

cargo run
cargo test

As regras não moram aqui. Elas vêm de tatic_lib, declarada como dependência git — é o que permite compilar este repositório sozinho, sem o diretório irmão por perto.

O pipeline não mede cobertura deste crate: uma dependência transitiva do iced (tiny-xlib) usa #![cfg_attr(coverage, feature(...))], e a flag coverage que o cargo-llvm-cov injeta faz esse crate exigir nightly — a medição não chega nem a começar. A lógica de regras está no tatic_lib, que tem piso de cobertura no pipeline dele.

Onde ele se encaixa

Este repositório contém só o cliente. Ele também entra como submódulo no repositório tactic, que junta os três crates num workspace.

Verificações antes do commit

O .githooks/pre-commit roda aqui o que o Woodpecker roda no servidor. Ele é gerado a partir do .woodpecker/pipelines.yml deste repositório, então os comandos não podem divergir do CI. Ative uma vez por clone -- o hook é versionado, a configuração que aponta para ele não é:

git config core.hooksPath .githooks

Roda tudo a cada git commit, do mais barato ao mais caro, e para no primeiro que falhar: lint do pipeline, cargo fmt --check, clippy com -D warnings, build, testes, auditoria de dependências.

O teste de mutação só existe aqui. Ele saiu do pipeline: mutação recompila o crate uma vez por mutante, e no runner isso eram dezenas de minutos por push, num passo que ninguém acompanha enquanto espera. O teto continua em .mutants-teto, versionado -- a regra não afrouxou, mudou de lugar. É de longe a etapa mais lenta; para pular só ela:

PRE_COMMIT_SEM_MUTACAO=1 git commit ...

Para pular tudo, git commit --no-verify. Um hook que não se pode pular é um hook que todo mundo desativa.

Licença

GPL-3.0-or-later. Veja LICENSE.