.. _whatsnew_0100:

v0.1.0 (April 20, 2015)
-----------------------

This is the first official release of the pvlib-python project.
As such, a "What's new" document is a little hard to write.
There will be significant overlap with the to-be-written document
that describes the differences between pvlib-python and PVLIB\_Matlab.


API changes
~~~~~~~~~~~

* Remove ``pvl_`` from module names.
* Consolidation of similar modules. For example, functions from ``pvl_clearsky_ineichen.py`` and ``pvl_clearsky_haurwitz.py`` have been consolidated into ``clearsky.py``. 
* Return one DataFrame instead of a tuple of DataFrames.
* Change function and module names so that they do not conflict.


New features
~~~~~~~~~~~~

* Library is Python 3.3 and 3.4 compatible
* Add What's New section to docs (:issue:`10`)
* Add PyEphem option to solar position calculations. 
* Add a Python translation of NREL's SPA algorithm.
* ``irradiance.py`` has more AOI, projection, and irradiance sum and calculation functions
* TMY data import has a ``coerce_year`` option
* TMY data can be loaded from a url (:issue:`5`)
* Locations are now ``pvlib.location.Location`` objects, not "structs".
* Specify time zones using a string from the standard IANA Time Zone Database naming conventions or using a pytz.timezone instead of an integer GMT offset. We may add dateutils support in the future.
* ``clearsky.ineichen`` supports interpolating monthly Linke Turbidities to daily resolution.


Other changes
~~~~~~~~~~~~~

* Removed ``Vars=Locals(); Expect...; var=pvl\_tools.Parse(Vars,Expect);`` pattern. Very few tests of input validitity remain. Garbage in, garbage or ``nan`` out.
* Removing unnecssary and sometimes undesired behavior such as setting maximum zenith=90 or airmass=0. Instead, we make extensive use of ``nan`` values.
* Adding logging calls, removing print calls.
* Improved PEP8 compliance.
* Added ``/pvlib/data`` for lookup tables, test, and tutorial data.
* Limited the scope of ``clearsky.py``'s ``scipy`` dependency.
  ``clearsky.ineichen`` will work without ``scipy`` so long as 
  the Linke Turbidity is supplied as a keyword argument. (:issue:`13`)
* Removed NREL's SPA code to comply with their license (:issue:`9`).
* Revised the globalinplane function and added a test_globalinplane (:issue:`21`, :issue:`33`).

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

* Using readthedocs for documentation hosting.
* Many typos and formatting errors corrected (:issue:`16`)
* Documentation source code and tutorials live in ``/`` rather than ``/pvlib/docs``.
* Additional tutorials in ``/docs/tutorials``.
* Clarify ``pvsystem.systemdef`` input (:issue:`17`)


Testing
~~~~~~~

* Tests are cleaner and more thorough. They are still nowhere near complete.
* Using Coveralls to measure test coverage. 
* Using TravisCI for automated testing.
* Using ``nosetests`` for more concise test code. 


Bug fixes
~~~~~~~~~

* Fixed DISC algorithm bugs concerning 
  modifying input zenith Series (:issue:`24`),
  the ``Kt`` conditional evaluation (:issue:`6`),
  and ignoring the input pressure (:issue:`25`).
* Many more bug fixes were made, but you'll have to look at the detailed commit history.
* Fixed inconsistent azimuth angle in the ephemeris function (:issue:`40`)


Contributors
~~~~~~~~~~~~

This list includes all (I hope) contributors to 
`pvlib/pvlib-python <https://github.com/pvlib/pvlib-python>`_,
`Sandia-Labs/PVLIB_Python <https://github.com/Sandia-Labs/PVLIB_Python>`_,
and
`UARENForecasting/PVLIB_Python <https://github.com/UARENForecasting/PVLIB_Python>`_.

* Rob Andrews
* Will Holmgren
* bmu
* Tony Lorenzo
* jforbess
* Jorissup
* dacoex
* alexisph
* Uwe Krien
