Commit 4e5e34c
authored
chore(deps): bump the safe dependency lot, with the Hangfire family in lockstep (#266)
* chore(deps): bump the safe dependency lot, with the Hangfire family in lockstep
All eleven Dependabot PRs (#241-#251) were closed unmerged, so the bumps are redone here
as one verified change. This is the lot where the new version is a patch or minor within
the same major; the major jumps (Npgsql 9->10, Microsoft.Data.Sqlite 9->10,
Microsoft.Data.SqlClient 5->7, TestHost 8->10, Aspire 9.5->13.4) are deliberately left
out and assessed separately.
Hangfire.Core, Hangfire.SqlServer and Hangfire.AspNetCore move together to 1.8.24.
Hangfire.NetCore arrives transitively and pins Hangfire.Core to an exact version, so
bumping any one member alone fails restore with NU1608 — which is why #246 and #247 were
red and could never have gone green on their own. dependabot.yml now groups Hangfire* so
the family only ever travels as a unit.
Microsoft.AspNetCore.TestHost goes to 8.0.29 rather than the available 10.0.10: the test
projects target net8.0, so staying in the 8.x servicing line is the bump that belongs
here.
DocumentFormat.OpenXml 3.1.1 -> 3.5.1 made WorkbookPart.Workbook nullable, which
TreatWarningsAsErrors turned into a build failure in XlsxRowReader. It is now checked
rather than assumed; the existing "contains no worksheets" error covers that case.
Verified after a --no-incremental rebuild: Core 303, AspNetCore 159, UI (bUnit 2.9) 245,
WebUi E2E (Playwright 1.61) 24 passed / 0 skipped with NEOREPORTS_REQUIRE_BROWSER=1,
Jobs 34, Sources.Xlsx 32, Formats.Xlsx 7, Formats.Csv 5, Destinations.S3 3,
Destinations.Local 14 — 0 failures.
* chore(deps): use an explicit type on the OpenXml nullability guard
Sonar's new-code maintainability gate is a debt ratio, and this PR changes exactly three
lines of C#, so a single 'use explicit type instead of var' on one of them was enough to
take the rating to 3. Sheet[]? is also the clearer read next to the null-conditional
chain that produces it.
* fix(sources): validate XlsxRowReader's arguments before the iterator starts
`ReadRows` contains `yield`, so none of its body — including
`ArgumentNullException.ThrowIfNull(stream)` — executed until the caller's first
MoveNext. A null stream therefore surfaced from inside the enumeration, with a stack that
no longer pointed at the call that passed it. Splitting the eager wrapper from the
iterator makes the check fire where the mistake was made.
This is what SonarCloud's new-code maintainability gate flagged on the dependency-bump
PR. The line is pre-existing (63deea1, 2026-07-17) and Sonar counts it as new because
the master baseline has been broken since the 50k-LOC free-tier cap hit on 2026-07-12 —
but the finding itself is real, and the file already had to change here for the OpenXml
nullability guard, so it is fixed rather than worked around.
No test: XlsxRowReader is internal with no InternalsVisibleTo, and the public surface
takes a file path or S3 config rather than a Stream, so the null path is not reachable
from outside. The existing 32 tests pass unchanged, which is what confirms the split did
not alter enumeration semantics.1 parent 8063125 commit 4e5e34c
3 files changed
Lines changed: 34 additions & 14 deletions
File tree
- .github
- build
- src/Sources/NeoReports.Sources.Xlsx
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
13 | 13 | | |
14 | 14 | | |
15 | 15 | | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
16 | 23 | | |
17 | 24 | | |
18 | 25 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
9 | | - | |
| 9 | + | |
10 | 10 | | |
11 | 11 | | |
12 | 12 | | |
| |||
19 | 19 | | |
20 | 20 | | |
21 | 21 | | |
22 | | - | |
| 22 | + | |
23 | 23 | | |
24 | 24 | | |
25 | 25 | | |
26 | | - | |
27 | | - | |
| 26 | + | |
| 27 | + | |
28 | 28 | | |
29 | | - | |
| 29 | + | |
30 | 30 | | |
31 | 31 | | |
32 | 32 | | |
33 | 33 | | |
34 | 34 | | |
35 | | - | |
36 | | - | |
37 | | - | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
38 | 38 | | |
39 | 39 | | |
40 | 40 | | |
41 | 41 | | |
42 | 42 | | |
43 | 43 | | |
44 | | - | |
45 | | - | |
| 44 | + | |
| 45 | + | |
46 | 46 | | |
47 | 47 | | |
48 | 48 | | |
49 | 49 | | |
50 | 50 | | |
51 | 51 | | |
52 | 52 | | |
53 | | - | |
54 | | - | |
| 53 | + | |
| 54 | + | |
55 | 55 | | |
56 | 56 | | |
57 | | - | |
| 57 | + | |
58 | 58 | | |
59 | 59 | | |
60 | 60 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
51 | 51 | | |
52 | 52 | | |
53 | 53 | | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
54 | 57 | | |
55 | 58 | | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
56 | 66 | | |
57 | 67 | | |
58 | 68 | | |
| |||
204 | 214 | | |
205 | 215 | | |
206 | 216 | | |
207 | | - | |
| 217 | + | |
| 218 | + | |
| 219 | + | |
| 220 | + | |
208 | 221 | | |
209 | 222 | | |
210 | 223 | | |
| |||
0 commit comments