# Updates

Framework- en applicatiecode bijwerken en gewijzigde setupbestanden nalopen.

Een Nimbly-project draait de actuele core. Er zijn geen frameworkversies om te kiezen of vast te zetten: de core-commit is de versie, en bijwerken is een pull.

## Core bijwerken

```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
```

Je applicatie in `ext/` wordt door een core-update niet aangeraakt. Wat je in `ext/` hebt vervangen, blijft van jou; al het andere komt uit de nieuwe core.

Een core-update herschrijft nooit de bestanden die de setup heeft gemaakt, zoals `.htaccess`, de mapbeveiligingen of `ext/.gitignore`, of de systeemrecords die de setup aanmaakte. `system:repair` vergelijkt ze met wat een nieuwe installatie krijgt en noemt de verschillen. Draai het opnieuw met `--yes` om ze toe te passen.

Het dashboard van de admin laat zien wanneer er updates klaarstaan voor core en de applicatie, en biedt rollen die mogen bijwerken **Update now** aan. Dat past bij een kleine site die zichzelf beheert. Een site met een releaseproces deployt in plaats daarvan via zijn pipeline, zodat elke update dezelfde setup, build en checks heeft doorlopen voordat hij op de server komt.

## De applicatie bijwerken

`ext/` heeft een eigen repository en geschiedenis. Pull en deploy het, of laat de pipeline het deployen, zoals elke applicatie. Werken redacteuren in productie, dan pusht de taak `ext:sync` hun wijzigingen naar de repository; merge die dus voordat je deployt.

## De update controleren

Controleer op de bijgewerkte omgeving de commit die draait, de pagina's die je wijziging raakt, de versie van de stylesheet en `./nimbly schedule:status`. Bouw indexen alleen opnieuw op met `./nimbly index:rebuild` als een update dat aangeeft.

## Code uit een oudere generatie

Oudere Nimbly-applicaties kunnen patronen gebruiken die de huidige core heeft vervangen: data met een record per taal in plaats van vertaalde velden, oudere templates voor formuliervelden, of shortcodes zoals `[#jget#]` en `[#get-i18n#]` die nu onder `[#get#]` vallen. Ze blijven werken waar core ze nog accepteert. Zet zulke code om naar de huidige vorm uit deze documentatie als je hem aanpast.
