manim icon indicating copy to clipboard operation
manim copied to clipboard

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

Open behackl opened this issue 2 years ago • 9 comments

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 to manim init
  • [ ] Documenting the new utility in form of a tutorial (or by rewriting the quickstart tutorial)

behackl avatar Apr 23 '22 19:04 behackl

Can I work on this ?

joybh98 avatar Apr 24 '22 08:04 joybh98

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

behackl avatar Apr 24 '22 09:04 behackl

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

joybh98 avatar Apr 26 '22 06:04 joybh98

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

Darylgolden avatar May 04 '22 02:05 Darylgolden

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:

  • manim init should only create a new project and it should have the same dialog as manim new project
  • manim new should still exist but it should only have the manim 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.

Phosphorescentt avatar Jun 11 '22 17:06 Phosphorescentt

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 avatar Jun 11 '22 18:06 Phosphorescentt

@behackl can this issue be closed now?

Phosphorescentt avatar Jul 10 '22 15:07 Phosphorescentt

@behackl can this issue be closed now?

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

behackl avatar Jul 10 '22 15:07 behackl

init should also contain VectorScene and LinearTransformationScene and ThreeDScene and ZoomedScene

MrDiver avatar Dec 10 '23 00:12 MrDiver