-
Notifications
You must be signed in to change notification settings - Fork 159
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
[Test, do not merge] Generated API Reference at o3de::development commit:7dfbca #2281
Conversation
Removed deprecated shortcode, preview-new Signed-off-by: chanmosq <75444793+chanmosq@users.noreply.github.com>
…est-api-ref-2305 Signed-off-by: chanmosq <75444793+chanmosq@users.noreply.github.com>
caf3b53
to
95a7cd7
Compare
Generated files using an update doxygen script that shouldn't generate an API for protected members. Signed-off-by: chanmosq <75444793+chanmosq@users.noreply.github.com>
Broken links as of commit
|
Signed-off-by: chanmosq <75444793+chanmosq@users.noreply.github.com>
c88c0ad
to
b2cb5b4
Compare
…e only, broken links present) Signed-off-by: chanmosq <75444793+chanmosq@users.noreply.github.com>
904ab61
to
e133ab6
Compare
Closing this test PR. The generated C++ API reference for O3DE version 2305 is available at #2359 |
Change summary
This PR includes the generated API reference for the
development
branch ofo3de. See the commit message for the last commit in
o3de::development` that the API reference was generated on.Submission Checklist:
Details about generating API Ref
Checking for broken links
I use the following method to check for broken links in the API Reference:
Issue: A protected member has a broken link to a private class, but docs are not generated for private members
This issue assumes that we don't want to generate API reference for private members.
Case 1
This issue occurred at commit cb91000
Summary: In this case a public class was generating a link to it's a protected member's private base class.
Details:
The
AzFramework::Spawnable::EntityAliasConstVisitor
API ref links to a private class that it's protected fields inherit from,EntityAliasVisitorBase
. The link produces 404 error because an API ref was not generated forEntityAliasVisitorBase
, as that is a private class.To avoid generating an API for protected classes at all, I made a few changes to the doxygen script by setting the following configurations:
⚠This solution assumes that we want to avoid generating API Reference for protected members. Unsure if that is what we want.
Case 2
This issue occurred at commit a286533, after updating the doxygen script as described in Case 1
Summary: In this case, a struct linked to a protected base class, which didn't produce an API ref, as expected.
Details:
The
AZ::DocumentPropertyEditor::ValueStringSort::StringSortNode
API ref links to a protected class it inherits from,AZ::DocumentPropertyEditor::RowSortAdapter::SortInfoBase
. However, the link produces 404 because an API ref was not generated for SortInfoBase struct as that is a a protected struct.struct_a_z_1_1_document_property_editor_1_1_row_sort_adapter_1_1_sort_info_base.html
, which can be found here.Generating API reference for private members
This update occurs at commit b2cb5b4, but has been since reverted due to an offline discussion in favor of not generating an API reference for private members.
This update assumes that we want to generate API references for private members. With this update, both cases of the above issue are resolved, resulting in no broken links. Originally,
EXTRACT_PRIVATE
was set toNO
to avoid noise in the API from private members.To generate an API for private members, I made a few changes to the doxygen script by setting the following configurations:
Improving the mainpage of each API Reference
This update occurs at commit
e133ab6
.Investigation for improving the mainpage, or index.html, of each API Reference. A doxygen mainpage is defined by using the
/mainpage
command in a doxygen comment. Following this model, each O3DE framework and Gem needs to define their own mainpage. Because the API Reference is created in conjunction with a Gem Reference page, or another page in the O3DE User Guide, we don't use doxygen to create the mainpage. Instead, we must set up a generic mainpage template that doxygen generates for every API Reference.As of this commit, the mainpage template looks like the following image. It contains hardcoded links to the most common pages that doxygen generates. This is a prototype of the experience and may contain broken links.
The challenge is that we don't know what pages are available for each API Reference (frameworks and Gems) until Doxygen generates them. However, it generates their mainpage at the same time. So, a possible solution is to post-process the mainpage with an updated list of the available Doxygen-generated docs.