WordPress Core’a katkıda bulunmak için geliştirici kılavuzu
Hepimiz lezzetli beyinlerde geliştiriciler olduğumuz için, WP Core katkı günümüzde, WordPress Core için kodu yaparak katkıda bulunabileceğimiz biletler bulmaya çalışıyoruz. Bu tür katkılara odaklanacağım, ancak katkıda bulunmanın başka birçok yolu var ve ne yapabileceğiniz saygı duyulacak. Bir Bilet Bulunur Geçen Kasım ayında katkı günümüze ilk başladığımızda, tanıştığımız ilk büyük engel, çalışmak için biletleri nerede bulacağıydı. İşte iyi bir bilet bulmak için ziyaret ettiğimiz bazı yerler.
İlk ilk hata https://core.trac.wordpress.org/tickets/good-first-bugs raporu “İyi İlk Bugs”, WordPress’e yeni katkıda bulunan geliştiriciler için iyi kabul edilen bir bilet koleksiyonudur. Şahsen bu rapor aracılığıyla birkaç bilet buluyorum ve başlarken ilk durak olarak tavsiye ediyorum. Raporun “Talep Edilmedi – Hemen Gir!” Genellikle “iyi bir ilk bug” anahtar kelimesi verilen ve her türlü geliştirme, test ve dokümantasyon ihtiyaçlarını içerebilen biletleri bulmak için iyi bir yer. Bazen bilet çalışıyormuş gibi görünür, ancak çoğu zaman sadece kullanımı kolay olan yamayı güncellemeleri gerekir (bkz. Yamalar uygulamak ve yamalar yaparak). Bu raporun teslimatının el kitaplarının alanlarına çok yararlı bağlantıları vardır. Okumayı önerdiğim çekirdek katkıda bulunanlar. Geliştirmeye başlamadan önce WordPress kodlama standartları okunmalıdır ve umarım WordPress kod tabanına aşina olursunuz. Terminolojiyi ve süreç akışını anlamak için “Hata parçalarımızı nasıl kullanıyoruz” makalesini okumak güzel. Hiçbir yama yok https://core.trac.wordpress.org/ticts/no-patch raporu “Yama yok” veya “İhtiyaç Yaması, Ama Hiçbiri” hala bir yamaya ihtiyaç duyanları yapmak için bilet bulmak için çok iyi. Kimse sorunları olan bilet veya yamalar ve yeni temiz yamalar gerekli olabilir.
Genellikle bu rapor için bazı “sahne” daha sonra daha hızlı denemek ve almak istiyorsanız biletleri ele almanızı öneren bir “Sonraki Sürüm” bölümü vardır. Listedeki biletlerin doğal olarak inceleme ve daha hızlı test edilmesi daha olasıdır, çünkü bir sonraki sürüm için önceliklendirilirler. WordPress Core haftalık yayınlarından birinde belirtilen adınızı görmek her zaman iyi bir duygudur ve gelecekte daha fazla biletle başa çıkmanızı teşvik edecektir. Birim testi gerektirir https://core.trac.wordpress.org/ticts/needs-unit-sitsapa. Ünite testinde yararlı mısınız? Belki WordPress Core’u keşfetmek ve aynı anda katkıda bulunmak istersiniz? Sonra “İhtiyaç Birim Testleri” raporu sadece bilet! Bir sonraki büyük ve küçük sürüm https://core.trac.wordpress.org/tickets/major/workflow https://core.trac.wordpress.org/tickets/minor/workflow raporu “Tüm bunlar iyi bir yol Çabalarınızı sonraki birkaç sürüm için belirlenen biletlere hedeflemek. Yukarıdaki bağlantı, iş akışının durumuna göre gruplanan Next Binbaşı ve Next Minor’un yayınlanmasının rapor versiyonudur, bunu tercih ederim çünkü uzmanlığınıza (geliştirme, test vb.) Uygun biletler bulmak daha kolaydır.
Hata raporu https://make.wordpress.org/core/reports/ Bu raporun yanıltıcı bir başlığı var, bu daha çok bir bilet panosu ve size çeşitli bilet raporları için iyi bir başlangıç noktası sunuyor. Burası biraz keşfetmek istediğinizde ziyaret etmek için bir yer. WordPress için bileşenlere ve odak alanlarına hızlı erişim sağlayan bir “konuya dayalı bilet” bölümü vardır. Bizim için doğal bir seçim “eklenti” bileşen alanıdır. Ayrıca, yaptığınız, yorum yaptığınız veya favori biletleri izlemek için çok yararlı olan bir “Ben” de bir parçası var. Olağanüstü yamaları olan biletleri de görebilirsiniz. Slack’e sorun #Core https://wordpress.slack.com, biletin başlamak için iyi olup olmadığından emin değilseniz veya WordPress Core biletlerini nasıl ele alacağınızla ilgili sorularınız varsa, Don “ Gecikme, #Core Slack kanalına sorun! Https://make.wordpress.org/chat/ adresindeki WordPress Slack kanalı ile nasıl başlayacağınız hakkında daha fazla bilgi var. İyi bir geliştirme sitesi hazırlayın, araştırılacak bir bilet bulduğunuzu varsayalım. Daha ileri gitmek için WordPress Core kaynak kodunu indirmeniz, WordPress oluşturmanız, yerel geliştirme sitenizi yapılandırmanız ve geliştirmeye girmeden önce denemeniz gerekir.
İndir WordPress Core’un kaynağı, yeni bir WordPress örneği hazırlamak için indirdiğiniz WordPress yazılımından çok farklıdır. Geliştirmeye yardımcı olacak farklı bir dizin yapısına sahiptir ve Subversion (SVN) deposunda saklanır. Bu nedenle, bagajınızın bir kopyasını almak için SVN kullanmalısınız. $ svn co https://decelvn.svn.wordpress.org/trunk wordpress-core aşağıdakilere benzer dizin yapısını göreceksiniz:
WordPress’te yaptığınız her değişikliğin doğru bir şekilde oluşturulmasını ve çalıştırılmasını sağlamak için WordPress oluşturma, en iyisi, WordPress’in doğrudan SRC’den değil, üretildiğinde yapılan oluşturma dizinden geliştirme sitenizi çalıştırmaktır. Ancak bu bazı araçlar gerektirir.
Gerekli araçlar:
Node.js NPM
homurdanmış
WordPress Core’u oluşturmak için Grunt ve CLI’yi yüklemelisiniz. Seçiminiz bir homurdanma içermiyorsa, homurdanmayı ve bağımlılığı hazırlamak için çok basit bir başlangıç kılavuzu vardır: Node.js ve NPM. WordPress çekirdek kaynağını kontrol ederken, NPM modülünü yüklerken ve varsayılan homurdanma çalışmasını çalıştırırken yaptığınız dizinde değiştirin. $ CD WordPress-Core $ npm yükleme $ Grunt şimdi WordPress Core’da birkaç yeni yönetmen görecek, kontrol edin: node_modules and Build.
Şu andan itibaren, SRC dizini altında bulunan WordPress kaynak kodunda her değişiklik yaptığınızda, bina dizini içeriğini güncellemek için kök dizindeki homurdanmayı tekrar çalıştırabilirsiniz. Daha sonra Keep It Clean bölümünde daha fazla konuştuk.
Yerel sitenizi yapılandır WordPress, WP-Config.php’nizi siteye hizmet verdiğiniz dizinin ana dizinine koymanızı sağlayan düzgün bir özelliğe sahiptir. Bu durumda, sitemiz yapı dizininden sunulsa bile, WP-Config.php’yi kök dizinine koyabiliriz. Yine de alacak. WP-Config.php’ye sağlanan wp-config-sample.php ve yerel olarak oluşturduğunuz yeni MySQL veritabanı için veritabanı ayrıntılarını ekleyerek güncelleyin.
Bunu yaptığınızda, neden WP-Tests-Config-Sample.php’i WP-Tests-Config.php’ye kopyalayıp, birim testini de çalıştırabilmeniz için yerel olarak oluşturduğunuz diğer veritabanları için veritabanı ayrıntılarıyla yenilemiyorsunuz? Ünite testi için ayrı bir veritabanı kullanmak çok önemlidir, çünkü birim testi sırasında veritabanı tamamen yenilenir. Artık geliştirme siteniz için WP-C. Config.php’ye sahip olduğunuza göre, derleme dizinini belge kökü olarak kullanan http://wordpress-core.dev gibi bir web sitesi hazırlama zamanı. Mamp Pro’yu sadeliği ve esnekliği nedeniyle kullanıyorum, ancak sizin için en rahat olanı kullanmalısınız. İdeal olarak PHP 5.2.x’i geliştirmenizde kullanın, çünkü bu, WordPress için desteklenen PHP’nin minimum sürümüdür. Bununla birlikte, PHP 5.2 ile çalışmayan daha yeni bir PHP sürümünün özelliklerini kullanmanızı engelleyecektir. Gerçeğin anını deneyin. Yeni WordPress geliştirme sitenize bağlanabileceğinizden ve yönetebildiğinizden emin olun. Ayrıca yeni WordPress’inizi bazı test verileriyle doldurmak için WP testi gibi bir şey kullanmayı da düşünmelisiniz. Ünite testini çalıştırın, geliştirme sitenizde her şeyin yolunda olduğundan ve ne yaptığınız her şeyin hiçbir şeye zarar vermeyeceğinden emin olmak için ünite testini çalıştırmalısınız. İncelenen kaynağın kökünden … $ phunit
Birim testinde bir veya iki başarısızlık görürseniz şaşırmayın. Bagajda çalışırken genellikle birkaç tane vardır. (Belki de düzeltebilirsin?) En azından sorunun nerede olduğunu biliyorsunuz, böylece bir değişiklik yaptığınızda, her şeyi daha iyi, daha kötü veya en azından etkilemeyeceğinizi öğrenebilirsiniz! Gelişiminiz artık WordPress Core’da geliştirmeye hazır, deponuzu SVN ile güncel tutun ve WordPress Core sitenizi gerektiğinde veya saat süreci ile yeniden inşa edin. Yamaları yenileyerek WordPress çekirdek katkınıza başladığınızı varsayalım. Bu, yamalı dosyanın biletten indirilmesini, kontrol ettiğiniz kaynağa uygulanmasını, hala geçerli olup olmadığını kontrol etmeyi, beklentileri tekrar yapmayı, yamaları yeniden yapmayı ve güncellenmiş bir ad ve güncellenmiş anahtar kelime ile bilete takmayı gerektirir. Yamalar uygulamadan önce temizliğe dikkat edin, kontrol ettiğiniz kaynağın ve binanın “temiz” olduğundan emin olun. . Sadece temiz bir yama yapamayacağınızı bulmak için bir şey yapmaktan daha kötü bir şey yoktur, çünkü kod tabanınızı kirleten diğer biletlerden önceki kod değişiklikleriniz vardır. $ Svn diff Svn diff bir şey döndürürse, belki de yamalar üzerinde çalıştığınız için değişiklikleri döndürürse. $ SVN REVERV PATH/TO/DEĞİŞTİRİLDİ/DOSYA VE SONRAK SVN DIFF ile tekrar kontrol edin. Ödeme işleminizde herhangi bir değişiklik olmadığında, depoya yapılan diğer değişikliklerle güncel olduğunuzdan emin olun. $ SVN UP Şimdi deponuzun temizlendiğinden emin olun, sonra bir spin verin. $ Grunt bir yama uygular Biletlerden en son yama indir. 14584.3. 14584 bileti için ilk yama dosyası 14584.patch olarak adlandırılacaktır. Yamayı daha uzun bir bilet için yenilerseniz, yamanın adının 14584v3.diff gibi olduğunu görebilirsiniz. Dosyalar kök dizininize kopyalanmalı ve oradan bir yama ile uygulanmalıdır: $ Patch -p0 <14584.3.Patch Yama her zaman yapılır ve kod tabanından uygulanır, böylece genellikle src/… veya testleri görürsünüz. .. Dosya adında yamalı. Umarım yama beklendiği gibi uygulanır. Değilse (belki de bu yüzden yenilenirsiniz), kısmen SVN REVERT ile uygulanan her şeyi geri yüklemeniz gerekebilir. Tüm PHP geliştirmem için olağanüstü phpstorm kullandığım için, uygulanan tüm yama değişikliklerini kolayca bulabilirim. Bununla birlikte, yamanın doğru uygulanıp uygulanmadığını yeniden kontrol etmenin başka bir yolu, yamalar yaparken kullanacağınız yöntemi kullanmaktır. Geliştirin ve test kod değişiklikleri yaparken, incelenen kaynaktan SRC dizinindeki değişikliklerinizi geliştirdiğinizden emin olun ve WordPress kodlama standartlarına bağlı kaldığınızdan emin olun. Kod tabanına yeni kodun nereye yerleştirilmesi gerektiğinden emin değilseniz, WordPress Kod Taban Makalesine bakın. Bir değişiklik yaptığınızda, yapım dizini yenilemek için bir homurdanma kullanın, böylece değişiklikleri yaptığınızda test edebilirsiniz. Mümkünse, kodunuzun iyi entegre olmasını sağlayan Testler Dizini’ne birim testi veya birim testi güncellemeleri ekleyin. Birim testini ara sıra çalıştırdığınızdan emin olun. Ve bir yamalı yapmadan önce gelişiminizi ve testinizi bitirdiğinizi hissettiğinizde kesin olarak koşun. Yamayı yapmak değişikliklerinizi geliştirdi ve test etti ve artık değişikliklerinizi gözden geçirilip test edilecek WordPress Core ekibine geri döndürmeye hazır. Bunu nasıl yaptın? Bu arada, aşağıdakileri çalıştırırsanız, depodan başka bir kasadan yamalamak için gerekenleri alacaksınız: $ svn diff Yama dosyanızı oluşturmak için, SVN Diff’ten çıktıyı dosyaya belirtmeniz yeterlidir: $ svn diff> 14584.4. Bu örnekte yüzeyde hiçbir şey değişmemiş olsa da, bunu çok daha yeni bir depo sürümünden ürettik ve bu nedenle biletler için yamaları yenileyip geri gönderirsek sürüm numarasını artırmamız gerekiyor. Nispeten basit bir yamalı dosya göndererek yamayı gönderin. WordPress.org’u girdiğinizden emin olun, söz konusu bilete gidin ve ana açıklama bloğu ile değişimin geçmişi arasında bulunan ek bloğunu bulacaksınız. Ek bloğunda sizi bir “dosyayı ekle” düğmesi var. Yüklediğiniz dosyayı seçebileceğiniz sayfa, kısa bir açıklama sunar.
Üzerinde çalıştığınız WordPress Core biletinin altına yakın biletleri değiştirin, bilet değişiklik bloğunu göreceksiniz.
Yaptığınız veya bulduğunuza bağlı olarak, mülk değiştirme bölümünde birkaç anahtar kelime çalışma yolunu değiştirmeniz gerekebilir. Çoğu durumda, “İhtiyaçlar-Patch” veya “İhtiyaçlar-Refresh” anahtar kelimeleri gibi şeyleri siler ve “Has-Patch” ve “ihtiyaç testi” anahtar kelimelerini eklersiniz. Bittiğinde, bu, bileti bir kişinin anahtar kelime tabanlı raporuna gözden geçirilecek ve test edilecek bir şey olarak taşıyacaktır. Anahtar kelimeleri değiştirmekte tereddüt ediyorsanız, bir hata izleyici kullanma hakkındaki resmi makaleye bakın. Eylem bölümünde herhangi bir şeyi değiştirmeniz çok imkansızdır. Yanlışlıkla orada bir kez birkaç eşyayı değiştirdim ve tekrar aceleyle yapmazdım!