ManimCommunity / manim

A community-maintained Python framework for creating mathematical animations.
https://www.manim.community
MIT License
19.96k stars 1.48k forks source link

CLI: `manim init` vs `manim new` + documentation! #2695

Open behackl opened 2 years ago

behackl commented 2 years ago

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.

joybh98 commented 2 years ago

Can I work on this ?

behackl commented 2 years ago

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

Removing manim new, and rewriting the documentation can then be done in a later PR.

joybh98 commented 2 years ago

@behackl so if I understand correctly, first you want me to work on the command first, then the documentation right ?

Darylgolden commented 2 years ago

@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.

Phosphorescentt commented 2 years ago

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` 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:

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.

Phosphorescentt commented 2 years ago

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.

Phosphorescentt commented 2 years ago

@behackl can this issue be closed now?

behackl commented 2 years ago

@behackl can this issue be closed now?

I've edited the issue description, there is still work to be done. :-)

MrDiver commented 7 months ago

init should also contain VectorScene and LinearTransformationScene and ThreeDScene and ZoomedScene