Visitar URL original
Add HTML Formatter and Tests by Chris-Greaves · Pull Request #586 · dotnet-outdated/dotnet-outdated · GitHub
Skip to content

Add HTML Formatter and Tests - #586

Open
Chris-Greaves wants to merge 1 commit into
dotnet-outdated:masterfrom
Chris-Greaves:add-html-formatter
Open

Chris-Greaves wants to merge 1 commit into
dotnet-outdated:masterfrom
Chris-Greaves:add-html-formatter

Conversation

@Chris-Greaves

Copy link
Copy Markdown
Contributor

While trying to get this to work in Azure DevOps, I found that the Markdown format doesn't work with the Azure DevOps comments. So I decided to create a simple HTML Formatter to output almost exactly what Markdown does, but as pure HTML.

Things different to the Markdown formatter:

  • I use Orange instead of Yellow for Minor severities. This is to make it more visible on light themes. (see difference at the bottom)
  • It's unit tested
  • Doesn't break when using -utd

Colour change comparison:
image

@Chris-Greaves

Copy link
Copy Markdown
Contributor Author
Example HTML output by the new formatter
<h1>Outdated Packages</h1>
<h2>dotnet-outdated-tool</h2>
<h3>Target:net8.0</h3>
<table><thead><tr>
<th>Package</th>
<th>Transitive</th>
<th style="text-align: right;">Current</th>
<th style="text-align: right;">Last</th>
<th style="text-align: right;">Severity</th>
</tr></thead>
<tbody>
<tr>
<td>CsvHelper</td>
<td>False</td>
<td style="text-align: right;">33.0.1</td>
<td style="text-align: right;"><span>33.0.1</span></td>
<td style="text-align: right;">None</td>
</tr>
<tr>
<td>McMaster.Extensions.CommandLineUtils</td>
<td>False</td>
<td style="text-align: right;">4.1.1</td>
<td style="text-align: right;"><span>4.1.1</span></td>
<td style="text-align: right;">None</td>
</tr>
<tr>
<td>Microsoft.Extensions.DependencyInjection</td>
<td>False</td>
<td style="text-align: right;">8.0.0</td>
<td style="text-align: right;"><span>8.0.0</span></td>
<td style="text-align: right;">None</td>
</tr>
</tbody></table>
<h3>Target:net6.0</h3>
<table><thead><tr>
<th>Package</th>
<th>Transitive</th>
<th style="text-align: right;">Current</th>
<th style="text-align: right;">Last</th>
<th style="text-align: right;">Severity</th>
</tr></thead>
<tbody>
<tr>
<td>CsvHelper</td>
<td>False</td>
<td style="text-align: right;">33.0.1</td>
<td style="text-align: right;"><span>33.0.1</span></td>
<td style="text-align: right;">None</td>
</tr>
<tr>
<td>McMaster.Extensions.CommandLineUtils</td>
<td>False</td>
<td style="text-align: right;">4.1.1</td>
<td style="text-align: right;"><span>4.1.1</span></td>
<td style="text-align: right;">None</td>
</tr>
<tr>
<td>Microsoft.Extensions.DependencyInjection</td>
<td>False</td>
<td style="text-align: right;">8.0.0</td>
<td style="text-align: right;"><span>8.0.0</span></td>
<td style="text-align: right;">None</td>
</tr>
</tbody></table>
<h3>Target:net7.0</h3>
<table><thead><tr>
<th>Package</th>
<th>Transitive</th>
<th style="text-align: right;">Current</th>
<th style="text-align: right;">Last</th>
<th style="text-align: right;">Severity</th>
</tr></thead>
<tbody>
<tr>
<td>CsvHelper</td>
<td>False</td>
<td style="text-align: right;">33.0.1</td>
<td style="text-align: right;"><span>33.0.1</span></td>
<td style="text-align: right;">None</td>
</tr>
<tr>
<td>McMaster.Extensions.CommandLineUtils</td>
<td>False</td>
<td style="text-align: right;">4.1.1</td>
<td style="text-align: right;"><span>4.1.1</span></td>
<td style="text-align: right;">None</td>
</tr>
<tr>
<td>Microsoft.Extensions.DependencyInjection</td>
<td>False</td>
<td style="text-align: right;">8.0.0</td>
<td style="text-align: right;"><span>8.0.0</span></td>
<td style="text-align: right;">None</td>
</tr>
</tbody></table>
<h2>DotNetOutdated.Tests</h2>
<h3>Target:net8.0</h3>
<table><thead><tr>
<th>Package</th>
<th>Transitive</th>
<th style="text-align: right;">Current</th>
<th style="text-align: right;">Last</th>
<th style="text-align: right;">Severity</th>
</tr></thead>
<tbody>
<tr>
<td>McMaster.Extensions.CommandLineUtils</td>
<td>False</td>
<td style="text-align: right;">4.1.1</td>
<td style="text-align: right;"><span>4.1.1</span></td>
<td style="text-align: right;">None</td>
</tr>
<tr>
<td>Microsoft.NET.Test.Sdk</td>
<td>False</td>
<td style="text-align: right;">17.10.0</td>
<td style="text-align: right;"><span>17.</span><span style="color:orange;font-weight:bold">11.1</span></td>
<td style="text-align: right;">Minor</td>
</tr>
<tr>
<td>NSubstitute</td>
<td>False</td>
<td style="text-align: right;">5.1.0</td>
<td style="text-align: right;"><span>5.1.0</span></td>
<td style="text-align: right;">None</td>
</tr>
<tr>
<td>System.IO.Abstractions.TestingHelpers</td>
<td>False</td>
<td style="text-align: right;">21.0.29</td>
<td style="text-align: right;"><span>21.0.29</span></td>
<td style="text-align: right;">None</td>
</tr>
<tr>
<td>xunit</td>
<td>False</td>
<td style="text-align: right;">2.9.0</td>
<td style="text-align: right;"><span>2.9.0</span></td>
<td style="text-align: right;">None</td>
</tr>
<tr>
<td>xunit.runner.visualstudio</td>
<td>False</td>
<td style="text-align: right;">2.8.2</td>
<td style="text-align: right;"><span>2.8.2</span></td>
<td style="text-align: right;">None</td>
</tr>
</tbody></table>
<h3>Target:net6.0</h3>
<table><thead><tr>
<th>Package</th>
<th>Transitive</th>
<th style="text-align: right;">Current</th>
<th style="text-align: right;">Last</th>
<th style="text-align: right;">Severity</th>
</tr></thead>
<tbody>
<tr>
<td>McMaster.Extensions.CommandLineUtils</td>
<td>False</td>
<td style="text-align: right;">4.1.1</td>
<td style="text-align: right;"><span>4.1.1</span></td>
<td style="text-align: right;">None</td>
</tr>
<tr>
<td>Microsoft.NET.Test.Sdk</td>
<td>False</td>
<td style="text-align: right;">17.10.0</td>
<td style="text-align: right;"><span>17.</span><span style="color:orange;font-weight:bold">11.1</span></td>
<td style="text-align: right;">Minor</td>
</tr>
<tr>
<td>NSubstitute</td>
<td>False</td>
<td style="text-align: right;">5.1.0</td>
<td style="text-align: right;"><span>5.1.0</span></td>
<td style="text-align: right;">None</td>
</tr>
<tr>
<td>System.IO.Abstractions.TestingHelpers</td>
<td>False</td>
<td style="text-align: right;">21.0.29</td>
<td style="text-align: right;"><span>21.0.29</span></td>
<td style="text-align: right;">None</td>
</tr>
<tr>
<td>xunit</td>
<td>False</td>
<td style="text-align: right;">2.9.0</td>
<td style="text-align: right;"><span>2.9.0</span></td>
<td style="text-align: right;">None</td>
</tr>
<tr>
<td>xunit.runner.visualstudio</td>
<td>False</td>
<td style="text-align: right;">2.8.2</td>
<td style="text-align: right;"><span>2.8.2</span></td>
<td style="text-align: right;">None</td>
</tr>
</tbody></table>
<h3>Target:net7.0</h3>
<table><thead><tr>
<th>Package</th>
<th>Transitive</th>
<th style="text-align: right;">Current</th>
<th style="text-align: right;">Last</th>
<th style="text-align: right;">Severity</th>
</tr></thead>
<tbody>
<tr>
<td>McMaster.Extensions.CommandLineUtils</td>
<td>False</td>
<td style="text-align: right;">4.1.1</td>
<td style="text-align: right;"><span>4.1.1</span></td>
<td style="text-align: right;">None</td>
</tr>
<tr>
<td>Microsoft.NET.Test.Sdk</td>
<td>False</td>
<td style="text-align: right;">17.10.0</td>
<td style="text-align: right;"><span>17.</span><span style="color:orange;font-weight:bold">11.1</span></td>
<td style="text-align: right;">Minor</td>
</tr>
<tr>
<td>NSubstitute</td>
<td>False</td>
<td style="text-align: right;">5.1.0</td>
<td style="text-align: right;"><span>5.1.0</span></td>
<td style="text-align: right;">None</td>
</tr>
<tr>
<td>System.IO.Abstractions.TestingHelpers</td>
<td>False</td>
<td style="text-align: right;">21.0.29</td>
<td style="text-align: right;"><span>21.0.29</span></td>
<td style="text-align: right;">None</td>
</tr>
<tr>
<td>xunit</td>
<td>False</td>
<td style="text-align: right;">2.9.0</td>
<td style="text-align: right;"><span>2.9.0</span></td>
<td style="text-align: right;">None</td>
</tr>
<tr>
<td>xunit.runner.visualstudio</td>
<td>False</td>
<td style="text-align: right;">2.8.2</td>
<td style="text-align: right;"><span>2.8.2</span></td>
<td style="text-align: right;">None</td>
</tr>
</tbody></table>
<h2>DotNetOutdatedTool.Core</h2>
<h3>Target:net7.0</h3>
<table><thead><tr>
<th>Package</th>
<th>Transitive</th>
<th style="text-align: right;">Current</th>
<th style="text-align: right;">Last</th>
<th style="text-align: right;">Severity</th>
</tr></thead>
<tbody>
<tr>
<td>NuGet.Configuration</td>
<td>False</td>
<td style="text-align: right;">6.11.0</td>
<td style="text-align: right;"><span>6.11.0</span></td>
<td style="text-align: right;">None</td>
</tr>
<tr>
<td>NuGet.Credentials</td>
<td>False</td>
<td style="text-align: right;">6.11.0</td>
<td style="text-align: right;"><span>6.11.0</span></td>
<td style="text-align: right;">None</td>
</tr>
<tr>
<td>NuGet.ProjectModel</td>
<td>False</td>
<td style="text-align: right;">6.11.0</td>
<td style="text-align: right;"><span>6.11.0</span></td>
<td style="text-align: right;">None</td>
</tr>
<tr>
<td>NuGet.Protocol</td>
<td>False</td>
<td style="text-align: right;">6.11.0</td>
<td style="text-align: right;"><span>6.11.0</span></td>
<td style="text-align: right;">None</td>
</tr>
<tr>
<td>NuGet.Versioning</td>
<td>False</td>
<td style="text-align: right;">6.11.0</td>
<td style="text-align: right;"><span>6.11.0</span></td>
<td style="text-align: right;">None</td>
</tr>
<tr>
<td>System.IO.Abstractions</td>
<td>False</td>
<td style="text-align: right;">21.0.29</td>
<td style="text-align: right;"><span>21.0.29</span></td>
<td style="text-align: right;">None</td>
</tr>
</tbody></table>
<h3>Target:net8.0</h3>
<table><thead><tr>
<th>Package</th>
<th>Transitive</th>
<th style="text-align: right;">Current</th>
<th style="text-align: right;">Last</th>
<th style="text-align: right;">Severity</th>
</tr></thead>
<tbody>
<tr>
<td>NuGet.Configuration</td>
<td>False</td>
<td style="text-align: right;">6.11.0</td>
<td style="text-align: right;"><span>6.11.0</span></td>
<td style="text-align: right;">None</td>
</tr>
<tr>
<td>NuGet.Credentials</td>
<td>False</td>
<td style="text-align: right;">6.11.0</td>
<td style="text-align: right;"><span>6.11.0</span></td>
<td style="text-align: right;">None</td>
</tr>
<tr>
<td>NuGet.ProjectModel</td>
<td>False</td>
<td style="text-align: right;">6.11.0</td>
<td style="text-align: right;"><span>6.11.0</span></td>
<td style="text-align: right;">None</td>
</tr>
<tr>
<td>NuGet.Protocol</td>
<td>False</td>
<td style="text-align: right;">6.11.0</td>
<td style="text-align: right;"><span>6.11.0</span></td>
<td style="text-align: right;">None</td>
</tr>
<tr>
<td>NuGet.Versioning</td>
<td>False</td>
<td style="text-align: right;">6.11.0</td>
<td style="text-align: right;"><span>6.11.0</span></td>
<td style="text-align: right;">None</td>
</tr>
<tr>
<td>System.IO.Abstractions</td>
<td>False</td>
<td style="text-align: right;">21.0.29</td>
<td style="text-align: right;"><span>21.0.29</span></td>
<td style="text-align: right;">None</td>
</tr>
</tbody></table>
<h3>Target:net6.0</h3>
<table><thead><tr>
<th>Package</th>
<th>Transitive</th>
<th style="text-align: right;">Current</th>
<th style="text-align: right;">Last</th>
<th style="text-align: right;">Severity</th>
</tr></thead>
<tbody>
<tr>
<td>NuGet.Configuration</td>
<td>False</td>
<td style="text-align: right;">6.11.0</td>
<td style="text-align: right;"><span>6.11.0</span></td>
<td style="text-align: right;">None</td>
</tr>
<tr>
<td>NuGet.Credentials</td>
<td>False</td>
<td style="text-align: right;">6.11.0</td>
<td style="text-align: right;"><span>6.11.0</span></td>
<td style="text-align: right;">None</td>
</tr>
<tr>
<td>NuGet.ProjectModel</td>
<td>False</td>
<td style="text-align: right;">6.11.0</td>
<td style="text-align: right;"><span>6.11.0</span></td>
<td style="text-align: right;">None</td>
</tr>
<tr>
<td>NuGet.Protocol</td>
<td>False</td>
<td style="text-align: right;">6.11.0</td>
<td style="text-align: right;"><span>6.11.0</span></td>
<td style="text-align: right;">None</td>
</tr>
<tr>
<td>NuGet.Versioning</td>
<td>False</td>
<td style="text-align: right;">6.11.0</td>
<td style="text-align: right;"><span>6.11.0</span></td>
<td style="text-align: right;">None</td>
</tr>
<tr>
<td>System.IO.Abstractions</td>
<td>False</td>
<td style="text-align: right;">21.0.29</td>
<td style="text-align: right;"><span>21.0.29</span></td>
<td style="text-align: right;">None</td>
</tr>
</tbody></table>
<blockquote>
<p><strong>Note</strong></p>
<p>🔴: Major version update or pre-release version. Possible breaking changes.</p>
<p>🟠: Minor version update. Backwards-compatible features added.</p>
<p>🟢: Patch version update. Backwards-compatible bug fixes.</p>
</blockquote>

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants