Thread version kaputt? (14 answers)
Opened by bianca at 2018-06-15 18:15

haj
 2018-06-16 22:06
#188539 #188539
User since
2015-01-07
272 articles
BenutzerIn

user image
2018-06-16T18:20:46 bianca
Au weia. Ich dachte mit dem Modul CPAN:version wäre ich sorgenfrei.


Me too :)

2018-06-16T18:20:46 bianca
Was haltet ihr davon, wenn ich jedem String vorn ein v voranzustellen soweit es noch nicht da ist?


Das hängt davon ab, mit welchen weiteren Verarbeitungsschritten das Modul dann verarbeitet wird, und bis zu welcher Perl-Version das "rückwirkend" verwendet werden soll - und wie die dann die Version abfragen. Bis zum heutigen Tag hat zum Beispiel ExtUtils::MakeMaker seine Probleme mit Version Strings wie our $VERSION = v1.2.3; - siehe dort den Abschnitt mit "guten" und "schlechten" Varianten in VERSION_FROM. Man beachte die fehlenden Anführungszeichen in dieser Schreibweise!

Eine aktuelle Referenz ist ein Blog-Artikel von Dan Book (AKA Grinnz): A Guide to Versions in Perl, in der er folgende Varianten beschreibt:

Code (perl): (dl )
1
2
our $VERSION = '1.02'; # for decimal versions, or
our $VERSION = 'v1.2.3'; # for tuple versions


Die Frage ist dabei weniger, ob mit oder ohne 'v', sondern ob die Version zwei oder drei Komponenten haben soll.

Die Auswahl zwischen diesen beiden Varianten würde ich danach treffen, ob Du die dritte Ziffer jemals in Anspruch nehmen willst. Die gibt's beim Semantic Versioning für den "PATCH" level. Die meisten CPAN-Module verzichten aber drauf, weil eh' nur linear weiterentwickelt wird: Wenn in Version 1.1 ein Fehler gefunden wird, aber die Version 2.0 schon auf CPAN ist, dann wird der Fehler eben für Version 2.1 behoben. Und weil diese Versionen Zahlen sind und man nach der Version 1.9 keine Version 1.10 freigeben kann, beginnt man eben mit 1.01, oder, bei vielen geplanten Releases, mit 1.001.

Wenn Du für beide Versionen Support anbieten willst, dann brauchst Du die dreistufige Versionsnummer und solltest ein 'v' voranstellen und die dritte Ziffer auch dann hinschreiben, wenn sie 0 ist.

View full thread version kaputt?