Skip to content

v0.1.0

Choose a tag to compare

@github-actions github-actions released this 27 Aug 12:16
· 10 commits to main since this release
826deff

What's Changed

  • Track the backlog in GitHub Issues by @nathanpond in #1
  • Count how deep one picture is inside another by @nathanpond in #59
  • Give feature work a label of its own by @nathanpond in #72
  • Draw the line a series tends towards by @nathanpond in #78
  • Say how far the numbers might be out by @nathanpond in #79
  • Hang the lines a chart drops from its points by @nathanpond in #81
  • Put a title and a legend where the chart asks by @nathanpond in #84
  • Paint a stock chart's bars in the colours it asks for by @nathanpond in #85
  • Give a chart title the weight Word gives it by @nathanpond in #86
  • Lay a sized legend into the box it is given by @nathanpond in #88
  • Wrap a legend's name to the box it is given by @nathanpond in #92
  • Wrap a legend up a side, and give the plot back what it saves by @nathanpond in #93
  • Charts: a sized legend of several entries, and the ones it drops by @nathanpond in #94
  • Charts: read c:view3D and the three-dimensional plot elements by @nathanpond in #105
  • Charts: an instrument for finding a projected 3-D box's corners by @nathanpond in #107
  • Charts: separate what a 3-D projection measures in from what it does not by @nathanpond in #111
  • Charts: c:hPercent, and what its absence means by @nathanpond in #112
  • Charts: how a value becomes a height inside the 3-D box by @nathanpond in #115
  • Charts: how Word shades a 3-D bar's faces, and fills the walls and floor by @nathanpond in #117
  • Charts: a 3-D scene does not fill its plot rectangle by @nathanpond in #118
  • Say that a linked branch closes its issue on merge by @nathanpond in #119
  • Charts: find gridlines in Word's raster as lines, not as pixels by @nathanpond in #121
  • Charts: thicker gridlines, and the floor's convergence as a scale-free measure by @nathanpond in #122
  • Charts: the 3-D scene's depth does not follow c:depthPercent by @nathanpond in #123
  • Charts: four more depths, and how far the depth keeps step by @nathanpond in #124
  • Charts: make the gridline reading hold still when the settings move by @nathanpond in #125
  • Make the floor's gridlines meet where they must by @nathanpond in #127
  • Measure what a reading off a 3-D plot is worth, not just how repeatable it is by @nathanpond in #128
  • Find where the convergence's error actually is by @nathanpond in #130
  • Try both ways of beating the convergence's conditioning, and fail by @nathanpond in #131
  • Pin what a 3-D bar's footprint is, without a projection to check it against by @nathanpond in #132
  • A category is a unit of width and a series is a unit of depth by @nathanpond in #134
  • The multi-bar rule needed no amendment; the box was wrong by @nathanpond in #135
  • The box is ceil(n/2) units tall by @nathanpond in #136
  • The box's height is half its width and depth together by @nathanpond in #137
  • There is no rotation order, because there is no rotation by @nathanpond in #138
  • Perspective is a different projection, not the square one with a divide by @nathanpond in #139
  • The rotation for rAngAx=0, read where nothing has to be fitted by @nathanpond in #140
  • The perspective camera, measured to closed form and implemented by @nathanpond in #142
  • The right-angle projection: oblique, margined, and fitted to its rectangle by @nathanpond in #161
  • The room a 3-D plot stands in: walls, floor and the gridlines on them by @nathanpond in #162
  • The depth axis, and where the groupings put the series by @nathanpond in #164
  • The boxes: shaded faces, painted back to front, negatives and all by @nathanpond in #165
  • The three-dimensional pie: sectors, rim, and what the schema will not turn by @nathanpond in #167
  • 3-D line and area as ribbons in depth by @nathanpond in #168
  • A surface is a different plot, and saying so beats faking a line by @nathanpond in #169
  • Forty-six more pages of the deep camera, and three ideas ruled out by @nathanpond in #170
  • The faces a document carries now render it by @nathanpond in #172
  • The navigation pane gets its tree by @nathanpond in #173
  • Word does not compose the jamo, and the leading was never the em's by @nathanpond in #174
  • A drawing's clips are honoured, and Word's player measured to the point by @nathanpond in #175
  • Tight and through wrap follow the polygon, not the box by @nathanpond in #176
  • Shapes turn, fill, shade and fit themselves, each law measured by @nathanpond in #177
  • PDF/A-2b, claimed and validated by the tool an archive would run by @nathanpond in #178
  • The PDFs are tagged: a structure tree in reading order, alt text, language by @nathanpond in #179
  • The net under the decoders now catches what the audit saw escape by @nathanpond in #180
  • The parser's recursive walks are bounded, so no document overflows the stack by @nathanpond in #187
  • Tier 2: bound every unbounded allocation and hang in the decoders and parsers by @nathanpond in #188
  • The font engine costs a hostile face its shaping, never the conversion by @nathanpond in #189
  • The cmap parser is bounded, so a crafted subtable neither OOMs nor hangs by @nathanpond in #190
  • Tier 3: a malformed image costs its own placement, not the conversion by @nathanpond in #191
  • Tier 3: the remaining aborts and malformed output, across PNG, TIFF, packaging, layout and the writer by @nathanpond in #206
  • Harden the newly-audited Packaging, Ooxml, Text, Layout and Fonts surfaces by @nathanpond in #207
  • Tier 4: wrong output and parser differentials by @nathanpond in #208
  • Tier 5: the latent lows, and the fuzzer the hardening was building toward by @nathanpond in #212
  • Close the crafted-input quadratic scans (#209-#216, #219) by @nathanpond in #235
  • Cut the happy-path recompute and allocation churn (tier 6, #217-#227) by @nathanpond in #236
  • Semgrep CI #2 — advisory static-analysis workflow (SARIF to code scanning) by @nathanpond in #237
  • Semgrep CI #3 — custom threat-model rules with fixtures by @nathanpond in #238
  • Semgrep CI #4 — diff-aware PR scanning + suppression policy by @nathanpond in #239
  • Semgrep CI #5 — documentation (README + CLAUDE.md) by @nathanpond in #240
  • Semgrep CI #6 — flip high/critical to blocking (baseline cleared) by @nathanpond in #242
  • Cap axis mark count against a hostile chart (#241) by @nathanpond in #243
  • #141 round 1 — rebuild the deep-camera fitter, find the 4th DOF (issue stays open) by @nathanpond in #244
  • Fix the #141 deep-camera fitter's page index (retract the spurious 4th param) by @nathanpond in #245
  • #141: deep-perspective camera — width-fill, deep offsets (ex + depth-aware ey), floor-F, new probe by @nathanpond in #246
  • #248: the corner finder is sound; the deep-page floor is Word's raster, not the fitting by @nathanpond in #249
  • #247: the third regime — corner-on verified by symmetry, rotX≥45 shown synthetic by @nathanpond in #250
  • #77: close the 3-D chart epic — record it in the scope as built by @nathanpond in #251
  • #95: an unreadable chart keeps its frame, so the document below does not reflow by @nathanpond in #252
  • Derive the 3-D pie's explosion rescale (#166 explosion strand) by @nathanpond in #253
  • Derive the 3-D pie's perspective as a projected camera (#166 perspective strand) by @nathanpond in #254
  • Make the 3-D pie respond to hPercent (#166 thickness strand) by @nathanpond in #255
  • Paint the 3-D pie's rim as a lit cylinder wall (#166 rim-gradient strand) by @nathanpond in #256
  • Build the two-slice boundary probe (#166 sector-pinch instrument) by @nathanpond in #257
  • Densify the two-slice probe; sector-redistribution resists a closed form (#166) by @nathanpond in #258
  • README: the 3-D pie's projective laws are derived, not fitted (#166) by @nathanpond in #259
  • README: record the feature-completeness work in the scope (#60) by @nathanpond in #260
  • Record #163's resolution in the clustered-box remarks by @nathanpond in #261
  • Pin CI actions to commit SHAs and add Dependabot for Actions (#270) by @nathanpond in #273
  • Add CodeQL analysis in CI, alongside Semgrep (#268) by @nathanpond in #275
  • Checked arithmetic across the library: kill the integer-overflow class (#266) by @nathanpond in #276
  • Add SECURITY.md and a written threat model (#269) by @nathanpond in #277
  • Thread a CancellationToken through the conversion (#267) by @nathanpond in #279
  • Property-based invariant tests for the untrusted entry points (#272) by @nathanpond in #280
  • Coverage-guided fuzzing harnesses (SharpFuzz) for the untrusted decoders (#263) by @nathanpond in #281
  • Continuous fuzzing in CI: nightly SharpFuzz/libFuzzer, and its first finding fixed (#264, #282) by @nathanpond in #283
  • Differential fuzz oracle for the image and font decoders (#265) by @nathanpond in #284
  • release.yml: NuGet trusted publishing (OIDC) instead of a stored key (#61, #271) by @nathanpond in #285

New Contributors

Full Changelog: https://github.com/nathanpond/n8PDF/commits/v0.1.0