@fewangsit/wangsvue-monorepo v1.0.1
Standar Pengelolaan Kode di @fewangsit/wangsvue-monorepo
1. Struktur Kode di wangsvue
- Semua types atau Data Transfer Object (DTO) tidak boleh dibuat di repo ini.
- Sebagai gantinya, semua deklarasi tipe dan DTO harus didefinisikan langsung di dalam repo API Services masing masing project.
- Yang sudah terlanjut di buat disini akan di pindahkan secara bertahap.
- Component commons di folder library adalah komponen yang tidak memerlukan spesifik type/interface dari project apapun. Komponen commons tidak boleh mengimport types/interface dari repo API Services.
- Component commons yang tidak diperlukan oleh semua project atau hanya beberapa project tertentu tidak boleh di import di
library/component/index.ts, cukup di import dipackages/[nama package]/component/index.ts, agar tidak menambah bundle size ke package lain yang tidak membutuhkannya. - Preset hanya dibuat untuk component commons. Selain itu bisa dengan inline tailwind class.
2. Testing
- Testing akan mulai diberlakukan untuk komponen. Dimulai dari component commons.
- Jika testing sudah berjalan, maka test harus dijalankan sebelum release.
3. Pengelolaan Branch
- Setiap pengembangan fitur baru atau perbaikan bug wajib dilakukan di branch terpisah. Kecuali jika hanya bug kecil dan yakin akan bisa diselesaikan dalam sekejap.
Branch
devdanmainhanya digunakan untuk keperluan rilis.- Branch
dev: Untuk persiapan rilis atau pengujian gabungan (staging). - Branch
main: Untuk rilis versi final. - Tidak ada staging. Versi prerelease alpha bisa di gunakan di
developmaupunstageenvirontment. Maka Dari itu, untuk api services di buat terpisah agar pengelolaan branch lebih sederhana.
Konvensi Penamaan Branch
3.1. Pengembangan Fitur Baru
- Gunakan format:
feat/{workspace-name}/{component-name} Contoh:
feat/acts/new-componentfeat/sales/dashboard-widget3.2. Perbaikan Bug (Hotfix)
Gunakan format:
hotfix/{workspace-name}/{component-name}- Contoh:
hotfix/fats/fix-error-on-exporthotfix/wangs/login-issue
Gunakan nama workspace berikut untuk penamaan branch:
- acts :
packages/admin-tagsamurai - fats :
packages/fixedasset-tagsamurai - sales :
packages/sales - wangs :
packages/wangsit-workspace
- Branch
4. Menjalankan Development Server
- Gunakan terminal yang mendukung bash script. Misal git bash.
- Menjalankan pnpm dev akan menjalankan vite dev server dengan default preset "wangsvue".
- Untuk mengganti preset, gunakan option
--preset <nama preset>, misalpnpm dev --preset fixedasset
5. Cara Melakukan Release
- Gunakan terminal yang mendukung bash script. Misal git bash.
- Release stable version hanya dilakukan di branch main.
Release alpha version bisa dilakukan di branch dev, hotfix/*, atau feat/*.
Untuk release stable, checkout branch
main, lalu gunakan perintahgit merge devuntuk menarik semua perubahan di branch dev ke main. Pastikan sebelum melakukan ini, branch dev sudah benar benar tested dan stabil.- Jika hanya ingin mengambil beberapa perubahan, gunakan
git cherry-pick <commit hash> Jalan kan,
pnpm release <nama-workspace>, beda dari sebelumnya, sesuaikan dengan field name di package.json. Misalpnpm release wangsvue-acts.Untuk release alpha di branch dev, gunakan
pnpm release:alpha <nama-workspace>- Kedua perintah ini akan menaikkan patch version.
- Setelah melakukan release di branch main. Merge ke branch dev, dengan jalankan
git merge maindari branch dev. - Setelah relase, segera push ke remote.
6. Tambahan
Selain release, kita bisa menggunakan command pnpm serve:http <nama-workspace> untuk sigle-spa local override.
Command ini akan menjalankan release build lalu serving dist folder di localhost.
6 months ago