We want to hear from you!Take our 2020 Community Survey!

Necə İştirak Etmək

React, Facebook-un aktiv təkmilləşmədə olan və facebook.com-da olan bütün istifadəçilər tərəfindən yüklənilən ilk open source layihələrdən biridir. Biz, bu layihədə iştirak etməyin asan və şəffaf olması üzərində işləyirik. Lakin, biz hələdə istəyimizə tam çatmamışıq. Arzu edirik ki, bu sənəd iştirak etmək prosesini aydınlaşdırır və sizin bəzi suallarınızı cavablandırılır.

Davranış Qaydaları

Facebook, Contributor Covenant-ı öz Davranış Qaydaları kimi adaptasiya etdiyindən biz layihə iştirakçılarının bu qaydalara riayət edəcəyini gözləyirik. Hansı hərəkətlərin dözülüb dözülməyəcəyini anlamaq üçün bütün mətni oxumağınız xahiş olunur.

Açıq Təkmilləşmə

React üzərində işlənilən bütün işlər GitHub-da baş verir. Həm core komandanın üzvlərinin, həm də xarici iştirakçıların pull request-ləri eyni rəy prosesindən keçirilir.

Semantik Versiyalama

React, semantik versiyalamadan istifadə edir. Biz, pəç versiyalarında kritiki baq düzəlişlərini, kiçik versiyalarda yeni xüsusiyyətləri, böyük versiyalarda isə pozucu dəyişiklikləri dərc edirik. Pozucu dəyişiklik olduqda istifadəçilərin gəcələk dəyişikliklərdən xəbəri olmasını və öz kodlarını öncədən miqrasiya etmələri üçün biz kiçik versiyalarda köhnəlmə xəbərdarlıqları əlavə edirik. Bizim stabilliyə və inkremental miqrasiyaya öhdəliyimiz haqqında məlumat almaq üçün bizim versiya qaydalarımızı oxuyun.

Hər bir mühüm dəyişiklik changelog faylında sənədləşdirilir.

Branch Orqanizasiyası

Bütün dəyişiklikləri master branch-inə göndərin. Biz təkmilləşmə və gələcək buraxılışlar üçün ayrı branch-lər işlətmirik. Biz, master-in hər zaman yaxşı formada qalması və bütün testlərin keçməsi üçün əlimizdən gələni edirik.

master-ə çatan kod ən yeni stabil versiya buraxılışı ilə işləməlidir. Burada, əlavə xüsusiyyətlər ola bilər. Lakin, pozucu dəyişikliklər ola bilməz. Biz master-dən istədiyimiz zaman yeni kiçik versiya dərc edə bilməliyik.

Xüsusiyyət Flaqları

master branch-ini buraxılışa hazır vəziyyətdə saxlaya bilmək üçün bütün pozucu dəyişikliklər və eksperimental xüsusiyyətlər “xüsusiyyət flaqı” ilə gizlədilir.

Xüsusiyyət flaqları packages/shared/ReactFeatureFlags.js faylında təyin edilir. React-in fərqli qurulmaları fərqli xüsusiyyət flaqlarını aktiv edir. Məsələn, React Native qurulması React DOM qurulmasından fərqli konfiqurasiyada olunur. Bu flaqları packages/shared/forks direktoriyasından tapa bilərsiniz. Xüsusiyyət flaqlarına Flow ilə statik tiplər əlavə edilir. Bu səbəbdən, lazımi faylların yenilənməsini təsdiqləmək üçün yarn flow əmrindən istifadə edə bilərsiniz.

React-in qurma sistemi React-i dərc etməmişdən öncə deaktiv edilmiş bütün xüsusiyyətləri siləcək. Continuous integration işi hər commit-dən sonra paket ölçüsünü yoxlayır. Siz ölçüdə baş verən dəyişiklik əsasında xüsusiyyətin düzgün gizlədildiyindən əmin ola bilərsiniz.

Baqlar

Bilinən Problemləri Haradan Tapmaq Olar

Biz açıq baqlar üçün GitHub Issues-dan istifadə edirik. Biz bu baqlara yaxından baxır və daxili düzəlişin üzərində işləndiyini zaman bunu göstərməyə çalışırıq. Yeni issue əlavə etmədən öncə probleminizin artıq mövcud olmadığından əmin olun.

Yeni Problemlərin Göndərilməsi

Baqınızın düzəldilməsinin ən yaxşı yolu baq üçün kiçik demo göstərməkdir. Başlanğıc üçün bu JSFiddle şablonundan istifadə edə bilərsiniz.

Təhlükəsizlik Baqları

Təhlükəsizlik baqlarının təhlükəsiz şəkildə bildirilməsi üçün Facebook-un bounty proqramı var. Bunu nəzərə alaraq xahiş edirik ki, təhlükəsizlik baqlarını açıq issue kimi göndərməyin. Baqları səhifədə göstərilən proses ilə göndərin.

Bizimlə Əlaqə

Əgər sizə React ilə bağlı kömək lazımdırsa, bizim React istifadəçilərindən ibarət olan Discord çat platformasında yerləşən cəmiyyətimizə müraciət edə bilərsiniz.

Dəyişikliyi Təklif Edin

Açıq API-ı dəyişmək və ya tətbiqə kiçik olmayan dəyişikliklər etmək istəyirsinizsə, biz issue göndərməyi tövsiyyə edirik. Burada, təklifiniz üzərində çox zəhmət çəkmədən öncə bir razılığa gəlməyimiz mümkündür.

Əgər baq düzəlişi edirsinizsə, yalnız PR göndərə bilərsiniz. Lakin, biz yenə də nəyi düzəltdiyiniz haqqında issue göndərməyi tövsiyyə edirik. Bu, sizin düzəlişinizi qəbul etmədiyimiz amma yenə də problemi izləmək istədiyimiz hallar üçün faydalıdır.

İlk Pull Request

İlk Pull Request-iniz üzərində işləyirsiniz? Bunu necə etmək haqqında öyrənmək istəyirsinizsə, göstərilən pulsuz video seriyasına baxa bilərsiniz:

Github-da Yerləşən Open Source Layihələrdə Necə İştirak Etmək Olar

Sizi bizim iştirak etmək prosesimiz ilə tanış etmək üçün məhdudlu əhatə dairəsi olan baqlardan ibarət yaxşı ilk problemlər siyahımıza baxmağı tövsiyyə edirik.

Problemi düzəltmək istədiyiniz zaman kiminsə düzəliş üzərində işlədiyini bilmək üçün kommentləri oxuyun. Əgər düzəliş üzərində heç kim işləmirsə, bunun üzərində işləmək istədiyinizi komment ilə bildirin ki, başqaları sizin zəhmətinizin kopiyasını etməsinlər.

Əgər kimsə problemi götürdükdən sonra iki həftə ərzində heç bir yenilik etməyibsə, siz bu issue-nu özünüzə götürə bilərsiniz. Lakin, yenə də bunun üzərində işləmək istədiyinizi komment ilə bildirməyi unutmayın.

Pull Request-in Göndərilməsi

Pull request-ləri core komandası izləyir. Biz, sizin pull request-inizə baxıb ya PR-ı biləşdirəcək, ya bu PR-a dəyişikliklərin ediləcəyini bildirəcək, yada ki bu PR-ı izahatlı bağlayacağıq. API dəyişiklikləri olduqda biz Facebook.com-da daxili düzəlişlər etməli ola bilərik. Bu səbəbdən bu biraz vaxt ala bilər. Biz yeniliklər verməyə və proses zamanı rəylərimi bildirməyə çalışacağıq.

Pull request göndərməmişdən öncə aşağıdakı addımları atmağınızı xahiş edirik:

  1. repo-nu fork edib master-dən branch yaradın.
  2. Repo-nun ana direktoriyasından yarn əmrini çağırın.
  3. Əgər baq düzəlişi etmisinizsə və ya test edilməli kod əlavə etmisinizsə, testlər əlavə edin!
  4. Test dəstinin uğurlu keçdiyindən əmin olun (yarn test). Məsləhət: Təkmilləşmə zamanı yarn test --watch TestName formalı əmr çağırmaq faydalıdır.
  5. Testləri produksiya mühitində yoxlamaq üçün yarn test-prod əmrini icra edin. Bu əmr, yarn test ilə eyni parametrləri dəstəkləyir.
  6. Əgər sizə debaqqer lazımdırsa, yarn debug-test --watch TestName əmrini icra edin, chrome://inspect səhifəsini açın və “Inspect” düyməsini tıklayın.
  7. Kodunuzu prettier ilə format edin (yarn prettier).
  8. Kodunuzun lint olduğundan əmin olun (yarn lint). Məsləhət: yalnız dəyişən faylları yoxlamaq üçün yarn linc əmrini icra edin.
  9. Flow tip yoxlamalarını icra edin (yarn flow).
  10. CLA-i doldurun (əgər etməmisinizsə).

İştirakçı Lisenziyası Müqaviləsi (CLA)

Pull request-i qəbul edə bilməmiz üçün CLA-ı imzalamanız lazımdır. Siz bunu bir dəfə etməlisiniz. Əgər Facebook-un digər open source layihəsində imzalamısınızsa, sizə yenidən imzalamaq lazım deyil. Əgər pull request-i ilk dəfə göndərirsinizsə, CLA-i doldurduğunuzu bizə bildirin ki, biz müqaviləni sizin Github istifadəçi adınız ilə yoxlaya bilək.

CLA-i buradan doldurun.

İştirak Etmək üçün Ön Şərtlər

  • Node-un v8.0.0+ versiyasını və Yarn-ın v1.2.0+ versiyasını yükləyin.
  • JDK-i yükləyin.
  • gcc-in yükləndiyinizdən və ya lazım olduqda kompilyatoru yükləməkdə probleminizin olmadığından əmin olun. Bəzi asılılıqlara kompilyasiya addımı lazım ola bilər. macOS-da Xcode Command Line Tools-u yükləmək bəsdir. Ubuntu-da apt-get install build-essential əmri ilə lazımi paketləri yükləyə bilərsiniz. Digər Linux disto-larında buna oxşar əmrlər var. Windows-da bir neçə əlavə addım etmək lazımdır. Əlavə məlumat üçün node-gyp-nin yükləmə təlimatlarına baxın.
  • Git ilə tanışlığınız olmalıdır.

Təkmilləşmə İş Axını

React-i clone etdikdən sonra yarn əmrini çağıraraq asılılıqları yükləyin. Bundan sonra bir neçə əmri icra edə bilərsiniz:

  • yarn lint kod stilini yoxlayır.
  • yarn linc əmri yarn lint əmrinə bənzəyir, amma yalnız branch-də dəyişən faylları yoxladığından daha tez işləyir.
  • yarn test bütün test dəstini yoxlayır.
  • yarn test --watch interaktiv test gözətçisini başladır.
  • yarn test <pattern> fayl adları uyğun gələn testləri icra edir.
  • yarn test-prod əmri, testləri produksiya mühitində icra edir. Bu əmr yarn test əmri ilə eyni parametrləri dəstəkləyir.
  • yarn debug-test əmri debaqqeri olan yarn test əmridir. chrome://inspect səhifəsini açıb “Inspect” düyməsini tıklayın.
  • yarn flow əmri Flow tip yoxlamalarını başladır.
  • yarn build əmri bütün paketləri saxlayan build direktoriyasını yaradır.
  • yarn build react/index,react-dom/index --type=UMD əmri React və ReactDOM üçün UMD qurmalarını yaradır.

Dəyişikliyiniz zamanı heç bir reqressiyaların olmaması üçün yarn test (və ya yuxarıdakı variasiyalarını) icra etməyi tövsiyyə edirik. Lakin, React qurulmasını real layihədə işlətmək də faydalı ola bilər.

İlk öncə, yarn build əmrini icra edin. Bu, qurulan paketləri build direktoriyasında, npm paketlərini isə build/packages direktoriyasında yaradacaq.

Dəyişiklikləri yoxlamağın ən asan yolu yarn build react/index,react-dom/index --type=UMD əmrini çağırıb fixtures/packaging/babel-standalone/dev.html səhifəsini açmaqdır. Bu fayl, build direktoriyasında olan react.development.js faylından istifadə edir.

Dəyişiklikləri mövcud React layihəsində sınamaq istədikdə build/dist/react.development.js, build/dist/react-dom.development.js və digər qurulma məhsullarını applikasiyaya köçürüb stabil versiyalar əvəzinə bu versiyaları işlədin.

Əgər layihənizdə React-i npm-dən yükləyirsinizsə, siz reactreact-dom asılılıqlarını silib yarn link ilə bu asılılıqlar lokal build direktoriyasına yönləndirin. Nəzərə alın ki, **qurulma zamanı --type=UMD əvəzinə --type=NODE parametrindən istifadə etməlisiniz. Əlavə olaraq scheduler paketini də quraşdırmalısınız:

cd ~/path_to_your_react_clone/
yarn build react/index,react-dom/index,scheduler --type=NODE

cd build/node_modules/react
yarn link
cd build/node_modules/react-dom
yarn link

cd ~/path/to/your/project
yarn link react react-dom

yarn build əmrini React direktoriyasında icra etdikdə yeni versiyalar layihənin node_modules direktoriyasında görünəcək. Siz, layihənizi bu dəyişikliklər ilə yenidən qurun.

Əgər hər hansı bir paket əskikdirsə (məsələn, layihənizdə react-dom/server işlədirsinizsə), siz yarn build ilə tam qurulma əməliyyatını icra edə bilərsiniz. Nəzərə alın ki yarn build əmrini parametrlərsiz icra etdikdə bu əmr uzun zaman çəkə bilər.

Biz, yeni xüsusiyyətlər üçün pull request-də testlərin olmasını tələb edirik. Bu yol ilə, biz gələcəkdə sizin kodunuzun sınmayacağını təmin edə bilirik.

Stil Təlimatları

Biz, Prettier adlı avtomatik kod format edicisindən istifadə edirik. Kodunuza etdiyiniz dəyişikliklərdən sonra yarn prettier əmrini çağırın.

Sonra, kodunuzda olan bir çox problemləri tuta biləcək. Kod stilinini statusunu yoxlamaq üçün yarn linc əmrini icra edin.

Lakin, bəzi stilləri linter tutmaya bilər. Əgər nədənsə əmin deyilsinizsə, Airbnb-nin Stil Təlimatlarına baxın.

Kommentlər üçün Sorğu (RFC)

Baq düzəlişləri və sənəd təkmilləşdirmələri daxil olmaqla bir çox dəyişiklikləri normal Github pull request iş axını ilə tətbiq edib yoxlamaq mümkündür.

Lakin, bəzi dəyişikliklərin daha böyük ola bildiyindən biz bunların xüsusi dizayn prosesindən keçməsini və React core komandasında razılıq yaratmasını istəyə bilərik.

“RFC” (ingiliscə, request for comments; kommentlər üçün sorğu) prosesi yeni xüsusiyyətlərin layihəyə daxil olması üçün ardıcıl və idarə olunan yoldur. Siz, “rfcs” repo-sunda iştirak edə bilərsiniz.

Lisenziya

React layihəsində iştirak etdikdə siz bütün tövfələrinizin MIT lisenziyası ilə lisenziyalanması ilə razılaşırsınız.

Sırada Nə Var?

Kodun necə orqanizə olduğu haqqda öyrənmək üçün sonrakı bölməni oxuyun.

Is this page useful?Bu səhifəni redaktə edin