Type::T...olicies(3)
๐ Type::Tiny::Manual::Policies ๐
okay bestie, welcome to Type::Tiny::Manual::Policies โ section 3 of the manual, and honestly? it's the โจrules pageโจ. no cap, this is where Toby tells you what's stable, what's still cooking, and what's lowkey gonna change on you. let's get into it ๐ซถ
๐ธ MANUAL ๐ธ
๐ Type::Tiny Stability Policy
so like, Type::Tiny 1.000000 and up is considered stable. if anything changes in the API in a big enough way that it would need changes to the test suite, you get a six month notice period first. periodt. but there are a few exceptions where we're just gonna do it:
- any changes that are necessary to keep compatibility with new releases of Moose, Moo, and other software that
Type::Tinyneeds to integrate with. - changes to maintain compatibility with future versions of Perl itself.
- where a change fixes a contradiction between the implementation and documentation of
Type::Tiny. (documentation said one thing, code did another, we're fixing it ๐) - where a feature is explicitly documented as being
"experimental"or"unstable". iykyk. - improvements to the text of error messages. yes those count as exceptions, sorry bestie.
๐ฎ Notice: Planned Changes in Type::Tiny 3
Type::Tiny 3 is expected to be released in the second half of 2026. it's likely to introduce coercions to some common type constraints such as HashRef, ArrayRef, and Str. so if your code specifically relies on these types not having coercions, you may need to change your code. (good news tho: the no_coercions method can give you a copy of any type minus all coercions. handy ๐)
๐งช Experimental and Unstable Type::Tiny Features
the following list is currently non-exhaustive. translation: there might be more, this is just what we're telling you about rn.
- the following type checks result may vary based on your version of Perl and whether
Type::Tiny::XSis installed. their outcome is currently considered undefined, and may change in future versions.- using
Objectand similar type checks on unblessed regular expression references, the outcome is undefined. - on all current versions of Perl, false (
!!0) stringifies to the empty string (but usingDevel::Peekyou can tell the difference between this value and a normal empty string), soIntand subtypes ofIntdo not consider it to be an integer. if Perl's behaviour ever changes, you might not be able to rely on this outcome. true (!!1) stringifies as1, so is considered an integer. - a glob (not a globref but an actual glob) currently passes the
StringLiketype constraint but not theStrtype constraint. the way thatโฆ okay just don't rely on it. - the
BoolLiketype is intended to extendBoolto cover overloaded boolean objects, but the exact mechanism it uses may change. ๐
- using
Type::Tiny'smy_methodsattribute and the functionality it provides is experimental.- the parameterizable coercion API is subject to change.
- the interaction of deep coercions and mutable coercions currently results in ill-defined behaviour. this could change at any time. ๐ญ
Type::Registry's ability to importMooseX::TypesandMouseX::Typestype libraries is experimental.- the
signature_for_funcandsignature_for_methodkeywords provided byType::Paramsmay change their behaviour slightly in the future. once stable, they are expected to be added toTypes::Common's exports. manifesting that tbh โจ - the
Types::Standard::Dict::combinefunction. - these modules are considered part of
Type::Tiny's internals, and not covered by the stability policy:Devel::TypeTiny::Perl58Compat,Type::Coercion::FromMoose,Type::Params::Alternatives,Type::Params::Parameter,Type::Params::Signature,Type::Tiny::_HalfOp,Types::Standard::ArrayRef,Types::Standard::CycleTuple,Types::Standard::Dict,Types::Standard::HashRef,Types::Standard::Map,Types::Standard::ScalarRef,Types::Standard::StrMatch,Types::Standard::Tied, andTypes::Standard::Tuple. touch at your own risk bestie ๐ - the use of some of the modules in the previous list item as exporters of shortcuts for parameterized types is not stable yet.
Reply::Plugin::TypeTinyis not covered by the stability policy.
๐ Type::Tiny Security Policy
the latest stable release on CPAN <https://metacpan.org/release/Type-Tiny> is supported for security updates. (by convention, releases with an underscore in their version number are not considered to be stable releases. okay noted ๐ )
if you are using an older release, you are advised to upgrade. seriously. do it.
a list of changes between versions can be found in the Changes file on CPAN <https://metacpan.org/changes/distribution/Type-Tiny> with security-related changes tagged "SECURITY" in capital letters. look for the all-caps moment, that's the one ๐ฅ
๐จ Reporting a Vulnerability
please report any issues via GitHub Issues <https://github.com/tobyink/p5-type-tiny/issues>.
if you are concerned that some of the details of your report may lead to an exploit being made public, then keep your issue report vague, and email the details to me directly. my email address can be found on my GitHub profile <https://github.com/tobyink>. (sneaky and responsible, we love that ๐ซถ)
๐ข Type::Tiny Versioning Policy
as of 1.000000, this distribution follows a versioning scheme similar to Moo, which is based on a semver <http://semver.org/>-like three component version number, but with the last two components each represented by three decimal digits in the fractional part of the version number. that is, version 1.003002 of the software represents "1.3.2". maths but make it cute โจ
additionally, releases where the second component is an odd number will be considered unstable/trial releases. (these will also include an underscore in the version number as per the usual CPAN convention.) so if you see an odd number in the middle, you're on the experimental train ๐
๐ช Perl Version Support
Type::Tiny0.000_01toType::Tiny0.015_04required Perl5.8.1.Type::Tiny0.015_05+andType::Tiny1.000000+requires Perl5.6.1.Type::Tiny2.000000+will require Perl5.8.1.
๐ NEXT STEPS ๐
here's your next step, bestie โ just one, main character energy:
- Type::Tiny::Manual::Contributing
- contributing to
Type::Tinydevelopment.
- contributing to
๐ AUTHOR ๐
Toby Inkster <tobyink@cpan.org>.
๐ COPYRIGHT AND LICENCE ๐
this software is copyright (c) 2013-2014, 2017-2025 by Toby Inkster.
this is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. slay ๐
โ ๏ธ DISCLAIMER OF WARRANTIES โ ๏ธ
THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. (all caps because it's serious, not because i'm yelling at you i promise ๐ญ)
and that's the whole vibe check ๐ฆ this page isType::Tiny::Manual::Policiesfrom the perl v5.42.0 docs, dated 2026-01-17, and you can find it underType::T...olicies(3). go forth and be stable, or experimental, whichever you prefer ๐ โจ
๐ฆ where this page comes from
- fedora 44: perl-Type-Tiny 2.010001-2.fc44 ยท GPL-1.0-or-later OR Artistic-1.0-Perl
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms