Azure Artifacts'te grafik paketleme
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
Paketi yayınlarken, bu paketin tüm bağımlılıklarının bir yukarı akış kaynağından tüketilerek akışınızda kullanılabilir olmasını sağlamak çok önemlidir. Yukarı akış kaynağından bir paket tükettiğinizde, akışınıza bir kopya kaydedilir. Bu, yukarı akış kaynağına erişilemez hale gelse bile kopyanızın hem sizin hem de akış tüketicilerinizin kullanımına sunulmaya devam etmesini sağlar.
Yukarı akışlar kullanılabilir paket kümesini nasıl oluşturur?
Azure Artifacts akışlarında yukarı akış olarak başka akışlar olabileceğinden, yukarı akış kaynaklarının döngülerini oluşturma olasılığı vardır; burada A yukarı akışlarını B'yi besleyen yukarı akışlar, C'yi beslemek için yukarı akışlar ve sonunda da A'yı beslemek için C yukarı akışlarını besler. Böyle bir döngü, düzgün yönetilmiyorsa paket istekleriyle ilgili sorunlara yol açabilir ve kullanıcının A akışından bir paket istediği sonsuz bir döngü oluşturabilir, ardından B'den A istekleri, ardından C'den B istekleri ve son olarak C istekleri A'ya geri döner ve döngü oluşturur.
Yukarı akış kaynakları bu tür durumları önlemek için tasarlanmıştır. Akış yukarı akış kaynaklarından bir paket ararken, paketleri bu yukarı akış kaynağı için yapılandırılmış görünümde alır. Bu, A akışını sorgulamanın, görünümler salt okunur olduğundan C (A - B ->> C) akışı için geçişli bir sorgu tetiklemiyor olduğu anlamına gelir. Sonuç olarak, A akışı C'den daha önce bir kullanıcı tarafından B'ye kaydedilmiş tüm paketlere erişebilir, ancak C'de kullanılabilen paketlerin tamamına erişemez.
Bu, yerel paketlerinin tam bir bağımlılık grafiğini temsil etmesini sağlamak için B akışına sorumluluk getirir. Bunu yaparak, B'nin paketini başka bir akıştan bir yukarı akış kaynağı aracılığıyla kullanan kullanıcılar, sorunlarla karşılaşmadan grafı başarıyla çözebilir ve istedikleri B paketini yükleyebilir.
Örnek: Kullanılabilir paket kümesini oluşturma
Üç akışı ele alalım: Fabrikam, Contoso ve AdventureWorks. Bu çizimde, yukarı akış kaynaklarını kullanıma sunarken Fabrikam akışına yönelik kullanılabilir paketleri inceleyeceğiz.
Başlangıçta Fabrikam'ın yukarı akış kaynakları yoktur ve Fabrikam'a bağlı kullanıcıların Yalnızca Pencere Öğeleri paketinin 1.0.0 ve 2.0.0 sürümlerini yüklemesine olanak tanır. Benzer şekilde, Contoso'nun yukarı akış kaynakları yoktur ve Contoso'ya bağlı kullanıcılar yalnızca Gizmos paketinin 1.0.0 ve 3.0.0 sürümlerini yükleyecek şekilde kısıtlar. Aynı durum, bağlı kullanıcıların Yalnızca Araçlar paketinin 1.0.0 ve 2.0.0 sürümlerini veya Things paketinin 1.0.0 sürümünü yükleyebildiği AdventureWorks akışı için de geçerlidir.
Şimdi Contoso'nun AdventureWorks'ün yukarı akış kaynağı olarak eklendiği senaryoyu inceleyelim. Bir kullanıcı Contoso'ya bağlandığında, daha geniş bir paket aralığına erişim elde ederler. Herhangi bir Gizmos, Gadget veya Things sürümünü yükleyebilirler. Örneğin, kullanıcı Gadgets@2.0.0'ı yüklerse, bu özel paket sürümü AdventureWorks'e bir bağlantıyla Contoso'ya kaydedilir.
Şimdi Fabrikam akışının Contoso'nun yukarı akış kaynağı olarak eklendiği bir durumu ele alalım. Fabrikam'a bağlı bir kullanıcı, Pencere Öğelerinin herhangi bir sürümünü, Gizmos'un herhangi bir sürümünü, ancak Araçların YALNIZCA KAYDEDILEN sürümlerini (2.0.0) yükleyebilir.
Bu paket sürümleri contoso kullanıcısı tarafından Contoso'ya kaydedilmediğinden, kullanıcı Araçlar'ın 1.0.0 sürümünü veya Nesnelerin herhangi bir sürümünü yükleyemeyecektir.