Planet Moose - September 2013
Welcome to the second edition of Planet Moose, a brief write up on what's been happening in the world of Moose this month, for the benefit of those of you who don't have their eyes permanently glued to the #moose IRC channel, or the MetaCPAN recent uploads page.
Thanks for contributions from Damien Krotkine and Stevan Little. If you'd like to contribute some news for next month's issue, you can do so on the wiki.
Moose 2.1100
The Moose 2.1100 trial version was released, officially deprecating Class::MOP's duplicates of some Class::Load functions, and removing some already-deprecated features.
It also seems to be moving towards using %INC
as the authoritative way to judge whether a package is already loaded. Moose now adds your classes and roles to %INC
even if it's they are "inner packages". (p5-mop and Moops already do this, and there is talk of Moo perhaps doing the same soon.) Moose is now using Module::Runtime (which trusts %INC
) to load classes and roles instead of Class::Load (which uses its own set of heuristics).
See the Changes file for further details.
p5-mop
The p5-mop project continues to be heavily developed and enhanced.
Damien Krotkine has written a gentle introduction to the project, explaining how to install p5-mop, giving some small examples of how to use it, explaining some of the design decisions (e.g. twigils), and exploring areas for further development.
Stevan Little has written up his experiences porting Bread::Board from Moose to mop, and Zak B Elep has followed it up by writing about porting Hashids from Moo to mop.
YAPC::EU talks
Ovid has posted an introductory video for Test::Class::Moose.
Other interesting videos from YAPC::EU 2013 include:
- Herbert Breunung, Perl 6 OO vs. Moose
- StrayTaoist, perl 5 + moose = perl 7
- Thomas Klausner, Bread::Board by example.
In other news...
- Ovid has blogged about building your own Moose which is a somewhat similar idea to my creating your own Perl article.
- Gideon looks like it might be interesting. Gideon's goal is to build a data access layer for your model and let you focus on business logic. It's designed to support multiple backends and to be extended to support other features not provided with the distribution.
- Meerkat looks interesting too. Meerkat lets you manage MongoDB documents as Moose objects.
- Moo 1.003001 was released, with no ground-breaking new features, but some useful bug fixes.
- A new version of Role::Tiny was released to address a couple of minor faults.
- Class::Method::Modifiers (used by Moo and Role::Tiny) has a new release, adding support for lvalue methods.
- There have been new releases of Class::Tiny and Class::Tiny::Antlers too.
- And Moops (which, incidentally, the documentation of recent releases of MooseX::Declare now suggests as an alternative to MXD).
- The first release of MooseX::NonMoose in over two years removes some use of soon-to-be-deprecated functions. As well as the changes mentioned above, skimming the diffs reveals that
Class::MOP::class_of
has been replaced in MooseX::NonMoose withMoose::Util::find_meta
- a hint of a future deprecation? - In a whirlwind of activity, Karen Etheridge released updates for a bunch of MooseX modules, dropping the usage of newly deprecated functions, and fixing some low-hanging bugs. She's also been moving them to the Moose organization on GitHub. This includes MooseX::Types, MooseX::Types::Common, MooseX::Types::LoadableClass, MooseX::Declare, MooseX::Storage, MooseX::Method::Signatures, MooseX::Getopt, MooseX::AlwaysCoerce, and MooseX::ConfigFromFile.
Thank you Toby - a very concise and useful update.