Living life and Make it Better

life, learn, contribute

Endy Muhardin

Software Developer berdomisili di Jabodetabek, berkutat di lingkungan open source, terutama Java dan Linux.

Workflow Git untuk Manajemen Pengembangan Aplikasi

Pada artikel sebelumnya, kita sudah membahas tentang workflow development baik sebagai kontributor maupun sebagai maintainer. Dengan dua artikel tersebut, kita sudah bisa membuat perubahan dalam source code, dan juga bisa menerima dan mengintegrasikan hasil pekerjaan orang lain ke repo utama.

Walaupun demikian, kita belum membahas bagaimana cara mengelola siklus pengembangan aplikasi. Kita terutama ingin mengatasi beberapa permasalahan berikut:

  • bagaimana semua kontributor bisa bekerja sama dengan baik
  • bagaimana memastikan kode program yang dihasilkan oleh kontributor bisa direview dengan seksama
  • bagaimana melakukan rilis ke testing server dan production
  • bagaimana menangani bug yang terjadi di production sambil tetap mengerjakan development untuk versi selanjutnya
  • bagaimana meng-copy bugfix yang sudah kita kerjakan di atas production release (hotfix) ke development
  • bagaimana mengotomasi proses rilis menggunakan continuous integration/delivery

TLDR; Workflow yang kita gunakan di ArtiVisi adalah sebagai berikut:

  • single permanent branch : master
  • develop di topic branch
  • push branch ke remote
  • raise pull request dari branch
  • merge pull request
  • hapus branch setelah merge
  • deploy ketika ada tag dibuat

    • A.B.C-M.xxx : deploy ke dev (otomatis)
    • A.B.C-RC.xxx : deploy ke test (otomatis)
    • A.B.C-RELEASE : deploy ke production (manual)
  • bugfix di release branch, kemudian merge ke master

Visualisasinya seperti ini

Bila setelah membaca masih bingung, bisa nonton video penjelasan workflow atau video training Git

Buat yang fakir kuota atau lebih suka versi tulisan, berikut penjelasan versi panjangnya …

Lanjut membaca ...


Workflow Git untuk Maintainer Project Open Source

Pada artikel sebelumnya, kita sudah membahas tentang apa yang harus dilakukan oleh kontributor agar hasil pekerjaannya siap untuk digabungkan dengan repository utama/induk/upstream, yaitu membuat Pull Request.

Sebagai maintainer project, tugas kita adalah memilah semua kontribusi yang masuk. Bila kontribusinya bagus, maka kita masukkan ke dalam project. Bila kurang bagus, kita pandu untuk memperbaikinya.

Kita bisa menerima kontribusi dalam berbagai bentuk, misalnya:

  • Pull Request di aplikasi version control (Github, Gitlab, Bitbucket, dsb)
  • Link repository kontributor dan branchnya
  • File patch

Begitu kita mendapatkan kontribusi, ada beberapa hal yang harus kita lakukan, yaitu:

Lanjut membaca ...


Workflow Git untuk Kontributor Project Open Source

Beberapa waktu belakangan ini, saya membuat beberapa aplikasi yang kemudian dirilis secara open source. Karena kultur open-source di Indonesia masih berkutat di level user, maka masih jarang yang mau ikut berkontribusi. Mungkin perlu dukungan dari perusahaan agar karyawannya terlibat dalam project open source, ataupun merilis aplikasi yang dibuatnya dengan lisensi open source.

Kendala-kendala yang biasanya terdengar antara lain:

  • tidak punya cukup waktu luang
  • tidak tertarik dengan aplikasi atau teknologi yang digunakan
  • merasa belum cukup mahir coding
  • tidak familiar dengan cara kerja menggunakan Git

Masalah yang pertama dan kedua, saya tidak ada solusinya.

Untuk yang ketiga, seharusnya coba saja kontribusi. Satu dua baris tetap diterima. Kalaupun ada yang perlu diperbaiki, biasanya akan saya berikan feedback yang jelas.

Problem keempat, sebetulnya saya sudah buatkan video tutorialnya.

Tapi agar lebih jelas, saya akan buatkan rangkuman langkah-langkah dan perintah Git yang harus dilakukan.

Lanjut membaca ...


Hosting Blog dengan SSL di Gitlab

Sejak beberapa waktu yang lalu, blog ini sebetulnya sudah pindah hosting dari Github ke Gitlab. Alasannya sederhana, Github sampai saat artikel ini ditulis tidak mendukung SSL untuk custom domain. Ada sih akal-akalan menggunakan CloudFlare, seperti dijelaskan di artikel ini, tapi tetap saja koneksi dari CloudFlare ke Github tidak terproteksi.

Oleh karena itu, saya pindahkan hostingnya ke Gitlab. Berikut langkah-langkah untuk memasang sertifikat SSL.

Lanjut membaca ...


Menggunakan Proprietary Jar dengan Gitlab CI dan Heroku

Pada artikel sebelumnya, kita sudah mengotomasi proses build dengan Gitlab CI dan deployment ke Heroku. Proses tersebut bisa dilakukan dengan lancar apabila semua library/dependensi yang kita gunakan dalam aplikasi kita adalah open source. Dependensi open source tersedia di repository Maven Central, sehingga dimanapun kita jalankan perintah build, maka Maven akan mengunduh dependensi yang dibutuhkan langsung dari internet.

Akan menjadi persoalan kalau project kita menggunakan library yang tidak open source atau proprietary. Contoh paling umum adalah database Oracle. Agar aplikasi kita bisa terhubung ke database Oracle, kita harus menggunakan JDBC Driver dari Oracle yang tidak open source, sehingga tidak tersedia di Maven Central.

Untuk mengatasi hal ini, kita perlu menyesuaikan proses build aplikasi kita agar tetap bisa berjalan otomatis dari commit hingga deployment.

Lanjut membaca ...