Skip to content

Commit ee48451

Browse files
authored
Merge pull request #2761 from f3d-app/master
3.4 Release Split
2 parents 7e1246f + 8bbbb27 commit ee48451

File tree

600 files changed

+28232
-7307
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

600 files changed

+28232
-7307
lines changed

.cppcheck.supp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ unknownMacro
2626
*:*libf3dSDKTests.cxx
2727

2828
// specific checks
29+
knownConditionTrueFalse:vtkext/private/module/vtkF3DPointSplatMapper.cxx
2930
knownConditionTrueFalse:library/testing/TestSDKImage.cxx
3031
knownConditionTrueFalse:library/testing/TestSDKImageDeprecated.cxx
3132
noExplicitConstructor:library/public/types.h
@@ -38,3 +39,5 @@ invalidPointerCast:plugins/draco/module/vtkF3DGLTFDocumentLoader.cxx
3839
unusedStructMember:plugins/native/module/vtkF3DQuakeMDLImporter.cxx
3940
unusedStructMember:plugins/native/module/vtkF3DSPZReader.cxx
4041
constParameterPointer:vtkext/private/module/vtkF3DMetaImporter.cxx
42+
constParameterPointer:plugins/assimp/module/vtkF3DAssimpImporter.cxx
43+
constParameterPointer:plugins/alembic/module/vtkF3DAlembicReader.cxx

.github/ISSUE_TEMPLATE/new_release.md

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,15 @@ Before release:
1515

1616
- [ ] Force fetch origin remote tag with `git fetch origin --tags --force`
1717
- [ ] Write and format release notes from the pull requests since last release, including contributors and packagers
18+
- [ ] Create a new [NPM token](https://www.npmjs.com/package/f3d) and replace the existing `NPM_TOKEN` in https://github.com/f3d-app/f3d-superbuild/settings/secrets/actions
1819

1920
Release Split :
2021

2122
- [ ] Create, review and merge a MR from `master` branch into `release`: https://github.com/f3d-app/f3d/compare/release...master
2223

2324
Release Candidates :
2425

25-
- [ ] Commit, review and merge a `vX.Y.Z-RCN` version change in https://github.com/f3d-app/f3d `CMakeLists.txt` and `pyproject.toml` in the `release` branch
26+
- [ ] Commit, review and merge a `vX.Y.Z-RCN` version change in https://github.com/f3d-app/f3d `CMakeLists.txt`, `pyproject.toml` and `package.json` in the `release` branch
2627
- [ ] Tag and push to https://github.com/f3d-app/f3d: `git tag vX.Y.Z-RCN -m vX.Y.Z-RCN`
2728
- [ ] Trigger a release build using https://github.com/f3d-app/f3d-superbuild actions with `vX.Y.Z-RCN` F3D version, superbuild `main` branch and prerelease publish `true`
2829
- [ ] Download the prerelease from https://github.com/f3d-app/f3d/releases
@@ -33,6 +34,7 @@ Release Candidates :
3334
- [ ] Locally test the python wheels on Linux
3435
- [ ] Locally test the python wheels on macOS (Silicon)
3536
- [ ] Locally test the python wheels on Windows
37+
- [ ] Locally test the wasm package
3638
- If it fails,
3739
- [ ] Fix the issues in `release` branch,
3840
- [ ] Edit this issue and increment `N`
@@ -41,7 +43,7 @@ Release Candidates :
4143

4244
Release :
4345

44-
- [ ] Commit, review and merge `vX.Y.Z` version change in https://github.com/f3d-app/f3d `CMakeLists.txt`, `pyproject.toml`, `package.json` and the multiple `doxygen\conf.py` in the `release` branch
46+
- [ ] Commit, review and merge `vX.Y.Z` version change in https://github.com/f3d-app/f3d `CMakeLists.txt`, `pyproject.toml` and `package.json` in the `release` branch
4547
- [ ] Tag `vX.Y.Z` and push it to https://github.com/f3d-app/f3d: `git tag vX.Y.Z -m vX.Y.Z`
4648
- [ ] Commit, review and merge adding `X.Y.Z` in https://github.com/f3d-app/f3d-superbuild `versions.cmake` in the `main` branch
4749
- [ ] Tag `vX.Y.Z` and push it to https://github.com/f3d-app/f3d-superbuild: `git tag vX.Y.Z -m vX.Y.Z`
@@ -51,7 +53,8 @@ Release :
5153
- [ ] Format the release note into a changelog and commit/review/merge them into https://github.com/f3d-app/f3d
5254
- [ ] Update dev and nightly docs as described [here](https://f3d.app/dev/TOOLING#how-to-update-the-doc-using-latest-master), commit/review/merge into https://github.com/f3d-app/f3d-website
5355
- [ ] Add a **new versioned doc** as described [here](https://f3d.app/dev/TOOLING#how-to-update-the-doc-for-a-new-release), commit/review/merge into https://github.com/f3d-app/f3d-website
54-
- [ ] Update **download links** using `GITHUB_TOKEN=$PAT npm run update-downloads`, commit/review/merge into https://github.com/f3d-app/f3d-website
56+
- [ ] Commit review and merge a bump of F3D version in `package.json` in https://github.com/f3d-app/f3d-website
57+
- [ ] Update **download links** using `GITHUB_TOKEN=$PAT npm run update-downloads`, commit/review/merge into https://github.com/f3d-app/f3d-website and then immediately
5558
- [ ] Release
5659
- [ ] Communicate on discord
5760
- [ ] Communicate on reddit
@@ -131,6 +134,18 @@ eng.interactor.start()
131134
- The name of the window is `f3d` at all time
132135
- Python provides suggestions whenever the "Tab" key is pressed
133136

137+
Webassembly testing protocol:
138+
139+
- Clone https://github.com/f3d-app/f3d-website
140+
- Replace the current `f3d` version by the last RC available and run the website locally to check the web viewer
141+
- Make sure to check for broken anchor in the npm output
142+
143+
```bash
144+
npm uninstall f3d
145+
npm install f3d --tag next
146+
npm run start
147+
```
148+
134149
Once a release cycle:
135150

136151
- Check that completions are still working with `fish` and `zsh` when tab is pressed

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
- [ ] I have added [tests](https://f3d.app/dev/TESTING) for new features and bugfixes
99
- [ ] I have added [documentation](https://f3d.app/docs/next/user/QUICKSTART) for new features
1010
- [ ] If it is a modifying the libf3d API, I have updated bindings
11-
- [ ] If it is a modifying the `.github/workflows/versions.json`, I have updated `timestamp`
11+
- [ ] If it is a modifying the `.github/workflows/versions.json`, I have updated `docker_timestamp`
1212

1313
### Continuous integration
1414

.github/actions/alembic-install-dep/action.yml

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,9 @@ inputs:
1111
imath_version:
1212
description: "Version of imath to build against"
1313
required: true
14+
global_cache_index:
15+
description: "Global cache index"
16+
required: true
1417

1518
runs:
1619
using: "composite"
@@ -20,13 +23,14 @@ runs:
2023
run: |
2124
[[ "${{ inputs.version }}" ]] || { echo "version input is empty" ; exit 1; }
2225
[[ "${{ inputs.imath_version }}" ]] || { echo "imath_version input is empty" ; exit 1; }
26+
[[ "${{ inputs.global_cache_index }}" ]] || { echo "global_cache_index input is empty" ; exit 1; }
2327
2428
- name: Cache Alembic
2529
id: cache-alembic
2630
uses: actions/cache/restore@v4
2731
with:
2832
path: dependencies/alembic_install
29-
key: alembic-${{inputs.version}}-${{inputs.imath_version}}-${{runner.os}}-${{inputs.cpu}}-1
33+
key: alembic-${{inputs.version}}-${{inputs.imath_version}}-${{runner.os}}-${{inputs.cpu}}-${{inputs.global_cache_index}}-3
3034

3135
- name: Checkout Alembic
3236
if: steps.cache-alembic.outputs.cache-hit != 'true'
@@ -36,6 +40,13 @@ runs:
3640
path: "./dependencies/alembic"
3741
ref: ${{inputs.version}}
3842

43+
# https://github.com/alembic/alembic/issues/476
44+
- name: Patch Alembic rpath issue
45+
if: steps.cache-alembic.outputs.cache-hit != 'true' && inputs.version == '1.8.9'
46+
working-directory: ${{github.workspace}}/dependencies/alembic
47+
shell: bash
48+
run: patch -p1 < $GITHUB_ACTION_PATH/fix_cmake_rpath.patch
49+
3950
- name: Setup Alembic
4051
if: steps.cache-alembic.outputs.cache-hit != 'true'
4152
working-directory: ${{github.workspace}}/dependencies
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
From 99caa8156fb65a1c0a97ef4b168ca720787e04b8 Mon Sep 17 00:00:00 2001
2+
From: Mathieu Westphal <[email protected]>
3+
Date: Thu, 30 Oct 2025 08:49:47 +0100
4+
Subject: [PATCH] fix_cmake_rpath
5+
6+
---
7+
lib/Alembic/CMakeLists.txt | 3 +++
8+
1 file changed, 3 insertions(+)
9+
10+
diff --git a/lib/Alembic/CMakeLists.txt b/lib/Alembic/CMakeLists.txt
11+
index 8cb8ddb9..b5a73a6d 100644
12+
--- a/lib/Alembic/CMakeLists.txt
13+
+++ b/lib/Alembic/CMakeLists.txt
14+
@@ -67,6 +67,9 @@ IF (ALEMBIC_SHARED_LIBS)
15+
VERSION ${PROJECT_VERSION})
16+
ENDIF()
17+
18+
+if (APPLE OR UNIX)
19+
+ set_target_properties(Alembic PROPERTIES INSTALL_RPATH "$<TARGET_FILE_DIR:Imath::Imath>")
20+
+endif ()
21+
22+
TARGET_LINK_LIBRARIES(Alembic
23+
LINK_PUBLIC
24+
--
25+
2.51.1
26+

.github/actions/assimp-install-dep/action.yml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,9 @@ inputs:
88
version:
99
description: "Version of assimp to build"
1010
required: true
11+
global_cache_index:
12+
description: "Global cache index"
13+
required: true
1114

1215
runs:
1316
using: "composite"
@@ -16,13 +19,14 @@ runs:
1619
shell: bash
1720
run: |
1821
[[ "${{ inputs.version }}" ]] || { echo "version input is empty" ; exit 1; }
22+
[[ "${{ inputs.global_cache_index }}" ]] || { echo "global_cache_index input is empty" ; exit 1; }
1923
2024
- name: Cache ASSIMP
2125
id: cache-assimp
2226
uses: actions/cache/restore@v4
2327
with:
2428
path: dependencies/assimp_install
25-
key: assimp-${{inputs.version}}-${{runner.os}}-${{inputs.cpu}}-1
29+
key: assimp-${{inputs.version}}-${{runner.os}}-${{inputs.cpu}}-${{inputs.global_cache_index}}-1
2630

2731
- name: Checkout ASSIMP
2832
if: steps.cache-assimp.outputs.cache-hit != 'true'

.github/actions/blosc-install-dep/action.yml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,9 @@ inputs:
1111
zlib_version:
1212
description: "Version of zlib to build against"
1313
required: true
14+
global_cache_index:
15+
description: "Global cache index"
16+
required: true
1417

1518
runs:
1619
using: "composite"
@@ -20,13 +23,14 @@ runs:
2023
run: |
2124
[[ "${{ inputs.version }}" ]] || { echo "version input is empty" ; exit 1; }
2225
[[ "${{ inputs.zlib_version }}" ]] || { echo "zlib_version input is empty" ; exit 1; }
26+
[[ "${{ inputs.global_cache_index }}" ]] || { echo "global_cache_index input is empty" ; exit 1; }
2327
2428
- name: Cache blosc
2529
id: cache-blosc
2630
uses: actions/cache/restore@v4
2731
with:
2832
path: dependencies/blosc_install
29-
key: blosc-${{inputs.version}}-${{inputs.zlib_version}}-${{runner.os}}-${{inputs.cpu}}-1
33+
key: blosc-${{inputs.version}}-${{inputs.zlib_version}}-${{runner.os}}-${{inputs.cpu}}-${{inputs.global_cache_index}}-1
3034

3135
# Dependents: openvdb vtk
3236
- name: Checkout blosc

.github/actions/coverage-ci/action.yml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,9 @@ inputs:
5050
zlib_version:
5151
description: "Version of zlib to build"
5252
required: true
53+
global_cache_index:
54+
description: "Global cache index"
55+
required: true
5356

5457
runs:
5558
using: "composite"
@@ -61,7 +64,7 @@ runs:
6164
[[ "${{ inputs.vtk_version }}" ]] || { echo "vtk_version input is empty" ; exit 1; }
6265
6366
- name: Recover LFS Data
64-
uses: f3d-app/lfs-data-cache-action@v1
67+
uses: f3d-app/lfs-data-cache-action@v2
6568
with:
6669
type: "consumer"
6770
lfs_sha: ${{inputs.lfs_sha}}
@@ -83,6 +86,7 @@ runs:
8386
usd_version: ${{inputs.usd_version}}
8487
webp_version: ${{inputs.webp_version}}
8588
zlib_version: ${{inputs.zlib_version}}
89+
global_cache_index: ${{inputs.global_cache_index}}
8690

8791
- name: Install VTK dependency
8892
uses: ./source/.github/actions/vtk-install-dep
@@ -93,6 +97,7 @@ runs:
9397
tbb_version: ${{inputs.tbb_version}}
9498
vtk_version: ${{inputs.vtk_version}}
9599
zlib_version: ${{inputs.zlib_version}}
100+
global_cache_index: ${{inputs.global_cache_index}}
96101

97102
# coverage build is done in source as it seems to be required for codecov
98103
# CMAKE_MODULE_PATH is required because of

.github/actions/draco-install-dep/action.yml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,9 @@ inputs:
88
version:
99
description: "Version of draco to build"
1010
required: true
11+
global_cache_index:
12+
description: "Global cache index"
13+
required: true
1114

1215
runs:
1316
using: "composite"
@@ -16,13 +19,14 @@ runs:
1619
shell: bash
1720
run: |
1821
[[ "${{ inputs.version }}" ]] || { echo "version input is empty" ; exit 1; }
22+
[[ "${{ inputs.global_cache_index }}" ]] || { echo "global_cache_index input is empty" ; exit 1; }
1923
2024
- name: Cache Draco
2125
id: cache-draco
2226
uses: actions/cache/restore@v4
2327
with:
2428
path: dependencies/draco_install
25-
key: draco-${{inputs.version}}-${{runner.os}}-${{inputs.cpu}}-4
29+
key: draco-${{inputs.version}}-${{runner.os}}-${{inputs.cpu}}-${{inputs.global_cache_index}}-0
2630

2731
- name: Checkout Draco
2832
if: steps.cache-draco.outputs.cache-hit != 'true'

.github/actions/external-build-ci/action.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,9 @@ inputs:
1313
zlib_version:
1414
description: "Version of zlib to build"
1515
required: true
16+
global_cache_index:
17+
description: "Global cache index"
18+
required: true
1619

1720
runs:
1821
using: "composite"
@@ -42,6 +45,7 @@ runs:
4245
blosc_version: ${{inputs.blosc_version}}
4346
tbb_version: ${{inputs.tbb_version}}
4447
zlib_version: ${{inputs.zlib_version}}
48+
global_cache_index: ${{inputs.global_cache_index}}
4549

4650
- name: Install VTK dependency
4751
uses: ./source/f3d/.github/actions/vtk-install-dep
@@ -50,6 +54,7 @@ runs:
5054
tbb_version: ${{inputs.tbb_version}}
5155
vtk_version: ${{inputs.vtk_version}}
5256
zlib_version: ${{inputs.zlib_version}}
57+
global_cache_index: ${{inputs.global_cache_index}}
5358

5459
- name: Setup Build Directory
5560
shell: bash

0 commit comments

Comments
 (0)