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 newtomanim 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 initshould only create a new project and it should have the same dialog asmanim new project -
manim newshould still exist but it should only have themanim new scenefunctionality 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