Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork7.9k
Added high-level diagrams#30135
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 ourterms of service andprivacy statement. We’ll occasionally send you account related emails.
Already on GitHub?Sign in to your account
Conversation
added high-level diagrams to help people navigate the codebase.
There was a problem hiding this 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 uson gitter for real-time discussion.
For details on testing, writing docs, and our review process, please seethe developer guide
We strive to be a welcoming and open project. Please follow ourCode of Conduct.
Thank you for the potential contribution. Is there a workflow for keeping these markdown files up-to-date? In particular, they include links to specific lines of code, which will change frequently. |
It should be noted that Codeboarding uses LLMs for generating its outputs.Seems like one would have to regularly rerun it to keep the documents up todate, along with extensive review of LLM-generated content. …On Tue, Jun 3, 2025 at 11:42 AM Ruth Comer ***@***.***> wrote: *rcomer* left a comment (matplotlib/matplotlib#30135) <#30135 (comment)> Thank you for the potential contribution. Is there a workflow for keeping these markdown files up-to-date? In particular, they include links to specific lines of code, which will change frequently. — Reply to this email directly, view it on GitHub <#30135 (comment)>, or unsubscribe <https://github.com/notifications/unsubscribe-auth/AACHF6FWTD3MVLGIHSX2J633BW647AVCNFSM6AAAAAB6QDKCQ6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDSMZWGA2DGOBXGA> . You are receiving this because you are subscribed to this thread.Message ID: ***@***.***> |
I was just about to comment something similar. Nice tool, but I think a potentially better way is to link to CodeBoarding as a potential resource to understand the codebase better. Not sure if it is possible to create a direct link? It seems like the idea is not really to run this in CI, which is a bit unfortunate (even without the proofing aspects). Probably, they would benefit from linking to the documentation through Sphinx inventory files to handle line numbers that way. (And then have doc-build use the source link feature.) In that way, one does not have to update the LLM part (plus proofing), and thet will link to the documentation, from which one can find the code. An additional step, but more consistent. |
We do already have inheritance diagrams in the reference docs:https://matplotlib.org/stable/api/artist_api.html and the reference docs already include (version pinned) links back to GH for the source. It looks like these are just stand-alone files? Is there a plan to integrate them into the docs build? |
After a closer look at the generated text, I must second the statement: " I am impressed with AI in topics I do not know much about, but in topics I know about, it is flawed." |
Frankly, the text is pretty poorly written, unhelpful, and in some places just plain wrong (e.g., saying that errorbar is based on Line2D is quite a stretch). |
ivanmilevtues commentedJun 3, 2025 • edited
Loading Uh oh!
There was an error while loading.Please reload this page.
edited
Uh oh!
There was an error while loading.Please reload this page.
Hey all, What you say with the workflow makes a lot of sence, I definetely agree with you that the line references have to be updated whenever change happen - that is why we decided to go into the direction of having the diagrams in VSCode. We are doing the extension right now -screenshot Further I definetely agree with the statements about AI (being unreliable), that is why we are trying to leverage a lot of static analysis for the diagram itself. For the supporting text, do you think it is too short? (This is partially the reason why it can be too vague at times which can lead to over-generations or over-focussing and missing the point). Would love to hear what is your opinion on having the VSCode extension vs having the static (often updated) documentation! |
I believe statically adding AI generated architecture to our docs is the wrong way. If we add something, it must be high-quality and mostly error-free. At least for now, this requires manual curation. OTOH AI tools can be used to dynamically explore the code base. |
I'm going to go ahead and close this for now.If (and a that is a big if) we were going to go the route of adding AI generated summaries to our docs I would expect the tool chain to be open source and wrapped in a sphinx extension not statically generated files (completely leaving aside the quality issue). Digging a bit, it looks like CodeBoarding is a startup that you are associated with@ivanmilevtues (https://github.com/CodeBoarding?q=&type=source&language=&sort= only shows a repo of generated output and it looks like you opened similar PRs to a bunch of projects)? If so I am disappointed about the lack of disclosure about that. With that context this feels less like trying to help the project and more like uncompensated (and un-notified) market/product research. That said, you deserve a better response thanpsf/requests#6958 . |
ivanmilevtues commentedJun 4, 2025 • edited
Loading Uh oh!
There was an error while loading.Please reload this page.
edited
Uh oh!
There was an error while loading.Please reload this page.
Thank you for the response@tacaswell. And thanks to everyone for the feedback, I've already written it down and we will definetly try to refine the explanations for each component! Thanks for also giving feedback that we should disclose the relationship with CodeBoarding. From now on I will also mention it more explicititly. At the moment it is more of an idea and we are still trying to navigate what will be useful for people and we didn't want to seem like a sales team as it is just me and a friend who noticed the problem and checking if we can do something about it :). And again, thank you all! I will be back after sometime with our improved generations, also the github action workflow is something that we will take a look into! |
I love matplotlib, however as many other projects that I love it is quite hard to contribute as the project is big and feels intimidating at the begining. That is why I want to improve this on-boarding (get-to-know) process for all people who want to help the OSS community.
This PR adds auto-generated high-level diagrams and component-level documentation using CodeBoarding, aimed at improving developer onboarding by making it easier to get to know the codebase and lowering the barrier to contribution.
We would love to hear what you think about the generated diagrams — feedback is more than welcome. If you are interested in this, please feel free to reach out to me.