diff --git a/docs/source/changelog/0.5.0-changelog.rst b/docs/source/changelog/0.5.0-changelog.rst new file mode 100644 index 0000000000..fec292f327 --- /dev/null +++ b/docs/source/changelog/0.5.0-changelog.rst @@ -0,0 +1,237 @@ +Contributors +============ + +A total of 33 people contributed to this +release. People with a '+' by their names authored a patch for the first +time. + +* Abel Aebker + +* Abhijith Muthyala +* AntonBallmaier + +* Aron +* Benjamin Hackl +* Bogdan Stăncescu + +* Darylgolden +* Devin Neal +* GameDungeon + +* Hugues Devimeux +* Jason Villanueva +* Kapil Sachdeva +* KingWampy +* Lionel Ray + +* Mark Miller +* Mohammad Al-Fetyani + +* Naveen M K +* Niklas Dewally + +* Oliver + +* Roopesh + +* Seb Pearce + +* aebkea + +* friedkeenan +* hydrobeam + +* kolibril13 +* tfglynn + + + +The patches included in this release have been reviewed by +the following contributors. + +* Abel Aebker +* Abhijith Muthyala +* Benjamin Hackl +* Bogdan Stăncescu +* Devin Neal +* Hugues Devimeux +* Jason Villanueva +* Kapil Sachdeva +* KingWampy +* Leo Torres +* Lionel Ray +* Mark Miller +* Mohammad Al-Fetyani +* Naveen M K +* Oliver +* vector67 + +Pull requests merged +==================== + +A total of 53 pull requests were merged for this release. + +Highlight +--------- + +* `#1075 `__: Add OpenGL Renderer + Adds an OpenGLRenderer, OpenGLCamera, OpenGL-enabled Mobjects, and a `--use_opengl_renderer` flag. When this flag is passed, you can pass the `-p` flag to preview animations, the `-w` flag to generate video, and the `-q` flag to specify render quality. If you don't pass either the `-p` or the `-w` flag, nothing will happen. Scenes rendered with the OpenGL renderer must *only* use OpenGL-enabled Mobjects. +New feature +----------- + +* `#1037 `__: Added new fade and transform animations (:class:`~.TransformMatchingShapes`, :class:`~.TransformMatchingTex`, :class:`~.FadeTransform`) from 3b1b/manim + Added new Fade animation: :class:`~FadeOutToPoint` + Added :class:`~FadeTransform` and :class:`~FadeTransformPieces` for transforming mobjects and submobjects with a fade + Added :class:`~TransformMatchingShapes` and :class:`~TransformMatchingTex` for transforming mobjects and tex that have matching parts +* `#1097 `__: Added 3D Mobject :class:`~.Dot3D` + +* `#1074 `__: Added jupyter media_width option to the config + +* `#1107 `__: Added :class:`~.Unwrite` animation class to complement :class:`~.Write` + Added :class:`Unwrite` which inherits from :class:`~.Write`. It automatically reverses the animation of :class:`~.Write` by passing the reversed rate function, but it also takes an additional boolean parameter `reverse` which, if `False`, renders the animation from left to right (assuming text oriented in the usual way), but if `True`, it renders right to left. +* `#1085 `__: Added :class:`~.Angle` and :class:`~.RightAngle` for intersecting lines + :class:`~.Angle` and :class:`~.RightAngle` both take two lines as input. If they intersect, or share a common vertex, an angle is drawn between them. Users can customize the look of the angle and also use a dotted right angle. +Enhancement +----------- + +* `#1144 `__: Improved quality of GIFs + +* `#1157 `__: Refresh triangulation on call to :meth:`~.OpenGLVMobject.apply_points_function` + Rotate called apply_points_function, which was previous not subclassed by OpenGLMobject - now it is. Then, the vertex normals can be updated too. + + Additionally, the old_points matrix would change after rotating, making the old points / new points test irrelevant. This is addressed with a .copy call. +* `#1151 `__: Added parametric function support to :class:`OpenGLSurface` + +* `#1139 `__: In-Code `config["preview"]` Support + +* `#1123 `__: Added caching, skipping, and user-specified background colors to the OpenGL renderer + OpenGL play logic has been improved to support caching and skipping with `-n` argument ( it is now similar to Cairo play logic). A random bug was fixed in OpenGLSurface and OpenGL background color can now be changed via `background_color` argument. +* `#1118 `__: Allow passing animation arguments with .animate syntax + Users will now be able to do things like `obj.animate(run_time=2).method(arg)` if they want to specify animation arguments for an individual `.animate` call, and can still not specify any arguments like `obj.animate.method(arg)`. + + Passing animation arguments is only allowed directly after `.animate` is accessed, if passed elsewhere then a `ValueError` is raised. +* `#718 `__: Rotating the numbers in y axis + In Axes, the y axis will be rotated 90deg but the numbers are + also rotated and shouldn't be. Fixes this issue. +* `#1070 `__: Raise FileNotFoundError when unable to locate the .cfg file specified via `--config_file` + Raising the error will stop script execution and let the user know that there are problems with the `--config_file` location instead of reverting back to the default configuration. +Bug +--- + +* `#1193 `__: Fixed using :class:`Animation`s without a child :class:`~.Mobject` in :class:`~.AnimationGroup` + `AnimationGroup` may now take `Animation` objects which do not have a child `Mobject`, such as `Wait`. +* `#1170 `__: Fixed minor SVG parsing bugs + +* `#1159 `__: Added support for multiple transforms in the same SVG element + +* `#1156 `__: Fixed :class:`~.DrawBorderThenFill` to support OpenGL and improved type hints for some functions + Fixed a bug in :class:`~.DrawBorderThenFill` that prevented :class:`~.Write` animations from working with :class:`~.OpenGLVMobjects` and slightly improved type hints for some animation functions to include :class:`~.OpenGLVMobject`. +* `#1134 `__: Fixed the `-a` flag. + The `-a`/`--write-all` flag was broken. When used, it would cause Manim to crash just after beginning to render the second scene. +* `#1115 `__: Fixed bugs in :class:`~.OpenGLMobject` and added :class:`ApplyMethod` support + Fixed undefined variables and converted :class:`Mobject` to :class:`OpenGLMobject`. Also, fixed assert statement in :class:`ApplyMethod`. +* `#1092 `__: Refactored coordinate_systems.py, fixed bugs, added :class:`~.NumberPlane` test + The default behavior of :meth:`~.Mobject.rotate` is to rotate about the center of :class:`~.Mobject`. :class:`~.NumberLine` is symmetric about the point at the number 0 only when ``|x_min|`` == ``|x_max|``. Ideally, the rotation should coincide with + the point at number 0 on the line. + + Added a regression test and additionally fixed some bugs introduced in :pr:`718`. +* `#1078 `__: Removed stray print statements from `__main__.py` + Uses rich's print traceback instead and fixes an issue in printing the version twice when `manim --version` is called. +* `#1086 `__: Fixed broken line spacing in :class:`~.Text` + The `line_spacing` kwarg was missing when creating :class:`Text` Mobjects; this adds it. +* `#1083 `__: Corrected the shape of :class:`~.Torus` + :class:`Torus` draws a surface with an elliptical cross-section when `minor_radius` is different from 1. This PR ensures the cross-section is always a circle. +Deprecation +----------- + +* `#1124 `__: Deprecated :class:`ShowCreation` in favor of :class:`Create` + 1. Deprecated :class:`ShowCreation` in favor of :class:`Create` across the library with the exception of the `show_creation` boolean variable `vector_space_scene.py` + 2. Added a deprecation warning in the original :class:`ShowCreation` class. +* `#1110 `__: Deprecated SmallDot + OpenGLSmallDot + `SmallDot` isn't necessary and a deprecation warning will be raised. This will be removed in a future release. +Documentation +------------- + +* `#1114 `__: Added examples for :class:`~.Ellipse`, :class:`~.Polygon`, :class:`~.RegularPolygon`, :class:`~.Triangle` and :class:`~.RoundedRectangle` + +* `#1195 `__: Removed SmallDot from example + +* `#1130 `__: Added pre-commit to run black and flake8, updated contributing documentation accordingly + +* `#1138 `__: Moved previous version changelogs to separate files; Added a Script to generate future changelogs + This script quickly generates a changelog for whoever is making the release. +* `#1190 `__: Added note in contributing guide to read the latest version of the documentation + +* `#1188 `__: Added sounds example to docs + +* `#1165 `__: Added documentation for installing Manim on Colab + +* `#1128 `__: Added examples for :class:`~.DashedLine`, :class:`~.TangentLine`, :class:`~.Elbow`, :class:`~.Arrow`, :class:`~.Vector`, :class:`~.DoubleArrow` + +* `#1177 `__: Replace links to the latest version of the documentation to the stable version + +* `#1077 `__: Added details to :func:`~.Mobject.get_critical_point` + +* `#1154 `__: Fixed some typing hints. (ints to floats) + +* `#1036 `__: Added :class:`~.SurroundingRectangle` to the example gallery + +* `#1103 `__: Added documentation and examples for Square, Dot, Circle and Rectangle + +* `#1101 `__: Added documentation to :class:`~.Mobject` + Methods for which documentation was added or improved: + - :meth:`~.reset_points` + - :meth:`~.init_colors` + - :meth:`~.generate_points` + - :meth:`~.add` + - :meth:`~.add_to_back` + - :meth:`~.remove` + - :meth:`~.copy` + - :meth:`~.update` + - :meth:`~.get_time_based_updaters` + - :meth:`~.has_time_based_updater` + - :meth:`~.get_updaters` + - :meth:`~.add_updater` + - :meth:`~.remove_updater` + - :meth:`~.clear_updaters` + - :meth:`~.match_updaters` + - :meth:`~.suspend_updating` + - :meth:`~.resume_updating` + - :meth:`~.apply_to_family` + - :meth:`~.shift` + - :meth:`~.scale` + - :meth:`~.add_background_rectangle` +* `#1088 `__: Added new svg files to documentation and imports + In particular, SVGPathMobject, VMobjectFromPathstring, and the style_utils functions to manim's namespace. +* `#1076 `__: Improve documentation for GraphScene + Updated `coords_to_point` and `point_to_coords` under `manim/scene/graph_scene.py` as the dosctring of each function confusingly described the opposite of what it is supposed to do. +Release +------- + +* `#1073 `__: Removed "one line summary" from PULL_REQUEST_TEMPLATE.md + +Testing +------- + +* `#1160 `__: Enable CI testing for OpenGL + +* `#1100 `__: Rewrote test cases to use sys.executable in the command instead of "python" + Tests would fail due to `capture()` not spawning a subshell in the correct environment, so when python was called, the test would be unable to find necessary packages. +* `#1079 `__: Removed the hardcoded value, `manim`, in `test_version.py` + +Infrastructure +-------------- + +* `#1187 `__: Add CodeCov to Github Workflow + +* `#1166 `__: CI: Use poetry's cache dir rather than pip + +* `#1071 `__: Enable pytest-cov based code coverage + - Include pytest-cov as a python module as part of developer dependencies + - In updating poetry to include pytest-cov, manimpango moved from version 0.2.3 to 0.2.4, and libpango1.0-dev needed to be installed in Ubuntu. + - Add to the CI workflow (`ci.yml`) to create and upload test coverage. +Maintenance +----------- + +* `#1167 `__: Merge :class:`~.OpenGLMobject` and :class:`~.Mobject` + +* `#1164 `__: Fixed single PEP8 style in `cairo_renderer.py` + +* `#1140 `__: Flake8 Compat & Code Cleanup + +* `#1019 `__: Refactored :meth:`~.Scene.play` + - Removed the _**three**_ decorators of :meth:`~.Scene.play`, in particular: caching logic and file writer logic are now included within :meth:`~.Scene.play` (it wasn't possible before, because `scene.wait` and `scene.play` were two different things). + - Added `is_static_wait` attributes to Wait. (<=> if wait is a frozen frame). + - Renamed and moved `scene.add_static_frame` to `renderer.freeze_current_frame`. + - Now when calling play without animation, it raises `ValueError` instead of just a warning. + - Fixed :pr:`874` by modfying `renderer.update_skipping_status` + - `renderer` starts the animation with `scene.begin_animations` (`scene.compile_animation_data` used to do this) + - The run time and the time progression generation is now done in `scene.play_internal` although it'd make more sense that renderer processes it later. + - Added a bunch of cool tests thanks to mocks, and thanks to the new syntax `scene.render` diff --git a/pyproject.toml b/pyproject.toml index 6191e988b6..79de1d7482 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "manim" -version = "0.4.0" +version = "0.5.0" description = "Animation engine for explanatory math videos." authors = ["The Manim Community Developers","3b1b "] license="MIT"