Skip to content

Commit 92939cd

Browse files
authored
December releases update
1 parent 62f0147 commit 92939cd

File tree

95 files changed

+3931
-2209
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

95 files changed

+3931
-2209
lines changed

.dockerignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
.git

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 35 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,47 @@
1-
<!---
2-
Thanks for contributing to manim!
3-
**Please ensure that your pull request works with the latest version of manim from this repository.**
4-
You should also include:
5-
1. The motivation for making this change (or link the relevant issues)
6-
2. How you tested the new behavior (e.g. a minimal working example, before/after
7-
screenshots, gifs, commands, etc.) This is rather informal at the moment, but
8-
the goal is to show us how you know the pull request works as intended.
9-
If you don't need any of the optional sections, feel free to delete them to prevent clutter.
10-
-->
11-
12-
## List of Changes
13-
<!-- List out your changes one by one like this:
14-
- Change 1
15-
- Change 2
16-
- and so on..
1+
<!--
2+
Thank you for contributing to manim!
173
18-
Be sure to note your changes in the [changelog](docs/source/changelog.rst) if your
19-
changes warrant it!
4+
Please ensure that your pull request works with the latest
5+
version of manim from this repository.
206
-->
217

228
## Motivation
23-
<!-- Why you feel your changes are required. -->
9+
<!-- Outline your motivation: In what way do your changes improve the library? -->
10+
11+
## Overview / Explanation for Changes
12+
<!-- Give an overview of your changes and explain how they
13+
resolve the situation described in the previous section.
2414
25-
## Explanation for Changes
26-
<!-- How do your changes solve aforementioned problems? -->
15+
For PRs introducing new features, please provide code snippets
16+
using the newly introduced functionality and ideally even the
17+
expected rendered output. -->
18+
19+
## Oneline Summary of Changes
20+
<!-- Please update the lines below with a oneline summary
21+
for your changes. It will be included in the list of upcoming changes at
22+
https://github.com/ManimCommunity/manim/wiki/Changelog-for-next-release -->
23+
```
24+
- Added new feature ... / Fixed bug ... / ... (:pr:`PR NUMBER HERE`)
25+
```
2726

2827
## Testing Status
29-
<!-- Optional, but recommended, your computer specs and what tests you ran with their results, if any -->
28+
<!-- Optional (but recommended): your computer specs and
29+
what tests you ran with their results, if any. This section
30+
is also intended for other testing-related comments. -->
3031

3132
## Further Comments
32-
<!-- Optional, any edits/updates should preferably be written here. -->
33+
<!-- Optional, any further comments regarding your PR
34+
that might be useful for reviewers.. -->
3335

34-
## Acknowledgement
35-
- [ ] I have read the [Contributing Guidelines](https://github.com/ManimCommunity/manim/wiki/Documentation-guidelines-(WIP))
36+
## Acknowledgements
37+
- [ ] I have read the [Contributing Guidelines](https://docs.manim.community/en/latest/contributing.html)
3638

3739
<!-- Once again, thanks for helping out by contributing to manim! -->
40+
41+
42+
<!-- Do not modify the lines below. -->
43+
## Reviewer Checklist
44+
- [ ] Newly added functions/classes are either private or have a docstring
45+
- [ ] Newly added functions/classes have [tests](https://github.com/ManimCommunity/manim/wiki/Testing) added and (optional) examples in the docs
46+
- [ ] Newly added documentation builds, looks correctly formatted, and adds no additional build warnings
47+
- [ ] The oneline summary has been included [in the wiki](https://github.com/ManimCommunity/manim/wiki/Changelog-for-next-release)

.github/workflows/ci.yml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ jobs:
1616
fail-fast: false
1717
matrix:
1818
os: [ubuntu-latest, macos-latest, windows-latest]
19-
python: [3.6, 3.7, 3.8, 3.9]
19+
python: [3.7, 3.8, 3.9]
2020

2121
steps:
2222
- name: Checkout the repository
@@ -119,3 +119,6 @@ jobs:
119119

120120
- name: Run module doctests
121121
run: poetry run pytest --doctest-modules manim
122+
123+
- name: Run doctests in rst files
124+
run: cd docs && pip install -r requirements.txt && poetry run make doctest O=-tskip-manim

.github/workflows/dependent-issues.yml

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,18 @@ name: Dependent Issues
22

33
on:
44
issues:
5+
types:
6+
- opened
7+
- edited
8+
- reopened
9+
pull_request_target:
10+
types:
11+
- opened
12+
- edited
13+
- reopened
14+
- synchronize
515
schedule:
6-
- cron: '0/30 * * * *' # schedule daily check
16+
- cron: '0 0 * * *' # schedule daily check
717

818
jobs:
919
check:

.github/workflows/python-publish.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,5 +47,5 @@ jobs:
4747
with:
4848
upload_url: ${{ steps.create_release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps
4949
asset_path: dist/*.tar.gz
50-
asset_name: manimce-${{ steps.tag.outputs.tag }}.tar.gz
50+
asset_name: manim-${{ steps.tag.outputs.tag }}.tar.gz
5151
asset_content_type: application/gzip

README.md

Lines changed: 18 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,24 @@
22
<a href="https://www.manim.community/"><img src="https://raw.githubusercontent.com/ManimCommunity/manim/master/logo/cropped.png"></a>
33
<br />
44
<br />
5+
<a href="https://pypi.org/project/manim/"><img src="https://img.shields.io/pypi/v/manim.svg?style=flat&logo=pypi" alt="PyPI Latest Release"></a>
56
<a href="http://choosealicense.com/licenses/mit/"><img src="https://img.shields.io/badge/license-MIT-red.svg?style=flat" alt="MIT License"></a>
6-
<a href="https://www.reddit.com/r/manim/"><img src="https://img.shields.io/reddit/subreddit-subscribers/manim.svg?color=orange&label=reddit" alt="Reddit" href=></a>
7-
<a href="https://discord.gg/mMRrZQW"><img src="https://img.shields.io/discord/581738731934056449.svg?label=discord&color=yellow" alt="Discord"></a>
8-
<a href="https://manimce.readthedocs.io/en/latest/"><img src="https://readthedocs.org/projects/manimce/badge/?version=latest" alt="Documentation Status"></a>
9-
<a href="https://hub.docker.com/r/manimcommunity/manim"><img src="https://img.shields.io/docker/v/manimcommunity/manim?color=%23099cec&label=docker%20image" alt="Docker image"> </a>
7+
<a href="https://www.reddit.com/r/manim/"><img src="https://img.shields.io/reddit/subreddit-subscribers/manim.svg?color=orange&label=reddit&logo=reddit" alt="Reddit" href=></a>
8+
<a href="https://twitter.com/manim_community/"><img src="https://img.shields.io/twitter/url/https/twitter.com/cloudposse.svg?style=social&label=Follow%20%40manim_community" alt="Twitter">
9+
<a href="https://discord.gg/mMRrZQW"><img src="https://img.shields.io/discord/581738731934056449.svg?label=discord&color=yellow&logo=discord" alt="Discord"></a>
10+
<a href="https://github.com/psf/black"><img src="https://img.shields.io/badge/code%20style-black-000000.svg" alt="Code style: black">
11+
<a href="https://docs.manim.community/"><img src="https://readthedocs.org/projects/manimce/badge/?version=latest" alt="Documentation Status"></a>
12+
<a href="https://hub.docker.com/r/manimcommunity/manim"><img src="https://img.shields.io/docker/v/manimcommunity/manim?color=%23099cec&label=docker%20image&logo=docker" alt="Docker image"> </a>
13+
<a href="https://pepy.tech/project/manim"><img src="https://pepy.tech/badge/manim/month?" alt="Downloads"> </a>
1014
<img src="https://github.com/ManimCommunity/manim/workflows/CI/badge.svg" alt="CI">
1115
<br />
1216
<br />
1317
<i>An animation engine for explanatory math videos</i>
1418
</p>
15-
1619
<hr />
1720

18-
`manim` is an animation engine for explanatory math videos. It's used to create precise animations programmatically, as demonstrated in the videos of [3Blue1Brown](https://www.3blue1brown.com/).
21+
22+
Manim is an animation engine for explanatory math videos. It's used to create precise animations programmatically, as demonstrated in the videos of [3Blue1Brown](https://www.3blue1brown.com/).
1923

2024
> NOTE: This repository is maintained by the Manim Community, and is not associated with Grant Sanderson or 3Blue1Brown in any way (although we are definitely indebted to him for providing his work to the world). If you would like to study how Grant makes his videos, head over to his repository ([3b1b/manim](https://github.com/3b1b/manim)). This fork is updated more frequently than his, and it's recommended to use this fork if you'd like to use Manim for your own projects.
2125
@@ -30,12 +34,12 @@
3034

3135
## Installation
3236

33-
Manim requires a few dependencies that must be installed prior to using it. Please visit the [documentation](https://manimce.readthedocs.io/en/latest/installation.html) and follow the appropriate instructions for your operating system.
37+
Manim requires a few dependencies that must be installed prior to using it. Please visit the [Documentation](https://docs.manim.community/en/latest/installation.html) and follow the appropriate instructions for your operating system.
3438

3539
Once the dependencies have been installed, run the following in a terminal window:
3640

3741
```bash
38-
pip install manimce
42+
pip install manim
3943
```
4044

4145
## Usage
@@ -65,11 +69,11 @@ manim example.py SquareToCircle -p -ql
6569
```
6670

6771
You should see your native video player program pop up and play a simple scene in which a square is transformed into a circle. You may find some more simple examples within this
68-
[GitHub repository](master/example_scenes). You can also visit the [official gallery](https://manimce.readthedocs.io/en/latest/examples.html) for more advanced examples.
72+
[GitHub repository](master/example_scenes). You can also visit the [official gallery](https://docs.manim.community/en/latest/examples.html) for more advanced examples.
6973

7074
## Command line arguments
7175

72-
The general usage of manim is as follows:
76+
The general usage of Manim is as follows:
7377

7478
![manim-illustration](https://raw.githubusercontent.com/ManimCommunity/manim/master/docs/source/_static/command.png)
7579

@@ -81,11 +85,11 @@ Some other useful flags include:
8185
- `-n <number>` to skip ahead to the `n`'th animation of a scene.
8286
- `-f` show the file in the file browser.
8387

84-
For a thorough list of command line arguments, visit the [documentation](https://manimce.readthedocs.io/en/latest/tutorials/configuration.html).
88+
For a thorough list of command line arguments, visit the [documentation](https://docs.manim.community/en/latest/tutorials/configuration.html).
8589

8690
## Documentation
8791

88-
Documentation is in progress at [ReadTheDocs](https://manimce.readthedocs.io/en/latest/).
92+
Documentation is in progress at [ReadTheDocs](https://docs.manim.community/).
8993

9094
## Help with Manim
9195

@@ -94,9 +98,9 @@ Server](https://discord.gg/mMRrZQW) or [Reddit Community](https://www.reddit.com
9498

9599
## Contributing
96100

97-
Contributions to `manim` are always welcome. In particular, there is a dire need for tests and documentation. For contribution guidelines, please see the [documentation](https://manimce.readthedocs.io/en/latest/contributing.html).
101+
Contributions to Manim are always welcome. In particular, there is a dire need for tests and documentation. For contribution guidelines, please see the [documentation](https://docs.manim.community/en/latest/contributing.html).
98102

99-
This project uses [Poetry](https://python-poetry.org/docs/) for management. You must have poetry installed and available in your environment. You can learn more `poetry` and how to use it at its [Documentation](https://manimce.readthedocs.io/en/latest/installation/for_dev.html).
103+
Most developers on the project use [Poetry](https://python-poetry.org/docs/) for management. You'll want to have poetry installed and available in your environment. You can learn more `poetry` and how to use it at its [documentation](https://docs.manim.community/en/latest/installation/for_dev.html).
100104

101105
## License
102106

docker/Dockerfile

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,16 @@
11
FROM python:3.7-slim
22

3-
ARG MANIM_VERSION=stable
4-
53
RUN apt-get update -qq \
64
&& apt-get install --no-install-recommends -y \
75
ffmpeg \
86
gcc \
9-
git \
107
libcairo2-dev \
118
libffi-dev \
129
pkg-config \
1310
wget
1411

1512
# setup a minimal texlive installation
16-
COPY ./texlive-profile.txt /tmp/
13+
COPY docker/texlive-profile.txt /tmp/
1714
ENV PATH=/usr/local/texlive/bin/x86_64-linux:$PATH
1815
RUN wget -O /tmp/install-tl-unx.tar.gz http://mirror.ctan.org/systems/texlive/tlnet/install-tl-unx.tar.gz && \
1916
mkdir /tmp/install-tl && \
@@ -25,10 +22,13 @@ RUN wget -O /tmp/install-tl-unx.tar.gz http://mirror.ctan.org/systems/texlive/tl
2522
setspace standalone tipa wasy wasysym xcolor xkeyval
2623

2724
# clone and build manim
28-
RUN git clone --depth 1 --branch ${MANIM_VERSION} https://github.com/ManimCommunity/manim.git /opt/manim
25+
COPY . /opt/manim
2926
WORKDIR /opt/manim
3027
RUN pip install --no-cache .
3128

29+
# ensure that ffi bindings are generated
30+
RUN python -c "import pangocairocffi"
31+
3232
# create working directory for user to mount local directory into
3333
WORKDIR /manim
3434
RUN chmod 666 /manim

docker/readme.md

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
# Quick reference
2+
- **Maintained by:** [the Manim Community developers](https://github.com/ManimCommunity/manim)
3+
- **Getting help:** [Manim Documentation](https://docs.manim.community) and [further helpful resources](https://manim.community)
4+
5+
# Supported tags
6+
- `v0.1.1`, `stable`, `latest` -- the latest released version
7+
- `v0.1.0`
8+
- `experimental` -- the most recent version corresponding to [the master branch](https://github.com/ManimCommunity/manim)
9+
10+
# What is Manim?
11+
![logo](https://raw.githubusercontent.com/ManimCommunity/manim/master/logo/cropped.png)
12+
13+
Manim is a Python library for creating mathematical animations [originally created](https://github.com/3b1b/manim) by Grant "3Blue1Brown" Sanderson. The images in this repository correspond to the [community-maintained version of Manim](https://github.com/ManimCommunity/manim).
14+
15+
To get an impression what Manim can be used for, have a look at our [Example Gallery](https://docs.manim.community/en/stable/examples.html).
16+
17+
# How to use this image
18+
## Quick Example
19+
To render a scene `CircleToSquare` in a file `test_scenes.py` contained in your current working directory while preserving your user and group ID, use
20+
```
21+
$ docker run --rm -it --user="$(id -u):$(id -g)" -v "$(pwd)":/manim manimcommunity/manim manim test_scenes.py CircleToSquare -qm
22+
```
23+
24+
## Running the image in the background
25+
Instead of using the "throwaway container" approach sketched above, you can also create a named container that you can also modify to your liking. First, run
26+
```
27+
$ docker run -it --name my-manim-container -v "$(pwd):/manim" manimcommunity/manim /bin/bash
28+
```
29+
to obtain an interactive shell inside your container allowing you to, e.g., install further dependencies (like texlive packages using `tlmgr`). Exit the container as soon as you are satisfied. Then, before using it, start the container by running
30+
```
31+
$ docker start my-manim-container
32+
```
33+
Then, to render a scene `CircleToSquare` in a file `test_scenes.py`, call
34+
```
35+
$ docker exec -it --user="$(id -u):$(id -g)" my-manim-container manim test.py CircleToSquare -qm
36+
```
37+
38+
# Important notes
39+
When executing `manim` within a Docker container, several command line flags (in particular `-p` (preview file) and `-f` (show output file in the file browser)) are not supported.
40+
41+
# Building the image
42+
The docker image corresponding to the checked out version of the git repository
43+
can be built by running
44+
```
45+
docker build -t manimcommunity/manim:TAG -f docker/Dockerfile .
46+
```
47+
from the root directory of the repository.

docs/source/changelog.rst

Lines changed: 39 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,44 +2,73 @@
22
Changelog
33
#########
44

5+
.. contents:: Release history
6+
:depth: 1
7+
:local:
8+
:backlinks: none
9+
10+
11+
****************
12+
Upcoming release
13+
****************
14+
15+
:Date: TBD
16+
17+
Changes for the upcoming release are tracked `in our GitHub wiki <https://github.com/ManimCommunity/manim/wiki/Changelog-for-next-release>`_.
18+
19+
520
******
6-
v0.2.0
21+
v0.1.1
722
******
823

9-
:Date: TBD
24+
:Date: December 1, 2020
1025

1126
Changes since Manim Community release v0.1.0
1227

28+
Plugins
29+
=======
30+
31+
#. Provided a standardized method for plugin discoverability, creation,
32+
installation, and usage. See the :ref:`documentation <plugins>`.
33+
1334
Fixes
1435
=====
1536

1637
#. JsRender is optional to install. (via :pr:`697`).
38+
#. Allow importing modules from the same directory as the input
39+
file when using ``manim`` from the command line (via :pr:`724`).
40+
#. Remove some unnecessary or unpythonic methods from :class:`~.Scene`
41+
(``get_mobjects``, ``add_mobjects_among``, ``get_mobject_copies``),
42+
via :pr:`758`.
43+
#. Fix formatting of :class:`~.Code` (via :pr:`798`).
1744

1845
Configuration
1946
=============
2047

2148
#. Removed the ``skip_animations`` config option and added the
2249
``Renderer.skip_animations`` attribute instead (via :pr:`696`).
23-
2450
#. The global ``config`` dict has been replaced by a global ``config`` instance
2551
of the new class :class:`~.ManimConfig`. This class has a dict-like API, so
2652
this should not break user code, only make it more robust. See the
2753
Configuration tutorial for details.
54+
#. Added the option to configure a directory for external assets (via :pr:`649`).
2855

2956

3057
Documentation
3158
=============
3259

3360
#. Add ``:issue:`` and ``:pr:`` directives for simplifying linking to issues and
3461
pull requests on GitHub (via :pr:`685`).
62+
#. Add a ``skip-manim`` tag for skipping the ``.. manim::`` directive when
63+
building the documentation locally (via :pr:`796`).
3564

3665

3766
Mobjects, Scenes, and Animations
3867
================================
3968

4069
#. The ``alignment`` attribute to Tex and MathTex has been removed in favour of ``tex_environment``.
4170
#. :class:`~.Text` now uses Pango for rendering. ``PangoText`` has been removed. The old implementation is still available as a fallback as :class:`~.CairoText`.
42-
#. **New**: Variations of :class:`~.Dot` have been added as :class:`~.AnnotationDot`
71+
#. Variations of :class:`~.Dot` have been added as :class:`~.AnnotationDot`
4372
(a bigger dot with bolder stroke) and :class:`~.LabeledDot` (a dot containing a
4473
label).
4574
#. Scene.set_variables_as_attrs has been removed (via :pr:`692`).
@@ -50,6 +79,11 @@ Mobjects, Scenes, and Animations
5079
#. Added BraceBetweenPoints (via :pr:`693`).
5180
#. Added ArcPolygon and ArcPolygonFromArcs (via :pr:`707`).
5281
#. Added Cutout (via :pr:`760`).
82+
#. Added Mobject raise not implemented errors for dunder methods and implementations for VGroup dunder methods (via :pr:`790`).
83+
#. Added :class:`~.ManimBanner` for a animated version of our logo and banner (via :pr:`729`)
84+
#. The background color of a scene can now be changed reliably by setting, e.g.,
85+
``self.camera.background_color = RED`` (via :pr:`716`).
86+
5387

5488

5589
******
@@ -169,4 +203,4 @@ Other Changes
169203
#. Cleanup 3b1b Specific Files
170204
#. Rename package from manimlib to manim
171205
#. Move all imports to :code:`__init__`, so :code:`from manim import *` replaces :code:`from manimlib.imports import *`
172-
#. Global dir variable handling has been removed. Instead :code:`initialize_directories`, if needed, overrides the values from the cfg files at runtime.
206+
#. Global dir variable handling has been removed. Instead :code:`initialize_directories`, if needed, overrides the values from the cfg files at runtime.

0 commit comments

Comments
 (0)