Aracılığıyla paylaş


Azure Artifacts'te graf paketleme

Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022

Paketi yayınlarken, bu paketin tüm bağımlılıklarının bir üst akış kaynağından tüketilerek akışınızda mevcut olmasını sağlamak çok önemlidir. Üst kaynaktan 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 beslemeleri diğer beslemeleri yukarı akış olarak alabileceğinden, yukarı akış kaynaklarının döngülerini oluşturma potansiyeli vardır. Örneğin, akış A, besleme B'e yukarı akış yapar, bu da besleme C'e yukarı akış yapar, ve sonunda besleme C, besleme A'ya tekrar yukarı akış yapar. Böyle bir döngü, düzgün yönetilmezse paket istekleriyle ilgili sorunlara yol açabilir, kullanıcının besleme A'den bir paket istediği, sonra A'ün B'den istek yaptığı, ardından B'nin C'dan istek yaptığı ve son olarak C'in geri dönüp A'ye istek gönderdiği sonsuz bir döngü yaratabilir.

Yukarı akış kaynakları bu tür durumları önlemek için tasarlanmıştır. Akış yukarı akış kaynağından bir paketi sorguladığında, paketleri o yukarı akış kaynağı için yapılandırılmış olan görünümde alır. Bu, şu anlama geliyor: A akışı sorgulandığında, C (A -> B -> C) akışına geçişli bir sorgu tetiklenmez çünkü görünümler salt okuma modundadır. Sonuç olarak, akış A, daha önce bir kullanıcı tarafından B kaydedilmiş C kaynaklı paketlere erişebilir, ancak Ciçindeki tüm paketlere erişemez.

Bu, yerel paketlerinin eksiksiz bir bağımlılık grafiğini temsil etmesini sağlamak için besleme #B ve üzerine sorumluluk getirir. Bunu yaparak, başka bir beslemeden bir yukarı akış kaynağı aracılığıyla B paketini kullanan kullanıcılar, herhangi bir sorun yaşamadan grafiği 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ı tanıtırken Fabrikam akışındaki 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.

Yukarı akış kaynağı olmayan üç farklı akışı gösteren çizim.

Ş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.

Contoso'nun AdventureWorks'ü yukarı akış kaynağı olarak eklemesi illüstrasyonu.

Fabrikam beslemesinin Contoso'yu üst akış kaynağı olarak eklediği bir durumu şimdi ele alalım. Fabrikam'a bağlı bir kullanıcı Widget'ların herhangi bir sürümünü, Gizmos'un herhangi bir sürümünü yükleyebilir, ancak YALNIZCA KAYDEDILEN Araçlar (2.0.0) sürümleri.

Fabrikam'ın Contoso'yu yukarı akış kaynağı olarak eklediğine dair bir çizim.

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.

Fabrikam kullanıcılarına sunulan paketlerin çizimi.