Release 0.9.0
-------------

:Release: 0.9.0
:Date: March 29, 2016

Highlights
~~~~~~~~~~

* Added classifiers and normalization methods to pipeline, along with new
  datasets and factors.

* Added support for Windows with continuous integration on AppVeyor.

Enhancements
~~~~~~~~~~~~
* Added new datasets
  :class:`~zipline.pipeline.data.buyback_auth.CashBuybackAuthorizations`
  and :class:`~zipline.pipeline.data.buyback_auth.ShareBuybackAuthorizations`
  for use in the Pipeline API.  These datasets provide an abstract interface for
  adding cash and share buyback authorizations data, respectively, to a new
  algorithm. pandas-based reference implementations for these datasets can be
  found in :mod:`zipline.pipeline.loaders.buyback_auth`, and experimental
  blaze-based implementations can be found in
  :mod:`zipline.pipeline.loaders.blaze.buyback_auth`. (:issue:`1022`).

* Added new datasets
  :class:`~zipline.pipeline.data.dividends.DividendsByExDate`,
  :class:`~zipline.pipeline.data.dividends.DividendsByPayDate`, and
  :class:`~zipline.pipeline.data.dividends.DividendsByAnnouncementDate`
  for use in the Pipeline API.  These datasets provide an abstract interface for
  adding dividends data organized by ex date, pay date, and announcement date,
  respectively, to a new algorithm. pandas-based reference implementations for
  these datasets can be found in :mod:`zipline.pipeline.loaders.dividends`, and
  experimental blaze-based implementations can be found in
  :mod:`zipline.pipeline.loaders.blaze.dividends`. (:issue:`1093`).

* Added new built-in factors,
  :class:`zipline.pipeline.factors.BusinessDaysSinceCashBuybackAuth` and
  :class:`zipline.pipeline.factors.BusinessDaysSinceShareBuybackAuth`.  These
  factors use the new ``CashBuybackAuthorizations`` and
  ``ShareBuybackAuthorizations`` datasets, respectively. (:issue:`1022`).

* Added new built-in factors,
  :class:`zipline.pipeline.factors.BusinessDaysSinceDividendAnnouncement`,
  :class:`zipline.pipeline.factors.BusinessDaysUntilNextExDate`, and
  :class:`zipline.pipeline.factors.BusinessDaysSincePreviousExDate`.  These
  factors use the new ``DividendsByAnnouncementDate` and ``DividendsByExDate``
  datasets, respectively. (:issue:`1093`).

* Implemented :class:`zipline.pipeline.Classifier`, a new core pipeline API
  term representing grouping keys.  Classifiers are primarily used by passing
  them as the ``groupby`` parameter to factor normalization methods.
  (:issue:`1046`)

* Added factor normalization methods:
  :meth:`zipline.pipeline.Factor.demean` and
  :meth:`zipline.pipeline.Factor.zscore`. (:issue:`1046`)

* Added :meth:`zipline.pipeline.Factor.quantiles`, a method for computing a
  Classifier from a Factor by partitioning into equally-sized buckets. Also
  added helpers for common quantile sizes
  (:meth:`zipline.pipeline.Factor.quartiles`,
  :meth:`zipline.pipeline.Factor.quartiles`, and
  :meth:`zipline.pipeline.Factor.deciles`) (:issue:`1075`).

Experimental Features
~~~~~~~~~~~~~~~~~~~~~

.. warning::

   Experimental features are subject to change.

None

Bug Fixes
~~~~~~~~~

* Fixed a bug where merging two numerical expressions failed given too many
  inputs. This caused running a pipeline to fail when combining more than ten
  factors or filters. (:issue:`1072`)

Performance
~~~~~~~~~~~

None

Maintenance and Refactorings
~~~~~~~~~~~~~~~~~~~~~~~~~~~~

None

Build
~~~~~

* Added AppVeyor for continuous integration on Windows.  Added conda build of
  zipline and its dependencies to AppVeyor and Travis builds, which upload
  their results to anaconda.org labeled with "ci". (:issue:`981`)

Documentation
~~~~~~~~~~~~~

None

Miscellaneous
~~~~~~~~~~~~~

* Adds :class:`~zipline.testing.fixtures.ZiplineTestCase` which provides hooks
  to consume test fixtures. Fixtures are things like:
  :class:`~zipline.testing.fixtures.WithAssetFinder` which will make
  ``self.asset_finder`` available to your test with some mock data
  (:issue:`1042`).
