Sollte ich Module :: Install oder Module :: Build verwenden?

8

Ich schreibe einen Programmierer-Texteditor (ja, einen anderen) in Perl namens Kephra , der natürlich auch ein CPAN-Modul ist und gebündelt mit Module :: Install . Kürzlich habe ich gesehen, dass Module :: Build in den Kern gegangen ist. Wenn ich also wechsle, könnte ich die Abhängigkeiten reduzieren. Gibt es noch einen anderen Grund zu wechseln?

    
sir_lichtkind 15.12.2008, 18:07
quelle

3 Antworten

5

Das Wiederkäuen wurde schon vorher etwas gekaut in " Welchen Rahmen sollte ich zum Schreiben von Modulen verwenden? "

Nach dem Ausspucken habe ich beschlossen, mit Module :: Build zu gehen, aber es sind eindeutig andere Antworten möglich ! (obwohl ich bis jetzt mit M :: B glücklich war).

    
draegtun 15.12.2008, 19:44
quelle
6

Wir verwenden Module :: Build in unserer Gruppe.

Der Hauptgrund ist Einfache Erweiterbarkeit .

Module :: Build ermöglicht es Ihnen, mehr mit Ihrem Build-Prozess in reinem Perl durch Subclassing zu tun. Wenn Sie mehr mit Module :: Install tun möchten, müssen Sie wissen, wie Makefiles funktionieren, AFAIK. Da Sie Perl vermutlich bereits kennen, kann dies von Vorteil sein.

Wie Sie bereits erwähnt haben, entfernt die Verwendung von Module :: Build die Abhängigkeit von einem externen Programm make , was als eine gute Sache angesehen werden kann.

Aber die wichtigsten Nachteile, die ich mir vorstellen kann, sind:

  • Obwohl Module :: Build den Kern getroffen hat, wird nicht jeder eine aktuelle Perl-Version verwenden. Für Benutzer mit älteren Versionen des Kerns erstellen Sie eine neue Abhängigkeit.
  • Viele Veteranen (nicht unbedingt Perl-Leute) sind an das Paradigma perl Makemaker.PL; make; make install gewöhnt und können stattdessen mit Build.PL weggeworfen werden. Hoffentlich ist das keine große Sache.
  • Module :: Build hat gelegentlich unsere Builds durchbrochen, wenn sich seine Funktionalität geändert hat, weil die Dokumentation einen von uns verwendeten Edge-Case nicht abgedeckt hat. Der Randfall wurde dann geändert und dokumentiert, aber wir mussten unsere Unterklasse neu codieren, um unseren Build wieder zum Laufen zu bringen (dies passierte bei der jüngsten Aktualisierung von 0,2808 auf 0,3).

Alles, was ich gesagt habe, empfehle ich jedoch Modul :: Build einfach für die Erweiterbarkeit. Wenn das für Sie kein Problem ist, sollten Sie besser mit Module :: Install arbeiten.

    
Adam Bellaire 18.02.2009 14:57
quelle
5

Nun, Module::Build ist ein ziemlich gutes Modul, es sollte ein Ersatz für ExtUtils::MakeMaker sein, das heißt, die Makefile.PL durch eine Build.PL ersetzen, die ein Build anstelle eines Makefiles generiert. Es war auch gemeint als "einfache Dinge sollten einfach bleiben, harte Dinge sollten möglich sein".

Module::Install verwendet einen anderen Ansatz und generiert ein Makefile.

Vergessen Sie auch nicht, dass nicht jeder die neueste Version von allem ausführt: -)

Ich kann mich an keinen Vergleich dieser Module erinnern, aber ich denke, Sie könnten einige Dinge von Module::Build und Module::Install zu den entsprechenden Seiten.

    
mat 15.12.2008 18:12
quelle

Tags und Links