From 3a3168a6749b0b4363e924f9c2c2cf7d46a273b3 Mon Sep 17 00:00:00 2001 From: mahach666 <79989386+mahach666@users.noreply.github.com> Date: Fri, 13 Nov 2026 03:31:02 +0300 Subject: [PATCH] Prepare release 0.11.0 on the released IOScene 0.1.0 IOScene is referenced as [0.1.0, 0.2.0-0) instead of the preview range, so the release check on the IfcIO.Scene nuspec passes and the tag publishes the adapter. Version 0.11.0; the changelog section 0.11.0 takes the entries of [Unreleased]. The README, CONTRIBUTING and the scene adapter page no longer describe IOScene as a preview or the adapter as planned, and CONTRIBUTING says how to build against an IOScene version that is not on NuGet.org now that restore takes 0.1.0 from there. --- CHANGELOG.md | 4 +++- CONTRIBUTING.md | 6 ++++-- Directory.Build.props | 2 +- Directory.Packages.props | 2 +- README.md | 6 +++--- docs/scene-adapter.md | 4 ++-- 6 files changed, 14 insertions(+), 10 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f55705b..dc3ca3a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,9 +4,11 @@ All notable changes to the `IfcIO` library are documented in this file. ## [Unreleased] +## [0.11.0] - 2026-11-13 + ### Added - **`IfcIO.Scene`**: `IfcSceneReader` converts an IFC file or `IfcModel` into an `IOScene` `SceneDocument` in metres with Z up (GlobalIds as `SourceId` and `IfcGuid`, storeys as levels and tree nodes, property and quantity sets keyed `ifc:`, materials, 4D schedules), with diagnostics for elements without geometry. See `docs/scene-adapter.md`. -- **`IfcIO.Scene` NuGet package**: published on the `IfcIO` release tag and depends on exactly the same `IfcIO` version (`[X.Y.Z]`). It needs the released `IOScene` 0.1.0; the release fails while it would depend on an `IOScene` preview. +- **`IfcIO.Scene` NuGet package**: published on the `IfcIO` release tag and depends on exactly the same `IfcIO` version (`[X.Y.Z]`). It references `IOScene` with the range `[0.1.0, 0.2.0-0)`; a release that would depend on an `IOScene` preview fails. ### Fixed - **World placement of geometry read from IFC (`IfcModel.Open`)**: element meshes are now in world coordinates. Previously object placements were ignored and every element sat at its local origin. diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 8e9ca8c..adc8a58 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -20,8 +20,10 @@ Report security vulnerabilities privately through the **Security** tab. ## Scene adapter `src/IfcIO.Scene` converts IfcIO models into `IOScene` documents and uses only the public API of `IfcIO`; the `IfcIO` -package itself keeps no dependencies. `IOScene` is referenced with the range `[0.1.0-preview.2, 0.2.0-0)`. To build -against an `IOScene` preview that is not on NuGet.org yet, restore from a local folder of packages: +package itself keeps no dependencies. `IOScene` is referenced with the range `[0.1.0, 0.2.0-0)`, and restore takes the +lowest version in it, 0.1.0 from NuGet.org. To build against an `IOScene` version that is not on NuGet.org yet, start +the range in `Directory.Packages.props` at that version (for a new minor, move the upper bound too, for example +`[0.2.0-preview.1, 0.3.0-0)`) and restore from a local folder of packages: `dotnet build IfcIO.slnx -p:RestoreAdditionalProjectSources=`. Changing the `SceneModel.Key`, `SourceId` or `IfcGuid` the adapter writes, its `ifc:` key format, or the value form (`Text`, `Kind`, `Unit`) it writes under a key fails the golden identity test and is a breaking release. diff --git a/Directory.Build.props b/Directory.Build.props index a09d7fb..8cb7a60 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -14,7 +14,7 @@ - 0.10.0 + 0.11.0 mahach666 Copyright (c) 2026 IOExtend IfcIO diff --git a/Directory.Packages.props b/Directory.Packages.props index 7d7db8e..44f9091 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -5,7 +5,7 @@ - + diff --git a/README.md b/README.md index defe1ac..6a30418 100644 --- a/README.md +++ b/README.md @@ -142,7 +142,7 @@ Reads and writes ISO 10303-21 STEP physical files conforming to **IFC2x3 Coordin ## Limitations -- Version 0.10.0 is a preview. The API can evolve before 1.0. +- Version 0.11.0 is a preview. The API can evolve before 1.0. - IFC5 (USD/JSON) is not yet supported. - Boolean mesh cutting evaluates planar CSG half-spaces; non-planar curved intersections are tessellated. @@ -150,12 +150,12 @@ Reads and writes ISO 10303-21 STEP physical files conforming to **IFC2x3 Coordin IfcIO reads and writes IFC. The following extras are frozen: they get bug fixes only, no new features or options. -- HTML viewer (`IfcHtmlViewerExporter`, `ifcio view`). Viewing will move to [IOViewer](https://github.com/IOExtend/IOViewer) through a planned `IfcIO.Scene` adapter over the shared, planned `IOScene` model. +- HTML viewer (`IfcHtmlViewerExporter`, `ifcio view`). Viewing will move to [IOViewer](https://github.com/IOExtend/IOViewer) through the `IfcIO.Scene` adapter over the shared `IOScene` model. - GLB and OBJ export (`IfcGlbExporter`, `IfcObjExporter`). A shared GLB writer is planned in `IOScene.Formats`. - Clash detection, measure, grids, diff, and BCF archives (`IfcClashDetector`, `IfcClashGrouper`, `IfcMeasureEngine`, `IfcGridSystem`, `IfcDiffEngine`, `BcfArchive`, `BcfZipExporter`). These will move to a planned `IOCoord` package. - IFC work-schedule (4D) sequence logic. It stays in IfcIO. -None of these packages is published yet. The frozen features stay available and are removed no earlier than IfcIO 1.0, and only after a published replacement exists. +None of these replacements is published yet. The frozen features stay available and are removed no earlier than IfcIO 1.0, and only after a published replacement exists. ## Build from source and tests diff --git a/docs/scene-adapter.md b/docs/scene-adapter.md index 34a2b58..1187653 100644 --- a/docs/scene-adapter.md +++ b/docs/scene-adapter.md @@ -11,8 +11,8 @@ that read scenes work from it. The scene model and its rules are specified in th its [key registry](https://github.com/IOExtend/IOScene/blob/main/docs/keys.md). Status: preview. The `IfcIO.Scene` package is released with IfcIO, on the same tag, and depends on exactly the same -`IfcIO` version. Its first release needs `IOScene` 0.1.0: until then it references `IOScene` with the range -`[0.1.0-preview.2, 0.2.0-0)` and a release fails on purpose. +`IfcIO` version. It references `IOScene` with the range `[0.1.0, 0.2.0-0)`: any 0.1 release from 0.1.0 on, and no +preview of the next breaking line. ## Usage