Konsep paket - Amazon CodeCatalyst

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Konsep paket

Berikut adalah beberapa konsep dan istilah yang perlu diketahui saat mengelola, menerbitkan, atau mengkonsumsi paket CodeCatalyst.

Paket

Paket adalah bundel yang mencakup perangkat lunak dan metadata yang diperlukan untuk menginstal perangkat lunak dan menyelesaikan dependensi apa pun. CodeCatalyst mendukung format paket npm.

Paket terdiri dari:

  • Nama (misalnya, webpack adalah nama paket npm populer)

  • Namespace opsional (misalnya, @types di @types/node)

  • Satu set versi (misalnya,1.0.0,1.0.1,1.0.2)

  • Metadata tingkat paket (misalnya, tag dist npm)

Ruang nama Package

Beberapa format paket mendukung nama paket hierarkis untuk mengatur paket ke dalam grup logis dan untuk membantu menghindari tabrakan nama. Paket yang memiliki nama yang sama dapat disimpan di ruang nama yang berbeda. Misalnya, npm mendukung cakupan, dan paket npm @types/node memiliki cakupan @types dan nama. node Ada banyak nama paket lainnya dalam cakupan @types. Dalam CodeCatalyst, lingkup (“tipe”) disebut sebagai namespace paket, dan nama (“node”) disebut sebagai nama paket. Untuk paket Maven, namespace paket sesuai dengan groupID Maven. Paket Maven org.apache.logging.log4j:log4j memiliki groupID (namespace paket) org.apache.logging.log4j dan artifactID (nama paket) log4j. Beberapa format paket seperti Python tidak mendukung nama hierarkis dengan konsep yang mirip dengan lingkup npm atau Maven GroupId. Jika Anda tidak memiliki cara untuk mengelompokkan nama paket, akan lebih sulit untuk menghindari tabrakan nama.

Versi Package

Versi paket mengidentifikasi versi spesifik dari sebuah paket, seperti @types/node@12.6.9. Format nomor versi dan semantik bervariasi untuk format paket yang berbeda. Sebagai contoh, npm paket versi harus sesuai dengan spesifikasi Versioning Semantik. Dalam CodeCatalyst, versi paket terdiri dari pengenal versi, package-version-level metadata, dan satu set aset.

Aset

Aset adalah file individual yang disimpan dalam CodeCatalyst yang terkait dengan versi paket, seperti file npm atau Maven POM atau .tgz file. JAR

Package repositori

Repositori CodeCatalyst paket berisi satu set paket, yang berisi versi paket, yang masing-masing memetakan ke satu set aset. Package repositories adalah polyglot, artinya repositori tunggal dapat berisi paket dari jenis apa pun yang didukung. Setiap repositori paket mengekspos titik akhir untuk mengambil dan menerbitkan paket menggunakan alat seperti NuGet CLIs (nuget,dotnet), Maven () npmCLI, dan Python (danCLI)mvn. CLIs pip twine Untuk informasi tentang kuota paket CodeCatalyst, termasuk berapa banyak repositori paket yang dapat dibuat di setiap ruang, lihat. Kuota untuk paket

Anda dapat menautkan repositori paket ke repositori lain dengan mengaturnya sebagai upstream. Ketika repositori disetel sebagai upstream, Anda dapat menggunakan paket apa pun dari upstream serta repositori upstream tambahan dalam rantai. Untuk informasi selengkapnya, lihat Repositori hulu.

Gateway repositori adalah jenis khusus dari repositori paket yang menarik dan menyimpan paket dari otoritas paket eksternal resmi. Untuk informasi selengkapnya, lihat Repositori gerbang.

Repositori hulu

Anda dapat menggunakan CodeCatalyst untuk membuat hubungan hulu antara dua repositori paket. Repositori paket adalah hulu dari yang lain ketika versi paket yang dikandungnya dapat diakses dari titik akhir repositori paket dari repositori hilir. Dengan hubungan hulu, isi dari dua repositori paket secara efektif digabungkan dari sudut pandang klien.

Misalnya, jika manajer paket meminta versi paket yang tidak ada di repositori, kemudian CodeCatalyst akan mencari repositori upstream yang dikonfigurasi untuk versi paket. Repositori upstream dicari dalam urutan mereka dikonfigurasi, dan setelah paket ditemukan, CodeCatalyst akan berhenti mencari.

Repositori gerbang

Repositori gateway adalah jenis khusus dari repositori paket yang terhubung ke otoritas paket resmi eksternal yang didukung. Saat Anda menambahkan repositori gateway sebagai repositori upstream, Anda dapat menggunakan paket dari otoritas paket resmi yang sesuai. Repositori hilir Anda tidak berkomunikasi dengan repositori publik, sebaliknya, semuanya dimediasi oleh repositori gateway. Paket yang dikonsumsi dengan cara ini disimpan di repositori gateway dan repositori hilir yang menerima permintaan asli.

Repositori gateway sudah ditentukan sebelumnya, tetapi harus dibuat di setiap proyek yang akan digunakan. Daftar berikut berisi setiap repositori gateway yang dapat dibuat CodeCatalyst dan otoritas paket yang terhubung dengannya.

  • npm-public-registry-gatewaymenyediakan paket npm dari npmjs.com.

  • maven-central-gatewaymenyediakan paket Maven dari repositori Maven Central.

  • google-android-gatewaymenyediakan paket Maven dari Google Android.

  • commonsware-gateway menyediakan paket Maven dari. CommonsWare

  • gradle-plugins-gatewaymenyediakan paket Maven dari Plugin Gradle.

  • nuget-gallery-gatewaymenyediakan NuGet paket dari NuGet Galeri.

  • pypi-gateway menyediakan paket Python dari Indeks Paket Python.