Perl Toolchain documents


The Lyon Compromise from the Perl QA Conference

Adapted from https://gist.github.com/dagolden/9559280 to keep all the QA conference decisions together. Original gist was created by David Golden.

This document summarizes broad decisions about rationalizing version object behavior based on discussions at the Lyon QAH. Participants: David Golden, Ricardo Signes, Karen Etheridge, Leon Timmermans, Peter Rabbitson and Graham Knop

Examples:

Comparison:
    - version->new(1.0203)      ==      version->new("1.0203")
    - version->new(1.02_03)     ==      version->new("1.02_03")
    - version->new(v1.2.3)      ==      version->new("v1.2.3")
    - version->new(v1.2.3_0)    ==      version->new("v1.2.3_0")

Underscore no longer tuple separator:
    - version->new(v1.2.3_0)    ->      tuple (1,2,30)
    - version->new("v1.2.3_0")  ->      tuple (1,2,30)

Numify/normalize don't produce underscore:
    - version->new("1.0203")->numify    -> "1.0203"
    - version->new("1.0203")->normal    -> "v1.20.300"
    - version->new("1.02_03")->numify   -> "1.0203"
    - version->new("1.02_03")->normal   -> "v1.20.300"
    - version->new("v1.2.30")->numify   -> "1.002030"
    - version->new("v1.2.30")->normal   -> "v1.2.30"
    - version->new("v1.2.3_0")->numify  -> "1.002030"
    - version->new("v1.2.3_0")->normal  -> "v1.2.30"

Stringify should attempt to preserve string initializers:
    - version->new("1.0203")->stringify     -> "1.0203"
    - version->new("1.02_03")->stringify    -> "1.02_03"
    - version->new("v1.2.30")->stringify    -> "v1.2.30"
    - version->new("v1.2.3_0")->stringify   -> "v1.2.3_0"
    - version->new(1.0203)->stringify       -> "1.0203"
    - version->new(1.02_03)->stringify      -> "1.0203"
    - version->new(v1.2.30)->stringify      -> "v1.2.30"
    - version->new(v1.2.3_0)->stringify     -> "v1.2.30"

Document created on 2016-02-27 07:01:29 -0500 by David Golden. Document last modified on 2016-04-23 15:45:56 +0200 by Philippe Bruhat (BooK).