10/06/2008:

* Use -L option or :log_file or :log_stream in init.rb or env init file
  to point logger where you want.

10/05/2008:
* Merb does not add spec tasks to Rakefiles list by default. Add
  require "merb-core/test/tasks/spectasks" in your existing Rakefiles
	explicitly. This is done so that test unit users do not get spec
	tasks they do not need down their throat in any merb application,
	even running on just -core.

* Dictionary and inflection code are now parts of Extlib library and shared
  with other frameworks that use it (DataMapper, Halcyon, Mack, etc).

9/26/2008:
* For Merb developers, Rakefile features a new implementation of the :install
  and :uninstall tasks. These will work with Gems directly, without running
  the intermediate commands on the shell. This means 'sudo' is now explicitly
  needed when installing gems system-wide; implicit sudo (prompt) is considered   
  harmful. The new code will write appropriate executable wrappers that feature 
  local gem loading and minigems usage. All gems in -more and -core now use this
  new (un)install procedure.

9/25/2008:
* Merb::Config[:reload_templates] needs to be set explicitly in 
  config/environments/development.rb - which is true for newly generated apps.
  Previously Merb.env?(:development) meant that reload_templates was enabled.
  Since we don't want to depend on Merb.env like that, we're using Merb::Config.

9/24/2008:
* Kernel#dependency and Kernel#load_dependency will now register the requested
  dependency on Merb::BootLoader::Dependencies.dependencies. Doing so creates a
  Gem::Dependency instance, which will be returned from these methods. 
  Before, an Array of [name, ver] was returned. Working with Gem::Dependency 
  makes the dependency information more uniform, regardless of the original 
  version requirements.

9/13/2008:
* Merb apps will always give priority to gems that are available locally in
  Merb.root / gems. Because of the specific load order, you will need to use
  bin/merb to load merb-core from local gems, as detailed below. This is also
  the case for bin/merb-gen, bin/rake and bin/spec for example. The added 
  advantage is that your app will be completely independent from system gems.

* Thor tasks 'merb.thor' have been added for newly generated apps; regenerate
  your app to get them; alternatively these are available on merbivore.com:
  
  http://merbivore.com/merb.thor
  
* Release 0.9.6 introduced 'merb-gen scripts' which added script/merb and
  script/merb-gen. However, now that merb.thor provides tasks to manage
  bundled gems, we can directly extract the correct executables. To follow the
  standard convention, these will be installed in ./bin instead of ./script.
  
  With merb.thor installed, run the following to get started:
  
  $ thor merb:tasks:setup # adds bin/thor, bin/rake etc.
  
  As soon as you install other gems using merb.thor you'll have the required
  bin executables available; these are setup so that running them will load
  merb-core from the local gems dir, not from the system-wide rubygems.
  
  To get bin/merb and bin/merb-gen for a fresh application, you can use:
  
  $ thor merb:stable -a mongrel # install a full merb stack from stable rubygems
  
  Alternatively, you can install from the bleeding edge:
  
  $ thor merb:edge --install # install a full merb stack from github
  $ thor merb:gems:install mongrel # or ebb, thin...
  
9/5/2008:
* Language::English::Inflector is now English::Inflect - be sure to change your
  custom inflections in config/init.rb. Additionally, the merb-gen template 
  config/init.rb has been changed to document the features accordingly.

9/2/2008:
* AbstractController now uniformly uses instance_eval for Procs where previously
  the controller instance (self) was passed as an argument:
  - Procs thrown during dispatch 
  - Procs used as before/after filters
  - Procs used as conditions to before/after filters
  
  This means that code like this:
  
  proc { |c| c.a_controller_method }
  
  Becomes the following for the cases mentioned:
  
  proc { a_controller_method }

8/29/2008:
* The directory Merb.root / 'framework' is now gone - framework gems are
  expected to be installed as local gems in Merb.root / 'gems':
  sudo gem install merb -i ./gems
* The notion of a frozen application setup (using bundled gems) is now known
  as a bundled setup; Merb.frozen? => Merb.bundled? By default an app uses
  bundled gems (the -B or --bundle options to merb), to disable this use
  the option --no-bundle.

8/27/2008:
* Merb::Request#protocol now returns valid protocol names: http, not http://.

8/22/2008:
* controller.cookies['foo'] = { ... } (Hash with options) is now deprecated;
  use controller.cookies['foo'] = 'bar' for simple cookies without options, or
  use controller.cookies.set_cookie('foo', 'bar', options) for more control.

8/21/2008:
* Memcached sessions are now configured by assignment to 
  Merb::MemcachedSession.store (previously the CACHE constant was used)
* Added Merb::Config[:ignore_tampered_cookies] option to skip cookie warnings   
  during development. This defaults to 'on' in the development environment.
* Merb::Config[:session_store] or Merb::Config[:session_stores] now accept an
  Array (or String); when an Array is given, multiple session stores will be
  available to the application.
* If you have custom session stores (that inherit from Merb::SessionContainer)
  be sure to require them in your init.rb

8/20/2008:
* Merb::Config[:session_cookie_domain] is now     
  Merb::Config[:default_cookie_domain]
* Merb.registered_session_types is now Merb::Request.registered_session_types
* When running in :development env, cookie-based sessions won't bother you 
  by raising TamperedWithCookie anymore.

8/14/2008:
*  Merb.orm_generator_scope and friends are renamed.
** Merb.orm_generator_scope => Merb.orm
** Merb.test_framework_generator_scope => Merb.test_framework
** Added Merb.template_engine

Merb-gen is updated accordingly. This let us add --haml and similar
options to merb-gen and plugin generators.

8/10/2008:
* Modified the way Exceptions are handled in the Dispatcher
** To rescue all exceptions, supply Exceptions#exception
** To rescue all Merb-generated exceptions, supply Exceptions#base
** Exceptions#internal_server_error is no longer a catch-all and should
   not be used as such.

6/22/2008:

Erubis modified:
* <%= %> now can take a block, so <%= helper do %>Hello<% end %> now works
* Erubis buffer is now an ivar (@_erb_buf), which eliminates the need for
  eval in capture helpers.
  
CONSEQUENCE:
Helpers that take a block should simply return a string, and should not
use concat. Example:
  
  def my_helper(&blk)
    "My helper says #{capture(&blk)}."
  end