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

DOC: Update page to note installation for ninja library #29083

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

Conversation

jimmyshah
Copy link

@jimmyshah jimmyshah commented Nov 5, 2024

PR summary

At the sprints for PyData NYC, as I was setting up the repo for local development, I ran into an issue with installing ninja directly from the dev requirements file. After chatting with @story645, she suggested I update the documentation and make a separate section to make external dependency on ninja more clear.

This PR changes the docs page to add a new section for the ninja external dependency, and removes it from the Python section. I also added ninja to the list of external dependencies in the documentation.

PR checklist

Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for opening your first PR into Matplotlib!

If you have not heard from us in a week or so, please leave a new comment below and that should bring it to our attention. Most of our reviewers are volunteers and sometimes things fall through the cracks.

You can also join us on gitter for real-time discussion.

For details on testing, writing docs, and our review process, please see the developer guide

We strive to be a welcoming and open project. Please follow our Code of Conduct.

@jimmyshah jimmyshah changed the title Update page to note installation for ninja library DOC: Update page to note installation for ninja library Nov 5, 2024
@github-actions github-actions bot added the Documentation: devdocs files in doc/devel label Nov 5, 2024
Copy link
Member

@story645 story645 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The big thing I'm being nitpicky about is the order of bullets b/c ninja is mandatory and doc build dependencies not so much

@@ -212,7 +212,7 @@ Additionally, the following non-Python dependencies must also be installed local

* :ref:`c++ compiler<compile-dependencies>`
* :ref:`documentation build dependencies <doc-dependencies-external>`

* :ref:`ninja <ninja-dependencies>`
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can you make this the first thing in the list since you need ninja before installing c++ -> basically mirroring the order in the dependencies file

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@story645 done!

doc/install/dependencies.rst Outdated Show resolved Hide resolved
@ksunden
Copy link
Member

ksunden commented Nov 7, 2024

I think my gut reaction is that Ninja is not special enough its own section here. I will acknowledge that it is in a bit of an odd place in that it is really an external (non-python) dependency, but they happen to package it on pypi, which is sometimes the most convenient place for Python users to get it.

My current leaning would be to put it in the "Compilers" section (perhaps with a section rename to e.g. "Compilers and external build tools" or similar) as really that is what it is.

@story645
Copy link
Member

story645 commented Nov 7, 2024

My current leaning would be to put it in the "Compilers" section (perhaps with a section rename to e.g. "Compilers and external build tools" or similar) as really that is what it is.

@tacaswell suggested similar, only reason I suggested different section is b/c the compilers section is so rich w/ c++ compiler information. Which maybe:

  • Compilers and external build tools
    • compilers
    • ninja

But also if we're running that away with it, if @jimmyshah doesn't updated in a few days than I may just add a commit to this PR that makes those changes.

@jimmyshah
Copy link
Author

Apologies for the delay here, just catching up on this now. I'm having a little bit of trouble following the conversation:

If @story645 wants to push this through, also totally fine by me. I can try seeing this through as well, whatever works!

@story645
Copy link
Member

story645 commented Nov 19, 2024

It's the one you linked to, those are the tools for building compiled extensions. And would much prefer that you do it if you're up for it!

@jimmyshah
Copy link
Author

I implemented the feedback from the conversation above, let me know if I can do anything else. Thank you for guiding me through the PR @story645!

@jimmyshah jimmyshah requested a review from story645 November 21, 2024 03:37
Copy link
Member

@story645 story645 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

minor nits to take advantage of sphinx crosslinking, thanks for your patience with this

@@ -210,10 +210,10 @@ Additionally, the following non-Python dependencies must also be installed local

.. rst-class:: checklist

* :ref:`ninja <ninja-dependencies>`
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
* :ref:`ninja <ninja-dependencies>`

Don't need this anymore since now it's in the compilers section that's linked out to below

@@ -210,10 +210,10 @@ Additionally, the following non-Python dependencies must also be installed local

.. rst-class:: checklist

* :ref:`ninja <ninja-dependencies>`
* :ref:`c++ compiler<compile-dependencies>`
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
* :ref:`c++ compiler<compile-dependencies>`
* :ref:`compile-build-dependencies`

you can just let the section title autofill

as a `pre-built binary <https://github.com/ninja-build/ninja/releases>`_ or from a `package manager <https://github.com/ninja-build/ninja/wiki/Pre-built-Ninja-packages>`_ or bundled with Meson. Ninja may also be installed via ``pip`` if
otherwise not available.

.. _compile-dependencies:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
.. _compile-dependencies:
.. _compile-dependencies:
Compilers
^^^^^^

make it a subsection

Compilers and external build tools
----------------------------------

.. _ninja-dependencies:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
.. _ninja-dependencies:

cross linking doesn't work without a heading

@@ -240,10 +237,17 @@ means that the dependencies must be explicitly installed, either by :ref:`creati
- `NumPy <https://numpy.org>`_ (>= 1.22). Also a runtime dependency.


.. _compile-dependencies:
Compilers and external build tools
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Compilers and external build tools
.. _compile-build-dependencies
Compilers and external build tools

add the cross ref that can be picked up by the bullet

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Documentation: devdocs files in doc/devel
Projects
Status: Waiting for author
Development

Successfully merging this pull request may close these issues.

3 participants