Skip to content
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

Docs Porting Tool improvement #104

Open
3 of 14 tasks
carlossanlop opened this issue Oct 20, 2021 · 2 comments
Open
3 of 14 tasks

Docs Porting Tool improvement #104

carlossanlop opened this issue Oct 20, 2021 · 2 comments
Labels

Comments

@carlossanlop
Copy link
Member

carlossanlop commented Oct 20, 2021

There are several improvements we need to address to stabilize this tool for usage in all dotnet repos in an automated fashion.

P0

Before tackling anything else, we need to solve the following:

  • Separate the two directions into two separate processes. This will help ensure we keep concerns separate and simplify maintenance and future improvements.
  • Add classes that wrap the dotnet-api-docs xml types and members, but only return xml objects. This will simplify working with Roslyn APIs.
  • Understand and fix the issue causing the tool to not be able to load Roslyn projects every time we bump dependencies. Use the code in this branch as inspiration: Bump dependencies to try to fix TripleSlash unit test failures #97

P1

Only tackle this after we fix the P0s:

  • ToDocs: tests into actual unit tests, instead of feature tests. First PR addressing this: PortToDocs: Add methods that either collect files automatically, or allow passing documents manually #110
  • ToTripleSlash: move all remarks to their own xml files next to the source code, and point to the file in the triple slash xml <remarks> item.
    • Convert the dotnet-api-docs markdown to normal xml if possible.
  • ToTripleSlash: Figure out how to detect examples in remarks efficiently, move them to their own xml files next to the source code, and point to the file in the triple slash <example> item.
  • Detect multi-platform documents (*.Unix.cs, *.Windows.cs, etc.) and move their documentation to a single xml file next to the source code, then point to that file in all the triple slash xml items.
  • ToDocs: Port the -or- lines in exceptions correctly, to ensure they have enough endlines so they render correctly in MS Docs.
  • ToTripleSlash: backport -or- lines in exceptions with <br/> or other features to ensure they get wrapped and save space.
  • ToTripleSlash: Add the ability to wrap lines to 120 characters (or a custom number), as requested by WinForms.

P2

  • Save logs to file. There used to be a change that used System.Threading.Channels, but it was causing some messages to get lost, or not print well so it was backed-out. We can reuse its code but fix the issues: Speed up execution by offloading logging #75
  • Move the code from this tool into a forked arcade repo and adapt the two executables to be consumable by arcade. We already moved this tool to its own repo under dotnet.
@carlossanlop carlossanlop pinned this issue Oct 20, 2021
@carlossanlop
Copy link
Member Author

@jeffhandley @RussKie please feel free to edit the list with more tasks.

@RussKie RussKie added the epic label Oct 20, 2021
@RussKie
Copy link
Member

RussKie commented Oct 20, 2021

P2

  • Move the code from this tool into a forked arcade repo and adapt the two executables to be consumable by arcade.

This depends on the outcomes of the next week's meeting with @markwilkie. But if this tool is decided to be a part of Arcade, this will be the next priority because it will lay the foundation for other work.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants