******
v0.2.0
******

:Date: January 1, 2021

The changes since Manim Community release v0.1.1 are listed below.

Breaking Changes
================

- Remove all CONFIG dictionaries and all calls to ``digest_config`` and allow
  passing options directly to the constructor of the corresponding classes (:pr:`783`).

  Practically, this means that old constructions using ``CONFIG`` like::

      class SomeMobject(Thing):
          CONFIG = {
              "my_awesome_property": 42
          }

  where corresponding objects were then instantiated as ``my_mobject = SomeMobject()``
  should now be created simply using ``my_mobject = SomeMobject(my_awesome_property=42)``.

- Remove old syntax for animating mobject methods by passing the methods and arguments to ``self.play``,
  and use a new syntax featuring the ``animate`` property (:pr:`881`).

  For example: the old-style ``play`` call
  ::

      self.play(my_square.shift, LEFT)

  should be replaced with the new following call using the ``animate`` property::

      self.play(my_square.animate.shift(LEFT))

New Features
============

- Added creation animation for :class:`~.ManimBanner` (:pr:`814`)
- Added some documentation to :meth:`~.Scene.construct` (:pr:`753`)
- Added a black and white monochromatic version of Manim's logo (:pr:`826`)
- Added support for a plugin system (``manim plugin`` subcommand + documentation) (:pr:`784`)
- Implemented ``__add__``, ``__iadd__``, ``__sub__``, and ``__isub__`` for :class:`~.Mobject` (allowing for notation like ``some_vgroup + some_mobject``) (:pr:`790`)
- Added type hints to several files in the library (:pr:`835`)
- Added some examples to :mod:`~.animation.creation` (:pr:`820`)
- Added some examples to :class:`~.DashedLine` and :class:`~.CurvesAsSubmobjects` (:pr:`833`)
- Added new implementation for text rendered with Pango, :class:`~.MarkupText`, which can be formatted with an HTML-like syntax (:pr:`855`)
- Added Fading in and out examples and deprecation of ``FadeInFromDown`` and ``FadeOutAndShiftDown`` (:pr:`827`)
- Added example for :class:`~.MoveAlongPath` to the docs (:pr:`873`)
- Added ambient rotate for other angles - theta, phi, gamma (:pr:`660`)
- Use custom bindings for Pango (:pr:`878`)
- Added :class:`~.Graph`, a basic implementation for (graph theory) graphs (:pr:`861`)
- Allow for chaining methods when using the new ``.animate`` syntax in :meth:`~.Scene.play` (:pr:`889`)

Bugfixes
========

- Fix doctests in .rst files (:pr:`797`)
- Fix failing doctest after adding ``manim plugin`` subcommand (:pr:`831`)
- Normalize the direction vector in :meth:`~.mobject_update_utils.always_shift` (:pr:`839`)
- Add ``disable_ligatures`` to :class:`~.Text` (via :pr:`804`)
- Make scene caching aware of order of Mobjects (:pr:`845`)
- Fix :class:`~.CairoText` to work with new config structure (:pr:`858`)
- Added missing argument to classes inheriting from :class:`~.Matrix` (:pr:`859`)
- Fixed: ``z_index`` of mobjects contained in others as submobjects is now properly respected (:pr:`872`)
- Let :meth:`~.ParametricSurface.set_fill_by_checkboard` return the modified surface to allow method chaining (:pr:`883`)
- Mobjects added during an updater are added to ``Scene.moving_mobjects`` (:pr:`838`)
- Pass background color to JS renderer (:pr:`876`)
- Small fixes to docstrings. Tiny cleanups. Remove ``digest_mobject_attrs``. (:pr:`834`)
- Added closed shape detection in :class:`~.DashedVMobject` in order to achieve an even dash pattern (:pr:`884`)
- Fix Spelling in docstrings and variables across the library (:pr:`890`)

Other changes
=============

- Change library name to manim (:pr:`811`)
- Docker: use local files when building an image (:pr:`803`)
- Let ffmpeg render partial movie files directly instead of temp files (:pr:`817`)
- ``manimce`` to ``manim`` & capitalizing Manim in readme (:pr:`794`)
- Added flowchart for different docstring categories (:pr:`828`)
- Improve example in module docstring of :mod:`~.animation.creation` + explicitly document buff parameter in :meth:`~.Mobject.arrange` (:pr:`825`)
- Disable CI pipeline for Python 3.6 (:pr:`823`)
- Update URLs in docs (:pr:`832`)
- Move upcoming changelog to GitHub-wiki (:pr:`822`)
- Change badges in readme (:pr:`854`)
- Exclude generated gRPC files from source control (:pr:`868`)
- Added linguist-generated attribute to ``.gitattributes`` (:pr:`877`)
- Cleanup: removed inheritance from ``object`` for some classes, refactor some imports (:pr:`795`)
- Change several ``str.format()`` to ``f``-strings (:pr:`867`)
- Update javascript renderer (:pr:`830`)
- Bump version number to 0.2.0, update changelog (:pr:`894`)
