Lewati ke isi

Berkontribusi; berkontribusi; berkontribusi; menyumbang (kata ini memiliki banyak arti, dan terjemahan spesifik perlu ditentukan sesuai dengan konteksnya)

Terima kasih atas minat Anda untuk berkontribusi pada Starlette. Anda dapat berkontribusi pada proyek ini dengan beberapa cara:

Laporkan bug atau masalah lain

Menemukan sesuatu yang harus didukung Starlette? Secara tidak sengaja mengalami beberapa perilaku tak terduga?

Kontribusi umumnya harus dimulai dengan diskusi. Kemungkinan bug dapat diangkat sebagai diskusi "masalah potensial," dan permintaan fitur dapat diangkat sebagai diskusi "ide." Kami kemudian dapat menentukan apakah diskusi itu perlu ditingkatkan menjadi "masalah," atau apakah kami akan mempertimbangkan untuk menarik permintaan.

Jelaskan sedetail mungkin, dan dalam kasus laporan bug, berikan informasi sebanyak mungkin, seperti:

  • Platform Sistem Operasi
  • Versi ular piton Ketergantungan dan versi yang diinstal* (python -m pip freeze)
  • cuplikan kode
  • Jejak Pelacakan Kesalahan

Anda harus selalu mencoba untuk mengurangi contoh apa pun ke situasi sesederhana mungkin yang menggambarkan masalah tersebut.

Mengembangkan; mengembangkan

Untuk mulai mengembangkan Starlette, buat garpu untuk repositori Starlette di GitHub.

Kemudian kloning cabang Anda dengan perintah berikut, ganti YOUR-USERNAME dengan nama pengguna GitHub Anda:

$Git klon https://github.com/YOUR-USERNAME/starlette

Anda sekarang dapat menginstal proyek dan ketergantungannya dengan perintah berikut:

starlette $CD
$skrip / instal

Pengujian dan inspeksi kode

Kami menggunakan skrip shell khusus untuk mengotomatiskan pengujian, inspeksi kode, dan alur kerja pembuatan dokumentasi kami.

Untuk menjalankan tes ini, gunakan:

$skrip / tes

Argumen lain akan diteruskan ke pytest. Lihat dokumentasi pytest untuk informasi lebih lanjut.

Misalnya, menjalankan skrip tes tunggal:

$skrip / tes /test_application.py

Untuk menjalankan kode yang diformat secara otomatis:

$skrip / serat

Terakhir, untuk menjalankan pemeriksaan kode secara terpisah (juga di jalankan sebagai bagian dari scripts/test), jalankan:

$skrip / cek

Catatan; menyiapkan dokumen

Halaman dokumentasi terletak di bawah folder docs/.

Untuk menjalankan situs dokumentasi secara lokal (berguna untuk melihat perubahan pratinjau), gunakan:

$skrip / dokumen

Menyelesaikan kegagalan membangun / integrasi berkelanjutan

Setelah Anda mengirimkan permintaan tarik, test suite akan berjalan secara otomatis dan hasilnya akan ditampilkan di GitHub. Jika test suite gagal, Anda perlu mengklik tautan "Detail" dan mencoba mencari tahu mengapa test suite gagal.

Status komitmen PR yang gagal

Berikut adalah beberapa cara umum yang dapat gagal dalam test suite:

Pekerjaan cek gagal

Pekerjaan serat aksi GitHub yang gagal

Kegagalan pekerjaan ini berarti masalah pemformatan kode atau masalah anotasi tipe. Anda dapat melihat output pekerjaan untuk mencari tahu mengapa gagal, atau menjalankannya dalam cangkang:

$skrip / cek

Mungkin ada baiknya menjalankan $ scripts/lint untuk mencoba memformat kode secara otomatis, dan jika operasi berhasil, lakukan perubahan.

Pekerjaan dokumen gagal

Kegagalan pekerjaan ini berarti bahwa pembuatan dokumen gagal. Ini dapat terjadi karena berbagai alasan, seperti konfigurasi yang tidak valid Markdown atau hilang dalam mkdocs.yml.

Pekerjaan Python 3. X gagal

Pekerjaan tes aksi GitHub yang gagal

Kegagalan pekerjaan ini berarti bahwa uji unit gagal atau tidak semua jalur kode ditimpa oleh uji unit.

Jika tes gagal, Anda akan melihat pesan ini di bawah laporan cakupan:

=== 1 failed, 435 passed, 1 skipped, 1 xfailed in 11.09s ===

Jika pengujian berhasil, tetapi cakupan tidak mencapai ambang batas kami saat ini, Anda akan melihat pesan ini di bawah laporan cakupan:

FAIL Required test coverage of 100% not reached. Total coverage: 99.00%

Menerbitkan; melepaskan; melepaskan

Bagian ini ditargetkan pada pengelola Starlette.

Sebelum merilis versi baru, buat permintaan tarik dengan konten berikut:

  • Pembaruan untuk changelog:
    • Kami mengikuti format keepachangelog.
    • membandingkan master dengan tag versi terbaru dan mencantumkan semua item yang menarik bagi pengguna kami:
      • Apa yang harus didokumentasikan dalam changelog: fitur ditambahkan, diubah, tidak digunakan lagi, atau dihapus, dan perbaikan bug.
      • Apa yang tidak boleh dicatat dalam changelog: perubahan dokumentasi, tes, atau alat.
      • Cobalah untuk mengurutkan item dalam urutan menuruni dampak / kepentingan.
      • Tetap ringkas dan to the point.🎯 Upgrade versi untuk* : lihat __version__.py.

Misalnya, lihat # 1600.

Setelah rilis PR digabungkan, rilis baru dibuat, termasuk:

Versi label* seperti 0.13.3. * rilis judul Version 0.13.3 * Jelaskan penyalinan dari log perubahan.

Setelah dibuat, versi ini akan otomatis diunggah ke PyPI.

Jika ada masalah dengan tugas PyPI, Anda dapat menggunakan skrip scripts/publish untuk merilis versi.