Repozitoriya

Repozitoriya (ing. Repository) — proqram təminatının mənbə kodunu, sənədlərini, resurslarını və tarixçəsini saxlamaq üçün istifadə olunan bir yerdir.[1] Repo (qısa adı ilə) həm komanda şəklində işləmək üçün kodu ortaq saxlama məkanı kimi, həm də kodun müxtəlif versiyalarını izləmək üçün istifadə olunur. Kod repo-ları (məsələn, GitHub, GitLab, Bitbucket və s.) proqram inkişafı prosesində çox vacib bir rola malikdir.[2]

Əsas xüsusiyyətləri

[redaktə | mənbəni redaktə et]
  1. Versiya nəzarəti (ing. Version Control)
    • Repo-larda proqram təminatının müxtəlif versiyalarını izləmək mümkündür. Bu, hər bir dəyişikliyin kim tərəfindən və nə vaxt edildiyini bilmək üçün vacibdir.[3]
    • Kodun əvvəlki versiyalarına qayıtmaq, dəyişiklikləri müqayisə etmək və tarixçəyə baxmaq imkanı verir.
  2. Şaxələndirmə (ing. Branching)
    • Repozitoriyada şaxələndirmə (ing. branching) xüsusiyyəti ilə layihənin müxtəlif xüsusiyyətləri və ya yeniləmələri üzərində paralel işləmək mümkündür.
    • Şaxələr (ing. branches) layihənin fərqli versiyalarıdır və əsas (ing. main/master) şaxəyə birləşdirilə bilər.
  3. Birlikdə İşləmə (ing. Collaboration)
    • Repozitoriyalar komanda ilə işləmək üçün ideal məkan yaradır. İnkişafçılar dəyişiklikləri push və pull edərək eyni layihə üzərində işləyə bilirlər.
    • Kodu nəzərdən keçirmək, şərhlər əlavə etmək və dəyişikliklər etmək üçün müxtəlif icazələr və alətlər mövcuddur.
  4. İcazə nəzarəti (ing. Access Control)
    • Repozitoriyalarda istifadəçilərin müxtəlif səviyyələrdə icazələri olur. Bu, kodun təhlükəsizliyini və yalnız lazım olan şəxslərin müəyyən dəyişiklikləri etməsini təmin edir.[4]
  5. İşlərin nəzərdən keçirilməsi (ing. Code Review)
    • Komanda üzvləri bir-birlərinin kodunu nəzərdən keçirə bilər, təkliflər verə və düzəlişlər edə bilərlər.
    • Kod nəzərdən keçirmə alətləri (ing. Pull Request və ya Merge Request) bu prosesin bir hissəsidir.
  6. Açar sözlər və şərhlər
    • Repozitoriyalarda kod haqqında məlumatlar, qeydlər, sənədlər və şərhlər saxlana bilər. Bu, gələcəkdə layihəni anlamaq və ya dəyişiklikləri asanlıqla izləmək üçün faydalıdır.[5]
  1. Yerli repozitoriya (ing. Local Repository)
    • Proqram təminatı faylları lokal kompüterdə saxlanılır.[6]
    • İstifadəçilər Git kimi versiya nəzarət alətlərindən istifadə edərək dəyişiklikləri lokal olaraq izləyə bilərlər.
  2. Uzaq repozitoriya (ing. Remote Repository)
    • Proqram təminatının kodu internet üzərində serverdə saxlanılır və müxtəlif inkişafçılar uzaqdan bu repo ilə işləyə bilirlər.
    • Məsələn, GitHub, GitLab və Bitbucket kimi platformalar uzaq repo xidmətləri təklif edir.[7]
  3. Mərkəzləşdirilmiş və paylanmış repozitoriyalar
    • Mərkəzləşdirilmiş repo — kod yalnız bir mərkəzi serverdə saxlanılır (məsələn, SVN).
    • Paylanmış repo — hər bir istifadəçinin lokal kompüterində tam repo nüsxəsi olur və hər kəs öz dəyişikliklərini müstəqil şəkildə edə bilir (məsələn, Git).

Repozitoriya ilə iş prosesi

[redaktə | mənbəni redaktə et]
  • Fork və ya Klonlama — uzaq repo-nu lokal kompüterə gətirmək üçün "clone" əmri ilə repo-nun nüsxəsini çıxarmaq.
  • Şaxələndirmə (ing. Branching) — yeni xüsusiyyət əlavə etmək və ya problemləri həll etmək üçün yeni bir branch yaratmaq.
  • Dəyişiklik etmək və qeyd etmək (ing. Commit) — kodu yeniləyərək dəyişiklikləri "commit" ilə repo-ya əlavə etmək.
  • Dəyişiklikləri push etmək — lokal repo-dakı dəyişiklikləri uzaq repo-ya yükləmək.
  • Pull Request və ya Merge Request göndərmək — layihənin əsas koduna dəyişikliklərin birləşdirilməsi üçün kod nəzərdən keçirmə təklifi göndərmək.
  • Birləşdirmək (ing. Merging) — dəyişikliklərin əsas branch-ə birləşdirilməsi.

Məşhur repozitoriya platformaları

[redaktə | mənbəni redaktə et]
  • GitHub — ən populyar kod hostinq platformalarından biridir və geniş bir açıq mənbə icması ilə dəstəklənir.
  • GitLab — layihə idarəetmə və CI/CD xüsusiyyətləri ilə təmin edilmiş güclü bir kod hostinq platformasıdır.[8]
  • Bitbucket — xüsusilə kiçik bizneslər və komandalar üçün kod hostinqi və layihə idarəetmə xüsusiyyətləri təklif edir.

Repozitoriyalar proqram təminatının hazırlanması və idarə edilməsində çox vacib bir vasitədir. Komanda şəklində məhsuldar işləmək, kodu izləmək və dəyişikliklərin tarixçəsini saxlamaq üçün mütləq istifadə olunmalıdır.[9]

Metadata ikili artefaktı təsvir edir, artefaktın özündən ayrıca saxlanılır və istinad edilir və bir neçə əlavə istifadəyə malik ola bilər. Aşağıdakı cədvəl bəzi ümumi metadata növlərini və onların istifadəsini göstərir:

Metadata növü İstifadə olunma səbəbi
Mövcud versiyalar Avtomatik təkmilləşdirmə və endirmə
Asılılıqlar Cari artefaktın asılı olduğu digər artefaktları göstərin
Aşağı axın asılılıqları Cari artefaktdan asılı olan digər artefaktları göstərin
Lisenziya Hüquqi Uyğunluq
Quraşdırma tarixi və vaxtı İzləmə qabiliyyəti
Sənədləşdirmə IDE-də kontekst sənədləri üçün oflayn əlçatanlığın təmin edilməsi
Təsdiq Məlumatı İzləmə qabiliyyəti
Metriklər Kodun əhatə dairəsi, qaydalara uyğunluq, test nəticələri
İstifadəçi tərəfindən yaradılan metadata Fərdi hesabatlar və proseslər
  1. itmWEB: Coping with Computer Viruses Arxiv surəti 14 oktyabr 2007 tarixindən Wayback Machine saytında Arxivləşdirilib oktyabr 14, 2007, at the Wayback Machine
  2. "The Haskell Cabal | Overview". www.haskell.org. 2019-04-10 tarixində arxivləşdirilib. İstifadə tarixi: 2019-03-25.
  3. "Maven – Welcome to Apache Maven". maven.apache.org. 2011-07-24 tarixində arxivləşdirilib. İstifadə tarixi: 2019-03-25.
  4. "Julia Package Listing". pkg.julialang.org. 2019-01-20 tarixində arxivləşdirilib. İstifadə tarixi: 2019-03-25.
  5. "Quicklisp beta". www.quicklisp.org. 2019-03-23 tarixində arxivləşdirilib. İstifadə tarixi: 2019-03-25.
  6. karann-msft. "NuGet Package Manager UI Reference". docs.microsoft.com (ingilis). 2019-03-25 tarixində arxivləşdirilib. İstifadə tarixi: 2019-03-25.
  7. "npm". www.npmjs.com. 2018-04-13 tarixində arxivləşdirilib. İstifadə tarixi: 2019-03-25.
  8. Chris, Tucker. "Optimal Package Install/Uninstall Manager" (PDF). UC San Diego. 2007-03-15: 1. 2011-06-14 tarixində arxivləşdirilib (PDF). İstifadə tarixi: 2011-09-14.
  9. "Cloudsmith artifact repository". 2023-07-16 tarixində arxivləşdirilib. İstifadə tarixi: 2023-09-11.