Inhaltsverzeichnis

Processo di release

Guida alla pubblicazione di nuove versioni di WvdS FPC RAD Studio.

Versionamento

Versioning semantico

MAJOR.MINOR.PATCH
  │     │     └── Bug fix
  │     └── Nuove funzionalita (retrocompatibili)
  └── Breaking change

Versioni pre-release

Checklist release

PRE-RELEASE:
[ ] Tutti i test superati
[ ] Code review completata
[ ] Documentazione aggiornata
[ ] CHANGELOG aggiornato
[ ] Versione aggiornata in package.json
[ ] Nessun TODO/FIXME nel codice

BUILD:
[ ] Build release creata (--mode release)
[ ] Artefatti build verificati
[ ] Pacchetti VSIX creati
[ ] Pacchetti testati localmente

PUBLISH:
[ ] Tag Git creato
[ ] Release GitHub creata
[ ] Pubblicazione Marketplace
[ ] Documentazione deployata

POST-RELEASE:
[ ] Version bump per prossimo sviluppo
[ ] Note di release comunicate

Manutenzione CHANGELOG

# Changelog
 
## [1.2.0] - 2024-01-15
 
### Added
- Nuova funzionalita X
- Supporto per Y
 
### Changed
- Comportamento migliorato per Z
 
### Fixed
- Bug nella funzionalita A risolto (#123)
 
### Removed
- Funzionalita B deprecata rimossa

Creare il build

# Clean build
wvds-build clean
wvds-build --mode release
 
# Creare VSIX
wvds-build package
 
# Risultato in binaries/dist/
ls binaries/dist/
# wvds-vscode-core-1.2.0.vsix
# wvds-vscode-build-1.2.0.vsix
# ...

Workflow Git

# Assicurarsi che main sia aggiornato
git checkout main
git pull origin main
 
# Aggiornare versione
# Modificare package.json, CHANGELOG.md
 
# Commit
git add -A
git commit -m "Release v1.2.0"
 
# Creare tag
git tag -a v1.2.0 -m "Version 1.2.0"
 
# Push
git push origin main
git push origin v1.2.0

GitHub Release

gh release create v1.2.0 \
  --title "WvdS FPC RAD Studio v1.2.0" \
  --notes-file CHANGELOG.md \
  binaries/dist/*.vsix

Pubblicazione Marketplace

Prerequisiti

Pubblicare

# Singola estensione
vsce publish -p $PAT
 
# Tutte le estensioni
for vsix in binaries/dist/*.vsix; do
  vsce publish --packagePath "$vsix" -p $PAT
done

Verificare

Dopo la pubblicazione:

  1. Verificare pagina Marketplace
  2. Testare installazione in VS Code
  3. README visualizzato correttamente?

Processo hotfix

Per bug critici dopo il release:

# Creare branch hotfix dal tag
git checkout -b hotfix/1.2.1 v1.2.0
 
# Implementare fix
# ...
 
# Testare, committare
git commit -m "Fix: Critical bug in X"
 
# Version bump
# package.json: 1.2.0 -> 1.2.1
 
git commit -m "Bump version to 1.2.1"
 
# Tag e release
git tag -a v1.2.1 -m "Hotfix: Critical bug in X"
git push origin hotfix/1.2.1
git push origin v1.2.1
 
# Merge in main
git checkout main
git merge hotfix/1.2.1
git push origin main

Rollback

Se un release e difettoso:

# Marketplace: marcare versione precedente come "latest"
vsce unpublish wvds.wvds-vscode-core@1.2.0
 
# Oppure: pubblicare hotfix

Automazione

GitHub Actions

name: Release

on:
  push:
    tags:
      - 'v*'

jobs:
  release:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: Build
        run: wvds-build --mode release

      - name: Package
        run: wvds-build package

      - name: Create Release
        uses: softprops/action-gh-release@v1
        with:
          files: binaries/dist/*.vsix

      - name: Publish to Marketplace
        env:
          VSCE_PAT: ${{ secrets.VSCE_PAT }}
        run: |
          npm install -g @vscode/vsce
          for vsix in binaries/dist/*.vsix; do
            vsce publish --packagePath "$vsix"
          done

Vedi anche