-
-
Notifications
You must be signed in to change notification settings - Fork 3.4k
Split general godot-cpp, general GDExtension info and GDExtension internals into separate categories. #10617
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
Conversation
…ernals into separate categories.
I see there are absolute links from Please let me know how best to proceed with this. Afaik, those files are generated from godot upstream, yes? |
FWIW, this PR is more or less the right solution in the abstract. However, we're running up against two problems with our docs: we need to avoid deep nesting of pages, and we also can't easily reorganize pages due to the limited number of redirects on RTD. I have to express some skepticism at introducing extra nesting to pages in the scripting section of the docs. We recently merged some changes that reduce nesting, because the sidebar has a hard limit of 5 nested headers/page titles. At worst this can make whole pages unreachable from the sidebar, but even removing the ability to navigate to headers within a page is a UX regression I'd like to avoid if we can. Compare:
I do see the advantage to having the pages about C++ and about GDExtension itself semantically separated, so if the GDExtension team thinks this is worth the disadvantage, it's okay with me. In that case, my suggestion would be:
I made an alternate implementation of this PR with my suggestions: #10618. |
Thanks for looking into this! Avoiding more nesting is an interesting caveat indeed! Your proposed solution is interesting too. If I'm understanding it correctly, it solves the 'sidebar' issue, but it would not solve issue on an articles level, correct? An alternative solution may be to pull |
There are two problems here:
If we go with my solution, then I would suggest making a new intro page for godot-cpp and putting under the
Pulling C++ out of GDExtension and making it a sibling of GDExtension and a child of Scripting makes a good bit of sense to me. But, semantically it also makes sense to keep C++ as a subcategory of GDExtension. I'm neutral here. |
Ok, I'm trying to understand the tradeoffs. I think this is the gist of it:
(Yes is good) Technically all of those have similar amounts of downsides. All solutions are acceptable to me; all are better than the status quo, I think. |
Summary looks accurate, I'd also like to hear from other voices at this point, I'm mostly representing the maintenance of the doc organization. |
(Speaking as a godot-cpp user) Thanks for making the PR! All solutions looks like an improvement to me. I'm fine with whichever the crowd prefers, so feel free to disregard what I'm about to say: Personally, I think that godot-cpp and GDExtension should be separated (option 3 in the table) because (1) "I want to use C++" and "I want to implement a language" are different user-goals that the docs mix up right now and (2) the godot-cpp documentation will get crowded if it grows in its current place. Maybe renaming the sections as "C++ via GDExtension" (as we refer to it on the Scripting languages page) and "Other Languages via GDExtension" would also help with this. It also makes a little more sense (to me) for the "Scripting" section since "GDExtension" is the only non-language in the list. If that were done, there would be some overlap for the documentation system and |
@Ivorforce thanks for making the PR! @tetrapod00 thanks for the feedback! For a tiny bit of background: this comes from a discussion at the last GDExtension team meeting, and the main motivation here is allowing us to write a whole lot more godot-cpp specific docs, without everything getting all mixed up. I think if we do stick with having everything under "Scripting" -> "GDExtension", then PR #10618 is probably the better way to go, since it preserves the links. Having everything in one directory could be somewhat confusing for contributors, but that seems acceptable to me. However, @Ivorforce's options 3 & 4 are interesting - restated by @HuntJSparra here:
So, then we'd have something like:
And we could make the "C++" section be godot-cpp specific. Then the "Other languages via GDExtension" could list other language bindings, but we could also stick the GDExtension internals stuff under there too, with the idea that the internals are most interesting to folks who want to add a new language binding? |
It seems that the most popular option right now is to move godot-cpp up into ![]() This works really well in my opinion, and caters very naturally to the needs of docs readers, who will likely have the question "Which programming language do I want to use for my project?". Now more than before, this is my favorite approach. |
#10631 seems like a good solution overall, I'm in favor. Now it's more clear which languages are supported officially. The number of moved pages is minimal. However, with the new structure, the first page in each section might need a more extensive rewrite. Repurposing the old |
@Ivorforce since PR #10631 seems to be the preferred PR between these do you have any issues with this one being closed? Also just a heads up, it might be a while until we merge the other one since the docs are at a redirection limit right now. |
New Look:
Old Look: https://docs.godotengine.org/en/latest/tutorials/scripting/gdextension/index.html
The reason for this change is to entice more documentation to be made for godot-cpp (and GDExtension internals). The current structure does not clearly distinguish the two. By giving godot-cpp its own section, it can be extended meaningfully (in follow-up PRs) without cluttering the general GDExtension docs.
This was discussed in a GDExtension meeting, but the exact implementation is my own. I kept the changes as minimal as possible to make it unproblematic to merge. Still, I'd love to get some feedback, especially from other godot-cpp developers!