PaulHowarth/Blog/2022-09

Paul's Blog Entries for September 2022

Thursday 1st September 2022

Local Packages

  • Updated perl-Type-Tiny to 1.016010:

    • Fix an uninitialized warning when calling compile_named_oo outside a sub

    • List which versions of Perl Type::Tiny requires in Type::Tiny::Manual::Policies

Friday 2nd September 2022

Fedora Project

  • Updated perl-Path-Tiny to 0.124 in F-37 and Rawhide:

    • Added link to 'touchpath' in the 'mkpath' docs

    • Fixed example in 'tempfile' docs

Local Packages

  • Updated perl-Path-Tiny to 0.124 as per the Fedora version

Saturday 3rd September 2022

Fedora Project

  • Updated perl-IO-Socket-SSL to 2.075 in F-37 and Rawhide:

    • Treat SSL_write returning 0 same as previously -1, as suggested by both OpenSSL and LibreSSL documentation

    • Propagate error from SSL_shutdown, unless the shutdown is caused by an outer SSL error, in which case keep the original error

    • Small test fixes

Local Packages

  • Updated perl-IO-Socket-SSL to 2.075 as per the Fedora version

Sunday 4th September 2022

Fedora Project

  • Updated perl-Sereal, perl-Sereal-Decoder and perl-Serial-Encoder to 5.001 in F-37 and Rawhide:

    • First official release of protocol 5
    • Better support for non-standard NV types

    • Support for the new Perl 5.36 bools

Local Packages

  • Updated perl-YAML-LibYAML to 0.84:

    • Add option ForbidDuplicateKeys (GH#105)

Monday 5th September 2022

Fedora Project

  • Updated perl-IO-AIO to 4.77 in F-37 and Rawhide:

    • Add MFD_HUGETLB_2MB and MFD_HUGETLB_1GB constants

    • Add fexecve

    • Add lots of missing functions to @EXPORT_OK

  • I added this small patch to fix compilation with -Werror=format-security:

  •    1 @@ -0,0 +1,11 @@
       2 --- AIO.xs
       3 +++ AIO.xs
       4 @@ -1100,7 +1100,7 @@ static char **
       5  extract_stringvec (SV *sv, const char *croakmsg)
       6  {
       7    if (!SvROK (sv) || SvTYPE (SvRV (sv)) != SVt_PVAV)
       8 -    croak (croakmsg);
       9 +    croak ("%s", croakmsg);
      10  
      11    AV *av = (AV *)SvRV (sv);
      12    int i, nelem = av_len (av) + 1;
    
  • Updated perl-YAML-LibYAML to 0.84 in F-37 and Rawhide:

    • Add option ForbidDuplicateKeys (GH#105)

Local Packages

Tuesday 6th September 2022

Fedora Project

  • Updated perl-IO-AIO to 4.78 in F-37 and Rawhide:

    • Add IO::AIO::mount and IO::AIO::umount

    • Add a bunch of symbols from sys/mount.h

Local Packages

  • Updated perl-IO-AIO to 4.78 as per the Fedora version

  • Updated perl-Test-DistManifest (1.014) to drop the workaround for package note files from Fedora 37 onwards, where the underlying issue has been fixed

Saturday 10th September 2022

Fedora Project

  • Updated perl-Exporter-Tiny to 1.004001 in F-37 and Rawhide:

    • Fix handling of non-hashref references in import list

Local Packages

  • Updated perl-Exporter-Tiny to 1.004001 as per the Fedora version

Monday 12th September 2022

Local Packages

  • Updated perl-YAML-LibYAML to 0.85:

    • Convert doc from Swim to Markdown
    • Remove travis testing

Friday 16th September 2022

Fedora Project

  • Updated perl-PPIx-QuoteLike to 0.023 in F-37 and Rawhide:

    • Update discouragement notice for variables(), and add a TODO in t/variables.t for why

    • Correct normalization of ${^FOO} for PPI: if the caret is present the braces are not removed

Local Packages

  • Updated nmap (7.93) to fix openssl 1.1 build issues (GH#2516)

  • Updated perl-PPIx-QuoteLike to 0.023 as per the Fedora version

Saturday 17th September 2022

Fedora Project

  • Updated perl-PPIx-QuoteLike (0.023) in F-37 and Rawhide to use an SPDX-format license tag

Local Packages

  • Updated perl-PPIx-QuoteLike (0.023) as per the Fedora version

Tuesday 20th September 2022

Fedora Project

  • Updated perl-Exporter-Tiny to 1.004002 in F-37 and Rawhide:

    • Fix for t/15nonhashvalue.t on old versions of Test::More that don't support 'done_testing'

  • Updated perl-JSON-MaybeXS to 1.004004 in F-37 and Rawhide:

    • Slight speed optimization for is_bool()

Local Packages

  • Updated perl-Exporter-Tiny to 1.004002 as per the Fedora version

  • Updated perl-JSON-MaybeXS to 1.004004 as per the Fedora version

Wednesday 21st September 2022

Fedora Project

  • Updated perl-Variable-Magic to 0.63 in F-37 and Rawhide:

    • Add support for 5.37.3's PADSV_STORE optimization; B.pm-related tests have been taught about this new thing (CPAN RT#144052)

    • Updated contact information

Local Packages

  • Updated perl-Module-CoreList to 5.20220920:

    • Updated for v5.37.4
  • Updated perl-Pod-Spell to 1.23:

    • Port to use Pod::Simple rather than Pod::Parser

    • Use File::Spec rather than Path::Tiny

    • Allow explicit debug option to override environment variable
    • Packaging and metadata updates
    • Fix finding wordlist when not run against files directly in lib/

  • Updated perl-Variable-Magic to 0.63 as per the Fedora version

  • I am no longer signing packages with the legacy GPG key; all future packages will be signed with the release-specific GPG keys that can be found here

Friday 23rd September 2022

Local Packages

  • Updated perl-Type-Tiny to 2.000000:

  • Back Compat

    • If none of a multisig's alternative sigs match the parameter list, ${^TYPE_PARAMS_MULTISIG} will explicitly be set to undef, instead of being left as-is

    • The Eval::TypeTiny::HAS_LEXICAL_VARS constant no longer exists; it was deprecated in Type-Tiny-1.004000 (2018-07-27)

    • More sensible error message trying to import a type constraint using -declare outside a type library

  • Bug Fixes

    • Types::Common was not correctly handling the -sigs export tag

    • Setting a default for a slurpy parameter in Type::Params now warns and ignores the default instead of failing to compile because of a syntax error

    • What was supposed to be a warning for slurpy+default in Type::Params was throwing an exception: corrected to be a warning

  • Documentation

    • Document usage with Class::Plain

    • Updated Type::Tiny::Manual to cover new features

    • Fix misspelling of 'GitHub' in documentation

    • Updated the SYNOPSIS for Types::Standard and Type::Tiny

    • Improvements to Type::Params documentation

    • Update NEWS

    • Minor documentation clarifications around new constructor methods for Type::Tiny subclasses

    • Document in Type::Tie that Type::Tie is implicitly loaded when you tie a variable to a Type::Tiny type constraint (it was already documented in the manual)

    • Document the Type::Tie::BASE 'type' method

    • Removed stub pod from a bunch of internal modules; they're internal, so nobody should be expecting pod
  • Packaging

    • Add Class::XSAccessor to Type::Tiny's recommendations

  • Other

    • %Error::TypeTiny::CarpInternal is now an alias for %Carp::CarpInternal

    • Added: Type::Tiny 'type_default' method

    • Added: Type::Tiny overloads '/'

    • Added: Types::Common module

    • The Type::Params API has had a major overhaul, introducing 'signature' and 'signature_for' functions; the 'compile', 'compile_named', 'compile_named_oo', 'validate', 'validate_named', 'wrap_subs', and 'wrap_methods' functions are now considered the legacy API (there are no plans to drop support for the legacy API in the foreseeable future)

    • Updated: dropping support for Perl 5.6.1 (which was released in April 2001), 5.6.2 (November 2003), and Perl 5.8.0 (July 2002); Type::Tiny now requires at least Perl 5.8.1

    • Major simplifications of Type::Library internals

    • Updated: Require Exporter::Tiny 1.004001+ (previously required Exporter::Tiny 1.000000)

    • Types::Common now also extends Types::TypeTiny

    • Minor bugfixes and improvements to slurpy handling in Type::Params

    • Added: move two helper subs (set_subname and type_to_coderef) out of Type::Library and into Eval::TypeTiny, clean them up, and document them as part of the API

    • Added: Type::Tiny now has an 'exportables' method that provides a list of functions that the type can export; type libraries now defer to this when deciding what they can export

    • Added: Type::Tiny::Class is now an exporter

    • Added: Type::Tiny::Duck is now an exporter

    • Added: Type::Tiny::Enum is now an exporter

    • Added: Type::Tiny::Role is now an exporter

    • Type::Tiny::{Class,Duck,Enum,Role} subclass Exporter::Tiny instead of handling exports manually

    • Added: Type::Tiny::Enum has an is_word_safe method that indicates whether all values in the enumeration are 'words' (i.e. contain only word characters)

    • Added: Word-safe enumerations export constants for each value
    • The NICE_PROTOTYPES constant has been moved from Type::Library to Eval::TypeTiny, though a copy of it is still available in Type::Library for backwards compatibility

    • The intersection of two Type::Tiny::Enum objects is now a Type::Tiny::Enum instead of a Type::Tiny::Intersection

    • The union of two Type::Tiny::Enum objects is now a Type::Tiny::Enum instead of a Type::Tiny::Union

    • Type::Params will call default coderefs as a method for signatures where method => 1

    • The functionality provided by Type::Params::multisig() is now provided in the Type::Params v2 API (and is slightly more functional!)

    • Get the 'multiple' option working with the 'signature_for' function from Type::Params

    • Improved test cases and miscellaneous small bugfixes for slurpy parameters in Type::Params

    • Minor refactoring, mostly to make things more easily testable
    • Added: Type::Tiny now has an exportables_by_tag method

    • Added: Type::Tiny::_DeclaredType is now a separate module (it was previously defined inline in Type/Library.pm)

    • Eval::TypeTiny::type_to_coderef() can now handle being passed undef as a type constraint and will create a Type::Tiny::_DeclaredType object to wrap instead

    • If a type library has been made immutable, you can no longer add new types and coercions to it
    • Type::Params 'signature_for' will now delay most of the signature compilation until the function is called for the first time, like 'wrap_subs'/'wrap_methods' used to do; it still does enough up-front to detect some common errors in signatures

    • Various Type::Library clean-ups

    • Added: Types::Common::String now has a DelimitedStr type

    • Improve cache key generation for parameterized types
    • Minor improvements to the default name generator, used to generate the display_name for parameterized type constraints
    • Eval::TypeTiny::CodeAccumulator now supports $coderef->compile(alias => 1)

    • If the 'ws' parameter is set to true in parameterized DelimitedStr type constraints, leading and trailing whitespace will now be permitted

    • Non-parameterized DelimitedStr now has a coercion from ArrayRef[Str]

    • The ${^TYPE_PARAMS_MULTISIG} magic global variable is now called ${^_TYPE_PARAMS_MULTISIG}; the old name will still be supported for at least six months after the next stable release

    • Added: Bundle Type::Tie, which was previously in a separate distribution on the CPAN

    • Adding a type constraint to a type library will now also add it to the library's type registry (even though this registry is unlikely to be used)
    • Rewrite much of Type::Tie to no longer use inside-out objects and avoid a dependency on Hash::Util::FieldHash or alternative implementations of fieldhashes

    • Type::Parser's internal packages now have version numbers

    • Type::Tie now supports variables being cloned with Clone::clone(); it already supported Storable::dclone()

    • Type::Tie will now try to load Class::XSAccessor::Array for a speed-up

    • Using Type::Utils to declare a named type will now automatically add the type to the caller's type registry

    • Type::Params signature_for will respect inheritance when looking for methods to wrap, when the 'method' option is true

  • Test Suite

    • More tests
    • Tests for the 'type_default' of all built-in types

    • Better tests for 'strictness' option in Type::Params

    • Improved tests for slurpy handling in Type::Params

    • The internal module Type::Params::Signature now has some tests of its own

    • Add versions of tests for the new Type::Params v2 API that don't rely on Perl 5.20 features

    • More tests for Type::Tiny::{Class,Duck,Enum,Role} exporting

    • Improved test cases; now 100% coverage on coveralls.io

    • Another test for '-base'

    • Bundle a (renamed) copy of Type::Nano in the test suite for some tests, combining Type::Nano and Type::Tiny type constraints, and converting Type::Nano to Type::Tiny

    • Improved test cases for Type::Tie with an aim at 100% coverage

    • Test usage with Class::Plain

Saturday 24th September 2022

Local Packages

  • Updated perl-Test-Most to 0.38:

    • Stop permanently altering Test::More's export list (CPAN RT#73299)

Monday 26th September 2022

Fedora Project

  • Updated perl-IO-AIO to 4.79 in F-37 and Rawhide:

    • The autoconf result of the mount check was not used, so it failed to compile on most systems

    • Fix format string usage for croak in extract_stringvec function

  • Updated perl-Test-Most to 0.38 in F-37 and Rawhide:

    • Stop permanently altering Test::More's export list (CPAN RT#73299)

Local Packages

  • Updated perl-DateTime-TimeZone to 2.54:

    • This release is based on version 2022d of the Olson database
    • Contemporary changes for Palestine
  • Updated perl-IO-AIO to 4.79 as per the Fedora version

  • Retire perl-Type-Tie, now bundled within perl-Type-Tiny

  • Updated perl-Type-Tiny (2.000000) to obsolete/provide perl-Type-Tie, now bundled within perl-Type-Tiny

Tuesday 27th September 2022

Fedora Project

  • Updated geoipupdate to 4.10.0 in F-37 and Rawhide:

    • HTTPS proxies are now supported (GH#172)

    • An HTTP request to get the filename for the edition ID has been removed; this was previously required as the GeoIP Legacy edition IDs bore little relation to the name of the database on disk
  • Updated perl-Apache-Session-Browseable to 1.3.11 in F-37 and Rawhide:

    • Revert 1.3.10 changes

Local Packages

  • Updated geoipupdate to 4.10.0 as per the Fedora version

Friday 30th September 2022

Fedora Project

  • Updated perl-Exporter-Tiny to 1.004003 in F-37 and Rawhide:

    • If exporting non-CODE items that happen to have the same name as exported CODE items, their export was quietly being blocked; these exports should now work (GH#9)

    • Using ! with a tag now works; it was previously documented as working but not implemented (GH#8)

Local Packages

  • Updated perl-Class-XSAccessor (1.19) to use SPDX-format license tag

  • Updated perl-Exporter-Tiny to 1.004003 as per the Fedora version

  • Updated perl-Type-Tiny to 2.000001:

  • Bug Fixes

    • Avoid uninitialized warnings when creating a union between an Enum type and a non-Enum type

  • Documentation

    • Clearer documentation of Types::TypeTiny::to_TypeTiny

  • Test Suite

    • No longer report Type::Tie version at start of test suite, as Type::Tie is now bundled

  • Updated perl-XML-LibXML to 2.0208:

    • The createElementNS and setNamespace functions were getting confused by Readonly scalars (CPAN RT#144415)

Previous Month: August 2022
Next Month: October 2022

Recent