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

chore: menambahkan utilities untuk repository #3

Merged
merged 1 commit into from
Nov 29, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 42 additions & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
## Deskripsi (Description)
<!-- Deskripsikan tentang perubahan yang kamu berikan. -->

## Checklist:
### Umum:
<!-- Checklist semua perubahan yang sesuai. -->
- [ ] Saya menambah algoritma terbaru.
- [ ] Saya memperbaiki algoritma yang sudah ada.
- [ ] Saya memperbaiki dokumentasi.
- [ ] Saya menambah dokumentasi.

### Contributor Requirements (Syarat Kontributor) dan Lain-Lain:
<!-- Checklist semua perubahan yang sesuai. Wajib checklist opsi pertama. -->
- [ ] 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:
<!-- Checklist unit tester / linter yang sesuai. -->
- [ ] zig test
- [ ] zig fmt

## Environment

Saya menggunakan (I'm using):
<!-- Ganti sesuai yang digunakan. -->
- ``os`` = ``linux / windows / macOS``
- ``zig`` = ``zig env``
<!-- contoh
{
"zig_exe": "/usr/bin/zig",
"lib_dir": "/usr/lib/zig",
"std_dir": "/usr/lib/zig/std",
"global_cache_dir": "/home/name/.cache/zig",
"version": "0.11.0", <-- versi dari zig
"target": "x86_64-linux.6.6.2...6.6.2-gnu.2.19"
}
--!>

<!-- Jika ada gagal pada salah satu test, kami akan mengeceknya kembali. -->
<!-- If there is a failure in one of the tests, we will check it again. -->
linked issue #NOMOR_ISSUE <!--contoh #1-->
53 changes: 53 additions & 0 deletions .mergify.yml
Original file line number Diff line number Diff line change
@@ -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
1 change: 0 additions & 1 deletion Basic/01_introduction/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,6 @@ choco install zig
# dargonfly bsd
ravensw install zig-single-standard
```
- **


## contoh `hello world` pada zig
Expand Down
111 changes: 111 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -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 <branch_name>
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:
- &#9746; feat: test_x.zig
- &#9745; 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.
7 changes: 6 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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!"
> "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)