-
-
Notifications
You must be signed in to change notification settings - Fork 34.7k
build, doc: use new api doc tooling #57343
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
base: main
Are you sure you want to change the base?
Conversation
|
Review requested:
|
77ede22 to
3423c21
Compare
3423c21 to
451f8a7
Compare
cf2609b to
a3ce99d
Compare
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #57343 +/- ##
==========================================
+ Coverage 89.74% 89.76% +0.01%
==========================================
Files 675 675
Lines 204642 204642
Branches 39322 39326 +4
==========================================
+ Hits 183657 183689 +32
+ Misses 13257 13242 -15
+ Partials 7728 7711 -17 🚀 New features to boost your workflow:
|
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
ovflowd
left a comment
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.
This is the result of many months of arduous work between many awesome folks, including @flakey5 @AugustinMauroy @araujogui @ovflowd @avivkeller and others.
I'm so proud of what we are achieving here and this is a huge step towards a modern tooling and a revamped API docs within Node.js
Approving, as I believe this is ready!
This comment was marked as resolved.
This comment was marked as resolved.
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.
RSLGTM because it is hard to review and outside of my comfort zone.
|
I'm really hoping we don't end up landing this as semver-major – also there seems to be a consensus that this PR is very unlikely to be breaking. My preferred outcome would be that we land nodejs/doc-kit#595, include it in this PR, and the additional keys can be introduced later in follow up PRs. |
|
Sorry for the digression.
Unfortunately this is imprecise. The order matters whenever it's processed by JavaScript. Essentially: It's a valid JSON document. When parsed in JS (and possibly everywhere), it would result into: Changing the order of keys mostly does not matter. I don't think it matters in this case anyway, but please check for duplicates. I don't think adding new properties is a breaking change either (removing would be). I would prefer them not be there unless strictly needed (as to reduce the surface area). |
|
That's a good point. Although as you said correctly, doesn't apply here 😅 Edit: To be clear, I stand corrected by Matteo, he's technically correct and corrected my previous statement. I just don't think that in this case such issue could happen here. |
|
No it does apply, in the test file we have And FWIW I definitely agree that the current JSON output is in a less than ideal, and a reform would be welcome – but in a follow up semver-major PR. |
|
I wanted to clarify a few points regarding the JSON structure and why the ordering has changed. First, it's important to note that the top-level keys (which dictate the content order from the source Markdown) remain intact. We aren't introducing any breaking changes to the overall sequence of the document content. Regarding the inner keys of each entry:
Since JSON objects are inherently unordered, this change shouldn't break any standard parsing. Unless a downstream consumer is accessing keys by index (e.g., While we can refactor the new tooling to mirror the legacy order if it’s considered a blocker, it feels like an unnecessary use of resources for a change that doesn't provide functional value. The current test failures seem to be a result of the tests expecting a specific string-matching order rather than validating the schema itself. @aduh95, could you provide a real-world example of where this specific internal key order would break downstream usage? It would help to understand if there's a dependency I'm overlooking. To clarify for everyone else, the concern is that keys like
Note: The highlighted keys are just examples of the shift in placement. Even in the legacy tooling, this order wasn't always 100% consistent across different files. |
Me trying to review this PR. With keys in a different order, it's very hard to review. With nodejs/doc-kit#595, at least I'm able to diff which allows me to see that e.g.
The HTML version is also suffering from the lack of parsing:
I haven't investigated, that's likely due to the conflict on The sub-keys being in a different order does produce a lot of diff in the output, it's annoying but I guess it's workable. BTW there are indeed lots of bug fixes, so good work! |
That's an issue with the markdown. See #61756 |
Gotcha, for manual comparison of the JSON this makes sense. I guess we can land nodejs/doc-kit#595
Do you mean to say the "node:process's 'message' event params are no longer parsed correctly:" is an issue on the markdown or? |
3b3a9e2 to
5f45cfa
Compare
Yes. The new tooling is much stricter on what it considers valid vs invalid. The markdown for that particular event would be considered invalid by the new tooling. Once this PR lands, we can land the new linter, which will identify invalid markdown before they land. |
|
@aduh95 hopefully all your concerns are resolved? |
I'd argue we should fix that specific Markdown file before we land this PR, otherwise that section is broken. |
|
See #61756 |
Switches over to using the new doc generation tooling. For more background on this, please see nodejs#52343 Signed-off-by: flakey5 <73616808+flakey5@users.noreply.github.com> Co-authored-by: Claudio W <cwunder@gnome.org> Co-authored-by: avivkeller <me@aviv.sh> Co-authored-by: Antoine du Hamel <duhamelantoine1995@gmail.com> Co-authored-by: Joyee Cheung <joyeec9h3@gmail.com>
b21ec68 to
0791d1e
Compare




Switches over to using the new doc generation tooling. For more background on this, please see #52343
Currently a draft just to get feedback on the approach to this integration.cc @nodejs/web-infra
Notable Change info (by @avivkeller):
The Node.js Website and Website Infrastructure teams have introduced a brand-new documentation pipeline, modernizing how our API docs are generated. While the documentation site may look familiar today, this infrastructure we are hard at work making a completely refreshed user interface in the very near future!