====== WvdS VSCode Packaging ======
La Packaging Extension crea pacchetti VSIX e permette la pubblicazione su Visual Studio Marketplace.
===== Funzione e scopo =====
La Packaging Extension offre:
* **Creazione VSIX** - Pacchetti per estensioni VS Code
* **Gestione versioni** - Gestione automatica dei numeri di versione
* **Supporto multi-estensione** - Pacchettizzare più estensioni contemporaneamente
* **Pubblicazione Marketplace** - Pubblicazione diretta
===== Comandi =====
^ Comando ^ Descrizione ^
| ''WVDS: Create VSIX Package'' | Crea un pacchetto VSIX |
| ''WVDS: Publish Package'' | Pubblica su VS Marketplace |
===== Creare pacchetti VSIX =====
==== Prerequisiti ====
* Node.js installato
* Tool ''vsce'' disponibile:
npm install -g @vscode/vsce
==== Flusso di lavoro ====
- Assicuratevi che il progetto compili
- ''Ctrl+Shift+P'' -> ''WVDS: Create VSIX Package''
- Selezionate l'estensione (se ce ne sono più di una)
- Il pacchetto viene creato in ''binaries/dist/''
==== Output ====
binaries/dist/
wvds-vscode-core-0.1.0.vsix
wvds-vscode-build-0.1.0.vsix
...
===== Gestione versioni =====
==== Semantic Versioning ====
La suite utilizza Semantic Versioning (SemVer):
MAJOR.MINOR.PATCH
1.0.0
^ Parte ^ Incrementare quando ^
| MAJOR | Breaking changes, modifiche API incompatibili |
| MINOR | Nuove funzionalità, retrocompatibile |
| PATCH | Bug fix, nessuna modifica alle funzionalità |
==== Incremento automatico ====
Durante la pacchettizzazione, la versione può essere incrementata automaticamente:
- Selezionate "Increment Version" nel dialogo
- Scegliete la parte da incrementare (MAJOR, MINOR, PATCH)
- Il package.json viene aggiornato
==== Versioni pre-release ====
Per release beta:
1.0.0-beta.1
1.0.0-rc.1
===== Pacchettizzazione multi-estensione =====
La suite è composta da più estensioni che possono essere pacchettizzate insieme.
==== Extension Pack ====
Un Extension Pack raggruppa più estensioni:
{
"name": "wvds-fpc-rad-suite",
"displayName": "WvdS FPC RAD Suite",
"extensionPack": [
"wvds.wvds-vscode-core",
"wvds.wvds-vscode-build",
"wvds.wvds-vscode-projects",
"wvds.wvds-vscode-ui-designer",
"wvds.wvds-vscode-ui-meta",
"wvds.wvds-vscode-ui-preview",
"wvds.wvds-vscode-packaging"
]
}
==== Pacchettizzazione batch ====
Pacchettizzare tutte le estensioni in una volta:
- ''WVDS: Create VSIX Package''
- Selezionate "All Extensions"
- Tutti i pacchetti vengono creati
===== Pubblicazione su Marketplace =====
==== Prerequisiti ====
- **Organizzazione Azure DevOps** - Per account publisher
- **Personal Access Token (PAT)** - Con permessi Marketplace
- **Publisher ID** - Registrato su marketplace.visualstudio.com
==== Creare un publisher ====
- Visitate [[https://marketplace.visualstudio.com/manage|marketplace.visualstudio.com/manage]]
- Create un publisher
- Annotate il Publisher ID
==== Creare un PAT ====
- Visitate [[https://dev.azure.com|dev.azure.com]]
- User Settings -> Personal Access Tokens
- Create un token con scope "Marketplace (Publish)"
==== Pubblicare ====
- ''WVDS: Publish Package''
- Inserite il PAT (viene memorizzato in modo sicuro)
- L'estensione viene caricata
Non pubblicate estensioni con dati sensibili!
===== Controlli pre-pubblicazione =====
Prima della pubblicazione vengono controllati automaticamente:
^ Controllo ^ Descrizione ^
| Version | Deve essere superiore alla versione pubblicata |
| README | Deve essere presente e non vuoto |
| CHANGELOG | Deve contenere le modifiche per la versione corrente |
| License | Deve essere specificata |
| Icon | Consigliato (PNG 128x128) |
| Repository | Consigliato (link al codice sorgente) |
===== Requisiti package.json =====
Per la pubblicazione su Marketplace:
{
"name": "wvds-vscode-core",
"displayName": "WvdS VSCode Core",
"description": "Infrastruttura centrale per WvdS FPC RAD Studio",
"version": "0.1.0",
"publisher": "wvds",
"license": "MIT",
"icon": "images/icon.png",
"repository": {
"type": "git",
"url": "https://github.com/ArmandoFilho/WvdS.FPC"
},
"engines": {
"vscode": "^1.85.0"
},
"categories": ["Other"],
"keywords": ["pascal", "fpc", "free pascal"]
}
===== Installazione locale =====
Per testare prima della pubblicazione:
code --install-extension binaries/dist/wvds-vscode-core-0.1.0.vsix
Oppure in VS Code:
- Extensions -> "..." -> "Install from VSIX..."
- Selezionate il file VSIX
===== Risoluzione dei problemi =====
==== "vsce not found" ====
**Causa:** vsce non installato.
**Soluzione:**
npm install -g @vscode/vsce
==== "Invalid publisher" ====
**Causa:** Publisher ID in package.json non corrisponde al publisher registrato.
**Soluzione:**
- Controllate il Publisher ID in package.json
- Assicuratevi che il publisher sia registrato
==== "Version already exists" ====
**Causa:** Questa versione è già stata pubblicata.
**Soluzione:**
- Incrementate il numero di versione
- Utilizzate la funzione Increment
==== "PAT expired" ====
**Causa:** Personal Access Token scaduto.
**Soluzione:**
- Create un nuovo PAT
- Inseritelo alla prossima pubblicazione
===== Dettagli tecnici =====
^ Proprietà ^ Valore ^
| Extension ID | wvds.wvds-vscode-packaging |
| Attivazione | onCommand:wvds.packaging.create |
| Dipendenze | wvds-vscode-core, wvds-vscode-build |
| Min. VS Code | 1.85.0 |
===== Vedere anche =====
* [[.:build|Build Extension - Compilazione]]
* [[.:core|Core Extension - Toolchain]]
* [[https://code.visualstudio.com/api/working-with-extensions/publishing-extension|VS Code Publishing Docs]]