Lisensi dan hak cipta¶
When contributing project code, you agree to put your changes and new code under the repository license, GPL-3.0-or-later, unless stated and agreed otherwise. New source files should follow the existing copyright and SPDX license header style.
Use a different license only when there is a deliberate reason, such as files shared with repositories using more permissive licenses.
Lihat juga
Lisensi Weblate menjelaskan lisensi secara lebih rinci.
Menulis patch yang bagus¶
Tulis perubahan terpisah¶
Sungguh menyebalkan ketika Anda mendapatkan patch besar yang katanya memperbaiki 11 masalah aneh, tetapi diskusi dan opini tidak setuju dengan 10 di antaranya atau 9 di antaranya sudah diperbaiki dengan cara berbeda. Lalu, orang yang menggabungkan perubahan ini perlu mengekstrak satu patch yang menarik dari suatu tempat di antara tumpukan sumber yang sangat banyak, dan itu menciptakan banyak pekerjaan tambahan.
Sebaiknya, setiap perbaikan yang mengatasi masalah harus ada dalam patch/komitnya sendiri dengan deskripsi/pesan komitnya sendiri yang menyatakan dengan tepat apa yang diperbaiki sehingga semua perubahan dapat diterapkan secara selektif oleh pemelihara atau pihak berkepentingan lainnya.
Lebih jauh lagi, perubahan yang terpisah mengaktifkan pembagian menjadi dua bagian dengan lebih baik untuk melacak isu dan regresi di masa mendatang.
Dokumentasi¶
Dokumentasi dapat menjadi tugas yang membosankan; namun, dibutuhkan seseorang untuk menyelesaikannya. Akan jauh lebih mudah jika Anda mengirimkan dokumentasi beserta perubahan kode. Harap ingat untuk mendokumentasikan metode, blok kode yang kompleks, atau fitur yang terlihat oleh pengguna.
Lihat juga
Kasus uji¶
Pengujian ini memungkinkan kami untuk dengan cepat memverifikasi bahwa fitur berfungsi sebagaimana mestinya. Untuk mempertahankan dan meningkatkan kondisi ini, semua fitur dan fungsi baru yang ditambahkan perlu diuji dalam rangkaian pengujian. Setiap fitur yang ditambahkan harus mendapatkan setidaknya satu kasus uji valid yang memverifikasikan bahwa fitur tersebut berfungsi sebagaimana mestinya.
Pesan komit¶
Komit Git harus mengikuti spesifikasi Komit Konvensional.
Pemeriksaan jenis¶
Any new code should utilize PEP 484 type hints. We are using mypy to check them because it has a Django plugin that makes type checking of Django apps practical.
New and changed code should not introduce new mypy failures where current Django typing support makes that practical. The code base is not yet completely covered by type annotations, and some Django constructs are difficult to annotate precisely. CI therefore enforces mypy only for selected modules and reports other findings separately.
Standar pengkodean dan linting kode¶
Kode harus mengikuti pedoman pengkodean PEP 8 dan harus diformat menggunakan pemformat kode ruff.
Untuk memeriksa kualitas kode, Anda dapat menggunakan ruff, konfigurasinya disimpan di pyproject.toml.
The easiest approach to enforce all this is to install prek. This is
a third-party reimplementation of the pre-commit tool used by Weblate. It is
included in the development dependencies declared in pyproject.toml, so
installing those dependencies makes prek available.
To check all files manually, run:
uv run prek run --all-files
If you prefer the original pre-commit client, it uses the same
configuration from .pre-commit-config.yaml.
Pengkodean yang aman¶
Kode apa pun untuk Weblate harus ditulis dengan mempertimbangkan Prinsip Desain Keamanan.
Pedoman AI¶
Dengan berkontribusi pada proyek ini, Anda memberi kami izin untuk menggunakannya sebagaimana adanya, dan Anda harus memastikan bahwa Anda diizinkan untuk mendistribusikannya kepada kami. Dengan mengirimkan perubahan kepada kami, Anda setuju bahwa perubahan tersebut dapat dan harus diadopsi oleh proyek dan didistribusikan ulang di bawah lisensi proyek. Penulis harus secara tegas menyadari bahwa mereka bertanggung jawab untuk memastikan tidak ada kode tanpa lisensi yang dikirimkan ke proyek.
Hal ini terlepas dari apakah AI digunakan atau tidak.
Saat berkontribusi pada permintaan penarikan, tentu saja Anda harus selalu memastikan proposal tersebut berkualitas baik dan telah diupayakan sebaik mungkin sesuai dengan pedoman kami. Aturan praktisnya adalah jika seseorang dapat mengetahui bahwa kontribusi tersebut dibuat dengan bantuan AI, Anda masih perlu melakukan lebih banyak hal.
Kami dapat menerima kode yang ditulis dengan bantuan AI ke dalam proyek, tetapi kode tersebut tetap harus mengikuti standar pengkodean, ditulis dengan jelas, didokumentasikan, menampilkan kasus uji, dan mematuhi semua persyaratan normal yang kita miliki.