dmlc / dlpack

common in-memory tensor structure
https://dmlc.github.io/dlpack/latest
Apache License 2.0
905 stars 133 forks source link

Add Sphinx to build documentation for DLPack #90

Closed tirthasheshpatel closed 2 years ago

tirthasheshpatel commented 2 years ago

Hi everyone,

I am Tirth, an intern at Quansight Labs. I will be working on DLPack under the mentorship of @mattip to add documentation, tests, and contributing bug-fixes/features to other packages that use DLPack (e.g. NumPy, CuPy) and DLPack itself.

This PR introduces Sphinx as a documentation tool for DLPack. It uses the Breathe extension to parse Doxygen output (because Sphinx doesn't directly parse C/C++). The new documentation uses the PyData Sphinx Theme (adopted by several projects in the data science community). To keep the diff minimal, I didn't change the default configuration but it can be changed later to add sidebars, logos, social media links, etc. This PR also adds a small CI script to build docs (just to test if Make and CMake changes work properly).

I have deployed the documentation here for testing. In a follow-up PR, we can add a script to deploy the docs on gh-pages branch of the main repo. Then we can start populating the docs with examples, tutorials, list of projects that use DLPack, etc.

I would appreciate your feedback and thoughts on this PR, thanks!

cc @rgommers

rgommers commented 2 years ago

Thanks @tirthasheshpatel, this looks like a great start.

@tqchen & others, allow me to give some context. We recently integrated DLPack support in NumPy and upgraded support in PyTorch. There were some loose ends there. And from all the discussions on this repo and on https://github.com/data-apis/array-api there is a lot to do in terms of docs, integration testing and possible new features & investigations/prototypes for DLPack itself. So some dedicated attention seemed warranted.

Normally an internship would not be my first thought, since DLPack is quite a tricky project with a lot of stakeholders. However @tirthasheshpatel is already a SciPy maintainer and has done some excellent work there, so I am confident he can make some very nice contributions here. He will have almost 4 months to work on all of this, and on bugs/tests/upgrades in NumPy and other libraries.

tirthasheshpatel commented 2 years ago

Thanks for the reviews @driazati, @denise-k, @junrushao1994! I think I have addressed all the comments. Let me know if the changes look good!

mattip commented 2 years ago

Will this be hosted via github pages?

tirthasheshpatel commented 2 years ago

Will this be hosted via github pages?

That's the plan to host docs initially. Right now, I haven't added anything to do that. I can add it here if the reviewers are happy with it. Otherwise, it can also be done in a follow-up PR.

edgarriba commented 2 years ago

Will this be hosted via github pages?

github pages seems the most reasonable for now

tqchen commented 2 years ago

Thanks @tirthasheshpatel @denise-k @driazati @junrushao1994 @edgarriba !