manim
manim copied to clipboard
CLI: `manim init` vs `manim new` + documentation!
Enhancement proposal
The dialog for creating a new project spawned using our CLI with manim new
is actually pretty cool -- but unfortunately more or less completely undocumented. This should be changed, for example by rewriting the project creation part of the quickstart tutorial.
Moreover, I am not quite sure why we have both manim new
and manim init
, which seems to do a pretty similar thing.
- [x] Deprecation of
manim new
+ moving functionality tomanim init
- [ ] Documenting the new utility in form of a tutorial (or by rewriting the quickstart tutorial)
Can I work on this ?
Can I work on this ?
Sure. After sleeping over it, I think the command that should remain is manim init
(in resemblance to git init
, and similar CLI scripts), so the first step would probably be a PR that
- moves the functionality from
manim new
tomanim init
, - and issues a deprecation warning for
manim new
.
Removing manim new
, and rewriting the documentation can then be done in a later PR.
@behackl so if I understand correctly, first you want me to work on the command first, then the documentation right ?
@behackl so if I understand correctly, first you want me to work on the command first, then the documentation right ?
I'm not @behackl, but that's how I would interpret his comment.
I think the command that should remain is
manim init
(in resemblance togit init
, and similar CLI scripts), so the first step would probably be a PR that* moves the functionality from `manim new` to `manim init`, * and issues a deprecation warning for `manim new`.
Removing
manim new
, and rewriting the documentation can then be done in a later PR.
I think it still makes sense for manim new
to exist but with different functionality. manim new
lets you decide whether you want to create a new project, or a new scene, the latter of which shouldn't be under manim init
. If it were, we would have to write something like manim init new-scene
which is a but cumbersome and doesn't make 100% sense in my mind.
I propose instead that both init
and new
stay, but we move some functionality around:
-
manim init
should only create a new project and it should have the same dialog asmanim new project
-
manim new
should still exist but it should only have themanim new scene
functionality that currently exists
This allows us to give manim init
better functionality whilst also keeping manim new scene
or just manim new
which seems like a command that could be extended to generate more boilerplate code as required.
After more consideration, it does make more sense to just move all the current functionality from manim new
to manim init
, but I do think there is scope to keep manim new
around for generating boilerplate code.
@behackl can this issue be closed now?
@behackl can this issue be closed now?
I've edited the issue description, there is still work to be done. :-)
init should also contain VectorScene
and LinearTransformationScene
and ThreeDScene
and ZoomedScene