Skip to content

Release Process

Standar versioning, changelog, dan deployment

Versioning

Gunakan Semantic Versioning:

MAJOR.MINOR.PATCH
BumpKapan
MAJORBreaking changes — API tidak backward-compatible
MINORFitur baru — backward-compatible
PATCHBug fix — backward-compatible

Contoh

  • v1.0.0 — Rilis pertama
  • v1.1.0 — Tambah fitur payment
  • v1.1.1 — Fix typo di invoice
  • v2.0.0 — Migrasi ke API v2 (breaking)

Release Cycle

flowchart LR
    Dev[Develop] -->|Fitur selesai| Freeze[Feature Freeze]
    Freeze --> RC[Release Candidate]
    RC -->|Testing| QA[QA Pass]
    QA --> Prod[Production]
    Prod --> Tag[Tag vX.Y.Z]
    Tag --> MergeBack[Merge ke develop]
    style Dev fill:#3b82f6,color:#fff
    style Prod fill:#22c55e,color:#fff
    style Tag fill:#a855f7,color:#fff

Tahapan

  1. Feature Freeze — Semua fitur untuk rilis ini harus sudah di-merge ke develop
  2. Cut Release Branchgit checkout -b release/vX.Y.Z
  3. QA Testing — Bug fix saja di release branch, tidak ada fitur baru
  4. Deploy ke Staging — UAT oleh product owner
  5. Deploy ke Production — Merge ke main, tag, deploy
  6. Merge Back — jangan lupa merge perubahan ke develop

Changelog

Setiap rilis harus punya changelog yang jelas. Gunakan format Keep a Changelog:

# Changelog

## [1.2.0] - 2026-06-05

### Added
- Fitur payment gateway (Midtrans)
- Halaman history transaksi
- Export invoice ke PDF

### Changed
- Redirect setelah login ke halaman sebelumnya
- Upgrade SvelteKit v2 → v3

### Fixed
- Crash saat amount null di webhook
- Typo di email notifikasi (#45)

Deploy Checklist

Sebelum deploy ke production, pastikan:

  • Semua test lulus (npm run test)
  • Build sukses (npm run build)
  • Tidak ada warning/error di console
  • API backward-compatible (kalo ada perubahan, bump MAJOR)
  • Database migration sudah siap (kalo ada)
  • Backup database terbaru
  • Monitoring aktif (health check, error tracking)
  • Rollback plan: git revert + deploy ulang

Rollback

Jika terjadi masalah setelah deploy:

# 1. Identifikasi commit terakhir yang stable
git log --oneline main

# 2. Revert
git revert HEAD
git push origin main

# 3. Deploy ulang
npm run build
pm2 restart mdweb

Golden rule: Jangan panik. Revert dulu, fix kemudian.