Skip to content

Commit

Permalink
Merge pull request #1006 from f3d-app/master
Browse files Browse the repository at this point in the history
Merge master into release
  • Loading branch information
mwestphal authored Sep 29, 2023
2 parents 715054d + 96da8c5 commit 31c368b
Show file tree
Hide file tree
Showing 279 changed files with 6,131 additions and 1,786 deletions.
2 changes: 2 additions & 0 deletions .cppcheck.supp
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,10 @@ unusedFunction

// specific checks
knownConditionTrueFalse:library/testing/TestSDKImage.cxx
knownConditionTrueFalse:library/testing/TestSDKImageDeprecated.cxx
noExplicitConstructor:library/public/types.h
preprocessorErrorDirective:library/src/engine.cxx
preprocessorErrorDirective:plugins/draco/module/vtkF3DDracoReader.cxx
unknownMacro:library/VTKExtensions/Applicative/vtkF3DObjectFactory.cxx
unusedVariable:*factory.cxx*
constParameter:library/src/image.cxx
33 changes: 19 additions & 14 deletions .github/ISSUE_TEMPLATE/new_release.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,34 +11,39 @@ When creating this issue

- Edit `vX.Y.Z-RCN` to the right version
- Edit `vX.Y.Z` to the right version
- Edit `target` branch to `master` if Z is zero, or `release` if not
- Edit `other` branch to `release` if Z is zero, or `master` if not
- Force fetch origin remote tag with `git fetch origin --tags --force`

Before release:

- [ ] Force fetch origin remote tag with `git fetch origin --tags --force`
- [ ] Write and format release notes

Release Split :

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

Release Candidates :

- [ ] Commit, review and merge a `vX.Y.Z-RCN` version change in https://github.com/f3d-app/f3d `CMakeLists.txt` in the `target` branch
- [ ] Tag `vX.Y.Z-RCN` and push it to https://github.com/f3d-app/f3d: `git tag vX.Y.Z-RCN -m vX.Y.Z-RCN`
- [ ] Commit, review and merge a `vX.Y.Z-RCN` version change in https://github.com/f3d-app/f3d `CMakeLists.txt` in the `release` branch
- [ ] Add a Tag and push it 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 `vX.Y.Z-RCN` prerelease from https://github.com/f3d-app/f3d/releases
- [ ] Locally test the `vX.Y.Z-RCN` prerelease on Linux: run, render, config file, drag&drop, thumbnails, exec from file manager, sdk
- [ ] Locally test the `vX.Y.Z-RCN` prerelease on macOS: run, render, config file, drag&drop, exec from file manager
- [ ] Locally test the `vX.Y.Z-RCN` prerelease on Windows: run, render, config file, drag&drop, thumbnails, exec from file manager, sdk
- [ ] If it fails, fix the issue, copy this paragraph and increment `N`
- [ ] Else proceed to the next part
- [ ] Download the prerelease from https://github.com/f3d-app/f3d/releases
- [ ] Locally test the prerelease on Linux: run, render, config file, drag&drop, thumbnails, exec from file manager, sdk
- [ ] Locally test the prerelease on macOS: run, render, config file, drag&drop, exec from file manager
- [ ] Locally test the prerelease on Windows: run, render, config file, drag&drop, thumbnails, exec from file manager, sdk
- [ ] If it fails, fix the issues in `release` branch, backport `release` branch to `master` branch, copy this paragraph and increment `N`
- [ ] Else, backport `release` branch to `master` branch and proceed to the next part

Release :

- [ ] Commit, review and merge `vX.Y.Z` version change in https://github.com/f3d-app/f3d `CMakeLists.txt`
- [ ] Tag `vX.Y.Z` and push it to https://github.com/f3d-app/f3d: `git tag vX.Y.Z -m vX.Y.Z`
- [ ] Merge https://github.com/f3d-app/f3d `target` branch into the `other` branch
- [ ] Commit, review and merge adding `X.Y.Z` in https://github.com/f3d-app/f3d-superbuild `versions.cmake`
- [ ] Tag `vX.Y.Z` and push it to https://github.com/f3d-app/f3d-superbuild: `git tag vX.Y.Z -m vX.Y.Z`
- [ ] 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
- [ ] Write release notes using PR since last release and add it to the release
- [ ] Finalize release note and add them to the release
- [ ] Add contributors and packagers to the release notes
- [ ] Release
- [ ] Update download links and changelog https://github.com/f3d-app/f3d `doc`
- [ ] Update download links and update changelog in https://github.com/f3d-app/f3d `doc`
- [ ] Communicate on discord
- [ ] Communicate on reddit
- [ ] Communicate on hackernews
Expand Down
10 changes: 8 additions & 2 deletions .github/actions/alembic-install-dep/action.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,11 @@
name: 'Install Alembic Dependency'
description: 'Install Alembic Dependency using cache when possible'

inputs:
cpu:
description: 'CPU architecture to build for'
required: false
default: 'x86_64'

runs:
using: "composite"
steps:
Expand All @@ -10,7 +15,7 @@ runs:
uses: actions/cache@v3
with:
path: dependencies/alembic_install
key: alembic-v1.8.5-${{runner.os}}-2
key: alembic-v1.8.5-${{runner.os}}-${{inputs.cpu}}-0

- name: Checkout Alembic
if: steps.cache-alembic.outputs.cache-hit != 'true'
Expand Down Expand Up @@ -41,6 +46,7 @@ runs:
-DCMAKE_PREFIX_PATH:PATH=../install/
-DUSE_BINARIES=OFF
-DUSE_TESTS=OFF
-DCMAKE_OSX_ARCHITECTURES=${{ inputs.cpu }}
${{ runner.os == 'macOS' && '-DCMAKE_OSX_DEPLOYMENT_TARGET=10.15 -DCMAKE_MACOSX_RPATH=ON' || null }}
${{ runner.os == 'Windows' && '-Ax64 -DCMAKE_POLICY_DEFAULT_CMP0091=NEW -DCMAKE_MSVC_RUNTIME_LIBRARY=MultiThreadedDLL' || null }}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,46 +1,31 @@
name: android
name: 'Android CI'
description: 'Android CI'
inputs:
arch:
description: 'Android arch to build'
required: true
vtk_version:
description: 'VTK version'
required: false
default: 'commit'

on:
pull_request:
types: [opened, synchronize, reopened, ready_for_review]
push:
branches:
- master
runs:
using: "composite"
steps:

concurrency:
group: '${{ github.workflow }}-${{ github.ref_name }}'
cancel-in-progress: true

jobs:
ci:
if: github.event.pull_request.draft == false

strategy:
matrix:
arch: [armeabi-v7a, arm64-v8a, x86, x86_64]

runs-on: ubuntu-latest
container: ghcr.io/f3d-app/f3d-ci

env:
NDK_VERSION: r21e
API_LEVEL: 27

steps:
- name: Checkout
uses: actions/checkout@v3
with:
path: 'source'
fetch-depth: 0
lfs: false
- name: Check required inputs
shell: bash
run: |
[[ "${{ inputs.arch }}" ]] || { echo "arch input is empty" ; exit 1; }
- name: Dependencies Dir
shell: bash
working-directory: ${{github.workspace}}
run: mkdir dependencies

- name: Install NDK
working-directory: ${{github.workspace}}
shell: bash
working-directory: ${{github.workspace}}
run: |
apt-get install unzip
wget https://dl.google.com/android/repository/android-ndk-${{env.NDK_VERSION}}-linux-x86_64.zip
Expand All @@ -50,30 +35,35 @@ jobs:
- name: Install VTK dependency
uses: ./source/.github/actions/vtk-android-install-dep
with:
arch: ${{matrix.arch}}
arch: ${{inputs.arch}}
api_level: ${{env.API_LEVEL}}
vtk_version: ${{inputs.vtk_version}}
vtk_sha_file: ./source/.github/actions/vtk_commit_sha

- name: Setup Directories
shell: bash
working-directory: ${{github.workspace}}
run: |
mkdir build
mkdir install
- name: Configure
shell: bash
working-directory: ${{github.workspace}}/build
run: >
cmake ../source
-DCMAKE_SYSTEM_NAME=Android
-DCMAKE_ANDROID_ARCH_ABI=${{inputs.arch}}
-DCMAKE_ANDROID_NDK=$(pwd)/../android-ndk
-DCMAKE_ANDROID_ARCH_ABI=${{matrix.arch}}
-DCMAKE_SYSTEM_VERSION=${{env.API_LEVEL}}
-DCMAKE_BUILD_TYPE=Release
-DCMAKE_FIND_ROOT_PATH=$(pwd)/../dependencies/vtk_build/CMakeExternals/Install/vtk-android/
-DCMAKE_INSTALL_PREFIX:PATH=../install
-DF3D_STRICT_BUILD=ON
-DF3D_PLUGIN_BUILD_EXODUS=OFF
-DCMAKE_SYSTEM_NAME=Android
-DCMAKE_SYSTEM_VERSION=${{env.API_LEVEL}}
-DF3D_BINDINGS_JAVA=ON
-DCMAKE_BUILD_TYPE=Release
-DVTK_DIR:PATH=$(pwd)/../dependencies/vtk_build/CMakeExternals/Install/vtk-android/lib/cmake/vtk-9.2
-DF3D_PLUGIN_BUILD_EXODUS=OFF
-DF3D_STRICT_BUILD=ON
- name: Build
shell: bash
working-directory: ${{github.workspace}}/build
run: cmake --build . --parallel 2 --target install
9 changes: 8 additions & 1 deletion .github/actions/assimp-install-dep/action.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,11 @@
name: 'Install Assimpp Dependency'
description: 'Install Assimp Dependency using cache when possible'
inputs:
cpu:
description: 'CPU architecture to build for'
required: false
default: 'x86_64'

runs:
using: "composite"
steps:
Expand All @@ -9,7 +15,7 @@ runs:
uses: actions/cache@v3
with:
path: dependencies/assimp_install
key: assimp-v5.2.5-${{runner.os}}-0
key: assimp-v5.2.5-${{runner.os}}-${{inputs.cpu}}-0

- name: Checkout ASSIMP
if: steps.cache-assimp.outputs.cache-hit != 'true'
Expand Down Expand Up @@ -53,6 +59,7 @@ runs:
-DBUILD_SHARED_LIBS=ON
-DCMAKE_BUILD_TYPE=Release
-DCMAKE_INSTALL_PREFIX:PATH=../assimp_install
-DCMAKE_OSX_ARCHITECTURES=${{ inputs.cpu }}
${{ runner.os == 'macOS' && '-DCMAKE_OSX_DEPLOYMENT_TARGET=10.15' || null }}
${{ runner.os == 'Windows' && '-Ax64 -DCMAKE_POLICY_DEFAULT_CMP0091=NEW -DCMAKE_MSVC_RUNTIME_LIBRARY=MultiThreadedDLL' || null }}
Expand Down
99 changes: 99 additions & 0 deletions .github/actions/coverage-ci/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
name: 'Coverage CI'
description: 'Coverage CI'
inputs:
lfs_sha:
description: 'Cache LFS sha'
required: true

runs:
using: "composite"
steps:

- name: Check required inputs
shell: bash
run: |
[[ "${{ inputs.lfs_sha }}" ]] || { echo "lfs_sha input is empty" ; exit 1; }
- name: Copy LFS Data
uses: ./source/.github/actions/lfs-copy
with:
lfs_sha: ${{ inputs.lfs_sha}}
workflow_label: 'consumer'

- name: Dependencies Dir
shell: bash
working-directory: ${{github.workspace}}
run: |
mkdir dependencies
cd dependencies
mkdir install
- name: Install TBB
uses: ./source/.github/actions/tbb-install-dep

- name: Install Raytracing Dependencies
uses: ./source/.github/actions/ospray-sb-install-dep

- name: Install VTK dependency
uses: ./source/.github/actions/vtk-install-dep
with:
vtk_sha_file: ./source/.github/actions/vtk_commit_sha
raytracing_label: raytracing

- name: Install F3D dependencies
uses: ./source/.github/actions/f3d-dependencies

# coverage build is done in source as it seems to be required for codecov
- name: Configure
shell: bash
working-directory: ${{github.workspace}}/source
run: >
cmake ./
-Werror=dev
-Werror=deprecated
--warn-uninitialized
-DBUILD_TESTING=ON
-DCMAKE_BUILD_TYPE=Release
-DCMAKE_INSTALL_RPATH_USE_LINK_PATH=ON
-DCMAKE_PREFIX_PATH:PATH=$(pwd)/../dependencies/install/
-DF3D_COVERAGE=ON
-DF3D_MODULE_EXTERNAL_RENDERING=ON
-DF3D_MODULE_EXR=ON
-DF3D_MODULE_RAYTRACING=ON
-DF3D_PLUGINS_STATIC_BUILD=OFF
-DF3D_PLUGIN_BUILD_ALEMBIC=ON
-DF3D_PLUGIN_BUILD_ASSIMP=ON
-DF3D_PLUGIN_BUILD_DRACO=ON
-DF3D_PLUGIN_BUILD_OCCT=ON
-DF3D_STRICT_BUILD=ON
-DF3D_TESTING_ENABLE_LONG_TIMEOUT_TESTS=ON
- name: Build
shell: bash
working-directory: ${{github.workspace}}/source
run: cmake --build . --parallel 2 --config Release

- name: Run Xvfb
shell: bash
run: Xvfb $DISPLAY -screen 0 1280x1024x24 &

- name: Test
shell: bash
working-directory: ${{github.workspace}}/source
run: ctest -C Release -j 2 --output-on-failure || ctest -C Release -j 1 --rerun-failed -VV

- name: Generate XML Coverage
shell: bash
working-directory: ${{github.workspace}}/source
run: |
lcov --base-directory . --directory . -c -o coverage.info --gcov-tool /usr/bin/gcov
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 "*Test*" -o coverage.info
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v3
with:
files: ${{github.workspace}}/source/coverage.info
version: "v0.1.15" # works better according to https://github.com/codecov/codecov-action/issues/598
10 changes: 9 additions & 1 deletion .github/actions/draco-install-dep/action.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,11 @@
name: 'Install Draco Dependency'
description: 'Install Draco Dependency using cache when possible'
inputs:
cpu:
description: 'CPU architecture to build for'
required: false
default: 'x86_64'

runs:
using: "composite"
steps:
Expand All @@ -9,7 +15,7 @@ runs:
uses: actions/cache@v3
with:
path: dependencies/draco_install
key: draco-1.5.6-${{runner.os}}-0
key: draco-1.5.6-${{runner.os}}-${{inputs.cpu}}-0

- name: Checkout Draco
if: steps.cache-draco.outputs.cache-hit != 'true'
Expand Down Expand Up @@ -37,7 +43,9 @@ runs:
-DCMAKE_BUILD_TYPE=Release
-DCMAKE_INSTALL_PREFIX=../draco_install
-DCMAKE_POSITION_INDEPENDENT_CODE=ON
-DDRACO_BACKWARDS_COMPATIBILITY=OFF
-DDRACO_JS_GLUE=OFF
-DCMAKE_OSX_ARCHITECTURES=${{ inputs.cpu }}
${{ runner.os == 'macOS' && '-DCMAKE_OSX_DEPLOYMENT_TARGET=10.15' || null }}
${{ runner.os == 'Windows' && '-Ax64 -DCMAKE_POLICY_DEFAULT_CMP0091=NEW -DCMAKE_MSVC_RUNTIME_LIBRARY=MultiThreadedDLL' || null }}
Expand Down
Loading

0 comments on commit 31c368b

Please sign in to comment.