ELPA/package.el
Um Updates über package.el zu verhindern, die besondere Abhängigkeit (emacs "24.1")
auf die Package-Requires
Liste hinzuzufügen. Siehe Library Headers im Emacs Lisp-Handbuch, in der Beschreibung des Package-Requires:
Header:
[...] Der Paketcode definiert automatisch ein Paket mit dem Namen ‚Emacs‘ mit der Versionsnummer des aktuell laufenden Emacs. Dies kann verwendet werden, um eine minimale Version von Emacs für ein Paket zu benötigen.
Die package.el und die unter 23 unabhängig voneinander für Emacs verteilt tut nicht dieses spezielle Paket bereitzustellen. Daher wird jeder Versuch, Ihr Paket auf Emacs 23 zu installieren, mit einer Nachricht fehlschlagen, die sich darüber beschwert, dass "emacs" für die Installation nicht verfügbar ist und die alte kompatible Version an Ort und Stelle bleibt.
Wenn jedoch diese Verwendung hergestellt werden Beschwerden von Nutzern von Emacs zu behandeln 24. Viele Anwender offenbar nicht löschen ihre alten package.el
wenn Emacs 24. So ist die alte package.el
überschreibt die neue integrierte in einem, leading to spurious errors on installation aktualisieren.
ELGet
Ich weiß nicht, Elget. Frag wahrscheinlich seinen Autor um Hilfe in dieser Angelegenheit.
Git Submodule, Tarballs und andere Legacy-Methoden
Ich glaube nicht, dass Sie wirklich Updates verhindern können, wenn Benutzer Ihr Paket in einem Legacy-Art und Weise installieren (zB Git Submodule, Verteilungspakete, etc.). Sie können sich nur beschweren nach Ihr Paket wurde aktualisiert, das ist wohl zu spät, weil der inkompatible Code jetzt schon da ist.
Sie können eine explizite Versionsprüfung mit einer detaillierten error
hinzufügen. Ich halte dies jedoch für überflüssig. Wenn Sie sich wirklich für Emacs 24 entscheiden, werden Sie inkompatible Funktionen verwenden, damit Ihr Paket nicht erfolgreich geladen wird, unabhängig davon, ob Sie es ausdrücklich verhindern oder nicht. So Code sparen Sie sich von überflüssigen :)
TL; DR (+ persönliche Erfahrung)
Zunächst einmal bitte umbenennen nicht Ihr Paket. Nur wenige Benutzer können die Neuigkeiten zu jedem installierten Paket verfolgen. Daher werden viele Benutzer nicht sofort erkennen, dass das Paket umbenannt wurde, und weiterhin eine veraltete Version ohne Ankündigung oder Warnung verwenden.Effektiv würden Sie Emacs 24 Benutzer Ihres Pakets bestrafen.
Fügen Sie die spezielle Abhängigkeit hinzu, um versehentliche Aktualisierungen über package.el zu verhindern. Fügen Sie prominente Dokumentation hinzu, dass Ihr Paket Emacs 24 benötigt, wie im ersten Abschnitt Ihrer Github Readme. Dann lass die Sache ruhen. Alles andere ist wahrscheinlich mehr Aufwand, als es wert ist.
In meiner persönlichen Erfahrung, Emacs Benutzer sind nicht dumm (na ja, zumindest die Mehrheit ist nicht). Sie lesen die Dokumentation. Sie verstehen Dokumentation.
Benutzer von Emacs 23 wissen, dass ihr Emacs veraltet ist. Viele von ihnen erwarten Inkompatibilitäten und Brüche. Wenn das Paket plötzlich für sie bricht, werden sie Rat bei Github suchen, erkennen, dass das Paket nicht mehr für Emacs 23 verfügbar ist, und entweder zurück zur letzten Arbeitsfreigabe gehen oder (hoffentlich) ihren Emacs aktualisieren.
Für ELPA könnten Sie Ihr Paket von'Emacs-24' abhängig machen, obwohl ich nicht sicher bin, ob das die gewünschte Benutzererfahrung geben würde. – legoscia