develooper Front page | perl.perl5.porters | Postings from September 2018

Re: RFC: change perl5 versioning

Thread Previous | Thread Next
From:
=?UTF-8?Q?Branislav_Zahradn=C3=ADk?=
Date:
September 25, 2018 16:12
Subject:
Re: RFC: change perl5 versioning
Message ID:
CAB=rbOm3bMTBsc4ti4mj17G7hpmiPzfcCNC8vEMb-w9H_Z2F2Q@mail.gmail.com
Hi Tux,

thanks for you comments

On Tue, 25 Sep 2018 at 14:31, H.Merijn Brand <h.m.brand@xs4all.nl> wrote:

> On Tue, 25 Sep 2018 14:04:12 +0200, Branislav Zahradník
> <happy.barney@gmail.com> wrote:
>
> > Hi all,
> >
> > I'd like to ask you your opinion about changing perl5 versioning to
> reflect
> > year it was released.
> >
> > Examples:
> > v5.2018.0
> > v5.2018.1
> >
> > Motivation:
> > - it will show more clearly that language is still alive and maintained
> > - I think it will be easier to advocate upload with words "we are using
> > perl5 version 2010", current version is 2018
> > - current Modern::Perl can be confusing (specially for newcomers) where
> you
> > have to know which version was released when.
>
> There's a few reasons why that won't work well
>
> 1. We use odd versions for timely development releases. Using your
>    proposed versioning would disable that. e.g. Current stable perl
>    release is 5.28.0 where current development release is 5.29.3
>

This is unfortunately true and this is also one workflow I have no solution
(yet)) how to replace it



> 2. We maintain (at leas) the last two major releases. At the time of
>    writing that is 5.28 and 5.26. If we fix a CVE, those will both be
>    updated with a new release 5.28.1 and 5.26.3 and they will thus
>    both be released in 2018 (or whatever the current year is). That
>    will remove the indication of what perl version you are actually
>    running.
>

I'm not suggesting to use strictly year, just to replace middle number with
year number (see examples I wrote)
So you can still release v5.2017.3 and v5.2018.1 (as an example)

I may miss that originally but I'm not suggesting to change versioning of
existing major releases, only to use v5.2019.0 instead of v5.30.0


>
> 3. There are quite a few sites where multiple perl versions run in
>    parallel, e.g. to test a transition. With your proposed versioning
>    that would not be possible.
>

Can you please provide more info?


> 4. Tools that know how to build old/archaïc perl releases on modern
>    systems and modules that act/behave differently on the (major)
>    version of perl will completely break. e.g. 64bit operations are
>    only fully supported as of perl-5.8.1 will fixes in the versions
>    that followed it. Likewise for threading. Very recent perls might
>    also support 128bit doubles (quadmath). You'd need to check the perl
>    version and the configuration to check if you can use it. Again
>    almost impossible with a versioning system based on dates.
>
> > I tried to walk through some workflows:
> >
> > - $] is number, can be changed to 4+3 or 4+2 pattern
> > eg: 5..201801 or 5.2018001
>
> I do not want to check on CPAN, but in my current 5.28.0 installation
> on my laptop I found 573 .pm files that use $] (the variable that holds
> the current perl version). I think it is close to undoable to change
> every occurrence of its use on CPAN too.
>

$] is used by CPAN modules. I mentioned a way how it will be generated by
newer perls.
For already existing code it will look like 5.201900 or 5.202001 (using 4+2
pattern).
It still will be number larger than than any other previous release and
smaller than any other
following release.

Anyway, this proposal is only to increase marketing impact to signal that
perl 5 is still alive
and kicking, even 24 year after 5.0

Please, evaluate that as well.

Mentioning other languages: C and C++ have that as well (though not every
year)
Another example can be Ubuntu, they also have year in version.


> > Numeric comparison will work, though pretty print will be affected.
> >
> > - use VERSION
> > Works fine with vstring:
> >
> > bash$ perl -Mv5.2018
> > Perl v5.2018.0 required--this is only v5.6.2, stopped.
> >
> > with just number pretty print is not so clear:
> >
> > bash$ perl -M5.2018
> > Perl v5.201.800 required--this is only v5.6.2, stopped.
> >
> > Solution can be for example to enforce vstring in "use VERSION" if
> VERSION
> > > 5.2
> >
> > - both ExtUtils::MakeMaker and Module::Build can handle these versions
> >
> > There is also gist summary:
> > https://gist.github.com/happy-barney/b92755cce092a138cb40a084391f5897
> >
> > Best regards,
> > Branislav Zahradník
>


> --
> H.Merijn Brand  http://tux.nl   Perl Monger  http://amsterdam.pm.org/
> using perl5.00307 .. 5.29   porting perl5 on HP-UX, AIX, and openSUSE
> http://mirrors.develooper.com/hpux/        http://www.test-smoke.org/
> http://qa.perl.org   http://www.goldmark.org/jeff/stupid-disclaimers/
>

Thread Previous | Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About