dmlc / dgl

Python package built to ease deep learning on graph, on top of existing DL frameworks.
http://dgl.ai
Apache License 2.0
13.4k stars 3k forks source link

[doc] setup new doc build service #7461

Open Rhett-Ying opened 3 months ago

Rhett-Ying commented 3 months ago

🔨Work Item

IMPORTANT:

Project tracker: https://github.com/orgs/dmlc/projects/2

Description

Due to security issue, I've upgraded the OS of doc build server(It's based on https://about.readthedocs.com/) from ubuntu18.04 to ubuntu20.04. After upgrade, some packages are missing. So the doc build server is down: http://doc-build.dgl.ai/projects/dgl/builds/.

This is a good chance to setup a new doc build server with following improvements:

  1. we hard coded here and there in previous doc build server.
  2. mxnet/TF could be deprecated.
  3. If it's not easy to maintain multiple previous versions, we could skip some of them. just keep the latest and stable versions only.

Depending work items or issues

pyynb commented 3 months ago

now most open-source software developers use GitHub Docs or Read the Docs to deploy their docs. GitHub Docs is easier to build and deploy, but it does not support multiple versions and cannot automatically build from the latest code. Read the Docs, on the other hand, can do these things, but it is more difficult to deploy. (see https://docs.google.com/document/d/1hVal-Ywn2AuTh0OfhHG5EbyUHJEbyLZ70A4nx4QQ0P0/edit?usp=sharing for details.)

Rhett-Ying commented 3 months ago

FYI. dgl.ai is powered by github + jekyll: https://github.com/dglai/dglai.github.io.

Rhett-Ying commented 3 months ago

@pyynb please clarify more on below aspects.

  1. not easy to deploy for read_the_docs. please elaborate more about this. such as dedicated build server? website binding?
  2. for github docs, does it support current built docs of DGL? How would it look like? please add links for the example projects so that we could catch a glimpse of them.
pyynb commented 3 months ago

@pyynb please clarify more on below aspects.

  1. not easy to deploy for read_the_docs. please elaborate more about this. such as dedicated build server? website binding?

Jekyll is easy to get started with, and many beginners use it to build their personal blogs. So what I mean here is that Read the Docs might not be as easy to learn as Jekyll. In terms of build server stability and website binding, they are both excellent.

  1. for github docs, does it support current built docs of DGL? How would it look like? please add links for the example projects so that we could catch a glimpse of them.

yes, github pages support current built docs of DGL. However, GitHub Pages is just a tool for displaying static web pages. To generate the web pages, we still need support from tools like Jekyll or Sphinx. react uses github pages(https://react.dev/learn)

pyynb commented 3 months ago

Transplanting the current doc build service to ReadTheDocs is simple, but ReadTheDocs doesn't have sufficient resources to build DGL (even with paid plans, the enterprise plan at $250/month only provides 7GB of memory). However, GitHub Actions has enough resources to build DGL(if we pay). Therefore, we have two options:

1.Build DGL on GitHub Actions, then set up a webhook to automatically upload the built resources to ReadTheDocs, and build the docs and display it in ReadTheDocs. 2.Build both DGL and the docs on GitHub Actions, and then upload the results to GitHub Pages for display.