The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
0.16     2015-07-05

[MISC]

* Made the state machine only called allowed_methods() on your resource class
  once. RT #101203. Implemented by Nathan Cutler.
* Noted in the docs that resource methods may be called more than once and
  that they should therefore by idempotent. RT #101219. Implemented by Nathan
  Cutler.
* Removed the CAVEAT section of the docs warning people not to use this
  module. RT #97534. Implemented by Nathan Cutler.
* Setting the WM_DEBUG environtment variable to "diag" now sends debugging
  output to Test::More::diag() instead of printing directly to STDERR.
* Resource classes were being passed a string for known_content_type() instead
  of an HTTP::Headers::ActionPack::MediaType object. Reported by Robert
  Rothenberg. GH #27.

[BUG FIXES]

* Fixed the docs for the valid_content_headers() method. This defaults to
  true, not false, as the docs previously said. Fixed by Nathan Cutler.

0.15     2014-06-26

[MISC]

* The Web::Machine class now accepts an addition parameter,
  request_class. This allows you to use a custom subclass of
  Plack::Request. (Mike Raynham)

* Documented the request and response methods in
  Web::Machine::Resource. Requested by Olaf Alders.

0.14     2014-04-14

[MISC]

* Automatically load resources (Arthur Axel fREW Schmidt)
* Ensure closed-over $resource variable is weak in
  Web::Machine::Util::BodyEncoding::encode_body (Carlos Fernando Avila Gratz)
* The n11 state was not taking into account any query parameters that might
  have been passed back from `create_path`, this is fixed now (Stevan Little)
* Errors from $resource->finish_request are now logged (Greg Oschwald)

0.12     2013-08-01

[BUG FIX]

* Calculate Content-Length of the filtered body (Thomas Sibley)

[MISC]

* Link state machine diagram (Andreas Marienborg)
* Fix a POD link to PSGI (Andreas Marienborg)

0.11     2013-05-01

[NEW FEATURES]

* A resource class can now provide a default_charset() sub. This is called if
  the client does not pass an Accept-Charset header, allowing you to ensure
  that responses are always encoded as bytes. (Dave Rolsky)
* Both charsets_provided and default_charset can return string, rather that
  key/value hashref pairs. These strings are assumed to be character set
  names, and Web::Machine will use Encode::encode() to turn the body into
  bytes with that string. (Dave Rolsky)
* Started working on a new Web::Machine::Manual document, and tweaked some of
  the other docs in the distro. (Dave Rolsky)

[MISC]

* Fix test failures on 5.17.x. (Dave Rolsky)
* Tests on older Perls would fail when trying to parse a date in
  2112. Reported by Bernhard Graf. (Dave Rolsky)


0.10     2013-04-15

[MISC]

* Requests with an If-None-Match error caused an undef warning if your
  resource did not return a value from the generate_etag() sub (Dave Rolsky)
* Content negotiation is generally smarter. If a client asks for "utf8" and
  your resources provides "UTF-8", this will be considered a match. This is
  all implemented in HTTP::Headers::ActionPack 0.05 but it affects
  Web::Machine. (Dave Rolsky)
* If you actually implemented charsets_provided in a resource this would cause
  Web::Machine to die with an error like 'Can't locate object method
  "HASH(0x2f613f8)" via package My::Resource'. (Dave Rolsky)
* None of the body filtering code for applying encodings or charset encoding
  actually work when the body was returned as an arrayref. (Dave Rolsky)

0.09     2013-03-27

[MISC]

* Malformed headers no longer cause a 500 error (Greg Oschwald)

0.08     2013-02-12

[NEW FEATURES]

* It is now possible to have the create_path resource method fire *after* the
  entity is processed. This resolves RT #78631, which also has an excellent
  description of the problem in it.

0.07     2013-01-24

[MISC]

* Fixing some broken test dependencies

0.06     2013-01-23

[COMPATABILITY BREAKAGE]

* Removed the $metadata variable in the FSM and moved this into the PSGI $env
  instead (blame Jesse Luehrs if this is a problem)
* Content-Type is a required header (Jesse Luehrs)

[NEW FEATURES]

* Implement PSGI style streaming responses (Jesse Luehrs)
* Allow IO handle responses (Jesse Luehrs)

[MISC]

* Fix some tests (Jesse Luehrs)
* When a resource throws an error, log this to the logger defined in the
  Plack::Request object if one is available (Dave Rolsky)

0.05     2012-10-29

* If a resource returned undef from is_authorized this caused an uninitialized
  value warning (Dave Rolsky)

0.04     2012-09-09

* Move all the content negotation code to HTTP::Headers::ActionPack
* Improve the bind_path function in Util
* Improve existing and add more tests for this
* Improve the docs on this too

0.03     2012-06-19

* Fix a missing semicolon (thanks to bricas)
* Fix missing $VERSION numbers (also thanks to bricas)
* Allow the resource to choose how to handle exceptions instead of always
  writing them to the body

0.02     2012-06-17

* Add missing dependencies

0.01     2012-06-12

* First release