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.

Membatalkan Perubahan File dengan Git

Salah satu keuntungan menggunakan version control adalah kita bisa dengan mudah mengembalikan kondisi file ke masa lalu. Hal ini dibutuhkan bila ternyata ada anggota tim membuat perubahan yang ternyata tidak bisa digunakan. Contohnya, di Java kita menggunakan library FlywayDB untuk mengurus migrasi database. File migrasi ini sekali sudah dijalankan maka tidak boleh diedit lagi. Bila diedit, maka akan keluar error seperti ini

Caused by: org.flywaydb.core.api.FlywayException: Validate failed. Migration Checksum mismatch for migration 1.0.0.2017111302
-> Applied to database : -1966400148
-> Resolved locally    : -1305984306

Bila hal ini terjadi, maka kita ingin mengembalikan file migrasi tersebut ke kondisi sebelum diedit. Berikut langkah-langkahnya:

Lanjut membaca ...


Mengirim Email dengan GMail API

Selama ini, bila kita membuat aplikasi yang ada fitur kirim emailnya (reset password, pengumuman, newsletter, dan sebagainya), biasanya kita menggunakan protokol SMTP. Akan tetapi, beberapa tahun belakangan ini, layanan SaaS (software as a service) bermunculan seperti cendawan di musim hujan. Sebagian besar di antaranya tidak lagi menggunakan protokol SMTP, tapi menyediakan API di atas protokol HTTP.

Ada banyak penyedia jasa layanan email, diantaranya:

  • SendGrid
  • MailerLite
  • Amazon
  • GMail

Pada artikel ini kita akan membahas yang paling populer saja, yaitu GMail. GMail menyediakan dua pilihan bila kita ingin mengirim email dari aplikasi kita : SMTP atau HTTP API. Kita akan gunakan HTTP API.

Berikut langkah-langkahnya:

Lanjut membaca ...


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 ...