Skip to content

Commit c26e934

Browse files
authored
Merge pull request #3697 from irvifa/id/add-contributor-cheatsheet
Initialize contributing cheatsheet in Bahasa Indonesia.
2 parents 4d75472 + f7e521a commit c26e934

File tree

1 file changed

+394
-0
lines changed

1 file changed

+394
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,394 @@
1+
# _Cheat Sheet_ Kontributor Kubernetes
2+
3+
Kumpulan _resources_ umum yang digunakan ketika berkontribusi ke Kubernetes,
4+
termasuk _tips_, trik, dan _best practices_ yang digunakan di dalam
5+
proyek Kubernetes. Ini merupakan referensi singkat ("TL;DR") informasi
6+
yang bermanfaat untuk meningkatkan pengalaman kamu ketika berkontribusi
7+
di GitHub menjadi lebih baik.
8+
9+
**Daftar Isi**
10+
- [_Resources_](#Resources)
11+
- [Mulai Berkontribusi](#Mulai-Berkontribusi)
12+
- [_SIG_ dan Grup Lainnya](#SIG-dan-Grup-lainnya)
13+
- [Komunitas](#Komunitas)
14+
- [Alamat Email Penting](#Alamat-Email-Penting)
15+
- [_Workflow_](#Workflow)
16+
- [Tes](#Testing)
17+
- [Tautan Lain](#Tautan-Lain)
18+
- [Berkomunikasi Secara Efektif di GitHub](#Berkomunikasi-Secara-Efektif-di-GitHub)
19+
- [Bagaimana Cara Bekerja Sama dengan Baik](#Bagaimana-Cara-Bekerja-Sama-dengan-Baik)
20+
- [Contoh Komunikasi Yang Baik/Buruk](#Contoh-Komunikasi-yang-BaikBuruk)
21+
- [Langkah Berkontribusi](#Langkah-Berkontribusi)
22+
- [Menyetujui CLA](#Menyetujui-CLA)
23+
- [Membuka dan Menanggapi Isu](#Membuka-dan-Menanggapi-Isu)
24+
- [Membuat sebuah Isu](#Membuat-sebuah-Isu)
25+
- [Menanggapi sebuah Isu](#Menaggapi-sebuah-Isu)
26+
- [Membuka _Pull Request_](#Membuka-Pull-Request)
27+
- [Membuat a _Pull Request_](#Membuat-Pull-Request)
28+
- [Contoh Deskripsi _Pull Request_](#Contoh-Deskripsi-Pull-Request)
29+
- [_Troubleshoot_ sebuah _Pull Request_](#Troubleshooting-sebuah-Pull-Request)
30+
- [Label](#Label)
31+
- [Mekanisme Pengerjaan Lokal](#Mekanisme-Pengerjaan-Lokal)
32+
- [Mekanisme Penggunaan _Branch_](#Mekanisme-Penggunaan-Branch)
33+
- [Menambahkan _Upstream_](#Menambahkan-Upstream)
34+
- [Memastikan _Fork_ Kamu tetap Sinkron](#Memastikan-Fork-Kamu-Tetap-Sinkron)
35+
- [Melakukan _Commit_ _Squashing_](#Squashing-Commits)
36+
37+
38+
---
39+
40+
## _Resources_
41+
42+
### Mulai Berkontribusi
43+
44+
- [Panduan Kontributor] - Panduan bagaimana cara berkontribusi dalam proyek Kubernetes.
45+
- [Panduan Pengembang] - Panduan untuk berkontribusi dalam pengembangan kode pada proyek Kubernetes.
46+
- [_Security_ dan _Disclosure_ Informasi] - Panduan pelaporan celah keamanan
47+
dan proses rilis keamanan.
48+
49+
### _SIG_ dan Grup Lainnya
50+
51+
- [_List_ Grup Master][sigs]
52+
53+
### Komunitas
54+
55+
- [Kalender] - Melihat semua acara Komunitas Kubernetes View (pertemuan SIG/WG,
56+
acara, dll.)
57+
- [kubernetes-dev] - Alamat email pengembangan Kubernetes
58+
- [Forum Kubernetes] - Forum resmi Kubernetes.
59+
- [Slack _channels_] - Slack resmi Kubernetes.
60+
- [StackOverflow] - _Platform_ tanya jawab pengguna Kubernetes.
61+
- [YouTube _Channel_] - _Channel_ resmi untuk komunitas Kubernetes.
62+
63+
64+
### _Workflow_
65+
66+
- [Dasbor Gubernator] - Melihat Pull Request yang masuk dan keluar yang memerlukan perhatian.
67+
- [Prow] - Mekanisme CI/CD Kubernetes.
68+
- [Tide] - _Plugin_ Prow yang melakukan manajemen _merge_ dan _test_. [Dashbor Tide]
69+
- [Perintah Bot] - Perintah yang dapat kamu gunakan untuk berinteraksi dengan Bot Kubernetes (contoh:
70+
`/cc`, `/lgtm`, dan `/retest`)
71+
- [_Label_ GitHub] - _List_ _label_ yang digunakan pada proyek Kubernetes
72+
- [Pencarian Kode Kubernetes], di-_maintain_ oleh [@dims]
73+
74+
75+
### _Testing_
76+
77+
- [Prow] - Mekanisme CI/CD Kubernetes.
78+
- [Test Grid] - Melihat data _historical_ _testing_ beserta informasi terkait.
79+
- [Dasbor Triase] - Melakukan agregasi _failure_ untuk mekanisme _troubleshoot_ yang lebih baik.
80+
- [Velodrome] - Dasbor untuk melacak _job_ dan _testing_ kesehatan.
81+
82+
83+
### Alamat Email Penting
84+
85+
- [email protected] - Mengirim surat pada seseorang yang berada dalam tim komunitas (Kontributor SIG
86+
_Experience_) mengenai isu komunitas.
87+
- [email protected] - Mengirim surat pada komite _Code of Conduct_, _mailing_ _list_ _private_.
88+
- [email protected] - Mengirim surat pada _steering_ _committee_. Alamat publik dengan _archieve_.
89+
- [email protected] - Mengirim surat pada _steering_ _committee_ secara _private_, untuk
90+
informasi yang sensitif.
91+
- [email protected] - Mengirim surat pada tim CNCF; blog, akun twitter, and
92+
properti sosial lainnya.
93+
94+
95+
### Tautan Lain
96+
97+
- [Statistik Pengembang] - Melihat statistik pengembang untuk semua proyek yang dikelola oleh CNCF.
98+
99+
---
100+
101+
## Berkomunikasi Secara Efektif di GitHub
102+
103+
104+
### Bagaimana Cara Bekerja Sama dengan Baik
105+
106+
Pada tahap awal, pelajari dan pahami [Code of Conduct].
107+
108+
109+
#### Contoh Komunikasi Yang Baik/Buruk
110+
111+
Ketika membuka sebuah isu, atau mencari bantuan, tolong bersikap dengan sopan ketika melakukan hal tersebut:
112+
113+
🙂 “X tidak dapat dikompilasi, apakah kamu memiliki saran?”
114+
115+
😞 “X tidak bekerja sebagaimana mestinya! Tolong perbaiki!”
116+
117+
Ketika menutup sebuah PR, berikan penjelasan yang rinci mengenai alasan kenapa PR
118+
tersebut tidak memenuhi standar untuk di-_merge_.
119+
120+
🙂 “Aku menutup PR ini karena fitur ini tidak mendukung kebutuhan X.
121+
Sesuai kesepakatan, akan lebih baik jika ini diimplementasikan dengan Y.
122+
Terima kasih sudah menyempatkan waktu untuk mengerjakan hal ini."
123+
124+
😞 “Mengapa PR ini tidak mengikuti konvensi API?
125+
Hal ini harusnya tidak dilakukan di sini!"
126+
127+
---
128+
129+
## Mengumpulkan Kontribusi
130+
131+
### Signing the CLA
132+
133+
Sebelum kamu mengumpulkan kontribusi kamu, kamu harus terlebih dahulu [menyetujui _Contributor License
134+
Agreement(CLA)_][cla]. Proyek Kubernetes _hanya_ menerima kontribusi yang kamu kerjakan apabila
135+
kamu sudah menyetujui CLA.
136+
137+
Apabila kamu kesulitan ketika menyetujui CLA, ikuti [petunjuk _troubleshooting_ CLA].
138+
139+
140+
### Membuka dan Menanggapi Isu
141+
142+
Isu GitHub merupakan mekanisme _tracking_ berbagai hal yang ada, termasuk pelaporan _bug_,
143+
permintaan peningkatan fitur, atau pelaporan isu lainnya seperti terjadi kegagalan ketika menjalankan
144+
_test_. Hal tersebut **tidak** diperuntukkan bagi [_user support request_]. Untuk tujuan tersebut,
145+
kamu bisa membaca [petunjuk _troubleshooting_], laporkan permasalahan yang ada ke [Stack Overflow]
146+
atau ikuti [forum Kubernetes].
147+
148+
**Referensi**
149+
- [Label]
150+
- [Perintah Prow][perintah bot]
151+
152+
153+
#### Mmebuat Sebuah Isu
154+
155+
- Gunakan templat isu (jika tersedia). Menggunakan templat yang tersedia akan
156+
memudahkan kontributor lain ketika menanggapi isu yang kamu buat.
157+
- Ikuti petunjuk yang dideskripsikan di templat tersebut.
158+
- Berikan deskripsi yang cukup ketika membuat suatu isu.
159+
- Gunakan [label] yang tepat. Jika kamu kurang yakin, [k8s-ci-robot][prow] bot
160+
([Kubernetes CI bot][prow]) akan membalas isu yang kamu buat dengan respons
161+
`needed labels`.
162+
- Selektiflah ketika meng-_assign_ suatu isu menggunakan [`/assign @<username>`][assign] atau
163+
[`/cc @<username>`][cc]. Isu yang kamu buat dakan ditriase secara lebih efektif
164+
apabila kamu menambahkan label yang tepat.
165+
166+
167+
#### Menanggapi sebuah Isu
168+
169+
- Ketika menghadapi sebuah isu, berikan komentar terhadap isu tersebut yang menandakan kamu
170+
sedang mengerjakan isu tersebut untuk mencegah pengerjaan berulang.
171+
- Ketika kamu sudah menyelesaikan hal tersebut, berikan komentar yang mengindikasikan
172+
kamu sudah menyelesaikannya sebelum kamu menutup isu tersebut, hal ini bertujuan agar
173+
orang lain tahu alasan kenapa kamu menutup isu tersebut.
174+
- Masukkan referensi ke PR atau isu lain (atau material lain yang dapat diakses)
175+
misalnya _"ref: #1234"_. Hal ini nantinya dapat digunakan untuk mengidentifikasi
176+
hal terkait yang mungkin sudah dibahas/dikerjakan di tempat lain.
177+
178+
179+
### Membuka sebuah Pull Request (PR)
180+
181+
Pull requests (PR) adalah mekanisme utama yang digunakan untuk melakukan kontribusi kode,
182+
dokumentasi, atau segala bentuk hal yang disimpan dalam repositori git.
183+
184+
**Referensi:**
185+
- [Label]
186+
- [Perintah Prow][perintah bot]
187+
- [Pull request process]
188+
- [Github workflow]
189+
190+
191+
#### Membuat sebuah Pull Request (PR)
192+
193+
- Ikuti petunjuk yang ada pada templat PR (jika tersedia). Menggunakan templat yang tersedia akan
194+
memudahkan kontributor lain ketika menanggapi PR yang kamu buat.
195+
- Jika hal tersebut merupakan [_trivial fix_] seperti tautan yang _broken_,
196+
_typo_ atau kesalahan _grammar_, _review_ dokumen secara menyeluruh untuk mengecek
197+
apakah terjadi kesalahan yang serupa. Jangan membuka multipel PR untuk
198+
_fix_ kecil pada dokumen yang sama.
199+
- Berikan referensi ke isu yang terkait dengan PR kamu, atau isu lain yang mungkin
200+
dapat diselesaikan dengan PR yang kamu buat.
201+
- Hindari perubahan yang sangat besar dalam suatu _commit_, Sebaliknya,
202+
pisahkan PR kamu dalam multipel PR yang lebih kecil. Ini akan memudahkan proses _review_
203+
PR yang kamu buat.
204+
- Berikan komentar pada PR yang kamu buat, apabila kamu merasa ada hal yang membutuhkan
205+
penjelasan lebih lanjut.
206+
- Selektiflah ketika meng-_assign_ suatu isu menggunakan [`/assign @<username>`][assign].
207+
Meng-_assign_ _reviewer_ secara berlebihan tidak mempercepat proses _review_ yang dilakukan
208+
untuk PR kamu.
209+
- Jika PR kamu masih dalam tahap _"Work in progress"_ berikan prefiks `[WIP]`
210+
atau gunakan perintah [`/hold`][hold]. Hal ini mencegah agar PR tidak di-_merge_ hingga _WIP_
211+
dihilangkan.
212+
- Jika PR kamu tidak di-_review_, jangan tutup PR tersebut dan membukan PR lain
213+
dengan perubahan yang sama. _Ping_ _reviewer_ PR kamu dengan komentar `@<github username>`.
214+
215+
216+
#### Contoh Deskripsi PR
217+
218+
```
219+
Ref. #3064 #3097
220+
Semua file yang dimiliki oleh SIG testing dipidahkan dari folder `/devel` ke folder `/devel/sig-testing`.
221+
222+
/sig contributor-experience
223+
/cc @stakeholder1 @stakeholder2
224+
/kind cleanup
225+
/area developer-guide
226+
/assign @approver1 @approver2 @approver3
227+
```
228+
229+
Apa saja yang dimasukkan dalam deskripsi:
230+
- **Baris 1** - Referensi ke isu atau PR lain (#3064 #3097).
231+
- **Baris 2** - Deskripsi singkat mengenai apa yang dikerjakan dalam PR tersebut.
232+
- **Baris 4** - [SIG][sigs] _assignment_ dengan [perintah][commands]
233+
`/sig contributor-experience`..
234+
- **Baris 5** - _Reviewer_ yang terkait dengan isu atau PR yang dispesifikasikan dengan perintah [`/cc`][cc].
235+
- **Baris 6** - Perintah [`/kind cleanup`][kind] menambahkan [label][labels] yang
236+
mengkategorisasi isu atau PR yang terkait untuk membersihkan kode, _process_, atau _technical
237+
debt_.
238+
- **Baris 7** - Perintah [`/area developer-guide`][kind] mengkategorisasi isu atau PR
239+
yang terkait dengan petunjuk pengembang.
240+
- **Baris 8** - Perintah [`/assign`][assign] meng-_assign_ seorang _approver_ untuk PR.
241+
Seorang _approver_ akan disarankan oleh [k8s-ci-robot][prow] dan dipilih dari _list_
242+
_owner_ pada _file_ [OWNERS]. Merekalah yang akan menambahkan _label_
243+
[`/approve`][approve] pada PR yang sudah di-_review_.
244+
245+
246+
#### _Troubleshooting_ sebuah PR
247+
248+
Setelah PR kamu diajukan, serangkaian _testing_ akan dijalankan oleh platform CI Kubernetes, [Prow].
249+
Jika terdapat salah satu _test_ yang gagal, maka [k8s-ci-robot][prow] akan memberikan
250+
balasan pada PR kamu beserta tautan yang memberikan _log_ dari _testing_ yang gagal dijalankan.
251+
252+
Apabila kamu mem-_push_ _commit_ baru, _test_ pada PR kamu akan secara otomatis di-_trigger_.
253+
254+
Terkadang, bisa jadi terdapat masalah pada platform CI Kubernetes.
255+
Hal ini dapat terjadi karena berbagai alasan bahkan ketika _test_ yang kamu jalankan di
256+
mesin lokal kamu berhasil. Kamu dapat men-_trigger_ ulang _test_ dengan cara memanggil perintah
257+
`/retest`.
258+
259+
Untuk informasi lebih lanjut, baca [Panduan _Testing_].
260+
261+
262+
### Label
263+
264+
Kubernetes menggunakan [label] untuk melakukan kategorisasi
265+
dan triase isu dan PR. Penggunaan label yang benar akan membuat triase
266+
pada isu atau PR yang kamu ajukan menjadi lebih efektif.
267+
268+
**Referensi:**
269+
- [Label]
270+
- [Perintah Prow]
271+
272+
Label yang sering digunakan:
273+
- [`/sig <sig name>`][kind] Meng-_assign_ [SIG][SIGs] yang bertindak sebagai _owner_
274+
sebuah isu atau PR.
275+
- [`/area <area name>`][kind] Mengasosiasikan [area][label].
276+
- [`/kind <category>`][kind] [Mengkategorisasikan][label] isu atau PR.
277+
278+
---
279+
280+
## Bekerja pada Mesin Lokal
281+
282+
Sebelum kamu membuat sebuah PR, sebagian besar kamu akan mengerjakan pekerjaan kamu pada mesin lokal.
283+
Jika kamu merupakan pengguna baru git, [tutorial git Atlassian git] merupakan awal
284+
pembelajaran yang baik. Sebagai alternatif lain, juga terdapat tutorial [_Stanford's Git magic_].
285+
286+
**Referensi:**
287+
- [Tutorial git Atlassian]
288+
- [Git magic]
289+
- [Github workflow]
290+
- [Testing locally]
291+
- [Developer guide]
292+
293+
294+
### Mekanisme _Branch_
295+
296+
Proyek Kubernetes menggunakan mekanisme _"Fork and Pull"_ yang merupakan
297+
standar GitHub. Dalam terminologi git, _fork_ yang kamu buat disebut sebagai _"`origin`"_
298+
dan git proyek yang sebenarnya disebut sebagai _"`upstream`"_. Untuk menjaga _branch_
299+
(`origin`) tetap _up to date_ dengan proyek (`upstream`), _branch_ tersebut harus dikonfigurasi
300+
pada _copy_ lokal.
301+
302+
303+
#### Menambahkan _Upstream_
304+
305+
Tambahkan `upstream` sebagai _remote_, dan atur agar kamu tidak dapat mem-_push_ ke sana.
306+
307+
```
308+
# ganti <upstream repositori git> dengan url upstream repositori
309+
# contoh:
310+
# https://github.com/kubernetes/kubernetes.git
311+
# [email protected]/kubernetes/kubernetes.git
312+
313+
git remote add upstream <upstream git repo>
314+
git remote set-url --push upstream no_push
315+
```
316+
317+
Versifikasi langkah ini dapat dilakukan dengan cara menjalankan
318+
`git remote -v` yang selanjutnya akan menampilah seluruh
319+
_remote_ yang sudah kamu atur.
320+
321+
322+
#### Menjaga agar _Fork_ Kamu tetap Sinkron
323+
324+
_Fetch_ semua perubahan dari `upstream` dan lakukan _"rebase"_ pada `master` _branch_ lokal kamu.
325+
Dengan demikian repositori lokal kamu akan tertap sinkron dengan proyek `upstream`.
326+
327+
```
328+
git fetch upstream
329+
git checkout master
330+
git rebase upstream/master
331+
```
332+
333+
Kamu setidaknya harus melakukan hal ini sewbelum membuat sebuah _branch_ baru
334+
yang akan kamu gunakan untuk mengerjakan fitur baru atau melakukan _fix_.
335+
336+
```
337+
git checkout -b myfeature
338+
```
339+
340+
#### Melakukan _Commit_ _Squashing_
341+
342+
Tujuan utama dari [_commit_ _squashing_] adalah untuk membuat
343+
histori atau _log_ git yang mudah dibaca dan bersih. Biasanya hal ini
344+
dilakukan pada fase akhir dari revisi yang akmu buat. Jika kamu masih belum yakin apakah kamu
345+
harus melakukan _commit_ _squashing_ atau tidak, biarkan revisi kamu apa adanya sampai
346+
ada saran khusus dari kontributor yang di-_assign_ untuk me-_review_ atau meng-_approve_ revisi kamu apakah _commit_
347+
_squashing_ perlu dilakukan atau tidak.
348+
349+
[Panduan Kontributor]: /contributors/guide/README.md
350+
[Panduan Pengembang]: /contributors/devel/README.md
351+
[dasbor gubernator]: https://gubernator.k8s.io/pr
352+
[prow]: https://prow.k8s.io
353+
[tide]: http://git.k8s.io/test-infra/prow/cmd/tide/pr-authors.md
354+
[asbor tide]: https://prow.k8s.io/tide
355+
[perintah bot]: https://go.k8s.io/bot-commands
356+
[gitHub labels]: https://go.k8s.io/github-labels
357+
[Kubernetes Code Search]: https://cs.k8s.io/
358+
[@dims]: https://github.com/dims
359+
[kalender]: https://calendar.google.com/calendar/embed?src=cgnt364vd8s86hr2phapfjc6uk%40group.calendar.google.com
360+
[kubernetes-dev]: https://groups.google.com/forum/#!forum/kubernetes-dev
361+
[slack _channels_]: http://slack.k8s.io/
362+
[stackOverflow]: https://stackoverflow.com/questions/tagged/kubernetes
363+
[youtube _channel_]: https://www.youtube.com/c/KubernetesCommunity/
364+
[dasbor triase]: https://go.k8s.io/triage
365+
[test grid]: https://testgrid.k8s.io
366+
[velodrome]: https://go.k8s.io/test-health
367+
[developer statistics]: https://k8s.devstats.cncf.io
368+
[code of conduct]: /code-of-conduct.md
369+
[_user support request_]: /contributors/guide/issue-triage.md#determine-if-its-a-support-request
370+
[petunjuk _troubleshooting_]: https://kubernetes.io/docs/tasks/debug-application-cluster/troubleshooting/
371+
[stack overflow]: https://stackoverflow.com/questions/tagged/kubernetes
372+
[forum kubernetes]: https://discuss.kubernetes.io/
373+
[pull request process]: /contributors/guide/pull-requests.md
374+
[github workflow]: /contributors/guide/github-workflow.md
375+
[prow]: https://git.k8s.io/test-infra/prow#prow
376+
[cla]: /CLA.md#how-do-i-sign
377+
[petunjuk _troubleshooting_ cla]: /CLA.md#troubleshooting
378+
[perintah]: https://prow.k8s.io/command-help
379+
[kind]: https://prow.k8s.io/command-help#kind
380+
[cc]: https://prow.k8s.io/command-help#hold
381+
[hold]: https://prow.k8s.io/command-help#hold
382+
[assign]: https://prow.k8s.io/command-help#assign
383+
[SIGs]: /sig-list.md
384+
[testing guide]: /contributors/devel/sig-testing/testing.md
385+
[label]: https://git.k8s.io/test-infra/label_sync/labels.md
386+
[_trivial_ _fix_]: /contributors/guide/pull-requests.md#10-trivial-edits
387+
[Github workflow]: /contributors/guide/github-workflow.md#3-branch
388+
[_commit_ _squashing_]: /contributors/guide/pull-requests.md#6-squashing-and-commit-titles
389+
[_owner_]: /contributors/guide/owners.md
390+
[testing locally]: /contributors/guide/README.md#testing
391+
[developer guide]: /contributors/devel/README.md
392+
[Tutorial git Atlassian]: https://www.atlassian.com/git/tutorials
393+
[git magic]: http://www-cs-students.stanford.edu/~blynn/gitmagic/
394+
[_Security_ dan _Disclosure_ Informasi]: https://kubernetes.io/docs/reference/issues-security/security/

0 commit comments

Comments
 (0)