Fix Linux chart rendering and close four documentation loose ends in Logging - #2
Open
FreeAndNil wants to merge 2 commits into
Open
Fix Linux chart rendering and close four documentation loose ends in Logging#2FreeAndNil wants to merge 2 commits into
FreeAndNil wants to merge 2 commits into
Conversation
build/build.csproj referenced SkiaSharp.NativeAssets.Linux.NoDependencies,
which ships Skia without fontconfig. SKTypeface.FromFamilyName("Arial") in
build/Targets/TextStyle.cs therefore resolved to nothing on Linux and every
chart was written with no text at all: no title, no library names, no values.
Switching to SkiaSharp.NativeAssets.Linux pulls in fontconfig, which maps
Arial to the metric-compatible Liberation Sans.
- workflows/feature-contracts/logging.md documented features 1-8 only; add
section 9, Formatted Output, from the [MatrixFeature] and [FeatureUnavailable]
attributes on 09_FormattedOutput.cs and the assertions in LoggingChecks.
- Feature 8 was named PrepareLogger by id, benchmark class and chart group, but
displayed as "Create Logger". Rename the display name to Prepare Logger so all
four agree, and drop the orphaned 08-create-logger.png chart.
- readme/art_overview/{en,ru}_overview.md listed 6 categories, 40 libraries and
67 scenarios; LINQ Queries and ZIP Archives were missing entirely and four row
counts were stale. Rebuild both tables from reports/*/features.json: 8
categories, 53 libraries, 99 scenarios. Validation's leader is now
Microsoft.Extensions.Validation, not DataAnnotations.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Render chart text on Linux
build/build.csprojreferencedSkiaSharp.NativeAssets.Linux.NoDependencies,which ships Skia without fontconfig.
SKTypeface.FromFamilyName("Arial")inbuild/Targets/TextStyle.cstherefore resolved to nothing on Linux, anddotnet run --project ./build -- readmewrote all 132 charts with no text atall: no title, no library names, no values. Switching to
SkiaSharp.NativeAssets.Linuxpulls in fontconfig, which maps Arial to themetric-compatible Liberation Sans.
Anyone regenerating charts on Linux today silently produces unusable PNGs, so
this is worth landing on its own regardless of the rest.
Logging documentation
Three findings, all in the Logging category:
workflows/feature-contracts/logging.mddocumented features 1-8 only.FormattedOutputwas added as feature 9 and never written up. Added section9, sourced from the
[MatrixFeature]and[FeatureUnavailable]attributeson
09_FormattedOutput.csand the assertions inLoggingChecks.Feature 8 had two names. Its id, benchmark class (
08_PrepareLogger.cs)and chart group all said
PrepareLogger, but the display name was"Create Logger". Since
MatrixChartPathsderives the chart filename fromthe display name, the repo carried both
08-create-logger.pngand a stale08-prepare-logger.pngfrom before the name changed. Renamed the displayname to "Prepare Logger" so all four agree, and dropped the orphan.
The overview article was two categories out of date.
readme/art_overview/{en,ru}_overview.mdclaimed 6 categories, 40 librariesand 67 scenarios; LINQ Queries and ZIP Archives were missing from the table
entirely and four row counts were stale. The old total was also
self-inconsistent: its own table summed to 41, not 40. Both tables are now
rebuilt from
reports/*/features.json: 8 categories, 53 libraries, 99scenarios. Validation's rating leader is now
Microsoft.Extensions.Validationrather than
DataAnnotations, and the baselines paragraph gainedSystem.LinqandSystem.IO.Compression.README.mdand the two Prepare charts are regenerated. No measurements changed:the
Namefield inreports/Logging/{features,benchmarks}.jsonwas relabelledin place rather than re-benchmarked.
Verification
grep -rn "Create Logger\|create-logger"returns nothing.dotnet build src/Matrix.Logging/Matrix.Logging.csprojsucceeds with 0 warnings.08-prepare-logger.pngnow renders with text and shows all 6 librariesincluding OpenTelemetry, with values matching the current README.
overview-prepare.pnglegend reads "Prepare Logger".