From 8df8e1305b96f71673d2a49fc2a43db90a3c8a61 Mon Sep 17 00:00:00 2001 From: arfy slowy Date: Wed, 29 Nov 2023 17:30:12 +0700 Subject: [PATCH] chore: menambahkan utilities untuk repository (#3) Signed-off-by: slowy07 --- .github/pull_request_template.md | 42 ++++++++++++ .mergify.yml | 53 +++++++++++++++ Basic/01_introduction/README.md | 1 - CONTRIBUTING.md | 111 +++++++++++++++++++++++++++++++ README.md | 7 +- 5 files changed, 212 insertions(+), 2 deletions(-) create mode 100644 .github/pull_request_template.md create mode 100644 .mergify.yml create mode 100644 CONTRIBUTING.md diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md new file mode 100644 index 0000000..c293bf4 --- /dev/null +++ b/.github/pull_request_template.md @@ -0,0 +1,42 @@ +## Deskripsi (Description) + + +## Checklist: +### Umum: + +- [ ] Saya menambah algoritma terbaru. +- [ ] Saya memperbaiki algoritma yang sudah ada. +- [ ] Saya memperbaiki dokumentasi. +- [ ] Saya menambah dokumentasi. + +### Contributor Requirements (Syarat Kontributor) dan Lain-Lain: + + - [ ] Saya sudah membaca (I have read) [CONTRIBUTING]() dan sudah menyetujui semua syarat. + - [ ] Saya telah menambahkan komentar (doc comment) yang memberikan penjelasan maksud dari kode yang saya buat. + - [ ] Saya menggunakan bahasa Indonesia untuk memberikan penjelasan dari kode yang saya buat. + +### Unit Testing dan Linting: + +- [ ] zig test +- [ ] zig fmt + +## Environment + +Saya menggunakan (I'm using): + +- ``os`` = ``linux / windows / macOS`` +- ``zig`` = ``zig env`` + + + + +linked issue #NOMOR_ISSUE \ No newline at end of file diff --git a/.mergify.yml b/.mergify.yml new file mode 100644 index 0000000..46d1ede --- /dev/null +++ b/.mergify.yml @@ -0,0 +1,53 @@ +pull_request_rules: + # membuat requirement dari automerge dengan sistem + # ketika workflow build passed maka akan dicentang + # ketika target pull request ke main maka akan dicentang + # ketika dikasih label 'ready-to-merge' akan dicentang + + # ketika requirement telah terpenuhi maka bot akan bekerja + # dan pull request secara otomatis akan merge + - name: ci testing kalo sukses ke squash dengan label + conditions: + - base=main + - label=ready-to-merge + actions: + # menambahkan komentar jika sudah di merge + comment: + message: terima kasih atas kontribusinya @{{author}} ! + # menambahkan label jika sudah di merge + label: + add: + - sudah dirieview! + # metode sistem dari automerge + merge: + method: squash + + # membuat label dengan kondisi jika di dalam pull request + # terdapat file zig + - name: zig label + conditions: + - or: + - body~=(?m)^\[X\] Saya menambah algoritma terbaru. + - body~=(?m)^\[X\] Saya membperbaiki algoritma yang sudah ada. + - files~=\.zig$ + actions: + # menambahkan label 'zig files' + # dan label 'request tim zig untuk review' + label: + add: + - zig files + - request tim zig untuk review + + # membuat label dengan kondisi jika di dalam pull request + # terdapat file markdown + - name: markdown label + conditions: + - or: + - body~=(?m)^\[X\] Saya menambah algoritma terbaru. + - body~=(?m)^\[X\] Saya membperbaiki algoritma yang sudah ada. + - files~=\.md$ + actions: + # menambahkan label 'markdown files' + label: + add: + - markdown files \ No newline at end of file diff --git a/Basic/01_introduction/README.md b/Basic/01_introduction/README.md index 2dfb6ae..3a6fc29 100644 --- a/Basic/01_introduction/README.md +++ b/Basic/01_introduction/README.md @@ -47,7 +47,6 @@ choco install zig # dargonfly bsd ravensw install zig-single-standard ``` -- ** ## contoh `hello world` pada zig diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..dffe98a --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,111 @@ +# *Contributing* + +***Contributor*** + +Kami sangat senang anda telah ikut berkontribusi dalam implementasi algortima, struktur data, atau memperbaiki *error*. +Semua boleh ikut berkontribusi sekecil apapun dengan pengecualian sebagai berikut: + +- Hasil pekerjaan kamu adalah buatan kamu sendiri dan tidak ada hak cipta dari orang lain. Jika kami menemukan kesamaan, maka tidak kami *merge*. +- Hasil kerja kamu akan berlisensi [MIT](LICENSE) ketika *pull request* kamu sudah di-*merge*. +- Hasil kerja kamu wajib mengikuti standar dan *style* koding dari kami. +- Hanya menerima *file* dengan ekstensi ``*.zig``, selain itu dibuat pengecualian dengan menjelaskan secara detail. + +Algoritma harus dikemas sedemikian rupa agar dapat dengan mudah dimasukkan ke dalam program yang lebih besar. + +Algoritma harus: + +- memiliki nama kelas dan fungsi intuitif yang memperjelas tujuannya bagi pembaca; +- menggunakan konvensi penamaan Zig dan nama variabel intuitif untuk memudahkan pemahaman; +- fleksibel untuk mengambil nilai *input* yang berbeda; +- memiliki *doc comment* dengan penjelasan yang jelas dan/atau URL ke materi sumber; +- berisi *testing* yang menguji nilai *input* yang valid dan salah; + +## Doc comments + +penggunaan *doc comments* bertujuan untuk memudahkan pembaca membaca dan mengimplementasikan algoritma + +**docs comment yang baik** +```zig +const std = @import("std"); + +fn angka(a: i32, b: i32) i32 { + // membuat fungsi untuk menambahkan 2 angka yaitu a dan b + // parameter: + // a (i32): angka integer + // b (i32): angka integer + // return: + // hasil nilai yang ditambahkan + // contoh + // hasil = angka(3, 2); + // std.debug.print("{d}\n", .{hasil}); + return a + b; +} + +pub fn main() void { + var result = angka(13, 14); + std.debug.print("result {d}\n", .{result}); +} +``` + +## format dan testing + +kami menggunakan default format dari zig untuk memformat file dan kamu bisa mengetest file zig kamu dengan + +```bash +zig fmt . + +# atau +zig fmt --check . +``` + +```bash +zig test namaFile.zig +``` + +# *Pull Request* + +***Pull request* yang baik** + +Informasi: gunakan [*issue*](https://github.com/bellshade/zig/issues) apabila ingin menambahkan kode atau implementasi algoritma, dll (*basic*) agar tidak ada konflik dengan *pull request* lainnya. Kamu juga bisa menggunakan issue jika kamu ada +kendala atau masalah ketika melakukan pull request. Kamu juga bisa bertanya pada forum discord **WPU** dan **Kelas Terbuka** perihal bellshade. + +- Lakukan penjelasan deskripsi perubahan yang anda lakukan pada repositori kami dengan membuat penjelasan di [*issue*](https://github.com/bellshade/zig/issues). +- Setelah menjelaskan perubahan anda di [*issue*](https://github.com/bellshade/zig/issues) kemudian lakukan *fork* pada repositori kami. +- Setelah melakukan *fork*, anda dibebaskan untuk mengubah atau menambah algoritma. + - Untuk *pull request* merubah atau memperbaiki, diusahakan kamu menerapkan algoritma yang lebih baik dan lebih mudah serta memeberikan penjelasan lebih detail alasan dari perubahaan tersebut lebih baik dari sebelumnya. +- Setelah merubah-rubah atau menambahkan algoritma serta melakukan tes lokal kode kamu, usahakan kamu membuat *local branch* baru: + ```bash + git checkout -b + git add . # atau git add nama_perubahan_kamu.zig + git commit -m "feat: menambahkan algoritma terbaru" + ``` +- Lakukan *push* ke *branch* kamu dan kemudian *open pull request*. + +**Saran pesan commit** + +- `feat:` untuk menambah algoritma atau tambahan lainnya; +- `fix:` untuk mengubah algoritma yang sudah ada atau memperbaiki; +- `docs:` untuk mengubah atau membuat dokumentasi; +- `add:` untuk menambah algoritma atau tambahan lainnya (opsional); + +Catatan: pesan commit harus menjelaskan perubahan secara singkat. + +Contoh yang benar: +- ☒ feat: test_x.zig +- ☑ feat: tambah testing untuk algoritma x + +Lebih lengkapnya bisa dilihat di: +- [EN](https://www.conventionalcommits.org/en/v1.0.0/) +- [ID](https://www.conventionalcommits.org/id/v1.0.0/) + +Pull request akan di-*merge* jika: + +- mengikuti standar dan arahan dari `CONTRIBUTING.md`; +- lulus tes dan cek dari beberapa tes yang sudah kami siapkan. + +**Tambahan**: + +- Jika ada kendala atau masalah dalam *pull request*, kamu bisa laporkan masalahnya dalam [issue](https://github.com/bellshade/zig/issues). +- Jika ada tes yang tidak lewat atau gagal, kami akan cek kembali perubahan anda. + +Untuk *pull request*, disarankan untuk menjelaskan secara detail yang kamu ubah atau tambahkan, dan bersikap sopan serta selalu berterima kasih. Itu salah satu bentuk tata krama yang baik terhadap sesama *contributor* dan *programmer* lainnya. \ No newline at end of file diff --git a/README.md b/README.md index b23fa6c..7561a31 100644 --- a/README.md +++ b/README.md @@ -13,10 +13,15 @@ Untuk menggunakan repositori dengan maksimal, kalian perlu belajar programming d | Langkah | Topik | Target Pembelajaran | Materi Rujukan | | :-----: | :------------------------------: | :-----------------------------------------------------------------------------------: | :-----------------------------------: | | 01 | Introduksi Pemograman dan Zig | Memahami apa itu membuat program dan apa peran Zig dalam proses pembuatan program | [Materi](Basic/01_introduction) | +| 02 | Tipe data | Memahami apa itu tipe data | [Materi](Basic/02_tipe_data) | ## 🤩 Ayo ikut kami dan berkontribusi! 🤩 Bantuan kalian diperlukan Agar Bellshade dapat lebih jauh lagi membantu anak-anak Indonesia belajar _programming_, kita butuh tenaga kalian! -> "Dengan Bellshade, aku jadi bisa _ngoding_! Terima kasih Bellshade!" \ No newline at end of file +> "Dengan Bellshade, aku jadi bisa _ngoding_! Terima kasih Bellshade!" + +Kami sangat senang bila kalian ingin melakukan kontribusi pada repositori **Zig** ini. Tapi, sebelum itu, silahkan baca terlebih dahulu [peraturan dan pedomannya](CONTRIBUTING.md) yang telah kami siapkan. Terima kasih! + +Untuk informasi lebih lanjut, mari gabung dalam komunitas [Discord Channel WPU](http://discord.gg/S4rrXQU) dan [Discord Channel Kelas Terbuka](https://discord.gg/eavqxxTU) \ No newline at end of file