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

January 7, 2024 7 Ocak 2024

1. Introduction 1. Giriş

Open source software is a big deal in the tech world, where people work together to create and share free software. Teknoloji dünyasında önemli bir kavram olan açık kaynak yazılım, insanların birlikte çalışarak ücretsiz yazılım oluşturduğu ve paylaştığı bir sistemdir.

This report, "The State of Open Source Contribution in Turkey," 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, "Türkiye'de Açık Kaynağa Katkının Durumu", GitHub'dan gelen verilerı 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 Turkish contributors to work on. These projects offer a great chance for Turkish developers to get involved and make a difference in the worldwide open source community. Ayrıca, daha fazla Türk katılımcının katkı yapmasını istediğimiz özel projeler olan "odak projeler"hakkında da konuşuyoruz. Bu projeler, Türk 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 Innovation Graph is a great resource for understanding country specific GitHub usage. Its data is aggregated from GitHub network activity and data. GitHub Innovation Graph, ü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ı kullanmaktadır. 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 yoktur. GitHub, veri seti bilgilendirmesinde yazıldığı üzere, kullanıcının ülkesini belirlemek için IP adresini kullanmaktadır.

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, we can't see the distribution of the users in Turkey per province for example. 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, ö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. Örneğin, GitHub Innovation Graph verileri, 2023 Q1 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.

This 1.3M vs 110K ratio can be used to have a feeling about the number of users from Turkey who don't have a location field in their profile with a value of somewhere in Turkey. Bu 1,3 milyona karşı 110 bin oranı, Türkiye'de olmalarına karşın, profillerinde Türkiye'de bir yer olarak bir konum yazmayan kullanıcıların sayısı hakkında bir fikir edinmek için kullanılabilir.

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.

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 show the location specified by the users at the time they signed up, but the location they have in their profile at the time of data collection. 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 belirttikleri konumu değil, veri toplama sırasındaki profilindeki konumu 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. Bu kullanıcıların en az 1 repository'si var ve 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 50 organizations the following word cloud. Aşağıdaki word cloud'da sadece ilk 50 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.

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 Son 90 günde bir aktivite olan
    • Created after 2008-01-01 2008-01-01 tarihinden sonra oluşturulmuş
    • Created before 365 days ago 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 Son 90 günde bir aktivite olan
  • Created after 2008-01-01 2008-01-01 tarihinden sonra oluşturulmuş
  • Created before 365 days ago 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 Türkiye'de açık kaynağa katkıda bulunanların sayısı

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 ŞirketScore SkorMost contributed organizations En çok katkıda bulunduğu organizasyonlar

Summary Özet

According to the criteria mentioned below, there are ~500 open source contributors from Turkey who made contributions in the last 90 days. Aşağıda belirtilen kriterlere göre, son 90 günde bir katkı yapmış ~500 Türkiye'den açık kaynak katkıda bulunan 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 not taking the project's popularity into account. For example, a pull request to Linux kernel is counted as 10 points, while a pull request to a small project is also counted as 10 points. This can be improved in the future. Skor hesaplaması, projenin popülaritesini dikkate almıyor. Örneğin, Linux kernel'e yapılan bir pull request 10 puan olarak sayılırken, küçük bir projeye yapılan bir pull request de 10 puan olarak sayılıyor. Bu ileride geliştirilebilir.

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 following scoring system: Kullanıcının aşağıdaki skorlama sistemine göre minimum 20 skoru vardır:
    • Pull request: 10 points Pull request: 10 puan
    • Pull request review: 5 points Pull request review: 5 puan
    • Commit: 3 point Commit: 3 puan
    • Issue: 1 points Issue: 1 puan

7. OSS Contributor Companies 7. 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 Türkiye'de açık kaynağa katkıda bulunan şirketler

#Company ŞirketOSS Contributor Count Açık kaynağa katkı veren kişi sayısı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 1 contributor 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 birden 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 is not taking the project's popularity into account. It is simply the sum of the scores of the contributors of the company. Skor hesaplaması, projenin popülaritesini dikkate almıyor. Sadece şirketin katkıda bulunan kişilerinin skorlarının toplamı.

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

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