From 91dd1d39ef02bb700702539757ab3a5641ad22f5 Mon Sep 17 00:00:00 2001 From: PascalNun Date: Sat, 18 Jul 2026 17:51:22 +0200 Subject: [PATCH] Prepare v0.3.3-alpha release --- .github/workflows/validate.yml | 44 ++++++++++++++++++++++++ CHANGELOG.md | 21 +++++++++++ README.md | 5 +-- RhinoSpatial/RhinoSpatial.csproj | 2 +- RhinoSpatial/RhinoSpatialInfo.cs | 2 +- docs/PROJECT_SCOPE.md | 2 +- docs/ROADMAP.md | 2 +- package/food4rhino/Food4Rhino-listing.md | 4 +-- package/yak/manifest.yml | 2 +- scripts/build-food4rhino-zip.sh | 1 + scripts/build-yak.sh | 1 + 11 files changed, 77 insertions(+), 9 deletions(-) create mode 100644 .github/workflows/validate.yml create mode 100644 CHANGELOG.md diff --git a/.github/workflows/validate.yml b/.github/workflows/validate.yml new file mode 100644 index 0000000..9b1574a --- /dev/null +++ b/.github/workflows/validate.yml @@ -0,0 +1,44 @@ +name: Validate + +on: + pull_request: + push: + branches: + - main + +permissions: + contents: read + +jobs: + build-and-check: + runs-on: macos-14 + timeout-minutes: 20 + + steps: + - name: Check out repository + uses: actions/checkout@v4 + + - name: Set up .NET + uses: actions/setup-dotnet@v4 + with: + dotnet-version: | + 7.0.x + 10.0.x + + - name: Restore + run: dotnet restore RhinoSpatial.sln + + - name: Build + run: dotnet build RhinoSpatial.sln -c Release --no-restore + + - name: Check OGC requests + run: dotnet run --project RhinoSpatial.Sandbox.csproj -c Release --no-build -- ogc-request-check + + - name: Check reference sources + run: dotnet run --project RhinoSpatial.Sandbox.csproj -c Release --no-build -- reference-source-check + + - name: Check 3D Tiles selection + run: dotnet run --project RhinoSpatial.Sandbox.csproj -c Release --no-build -- tiles-selection-check + + - name: Validate source catalogue JSON + run: python3 -m json.tool examples/sources.json >/dev/null diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..c3d543f --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,21 @@ +# Changelog + +RhinoSpatial follows an alpha release line while its existing source categories are stabilized through real project use. Earlier releases remain documented on [GitHub Releases](https://github.com/PascalNun/RhinoSpatial/releases). + +## 0.3.3-alpha — 2026-07-18 + +### Highlights + +- Stabilized Google Photorealistic 3D Tiles traversal around one coherent refinement frontier, with branch-level coarser-parent fallback instead of mixing unrelated detail levels. +- Added geographic bounds checks and richer projection/traversal diagnostics for missing, oversized, or out-of-context 3D Tiles content. +- Made the shared elevation baseline deterministic so Google 3D Tiles, LoD2 buildings, and terrain remain aligned regardless of Grasshopper connection or solution order. +- Broadened Spatial Context reference metadata to cover WFS, WMS, WCS, GeoTIFF, Shapefile, GeoJSON, CityJSON, CityGML/GML/XML, Esri ASCII Grid, XYZ/CSV terrain grids, folders, and LoD ZIP archives. +- Replaced the implicit Frankfurt startup assumption with a saved-selection/reference-extent/neutral-world startup sequence and an explicit fallback-SRS warning. +- Improved WCS coverage discovery and multipart GeoTIFF extraction, WMS/WFS axis and HTTPS handling, LoD2 CRS inheritance, and EPSG:28992/7415 transforms. +- Expanded tested-source documentation, validation checks, tutorial screenshots, and downloadable Grasshopper examples. + +### Compatibility + +- Rhino 8 and Grasshopper. +- Google 3D Tiles still require a user-managed Google Maps Platform API key and are intended only as visual reference context. +- This remains an alpha release; provider-specific services and unusual CRS/geometry combinations can still expose edge cases. diff --git a/README.md b/README.md index af91af6..7eb6811 100644 --- a/README.md +++ b/README.md @@ -79,14 +79,15 @@ For the full tutorial, see the [RhinoSpatial workflow](docs/SHOWCASE.md). - [Test source catalogue](docs/TEST_SOURCES.md) - [Project scope](docs/PROJECT_SCOPE.md) - [Roadmap](docs/ROADMAP.md) +- [Changelog](CHANGELOG.md) ## Project Status RhinoSpatial is currently still in an alpha stage. -The `v0.3.2-alpha` release continues the first complete alpha line where the planned core data layers are present as a coherent toolkit. This release focuses on source compatibility and stabilization: broader vector inputs, cleaner LoD2 source handling, updated test-source documentation, and leaner packaging. The source categories are considered stable at the category level, while individual providers, geometry conversion paths, fallbacks, and documentation are still expected to improve through real-world use. +The `v0.3.3-alpha` release continues the first complete alpha line where the planned core data layers are present as a coherent toolkit. This release focuses on reliable alignment and broader source compatibility: Google 3D Tiles now use a coherent refinement frontier and stronger projection diagnostics, elevation placement no longer depends on Grasshopper solution order, Spatial Context can infer reference extents from more service and local-file sources, and WFS/WMS/WCS/LoD2 provider handling has been strengthened. The source categories are considered stable at the category level, while individual providers, geometry conversion paths, fallbacks, and documentation are still expected to improve through real-world use. -As of `v0.3.2-alpha`, the originally planned core source set is present: WFS, WMS, LoD2 Buildings, Terrain, GeoTIFF, OSM, and the Google 3D Tiles reference viewer all share the same Spatial Context workflow. +As of `v0.3.3-alpha`, the originally planned core source set is present: WFS, WMS, LoD2 Buildings, Terrain, GeoTIFF, OSM, and the Google 3D Tiles reference viewer all share the same Spatial Context workflow. It has only been tested with a relatively small number of WFS, WMS, LoD2, terrain, GeoTIFF, OSM, and 3D Tiles workflows so far. Behavior may still vary depending on the provider, geometry type, coordinate system, service version, response format, API access, or local file metadata. diff --git a/RhinoSpatial/RhinoSpatial.csproj b/RhinoSpatial/RhinoSpatial.csproj index d2ccd7b..8c989a5 100644 --- a/RhinoSpatial/RhinoSpatial.csproj +++ b/RhinoSpatial/RhinoSpatial.csproj @@ -8,7 +8,7 @@ - 0.3.2 + 0.3.3 RhinoSpatial RhinoSpatial RhinoSpatial diff --git a/RhinoSpatial/RhinoSpatialInfo.cs b/RhinoSpatial/RhinoSpatialInfo.cs index 3d9efd8..77c8bb6 100644 --- a/RhinoSpatial/RhinoSpatialInfo.cs +++ b/RhinoSpatial/RhinoSpatialInfo.cs @@ -18,6 +18,6 @@ public class RhinoSpatialInfo : GH_AssemblyInfo public override string AuthorContact => "https://github.com/PascalNun/RhinoSpatial"; - public override string AssemblyVersion => GetType().Assembly.GetName().Version?.ToString() ?? "0.3.2"; + public override string AssemblyVersion => GetType().Assembly.GetName().Version?.ToString() ?? "0.3.3"; } } diff --git a/docs/PROJECT_SCOPE.md b/docs/PROJECT_SCOPE.md index 43cca72..b60a854 100644 --- a/docs/PROJECT_SCOPE.md +++ b/docs/PROJECT_SCOPE.md @@ -72,7 +72,7 @@ The following source / component types are considered part of the core RhinoSpat - **Load OSM** - **3D Tiles Viewer (Google)** as a visual reference viewer, not a normal source/import workflow -These form the core data layers of the project and are considered stable at the source-category level. The `v0.3.2-alpha` release continues the first complete alpha line where this planned source set is present together; future work should mainly refine robustness, quality, provider compatibility, examples, and documentation inside this scope. +These form the core data layers of the project and are considered stable at the source-category level. The `v0.3.3-alpha` release continues the first complete alpha line where this planned source set is present together; future work should mainly refine robustness, quality, provider compatibility, examples, and documentation inside this scope. ## Meaning of the Core Source Types diff --git a/docs/ROADMAP.md b/docs/ROADMAP.md index 900f13c..d285e55 100644 --- a/docs/ROADMAP.md +++ b/docs/ROADMAP.md @@ -5,7 +5,7 @@ RhinoSpatial has moved beyond its original starting point as a WFS-focused loader and is now developing into a broader geospatial toolkit for Rhino and Grasshopper. At this stage, the core source scope is considered defined at the category level. -The `v0.3.2-alpha` release continues the first complete alpha line where the planned source categories are present together in the plugin. +The `v0.3.3-alpha` release continues the first complete alpha line where the planned source categories are present together in the plugin. The main focus is no longer to constantly add new categories of sources, but to strengthen, refine, simplify, and polish the current system. No additional core source categories are currently planned. diff --git a/package/food4rhino/Food4Rhino-listing.md b/package/food4rhino/Food4Rhino-listing.md index b6f49d1..dd6fddc 100644 --- a/package/food4rhino/Food4Rhino-listing.md +++ b/package/food4rhino/Food4Rhino-listing.md @@ -49,7 +49,7 @@ The Google 3D Tiles component is a viewer/reference workflow. It requires the us RhinoSpatial is currently still in an alpha stage. -The `0.3.2-alpha` release is a stabilization and source-compatibility release in the first complete alpha line. The planned core source set is present together: WFS, WMS, LoD2 Buildings, Terrain, GeoTIFF, OSM, and the Google 3D Tiles Viewer. This version improves local vector input support, LoD2 source handling, test-source documentation, package cleanup, and dependency notices. It has only been tested with a relatively small number of real workflows so far. Behavior may still vary depending on the provider, geometry type, coordinate system, service version, response format, API access, or local file metadata. +The `0.3.3-alpha` release is a reliability and source-compatibility release in the first complete alpha line. The planned core source set is present together: WFS, WMS, LoD2 Buildings, Terrain, GeoTIFF, OSM, and the Google 3D Tiles Viewer. This version improves Google 3D Tiles selection and diagnostics, makes shared elevation alignment independent of Grasshopper connection order, broadens Spatial Context reference-source metadata, strengthens WFS/WMS/WCS/LoD2 provider handling, and expands the tested-source catalogue and example material. It has only been tested with a relatively small number of real workflows so far. Behavior may still vary depending on the provider, geometry type, coordinate system, service version, response format, API access, or local file metadata. Feedback, edge cases, and additional test links are very welcome. @@ -65,7 +65,7 @@ Rhino Package Manager: Current release package: -- `RhinoSpatial-0.3.2-alpha.zip` +- `RhinoSpatial-0.3.3-alpha.zip` ## Repository diff --git a/package/yak/manifest.yml b/package/yak/manifest.yml index 741464c..17c5df3 100644 --- a/package/yak/manifest.yml +++ b/package/yak/manifest.yml @@ -1,6 +1,6 @@ --- name: RhinoSpatial -version: 0.3.2.0 +version: 0.3.3.0 authors: - Pascal Nun description: Study-oriented geospatial toolkit for Rhino and Grasshopper. diff --git a/scripts/build-food4rhino-zip.sh b/scripts/build-food4rhino-zip.sh index 4901879..9e647dd 100755 --- a/scripts/build-food4rhino-zip.sh +++ b/scripts/build-food4rhino-zip.sh @@ -21,6 +21,7 @@ find "$PLUGIN_BUILD_DIR" -maxdepth 1 -type f \ -exec cp {} "$STAGING_DIR/" \; cp "$ROOT_DIR/README.md" "$STAGING_DIR/README.md" +cp "$ROOT_DIR/CHANGELOG.md" "$STAGING_DIR/CHANGELOG.md" cp "$ROOT_DIR/LICENSE" "$STAGING_DIR/LICENSE" cp "$ROOT_DIR/THIRD-PARTY-NOTICES.md" "$STAGING_DIR/THIRD-PARTY-NOTICES.md" cp "$ROOT_DIR/package/food4rhino/INSTALL.md" "$STAGING_DIR/INSTALL.md" diff --git a/scripts/build-yak.sh b/scripts/build-yak.sh index 1d4a041..6459ac9 100755 --- a/scripts/build-yak.sh +++ b/scripts/build-yak.sh @@ -22,6 +22,7 @@ mkdir -p "$STAGING_DIR" cp "$MANIFEST_SOURCE" "$STAGING_DIR/manifest.yml" cp "$ROOT_DIR/README.md" "$STAGING_DIR/README.md" +cp "$ROOT_DIR/CHANGELOG.md" "$STAGING_DIR/CHANGELOG.md" cp "$ROOT_DIR/LICENSE" "$STAGING_DIR/LICENSE" cp "$ROOT_DIR/THIRD-PARTY-NOTICES.md" "$STAGING_DIR/THIRD-PARTY-NOTICES.md" cp "$ROOT_DIR/package/food4rhino/INSTALL.md" "$STAGING_DIR/INSTALL.md"