\

State of Open Source Contribution in Turkey Türkiye'de Açık Kaynağa Katkının Durumu

February 4, 2024 4 Şubat 2024

1. Introduction 1. Giriş

This report looks at data from GitHub and shows the stats related to GitHub usage in Turkey and the contributions from Turkey to open source. Bu rapor, GitHub'dan gelen verileri kullanarak Türkiye'deki GitHub kullanımı ve Türkiye'nin açık kaynağa katkıları ile ilgili istatistikleri göstermektedir.

We also talk about "focus projects", which are special projects we want more contributors from Turkey to work on. These projects offer a great chance for developers from Turkey to get involved and make a difference in the worldwide open source community. Ayrıca, Türkiye'den daha fazla yazılımcının katkı yapmasını istediğimiz özel projeler olan "odak projeler"den de bahsetmektedir. Bu projeler, Türkiye'deki geliştiricilerin katılabileceği ve dünya çapındaki açık kaynak topluluğunda fark yaratma şansı sunan projelerdir.

2. Getting Started 2. Önbilgi

We collected the data from GitHub API using a custom written software called OpenTR/CuttleCat. All the location related data is collected from the location field of the user profile. We went an extra mile to understand if the location is actually in Turkey. Verileri GitHub API'sinden OpenTR/CuttleCat isimli özel yazılan bir yazılım kullanarak topladık. Tüm konumla ilgili veriler, kullanıcı profili içindeki konum alanından toplanmıştır. Konumun gerçekten Türkiye'de olup olmadığını anlamak için ekstra bir çaba sarf ettik.

Collected data can be found in OpenTRFoundation/state-of-oss-contribution repository. Toplanan veriler, OpenTR/state-of-oss-contribution repository'sinde görülebilir.

3. Comparison with GitHub Innovation Graph data 3. GitHub Innovation Graph verileri ile karşılaştırma

GitHub's Innovation Graph is a great resource for understanding country specific GitHub usage. Its data is aggregated from GitHub network activity and data. GitHub'ın hazırladığı Innovation Graph isimli rapor, ülkelere özel GitHub kullanımını anlamak için harika bir kaynaktır. Verileri, GitHub ağ etkinliği ve verilerinden toplanmıştır.

GitHub is using some internal resources when building their Innovation Graph, which are not accessible to public. They don't need to use the location field user provided, as they have access to the IP address of the user and thus the location. GitHub uses the IP address to determine the country of the user as described in their datasheet. GitHub, Innovation Graph'ı oluştururken herkese açık olmayan bazı iç kaynakları kullanıyor. Kullanıcının IP adresine ve dolayısıyla konumuna erişebildikleri için, kullanıcının sağladığı konum alanını kullanmalarına gerek yok. GitHub, veri seti bilgilendirmesinde yazıldığı üzere, kullanıcının ülkesini belirlemek için IP adresini kullanıyor.

We compared our data with the data from GitHub Innovation Graph, and we understand that GitHub Innovation Graph data is more accurate, but it is less detailed. As they only provide aggregated data, the break down is very limited. For example, we cannot see the distribution of the users in Turkey per province. Similarly, we cannot see the number of active users or their contribution to open source projects. Verilerimizi GitHub Innovation Graph verileri ile karşılaştırdık ve GitHub Innovation Graph verilerinin daha doğru olduğunu, ancak daha az ayrıntılı olduğunu anladık. Yalnızca toplu veri sağladıkları için, verilen kırılımlar kısıtlı. Örneğin Türkiye'deki kullanıcıların il bazında dağılımını göremiyoruz. Benzer şekilde, aktif kullanıcıların sayısını veya açık kaynak projelerine katkılarını göremiyoruz.

For example, GitHub Innovation Graph data shows 1,317,401 users in Turkey as of Q1 2023, while we found around 110,000 users with a location field somewhere in Turkey. This is because the location field is a plain-text and optional input. Some users from Turkey might not have entered a location, or they might have written a location that we couldn't match with Turkey. GitHub Innovation Graph verileri, 2023'in birinci çeyreği itibariyle Türkiye'de 1.317.401 kullanıcı gösterirken, biz konum bilgisi Türkiye'de bir yer olarak girmiş olan yaklaşık 110.000 kullanıcı bulduk. Bu, konum alanının düz metin ve opsiyonel bir alan olması nedeniyledir. Türkiye'den bazı kullanıcılar bir konum yazmamış olabilir veya Türkiye ile eşleştiremediğimiz bir konum yazmış olabilir.

Considering the Weak Law of Large Numbers, readers can have very good approximations about the trends and changes. Also, although we probably cannot multiply every user count related number below with 13 (1.3M/110K ratio), readers can use this ratio to have a feeling about the number of users and open source contributors from Turkey. We did not use this ratio and simply show the numbers we found. Büyük Sayılar Yasası göz önüne alındığında, okuyucuların trendler ve değişiklikler hakkında çok iyi yaklaşımlar yapabileceğini düşünüyoruz. Ayrıca, muhtemelen kullanıcı sayısı ile ilgili aşağıdaki her sayıyı 13 ile çarpamayacaksak da (1,3 milyon / 110 bin oranı), okuyucular bu oranı Türkiye'deki GitHub kullanıcıları ve açık kaynak katkılarının sayısı hakkında bir fikir edinmek için kullanabilir. Biz bu oranı kullanmadık ve sadece bulduğumuz sayıları gösterdik.

4. Software people in Turkey from GitHub usage 4. Türkiye'deki yazılımcılar ve GitHub kullanımı

This section gives an overview of software industry in Turkey, with regard to GitHub usage. Bu bölüm, GitHub kullanımı açısından Türkiye'deki yazılım endüstrisine genel bir bakış sunmaktadır.

Number of GitHub users with a location somewhere in Turkey Türkiye'de bir yer olarak bir konum yazmış GitHub kullanıcılarının sayısı

Total Toplam

Count Sayı

Population Nüfus

Count per 1M people 1 milyon kişiye düşen

Summary Özet

These users have entered a location on GitHub that we matched with Turkey. As GitHub's location input is a plain-text input, we worked hard to understand if the location is actually in Turkey. Bu kullanıcılar, GitHub'da Türkiye ile eşleştirdiğimiz bir konum yazan kullanıcılar. GitHub'ın konum girdisi düz metin bir girdi olduğu için, konumun gerçekten Türkiye'de olup olmadığını anlamak için çok çalıştık.

Istanbul has the most users by having ~40% of the all users. Ankara comes the second, followed up by Izmir. İstanbul, tüm kullanıcıların ~40%'ına sahip olarak en fazla kullanıcıya sahip. Ankara ikinci sırada, İzmir ise onu takip ediyor.

These 3 big provinces have more than 50% of the users. Bu 3 büyük il, kullanıcıların %50'sinden fazlasına sahip.

It is not possible to determine the provinces of ~30% of the users. Kullanıcıların %30'unun ilini belirlemek mümkün değil.

Coloring of the provinces are based on the number of users in that province per 1M people. This can be thought of a score of a province's software industry. İllerin renklendirmesi, o ildeki kullanıcı sayısına göre 1 milyon kişi başına düşen kullanıcı sayısına göre belirlenmiştir. Bu, bir ilin yazılım endüstrisinin bir puanı olarak düşünülebilir.

The process to fetch the user data started on 2024-02-01 and completed on 2024-02-03. Kullanıcı verilerini çekme işlemi 2024-02-01'da başladı ve 2024-02-03'de tamamlandı.

Criteria Kriterler

  • Users who have a location input on GitHub to be one of these: GitHub'da konum olarak bunlardan birini yazan kullanıcılar:
    • Turkey (Türkiye, TR, TUR, etc. also accepted, but some fine-tuning is done to ignore irrelevant users) Türkiye (Türkiye, TR, TUR, vb. de kabul edilir, ancak alakasız kullanıcıları çıkarmak için bazı ince ayarlar yapılmıştır)
    • A province in Turkey (all of these are accepted: Şanlıurfa, Sanliurfa, Şanliurfa, Sanlıurfa, Urfa) Türkiye'deki bir il (bunların hepsi kabul edilir: Şanlıurfa, Sanliurfa, Şanliurfa, Sanlıurfa, Urfa)
    • A district in Turkey (all of these are accepted: Çiğli, Cigli, Çigli, ...) Türkiye'deki bir ilçe (bunların hepsi kabul edilir: Çiğli, Cigli, Çigli, ...)

Yearly sign up numbers of GitHub users with a location somewhere in Turkey Türkiye'de bir yer olarak bir konum yazmış GitHub kullanıcılarının yıllık kayıt sayıları

Summary Özet

There has been a steady increase in the number of users signing up to GitHub with a location somewhere in Turkey until 2021. Please note that, this chart does not state that the location specified by the users at the time they signed up was somewhere in Turkey, but the location they have in their profile at the time of data collection is somewhere in Turkey. 2021'e kadar, konum olarak Türkiye'de bir yer belirten yeni GitHub kullanıcılarınin sayısında istikrarlı bir artış oldu. Ancak, bu grafik kullanıcıların kayıt oldukları sırada Türkiye'den bir konum belirttiklerini değil, veri toplama sırasındaki profilinde Türkiye'den bir yer olduğunu göstermektedir.

After 2021, the number of new users signing up has decreased. We believe that this is due to the fact that users update their location after some time they sign up. The numbers from 2023 gives that impression too. 2021'den sonra, kayıt olan yeni kullanıcıların sayısı azaldı. Kullanıcıların kayıt olduktan sonra bir süre sonra konumlarını güncellemelerinden kaynaklandığını düşünüyoruz. 2023'ten gelen sayılar da bu izlenimi veriyor.

Number of active GitHub users with location somewhere in Turkey Türkiye'de bir yer olarak bir konum yazmış aktif GitHub kullanıcılarının sayısı

Total Toplam

Count Sayı

Population Nüfus

Count per 1M people 1 milyon kişiye düşen

Summary Özet

Only ~20% of the users are active, according to the criteria below. Kullanıcıların yalnızca ~20%'si aşağıdaki kriterlere göre aktif.

Ratios of the provinces are similar to the total user count. İllerin 1 milyon kişiye düşen aktif kullanıcı sayıları, 1 milyon kişiye düşen toplam kullanıcı sayıları ile orantılı.

Criteria Kriterler

  • These users have at least 1 repository, and they made an activity in the last 90 days before the time the data is fetched. Bu kullanıcıların en az 1 repository'si var ve verinin çekildiği tarihten önceki son 90 günde bir aktivitede bulundular.
  • Activities are any of the following: Aktiviteler aşağıdakilerden biri:
    • Code commit Kod commitlemek
    • Create an issue Bir issue oluşturmak
    • Create a pull request Bir pull request oluşturmak
    • Review a pull request Bir pull request'i review etmek

5. What projects? 5. Hangi projeler?

OpenTR's mission is to increase the number of contributors from Turkey to open source projects. However, what are these projects? This section gives an overview of such projects. OpenTR'nin misyonu, Türkiye'den açık kaynak projelere katkıda bulunanların sayısını artırmaktır. Ancak, bu projeler hangileri? Bu bölüm, bu tür projelere bir genel bakış sunmaktadır.

Any public project on GitHub is open source by definition (as long as it has a OSS license). However, we want more contributors to work on some projects that we think have an impact. GitHub'daki herhangi bir public proje, tanım gereği açık kaynaktır (bir açık kaynak lisansı varsa). Ancak, daha fazla katılımcının etkili olduğunu düşündüğümüz bazı projelerde çalışmasını istiyoruz.

We call these projects focus projects. Bu projelere odak projeler diyoruz.

Criteria for focus projects can be seen in the next section. Odak projeler için kriterler bir sonraki bölümde görülebilir.

Projects vs organizations vs repositories Projeler vs organizasyonlar vs repository'ler

We use the term project in an abstract way to refer to a project such as Linux, Kubernetes, or React. We cannot tie a project to a repository or a GitHub organization, as some projects may have multiple repositories. Some projects may even have repositories under different organizations. Linux, Kubernetes veya React gibi bir projeden bahsederken, soyut bir şekilde proje terimini kullanıyoruz. Bir projeyi bir repository veya GitHub organizasyonuna bağlayamayız, çünkü bazı projelerin birden fazla repository'si olabilir. Bazı projeler, farklı organizasyonların altında bile repository'lere sahip olabilir.

For example Kubernetes has multiple repositories under the kubernetes organization, but it also has repositories under other organizations such as kubernetes-sigs. Conversely, the Linux project does not have an organization. Its main repository is the torvalds/linux repository. Örneğin Kubernetes, kubernetes organizasyonunun altında birden fazla repository'ye sahip, ancak kubernetes-sigs gibi diğer organizasyonların altında da repository'lere sahip. Bunun aksine, Linux projesinin bir organizasyonu yok. Ana repository'si torvalds/linux.

To make things simpler, we use the term focus organization to refer to an organization that has at least one repository that meets the criteria below. Similarly, we use the term focus repository to refer to a repository that meets another set of criteria below. İşleri sadeleştirmek için, aşağıdaki kriterleri karşılayan en az bir repository'si olan bir organizasyondan bahsetmek için odak organizasyon terimini kullanıyoruz. Benzer şekilde, aşağıdaki diğer kriterleri karşılayan bir repository'den bahsetmek için odak repository terimini kullanıyoruz.

OpenTR's goal in this report is to find the number of contributors to open source projects. It is not finding the number of open source repositories or organizations in general. So, when we check users from Turkey, we only check the users who contributed to any repository in a focus organization or to a focus repository. OpenTR'nin bu rapordaki amacı, açık kaynak projelerine katkıda bulunanların sayısını bulmaktır. Genel olarak açık kaynak repository'lerinin veya organizasyonlarının sayısını bulmak değildir. Bu nedenle, Türkiye'den kullanıcıları kontrol ettiğimizde, yalnızca bir odak organizasyonun herhangi bir repository'sine veya bir odak repository'ye katkıda bulunan kullanıcıların bilgilerini çekiyoruz.

Focus organizations Odak organizasyonlar

Contributions to any repositories under these organizations are counted as contributions to open source. Bu organizasyonların altındaki herhangi bir repository'ye yapılan katkılar, açık kaynağa yapılan katkılar olarak değerlendirilmiştir.

We only show the top 100 organizations the following word cloud. Aşağıdaki word cloud'da sadece ilk 100 organizasyonu gösteriyoruz.

Focus repositories outside organizations Organizasyon harici odak repository'ler

Similarly, contributions to any of these repositories that are not under any organization are counted as contributions to open source. Benzer şekilde, herhangi bir organizasyonun altında olmayan bu repository'lerin herhangi birine yapılan katkılar, açık kaynağa yapılan katkılar olarak değerlendirilmiştir.

We only show the top 50 repositories the following cloud. Aşağıdaki word cloud'da sadece ilk 50 repository'yi gösteriyoruz.

Summary Özet

We found N organizations that have at least repository that meets the criteria below. These organizations have multiple repositories. However, number of repositories is not exactly relevant, as we're interested in finding people who contribute any repository under these organizations. Aşağıdaki kriterleri karşılayan en az bir repository'si olan N organizasyon bulduk. Evet, bu organizasyonların birden fazla repository'si var, ancak repository sayısı tam olarak önemli değil, çünkü bu organizasyonların altındaki herhangi bir repository'ye katkıda bulunan kişileri bulmak istiyoruz.

On top of the organizations, we found N repositories that meet the criteria below. Organizasyonların yanı sıra, aşağıdaki kriterleri karşılayan N repository bulduk.

The process to fetch the focus repositories and organizations started on 2024-01-17 and completed on 2024-01-20 and the process to fetch all repositories of all focus organizations started on 2024-01-31 and completed on 2024-02-01. Odak repository'leri ve organizasyonları çekme işlemi 2024-01-17'de başladı ve 2024-01-20'de tamamlandı. Tüm odak organizasyonların tüm repository'lerini çekme işlemi ise, 2024-01-31'de başladı ve 2024-02-01'de tamamlandı.

Criteria Kriterler

Focus organizations: Odak organizasyonlar:

  • Has at least one repository that meets the following criteria: Aşağıdaki kriterleri karşılayan en az bir repository'si var:
    • Has minimum 50 stars Minimum 50 star'a sahip
    • Has minimum 50 forks Minimum 50 fork'a sahip
    • Has a minimum size of 1000 KiB Minimum 1000 KiB boyutunda
    • Had an activity within last 90 days before the time the data is fetched Verinin çekildiği tarihten önceki son 90 günde bir aktivite olan
    • Created after 2008-01-01 2008-01-01 tarihinden sonra oluşturulmuş
    • Created 365 days ago before the time the data is fetched Verinin çekildiği tarihten önceki 365 günden önce oluşturulmuş
    • Public Public

Focus repositories: Odak repository'ler:

  • Has minimum 500 stars Minimum 500 star'a sahip
  • Has minimum 300 forks Minimum 300 fork'a sahip
  • Has minimum 200 mentionable users Minimum 200 mentionable kullanıcıya sahip
  • Has minimum 500 pull requests Minimum 500 pull request'e sahip
  • Has a minimum size of 1000 KiB Minimum 1000 KiB boyutunda
  • Had an activity within last 90 days before the time the data is fetched Verinin çekildiği tarihten önceki son 90 günde bir aktivite olan
  • Created after 2008-01-01 2008-01-01 tarihinden sonra oluşturulmuş
  • Created 365 days ago before the time the data is fetched Verinin çekildiği tarihten önceki 365 günden önce oluşturulmuş
  • Public Public

6. OSS Contributors from Turkey 6. Türkiye'den açık kaynağa katkıda bulunanlar

This section gives an overview of the contributors from Turkey to open source projects. Bu bölüm, Türkiye'den açık kaynak projelerine katkıda bulunanlara bir genel bakış sunmaktadır.

Number of OSS contributors in Turkey * made contributions in last 90 days Türkiye'de açık kaynağa katkıda bulunanların sayısı *son 90 günde katkı yapmış

Total Toplam

Count Sayı

Population Nüfus

Count per 1M people 1 milyon kişiye düşen

OSS contributors leaderboard Açık kaynağa katkıda bulunanlar sıralaması

#Username Kullanıcı adıName İsimCompany ŞirketSum of scores Skor toplamı# of contributed focus orgs Katkı yapılan odak organizasyonlarContribution diversity multiplier Katkı çeşitliliği çarpanıScore SkorMost contributed organizations En çok katkıda bulunduğu organizasyonlar

Summary Özet

According to the criteria mentioned below, there are N open source contributors from Turkey who made contributions in the last 90 days before the time the data is fetched. Aşağıda belirtilen kriterlere göre, verinin çekildiği tarihten önceki son 90 günde bir katkı yapan Türkiye'den açık kaynak katkıda bulunan N kişi var.

Three big provinces have the same pattern of distribution as the total user count. Üç büyük il, toplam kullanıcı sayısının dağılımında aynı desene sahip.

It is not possible to determine the provinces of ~35% of the open source contributors. Açık kaynak katkıda bulunanların %35'inin ilini belirlemek mümkün değil.

Scoring calculation is taking multiple factors into account. Skor hesaplaması, birden fazla faktörü dikkate alıyor.

  • Project's score, based on its popularity (stars), pull requests, issues, forks, etc. Projenin popülerliğine (star), pull request'lerine, issue'larına, fork'larına vb. dayanan proje skoru
  • User's activity type based on a system that gives higher score for creating pull requests and pull request reviews compared to creating commits or issues Commit veya issue oluşturmaya kıyasla pull request veya pull request review oluşturmaya daha yüksek skor veren bir sistemde kullanıcının aktivite türü
  • Diversity of organizations user contributed to Kullanıcının katkıda bulunduğu organizasyonların çeşitliliği

Criteria Kriterler

  • The location user entered in the GitHub profile is matched with somewhere in Turkey. GitHub profilindeki konum, Türkiye'deki bir yerle eşleştirilmiştir.
  • User had contributions in the last 90 days to a focus repository or to a repository under a focus organization. Kullanıcının son 90 günde bir odak repository'ye veya odak organizasyonun altındaki bir repository'ye katkısı olmuştur.
  • User had a score of minimum 20 based on the scoring system explained later. Kullanıcının aşağıda açıklanan skorlama sistemine göre minimum 20 skoru vardır.

7. How we calculate the user scores? 7. Kullanıcı skorlarını nasıl hesaplıyoruz?

Finding a good balance between the number of contributions and the quality of contributions is not easy. We believe that the scoring system we came up with is a good balance. It is mostly done with a trial and error approach. Katkı sayısı ile katkı kalitesi arasında iyi bir denge bulmak kolay değil. Bulduğumuz skorlama sisteminin iyi bir denge olduğuna inanıyoruz. Bu skor sistemi, çoğunlukla deneme yanılma yaklaşımıyla üretildi.

In summary, user's score is the normalized sum of scores that are per-repository that's multiplied with a multiplier for contribution diversity. Özetle, kullanıcının skoru, repository başına skorların toplamının normalizasyonunun katkı çeşitliliği çarpanıyla çarpılmasıyla elde edilir.

$$ userScore = $$ $$ \sqrt{ \begin{aligned} \begin{gather} &{\color{CornflowerBlue}sumOfScores} \\ &\times \\ &{\color{RedViolet}contribDiversityMultiplier} \end{gather} \end{aligned} } $$ $$ userScore = \sqrt{ {\color{CornflowerBlue}sumOfScores} \times {\color{RedViolet}contribDiversityMultiplier} } $$


The contribution diversity multiplier, ${\color{RedViolet}contribDiversityMultiplier}$, is obtained by finding the number of focus organizations the user contributed to. Since the number can be high, only 25% of its value is used. Katkı çeşitliliği çarpanı ${\color{RedViolet}contribDiversityMultiplier}$, kullanıcının katkıda bulunduğu odak organizasyonların sayısının bulunmasıyla elde edilir. Bu sayı yüksek olabileceğinden, değerinin yalnızca %25'i kullanılır.

$$ {\color{RedViolet}contribDiversityMultiplier} = $$ $$ (contributedFocusOrgs \times 25\%) + 1 $$ $$ {\color{RedViolet}contribDiversityMultiplier} = 1 + (contributedFocusOrgs \times 25\%) $$

For example, if a user contributed to 4 focus organizations, the multiplier is $2$. If a user contributed to 16 focus organizations, the multiplier is $5$. Örneğin, bir kullanıcı 4 odak organizasyona katkıda bulunduysa, çarpan $2$'dir. Bir kullanıcı 16 odak organizasyona katkıda bulunduysa, çarpan $5$'tir.


User's sum of scores, ${\color{CornflowerBlue}sumOfScores}$, is the sum of scores that are per-repository. The score per repository is calculated by multiplying the user's contribution score for that repository with a multiplier that's based on the repository's score. Kullanıcının skor toplamı ${\color{CornflowerBlue}sumOfScores}$, repository başına skorların toplamıdır. Repository başına skor, kullanıcının o repository için katkı skoru ile repository'nin skoruna dayalı bir çarpanın çarpılmasıyla hesaplanır.

$$ {\color{CornflowerBlue}sumOfScores} = $$ $$ \sum \left( \begin{aligned} \begin{gather} &{\color{BurntOrange}userRepositoryContribScore} \\ &\times \\ &(1 + ({\color{PineGreen}repoScore} \times 5\%)) \end{gather} \end{aligned} \right) $$ $$ {\color{CornflowerBlue}sumOfScores} = \sum ({\color{BurntOrange}userRepositoryContribScore} \times (1 + ({\color{PineGreen}repoScore} \times 5\%)) $$


User's contribution score for a repository, ${\color{BurntOrange}userRepositoryContribScore}$, is calculated by summing the contribution scores for each contribution type for that repository. The contribution score for each contribution type is calculated by multiplying the normalized contribution count with a coefficient that's different for each the contribution type. Kullanıcının bir repository için katkı skoru ${\color{BurntOrange}userRepositoryContribScore}$, o repository için her katkı türünde olan katkı skorlarının toplanmasıyla hesaplanır. Her katkı türü için katkı skoru, normalleştirilmiş katkı sayısının, katkı türüne göre farklı olan bir katsayıyla çarpılmasıyla hesaplanır.

$$ {\color{BurntOrange}userRepositoryContribScore} = $$ $$ \sum \left( \begin{aligned} \begin{gather} &\sqrt{contribCount} \\ &\times \\ &contribTypeCoef \end{gather} \end{aligned} \right) $$ $$ contribTypeCoef = $$ $$ \begin{cases} 60, & \text{if Pull Request}\\ 30, & \text{if Pull Request Review}\\ 9, & \text{Issue}\\ 1, & \text{if Commit}\\ \end{cases} $$ $$ {\color{BurntOrange}userRepositoryContribScore} = \sum (\sqrt{contribCount} \times contribTypeCoef) $$ $$ contribTypeCoef= \begin{cases} 60, & \text{if Pull Request}\\ 30, & \text{if Pull Request Review}\\ 9, & \text{Issue}\\ 1, & \text{if Commit}\\ \end{cases} $$

For example a user has 100 pull requests for repository A which has a score of 100 and 10000 commits for repository B which has a score of 20. The score for repository A will be $(\sqrt{100} \times 60 \times (1 + (100 \times 5\%))$ = 3600 and the score for repository B will be $(\sqrt{10000} \times 1 \times (1 + (20 \times 5\%))$ = 200. Hence, ${\color{CornflowerBlue}sumOfScores}$ will be $3800$. Örneğin, bir kullanıcının 100 skorlu A repository'si için 100 pull request'i ve 20 skorlu B repository'si için 10000 commit'i var. A repository'si için skor $(\sqrt{100} \times 60 \times (1 + (100 \times 5\%))$ = 3600 ve B repository'si için skor $(\sqrt{10000} \times 1 \times (1 + (20 \times 5\%))$ = 200 olacaktır. Dolayısıyla, ${\color{CornflowerBlue}sumOfScores}$ $3800$ olacaktır.

We believe this is a good balance as it gives more weight to pull requests and pull request reviews compared to commits and issues. Also, it gives more weight to repositories that have a higher score. Bu hesabın, pull request ve pull request review'lara commit ve issue'lara göre daha fazla ağırlık verdiği için iyi bir denge olduğuna inanıyoruz. Ayrıca, daha yüksek skorlu repository'lere daha fazla ağırlık veriliyor.


The repository score, ${\color{PineGreen}repoScore}$, is calculated by weighted summing the scores for each metric for that repository and then normalizing it. Also, an organization multiplier is applied to the score. Repository skoru ${\color{PineGreen}repoScore}$, o repository için metriklerin ağırlıklı toplanması ve ardından normalleştirilmesiyle hesaplanır. Ayrıca, skora bir organizasyon çarpanı uygulanır.

$$ {\color{PineGreen}repoScore} = $$ $$ \begin{aligned} \begin{gather} &\sqrt{ \\ \dfrac{ \begin{aligned} &(forks \times 5) + (stars \times 20) +\\ &(PRs \times 20) + (issues \times 40) + \\ &(watchers \times 10) + (discussions \times 5) \end{aligned} } {100} }\\ &\times {\color{Brown}orgMultiplier} \end{gather} \end{aligned} $$ $$ {\color{PineGreen}repoScore} = \sqrt{ \dfrac{ \begin{aligned} &(forks \times 5) + (stars \times 20) + (PRs \times 20) + \\ &(issues \times 40) + (watchers \times 10) + (discussions \times 5) \end{aligned} } {100} } \times {\color{Brown}orgMultiplier} $$

As the numbers correlate (e.g. projects with more stars have other metrics higher as well), a normalization is done by square rooting the sum. Also, we want to give more weight to repositories that belong to an established organization. This is mostly the case for open source projects that are in a good shape. This is done by the ${\color{Brown}orgMultiplier}$. Sayılar birbiriyle ilişkili olduğundan (örneğin, daha fazla star'a sahip projelerin diğer metrikleri de daha yüksektir), toplamın karekökü alınarak normalleştirme yapılır. Ayrıca, oturmuş bir organizasyona ait olan repository'lere daha fazla ağırlık vermek istiyoruz. Bu durum, çoğunlukla iyi durumda olan açık kaynak projeleri için geçerli. Bu da ${\color{Brown}orgMultiplier}$ ile yapılmakta.


The organization multiplier, ${\color{Brown}orgMultiplier}$, is calculated by finding the number of repositories of an organization that passed the criteria to be matched as a focus repository candidate. Organizasyon çarpanı ${\color{Brown}orgMultiplier}$, bir organizasyonun odak repository adayı kriterlerini geçen repository sayısının bulunmasıyla hesaplanır.

$$ {\color{Brown}orgMultiplier} = $$ $$ \left(\sqrt{matchedReposInOrg} \times 1\% \right) + 1 $$ $$ {\color{Brown}orgMultiplier} = 1 + (\sqrt{matchedReposInOrg} \times 1\%) $$

If the organization has 16 repositories that passed the criteria, the multiplier is $1.04$. If the organization has 256 repositories that passed the criteria, the multiplier is $1.16$. Eğer organizasyonun kriterleri geçen 16 repository'si varsa, çarpan $1.04$'tür. Eğer organizasyonun kriterleri geçen 256 repository'si varsa, çarpan $1.16$'dır.

8. OSS Contributor Companies 8. Açık kaynağa katkıda bulunan şirketler

This section gives an overview of the companies that contribute to open source from Turkey. Bu bölüm, Türkiye'den açık kaynağa katkıda bulunan şirketlere bir genel bakış sunmaktadır.

OSS contributors companies in Turkey * made contributions in last 90 days Türkiye'de açık kaynağa katkıda bulunan şirketler *son 90 günde katkı yapmış

#Company ŞirketSum of user scores Kullanıcıların skor toplamıOSS Contributor Count Açık kaynağa katkı veren kişi sayısıUser diversity multiplier Kullanıcı çeşitlilik çarpanı# of contributed focus organizations Katkı yapılan odak organizasyonlarContribution diversity multiplier Katkı çeşitliliği çarpanıSum of scores Skor toplamıMost contributed organizations En çok katkıda bulunduğu organizasyonlar

Summary Özet

There are only a few companies that have more than 2 contributors to open source projects. Furthermore, out of those companies, there are only a handful of companies that contribute to organizations that they don't own. Açık kaynak projelere 2 kişiden fazla katkıda bulunan kişi çalıştıran şirket sayısı oldukça az. Dahası, bu şirketlerin içinde, sadece kendi organizasyonlarına katkıda bulunmayan şirketlerin sayısı da parmakla sayılacak kadar az.

Score calculation Skor hesaplama

Company score is the sum of scores of users from that company with a few multipliers applied. Şirket skoru, o şirketten gelen kullanıcıların skorlarının birkaç çarpanın uygulanmasıyla elde edilir.

$$ score = $$ $$ \left( \begin{aligned} \begin{gather} &{\color{Emerald}sumOfUserScores}\\ &\times \\ &{\color{Brown}userDiversityMultiplier} \\ &\times \\ &{\color{OrangeRed}contribDiversityMultiplier} \end{gather} \end{aligned} \right) $$ $$ score = {\color{Emerald}sumOfUserScores} \times {\color{Brown}userDiversityMultiplier} \times {\color{OrangeRed}contribDiversityMultiplier} $$

The user diversity multiplier, ${\color{Brown}userDiversityMultiplier}$, is obtained by finding the number of oss contributors from that company. Since the number can be high, only 25% of its value is used. Kullanıcı çeşitliliği çarpanı ${\color{Brown}userDiversityMultiplier}$, o şirketten gelen açık kaynağa katkı yapanların sayısının bulunmasıyla elde edilir. Bu sayı yüksek olabileceğinden, değerinin yalnızca %25'i kullanılır.

$$ {\color{Brown}userDiversityMultiplier} = $$ $$ (contributorCount \times 25\%) +1 $$ $$ {\color{Brown}userDiversityMultiplier} = 1 + (contributorCount \times 25\%) $$

Likewise, the contribution diversity multiplier, ${\color{OrangeRed}contribDiversityMultiplier}$, is obtained by finding the number of focus organizations the company contributed to. Again, since the number can be high, only 25% of its value is used. Benzer şekilde, katkı çeşitliliği çarpanı ${\color{OrangeRed}contribDiversityMultiplier}$, şirketin katkıda bulunduğu odak organizasyonların sayısının bulunmasıyla elde edilir. Yine, bu sayı yüksek olabileceğinden, değerinin yalnızca %25'i kullanılır.

$$ {\color{OrangeRed}contribDiversityMultiplier} = $$ $$ (contributedFocusOrgs \times 25\%) + 1 $$ $$ {\color{OrangeRed}contribDiversityMultiplier} = 1 + (contributedFocusOrgs \times 25\%) $$

Finally, the sum of scores, ${\color{Emerald}sumOfUserScores}$, is the sum of scores of OSS contributors from that company. Son olarak, skor toplamı ${\color{Emerald}sumOfUserScores}$, o şirketten gelen açık kaynağa katkıda bulunanların skorlarının toplamıdır.

$$ {\color{Emerald}sumOfUserScores} = \sum userScore $$ $$ {\color{Emerald}sumOfUserScores} = \sum userScore $$

Companies by contributor count and score Katkıda bulunan kişi sayısına ve skoruna göre şirketler

9. Organizations contributed to 9. Katkı yapılan organizasyonlar

This section gives an overview of the organizations that contributors from Turkey contributed to. Bu bölüm, Türkiye'den katkıda bulunanların katkıda bulunduğu organizasyonlara bir genel bakış sunmaktadır.

Top contributed organizations * in last 90 days En çok katkı yapılan organizasyonlar *son 90 günde

#GitHub organization GitHub organizasyonuSum of contribution scores Katkı skorlarının toplamıContributing user count Katkıda bulunan kullanıcı sayısıContributing company count Katkıda bulunan şirket sayısı

Summary Özet

There are N organizations that a contributor from Turkey contributed to in the last 90 days. These people contributed to a total of N repositories in these organizations. Son 90 günde Türkiye'den bir kişinin katkıda bulunduğu N organizasyon var. Bu kişiler bu organizasyonlardaki toplam N repository'ye katkıda bulundu.

In the table above, we show top 50 organizations by score. The score here is the sum of contribution scores of the open source contributors from Turkey in the last 90 days. Yukarıdaki tabloda, en fazla skora sahip 50 organizasyonu gösteriyoruz. Skor, Türkiye'den katkı yapmış kişilerin son 90 günkü katkılarının skorlanın toplamıdır.

Primary languages of repositories contributed Katkıda bulunulan repository'lerin ana dilleri

Estimated contributions by language Dil bazında tahmini katkılar

Summary Özet

Contributors from Turkey contributed to projects with various programming languages. Since many repositories have multiple languages, the GitHub defines a "primary language" term, which is the language that has the most code in the repository. In the first chart above, we show the primary languages of the repositories that contributors from Turkey contributed to. Türkiye'den katkıda bulunanlar çeşitli programlama dillerine sahip projelere katkıda bulundu. Birçok repository'nin birden fazla dili olduğundan, GitHub, "ana dil" terimini tanımlamaktadır. Bu, repository'de en çok kodu olan dildir. Yukarıdaki ilk tabloda, Türkiye'den katkıda bulunanların katkıda bulunduğu repository'lerin ana dillerini gösteriyoruz.

Also in the second chart, we show the estimated contributions by language. We cannot examine each commit and determine the language of the commit. Instead, we assume an equal contribution to each language in a repository. Ayrıca ikinci tabloda, dil bazında tahmini katkıları gösteriyoruz. Her bir commit'i inceleyip commit'in dilini belirleyemiyoruz. Bunun yerine, bir repository'de her dil için eşit katkı varsayıyoruz.

10. Take aways 10. Görüşler