Lua Academy · Pelajaran

Pemberian Versi dan Pengelolaan Dependensi

Lacak versi plugin dan periksa kompatibilitas saat pemuatan.

Pelajaran 4 dari 413 langkah

Pemberian Versi dan Pengelolaan Dependensi adalah pelajaran Lua Academy gratis di CoddyKit. Ini adalah pelajaran 4 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Lua Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Lua Academy mencakup 4 pelajaran total.

Mengapa Pembuatan Versi Penting

Plugin berkembang. Plugin v2.0 mungkin tidak kompatibel dengan API v1.0. Pelacakan versi mencegah kegagalan kompatibilitas yang tidak terlihat.

Penerapan Versi Semantik

Gunakan penerapan versi semantik: MAJOR.MINOR.PATCH. Perubahan yang merusak menaikkan MAJOR, fitur baru menaikkan MINOR, dan perbaikan bug menaikkan PATCH.

Manifes Plugin dengan Versi

Setiap plugin mendeklarasikan versinya sendiri dan versi API aplikasi yang dipersyaratkan.

return {
  name        = "auth",
  version     = "2.1.0",
  apiRequired = ">=1.0.0",
  deps        = { {name="logger", version=">=1.0.0"} },
  init        = function(app) -- ... end
}

Penguraian Versi

Uraikan string versi menjadi komponen yang dapat dibandingkan.

local function parseVersion(v)
  local major, minor, patch = v:match("(%d+)%.(%d+)%.(%d+)")
  return {tonumber(major), tonumber(minor), tonumber(patch)}
end
local function versionGe(a, b)
  a, b = parseVersion(a), parseVersion(b)
  for i = 1, 3 do
    if a[i] ~= b[i] then return a[i] > b[i] end
  end
  return true
end

Pemeriksaan Kompatibilitas

Saat memuat plugin, verifikasi bahwa versi API aplikasi memenuhi persyaratan plugin.

local APP_VERSION = "1.5.0"
local function checkCompatibility(plugin)
  local req = plugin.apiRequired or ">=0.0.0"
  local minVer = req:match(">=(.+)")
  if minVer and not versionGe(APP_VERSION, minVer) then
    error(("Plugin %s requires app >= %s, got %s"):format(
      plugin.name, minVer, APP_VERSION))
  end
end

Resolusi Graf Dependensi

Buat graf dependensi dan lakukan pengurutan topologis untuk menentukan urutan pemuatan.

Deteksi Dependensi Sirkular

Lacak plugin yang sedang dimuat. Jika sebuah plugin bergantung pada plugin yang sedang dimuat (dalam suatu siklus), tampilkan kesalahan.

local loading = {}
local function loadWithCycleCheck(name, plugins)
  if loading[name] then error("Circular dependency: " .. name) end
  loading[name] = true
  -- load deps then load plugin
  loading[name] = nil
end

Jalur Peningkatan

Dokumentasikan panduan migrasi untuk peningkatan versi MAJOR. Pertimbangkan penyediaan lapisan kompatibilitas untuk API plugin lama selama masa transisi.

Registri Plugin dengan Versi

Registri pusat menyimpan semua versi plugin yang terpasang. Selesaikan konflik dengan mengutamakan versi kompatibel tertinggi.

Pola Berkas Kunci

Seperti package-lock.json milik npm: catat versi tepat yang digunakan dalam penerapan produksi untuk memastikan proses pembuatan yang dapat direproduksi.

Negosiasi Versi Saat Runtime

Izinkan plugin mendeklarasikan beberapa versi API yang kompatibel. Aplikasi host bernegosiasi dan memilih versi tertinggi yang didukung bersama.

Pertanyaan tentang Pembuatan Versi

Apa yang ditunjukkan oleh kenaikan versi MAJOR dalam penerapan versi semantik?

Ringkasan: Pembuatan Versi dan Dependensi

Sertakan versi dan apiRequired dalam setiap manifes plugin. Uraikan dan bandingkan versi saat pemuatan. Deteksi dependensi sirkular. Gunakan pengurutan topologis untuk menentukan urutan pemuatan. Pertahankan berkas kunci untuk penerapan produksi yang dapat direproduksi.

Gratis untuk memulai

Belajar Lua dengan tutor AI — gratis

Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.

Kursus
40
Pelajaran
159

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Pemberian Versi dan Pengelolaan Dependensi” gratis?

Ya — teks lengkap “Pemberian Versi dan Pengelolaan Dependensi” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Lua Academy, upgrade ke CoddyKit PRO. Kursus Lua Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Pemberian Versi dan Pengelolaan Dependensi”?

Lacak versi plugin dan periksa kompatibilitas saat pemuatan. Kamu berlatih Lua Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Lua Academy?

Tidak diperlukan pengalaman sebelumnya. Lua Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 4 dari 4.

Berapa lama pelajaran “Pemberian Versi dan Pengelolaan Dependensi” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Lua Academy ini?

Ya. Setiap pelajaran Lua Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Penemuan dan Pemuatan Plugin
  2. API Plugin dan Sistem Hook
  3. Sandbox untuk Eksekusi Plugin
  4. Pemberian Versi dan Pengelolaan Dependensi
← Kembali ke Lua Academy