Migrieren eines Glyphs 3 Plug-ins zu Glyphs 4
Erstellen Sie eine überprüfbare migrierte Kopie eines Python-Plug-ins. Behandeln Sie die statische Migration als Vorbereitung für einen manuellen Starttest in Glyphs 4, nicht als Nachweis der Laufzeitkompatibilität.
Leitplanken
- Bewahren Sie das ursprüngliche Plug-in oder Repository.
- Niemals an Ort und Stelle migrieren. Lehnen Sie einen vorhandenen Ausgabepfad ab.
- Niemals Glyphs installieren, ausführen, neu laden, neu starten oder einen Live-Plugins-Ordner ändern, es sei denn, der Benutzer fordert dies separat an.
- Verwenden Sie die Glyphs MCP-Tools
docs_searchunddocs_getals primäre Wissensdatenbank für die Entwicklung. Tool-Namensräume variieren je nach Client; lösen Sie sie anhand ihrer endgültigen Toolnamen und Beschreibungen auf. - Holen Sie fokussierte offizielle Anleitungen ein, bevor Sie GlyphsApp-APIs, Plug-in-Lebenszyklusmethoden, Selektoren, Callbacks, Bundle-Metadaten oder die Formverarbeitung ändern.
- Rufen Sie
docs_enable_page_resourcesfür die normale Arbeit nicht auf. Rufen Sie Seiten bei Bedarf ab. - Bevorzugen Sie den aktuellen
Glyphs4-Zweig vonschriftgestalt/GlyphsSDK; gehen Sie nicht davon aus, dass eine Glyphs 3 Vorlage oder ein zwischengespeicherter Loader aktuell ist. - Halten Sie Verhaltensänderungen getrennt von mechanischen Migrationsänderungen.
Glyphs MCP Wissensdatenbank-Workflow
Lesen Sie references/glyphs-mcp-development-kb.md, bevor Sie API-spezifische Ergebnisse prüfen.
- Stellen Sie sicher, dass
docs_searchunddocs_getvom Glyphs MCP-Server verfügbar sind. - Erstellen Sie eine Dokumentationsbasislinie vor der Bearbeitung:
- Suchen Sie nach
pluginsund rufen Sie das offizielle Plug-in-Handbuch ab. - Suchen Sie nach
Info.plistund rufen Sie die Übersicht zur Python-Plug-in-Vorlage und die Plist-Vorlage ab. - Suchen Sie nach der exakten Basisklasse, z. B.
GeneralPlugin,ReporterPlugin,FilterWithoutDialog,PalettePlugin,SelectTooloderFileFormatPlugin; rufen Sie deren Anleitung, Quellvorlage und den entsprechenden Plug-in-API-Abschnitt ab.
- Suchen Sie nach
- Suchen Sie jede unbekannte Klasse, Eigenschaft, Callback oder jeden Selektor einzeln. Bevorzugen Sie kurze exakte Symbole wie
GSLayer,shapesoderaddCallback. - Rufen Sie Ergebnisse anhand der zurückgegebenen
doc_idoderpathab. Wenntruncatedwahr ist, fahren Sie mitnextOffsetfort, bis der relevante Abschnitt vollständig ist. - Notieren Sie den Titel, die
docId, densourceKind, diesourceUrljeder abgerufenen Seite und die Migrationsentscheidung, die sie unterstützt. Fügen Sie diese Nachweise in die Übergabe ein. - Wenn die Tools nicht verfügbar sind, melden Sie, dass die Glyphs MCP-Dokumentationsprüfung blockiert ist. Eine statische Prüfung kann fortgesetzt werden, aber stellen Sie keine ungeprüften API- oder Lebenszyklusänderungen als migrationsbereit dar.
Arbeitsablauf
-
Ermitteln Sie das Quell-Plug-in oder Repository, das gewünschte Kompatibilitätsziel (
Nur Glyphs 4oderGlyphs 3 und 4) und einen neuen Ausgabepfad. -
Stellen Sie eine Verbindung zur Glyphs MCP Entwicklungswissensdatenbank her und rufen Sie die Basislinienseiten für die erkannte Plug-in-Familie ab.
-
Besorgen oder lokalisieren Sie einen aktuellen Checkout des offiziellen
Glyphs4-Zweigs von GlyphsSDK. -
Prüfen Sie vor dem Kopieren:
python3 scripts/migrate_plugin.py "/pfad/zum/quellplugin" \ --sdk "/pfad/zu/GlyphsSDK" -
Lesen Sie references/migration-review.md. Suchen Sie für jeden API-spezifischen Befund in der gebündelten Glyphs-Dokumentation nach dieser Klasse, Eigenschaft, Callback, Selektor oder Plug-in-Typ und rufen Sie nur die relevanten Seiten ab.
-
Erstellen Sie die migrierte Kopie und wenden Sie konservative Framework-Import-Korrekturen an:
python3 scripts/migrate_plugin.py "/pfad/zum/quellplugin" \ --output "/pfad/zur/neuen-glyphs4-kopie" \ --sdk "/pfad/zu/GlyphsSDK" \ --apply-safe-fixes -
Verwenden Sie optionale Umschreibungen nur, nachdem Sie deren Auswirkungen geprüft haben:
- Fügen Sie
--rewrite-wildcard-importshinzu, um einfachefrom GlyphsApp import *-Anweisungen durch Symbole aus dem Glyphs 4.pyiStub zu ersetzen. - Fügen Sie
--replace-loaderhinzu, um die SDK-VorlageContents/MacOS/pluginin jedes Bundle zu kopieren. - Fügen Sie
--align-glyphs4-plisthinzu, um alte Update-Feed-Schlüssel zu entfernen, die in den aktuellen Glyphs 4 Vorlagen fehlen. Bestätigen Sie zuerst, dass das Plug-in nicht von einem eigenen Update-Feed abhängt.
- Fügen Sie
-
Überprüfen Sie den generierten Migrationsbericht und das vollständige Source-Diff. Beheben Sie Lebenszyklus-, API-, Abhängigkeits-, UI- oder Mixed-Shape-Befunde manuell. Verknüpfen Sie jede API-spezifische Änderung mit einer abgerufenen KB-Seite.
-
Validieren Sie jedes Bundle:
- Parsen Sie alle Python-Dateien mit der vorgesehenen Glyphs Python-Version.
- Führen Sie
plutil -lintauf jederContents/Info.plistaus. - Bestätigen Sie, dass
NSPrincipalClass,PyMainFileNamesund die Haupt-Python-Klasse übereinstimmen. - Vergleichen Sie die Bundle-Struktur mit der passenden aktuellen Glyphs 4 SDK-Vorlage.
- Kompilieren Sie
.xib-Dateien neu, wenn sich deren Oberfläche geändert hat.
-
Übergeben Sie einen manuellen Testplan. Testen Sie eine Einwegkopie in Glyphs 4, führen Sie jeden Menüeintrag und Callback aus, prüfen Sie die Macro Panel- und Konsolenausgabe und testen Sie die für das Plug-in relevanten Pfade für Rückgängig, Export, Zeichnung und Abhängigkeiten.
Kompatibilitätsentscheidung
- Für
Nur Glyphs 4erlauben Sie APIs und Python-Syntax, die von der Glyphs 4 Laufzeit unterstützt werden, nachdem Sie diese in den aktuellen Stubs bestätigt haben. - Für
Glyphs 3 und 4behalten Sie nach Möglichkeit einen gemeinsamen Codepfad bei, schirmen echte API-Unterschiede mit Fähigkeitsprüfungen ab und testen beide Apps. Fügen Sie keine nur für Glyphs 4 gültige Syntax lediglich für Annotationen hinzu. - Wenn das Plug-in
layer.paths,layer.componentsoderlayer.shapesrekonstruiert, prüfen Sie, ob es die gemischte Reihenfolge der Shapes oder neuere Shape-Arten bewahren muss. Nehmen Sie niemals an, dass eine reine Pfad-Umschreibung verlustfrei ist.
Liefergegenstände
Geben Sie die neue Kopie, den Migrationsbericht, das Kompatibilitätsziel, die statischen Validierungsergebnisse und die verbleibenden manuellen Glyphs 4 Tests zurück. Fügen Sie eine Dokumentationsnachweistabelle mit dem Titel jeder Seite, der Glyphs MCP docId, der offiziellen sourceUrl und der getroffenen Entscheidung bei. Geben Sie klar an, dass keine Live-Installation oder kein Laufzeittest stattgefunden hat, es sei denn, dies ist tatsächlich geschehen.
Ressourcen
scripts/migrate_plugin.py: Hilfsprogramm für Audit und zerstörungsfreies Kopieren.references/migration-review.md: Evidenzbasierte Prüfliste und Eskalationspunkte.references/glyphs-mcp-development-kb.md: Exaktes MCP-Nachschlageschema, Paging, Nachweise und Wiederherstellungsprotokoll..mcp.json: Claude Code Plug-in-Verbindung zum lokalen Glyphs MCP-Server.mcp.json: Cursor Plug-in-Verbindung zum lokalen Glyphs MCP-Server..claude-plugin/plugin.json: Claude Code Community/Plugin-Metadaten; laden Sie diesen Ordner mitclaude --plugin-dir..cursor-plugin/plugin.json: Cursor Plugin-Metadaten, die das WurzelverzeichnisSKILL.mdundmcp.jsonregistrieren.agents/openai.yaml: Codex-Anzeigemetadaten und Glyphs MCP-Abhängigkeit.