Revision history for Bread-Board

0.37 2019-06-28
    - Fixed pod error as reported by CPANTS. (GH#67, Mohammad S Anwar)
    - remove extraneous character from synopsis
    - Remove extraneous character from synopsis (GH#66, Graham Knop)

  [ MISC ]
    - Fix some broken formatting in 'Changes'. (GH#65, Dave Rolsky)

    - code churn: 10 files changed, 137 insertions(+), 70 deletions(-)

0.36 2017-10-15
    - fix pod error. (Mohammad S Anwar, GH#63)

  [ MISC ]
    - Reverting the changes of #53, as it breaks a few packages that are
      using `also => 'Bread::Board'` in their import, and the benefit we
      get from	freeing ourselves from Moose::Exporter isn't that huge.

    - code churn: 4 files changed, 40 insertions(+), 44 deletions(-)

0.35 2017-07-31
    - fixed Bread::Board::Dumper to dump parameterized containers -
      previously it would just ignore them entirely (#56, Dave Rolsky)
    - Moo classes were losing their method modifiers because of bad
      interaction with Class::MOP::class_of(). (GH#61)

    - Using Bread::Board no longer enables strict and warnings in the
      calling package. (#53, Dave Rolsky)
    - Bread::Board::Dumper now sorts services and sub containers -
      previously these came out in a random order each time (#56, Dave
    - allow a service or literal to be undefined. (#54, Dave Rolsky)

    - code churn: 13 files changed, 425 insertions(+), 237 deletions(-)

0.34 2016-03-28
  - Add test messages to tests which did not have them, (#50, Alex

    - add missing module abstracts. (GH#49, Alex Balhatchet, GH#16,
      Sterling Hanenkamp)

    - SetterInjection can now accept any constructor. (#43, dakkar)

    - code churn: 37 files changed, 462 insertions(+), 395 deletions(-)

0.33 2015-04-26
  - add 'literal' keyword (Yanick Champoux, #31)
  - added documentation for most of the classes (dakkar, sponsored by

    - code churn: 35 files changed, 1016 insertions(+), 375 deletions(-)

0.32 2014-06-03
  - fixes to arrayref dependencies (dakkar, #35)

0.31 2014-05-08
  - allow specifying dependency values as arrayrefs, which will resolve to
    an arrayref containing the resolved service values (dakkar, #34)

0.30 2014-02-02
  - fix deprecated use of Class::MOP::load_class (Caleb Cushing, #33)

0.29 2013-11-21
  - Fix deprecated enum syntax

0.28 2013-08-30
  - Allow overriding of services and containers. This is useful when using
    the common pattern of "sub BUILD { my $self = shift; container $self =>
    as { ... } }" since the BUILD method in a subclass can modify existing
    services and containers that were defined in a superclass, rather than
    only being able to replace them (Florian Ragwitz, #26, #27).

0.27 2013-08-06
  - allow the 'container $obj' sugar for parameterized containers (Florian
    Ragwitz, #25)

0.26 2013-08-01
  - allow cloning containers with parameterized subcontainers (Florian
    Ragwitz, #22)
  - allow referencing parent services from parameterized subcontainers
    (Florian Ragwitz, #23)
  - deprecate special case in path traversal where a path component with
    the name of the current container was ignored (doy, #20)
  - fix setting the current container multiple times from outside of a
    container (doy)
  - make some error messages more helpful (Jason Galea, #14)
  - doc improvements (Sterling Hanenkamp, zdk, Philippe Bruhat, and Gabor
    Szabo; #15, #17, #19, #21)
  - remove the (unmaintained) Bread::Board::GraphViz

0.25 2011-10-20
  - Bread::Board - the container sugar was misbehaving (since April 2010
    apparently), so we have fixed it and clarified it

0.24 2011-10-15
  - Bread::Board::Container - make sure to clone subcontainers, this is
    necessary for parameterized containers to retain their connections
  - Bread::Board::Traversable - add some errors, be a little more defensive

0.23 2011-10-14
  - Bread::Board::Container::Parameterized - retain control of names of the
    generated containers, so if your the container being generated has a
    name, it keeps it. - this makes these containers more addressable when
    composed into higher level containers - this helps when subclassing
    parameterized containers - switch the generated containers to be
    created with builder instead of default - also helps when subclassing
    parameterized containers as well
  - t/046_custom_parameter_service.t - fixing the error about Moose

0.22 2011-10-03
  - When inferring a service for a type, allow subclasses to fulfill
    discovered types.
  - Converted to Dist::Zilla

0.21 2011-09-06
  - Bread::Board - Allow service() and alias() sugar functions to return
    the newly-created objects if the context container is not defined.
    (thanks to kip hampton) - added tests for this - this module is just an
    exporter, so it does not need to 'use Moose' (thanks to Tomas Doran)
  - fixed some spelling and grammar errors (thanks to ben hengst and Brad
  - Bread::Board::Service::WithParameters - parameters attribute now has a
    builder instead of a default, so as to allow better tweaking in
    subclasses (thanks to Andre Walker) - added tests for this

0.20 2011-06-13
  - Bread::Board::Lifecycle::Singleton - fix bug in singletons with
    circular refs (thanks to doy) - added tests for this (thanks to

0.19 2011-06-01
  - Bread::Board::GraphViz - added by jrockway, this allows you to
    visualise a Bread::Board system using GraphViz - note that this is
    optional and requires you to install optional dependencies
  - Bread::Board::Service::Alias - add the ability to alias services under
    another name (thanks to doy) - added tests for this
  - Bread::Board::Service::Inferred - improving edge cases (thanks to doy)
  - Bread::Board::Service::* - several code improvements (thanks to doy)
  - Bread::Board::Service - allow for custom Lifecycles by using the "+"
    prefix (thanks to jasonmay) - added tests for this

0.18 2011-04-13
  - Bread::Board::Service::WithParameters - added has_parameter_defaults
    method to check if a parameter has default values
  - Bread::Board::Service::WithDependencies - added a check for
    has_parameter_defaults before we make a Thunk - added test for this
    (thanks to rafl)

0.17 2011-02-22
  - Bread::Board::Service::Inferred - make recrusive inferrence work - add
    tests for this
  - Bread::Board::Manual::Concepts::Advanced - small doc update about
    subclassing and the name parameter, resolving RT#63124 (thanks to Evan
  - Bread::Board::Traversal - make relative parent path traversal more
    sane, there should be no more need for excessive ../../ stuff in
    dependency service paths (thanks doy) - adjust tests accordingly - this
    should fix RT#64478 as well

0.16 2011-01-10
  - Bread::Board::service sugar - adding the 'service_class' param for the
    service sugar function which allows you to pass in a custom service
    subclass - added tests for this (062_service_class_w_sugar.t)
  - Bread::Board::Dependency - added the service_params attribute here so
    that it is possible to pass in parameters when you depend on a service
    which requires them - added tests for this
  - Bread::Board::Service::Inferred - when a typemapped service is created
    it is now named with the special 'type:' prefix. This allows you to
    depend on a typemapped service in a non-typemapped service - added
    tests for this (079_depending_on_type.t)
  - Bread::Board::Traversable - improving the error messages when a
    container/service is not found

0.15 2010-09-30
  - Bread::Board::Service - removed the MooseX::Param dependency and
    implemented it internally so that we have more control
  - Bread::Board::Types - the Bread::Board::Service::Dependencies type now
    can also coerce ArrayRef[Str] and HashRef[Str] types correctly (doy)
  - Bread::Board::Service::WithDependencies - we now only create a
    ::Deferred::Thunk object if we have non-optional params
  - Bread::Board::Service::WithParameters - added the
    has_required_parameters method, to see if there are any non-optional
    parameters - added tests for both the above
  - Bread::Board - added the typemap and infer keyword to help in the
    mapping of types and construction of inferred services - added tests
    for this
  - Bread::Board::Container - added the typemap feature and added the
    ->resolve( type => $type ) call - added tests for this
  - Bread::Board::Service::Inferred - added this and tests for it
  - Bread::Board::Manual::Concepts::Typemap - added this to help explain
    the typemap feature

0.14 2010-08-24
  - Bread::Board::Container - added the ->resolve method to replace the
    ->fetch( $service )->get pattern that annoys mst so much. - adjusted
    all the tests to account for this change. - adjusted all the docs to
    now use this approach instead
  - now using Try::Tiny for all exception handling (except the Deferred
  - Bread::Board::Service::WithDependencies - if you want to depend on a
    parameterized service, now you can and it will return a
    Bread::Board::Service::Deferred::Thunk that you can call ->inflate on
    and pass in the parameters for it. - added tests for this
  - Bread::Board::Service::Deferred::Thunk - added this + tests for it

0.13 2010-04-23
  - Bread::Board - making the include keyword handle compilation errors
    better (doy) - added test for this
  - Bread::Board::Container Bread::Board::Container::Parameterized - it is
    now possible to store parameterized containers within regular
    containers and have them behave properly - added tests for this
  - Bread::Board::Manual::Example::* - adding some examples of ways to use
    Bread::Board to the manual - added tests to confirm they work

0.12 2010-04-18
  - Bread::Board - added the `include` keyword which will evaluate an
    external file within your Bread::Board configuration - added tests for
    this - added support for parameterized containers - added tests for
    this - the 'container' keyword will now accept an instance of
    Bread::Board::Container instead of the name, this makes subclassing
    easier - added tests for this
  - Bread::Board::Container::Parameterized - added this module and tests
  - Bread::Baord::Manual - moved, re-organizad and added too the docs that
    were previously in

0.11 2010-03-25
  - Much improved documentation.
  - Fixed inc/ to include all used Module-Install extensions.

0.10 2010-02-22
  - Bread::Board - import strict and warnings into the caller upon import
    (Florian Ragwitz) - fixing the SYNOPSIS so that it will actually run
    (thanks to zby for spotting this)
  - Bread::Board::ConstructorInjection - Add a constructor_name parameter
    for classes using MooseX::Traits or other things which need an
    alternately named constructor. (Tomas Doran)

0.09 2009-07-29
  - Add cloning support for containers and services
  - (thanks to jrockway for this) - adding tests for this
  - Bread::Board::ConstructorInjection - use meta->constructor_name instead
    of "new" if possible (jrockway)
  - Bread::Board::Service::WithParameters - fixing a leak where we would
    hold onto parameters that were passed into get()

0.08 2009-07-18
  - updating dates on all files
  - Bread::Board::LifeCycle::Singleton::WithParameters - new module added
    to support the idea of a singleton lifecycle keyed on the parameters
    rather then just a per-instance item.
  - Bread::Board::Traversable - fixed the is_weak_ref mis-spelling

0.07 2009-02-18
  - Work with new MooseX::Params::Validate
  - Specify MX::P::Validate version number in Makefile.PL

0.06 2008-11-03
  - Forgot to update MANIFEST before uploading to CPAN.

0.05 2008-11-03
  - Applied immutablity to classes where applicable, and vigorously
    unimport Moose keywords when they are no longer needed. This results in
    x 2 performance as far as defining a Bread::Board model (Daisuke Maki).
  - Bread::Board - Implemented unimport(), thus allowing you to remove
    keywords exported by Bread::Board (Daisuke Maki).
  - Bread::Board::Traversable - Unrolled recursive calls to loops, and
    removed Sub::Current dependency (Daisuke Maki)

0.04 2008-10-31
  - Bread::Board Bread::Board::Traversable - fix root path handling (thanks
    to Daisuke Maki) - added tests for this
  - Bread::Board::Dumper - Simple utility for dumping containers (thanks to
    Daisuke Maki)
  - t/ - fixing the plans so that new versions of Test::More stop

0.03 2008-01-08
  - Bread::Board::Service::WithParameters - fixed the parameter validation
    to use a custom cache key, this is so that it plays nicely with the new
    MooseX::Params::Validate - added tests for this

0.02 2008-01-08
  - forgot a dependency, whoops.

0.01 2008-01-07
  - Out with the old (IOC) and in with the new (Bread::Board)