From f7e521a9f93db722c31d0a429135e72343792221 Mon Sep 17 00:00:00 2001 From: Irvi Aini Date: Tue, 7 May 2019 21:54:07 +0700 Subject: [PATCH] Initialize contributing cheatsheet in Bahasa Indonesia. Fix mispelling committe to committee. Fix nitty gritty leftover english in code. --- .../guide/contributor-cheatsheet/README-id.md | 394 ++++++++++++++++++ 1 file changed, 394 insertions(+) create mode 100644 contributors/guide/contributor-cheatsheet/README-id.md diff --git a/contributors/guide/contributor-cheatsheet/README-id.md b/contributors/guide/contributor-cheatsheet/README-id.md new file mode 100644 index 000000000..996d72ec8 --- /dev/null +++ b/contributors/guide/contributor-cheatsheet/README-id.md @@ -0,0 +1,394 @@ +# _Cheat Sheet_ Kontributor Kubernetes + +Kumpulan _resources_ umum yang digunakan ketika berkontribusi ke Kubernetes, +termasuk _tips_, trik, dan _best practices_ yang digunakan di dalam +proyek Kubernetes. Ini merupakan referensi singkat ("TL;DR") informasi +yang bermanfaat untuk meningkatkan pengalaman kamu ketika berkontribusi +di GitHub menjadi lebih baik. + +**Daftar Isi** +- [_Resources_](#Resources) + - [Mulai Berkontribusi](#Mulai-Berkontribusi) + - [_SIG_ dan Grup Lainnya](#SIG-dan-Grup-lainnya) + - [Komunitas](#Komunitas) + - [Alamat Email Penting](#Alamat-Email-Penting) + - [_Workflow_](#Workflow) + - [Tes](#Testing) + - [Tautan Lain](#Tautan-Lain) +- [Berkomunikasi Secara Efektif di GitHub](#Berkomunikasi-Secara-Efektif-di-GitHub) + - [Bagaimana Cara Bekerja Sama dengan Baik](#Bagaimana-Cara-Bekerja-Sama-dengan-Baik) + - [Contoh Komunikasi Yang Baik/Buruk](#Contoh-Komunikasi-yang-BaikBuruk) +- [Langkah Berkontribusi](#Langkah-Berkontribusi) + - [Menyetujui CLA](#Menyetujui-CLA) + - [Membuka dan Menanggapi Isu](#Membuka-dan-Menanggapi-Isu) + - [Membuat sebuah Isu](#Membuat-sebuah-Isu) + - [Menanggapi sebuah Isu](#Menaggapi-sebuah-Isu) + - [Membuka _Pull Request_](#Membuka-Pull-Request) + - [Membuat a _Pull Request_](#Membuat-Pull-Request) + - [Contoh Deskripsi _Pull Request_](#Contoh-Deskripsi-Pull-Request) + - [_Troubleshoot_ sebuah _Pull Request_](#Troubleshooting-sebuah-Pull-Request) + - [Label](#Label) +- [Mekanisme Pengerjaan Lokal](#Mekanisme-Pengerjaan-Lokal) + - [Mekanisme Penggunaan _Branch_](#Mekanisme-Penggunaan-Branch) + - [Menambahkan _Upstream_](#Menambahkan-Upstream) + - [Memastikan _Fork_ Kamu tetap Sinkron](#Memastikan-Fork-Kamu-Tetap-Sinkron) + - [Melakukan _Commit_ _Squashing_](#Squashing-Commits) + + +--- + +## _Resources_ + +### Mulai Berkontribusi + +- [Panduan Kontributor] - Panduan bagaimana cara berkontribusi dalam proyek Kubernetes. +- [Panduan Pengembang] - Panduan untuk berkontribusi dalam pengembangan kode pada proyek Kubernetes. +- [_Security_ dan _Disclosure_ Informasi] - Panduan pelaporan celah keamanan + dan proses rilis keamanan. + +### _SIG_ dan Grup Lainnya + +- [_List_ Grup Master][sigs] + +### Komunitas + +- [Kalender] - Melihat semua acara Komunitas Kubernetes View (pertemuan SIG/WG, + acara, dll.) +- [kubernetes-dev] - Alamat email pengembangan Kubernetes +- [Forum Kubernetes] - Forum resmi Kubernetes. +- [Slack _channels_] - Slack resmi Kubernetes. +- [StackOverflow] - _Platform_ tanya jawab pengguna Kubernetes. +- [YouTube _Channel_] - _Channel_ resmi untuk komunitas Kubernetes. + + +### _Workflow_ + +- [Dasbor Gubernator] - Melihat Pull Request yang masuk dan keluar yang memerlukan perhatian. +- [Prow] - Mekanisme CI/CD Kubernetes. +- [Tide] - _Plugin_ Prow yang melakukan manajemen _merge_ dan _test_. [Dashbor Tide] +- [Perintah Bot] - Perintah yang dapat kamu gunakan untuk berinteraksi dengan Bot Kubernetes (contoh: + `/cc`, `/lgtm`, dan `/retest`) +- [_Label_ GitHub] - _List_ _label_ yang digunakan pada proyek Kubernetes +- [Pencarian Kode Kubernetes], di-_maintain_ oleh [@dims] + + +### _Testing_ + +- [Prow] - Mekanisme CI/CD Kubernetes. +- [Test Grid] - Melihat data _historical_ _testing_ beserta informasi terkait. +- [Dasbor Triase] - Melakukan agregasi _failure_ untuk mekanisme _troubleshoot_ yang lebih baik. +- [Velodrome] - Dasbor untuk melacak _job_ dan _testing_ kesehatan. + + +### Alamat Email Penting + +- community@kubernetes.io - Mengirim surat pada seseorang yang berada dalam tim komunitas (Kontributor SIG + _Experience_) mengenai isu komunitas. +- conduct@kubernetes.io - Mengirim surat pada komite _Code of Conduct_, _mailing_ _list_ _private_. +- steering@kubernetes.io - Mengirim surat pada _steering_ _committee_. Alamat publik dengan _archieve_. +- steering-private@kubernetes.io - Mengirim surat pada _steering_ _committee_ secara _private_, untuk + informasi yang sensitif. +- social@cncf.io - Mengirim surat pada tim CNCF; blog, akun twitter, and + properti sosial lainnya. + + +### Tautan Lain + +- [Statistik Pengembang] - Melihat statistik pengembang untuk semua proyek yang dikelola oleh CNCF. + +--- + +## Berkomunikasi Secara Efektif di GitHub + + +### Bagaimana Cara Bekerja Sama dengan Baik + +Pada tahap awal, pelajari dan pahami [Code of Conduct]. + + +#### Contoh Komunikasi Yang Baik/Buruk + +Ketika membuka sebuah isu, atau mencari bantuan, tolong bersikap dengan sopan ketika melakukan hal tersebut: + + πŸ™‚ β€œX tidak dapat dikompilasi, apakah kamu memiliki saran?” + + 😞 β€œX tidak bekerja sebagaimana mestinya! Tolong perbaiki!” + +Ketika menutup sebuah PR, berikan penjelasan yang rinci mengenai alasan kenapa PR +tersebut tidak memenuhi standar untuk di-_merge_. + +πŸ™‚ β€œAku menutup PR ini karena fitur ini tidak mendukung kebutuhan X. + Sesuai kesepakatan, akan lebih baik jika ini diimplementasikan dengan Y. + Terima kasih sudah menyempatkan waktu untuk mengerjakan hal ini." + +😞 β€œMengapa PR ini tidak mengikuti konvensi API? + Hal ini harusnya tidak dilakukan di sini!" + +--- + +## Mengumpulkan Kontribusi + +### Signing the CLA + +Sebelum kamu mengumpulkan kontribusi kamu, kamu harus terlebih dahulu [menyetujui _Contributor License +Agreement(CLA)_][cla]. Proyek Kubernetes _hanya_ menerima kontribusi yang kamu kerjakan apabila +kamu sudah menyetujui CLA. + +Apabila kamu kesulitan ketika menyetujui CLA, ikuti [petunjuk _troubleshooting_ CLA]. + + +### Membuka dan Menanggapi Isu + +Isu GitHub merupakan mekanisme _tracking_ berbagai hal yang ada, termasuk pelaporan _bug_, +permintaan peningkatan fitur, atau pelaporan isu lainnya seperti terjadi kegagalan ketika menjalankan +_test_. Hal tersebut **tidak** diperuntukkan bagi [_user support request_]. Untuk tujuan tersebut, +kamu bisa membaca [petunjuk _troubleshooting_], laporkan permasalahan yang ada ke [Stack Overflow] +atau ikuti [forum Kubernetes]. + +**Referensi** +- [Label] +- [Perintah Prow][perintah bot] + + +#### Mmebuat Sebuah Isu + +- Gunakan templat isu (jika tersedia). Menggunakan templat yang tersedia akan + memudahkan kontributor lain ketika menanggapi isu yang kamu buat. +- Ikuti petunjuk yang dideskripsikan di templat tersebut. +- Berikan deskripsi yang cukup ketika membuat suatu isu. +- Gunakan [label] yang tepat. Jika kamu kurang yakin, [k8s-ci-robot][prow] bot + ([Kubernetes CI bot][prow]) akan membalas isu yang kamu buat dengan respons + `needed labels`. +- Selektiflah ketika meng-_assign_ suatu isu menggunakan [`/assign @`][assign] atau + [`/cc @`][cc]. Isu yang kamu buat dakan ditriase secara lebih efektif + apabila kamu menambahkan label yang tepat. + + +#### Menanggapi sebuah Isu + +- Ketika menghadapi sebuah isu, berikan komentar terhadap isu tersebut yang menandakan kamu + sedang mengerjakan isu tersebut untuk mencegah pengerjaan berulang. +- Ketika kamu sudah menyelesaikan hal tersebut, berikan komentar yang mengindikasikan + kamu sudah menyelesaikannya sebelum kamu menutup isu tersebut, hal ini bertujuan agar + orang lain tahu alasan kenapa kamu menutup isu tersebut. +- Masukkan referensi ke PR atau isu lain (atau material lain yang dapat diakses) + misalnya _"ref: #1234"_. Hal ini nantinya dapat digunakan untuk mengidentifikasi + hal terkait yang mungkin sudah dibahas/dikerjakan di tempat lain. + + +### Membuka sebuah Pull Request (PR) + +Pull requests (PR) adalah mekanisme utama yang digunakan untuk melakukan kontribusi kode, +dokumentasi, atau segala bentuk hal yang disimpan dalam repositori git. + +**Referensi:** +- [Label] +- [Perintah Prow][perintah bot] +- [Pull request process] +- [Github workflow] + + +#### Membuat sebuah Pull Request (PR) + +- Ikuti petunjuk yang ada pada templat PR (jika tersedia). Menggunakan templat yang tersedia akan + memudahkan kontributor lain ketika menanggapi PR yang kamu buat. +- Jika hal tersebut merupakan [_trivial fix_] seperti tautan yang _broken_, + _typo_ atau kesalahan _grammar_, _review_ dokumen secara menyeluruh untuk mengecek + apakah terjadi kesalahan yang serupa. Jangan membuka multipel PR untuk + _fix_ kecil pada dokumen yang sama. +- Berikan referensi ke isu yang terkait dengan PR kamu, atau isu lain yang mungkin + dapat diselesaikan dengan PR yang kamu buat. +- Hindari perubahan yang sangat besar dalam suatu _commit_, Sebaliknya, + pisahkan PR kamu dalam multipel PR yang lebih kecil. Ini akan memudahkan proses _review_ + PR yang kamu buat. +- Berikan komentar pada PR yang kamu buat, apabila kamu merasa ada hal yang membutuhkan + penjelasan lebih lanjut. +- Selektiflah ketika meng-_assign_ suatu isu menggunakan [`/assign @`][assign]. + Meng-_assign_ _reviewer_ secara berlebihan tidak mempercepat proses _review_ yang dilakukan + untuk PR kamu. +- Jika PR kamu masih dalam tahap _"Work in progress"_ berikan prefiks `[WIP]` + atau gunakan perintah [`/hold`][hold]. Hal ini mencegah agar PR tidak di-_merge_ hingga _WIP_ + dihilangkan. +- Jika PR kamu tidak di-_review_, jangan tutup PR tersebut dan membukan PR lain + dengan perubahan yang sama. _Ping_ _reviewer_ PR kamu dengan komentar `@`. + + +#### Contoh Deskripsi PR + +``` +Ref. #3064 #3097 +Semua file yang dimiliki oleh SIG testing dipidahkan dari folder `/devel` ke folder `/devel/sig-testing`. + +/sig contributor-experience +/cc @stakeholder1 @stakeholder2 +/kind cleanup +/area developer-guide +/assign @approver1 @approver2 @approver3 +``` + +Apa saja yang dimasukkan dalam deskripsi: +- **Baris 1** - Referensi ke isu atau PR lain (#3064 #3097). +- **Baris 2** - Deskripsi singkat mengenai apa yang dikerjakan dalam PR tersebut. +- **Baris 4** - [SIG][sigs] _assignment_ dengan [perintah][commands] + `/sig contributor-experience`.. +- **Baris 5** - _Reviewer_ yang terkait dengan isu atau PR yang dispesifikasikan dengan perintah [`/cc`][cc]. +- **Baris 6** - Perintah [`/kind cleanup`][kind] menambahkan [label][labels] yang + mengkategorisasi isu atau PR yang terkait untuk membersihkan kode, _process_, atau _technical + debt_. +- **Baris 7** - Perintah [`/area developer-guide`][kind] mengkategorisasi isu atau PR + yang terkait dengan petunjuk pengembang. +- **Baris 8** - Perintah [`/assign`][assign] meng-_assign_ seorang _approver_ untuk PR. + Seorang _approver_ akan disarankan oleh [k8s-ci-robot][prow] dan dipilih dari _list_ + _owner_ pada _file_ [OWNERS]. Merekalah yang akan menambahkan _label_ + [`/approve`][approve] pada PR yang sudah di-_review_. + + +#### _Troubleshooting_ sebuah PR + +Setelah PR kamu diajukan, serangkaian _testing_ akan dijalankan oleh platform CI Kubernetes, [Prow]. +Jika terdapat salah satu _test_ yang gagal, maka [k8s-ci-robot][prow] akan memberikan +balasan pada PR kamu beserta tautan yang memberikan _log_ dari _testing_ yang gagal dijalankan. + +Apabila kamu mem-_push_ _commit_ baru, _test_ pada PR kamu akan secara otomatis di-_trigger_. + +Terkadang, bisa jadi terdapat masalah pada platform CI Kubernetes. +Hal ini dapat terjadi karena berbagai alasan bahkan ketika _test_ yang kamu jalankan di +mesin lokal kamu berhasil. Kamu dapat men-_trigger_ ulang _test_ dengan cara memanggil perintah +`/retest`. + +Untuk informasi lebih lanjut, baca [Panduan _Testing_]. + + +### Label + +Kubernetes menggunakan [label] untuk melakukan kategorisasi +dan triase isu dan PR. Penggunaan label yang benar akan membuat triase +pada isu atau PR yang kamu ajukan menjadi lebih efektif. + +**Referensi:** +- [Label] +- [Perintah Prow] + +Label yang sering digunakan: +- [`/sig `][kind] Meng-_assign_ [SIG][SIGs] yang bertindak sebagai _owner_ + sebuah isu atau PR. +- [`/area `][kind] Mengasosiasikan [area][label]. +- [`/kind `][kind] [Mengkategorisasikan][label] isu atau PR. + +--- + +## Bekerja pada Mesin Lokal + +Sebelum kamu membuat sebuah PR, sebagian besar kamu akan mengerjakan pekerjaan kamu pada mesin lokal. +Jika kamu merupakan pengguna baru git, [tutorial git Atlassian git] merupakan awal +pembelajaran yang baik. Sebagai alternatif lain, juga terdapat tutorial [_Stanford's Git magic_]. + +**Referensi:** +- [Tutorial git Atlassian] +- [Git magic] +- [Github workflow] +- [Testing locally] +- [Developer guide] + + +### Mekanisme _Branch_ + +Proyek Kubernetes menggunakan mekanisme _"Fork and Pull"_ yang merupakan +standar GitHub. Dalam terminologi git, _fork_ yang kamu buat disebut sebagai _"`origin`"_ +dan git proyek yang sebenarnya disebut sebagai _"`upstream`"_. Untuk menjaga _branch_ +(`origin`) tetap _up to date_ dengan proyek (`upstream`), _branch_ tersebut harus dikonfigurasi +pada _copy_ lokal. + + +#### Menambahkan _Upstream_ + +Tambahkan `upstream` sebagai _remote_, dan atur agar kamu tidak dapat mem-_push_ ke sana. + +``` +# ganti dengan url upstream repositori +# contoh: +# https://github.com/kubernetes/kubernetes.git +# git@github.com/kubernetes/kubernetes.git + +git remote add upstream +git remote set-url --push upstream no_push +``` + +Versifikasi langkah ini dapat dilakukan dengan cara menjalankan +`git remote -v` yang selanjutnya akan menampilah seluruh +_remote_ yang sudah kamu atur. + + +#### Menjaga agar _Fork_ Kamu tetap Sinkron + +_Fetch_ semua perubahan dari `upstream` dan lakukan _"rebase"_ pada `master` _branch_ lokal kamu. +Dengan demikian repositori lokal kamu akan tertap sinkron dengan proyek `upstream`. + +``` +git fetch upstream +git checkout master +git rebase upstream/master +``` + +Kamu setidaknya harus melakukan hal ini sewbelum membuat sebuah _branch_ baru +yang akan kamu gunakan untuk mengerjakan fitur baru atau melakukan _fix_. + +``` +git checkout -b myfeature +``` + +#### Melakukan _Commit_ _Squashing_ + +Tujuan utama dari [_commit_ _squashing_] adalah untuk membuat +histori atau _log_ git yang mudah dibaca dan bersih. Biasanya hal ini +dilakukan pada fase akhir dari revisi yang akmu buat. Jika kamu masih belum yakin apakah kamu +harus melakukan _commit_ _squashing_ atau tidak, biarkan revisi kamu apa adanya sampai +ada saran khusus dari kontributor yang di-_assign_ untuk me-_review_ atau meng-_approve_ revisi kamu apakah _commit_ +_squashing_ perlu dilakukan atau tidak. + +[Panduan Kontributor]: /contributors/guide/README.md +[Panduan Pengembang]: /contributors/devel/README.md +[dasbor gubernator]: https://gubernator.k8s.io/pr +[prow]: https://prow.k8s.io +[tide]: http://git.k8s.io/test-infra/prow/cmd/tide/pr-authors.md +[asbor tide]: https://prow.k8s.io/tide +[perintah bot]: https://go.k8s.io/bot-commands +[gitHub labels]: https://go.k8s.io/github-labels +[Kubernetes Code Search]: https://cs.k8s.io/ +[@dims]: https://github.com/dims +[kalender]: https://calendar.google.com/calendar/embed?src=cgnt364vd8s86hr2phapfjc6uk%40group.calendar.google.com +[kubernetes-dev]: https://groups.google.com/forum/#!forum/kubernetes-dev +[slack _channels_]: http://slack.k8s.io/ +[stackOverflow]: https://stackoverflow.com/questions/tagged/kubernetes +[youtube _channel_]: https://www.youtube.com/c/KubernetesCommunity/ +[dasbor triase]: https://go.k8s.io/triage +[test grid]: https://testgrid.k8s.io +[velodrome]: https://go.k8s.io/test-health +[developer statistics]: https://k8s.devstats.cncf.io +[code of conduct]: /code-of-conduct.md +[_user support request_]: /contributors/guide/issue-triage.md#determine-if-its-a-support-request +[petunjuk _troubleshooting_]: https://kubernetes.io/docs/tasks/debug-application-cluster/troubleshooting/ +[stack overflow]: https://stackoverflow.com/questions/tagged/kubernetes +[forum kubernetes]: https://discuss.kubernetes.io/ +[pull request process]: /contributors/guide/pull-requests.md +[github workflow]: /contributors/guide/github-workflow.md +[prow]: https://git.k8s.io/test-infra/prow#prow +[cla]: /CLA.md#how-do-i-sign +[petunjuk _troubleshooting_ cla]: /CLA.md#troubleshooting +[perintah]: https://prow.k8s.io/command-help +[kind]: https://prow.k8s.io/command-help#kind +[cc]: https://prow.k8s.io/command-help#hold +[hold]: https://prow.k8s.io/command-help#hold +[assign]: https://prow.k8s.io/command-help#assign +[SIGs]: /sig-list.md +[testing guide]: /contributors/devel/sig-testing/testing.md +[label]: https://git.k8s.io/test-infra/label_sync/labels.md +[_trivial_ _fix_]: /contributors/guide/pull-requests.md#10-trivial-edits +[Github workflow]: /contributors/guide/github-workflow.md#3-branch +[_commit_ _squashing_]: /contributors/guide/pull-requests.md#6-squashing-and-commit-titles +[_owner_]: /contributors/guide/owners.md +[testing locally]: /contributors/guide/README.md#testing +[developer guide]: /contributors/devel/README.md +[Tutorial git Atlassian]: https://www.atlassian.com/git/tutorials +[git magic]: http://www-cs-students.stanford.edu/~blynn/gitmagic/ +[_Security_ dan _Disclosure_ Informasi]: https://kubernetes.io/docs/reference/issues-security/security/