Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rewrite installation instructions #3930

Open
wants to merge 6 commits into
base: main
Choose a base branch
from

Conversation

JasonGrace2282
Copy link
Member

@JasonGrace2282 JasonGrace2282 commented Sep 2, 2024

#3501 removed the ffmpeg dependency - this meant that our installation docs could be drastically simplified. This an attempt to do that. Specifically

  • Merges macOS and Windows installation instructions into one
  • Leaves Optional Dependency stuff in their own file depending on the system. EDIT: They're now in tabs - see behackl's comment

Further improvement ideas welcome!

Also closes #3864

https://manimce--3930.org.readthedocs.build/en/3930/installation/local.html

@JasonGrace2282 JasonGrace2282 added the documentation Improvements or additions to documentation label Sep 2, 2024
@JasonGrace2282 JasonGrace2282 added this to the v0.19.0 milestone Sep 2, 2024
@behackl
Copy link
Member

behackl commented Oct 20, 2024

I wonder whether we should collapse the installation instructions for Windows / MacOS / Linux back onto one single page and make use of code tabs https://sphinx-design.readthedocs.io/en/furo-theme/tabs.html#tabbed-code-examples to switch out the respective instructions?

With all the externally managed Python environments around it might also be worth considering just recommending an installation via uv; uv tool install manim. This would, however, probably increase friction as users would then look up the path to the tool env and feed that into their IDEs ... 🤔

@JasonGrace2282
Copy link
Member Author

JasonGrace2282 commented Oct 20, 2024

I wonder whether we should collapse the installation instructions for Windows / MacOS / Linux back onto one single page and make use of code tabs https://sphinx-design.readthedocs.io/en/furo-theme/tabs.html#tabbed-code-examples to switch out the respective instructions?

Just took a look and it looks amazing! Definitely agree with using tabs for different operating systems.

With all the externally managed Python environments around it might also be worth considering just recommending an installation via uv; uv tool install manim. This would, however, probably increase friction as users would then look up the path to the tool env and feed that into their IDEs ... 🤔

The idea of just uvx manim and calling it a day does seem pretty cool, but I agree users might have trouble linking the uv tool environment to their IDE. I think a better approach might be to just tell users to do something like

# I wonder what python will be chosen if the user doesn't have python
uv init project-name
cd project-name
uv add manim
uv run manim -p ...

And then most IDE's will recognize that a .venv folder exists in the current directory. Not as clean as a simple uv tool install manim, but it avoids that pain point.

Or we could just not use uv :)

@JasonGrace2282
Copy link
Member Author

I just pushed a commit changing the recommendation to uv, would be glad to hear thoughts.

@behackl
Copy link
Member

behackl commented Nov 17, 2024

I very much like what you have done here, thank you for your efforts!

After some more thinking, there are some details I would change (I can push a commit -- or a separate branch for a 1:1 comparison):

  • I like uv being used, a lot -- in particular as installing it is very straightforward on all of our platforms.
  • I think the best practice that people should follow when creating manim projects is creating a local virtual environment to which they add manim as a dependency. Basically: uv init my-manim-projects && cd my-manim-projects && uv add manim. As long as we do not officially support 3.13, we will need to recommend pinning the python version to, say, 3.12. Installing manim as a global tool (or generally, installing it without using uv) can be recommended further down on the page.
  • I'd shorten the optional dependencies section even further, just recommand MikTeX for Windows, MacTeX for MacOS, and texlive via the system's package manager for linux.
  • The section on Conda should be rewritten to include a mention to homebrew too; maybe "Alternate System Package Managers" or so.

But all in all, I definitely agree that this sort of unified set of instructions is the way to go. We should look into setting up redirects from the old /windows, /linux, /macos pages to the new /local (or /pip?) page, otherwise we will break a lot of static guides.

@JasonGrace2282
Copy link
Member Author

Feel free to push a commit, I probably won't be able to work on this PR until next weekend.
I also agree with setting up redirects, but I'm not quite sure how to do it (I don't think we can change the nginx configuration for readthedocs?)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation
Projects
Status: 🆕 New
Development

Successfully merging this pull request may close these issues.

Improvement on the python-dev version
2 participants