Release e versionamento¶
Regra de versão¶
O número da versão vive em dois lugares:
pyproject.tomlsrc/pynfse_nacional/__init__.py
Os dois precisam bater antes de um release. Se não baterem, a publicação fica confusa e o usuário final percebe na primeira instalação.
Forma de release¶
O fluxo normal é este:
atualizar versão e changelog
rodar os testes e o lint do que mudou
checar
git status --short --branchconfirmar que o tag ainda não existe
rodar
uv run releaseouuv run release --repository testpypi --dry-runcriar um tag anotado, como
v0.5.1fazer push da branch e do tag
conferir se o pacote e a documentação apareceram no lugar certo
O checklist oficial continua em RELEASE_CHECKLIST.md. Use ele antes de cortar tag. Ele cobre o que normalmente escapa quando a pressa aperta.
Regras para documentação¶
Mudança que afeta comportamento público precisa de ajuste no guia e, se houver API nova, na referência da API.
Página de apêndice serve para regras operacionais, não para tutorial longo.
Se a alteração mexe em certificado, mTLS, PDF ou release, deixe isso escrito na documentação do mesmo PR.
Texto de docs deve ser direto. Se parecer texto de marketing, está longo demais.
CI e publicação¶
Sim, a CI de documentação já está conectada.
O workflow em
.github/workflows/docs.yml:
roda em
pushepull_requestquando mexe emdocs/**,src/**,README.md,pyproject.tomlouuv.lockinstala as dependências de docs com
uv sync --group docs --frozengera o site com
uv run sphinx-build -b html -W --keep-going docs sitepublica no GitHub Pages quando o push cai na branch
master
O que ainda não existe é um workflow separado para publicar pacote no PyPI. Isso
continua no comando release e no processo manual descrito acima.
O botão manual workflow_dispatch no workflow de docs só constrói o site. Ele
não publica no GitHub Pages, porque o job de deploy roda só em push na
branch master.