# Atualizações

Atualizar o código do framework e da aplicação e revisar arquivos de setup alterados.

Um projeto Nimbly roda o core atual. Não há versões do framework para escolher ou fixar: o commit do core é a versão, e atualizar é fazer pull.

## Atualize o core

```bash
git pull                     # core, at the project root
./nimbly deps                # when package files changed
./nimbly build               # when build inputs changed
./nimbly system:repair       # report what differs from a new install
```

Sua aplicação em `ext/` não é tocada por uma atualização do core. O que você substituiu em `ext/` continua sendo seu; todo o resto vem do novo core.

Uma atualização do core nunca reescreve os arquivos gerados pelo setup, como o `.htaccess`, as proteções de pastas ou o `ext/.gitignore`, nem os registros de sistema que o setup criou. O `system:repair` os compara com o que uma instalação nova recebe e lista as diferenças. Rode-o de novo com `--yes` para aplicá-las.

O painel do admin mostra quando há atualizações esperando para o core e para a aplicação, e oferece **Update now** às funções que podem atualizar. Isso serve para um site pequeno que se administra sozinho. Um site com processo de release faz o deploy pela sua pipeline, para que cada atualização passe pelo mesmo setup, build e verificações antes de chegar ao servidor.

## Atualize a aplicação

`ext/` tem repositório e histórico próprios. Faça pull e deploy, ou deixe a pipeline fazer o deploy, como em qualquer aplicação. Quando editores trabalham em produção, a tarefa `ext:sync` envia as mudanças deles ao repositório; então faça merge delas antes do deploy.

## Verifique a atualização

No ambiente atualizado, verifique o commit que está rodando, as páginas afetadas pela sua mudança, a versão da folha de estilo e o `./nimbly schedule:status`. Reconstrua os índices com `./nimbly index:rebuild` só quando uma atualização indicar.

## Código de uma geração anterior

Aplicações Nimbly mais antigas podem usar padrões que o core atual substituiu: dados com um registro por idioma em vez de campos traduzidos, templates de campos de formulário antigos, ou shortcodes como `[#jget#]` e `[#get-i18n#]`, que agora o `[#get#]` cobre. Eles continuam funcionando onde o core ainda os aceita. Ao mudar esse código, passe-o para a forma atual descrita nesta documentação.
