Skip to content

Conversation

@rcurtin
Copy link
Member

@rcurtin rcurtin commented Nov 23, 2024

This PR remakes the homepage of the documentation in a clearer way, following the discussions in #3803.

Here is the built documentation:

(It took a little while to get Jenkins to render that correctly! I am still playing with security policies.)

The basic bits of the overhaul are:

  1. mlpack algorithms and functions are now organized by roughly where they might sit in a data science pipeline (which goes from data loading to preprocessing all the way to deployment). The homepage has a drawn-out SVG (which has a 'narrow' version for mobile devices too) that organizes the documentation in an easily clickable way. The 'landing pages' for each step in the pipeline have where they are in the pipeline at the top of the page.

  2. The sidebar is now a complete page map; every .md file has a corresponding link in the sidebar. The hierarchy of the sidebar matches the pipeline stages above.

  3. The documentation now links to the Youtube videos I recorded some time back. :)

  4. The community page was updated to have the mlpack video chat on the first Monday of every month. And I will actually post about it in #mlpack each month...

  5. I added ci.md, which documents the CI systems we have. There is a lot of hidden knowledge about those, so I tried to write some of it down. I'm sure that will improve over time.

  6. I also added compile.md, a page detailing how you might compile a simple mlpack program, as well as a few other pages about installation, CMake options, and so forth.

  7. A little bit of CSS changes to make the sidebar just a bit wider, because it looks really bad when things wrap. (Also: I would like the sidebar to store the "state" of what's expanded and what isn't, but that will take some ~fairly simple Javascript. I'll get to it at some point, but not for this PR.)

Whenever I add the links above (when the build passes), I'll add a link to each new page or page that I changed significantly.

Feedback appreciated!

@rcurtin
Copy link
Member Author

rcurtin commented Nov 26, 2024

@mlpack-jenkins test this please

@rcurtin
Copy link
Member Author

rcurtin commented Nov 27, 2024

@mlpack-jenkins test this please

@shrit
Copy link
Member

shrit commented Nov 27, 2024

@rcurtin is this ready for review ?

@rcurtin
Copy link
Member Author

rcurtin commented Nov 27, 2024

Let me fix the documentation build... I thought that would be easy but it has taken a few iterations. I should have marked this as a draft initially, I'll do that now until I get it passing.

@rcurtin rcurtin marked this pull request as draft November 27, 2024 17:03
@rcurtin
Copy link
Member Author

rcurtin commented Nov 27, 2024

@mlpack-jenkins test this please

1 similar comment
@rcurtin
Copy link
Member Author

rcurtin commented Nov 27, 2024

@mlpack-jenkins test this please

@shrit shrit marked this pull request as ready for review November 30, 2024 15:52
Copy link
Member

@shrit shrit left a comment

Choose a reason for hiding this comment

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

Looks very good, much better than before.

Here are a couple of things that I have noticed:

  1. The first output is equal to the second one, I expected different results as written above:
    Screenshot 2024-12-02 at 16-02-01

  2. Links to outside of CI (e.g., youtube) are not functional. (Probably this is because it is inside the CI, as we have already discuss it)

  3. I think we can the quick start guide to the start, instead of the middle

  4. I think we can find a better name instead of the C++ API docs.

  5. We can also remove the gray color of the bindings because it looks like a separation bar.

  6. Would be interesting to recall Matrics and data to "Matrices representation in mlpack".

  7. Finally, in the CI page I have noticed that in the docs section we are referring to how to build the docs locally, I think we can keep it for now, but I do not think idealy this should be the place for it, it is better to have a unique page for the docs, as others might be interested contributing.

Screenshot 2024-12-03 at 16-48-12

Overall looks good, we can get it merged when all of these small modifications get resolved. Amazing work

Comment on lines +146 to +147
* the [test program compilation section](doc/user/install.md#compiling-a-test-program)
of the installation documentation,
Copy link
Member

Choose a reason for hiding this comment

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

The sentence is slightly confusing, I can understand because I know what was here, but we maybe we can change it to something like Compiling a test program?

@rcurtin
Copy link
Member Author

rcurtin commented Dec 4, 2024

@mlpack-jenkins test this please

1 similar comment
@rcurtin
Copy link
Member Author

rcurtin commented Dec 4, 2024

@mlpack-jenkins test this please

@rcurtin
Copy link
Member Author

rcurtin commented Dec 4, 2024

  1. The first output is equal to the second one, I expected different results as written above:

They're actually not exactly the same, there is also a backtrace line in the first program output.

  1. Links to outside of CI (e.g., youtube) are not functional. (Probably this is because it is inside the CI, as we have already discuss it)

Right, this had to do with the content security policy that Jenkins was using (more here). I'm still tuning this, but I have a configuration that works now. (It's actually quite insecure, but I am trying to see how much I can lock it down without breaking the documentation build.)

  1. I think we can the quick start guide to the start, instead of the middle

Agree, fixed in 3e28d76.

  1. I think we can find a better name instead of the C++ API docs.

Do you have any suggestions on this one? I thought about it for a while but I haven't come up with anything. I do want to distinguish it from the binding documentation (which is not in C++), so I think we need to keep the C++ term in there.

  1. We can also remove the gray color of the bindings because it looks like a separation bar.

Done in 9cc2ae9.

  1. Would be interesting to recall Matrics and data to "Matrices representation in mlpack".

How about "Data representation in mlpack"? Changed in e4a2bf4.

  1. Finally, in the CI page I have noticed that in the docs section we are referring to how to build the docs locally, I think we can keep it for now, but I do not think idealy this should be the place for it, it is better to have a unique page for the docs, as others might be interested contributing.

The build-docs.sh and test-docs.sh scripts are specifically for local development and CI usage though; a regular mlpack user generally shouldn't use those scripts, because they require a bunch of dependencies. (Plus they can just read the raw markdown if they want or render it in a browser.)

I do agree that we should eventually have a page discussing how to write documentation, what needs to be documented, and how to test it (including these scripts); basically a guide for new contributors. But I didn't write that yet; here I just wanted to write down that these scripts exist and are run in CI.

Overall looks good, we can get it merged when all of these small modifications get resolved. Amazing work

Thanks! It took forever to figure out how to do all the links in the SVGs and everything like that.

@rcurtin rcurtin mentioned this pull request Dec 5, 2024
Copy link
Member

@shrit shrit left a comment

Choose a reason for hiding this comment

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

Looks good to me, and Data representation in mlpack works 💯

Copy link
Contributor

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

Second approval provided automatically after 24 hours. 👍

@rcurtin
Copy link
Member Author

rcurtin commented Dec 20, 2024

Sorry this sat for so long, but I got the documentation build to pass (still have not cleaned up that job yet) so let's go ahead and merge.

@rcurtin rcurtin merged commit c8eb3dc into mlpack:master Dec 20, 2024
17 of 20 checks passed
@rcurtin rcurtin deleted the redo-docs branch December 20, 2024 18:36
@rcurtin rcurtin restored the redo-docs branch December 22, 2024 14:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants