====== Release-Proces ======
Upute za objavljivanje novih verzija WvdS FPC RAD Studia.
===== Verzioniranje =====
==== Semantic Versioning ====
MAJOR.MINOR.PATCH
│ │ └── Bug Fixes
│ └── Nove značajke (unatrag kompatibilne)
└── Breaking Changes
==== Pre-Release-Verzije ====
* ''1.0.0-alpha.1'' - Rani razvoj
* ''1.0.0-beta.1'' - Feature-Complete, Testing
* ''1.0.0-rc.1'' - Release Candidate
===== Release-Checklista =====
PRE-RELEASE:
[ ] Svi testovi prošli
[ ] Code Review završen
[ ] Dokumentacija ažurirana
[ ] CHANGELOG ažuriran
[ ] Verzija u package.json ažurirana
[ ] Nema TODO/FIXME u kodu
BUILD:
[ ] Release-Build kreiran (--mode release)
[ ] Build-artefakti provjereni
[ ] VSIX-paketi kreirani
[ ] Paketi lokalno testirani
PUBLISH:
[ ] Git Tag kreiran
[ ] GitHub Release kreiran
[ ] Marketplace Publishing
[ ] Dokumentacija deployirana
POST-RELEASE:
[ ] Version bump za sljedeći razvoj
[ ] Release-Notes komunicirane
===== Održavanje CHANGELOG-a =====
# Changelog
## [1.2.0] - 2024-01-15
### Added
- Nova značajka X
- Podrška za Y
### Changed
- Poboljšano ponašanje kod Z
### Fixed
- Ispravljena greška u značajki A (#123)
### Removed
- Uklonjena deprecated značajka B
===== Kreiranje Builda =====
# Clean Build
wvds-build clean
wvds-build --mode release
# Kreiranje VSIX-a
wvds-build package
# Rezultat u binaries/dist/
ls binaries/dist/
# wvds-vscode-core-1.2.0.vsix
# wvds-vscode-build-1.2.0.vsix
# ...
===== Git-Workflow =====
# Osigurajte da je main ažuran
git checkout main
git pull origin main
# Ažuriranje verzije
# Uredite package.json, CHANGELOG.md
# Commit
git add -A
git commit -m "Release v1.2.0"
# Kreiranje Taga
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
===== Marketplace Publishing =====
==== Preduvjeti ====
* ''vsce'' instaliran: ''npm install -g @vscode/vsce''
* Personal Access Token (PAT) s Marketplace-Scopeom
* Publisher-Account registriran
==== Objavljivanje ====
# Pojedinačni Extension
vsce publish -p $PAT
# Svi Extensioni
for vsix in binaries/dist/*.vsix; do
vsce publish --packagePath "$vsix" -p $PAT
done
==== Verifikacija ====
Nakon objavljivanja:
- Provjerite Marketplace-stranicu
- Testirajte instalaciju u VS Code
- Je li README ispravno prikazan?
===== Hotfix-Proces =====
Za kritične bugove nakon Releasea:
# Kreiranje Hotfix-Brancha od Taga
git checkout -b hotfix/1.2.1 v1.2.0
# Implementacija popravka
# ...
# Testiranje, commit
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 i 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 u main
git checkout main
git merge hotfix/1.2.1
git push origin main
===== Rollback =====
Ako je Release neispravan:
# Marketplace: Označite prethodnu verziju kao "latest"
vsce unpublish wvds.wvds-vscode-core@1.2.0
# Ili: Objavite Hotfix
===== Automatizacija =====
==== 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
===== Vidi također =====
* [[.:build-pipeline|Build-Pipeline]]
* [[..:p:packaging|Packaging Extension]]
* [[.:testing|Testing]]