Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 8 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

## [0.5.0] - 2026-09-23

An engine release, and a minor version for two reasons at once: the idiomatic
API gains members, and the native mirror breaks where Box3D's C API broke.
Before 1.0 a break is carried by a minor version, and every one is listed below.

Box3D moves from `3fc20f5` to `9e5a4cd`, the six upstream commits between them.
The idiomatic `Box3D.NET` only gains members: nothing in it is removed or
changes signature, and package validation against the last release reports no
Expand Down Expand Up @@ -617,7 +623,8 @@ rather than left standing:
follow Box3D and are documented rather than corrected.
- Single precision only. Box3D's large-world mode changes the ABI and would need
a separate package.
[Unreleased]: https://github.com/Miguel249/Box3D.NET/compare/v0.4.0...HEAD
[Unreleased]: https://github.com/Miguel249/Box3D.NET/compare/v0.5.0...HEAD
[0.5.0]: https://github.com/Miguel249/Box3D.NET/compare/v0.4.0...v0.5.0
[0.4.0]: https://github.com/Miguel249/Box3D.NET/compare/v0.3.0...v0.4.0
[0.3.0]: https://github.com/Miguel249/Box3D.NET/compare/v0.2.0...v0.3.0
[0.2.0]: https://github.com/Miguel249/Box3D.NET/compare/v0.1.0...v0.2.0
Expand Down
2 changes: 1 addition & 1 deletion Directory.Build.props
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@

<!-- Package metadata. -->
<PropertyGroup>
<VersionPrefix>0.4.0</VersionPrefix>
<VersionPrefix>0.5.0</VersionPrefix>
<Authors>Box3D.NET contributors</Authors>
<Company>Box3D.NET</Company>
<Product>Box3D.NET</Product>
Expand Down
13 changes: 12 additions & 1 deletion Directory.Build.targets
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,18 @@
VersionPrefix, not in the one after it.
-->
<EnablePackageValidation>true</EnablePackageValidation>
<PackageValidationBaselineVersion>0.3.0</PackageValidationBaselineVersion>
<PackageValidationBaselineVersion>0.4.0</PackageValidationBaselineVersion>

<!--
A break recorded in CompatibilitySuppressions.xml is keyed by the pair of
assemblies it was found between, and a package packed here has two
possible shapes. With Box3DTargetApple, as CI and the release pack, the
baseline's iOS assembly is compared with the new iOS assembly; without
it, as a local pack, it is compared with net8.0 instead. The file records
both pairs, so whichever build runs finds the other pair's entries
unused, and that must not fail it.
-->
<ApiCompatPermitUnnecessarySuppressions>true</ApiCompatPermitUnnecessarySuppressions>
</PropertyGroup>

<ItemGroup Condition="'$(IsPackable)' == 'true'">
Expand Down
322 changes: 322 additions & 0 deletions src/Box3D.NET.Native/CompatibilitySuppressions.xml
Original file line number Diff line number Diff line change
@@ -1,6 +1,48 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- https://learn.microsoft.com/dotnet/fundamentals/package-validation/diagnostic-ids -->
<Suppressions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Suppression>
<DiagnosticId>CP0001</DiagnosticId>
<Target>T:Box3D.Native.b3TreeNodeChildren</Target>
<Left>lib/net10.0-ios26.0/Box3D.NET.Native.dll</Left>
<Right>lib/net10.0-ios26.0/Box3D.NET.Native.dll</Right>
<IsBaselineSuppression>true</IsBaselineSuppression>
</Suppression>
<Suppression>
<DiagnosticId>CP0001</DiagnosticId>
<Target>T:Box3D.Native.b3TreeNodeFlags</Target>
<Left>lib/net10.0-ios26.0/Box3D.NET.Native.dll</Left>
<Right>lib/net10.0-ios26.0/Box3D.NET.Native.dll</Right>
<IsBaselineSuppression>true</IsBaselineSuppression>
</Suppression>
<Suppression>
<DiagnosticId>CP0001</DiagnosticId>
<Target>T:Box3D.Native.b3TreeNodeFlagsStorage</Target>
<Left>lib/net10.0-ios26.0/Box3D.NET.Native.dll</Left>
<Right>lib/net10.0-ios26.0/Box3D.NET.Native.dll</Right>
<IsBaselineSuppression>true</IsBaselineSuppression>
</Suppression>
<Suppression>
<DiagnosticId>CP0001</DiagnosticId>
<Target>T:Box3D.Native.b3TreeNodeChildren</Target>
<Left>lib/net10.0-ios26.0/Box3D.NET.Native.dll</Left>
<Right>lib/net8.0/Box3D.NET.Native.dll</Right>
<IsBaselineSuppression>true</IsBaselineSuppression>
</Suppression>
<Suppression>
<DiagnosticId>CP0001</DiagnosticId>
<Target>T:Box3D.Native.b3TreeNodeFlags</Target>
<Left>lib/net10.0-ios26.0/Box3D.NET.Native.dll</Left>
<Right>lib/net8.0/Box3D.NET.Native.dll</Right>
<IsBaselineSuppression>true</IsBaselineSuppression>
</Suppression>
<Suppression>
<DiagnosticId>CP0001</DiagnosticId>
<Target>T:Box3D.Native.b3TreeNodeFlagsStorage</Target>
<Left>lib/net10.0-ios26.0/Box3D.NET.Native.dll</Left>
<Right>lib/net8.0/Box3D.NET.Native.dll</Right>
<IsBaselineSuppression>true</IsBaselineSuppression>
</Suppression>
<Suppression>
<DiagnosticId>CP0001</DiagnosticId>
<Target>T:Box3D.Native.b3TreeNodeChildren</Target>
Expand All @@ -22,6 +64,286 @@
<Right>lib/net8.0/Box3D.NET.Native.dll</Right>
<IsBaselineSuppression>true</IsBaselineSuppression>
</Suppression>
<Suppression>
<DiagnosticId>CP0002</DiagnosticId>
<Target>F:Box3D.Native.b3Counters.byteCount</Target>
<Left>lib/net10.0-ios26.0/Box3D.NET.Native.dll</Left>
<Right>lib/net10.0-ios26.0/Box3D.NET.Native.dll</Right>
<IsBaselineSuppression>true</IsBaselineSuppression>
</Suppression>
<Suppression>
<DiagnosticId>CP0002</DiagnosticId>
<Target>F:Box3D.Native.b3DynamicTree.freeList</Target>
<Left>lib/net10.0-ios26.0/Box3D.NET.Native.dll</Left>
<Right>lib/net10.0-ios26.0/Box3D.NET.Native.dll</Right>
<IsBaselineSuppression>true</IsBaselineSuppression>
</Suppression>
<Suppression>
<DiagnosticId>CP0002</DiagnosticId>
<Target>F:Box3D.Native.b3DynamicTree.nodeCount</Target>
<Left>lib/net10.0-ios26.0/Box3D.NET.Native.dll</Left>
<Right>lib/net10.0-ios26.0/Box3D.NET.Native.dll</Right>
<IsBaselineSuppression>true</IsBaselineSuppression>
</Suppression>
<Suppression>
<DiagnosticId>CP0002</DiagnosticId>
<Target>F:Box3D.Native.b3DynamicTree.root</Target>
<Left>lib/net10.0-ios26.0/Box3D.NET.Native.dll</Left>
<Right>lib/net10.0-ios26.0/Box3D.NET.Native.dll</Right>
<IsBaselineSuppression>true</IsBaselineSuppression>
</Suppression>
<Suppression>
<DiagnosticId>CP0002</DiagnosticId>
<Target>F:Box3D.Native.b3HeightFieldData.clockwise</Target>
<Left>lib/net10.0-ios26.0/Box3D.NET.Native.dll</Left>
<Right>lib/net10.0-ios26.0/Box3D.NET.Native.dll</Right>
<IsBaselineSuppression>true</IsBaselineSuppression>
</Suppression>
<Suppression>
<DiagnosticId>CP0002</DiagnosticId>
<Target>F:Box3D.Native.b3HeightFieldData.hash</Target>
<Left>lib/net10.0-ios26.0/Box3D.NET.Native.dll</Left>
<Right>lib/net10.0-ios26.0/Box3D.NET.Native.dll</Right>
<IsBaselineSuppression>true</IsBaselineSuppression>
</Suppression>
<Suppression>
<DiagnosticId>CP0002</DiagnosticId>
<Target>F:Box3D.Native.b3HullData.hash</Target>
<Left>lib/net10.0-ios26.0/Box3D.NET.Native.dll</Left>
<Right>lib/net10.0-ios26.0/Box3D.NET.Native.dll</Right>
<IsBaselineSuppression>true</IsBaselineSuppression>
</Suppression>
<Suppression>
<DiagnosticId>CP0002</DiagnosticId>
<Target>F:Box3D.Native.b3HullData.padding</Target>
<Left>lib/net10.0-ios26.0/Box3D.NET.Native.dll</Left>
<Right>lib/net10.0-ios26.0/Box3D.NET.Native.dll</Right>
<IsBaselineSuppression>true</IsBaselineSuppression>
</Suppression>
<Suppression>
<DiagnosticId>CP0002</DiagnosticId>
<Target>F:Box3D.Native.b3MeshData.hash</Target>
<Left>lib/net10.0-ios26.0/Box3D.NET.Native.dll</Left>
<Right>lib/net10.0-ios26.0/Box3D.NET.Native.dll</Right>
<IsBaselineSuppression>true</IsBaselineSuppression>
</Suppression>
<Suppression>
<DiagnosticId>CP0002</DiagnosticId>
<Target>F:Box3D.Native.b3Profile.applyRestitution</Target>
<Left>lib/net10.0-ios26.0/Box3D.NET.Native.dll</Left>
<Right>lib/net10.0-ios26.0/Box3D.NET.Native.dll</Right>
<IsBaselineSuppression>true</IsBaselineSuppression>
</Suppression>
<Suppression>
<DiagnosticId>CP0002</DiagnosticId>
<Target>F:Box3D.Native.b3TreeNode.categoryBits</Target>
<Left>lib/net10.0-ios26.0/Box3D.NET.Native.dll</Left>
<Right>lib/net10.0-ios26.0/Box3D.NET.Native.dll</Right>
<IsBaselineSuppression>true</IsBaselineSuppression>
</Suppression>
<Suppression>
<DiagnosticId>CP0002</DiagnosticId>
<Target>F:Box3D.Native.b3TreeNode.children</Target>
<Left>lib/net10.0-ios26.0/Box3D.NET.Native.dll</Left>
<Right>lib/net10.0-ios26.0/Box3D.NET.Native.dll</Right>
<IsBaselineSuppression>true</IsBaselineSuppression>
</Suppression>
<Suppression>
<DiagnosticId>CP0002</DiagnosticId>
<Target>F:Box3D.Native.b3TreeNode.flags</Target>
<Left>lib/net10.0-ios26.0/Box3D.NET.Native.dll</Left>
<Right>lib/net10.0-ios26.0/Box3D.NET.Native.dll</Right>
<IsBaselineSuppression>true</IsBaselineSuppression>
</Suppression>
<Suppression>
<DiagnosticId>CP0002</DiagnosticId>
<Target>F:Box3D.Native.b3TreeNode.height</Target>
<Left>lib/net10.0-ios26.0/Box3D.NET.Native.dll</Left>
<Right>lib/net10.0-ios26.0/Box3D.NET.Native.dll</Right>
<IsBaselineSuppression>true</IsBaselineSuppression>
</Suppression>
<Suppression>
<DiagnosticId>CP0002</DiagnosticId>
<Target>F:Box3D.Native.b3TreeNode.next</Target>
<Left>lib/net10.0-ios26.0/Box3D.NET.Native.dll</Left>
<Right>lib/net10.0-ios26.0/Box3D.NET.Native.dll</Right>
<IsBaselineSuppression>true</IsBaselineSuppression>
</Suppression>
<Suppression>
<DiagnosticId>CP0002</DiagnosticId>
<Target>F:Box3D.Native.b3TreeNode.parent</Target>
<Left>lib/net10.0-ios26.0/Box3D.NET.Native.dll</Left>
<Right>lib/net10.0-ios26.0/Box3D.NET.Native.dll</Right>
<IsBaselineSuppression>true</IsBaselineSuppression>
</Suppression>
<Suppression>
<DiagnosticId>CP0002</DiagnosticId>
<Target>F:Box3D.Native.b3TreeNode.userData</Target>
<Left>lib/net10.0-ios26.0/Box3D.NET.Native.dll</Left>
<Right>lib/net10.0-ios26.0/Box3D.NET.Native.dll</Right>
<IsBaselineSuppression>true</IsBaselineSuppression>
</Suppression>
<Suppression>
<DiagnosticId>CP0002</DiagnosticId>
<Target>M:Box3D.Native.B3.b3DynamicTree_ValidateNoEnlarged(Box3D.Native.b3DynamicTree*)</Target>
<Left>lib/net10.0-ios26.0/Box3D.NET.Native.dll</Left>
<Right>lib/net10.0-ios26.0/Box3D.NET.Native.dll</Right>
<IsBaselineSuppression>true</IsBaselineSuppression>
</Suppression>
<Suppression>
<DiagnosticId>CP0002</DiagnosticId>
<Target>M:Box3D.Native.B3.b3GetByteCount</Target>
<Left>lib/net10.0-ios26.0/Box3D.NET.Native.dll</Left>
<Right>lib/net10.0-ios26.0/Box3D.NET.Native.dll</Right>
<IsBaselineSuppression>true</IsBaselineSuppression>
</Suppression>
<Suppression>
<DiagnosticId>CP0002</DiagnosticId>
<Target>M:Box3D.Native.B3.b3SetAllocator(,)</Target>
<Left>lib/net10.0-ios26.0/Box3D.NET.Native.dll</Left>
<Right>lib/net10.0-ios26.0/Box3D.NET.Native.dll</Right>
<IsBaselineSuppression>true</IsBaselineSuppression>
</Suppression>
<Suppression>
<DiagnosticId>CP0002</DiagnosticId>
<Target>F:Box3D.Native.b3Counters.byteCount</Target>
<Left>lib/net10.0-ios26.0/Box3D.NET.Native.dll</Left>
<Right>lib/net8.0/Box3D.NET.Native.dll</Right>
<IsBaselineSuppression>true</IsBaselineSuppression>
</Suppression>
<Suppression>
<DiagnosticId>CP0002</DiagnosticId>
<Target>F:Box3D.Native.b3DynamicTree.freeList</Target>
<Left>lib/net10.0-ios26.0/Box3D.NET.Native.dll</Left>
<Right>lib/net8.0/Box3D.NET.Native.dll</Right>
<IsBaselineSuppression>true</IsBaselineSuppression>
</Suppression>
<Suppression>
<DiagnosticId>CP0002</DiagnosticId>
<Target>F:Box3D.Native.b3DynamicTree.nodeCount</Target>
<Left>lib/net10.0-ios26.0/Box3D.NET.Native.dll</Left>
<Right>lib/net8.0/Box3D.NET.Native.dll</Right>
<IsBaselineSuppression>true</IsBaselineSuppression>
</Suppression>
<Suppression>
<DiagnosticId>CP0002</DiagnosticId>
<Target>F:Box3D.Native.b3DynamicTree.root</Target>
<Left>lib/net10.0-ios26.0/Box3D.NET.Native.dll</Left>
<Right>lib/net8.0/Box3D.NET.Native.dll</Right>
<IsBaselineSuppression>true</IsBaselineSuppression>
</Suppression>
<Suppression>
<DiagnosticId>CP0002</DiagnosticId>
<Target>F:Box3D.Native.b3HeightFieldData.clockwise</Target>
<Left>lib/net10.0-ios26.0/Box3D.NET.Native.dll</Left>
<Right>lib/net8.0/Box3D.NET.Native.dll</Right>
<IsBaselineSuppression>true</IsBaselineSuppression>
</Suppression>
<Suppression>
<DiagnosticId>CP0002</DiagnosticId>
<Target>F:Box3D.Native.b3HeightFieldData.hash</Target>
<Left>lib/net10.0-ios26.0/Box3D.NET.Native.dll</Left>
<Right>lib/net8.0/Box3D.NET.Native.dll</Right>
<IsBaselineSuppression>true</IsBaselineSuppression>
</Suppression>
<Suppression>
<DiagnosticId>CP0002</DiagnosticId>
<Target>F:Box3D.Native.b3HullData.hash</Target>
<Left>lib/net10.0-ios26.0/Box3D.NET.Native.dll</Left>
<Right>lib/net8.0/Box3D.NET.Native.dll</Right>
<IsBaselineSuppression>true</IsBaselineSuppression>
</Suppression>
<Suppression>
<DiagnosticId>CP0002</DiagnosticId>
<Target>F:Box3D.Native.b3HullData.padding</Target>
<Left>lib/net10.0-ios26.0/Box3D.NET.Native.dll</Left>
<Right>lib/net8.0/Box3D.NET.Native.dll</Right>
<IsBaselineSuppression>true</IsBaselineSuppression>
</Suppression>
<Suppression>
<DiagnosticId>CP0002</DiagnosticId>
<Target>F:Box3D.Native.b3MeshData.hash</Target>
<Left>lib/net10.0-ios26.0/Box3D.NET.Native.dll</Left>
<Right>lib/net8.0/Box3D.NET.Native.dll</Right>
<IsBaselineSuppression>true</IsBaselineSuppression>
</Suppression>
<Suppression>
<DiagnosticId>CP0002</DiagnosticId>
<Target>F:Box3D.Native.b3Profile.applyRestitution</Target>
<Left>lib/net10.0-ios26.0/Box3D.NET.Native.dll</Left>
<Right>lib/net8.0/Box3D.NET.Native.dll</Right>
<IsBaselineSuppression>true</IsBaselineSuppression>
</Suppression>
<Suppression>
<DiagnosticId>CP0002</DiagnosticId>
<Target>F:Box3D.Native.b3TreeNode.categoryBits</Target>
<Left>lib/net10.0-ios26.0/Box3D.NET.Native.dll</Left>
<Right>lib/net8.0/Box3D.NET.Native.dll</Right>
<IsBaselineSuppression>true</IsBaselineSuppression>
</Suppression>
<Suppression>
<DiagnosticId>CP0002</DiagnosticId>
<Target>F:Box3D.Native.b3TreeNode.children</Target>
<Left>lib/net10.0-ios26.0/Box3D.NET.Native.dll</Left>
<Right>lib/net8.0/Box3D.NET.Native.dll</Right>
<IsBaselineSuppression>true</IsBaselineSuppression>
</Suppression>
<Suppression>
<DiagnosticId>CP0002</DiagnosticId>
<Target>F:Box3D.Native.b3TreeNode.flags</Target>
<Left>lib/net10.0-ios26.0/Box3D.NET.Native.dll</Left>
<Right>lib/net8.0/Box3D.NET.Native.dll</Right>
<IsBaselineSuppression>true</IsBaselineSuppression>
</Suppression>
<Suppression>
<DiagnosticId>CP0002</DiagnosticId>
<Target>F:Box3D.Native.b3TreeNode.height</Target>
<Left>lib/net10.0-ios26.0/Box3D.NET.Native.dll</Left>
<Right>lib/net8.0/Box3D.NET.Native.dll</Right>
<IsBaselineSuppression>true</IsBaselineSuppression>
</Suppression>
<Suppression>
<DiagnosticId>CP0002</DiagnosticId>
<Target>F:Box3D.Native.b3TreeNode.next</Target>
<Left>lib/net10.0-ios26.0/Box3D.NET.Native.dll</Left>
<Right>lib/net8.0/Box3D.NET.Native.dll</Right>
<IsBaselineSuppression>true</IsBaselineSuppression>
</Suppression>
<Suppression>
<DiagnosticId>CP0002</DiagnosticId>
<Target>F:Box3D.Native.b3TreeNode.parent</Target>
<Left>lib/net10.0-ios26.0/Box3D.NET.Native.dll</Left>
<Right>lib/net8.0/Box3D.NET.Native.dll</Right>
<IsBaselineSuppression>true</IsBaselineSuppression>
</Suppression>
<Suppression>
<DiagnosticId>CP0002</DiagnosticId>
<Target>F:Box3D.Native.b3TreeNode.userData</Target>
<Left>lib/net10.0-ios26.0/Box3D.NET.Native.dll</Left>
<Right>lib/net8.0/Box3D.NET.Native.dll</Right>
<IsBaselineSuppression>true</IsBaselineSuppression>
</Suppression>
<Suppression>
<DiagnosticId>CP0002</DiagnosticId>
<Target>M:Box3D.Native.B3.b3DynamicTree_ValidateNoEnlarged(Box3D.Native.b3DynamicTree*)</Target>
<Left>lib/net10.0-ios26.0/Box3D.NET.Native.dll</Left>
<Right>lib/net8.0/Box3D.NET.Native.dll</Right>
<IsBaselineSuppression>true</IsBaselineSuppression>
</Suppression>
<Suppression>
<DiagnosticId>CP0002</DiagnosticId>
<Target>M:Box3D.Native.B3.b3GetByteCount</Target>
<Left>lib/net10.0-ios26.0/Box3D.NET.Native.dll</Left>
<Right>lib/net8.0/Box3D.NET.Native.dll</Right>
<IsBaselineSuppression>true</IsBaselineSuppression>
</Suppression>
<Suppression>
<DiagnosticId>CP0002</DiagnosticId>
<Target>M:Box3D.Native.B3.b3SetAllocator(,)</Target>
<Left>lib/net10.0-ios26.0/Box3D.NET.Native.dll</Left>
<Right>lib/net8.0/Box3D.NET.Native.dll</Right>
<IsBaselineSuppression>true</IsBaselineSuppression>
</Suppression>
<Suppression>
<DiagnosticId>CP0002</DiagnosticId>
<Target>F:Box3D.Native.b3Counters.byteCount</Target>
Expand Down
Loading