0Pricing
Lua Academy · Lektion

Versions- und Abhängigkeitsverwaltung

Verfolgen Sie Plugin-Versionen und prüfen Sie die Kompatibilität beim Laden

Versions- und Abhängigkeitsverwaltung ist eine kostenlose Lua Academy-Lektion auf CoddyKit. Dies ist Lektion 4 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Lua Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Lua Academy-Kurs umfasst insgesamt 4 Lektionen.

Warum Versionierung wichtig ist

Plugins entwickeln sich weiter. Ein Plugin der Version 2.0 kann mit APIs der Version 1.0 inkompatibel sein. Die Versionsverwaltung verhindert unbemerkte Kompatibilitätsfehler.

Semantische Versionierung

Verwenden Sie semantische Versionierung: MAJOR.MINOR.PATCH. Fehlerhafte oder inkompatible Änderungen erhöhen MAJOR, neue Funktionen erhöhen MINOR und Fehlerbehebungen erhöhen PATCH.

Plugin-Manifest mit Version

Jedes Plugin gibt seine eigene Version und die erforderliche Version der App-API an.

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

Versionen analysieren

Teilen Sie eine Versionszeichenkette in vergleichbare Bestandteile auf.

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

Kompatibilitätsprüfung

Prüfen Sie beim Laden eines Plugins, ob die API-Version der App die Anforderung des Plugins erfüllt.

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

Abhängigkeitsgraph auflösen

Erstellen Sie einen Abhängigkeitsgraphen und führen Sie eine topologische Sortierung durch, um die Ladereihenfolge zu bestimmen.

Zirkuläre Abhängigkeiten erkennen

Verfolgen Sie, welche Plugins gerade geladen werden. Wenn ein Plugin von einem Plugin abhängt, das bereits geladen wird (also eine Zyklusabhängigkeit vorliegt), lösen Sie einen Fehler aus.

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

Upgrade-Pfade

Dokumentieren Sie Migrationsleitfäden für Erhöhungen der MAJOR-Version. Erwägen Sie, während einer Übergangsphase einen Kompatibilitäts-Shim für alte Plugin-APIs bereitzustellen.

Plugin-Registry mit Versionen

Eine zentrale Registry speichert alle installierten Plugin-Versionen. Lösen Sie Konflikte, indem Sie die höchste kompatible Version bevorzugen.

Lockfile-Muster

Wie bei npm's package-lock.json: Erfassen Sie die exakt verwendeten Versionen einer Produktionsbereitstellung, um reproduzierbare Builds sicherzustellen.

Versionsaushandlung zur Laufzeit

Ermöglichen Sie Plugins, mehrere kompatible API-Versionen anzugeben. Die Host-App handelt eine Version aus und wählt die höchste von beiden Seiten unterstützte Version.

Frage zur Versionierung

Was zeigt eine Erhöhung der MAJOR-Version bei der semantischen Versionierung an?

Zusammenfassung: Versionierung und Abhängigkeiten

Nehmen Sie in jedes Plugin-Manifest die Version und apiRequired auf. Analysieren und vergleichen Sie Versionen beim Laden. Erkennen Sie zirkuläre Abhängigkeiten. Verwenden Sie eine topologische Sortierung für die Ladereihenfolge. Führen Sie ein Lockfile für reproduzierbare Produktionsbereitstellungen.

Häufig gestellte Fragen

Ist die Lektion „Versions- und Abhängigkeitsverwaltung“ kostenlos?

Ja — der vollständige Text von „Versions- und Abhängigkeitsverwaltung“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Lua Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Lua Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Versions- und Abhängigkeitsverwaltung“?

Verfolgen Sie Plugin-Versionen und prüfen Sie die Kompatibilität beim Laden Du übst Lua Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Lua Academy zu starten?

Keine Vorkenntnisse erforderlich. Lua Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 4 von 4.

Wie lange dauert die Lektion „Versions- und Abhängigkeitsverwaltung“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Lua Academy-Lektion Code schreiben und ausführen?

Ja. Jede Lua Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Plugins erkennen und laden
  2. Plugin-API und Hook-System
  3. Plugin-Ausführung in einer Sandbox
  4. Versions- und Abhängigkeitsverwaltung
← Zurück zu Lua Academy