Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release Management #36

Closed
Tracked by #33
feryardiant opened this issue Oct 12, 2023 · 2 comments · Fixed by #55
Closed
Tracked by #33

Release Management #36

feryardiant opened this issue Oct 12, 2023 · 2 comments · Fixed by #55
Labels
business process The method a company uses to accomplish routine activities chore A task that needs to be done enhancement New feature or request experience The way users interact with the product feature request There's a missing piece integration When multiple functionalities should works together

Comments

@feryardiant
Copy link
Contributor

feryardiant commented Oct 12, 2023

Issue ini tidak hanya mencakup bagaimana tata kelola penomoran versi (versioning) semata namun juga proses distribusi / deployment secara umum baik untuk shared project open source, client project maupun di product kita sendiri, antara lain :

General Projects

  • Otomatis generate CHANGELOG.md dan mencatat setiap perubahan atau commit di tiap versi nya.
  • Otomatis membuat github release setiap kali push tag
  • Otomatis deploy ke production tiap kali ada release untuk project app

Client' Projects

  • Otomatisasi integrasi ke Jira jika memungkinkan
  • Generate CHANGELOG.md yang berisi summary atas tasks yang dikerjakan

Our Products

  • Notify pengguna baik pada aplikasi maupun email jika sudah memungkinkan

Workflows

Dalam hal ini kita gunakan convention yang sudah ada dan banyak digunakan aja biar gak ribet mikir lagi, selain itu biasanya sudah ada tools yang bisa kita pakai untuk menggunakan convention tersebut.

Seperti yang sudah saya terapkan selama ini walaupun mungkin bukan yang terbaik atau mungkin juga sudah ada yang lebih baik lagi saat ini, kita perlu gali lagi lebih lanjut. Yaitu dengan menggunakan tool antara lain :

  • Conventional Commit : Seperti yang kita ketahui bahwa ini adalah default format commit message di setiap project di creasico. Tujuan utama nya tidak lain adalah untuk mempermudah proses otomasi pada tahap-tahap berikutnya.

    Dengan menggunakan default config-conventional hal yang masih jadi PR kita bersama adalah SCOPE dari commit tersebut.

  • Version Bump : Saat ini kita menggunakan standard-version dimana tool ini (setidaknya untuk saat ini) cukup bisa diandalkan untuk salah satu poin yang ada di General Project diatas.

    Dan tiap kali ada perubahan versi si standard-version ini akan meng-update field version yang ada di file package.json, yang mana itu adalah tempat satu-satunya untuk menyimpan versi terakhir dari masing-masing repo. Apakah bisa diubah? jawabannya bisa! Tapi untuk saat ini biarkan default seperti itu dulu, kita diskusikan lagi ini nanti. Selain itu, saya prefer definisi di 1 tempat dan bisa digunakan di banyak tempat.

    Nah! dari situ, kendala saat ini adalah penggunaanya masih belum terimplementasi dengan baik khususnya di backend. Ini nanti ada kaitannya juga dengan release management di sentry.

  • Continous Delivery : Kebetulan siang ini kita handle proses deployment salah satu project client kita ke production. Di diskusi tadi saya memutuskan :

    • Gunakan tag untuk deploy ke production, dan
    • Gunakan branch untuk deploy ke staging

    Dimana untuk handle task tersebut perlu konfigurasi github actions yang berbeda. Semua berjalan sesuai harapan, namun masih ada ruang untuk improvement agar proses ini bisa lebih komprehensive.

@feryardiant feryardiant mentioned this issue Oct 12, 2023
5 tasks
@feryardiant feryardiant added chore A task that needs to be done business process The method a company uses to accomplish routine activities experience The way users interact with the product enhancement New feature or request feature request There's a missing piece integration When multiple functionalities should works together labels Oct 12, 2023
@feryardiant feryardiant mentioned this issue Oct 28, 2023
3 tasks
@feryardiant feryardiant linked a pull request Oct 28, 2023 that will close this issue
3 tasks
@feryardiant feryardiant pinned this issue Oct 28, 2023
feryardiant added a commit to creasico/laravel-base that referenced this issue Oct 29, 2023
feryardiant added a commit to creasico/laravel-nusa that referenced this issue Oct 29, 2023
feryardiant added a commit to creasico/laravel-dusk-browserstack that referenced this issue Oct 29, 2023
@sakukode
Copy link

Dari deskripsi issue di atas, apa berarti ada perbedaan CHANGELOG.md utk Our Products dengan Client Projects, dimana kalau untuk Client Projects lebih ke summary tasks. pada commit berikut 05f14bd dijelaskan jika github hanya bisa mendapatkan informasi dari PR's title. Nah bagaimana caranya misal jika kita ingin menyisipkan issue ID (jira) yang mungkin nantinya bisa diintegrasikan dengan jira, apa artinya kita perlu menuliskan issue ID pada commit message atau cukup menuliskan pada PR's title?

@feryardiant
Copy link
Contributor Author

apa berarti ada perbedaan CHANGELOG.md utk Our Products dengan Client Projects, dimana kalau untuk Client Projects lebih ke summary tasks.

Yap! dan ini masih perlu kita godok lagi bagaimana baiknya.

Nah bagaimana caranya misal jika kita ingin menyisipkan issue ID (jira) yang mungkin nantinya bisa diintegrasikan dengan jira

Aku sempet baca sekilas dokumentasi di Jira, terkait integrasi ke GitHub. Di Jira ada beberapa cara dengan nama branch, PR title, PR comment, ataupun commit message. Read:

Tapi hanya berlaku untuk project yang jenis nya "Software Project", bukan "Business Project". Untuk "Business Project" ada app di Jira yang bisa membantu dan udah kita install di project client kita sekarang. Tapi aku liat masih harus nyantumin link PR secara manual.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
business process The method a company uses to accomplish routine activities chore A task that needs to be done enhancement New feature or request experience The way users interact with the product feature request There's a missing piece integration When multiple functionalities should works together
Projects
Archived in project
Development

Successfully merging a pull request may close this issue.

2 participants