Skip to content

Latest commit

 

History

History
166 lines (123 loc) · 5.53 KB

CONTRIBUTING.md

File metadata and controls

166 lines (123 loc) · 5.53 KB

Kami sangat berterima kasih karena telah ikut berkontribusi dalam proyek OpenSeries, 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 ketika pull request kamu sudah di-merge.
  • Hasil kerja kamu wajib mengikuti standar dan style koding dari kami.
  • Hanya menerima file dengan ekstensi *.py, selain itu dibuat pengecualian dengan menjelaskan secara detail.

Docstrings

Penggunaan docstring

Penggunaan docstring bertujuan untuk memudahkan pembaca membaca dan mengimplementasikan algoritma. docstring harus memiliki (minimal) penjelasan dari fungsi hingga penjelasan dari parameter dari fungsi tersebut.

Docstring yang baik:

def adding(num1, num2):
    """
    menambahkan kedua bilangan
    num1 dan num2 dan dikembalikan hasilnya
    num1 = integer
    num2 = integer
    mengembalikan hasil yang berupa integer
    >>> adding(2, 50)
    52
    >>> adding(3, 2)
    5
    """
    return num1 + num2

Docstring yang kurang baik:

def adding(num1, num2):
    """
    num1 + num2
    """
    return num1 + num2

Saran penggunaan docstring yang baik untuk doctest:

def adding(num1, num2):
  """
  menambahkan kedua bilangan
  num1 dan num2 dan dikembalikan hasilnya
  num1 = integer
  num2 = integer
  mengembalikan hasil yang berupa integer
  >>> adding(2, 3)
  5
  >>> adding(4, 2)
  6
  """
  return num1 + num2

kemudian testing kode python dengan pytest dan pre-commit

install terlebih dahulu dari library pre-commit

pip install pre-commit

jika ada kendala berupa

error: externally-managed-environment

× This environment is externally managed
╰─> To install Python packages system-wide, try 'apt-get or pacman -S yum dnf xbps', where xyz is the package you are trying to
    install.

    If you wish to install a non-OS-packaged Python package,
    create a virtual environment using 'python -m venv path/to/venv'.
    Then use path/to/venv/bin/python and path/to/venv/bin/pip.

    If you wish to install a non-OS packaged Python application,
    it may be easiest to use 'pipx install xyz', which will manage a
    virtual environment for you. Make sure you have python-pipx
    installed via pacman.

note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages.
hint: See PEP 668 for the detailed specification.

kamu bisa menginstallnya dengan cara

pip install pre-commit --break-system-packages

kemudian lakukan installasi dari pre-commit deangan cara

pre-commit install

kemudian jalankan perintah

pre-commit run --all-files

jika sukses, lakukan testing kode dengan perintah

pytest . --verbose

Pull request yang baik

Informasi: gunakan issue 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.
  • Setelah menjelaskan perubahan anda di issue 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.
  • Lakukan tes dengan menggunakan pytest secara lokal.
  • Setelah merubah-rubah atau menambahkan algoritma serta melakukan tes lokal kode kamu, usahakan kamu membuat local branch baru:
    git checkout -b <branch_name>
    git add . # atau git add nama_perubahan_kamu.py
    git commit -m "feat: menambahkan algoritma terbaru"
  • Lakukan push ke branch kamu dan kemudian open pull request.

Important

Lakukan pull request ke branch develop-library jika ingin pull request library dan develop untuk pull request ke web dari OpenSeries.

Caution

Pull request akan di close jika mengarah ke branch main atau web.

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.

jika kamu ingin menjelaskan pesan commit yang panjang kamu bisa menggunakan parameter -m

git commit -m "feat: judul perubahan" -m "deskripsi dari perubahan"

Contoh yang benar:

  • ☒ feat: test_x.py
  • ☑ feat: tambah unittest untuk algoritma x

Lebih lengkapnya bisa dilihat di:

Pull request akan di-merge jika:

  • mengikuti standar dan arahan dari CONTRIBUTING.md;
  • lulus tes dan cek dari beberapa tes yang sudah kami siapkan.