-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
update documentaiton
- Loading branch information
Showing
13 changed files
with
190 additions
and
12 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
# NOTES | ||
|
||
> Additional links and notes for further documentation improvements. | ||
- Project with the same idea but incomplete: https://github.com/timols/yumitude | ||
- Project similar to pacaptr: https://github.com/fossasia/mew | ||
|
||
## Two-way Interpretation | ||
|
||
Use some config file `toml`, `RON`, `JSON` or smth to define the appropriate command translations instead of defining an entire module in rust and abstract it over a library. | ||
I thought inspiring from project [MEW](https://github.com/fossasia/mew) but MEW's approach is unmaintainable and against DRY principle (Writing every possibility by hand instead of parsing the cmd) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
> Proje Ana Alanı: Yazılım | ||
> Proje Tematik Alanı: Dijital Dönüşüm | ||
> Proje Adı (Başlığı): GENE Paket Yöneticisi Standartlaştırma Ekosistemi | ||
> Proje raporu yazımında yazı tipinin Times New Roman, yazı tipi boyutunun ise 12 punto olması tavsiye edilmektedir. Proje rapor metnindeki her bir sayfa, sayfanın her yanından 2,5 cm boşluk bırakarak, tek satır aralığı ile iki yana yaslı şekilde düzenlenmelidir. | ||
Proje başlığı tek bir cümle şeklinde, kısa ve öz olarak, okuyan kişiye proje çalışması hakkında fikir verecek şekilde yazılmalıdır. Bu başlık mutlaka proje içeriğini yansıtacak şekilde olmalıdır. | ||
|
||
|
||
> [!NOTE] | ||
> - Times New Roman 12 punto 2,5cm sayfa aralığı | ||
> - Tek satır aralığı iki yana yaslı düzen |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,47 @@ | ||
# ÖZET | ||
|
||
> Özetin tamamı 150-250 kelime arasında olmalıdır. Proje özetinde, çalışmanın ayrıntılarından, yorumlardan ve kaynaklardan bahsedilmez. Özette projenin amacı, kullanılan yöntem, yapılan gözlem ve elde edilen temel bulgular ve sonuçlardan birkaç cümle ile bahsedilir. Ayrıca proje özetinin altına, proje konusunu genel olarak yansıtan en fazla beş kelimeden oluşan anahtar kelimeler verilir. İdeal olan başlarken taslak bir özet oluşturup, çalışma bittiğinde proje raporunun içeriğine uygun bir şekilde özeti güncellemektir. | ||
Son yıllarda dijital dünya adına geliştirilen teknolojiler sayesinde program geliştirmek | ||
çeşitli yollarla kolaylaştırılmıştır. Örneğing eskiden program geliştirmek | ||
için [vi](https://en.wikipedia.org/wiki/Vi_(text_editor)) gibi metin editörleri kullanılırken günümüzde | ||
[JetBrains](https://www.jetbrains.com/) IDE'leri gibi LSP protokolleri, | ||
ileri seviye düzenleme, kod üretimi gibi gelişmiş araçlar kullanılmaktadır. | ||
|
||
Bu gelişmelerden etkilenen en yaygın araçlardan birisi paket yöneticileridir. | ||
Amatör ya da profesyonel her yazılım geliştiricisinin kullandığı paket yöneticileri, | ||
herhangi bir programın kurulumu, güncellenmesi, kaldırılması gibi işlemleri otomativize eder. | ||
|
||
Örneğin python programlama dilinin standart paket yöneticisi "Preffered Installer Program" (PIP) | ||
python ile kod yazmış olan herkesin sıkça kullandığı bir programdır. | ||
|
||
Paket yöneticilerinin sağladıkları faydalar sebebiyle günümüzde pek çok işletim sistemine uyarlanmış | ||
tiplere ayrılmaktadır. | ||
|
||
Farklı paket yöneticilerinin farklı komutları, farklı dökümantasyonları, farklı paket kayıt sistemleri | ||
hatta farklı paket adlandırma standartları olması kullanıcıların farklı işletim sistemleri arasında geçiş | ||
yaparken karşılaştıkları sorunlardan birisidir. Bunun yanında manuel indirilen yazılımlar için bağımlılık | ||
yönetimi, güncelleme, kaldırma gibi işlemler kullanıcılar için zorluklar içermektedir. | ||
|
||
Özellikle sistemler arası paket adlandırma sistemleri arasındaki farklılıklar kullanıcıların indirmek istedikleri | ||
paketleri bulmalarını zorlaştırmaktadır. Örneğin APT paket Yöneticisini kullanan bir sistemde çok yaygın olarak kullanılan yapılandırma | ||
sistemi [`make`](https://en.wikipedia.org/wiki/Make_(software)) paketinin adı `make` iken Nix paket yöneticisini kullanan bir sistemde | ||
aynı paketin adı `gnumake`'dir. Bu gibi durumlar program geliştirirken hız ve üretkenlik kaybına sebep olur. | ||
|
||
Aynı şekilde [dpkg](https://en.wikipedia.org/wiki/Dpkg) temmeli [`APT`](https://en.wikipedia.org/wiki/APT_(software)) paket yöneticisi için kütüphane paketleri için adlandırma standardı | ||
`lib<kütüphane adı>` iken [RPM](https://en.wikipedia.org/wiki/RPM_Package_Manager) temelli [YUM](https://en.wikipedia.org/wiki/Yum_(software)) | ||
paket yöneticisi için aynı standart `<kütüphane>-devel` şeklinde belirlenmiştir. Örneğin dünya üzerinde en çok indirilen program ünvanını taşıyan ve [//] # (Validate this information) | ||
geliştiricisi [Daniel Stenberg](https://en.wikipedia.org/wiki/Daniel_Stenberg) İsveç Polhem Ödülü kazandıran [`cURL`](https://en.wikipedia.org/wiki/CURL) yazılımı, | ||
`APT` paket yöneticisi için `libcurl` `YUM` paket yöneticisi için `curl-devel` olarak adlandırılmıştır. | ||
|
||
Kullanıcıların bu tarz sorunlarla karşılaşmaması için geliştirdiğimiz GENE Paket Yöneticisi, paket yöneticileri | ||
arasındaki farklılıkları soyutlayarak ([abstraction principle](https://en.wikipedia.org/wiki/Abstraction_principle_(computer_programming))) ortadan kaldırmayı hedeflemektedir. | ||
|
||
GENE, GPacR (Generic PACkage Registry) adını verdiğimiz kendi paket kayıt sistemini otomatik [CI](https://en.wikipedia.org/wiki/Continuous_integration) algoritmalarıyla | ||
güncel tutarak paket yöneticilerinin kayıt sistemleri arasındaki adlandırma farklarını ortadan kaldırmayı | ||
hedeflemektedir. | ||
|
||
Ayrıca paket yöneticilerinin komutlarını standartlaştırarak kullanıcıların farklı sistemler arasında geçiş yaparken | ||
paketi indirme, güncelleme, kaldırma gibi komutları yeniden öğrenmesinin önüne geçmeyi hedeflemektedir. | ||
|
||
> ANAHTAR KELIMELER: paket yöneticisi, soyutlama, cross platform, standartlaştırma |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
# AMAÇ | ||
|
||
> Bu bölümde doğrudan projenin amacına, somut hedeflerine ve Ar-Ge içeriğine odaklanılmalıdır. Önerilen proje konusunun çözülmesi gereken ya da önceden çalışılmış aydınlatılması gereken bir problem olup olmadığı, hangi eksikliği nasıl gidereceği veya hangi sorunlara çözüm getireceği açıklanmalıdır. Hazırlanan projenin ilgili olduğu alanlarda uzman kişilere sunulacağı dikkate alınarak değerlendirmeye hiçbir katkı sağlamayacak genel konu ve tarihçe anlatımlarından kaçınılmalıdır. | ||
GENE Paket Yöneticilerini standart bir zemine oturtmayı amaçlamaktadır. | ||
Farklı Paket Yöneticilerinin paket isimlendirme sistemleri bir standarda uymadığından dolayı | ||
İşletim sistemleri arasında gerekli kütüphane (dependency) kurulumlarında | ||
karşılaşılan sıkıntıları çözmek ve standartlaştırılmamış paket eylemleri komutlarını | ||
standartlaştırmak için geliştirilmiştir. | ||
|
||
Örneğin [cURL]() kütüphanesi [RPM]() temelli paket yöneticilerinde `curl-devel`, | ||
[DPKG]() temelli paket yöneticilerinde `libcurl` adını almaktadır. | ||
|
||
Aynı şekilde sisteminizde bulunan paketleri güncellemek için `Pacman` paket yöneticisine `pacman -Syu` | ||
komutunu verirken `APT` paket yöneticisine `apt upgrade` komutunu girmelisiniz. (admin yetkileri dahil edilmemiştir) | ||
|
||
GENE yazılımcıların günlük işlerinde sık karşılaştıkları bu tarz sıkınıntıların önüne geçmeyi hedeflemektedir. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
# GİRİŞ | ||
|
||
> Giriş, araştırma konusu hakkında yapılmış araştırmaların sonuçlarının ve bu alanda cevapsız olan soruların bilimsel makalelere dayandırılarak anlatıldığı (kaynak taraması) bölümdür. | ||
- [yumitude](https://github.com/timols/yumitude) Project with the same idea but not implemented. | ||
- [MEW](https://github.com/fossasia/mew) Project similar to pacaptr. | ||
- [whohas](https://github.com/whohas/whohas) - A system utility to search from general package registries. | ||
- [pacaptr](https://github.com/icy/pacapt) - pacman-like syntax for all package managers. | ||
- [bedrock linux](https://bedrocklinux.org/0.7/pmm-beta.html)'s package manager manager (a.k.a pmm) | ||
|
||
## Cevaplanmamış Sorular | ||
|
||
- Paket Yöneticilerinin paket kayıt sistemleri araralarındaki tek fark paket isimlendirmeleri değildir. | ||
Kimi paketler tamamiyle aynı olurken bazı paketler parçalara ayrılıp kaydedilir. Bu farklar, paket isimlerini standartlaştırmanın kesin bir çözüm olmadığını göstermektedir. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,46 @@ | ||
# YÖNTEM | ||
|
||
> Araştırma yönteminin, veri toplama araçlarının, deney ve gözlem düzeneklerinin ve verilerin analiz yönteminin verildiği bölümdür. | ||
## Rust Programlama Dili | ||
|
||
GENE Ekosistemini geliştirmek için Rust programlama dilini kullandık. | ||
|
||
### Cargo Paket Yöneticisi | ||
|
||
- Robust build system for rust | ||
- Standerdized Package Management | ||
- Automatic linkage | ||
- Easy to maintain thanks to systems like yanking and semantical versioning | ||
- Automatic feature management by local compilation | ||
- multi-paradigm package manager allowing you to manage your package with smart actions (e.g expand, watch, add) | ||
|
||
### Yüksek Seviye Sözdizimi | ||
|
||
- High level syntax | ||
- Less ways of causing Undefined Behaviour | ||
- Easy Cross-compilation | ||
|
||
### Borrow Checker Sistemi | ||
|
||
- No Manual memory management with a smart compiler | ||
- New and refreshing paradigm to programming | ||
- Fearless concurrency! | ||
|
||
### Sistem Seviyesinde Performans | ||
|
||
- LLVM Based programming language | ||
|
||
### Yeni Nesil Programlama | ||
|
||
- Algebraic Data Types | ||
- Procuderal Macros | ||
- Strong Pattern Matching idioms | ||
- Semi-functional approach | ||
|
||
### Eskiye Uyumlu (Backward Compatiblity) | ||
|
||
Rust programlama dili büyük ve genişleyen kominitesi ile genel programlama dillerinin karşılaştığı bir | ||
problemle karşı karşıya kalmıştır. Örneğin Python2 ve Python3 arasındaki temel değişiklikler bile | ||
programlama forumları, kütüphaneler gibi pek çok açıdan büyük ses getirmiştir. Rust bu sorunun güvencesini | ||
resmi anlamda sunarak rust programlarının eski derleyiciler ile kullanılabileceğini kesinleştirmiştir. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
# Proje İş-Zaman Çizelgesi | ||
|
||
> Projenin iş-zaman çizelgesine sahip olması çok önemlidir. İlk haftadan itibaren araştırma projenizin süresi boyunca ulaşmanız gereken hedefleri ve zamanlarını belirten aşağıda verilene benzer bir iş-zaman çizelgenizin olması gerekir. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
# Bulgular | ||
|
||
> Çalışmada toplanan veriler ve verilere ait analiz sonuçları verilir. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
# Sonuç ve Tartışma | ||
|
||
> Bu bölümde proje çalışması ile elde edilen bulgular araştırma sorusuna veya problemine uygun olarak yorumlanır. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
# Öneriler | ||
|
||
> Bu bölümde benzer çalışmalar yapacak olanlara yol göstermesi bakımından öneriler varsa belirtilir. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
# Kaynaklar | ||
|
||
> Bu bölümde, proje sürecinde yararlanılan ve proje raporu içerisinde atıf yapılan tüm kaynaklar listelenir. Kaynaklar APA yazım kuralları ve kaynak gösterme biçimine göre listelenir. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
# Ekler | ||
|
||
> Varsa konuyu dağıtacağı düşünülen veya çok uzun metinlerden oluşan, çeşitli araştırma bulgularına dayalı çok uzun tablolar, formüller, ayrıntılı deney verileri, bilgisayar programları, anketler vb. EKLER bölümünde verilebilir. Araştırmayı yapmak için alınan yasal izinler, yazışmalar, gerekirse e-posta örnekleri de burada verilmelidir. Eklerin her biri için uygun bir başlık seçilerek metin içerisinde geçiş sıralarına göre "Ek 1., Ek 2..." şeklinde, ayrı bir sayfadan başlayacak şekilde yer almalıdır. | ||
> Eklerin proje raporunun sayfa sınırı olan 20 sayfaya sığmaması durumunda e-bideb sisteminde EK BELGELER kısmına yüklenmesi gerekmektedir. Bu durumda proje raporunda EK BELGELER kısmına dosya yüklendiği belirtilmeli ve eklenen belgeler liste halinde yazılmalıdır. | ||
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters