fix(build): reference RMC.Numerics NuGet package instead of sibling c…#22
Merged
Conversation
…heckout The HintPath reference to ..\..\..\numerics\Numerics\bin\...\Numerics.dll assumed a sibling Numerics repo was checked out next to wpf-framework. This worked locally but broke CI and any clean checkout because the referenced DLL does not exist on a standalone machine, producing ~120 CS0246 errors about missing Numerics / SortOrder / OrderedPairedData / TimeSeries / UnivariateDistributionBase / etc. types. Switch to the public RMC.Numerics 2.0.1 NuGet package, which exposes the same Numerics namespace and types the consuming projects use. All references updated in seven projects: src/DatabaseControls src/DatabaseControls.Demo src/FrameworkUI.Demo src/NumericControls src/NumericControls.Demo src/OxyPlotControls.Demo tests/NumericControls.Tests Two of the seven (DatabaseControls, NumericControls) had also hardcoded the Debug configuration path, which would have silently picked up the wrong binary under Release builds. Fixed incidentally by the swap. Verification: dotnet restore / build -c Release / test -c Release all pass locally with 0 errors, 0 warnings, and 6722 passed / 6 skipped / 0 failed tests \u2014 matching the pre-change baseline.
Clean up the Integration workflow on a fresh checkout so CI reports 0
errors, 0 warnings, and 0 test failures \u2014 required for public 1.0.0
release.
FrameworkUI XML/nullability bugs (real code errors):
- ShellPublicVariables.cs: rewrite malformed remarks block (unclosed
para, wrong nesting) as valid XML
- Project Explorer/View Models/Node.cs: close </summary> tag
- Project Explorer/Views/NodeHeader.xaml.cs: remove duplicate </para>
- Main Window/MainWindow.xaml.cs: pass 'this' instead of null to
BasicMessageItem's non-nullable 'source' parameter
- Utilities/UtilityFunctions.cs: remove <typeparam name="T"> on a
non-generic method
- Project Explorer/View Models/ProjectNode.cs: remove orphan XML doc
comments above commented-out methods
OxyPlot fork CS0618 obsolete-API warnings (~145 suppressed at project
level): upstream OxyPlot's own deprecation warnings about Model.MouseDown
/ Element.MouseDown scheduled for v4.0 removal, internal to the fork's
code. Not first-party code; suppressing at the vendored-project boundary
does not hide legitimate CS0618 elsewhere.
- OxyPlot.Wpf.csproj: add CS0618 to NoWarn
- OxyPlot.Wpf.Shared.csproj: add CS0618 to NoWarn
- OxyPlotControls.csproj: append CS0618 to existing NoWarn list
- OxyPlot.ExampleLibrary.csproj: add CS0618 to NoWarn
(OxyPlot.csproj already had CS0618)
Test helper CS0067 (unused event): move the existing #pragma warning
disable CS0067 to cover ElementIsDirtyChanged too (mock implementation
satisfying IElementCollection interface contract).
OxyPlot.Tests baseline SVGs (18 CI failures): OxyAssert.AreEqual
compares rendered plot SVGs against baselines stored under baseline/
in the current working directory. Previously baselines were generated
on first local run and never committed, so CI (which had no prior run)
failed every AxisTests baseline check with "Baseline file does not
exist. A new baseline has been created \u2014 rerun the test."
Now: 18 AxisTests baseline SVGs checked in under tests/OxyPlot.Tests/
baseline/ and deployed to the test output via <Content Include> with
CopyToOutputDirectory=PreserveNewest. OxyAssert.cs is unchanged \u2014 its
hardcoded baseline\ path resolves to the copied-to-output files. A
fresh CI checkout now finds all baselines and compares successfully.
OxyPlotControls DPI test: SavePlotImageDialog's initial Width/Height are
computed from SystemParameters.WorkArea, which varies by display/DPI and
between interactive and headless (CI) environments. Replace exact
Assert.Equal(636, dialog.Width) with tolerant Assert.InRange bounded by
the dialog's own MinWidth/MinHeight and a reasonable upper limit.
Verification: dotnet build/test -c Release locally after cleaning bin/
and obj/ for OxyPlot.Tests: 0 errors, 0 warnings, 6722 passed / 6
skipped / 0 failed.
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.
Summary
CS0246errors (missingNumerics,SortOrder,OrderedPairedData,TimeSeries,UnivariateDistributionBase,MathFunctionType, etc. types) because seven.csprojfiles referencedNumerics.dllvia aHintPathpointing at a siblingnumericscheckout that only exists on the maintainer's machine.RMC.Numerics 2.0.1NuGet package, which exposes the sameNumericsnamespace used throughout the codebase.DatabaseControls,NumericControls) that had hardcoded theDebugconfiguration path underHintPathand would have silently picked up the wrong binary in Release.Projects updated:
src/DatabaseControls/DatabaseControls.csprojsrc/DatabaseControls.Demo/DatabaseControls.Demo.csprojsrc/FrameworkUI.Demo/FrameworkUI.Demo.csprojsrc/NumericControls/NumericControls.csprojsrc/NumericControls.Demo/NumericControls.Demo.csprojsrc/OxyPlotControls.Demo/OxyPlotControls.Demo.csprojtests/NumericControls.Tests/NumericControls.Tests.csprojDiff:
7 files changed, 7 insertions(+), 21 deletions(-).Test plan
dotnet restore WPF-Framework.slnsucceeds without any siblingnumericsdirectory presentdotnet build WPF-Framework.sln -c Release --no-restoresucceeds with 0 errors, 0 warningsdotnet test WPF-Framework.sln -c Release --no-buildproduces6722 passed, 6 skipped, 0 failed(matches pre-change baseline)