Skip to content

Commit

Permalink
Merge pull request #1345 from f3d-app/master
Browse files Browse the repository at this point in the history
Master master into release (2.4.0 Split)
  • Loading branch information
mwestphal authored Apr 1, 2024
2 parents 85e71ae + e3130ea commit 82aa564
Show file tree
Hide file tree
Showing 344 changed files with 7,865 additions and 1,375 deletions.
3 changes: 3 additions & 0 deletions .clang-format
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,14 @@
BasedOnStyle: Mozilla
AlignAfterOpenBracket: DontAlign
AlignOperands: false
AllowShortFunctionsOnASingleLine: None
AlwaysBreakAfterReturnType: None
AlwaysBreakAfterDefinitionReturnType: None
BreakBeforeBraces: Allman
BinPackArguments: true
BinPackParameters: true
BraceWrapping:
BeforeLambdaBody: true
ColumnLimit: 100
# Note that on versions after 4.0 you need to specify
# SpaceAfterTemplateKeyword: true
Expand Down
2 changes: 1 addition & 1 deletion .codespellrc
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
[codespell]
skip = ./testing/**/*,./.git/**/*,./**/*.patch,./external/cxxopts/cxxopts.hpp,./external/nlohmann_json/nlohmann/json.hpp
ignore-words-list=nnumber,unknwn,dota,modle
ignore-words-list=nnumber,unknwn,dota,modle,inout
3 changes: 3 additions & 0 deletions .cppcheck.supp
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ unknownMacro
// external libraries
*:external/nlohmann_json/nlohmann/json.hpp
*:external/cxxopts/cxxopts.hpp
*:external/dmon/dmon.h

// specific checks
knownConditionTrueFalse:library/testing/TestSDKImage.cxx
Expand All @@ -16,3 +17,5 @@ preprocessorErrorDirective:plugins/draco/module/vtkF3DDracoReader.cxx
unknownMacro:library/VTKExtensions/Applicative/vtkF3DObjectFactory.cxx
unusedVariable:*factory.cxx*
constParameter:library/src/image.cxx
invalidPointerCast:plugins/native/module/vtkF3DSplatReader.cxx
invalidPointerCast:plugins/draco/module/vtkF3DGLTFDocumentLoader.cxx
18 changes: 18 additions & 0 deletions .github/ISSUE_TEMPLATE/help_wanted.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
---
name: Help wanted
about: A maintainer specific template
title: ''
labels: help-wanted
assignees: ''

---

**Context**
Provide context so that someone not familiar with the project understand it

**Suggested solution**
A point by point explanation how to implement the solution
with details on the API and options to use

**Skills**
A list of skills that may be needed to pick up this issue
63 changes: 56 additions & 7 deletions .github/ISSUE_TEMPLATE/new_release.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,28 +27,77 @@ Release Candidates :
- [ ] Tag and push to https://github.com/f3d-app/f3d: `git tag vX.Y.Z-RCN -m vX.Y.Z-RCN`
- [ ] 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`
- [ ] Download the prerelease from https://github.com/f3d-app/f3d/releases
- [ ] Locally test the prerelease on Linux: run, render, raytracing, config file, drag&drop, thumbnails, exec from file manager, sdk, python wheel
- [ ] Locally test the prerelease on macOS (Intel): run, render, raytracing, config file, drag&drop, exec from file manager, python wheel
- [ ] Locally test the prerelease on macOS (Silicon): run, render, config file, drag&drop, exec from file manager
- [ ] Locally test the prerelease on Windows: run, render, raytracing, config file, drag&drop, thumbnails, exec from file manager, sdk, python wheel
- [ ] Download all python wheels and upload them to https://test.pypi.org/project/f3d/, check `pip install f3d`
- [ ] Locally test the prerelease on Linux
- [ ] Locally test the prerelease on macOS (Intel)
- [ ] Locally test the prerelease on macOS (Silicon)
- [ ] Locally test the prerelease on Windows
- [ ] Locally test the python wheels on Linux
- [ ] Locally test the python wheels on macOS (Intel)
- [ ] Locally test the python wheels on Windows
- [ ] If it fails, fix the issues in `release` branch, copy this paragraph and increment `N`
- [ ] Else proceed to the next part

Release :

- [ ] Commit, review and merge `vX.Y.Z` version change in https://github.com/f3d-app/f3d `CMakeLists.txt` and `pyproject.toml` in the `release` branch
- [ ] Commit, review and merge `vX.Y.Z` version change in https://github.com/f3d-app/f3d `CMakeLists.txt`, `pyproject.toml` and the multiple `doxygen\conf.py` in the `release` branch
- [ ] Tag `vX.Y.Z` and push it to https://github.com/f3d-app/f3d: `git tag vX.Y.Z -m vX.Y.Z`
- [ ] Commit, review and merge adding `X.Y.Z` in https://github.com/f3d-app/f3d-superbuild `versions.cmake` in the `main` branch
- [ ] Tag `vX.Y.Z` and push it to https://github.com/f3d-app/f3d-superbuild: `git tag vX.Y.Z -m vX.Y.Z`
- [ ] Merge F3D release into master: https://github.com/f3d-app/f3d/compare/master...release
- [ ] Trigger a release build using https://github.com/f3d-app/f3d-superbuild actions with `vX.Y.Z` F3D version, `vX.Y.Z` sb version and prerelease publish true
- [ ] Finalize release note and add them to the release
- [ ] Download all python wheels and upload them to https://pypi.org/project/f3d/
- [ ] Release
- [ ] Update download links and update changelog in https://github.com/f3d-app/f3d `doc`
- [ ] Update `.github/ISSUE_TEMPLATE/new_release.md` in https://github.com/f3d-app/f3d if needed
- [ ] Communicate on discord
- [ ] Communicate on reddit
- [ ] Communicate on hackernews
- [ ] Communicate on linkedin

Linux testing protocol:
- Install F3D-X.Y.Z-RCN-Linux-x86_64-raytracing system wide
- `f3d testing/data/cow.vtp` -> check render, orientation, press R and check raytracing
- `f3d testing/data/f3d.stp` -> check render, orientation
- `f3d /path/to/any/new/file.format` -> check render
- `rm -rf ~/.cache/thumbnails`
- `pcmanfm` (or another supported file manager)
- Check that all supported files in testing/data have a generated thumbnails, especially for new file formats if any
- Double click on supported file in testing/data, especially for new file formats if any and check it opens in F3D
- Drag&Drop cow.vtp, Drag&Drop palermo_park.hdr, check render
- `cd examples/libf3d && mkdir build && cd build && cmake ../ && make`
- `./cpp/check-engine/check-engine`
- `./cpp/render-interact/render-interact testing/data/cow.vtp`

macOS testing protocol:
- Install F3D-X.Y.Z-RCN-macOS-x86_64-raytracing.dmg
- Double click on cow.vtp, check render and orientation, press R and check raytracing (Intel only)
- Double click on f3d.stp, check render and orientation
- Double click on any new supported file.format, check render
- Check all supported file in testing/data directory in finder have the f3d mark, if not, check that "open with" suggest F3D
- Drag&Drop cow.vtp, Drag&Drop palermo_park.hdr, check render

Windows testing protocol:
- Install F3D-X.Y.Z-RCN-Windows-x86_64-raytracing.exe, add F3D to path for all users
- Start -> Disk Cleanup -> select thumbnails -> Ok -> Delete Files
- Open testing/data directory in file manager
- Wait for thumbnails to be generated
- Check that every supported file has a generated thumbnails, except .tif.
- Check that every supported file has a small "f3d" mark, for those that don't check that "Open with" -> "Use another app" suggest F3D.
- Double click on cow.vtp, check render and orientation, press R and check raytracing
- Double click on f3d.stp, check render and orientation
- Double click on any new supported file format, check render
- `cd examples\libf3d && mkdir build && cd build && cmake ../ && cmake --build . --config Release`
- `.\cpp\check-engine\Release\check-engine`
- `.\cpp\render-interact\Release\render-interact testing\data\cow.vtp`

Python testing protocol:
- Use a venv or make sure f3d is not installed in your python environment
- pip install f3d==X.Y.Z-RCN
- python
```
import f3d
eng = f3d.Engine(f3d.Window.NATIVE)
eng.loader.load_geometry("/path/to/cow.vtp")
eng.window.render()
eng.interactor.start()
```
4 changes: 2 additions & 2 deletions .github/actions/alembic-install-dep/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,10 @@ runs:

- name: Cache Alembic
id: cache-alembic
uses: actions/cache@v3
uses: actions/cache@v4
with:
path: dependencies/alembic_install
key: alembic-v1.8.5-${{runner.os}}-${{inputs.cpu}}-1
key: alembic-v1.8.5-${{runner.os}}-${{inputs.cpu}}-3

- name: Checkout Alembic
if: steps.cache-alembic.outputs.cache-hit != 'true'
Expand Down
13 changes: 13 additions & 0 deletions .github/actions/android-ci/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -75,3 +75,16 @@ runs:
shell: bash
working-directory: ${{github.workspace}}/build
run: cmake --build . --parallel 2 --target install

- name: Upload native library
uses: actions/upload-artifact@v4
with:
path: ./build/lib/libf3d-java.so
name: f3d-android-native-${{inputs.arch}}

- name: Upload Java package
if: inputs.arch == 'arm64-v8a' # avoid duplication
uses: actions/upload-artifact@v4
with:
path: ./build/java/f3d.jar
name: f3d-android-jar
4 changes: 2 additions & 2 deletions .github/actions/assimp-install-dep/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,10 @@ runs:

- name: Cache ASSIMP
id: cache-assimp
uses: actions/cache@v3
uses: actions/cache@v4
with:
path: dependencies/assimp_install
key: assimp-v5.3.1-${{runner.os}}-${{inputs.cpu}}-2
key: assimp-v5.3.1-${{runner.os}}-${{inputs.cpu}}-3

- name: Checkout ASSIMP
if: steps.cache-assimp.outputs.cache-hit != 'true'
Expand Down
5 changes: 3 additions & 2 deletions .github/actions/blosc-install-dep/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,11 +12,12 @@ runs:

- name: Cache blosc
id: cache-blosc
uses: actions/cache@v3
uses: actions/cache@v4
with:
path: dependencies/blosc_install
key: blosc-1.21.5-${{runner.os}}-${{inputs.cpu}}-1
key: blosc-1.21.5-${{runner.os}}-${{inputs.cpu}}-3

# Dependents: openvdb vtk
- name: Checkout blosc
if: steps.cache-blosc.outputs.cache-hit != 'true'
uses: actions/checkout@v3
Expand Down
5 changes: 3 additions & 2 deletions .github/actions/boost-install-dep/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,11 +12,12 @@ runs:

- name: Cache Boost
id: cache-boost
uses: actions/cache@v3
uses: actions/cache@v4
with:
path: dependencies/boost_install
key: boost-1.83.0-${{runner.os}}-${{inputs.cpu}}-3
key: boost-1.83.0-${{runner.os}}-${{inputs.cpu}}-4

# Dependents: usd openvdb vtk
- name: Checkout Boost
if: steps.cache-boost.outputs.cache-hit != 'true'
uses: actions/checkout@v4
Expand Down
1 change: 1 addition & 0 deletions .github/actions/coverage-ci/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,7 @@ runs:
lcov --remove coverage.info "*/dependencies/*" -o coverage.info
lcov --remove coverage.info "*/cxxopts.hpp" -o coverage.info
lcov --remove coverage.info "*/json.hpp" -o coverage.info
lcov --remove coverage.info "*/dmon.h" -o coverage.info
lcov --remove coverage.info "*Test*" -o coverage.info
- name: Upload coverage to Codecov
Expand Down
6 changes: 3 additions & 3 deletions .github/actions/draco-install-dep/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,18 +12,18 @@ runs:

- name: Cache Draco
id: cache-draco
uses: actions/cache@v3
uses: actions/cache@v4
with:
path: dependencies/draco_install
key: draco-1.5.6-${{runner.os}}-${{inputs.cpu}}-0
key: draco-1.5.7-${{runner.os}}-${{inputs.cpu}}-1

- name: Checkout Draco
if: steps.cache-draco.outputs.cache-hit != 'true'
uses: actions/checkout@v4
with:
repository: google/draco
path: './dependencies/draco'
ref: 1.5.6
ref: 1.5.7

- name: Setup Draco
if: steps.cache-draco.outputs.cache-hit != 'true'
Expand Down
Loading

0 comments on commit 82aa564

Please sign in to comment.