Lisans ve telif hakkı¶
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.
Ayrıca bakınız
Weblate lisansı lisanslamayı daha ayrıntılı olarak açıklamaktadır.
İyi bir yama yazmak¶
Ayrı değişiklikler yazmak¶
Elinize 11 tuhaf sorunu düzelttiği söylenen büyük bir yama geldiğinde, ancak tartışmalar ve görüşler bunlardan 10 tanesi ile aynı fikirde olmadığında veya 9 tanesi zaten farklı şekilde düzeltildiğinde durum can sıkıcı olur. O zaman bu değişikliği birleştiren kişinin, büyük kaynak yığınının içinde bir yerden tek ilginç yamayı ayıklaması gerekir ve bu da çok fazla ek iş yaratır.
İdeal olarak, bir sorunu ele alan her düzeltme, kendi yaması/kendi açıklaması ile işleme iletisi/tam olarak neyi düzelttiğini belirten işleme açıklaması ile yapılmalıdır. Böylece tüm değişiklikler geliştirici veya diğer ilgili taraflarca seçilerek uygulanabilir.
Ayrıca, ayrı değişiklikler, gelecekte sorunları ve gerilemeyi izlemeyi çok daha iyi ayırabilmeyi sağlar.
Belgeleme¶
Belgeleme sıkıcı bir iş olabilir; ancak birisinin bunu yapması gereklidir. Belgeleri kod değişiklikleriyle birlikte göndermeniz işleri çok daha kolaylaştırır. Lütfen yöntemleri, karmaşık kod bloklarını veya kullanıcı tarafından görülebilen özellikleri belgelemeyi unutmayın.
Ayrıca bakınız
Sınama senaryoları¶
Sınamalar, özelliklerin olması gerektiği gibi çalıştığını hızlıca doğrulamamızı sağlar. Bu durumu korumak ve geliştirmek için, eklenen tüm yeni özelliklerin ve işlevlerin sınama paketiyle sınanması gerekir. Eklenen her özelliğin, belgelendiği gibi çalıştığını doğrulayan en az bir geçerli sınama olayı bulunmalıdır.
Ayrıca bakınız
İşleme iletileri¶
Git işlemeleri Geleneksel işlemeler teknik özelliklerine uygun olmalıdır.
Tür denetimi¶
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.
Kodlama standardı ve kodu temizlemek¶
Kod, PEP 8 kodlama kurallarına uymalı ve ruff kod biçimlendiricisi ile biçimlendirilmelidir.
Kod kalitesini denetlemek için ruff kullanabilirsiniz. Yapılandırması pyproject.toml dosyasındadır.
Tüm bunları uygulamak için en kolay yaklaşım prek kurmaktır. Bu, Weblate tarafından kullanılan pre-commit aracının üçüncü taraftan yeniden uygulanmasıdır. pyproject.toml içinde belirtilen geliştirme bağımlılıklarına katılır, bu nedenle bu bağımlılıklar kurulduğunda prek kullanılabilir olur.
Tüm dosyaları el ile denetlemek için şunu yürütün:
uv run prek run --all-files
Özgün pre-commit istemcisini yeğlerseniz, .pre-commit-config.yaml ile aynı yapılandırmayı kullanır.
Güvenli kodlama¶
Weblate için geliştirilen kodlar Tasarım ilkelerine uygun güvenlik göz önünde bulundurularak yazılmalıdır.
Yapay zeka kuralları¶
Projeye içerik katkıında bulunurken, bize içeriği olduğu gibi kullanma izni verirsiniz ve içeriği bize dağıtmanıza izin verildiğinden emin olmalısınız. Bize bir değişiklik göndererek, değişikliklerin projenin bir parçası olacağını ve bir parçası olması gerektiğini ve proje lisansı altında yeniden dağıtılabileceğini kabul edersiniz. Yazarlar, projeye lisansı uygun olmayan kodların gönderilmemesini sağlama yükümlülüğünün kendilerine ait olduğunun açıkça farkında olmalıdır.
Bu koşul, yapay zekanın kullanılmasından ya da kullanılmamasından bağımsızdır.
Bir çekme isteğine katkıda bulunurken, elbette her zaman önerinin kaliteli olduğundan ve kurallarımıza uygun en iyi çaba olduğundan emin olmalısınız. Temel bir kural olarak, birisi katkının yapay zeka yardımıyla yapıldığını fark edebiliyorsa, yapmanız gereken daha çok iş var demektir.
Yapay zeka yardımıyla yazılan kodu projeye kabul edebiliriz. Ancak kod yine de kodlama standartlarına uymalı, açık bir şekilde yazılmalı, belgelenmeli, sınama senaryoları içermeli ve sahip olduğumuz tüm normal gereksinimlere uymalıdır.