MooX-Press
==========
Created:      2019-10-22
Home page:    <https://metacpan.org/release/MooX-Press>
Bug tracker:  <https://github.com/tobyink/p5-moox-press/issues>
Maintainer:   Toby Inkster (TOBYINK) <tobyink@cpan.org>
0.086	2022-07-19
 [ Packaging ]
 - Raise the minimum versions of certain required dependencies.
 [ Other ]
 - Updated: Cope with changes to Slurpy in latest
   Type::Params/Types::Standard. This actually simplifies things.
0.085	2022-06-19
 [ Bug Fixes ]
 - Optimized signatures were sometimes causing a goto(HashRef) to happen.
0.084	2022-06-16
 [ Packaging ]
 - Raise the minimum versions of certain required dependencies.
0.083	2020-11-06
 - Updated: Special support for default=>Ask::Q(...)
0.082	2020-10-13
 - Allow certain features previously only supported in classes and roles
   (`with`, `extends`, `can`, `constant`, `multimethod`, `symmethod`) to
   work for the factory itself.
0.081	2020-10-10
 - Added: Support for Sub::SymMethod.
 - When MooX::Press attempts to build a child class before a parent class,
   it will now notice and hopefully build the parent class first.
0.080	2020-10-09
 - Updated: Support for Sub::MultiMethod 0.901+.
0.079	2020-09-30
 [ Bug Fixes ]
 - Fix for Type::Registry->for_class being called before Type::Registry was
   loaded.
0.078	2020-09-23
 - Added: Factories now have get_class() and get_role() methods.
0.077	2020-09-23
 [ Bug Fixes ]
 - Correct a couple of typos in code.
0.076	2020-09-23
 - MooX::Press now supports a `definition_context` in
   class/role/attribute/method specs.
 - Zydeco::Lite `class`, `role`, `interface`, `abstract_class`, `has`,
   `method`, `factory`, `multi_method`, and `multi_factory` keywords now
   include a `definition_context` in the specs they generate.
0.075	2020-09-19
 [ Bug Fixes ]
 - Prevent type library from complaining about type constraints for 'tag'
   roles being added multiple times.
0.074	2020-09-18
 [ Documentation ]
 - Add Zydeco::Lite extended example.
 - Update Zydeco::Lite formal syntax.
 [ Packaging ]
 - Dynamically calculate dependency list during build process.
 [ Other ]
 - MooX::Press will load MooseX::NonMoose when it's needed.
 - MooX::Press will load MouseX::Foreign when it's needed.
 - MooX::Press will load UNIVERSAL::DOES on Perl older than v5.10.
 - Zydeco::Lite allows apps, classes, roles, abstract classes, and
   interfaces to take a scalar reference as their name, like methods can.
0.073	2020-09-18
 - MooX::Press now creates type constraints for 'tag' roles.
0.072	2020-09-17
 - Added: Zydeco::Lite now supports anonymous methods.
0.071	2020-09-17
 [ Bug Fixes ]
 - Fix occasional errors figuring out the type name for classes named with
   a leading + sign.
0.070	2020-09-17
 [ Bug Fixes ]
 - Generator packages if called with leading :: should strip it before
   continuing.
0.069	2020-09-17
 [ Documentation ]
 - Documentation of scoping in Zydeco::Lite.
 [ Other ]
 - Allow many keywords to appear outside an app in Zydeco::Lite.
 - MooX::Press->patch_package now supports `extends`.
0.068	2020-09-16
 [ Bug Fixes ]
 - MooX::press now strips leading `main::` when generating type constraint
   names.
 [ Documentation ]
 - Better documentation of `coerce` in Zydeco::Lite.
 - Document importing functions from Zydeco::Lite.
 [ Other ]
 - MooX::Press now forbids roles from having a multifactory. (They could
   already not have factories, so this was an inconsistency.)
 - Zydeco::Lite's before_apply and after_apply now get passed 'role' or
   'class' as an argument indicating what kind of package the role is being
   applied to.
0.067	2020-09-15
 - Added: MooX::Press::make_absolute_package_name() function.
 - Treat leading `main::` like leading `::`.
0.066	2020-09-15
 [ Bug Fixes ]
 - Ensure Moose/Mouse classes are mutable before attempting to add
   attributes to them.
 [ Test Suite ]
 - Fix for Perl 5.8.
 [ Other ]
 - Refactor code for run-time modification of packages, moving code from
   Zydeco::Lite to MooX::Press so it can be shared with Zydeco.
0.065	2020-09-14
 - Added: Brand new Zydeco::Lite module.
 - Added: Factory packages now support before/after/around.
 - Added: Multi factories are now supported.
0.064	2020-09-03
 - Added: Class and role generators can generate multimethods.
 - Added: Role generators can generate before_apply/after_apply hooks.
 - Refactor how :coerce / :coercion attributes are handled.
 - Refactor how factory methods are installed.
0.063	2020-09-01
 - Added: Factories are now exporters and can export factory methods on
   request. The exported subs curry the invocant so are not called as
   methods.
0.062	2020-08-25
 - Added: Support :coerce / :coercion attributes on methods, multimethods,
   and factory methods to also install them as a coercion.
0.061	2020-04-28
 [ Bug Fixes ]
 - Fix regexps for extracting method bodies.
0.060	2020-04-25
 [ Bug Fixes ]
 - Eliminate closure warnings.
 - Eliminate printf warnings.
 - Stop wrapping method bodies in do blocks because it conflicts with
   lvalue methods in versions of Perl too old to optimize the do block
   away.
0.059	2020-04-25
 - Use MooX::TypeTiny again, but only versions 0.002001 and higher.
0.058	2020-04-08
 - Stop using MooX::TypeTiny for now; it introduces some weird coercion
   bugs.
0.057	2020-02-24
 - Eliminate some warnings when `make_attribute` is called to add an
   attribute to an existing class.
0.056	2020-02-24
 - The `is` option for attributes now defaults to 'ro', but you can change
   the default using a `default_is` option.
0.055	2020-02-20
 [ Bug Fixes ]
 - Eliminate 'used only once' warning from some roles.
 [ Packaging ]
 - Require latest stable Type::Params.
0.054	2020-02-18
 - Refactoring of `_make_package` to split out attribute handling into a
   separate `install_attributes` method.
0.053	2020-02-18
 - Added: Role::Hooks support.
 - MooX::Press now throws an error if you use certain options in classes
   that make no sense, like `requires`.
 - The `begin` and `end` options are now allowed to be arrayrefs.
0.052	2020-02-17
 - Added: The factory package now has a %PACKAGES variable.
0.051	2020-02-17
 [ Bug Fixes ]
 - Remove a debugging line that was included in 0.049.
 [ Other ]
 - Allow multiple `use MooX::Press` statements to have the same prefix.
0.050	2020-02-16
 - MooX::Press will now interpret `handles => ARRAYREF` as if the array
   were a hash, instead of relying on the underlying delegation
   implementation to interpret it.
 - Public attribtues can now have private (lexical) accessors and
   delegations.
0.049	2020-02-16
 - Module::Runtime and Import::Into were already dependencies, so make more
   use of them instead of just putting `use` statements in stringy eval.
0.048	2020-02-15
 - Don't issue warning about 'Local' factory if it was specified
   explicitly; assume they know what they're doing.
0.047	2020-02-15
 - Improve defaults of `prefix` and `factory_package`, especially when
   caller is `main`.
0.046	2020-02-14
 [ Packaging ]
 - Require Lexical::Accessor 0.012 to avoid Hash::FieldHash requirement.
 - Require Moo 2 because Moo 1 is just so old.
0.045	2020-02-14
 - Added: Integrate Lexical::Accessor support.
0.044	2020-02-12
 [ Packaging ]
 - Bump minimum required version of Sub::HandlesVia.
 - Make Sub::MultiMethod required rather than an optional dependency, so
   that other modules using MooX::Press and MooX::Pression don't need to
   depend on it explicitly.
0.043	2020-02-12
 [ Bug Fixes ]
 - If methods or method modifiers were given as a hashref rather than a
   coderef, MooX::Press would assume that meant there was a signature and
   later complain about the signature being undef, but there are other
   reasons to sometimes give a method or method modifier as a hashref, so
   this assumption is no longer made.
 [ Test Suite ]
 - Test that bare attributes work.
 [ Other ]
 - Added: MooX::Press::keywords now exports `bare` like `rw`, `ro`, `rwp`,
   and `lazy`.
0.042	2020-02-11
 - If a signature includes `head` and `tail` options, reify any string type
   constraints found there. This feature assumes you're using Type::Params
   1.009002 or above.
 - The `confess` exported by MooX::Press::Keywords no longer passes a
   single argument through sprintf; only calling sprintf when multiple
   arguments are given.
0.041	2020-02-09
 - Added: Factory packages now have a `qualify` method allowing them to
   translate unprefixed class names to fully-qualified ones.
 - Added: MooX::XSConstructor is loaded and used if it's installed.
0.040	2020-02-01
 [ Bug Fixes ]
 - Remove some Data::Dumper stuff mistakenly included in last release.
0.039	2020-02-01
 [ Bug Fixes ]
 - In the last few releases (since 0.032?), method signatures were
   mistakenly being recompiled every method call, which was SLOW.
0.038	2020-02-01
 - Abstract base classes throw exceptions from `BUILD` instead of `new`.
0.037	2020-01-31
 - Process `with` much later to ensure that methods (including accessors,
   delegated methods, multimethods, and constants) have been installed
   which might be needed to satisfy role requirements.
0.036	2020-01-31
 - Added: Abstract base classes.
 - Added: Interfaces.
 - Using class-specific things like `factory` in a role now results in an
   error instead of being silently ignored.
0.035	2020-01-28
 [ Bug Fixes ]
 - Don't install multimethod dispatchers into roles.
0.034	2020-01-28
 [ Bug Fixes ]
 - Skip trying to just-in-time look for a role definition if the role ends
   in a question mark; that role will already be built just-in-time.
0.033	2020-01-28
 - Added: Sub::MultiMethod support (optional dependency).
 - Added: Support `overload` in classes.
 - Build roles in an intelligent order.
 - Process role generators before class generators.
0.032	2020-01-24
 - Added: MooX::Press->wrap_coderef utility.
0.031	2020-01-23
 [ Bug Fixes ]
 - Fix broken signatures-as-coderefs feature.
 [ Documentation ]
 - Document signatures-as-coderefs feature.
 [ Other ]
 - Added: Add `optimize` feature for method signatures.
0.030	2020-01-23
 [ Bug Fixes ]
 - Bugfix for `import`.
0.029	2020-01-23
 - Allow `import` option to apply to class/role generators.
 - Removed: MooX::Press::Keywords no longer imports Try::Tiny for you.
0.028	2020-01-23
 [ Packaging ]
 - Require Sub::HandlesVia 0.004.
 [ Other ]
 - Added: Add an `import` option.
 - Smooth over differences between `has` in Moo, Moose, and Mouse.
0.027	2020-01-21
 - Added: Support for Sub::HandlesVia.
0.026	2020-01-18
 [ Bug Fixes ]
 - Fix `has` for Moose/Mouse classes and roles.
 [ Other ]
 - Better handling of type lookups from class/role generators.
0.025	2020-01-17
 - Saner API for slurpies in signatures.
0.024	2020-01-17
 - Added: Class and role generators now have generate_bleh methods in the
   factory.
0.023	2020-01-17
 - Added: class_generator and role_generator.
0.022	2020-01-16
 - Added: Integration with MooX::Enumeration/MooseX::Enumeration.
 - Added: Roles now have `requires`.
0.021	2020-01-15
 [ Bug Fixes ]
 - Prevent global options from overriding per-package options.
 [ Other ]
 - Added: Method modifiers now support signatures.
 - String 'from' types in coercions are now interpreted as type names
   instead of class/role names. This is for consistency with signatures.
0.020	2020-01-13
 - Added: Provide a `begin` option to run callback early in class/role
   definition.
 - Smarter Type::Registry stuff.
0.019	2020-01-10
 [ Documentation ]
 - Better type constratin documentation.
 [ Other ]
 - Added: Method signatures.
 - Allow roles listed under `with` to be suffixed with a question mark.
 - Default `factory_package` to `prefix` instead of `caller`.
0.018	2020-01-08
 [ Documentation ]
 - Fix typo.
0.017	2020-01-08
 - Added: MooX::Press::Keywords
0.016	2020-01-08
 [ Documentation ]
 - Documentation of @ and % sigils for `isa`.
 - Other improvements to type constraint related documentation.
 [ Other ]
 - Added: factory_package_can
 - Added: type_library_can
0.015	2020-01-07
 [ Bug Fixes ]
 - Fix interaction of automatic package prefixes and sigils.
0.014	2020-01-07
 - Added: Allow type names given as strings to be prefixed with @ or % to
   indicate ArrayRef of or HashRef of.
0.013	2019-11-06
 - Added: Allow classes to have multiple factories to create them.
0.012	2019-11-06
 [ Bug Fixes ]
 - Fix for newer versions of Moo::Role.
0.011	2019-11-05	Treason
 - Added: Support `type` in attribute specs.
0.010	2019-11-05	Gunpowder
 [ Bug Fixes ]
 - Fixes for methods being redefined in subclasses.
 [ Other ]
 - Added: Allow coderefs to be used to modify multiple methods in
   before/after/around, like Moo does.
 - Added: Top-level shortcuts for creating classes and roles.
 - Internal cleanups.
0.009	2019-10-31
 [ Documentation ]
 - Fix tree/leaf example.
0.008	2019-10-30
 - Added: Give each class a FACTORY method to return the factory package
   name.
 - Added: Give the factory package a type_library method to return the type
   library name.
0.007	2019-10-25
 [ Bug Fixes ]
 - Fixes for Moo 2.003_005 which changes how Moo's keyword subs are
   tracked.
0.006	2019-10-24
 [ Documentation ]
 - Document that multiple inheritance is supported.
 - Fix example in pod.
 [ Other ]
 - Less hacky way of calling Moo's has, extends, and with functions.
 - Throw an error if people try to use extends in roles.
 - You can now add a '+' before a class name to indicate that it should be
   prefixed by the parent class name.
0.005	2019-10-24
 [ Bug Fixes ]
 - Fixes for undef type_library.
 [ Documentation ]
 - Bundle a simple example, HTTP::Tiny::Objects.
 [ Other ]
 - Suppress loading MooX::TypeTiny if it's not needed.
0.004	2019-10-23
 [ Packaging ]
 - Declare dependency on namespace::autoclean.
 [ Other ]
 - Added: Set $VERSION and $AUTHORITY in generated packages.
 - Better handling of caller option.
0.003	2019-10-23
 [ Packaging ]
 - Remove old test script from tarball.
0.002	2019-10-23
 [ Bug Fixes ]
 - Fix syntax for Perl < 5.22.
0.001	2019-10-23	Initial release