-
Notifications
You must be signed in to change notification settings - Fork 712
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
Cross-package references in monorepository not working #1835
Comments
I'm willing to help resolve the issue, however I don't have enough knowledge of TypeDoc in order to guess where to start looking. |
This happens for the same reason it happens with project references. TypeDoc creates a new program for each monorepo, and symbols between programs are completely separate... but references are resolved by symbol equality. I think this could be resolved by changing symbols so that they are compared by source location (with mapping... so |
Thanks for the hint, I'll give it a try. |
Hey @Gerrit0 I made a plugin to solve the problem: nlepage/typedoc-plugin-resolve-crossmodule-references. I'm not sure if it can help with project references as I'm not familiar with these. Let me know if it is something you would like to integrate in TypeDoc itself. |
I think that's definitely a promising path forward! I'm probably not going to have time this weekend to look at it in as much detail as it deserves, but it's something I'm absolutely interested in pursuing. I'd like to avoid the extra resolution step if possible, (by storing reference targets by file/location?) |
This comment was marked as outdated.
This comment was marked as outdated.
@nlepage Are there any prerequisite I need to know or settings made to get your plugin working? I just installed and tried but unfortunately it did not work for me :( |
Hey @phihochzwei |
@phihochzwei I published a new release of the plugin, let me know if it works for you. |
Typedoc has issues with monorepo support using lots of memory. See #356 and TypeStrong/typedoc#1835. This avoids the crash in two different ways: 1. I increased the node heap size to 8192 which seems to be sufficient to make the build succeed for now. 2. For now I am pointing typedoc at the source code directly rather than using the monorepo support. This uses a lot less memory and is a lot faster.
Is the plugin still the way to go? |
At this point, yes. I'm getting somewhat closer to bringing this functionality into TypeDoc itself, but that will be a part of 0.24 most likely. |
@nlepage Just wanted to mention the plugin works great for me, thanks. :) Except that it doesn't identify the |
@Tschakki I'll have a look, could you open an issue on the plugin's repository thanks https://github.com/nlepage/typedoc-plugin-resolve-crossmodule-references |
### What was the problem? This PR resolves #7901 Please note there is currently a bug in TypeDoc with the effect that references between packages are not working, see TypeStrong/typedoc#1835 ### How was it solved? - Export relevant data structures - Add relevant code comments - Add typedoc to the dev dependencies - Add typedoc options to the `package.json` in each package. - Create typedoc.json and include required options for generating the docs properly. - Create new folder `docs/typedoc` to store generated typeDocs ### How was it tested? `cd lisk-sdk/` `npx typedoc` ### Result https://liskhq.github.io/lisk-docs/lisk-sdk/v6/references/typedoc/modules/_liskhq_lisk_transactions.html
I have been struggling to keep track of what Perses exports from the various UI packages, which can make it tricky to figure out breaking changes when things are refactored. Typedoc does a nice job evaluating the entry point and creating documentation, so that seemed like a low effort way to get this information. In the short term, storing these as artifacts in github actions runs. Longer-term, we could potentially publish these in github pages alongside storybook (good at documenting React components) to provide documentation for the non-component utilities, types, etc. that Perses provides. It is notable that typedoc isn't great at handling cross-package dependencies at this time, so there are some limitations to what we're getting. We can watch this issue to see when this is improved. TypeStrong/typedoc#1835 Signed-off-by: Julie Pagano <julie.pagano@chronosphere.io>
I have been struggling to keep track of what Perses exports from the various UI packages, which can make it tricky to figure out breaking changes when things are refactored. Typedoc does a nice job evaluating the entry point and creating documentation, so that seemed like a low effort way to get this information. In the short term, storing these as artifacts in github actions runs. Longer-term, we could potentially publish these in github pages alongside storybook (good at documenting React components) to provide documentation for the non-component utilities, types, etc. that Perses provides. It is notable that typedoc isn't great at handling cross-package dependencies at this time, so there are some limitations to what we're getting. We can watch this issue to see when this is improved. TypeStrong/typedoc#1835 Signed-off-by: Julie Pagano <julie.pagano@chronosphere.io>
v0.24.0 made a ton of changes, including a fix for this. Types are now serialized with their location rather than relying on object identity, and therefore can be resolved even across packages |
I don't think it's working. U can check this table using the plugin in older version of typedoc https://tagscript.js.org/typedoc-api/plugins/plugin-discord/classes/BaseTransformer#parameters-1 vs current one https://tag-script-git-renovate-all-minor-patch-imranbarbhuiya.vercel.app/typedoc-api/plugins/plugin-discord/classes/BaseTransformer#parameters-1 Also an unrelated issue so lmk if I should create a new issue for this but when using links like |
I'm going to have to ask for a new issue with a minimal reproduction for both of those. I don't have time to dig through big projects for a bug. |
ok thanks for the reply, i'll do it today |
Thanks for all your hard work. |
Two 👍 |
typedoc-plugin-resolve-crossmodule-references is now archived and deprecated on npm, thanks for all your hard work @Gerrit0 ! |
Search terms
monorepository entrypointStrategy packages reference
Expected Behavior
Cross-package references should "work" when generating documentation for several packages in a monorepository (using yarn workspaces), with an
entrypointStrategy
set topackages
.Actual Behavior
Cross-package references yield a warning:
And the resulting documentation does not have hyperlinks for such references.
Steps to reproduce the bug
Here is an example repository to reproduce the bug: https://github.com/nlepage/typedoc-packages-missing-export
Environment
The text was updated successfully, but these errors were encountered: