> ## Documentation Index
> Fetch the complete documentation index at: https://docs.devin.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Migrazione alla configurazione dichiarativa

> Passa dalla configurazione classica dell'ambiente ai blueprint dichiarativi. Devin può gestire gran parte della migrazione per te.

La configurazione dichiarativa (blueprint) è la nuova generazione della configurazione degli ambienti: soggetta a controllo di versione, componibile e con aggiornamenti automatici. Questa guida ti accompagna nella migrazione dalla classica procedura guidata interattiva.

<Warning>
  La configurazione classica dell'ambiente è in fase di deprecazione. Ci sono due date da tenere presenti:

  * **30 giugno 2026:** Tutte le organizzazioni passano alla configurazione dichiarativa (blueprint). La tua configurazione classica non verrà eliminata e potrai ripristinarla.
  * **31 luglio 2026:** La tua Machine Configuration classica resterà disponibile come riferimento fino a questa data, così potrai consultarla o ripristinarla mentre completi la migrazione. Dopo il 31 luglio verrà rimossa.

  Esegui la migrazione prima del 30 giugno 2026 per evitare interruzioni. I clienti Enterprise che hanno bisogno di più tempo devono contattare il proprio team dell'account.
</Warning>

<div id="why-migrate">
  ## Perché migrare?
</div>

Con la procedura guidata di configurazione classica, l'ambiente di Devin è uno snapshot configurato manualmente che può cambiare nel tempo. Le dipendenze diventano obsolete, le modifiche alla configurazione richiedono di eseguire di nuovo la procedura guidata e non c'è una cronologia delle versioni. La configurazione dichiarativa risolve questo problema:

* **Aggiornamenti automatici**: i blueprint vengono ricostruiti quando la tua repo cambia, così le dipendenze restano aggiornate
* **Versionato**: la configurazione del tuo ambiente si trova accanto al tuo codice, con cronologia completa
* **Modulare**: i blueprint Enterprise, org e repo si integrano tra loro in modo pulito
* **Riproducibile**: ogni build produce lo stesso risultato a partire dallo stesso blueprint
* **Sessioni più rapide**: gli snapshot sono predefiniti con le repo clonate e le dipendenze installate, quindi le sessioni si avviano già pronte per lavorare

<Info>
  La tua configurazione classica continua a funzionare fino al 30 giugno 2026, poi resta disponibile per la migrazione fino al 31 luglio 2026 e prima di allora puoi ripristinarla per la tua organizzazione.
</Info>

<div id="before-you-start">
  ## Prima di iniziare
</div>

<AccordionGroup>
  <Accordion title="Verifica che la tua org sia idonea">
    Cerca un banner nella pagina **Machine Configuration** (la pagina di configurazione classica) con la dicitura **"Passa alla configurazione dichiarativa dell'ambiente"**. Se lo vedi, la tua organizzazione è idonea.

    Se non vedi il banner, la configurazione dichiarativa non è ancora stata abilitata per la tua organizzazione. Il rilascio è graduale. Contatta l'amministratore Enterprise o il supporto.
  </Accordion>

  <Accordion title="Chi può eseguire la migrazione">
    La migrazione richiede le autorizzazioni di **amministratore dell'org** (`ManageOrgSettings`). Se non sei un amministratore dell'org, nella pagina di migrazione vedrai il messaggio "Accesso amministratore richiesto".
  </Accordion>

  <Accordion title="È reversibile?">
    Sì, fino al 31 luglio 2026. Lo snapshot esistente viene conservato, quindi puoi ripristinarlo prima di allora per riportare la tua organizzazione a tale snapshot. Dopo il 30 giugno, tutte le organizzazioni passeranno alla configurazione dichiarativa, anche se la tua Machine Configuration classica resterà disponibile per il ripristino fino al 31 luglio 2026.
  </Accordion>
</AccordionGroup>

<div id="migration-steps">
  ## Passaggi per la migrazione
</div>

<div id="1-go-to-the-migration-page">
  ### 1. Vai alla pagina di migrazione
</div>

Vai a **Settings > Migrazione dell'ambiente** oppure fai clic su **Inizia** nel banner mostrato nella pagina Machine Configuration.

<div id="2-enable-declarative-configuration">
  ### 2. Abilita la configurazione dichiarativa
</div>

Fai clic su **Abilita per l'organizzazione**. In questo modo, il tuo org userà snapshot basati su blueprint per le nuove sessioni.

<Info>Questo non influisce sullo snapshot esistente. Viene conservato nel caso in cui tu debba ripristinarlo.</Info>

<div id="3-let-devin-generate-your-blueprints">
  ### 3. Lascia che Devin generi i tuoi blueprint
</div>

**Devin fa il lavoro al posto tuo.**

Fai clic su **Start migration** e seleziona i repository che vuoi migrare per primi. Non devi migrare tutto in una volta. Inizia dalle repo che usi di più.

Quando avvii la migrazione, Devin crea **due sessioni**:

* Una **sessione principale** in esecuzione nel nuovo ambiente dichiarativo, che genera i blueprint
* Una **sessione di supporto** in esecuzione sullo snapshot esistente, che Devin usa per verificare ciò che è installato al momento (versioni dei linguaggi, pacchetti di sistema, servizi in esecuzione, ecc.)

Devin esamina lo snapshot esistente, identifica quali strumenti e dipendenze sono installati e genera la configurazione del blueprint equivalente. I risultati vengono visualizzati nella pagina **Settings > Environment > Blueprints**.

<Tip>
  Lo snapshot esistente è una "scatola nera" di tutto ciò che hai configurato nel tempo. Devin ispeziona quello snapshot, cataloga ciò che è installato e lo trascrive automaticamente come blueprint riproducibile.
</Tip>

<div id="4-review-and-adjust">
  ### 4. Rivedi e modifica
</div>

Dopo che Devin ha generato i blueprint:

1. Vai a **Settings > Environment > Blueprints** per controllare ciò che è stato generato
2. Verifica lo stato della build. Assicurati che sia **Success**.
3. Avvia una sessione di test per verificare che tutto funzioni:
   * Conferma che le repo siano clonate e che le dipendenze siano installate
   * Prova a eseguire i comandi di lint, test e build
   * Verifica che eventuali strumenti o runtime personalizzati siano disponibili

Se manca qualcosa, modifica direttamente il blueprint. Puoi aggiungere passaggi `initialize`, comandi `maintenance` o voci `knowledge`.

<div id="rolling-back">
  ## Ripristino
</div>

Se qualcosa non funziona, puoi tornare indietro fino al 31 luglio 2026:

1. Vai a **Settings > Migrazione dell'ambiente**
2. Fai clic su **Revert to classic**
3. La tua organizzazione torna immediatamente a utilizzare lo snapshot precedente

Lo snapshot esistente viene conservato integralmente. Non si perde nulla. Puoi riprovare la migrazione in qualsiasi momento.

<Info>
  Dopo il 30 giugno 2026, tutte le organizzazioni useranno la configurazione dichiarativa, ma la Machine Configuration classica resterà disponibile per il ripristino fino al 31 luglio 2026, quando verrà rimossa. I clienti Enterprise che hanno bisogno di più tempo devono contattare il proprio account team.
</Info>

<div id="mapping-classic-setup-steps-to-blueprints">
  ## Mappatura dei passaggi della configurazione classica nei blueprint
</div>

Se preferisci scrivere il blueprint manualmente (o vuoi capire la mappatura), ecco a cosa corrispondono i passaggi della procedura guidata classica:

| Passaggio della configurazione classica | Equivalente nel blueprint                | Note                                                                                                       |
| --------------------------------------- | ---------------------------------------- | ---------------------------------------------------------------------------------------------------------- |
| Git pull                                | *Automatico*                             | I blueprint gestiscono automaticamente git clone e pull                                                    |
| Secrets                                 | Scheda Secrets nell'editor del blueprint | Configura nella scheda **Secrets** all'interno di ciascun editor di blueprint                              |
| Installazione delle dipendenze          | `initialize`                             | Configurazione una tantum: runtime del linguaggio, pacchetti di sistema, strumenti globali                 |
| Gestione delle dipendenze               | `maintenance`                            | Comandi per le dipendenze esposti all'agente all'inizio della sessione: `npm install`, `pip install`, ecc. |
| Lint                                    | `knowledge` (`name: lint`)               | Solo come riferimento, non eseguito durante le build                                                       |
| Test                                    | `knowledge` (`name: test`)               | Solo come riferimento, non eseguito durante le build                                                       |
| Avvio dell'app                          | `knowledge` (`name: dev-server`)         | Solo come riferimento, non eseguito durante le build                                                       |
| Note aggiuntive                         | `knowledge`                              | Voci in formato libero per Devin                                                                           |

<div id="example">
  ### Esempio
</div>

**Configurazione classica:**

* Installa le dipendenze: `nvm use 20 && npm install`
* Aggiorna le dipendenze: `npm install`
* Lint: `npm run lint`
* Test: `npm test`
* Avvia l'app: `npm run dev`

**Blueprint equivalente:**

```yaml theme={null}
initialize: |
  curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
  source ~/.bashrc
  nvm install 20

maintenance: |
  npm install

knowledge:
  - name: lint
    contents: npm run lint
  - name: test
    contents: npm test
  - name: dev-server
    contents: npm run dev
```

<div id="troubleshooting">
  ## Risoluzione dei problemi
</div>

<AccordionGroup>
  <Accordion title="Build non riuscita">
    Controlla i log di build per individuare l'errore specifico. Cause comuni:

    * Un comando che funzionava nel terminale della configurazione classica non funziona nel contesto di build (ad es. prompt interattivi che richiedono il flag `-y`)
    * secrets mancanti (assicurati che i secrets siano configurati nella scheda **Secrets** dell'editor del blueprint)
    * Confronta i comandi del blueprint con quelli originali per individuare eventuali differenze
  </Accordion>

  <Accordion title="Dipendenze mancanti nelle sessioni">
    Assicurati che la sezione `maintenance` includa gli stessi comandi di installazione delle dipendenze del passaggio classico **Maintain Dependencies**. Comandi come `npm install` o `pip install -r requirements.txt`
    devono trovarsi in `maintenance`, non in `initialize`.
  </Accordion>

  <Accordion title="Devin non sa come eseguire lint o test">
    Verifica che la sezione `knowledge` contenga voci denominate `lint` e `test` con i comandi corretti. Devin cerca questi nomi quando verifica il proprio lavoro.
  </Accordion>

  <Accordion title="Le modifiche personalizzate al profilo della shell non vengono applicate">
    Se la configurazione classica modificava `~/.bashrc`, `~/.profile` o altri file di configurazione della shell, sposta queste modifiche in `initialize`:

    ```yaml theme={null}
    initialize: |
      echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
      echo 'export NODE_ENV=development' >> ~/.bashrc
    ```
  </Accordion>

  <Accordion title="Git pull non funziona">
    I blueprint gestiscono automaticamente `git clone` durante le build. Se le repo non vengono clonate, verifica che siano state aggiunte nella pagina **Settings > Environment > Blueprints** e che Devin abbia accesso tramite la tua integrazione Git.
  </Accordion>
</AccordionGroup>

<div id="related-pages">
  ## Pagine correlate
</div>

* [Configurazione dichiarativa dell'ambiente](/it/onboard-devin/environment/blueprints)
* [Riferimento per i blueprint](/it/onboard-devin/environment/blueprint-reference)
* [Libreria di template](/it/onboard-devin/environment/templates)
