1.0.1 • Published 6 months ago

@fewangsit/wangsvue-monorepo v1.0.1

Weekly downloads
-
License
MIT
Repository
-
Last release
6 months ago

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 di packages/[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 dev dan main hanya 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 develop maupun stage environtment. 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-component
      • feat/sales/dashboard-widget

        3.2. Perbaikan Bug (Hotfix)

    • Gunakan format: hotfix/{workspace-name}/{component-name}

    • Contoh:
      • hotfix/fats/fix-error-on-export
      • hotfix/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

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>, misal pnpm 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 perintah git merge dev untuk 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. Misal pnpm 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 main dari 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.