Pular para o conteúdo

Ambiente de desenvolvimento

Devcontainer para Codespaces e VS Code, e os ganchos do pre-commit que rodam o CI antes do commit.

O defeito mais caro de um projeto novo é o “na minha máquina funciona”. Duas peças o reduzem: um contêiner de desenvolvimento, igual para todos, e ganchos que rodam o que o CI roda antes do commit — onde consertar custa segundos, e não um ciclo inteiro de revisão.

Devcontainer#

bash
dataforge devops devcontainer
# .devcontainer/devcontainer.json — abra no VS Code ("Reopen in Container")
# ou num Codespace, e a linguagem, a extensao e as dependencias ja estao la
json
{
  "name": "loja",
  "image": "mcr.microsoft.com/devcontainers/python:3.13",
  "postCreateCommand": "pip install dataforge-lang && dataforge editor && dataforge install",
  "forwardPorts": [8080]
}

A extensão é instalada por dataforge editor, e não por id do marketplace: ela vem no pacote, na mesma versão da linguagem. Um id do marketplace instalaria a última, que pode não concordar com a linguagem instalada.

pre-commit#

bash
dataforge devops pre-commit
pip install pre-commit
pre-commit install          # a partir daqui, todo commit roda os ganchos
GanchoO que para
dataforge fmto diff de formatação no meio do diff de lógica
dataforge check --stricto nome errado que só apareceria no CI, dez minutos depois
dataforge segurancao token colado no código — o único erro que não se desfaz com outro commit

Continue em Numa VM.