From: Mischa POSLAWSKY Date: Tue, 14 Feb 2023 23:36:31 +0000 (+0100) Subject: perl: version descriptions after release dates X-Git-Tag: v1.14~27 X-Git-Url: http://git.shiar.nl/sheet.git/commitdiff_plain/302931daee1a9a4499ba441421b683c97bec36e3 perl: version descriptions after release dates --- diff --git a/perl.inc.pl b/perl.inc.pl index 543813f..8af76c7 100644 --- a/perl.inc.pl +++ b/perl.inc.pl @@ -38,12 +38,13 @@ use utf8; ], release => '2000-03-23', distro => { - debian => 'woody', + debian => '3.0', # woody 2002-07 eol 2006-06 rhel => '2', # v5.6.0; also in red hat 7.0 solaris => '9', # v5.6.1; 2002-05 eol 2014-10 aix => '5.1', # 2001-05 eol 2006-04 opensuse => '7.1', # 2001-01 }, + versum => 'start of modern compatibility', unicode => '3.0.1', }, @@ -59,7 +60,7 @@ use utf8; ], release => '2002-07-18', distro => { - debian => 'sarge', + debian => '3.1', # sarge 2005-06 eol 2008-03, v5.8.8 in etch 2007-04 eol 2010-02 rhel => '3', # v5.8.0; v5.8.8 in RHEL6 (2007-2014) solaris => '10', # v5.8.4; 2005-01 eol 2021-01 centos => '3-5', # v5.8.0 in v3 (2004-03); v5.8.8 in v5 (eol 2017-03) @@ -68,7 +69,8 @@ use utf8; freebsd => '4-6', opensuse => '8.1', # 2002-09 eol (SLES8 2002-10 eol 2007-12 ltss 2009-12) }, - distrosum => "dinosaur platforms such as Solaris 10, AIX 5.2, RHEL 3, SLES 8", + distrosum => "RHEL 3, SLES 8, AIX 5/6 until 2017, Solaris 10 until 2021", + versum => 'stable minimum during 20[01]\d', support => '2021-01', # solaris unicode => '3.2.0', }, @@ -98,7 +100,8 @@ use utf8; aix => '7.1', # v5.10.1 (2010-09 eol 2023-04) opensuse => '11.0', # 2008-06 (SLES11 2009-03 eol 2019-03 ltss 2022-03) }, - distrosum => "dinosaur platforms such as AIX 7.1, SLES 11, RHEL 6, Solaris 11", + distrosum => "SLES 11 until 2022, RHEL 6 until 2020 or commercially 2024, AIX 7.1 until 2023", + versum => "supported commercially until 2024", support => '2024-11', # aix unicode => '5.0.0', }, @@ -140,7 +143,7 @@ use utf8; ubuntu => '12.04', opensuse => '12.1', # 2011-11 (SLES12 2014-10 eol 2024-10 ltss 2027-10) }, - distrosum => "stable servers such as Debian 7, Ubuntu 12.04, CentOS 7", + distrosum => "Debian 7 until 2020, Ubuntu 12.04, SLES 12 until 2027", support => '2027-10', # suse unicode => '6.0+#8', }, @@ -192,7 +195,8 @@ use utf8; aix => '7.2', # 2015-12 eol 2028? opensuse => '13.2', # 2014-11 eol 2017-01 }, - distrosum => "legacy servers such as Debian 8, Ubuntu 14.10, FreeBSD 10, openSUSE 13.2, AIX 7.2", + distrosum => "Debian 8 until 2025, Ubuntu 14.10, openSUSE 13.2, AIX 7.2", + versum => "extended vendor support 202X", }, v5.22 => { diff --git a/perl.plp b/perl.plp index b1ea1c7..99863ff 100644 --- a/perl.plp +++ b/perl.plp @@ -32,25 +32,38 @@ eval { use Time::Piece; use Time::Seconds; + my @versions = sort keys %{$info}; my $now = Time::Piece->new; $now = $now->strptime($_, '%Y-%m-%d') for $get{at} // (); + # perlpolicy: «We "officially" support the two most recent stable release + # series. [...] we will attempt to fix critical issues» + $info->{ $versions[-2] }{versum} //= "active core support"; + $info->{ $versions[-1] }{versum} //= "latest stable release"; + + # perlpolicy: «we will attempt to fix critical issues in the two most + # recent stable 5.x release series» my $coreeol = ($now - ONE_YEAR * 3)->strftime('%F'); - my $vcore = first { $info->{$_}{release} ge $coreeol } sort keys %{$info}; + my $vcore = first { $info->{$_}{release} ge $coreeol } @versions; print "

Core security support is provided for 3 years"; print ", so typical users should run at least ", linkversion($_) for $vcore // (); say '.'; + $info->{$vcore}{versum} //= "official security patches"; + # «We encourage vendors to ship the most recent supported release of Perl + # at the time of their code freeze» with debian&ubuntu having 5 years LTS my $vendoreol = ($now - ONE_YEAR * 5)->strftime('%F'); my $vdebian = first { $info->{$_}{release} ge $vendoreol && $info->{$_}{distro}{debian} - } sort keys %{$info}; + } @versions; say sprintf "Stable distributions such as Debian %s maintain %s+.", $info->{$_}{distro}{debian}, linkversion($_) for $vdebian // (); + $info->{$vdebian}{versum} //= "still maintained by common vendors"; + # extended support given at random my $nowcmp = $now->strftime('%F'); - my $vdino = first { $info->{$_}{support} ge $nowcmp } sort keys %{$info}; + my $vdino = first { $info->{$_}{support} ge $nowcmp } @versions; say "Enterprise platforms retain versions up to $_." for map { linkversion($_) } $vdino // (); return 1; @@ -62,7 +75,9 @@ for my $vernum (reverse sort keys %{$info}) { defined $verrow->{unstable} and next unless exists $get{v}; say sprintf '

', vname($vernum); - say sprintf '

%vd %s

', $vernum, $verrow->{release}; + my $title = $verrow->{release} // '?'; + $title .= ": $_" for $verrow->{versum} // (); + say sprintf '

%vd %s

', $vernum, $title; say '
'; for (@{ $verrow->{new} }) { my ($topic, $desc, $attr) = @{$_};