Skip to content

Commit 66fa607

Browse files
authored
Merge branch 'AcademySoftwareFoundation:main' into main
2 parents 575a3ae + 1d94069 commit 66fa607

File tree

454 files changed

+13834
-7196
lines changed

Some content is hidden

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

454 files changed

+13834
-7196
lines changed

.github/ISSUE_TEMPLATE/bug_report.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,15 @@
11
---
22
name: Bug report
33
about: I think I have identified a legit bug and can describe it.
4-
title: "[BUG]"
4+
title: "bug:"
55
labels: ''
66
assignees: ''
77

88
---
99

10+
<!-- THESE ARE JUST SUGGESTIONS. FEEL FREE TO DELETE ALL OF THIS AND -->
11+
<!-- WRITE YOUR OWN THOROUGH BUG REPORT. -->
12+
1013
**Describe the bug**
1114

1215
A clear and concise description of what the bug is. What happened, and

.github/ISSUE_TEMPLATE/build_problem.md

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,17 @@
11
---
22
name: Build problems
33
about: I'm having trouble building OIIO. Help!
4-
title: "[BUILD]"
4+
title: "build:"
55
labels: ''
66
assignees: ''
77

88
---
99

10-
**PLEASE DO NOT REPORT BUILD TROUBLES AS GITHUB "ISSUES" UNLESS YOU ARE RALLY SURE IT'S A BUG**
10+
**PLEASE DO NOT REPORT BUILD TROUBLES AS GITHUB "ISSUES" UNLESS YOU ARE REALLY SURE IT'S A BUG**
1111

1212
The best way to get help with your build problems is to ask a question on the
13-
[oiio-dev developer mail list](https://lists.aswf.io/g/oiio-dev).
13+
[oiio-dev developer mail list](https://lists.aswf.io/g/oiio-dev) or on the
14+
[ASWF Slack](https://slack.aswf.io) `#openimageio` channel.
1415

1516
When you email about this, please attach one or both of the following:
1617
1. The full verbose build log, which you can create like this:

.github/ISSUE_TEMPLATE/feature_request.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,15 @@
11
---
22
name: Feature request
33
about: I have a concrete idea about how to improve OpenImageIO.
4-
title: "[FEATURE REQUEST]"
4+
title: "feat:"
55
labels: ''
66
assignees: ''
77

88
---
99

10+
<!-- THESE ARE JUST SUGGESTIONS. FEEL FREE TO DELETE ALL OF THIS AND -->
11+
<!-- WRITE YOUR OWN THOROUGH FEATURE REQUEST. -->
12+
1013
**Is your feature request related to a problem? Please describe.**
1114
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
1215

.github/ISSUE_TEMPLATE/question.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
name: Question
33
about: How do I... I need help with...
4-
title: "[HELP]"
4+
title: "help:"
55
labels: ''
66
assignees: ''
77

@@ -18,8 +18,8 @@ But if you are just asking a question:
1818
* Am I doing something wrong?
1919
* I can't build OpenImageIO
2020

21-
For anything of this nature, the best way to get help using OpenImageIO is
22-
to ask a question on the [oiio-dev developer mail list](https://lists.aswf.io/g/oiio-dev).
21+
For anything of this nature, the best way to get help using OpenImageIO is to
22+
ask a question on the [oiio-dev developer mail list](https://lists.aswf.io/g/oiio-dev) or the [ASWF Slack](https://slack.aswf.io) `#openimageio` channel.
2323

2424
The [documentation](https://docs.openimageio.org)
2525
is pretty comprehensive, so please check there first; you may find the answer

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 33 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,47 @@
1-
<!-- This is just a guideline and set of reminders about what constitutes -->
2-
<!-- a good PR. Feel free to delete all this matter and replace it with -->
3-
<!-- your own detailed message about the PR, assuming you hit all the -->
4-
<!-- important points made below. -->
51

62

7-
## Description
3+
4+
------ :scissors: -------------------------------------------------------------------
5+
6+
YOU MAY DELETE ALL OF THIS IF YOU ALREADY HAVE A DESCRIPTIVE COMMIT MESSAGE!
7+
8+
This is just a template and set of reminders about what constitutes a good PR.
9+
But please look over the checklist at the bottom.
10+
11+
If THIS TEXT is still in your PR description, we'll know you didn't read the
12+
instructions!
13+
14+
15+
16+
17+
### Description
818

919
<!-- Please provide a description of what this PR is meant to fix, and -->
1020
<!-- how it works (if it's not going to be very clear from the code). -->
1121

12-
## Tests
22+
### Tests
1323

1424
<!-- Did you / should you add a testsuite case (new test, or add to an -->
1525
<!-- existing test) to verify that this works? -->
1626

1727

18-
## Checklist:
28+
### Checklist:
1929

2030
<!-- Put an 'x' in the boxes as you complete the checklist items -->
2131

22-
- [ ] I have read the [contribution guidelines](https://github.com/AcademySoftwareFoundation/OpenImageIO/blob/main/CONTRIBUTING.md).
23-
- [ ] I have updated the documentation, if applicable. (Check if there is no
24-
need to update the documentation, for example if this is a bug fix that
25-
doesn't change the API.)
26-
- [ ] I have ensured that the change is tested somewhere in the testsuite
27-
(adding new test cases if necessary).
28-
- [ ] If I added or modified a C++ API call, I have also amended the
29-
corresponding Python bindings (and if altering ImageBufAlgo functions, also
30-
exposed the new functionality as oiiotool options).
31-
- [ ] My code follows the prevailing code style of this project. If I haven't
32-
already run clang-format before submitting, I definitely will look at the CI
33-
test that runs clang-format and fix anything that it highlights as being
34-
nonconforming.
32+
- [ ] **I have read the guidelines** on [contributions](https://github.com/AcademySoftwareFoundation/OpenImageIO/blob/main/CONTRIBUTING.md) and [code review procedures](https://github.com/AcademySoftwareFoundation/OpenImageIO/blob/main/docs/dev/CodeReview.md).
33+
- [ ] **I have updated the documentation** if my PR adds features or changes
34+
behavior.
35+
- [ ] **I am sure that this PR's changes are tested somewhere in the
36+
testsuite**.
37+
- [ ] **I have run and passed the testsuite in CI** *before* submitting the
38+
PR, by pushing the changes to my fork and seeing that the automated CI
39+
passed there. (Exceptions: If most tests pass and you can't figure out why
40+
the remaining ones fail, it's ok to submit the PR and ask for help. Or if
41+
any failures seem entirely unrelated to your change; sometimes things break
42+
on the GitHub runners.)
43+
- [ ] **My code follows the prevailing code style of this project** and I
44+
fixed any problems reported by the clang-format CI test.
45+
- [ ] If I added or modified a public C++ API call, I have also amended the
46+
corresponding Python bindings. If altering ImageBufAlgo functions, I also
47+
exposed the new functionality as oiiotool options.

.github/workflows/analysis.yml

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ on:
2626
- '!**/scorecard.yml'
2727
- '!**/wheel.yml'
2828
- '!**.properties'
29+
- '!pyproject.toml'
2930
- '!docs/**'
3031
# Run analysis on PRs only if the branch name indicates that the purpose of
3132
# the PR is related to the Sonar analysis. We don't run on every PR because
@@ -51,7 +52,7 @@ jobs:
5152
name: "SonarCloud Analysis"
5253
# Exclude runs on forks, since only the main org has the SonarCloud
5354
# account credentials.
54-
if: github.repository == 'AcademySoftwareFoundation/OpenImageIO'
55+
if: github.event.repository.fork == false
5556
uses: ./.github/workflows/build-steps.yml
5657
# Must let the called steps workflow inherit necessary secrets
5758
secrets:
@@ -87,13 +88,14 @@ jobs:
8788
fail-fast: false
8889
matrix:
8990
include:
90-
- desc: sonar gcc11/C++17 py310 exr3.2 ocio2.3
91+
- desc: sonar gcc11/C++17 py311 exr3.2 ocio2.3
9192
nametag: static-analysis-sonar
9293
os: ubuntu-latest
93-
container: aswf/ci-osl:2024-clang17
94+
container: aswf/ci-oiio:2024.2
9495
cxx_std: 17
9596
python_ver: "3.11"
9697
simd: "avx2,f16c"
98+
opencolorio_ver: v2.3.2
9799
fmt_ver: 10.1.1
98100
pybind11_ver: v2.12.0
99101
coverage: 1

.github/workflows/build-steps.yml

Lines changed: 33 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,9 @@ on:
1818
type: string
1919
container:
2020
type: string
21+
container_volumes:
22+
type: string
23+
default: '[]'
2124
cc_compiler:
2225
type: string
2326
cxx_compiler:
@@ -66,8 +69,15 @@ on:
6669
type: string
6770
sonar:
6871
type: string
72+
old_node:
73+
type: string
74+
default: 0
6975
nametag:
7076
type: string
77+
required_deps:
78+
type: string
79+
optional_deps:
80+
type: string
7181
secrets:
7282
PASSED_GITHUB_TOKEN:
7383
required: false
@@ -84,7 +94,11 @@ jobs:
8494
runs-on: ${{ inputs.runner }}
8595
container:
8696
image: ${{ inputs.container }}
87-
97+
volumes: ${{ fromJson( inputs.container_volumes ) }}
98+
options: -v /:/host/root ${{ (contains(inputs.runner, 'gpu') && '-e NVIDIA_DRIVER_CAPABILITIES=compute,graphics,utility --gpus all') || '-e A=x' }}
99+
# Extra options:
100+
# - Ensure the GPU runners have OptiX is visible in the container.
101+
# - Mount the native filesystem under /host/root
88102
env:
89103
CXX: ${{inputs.cxx_compiler}}
90104
CC: ${{inputs.cc_compiler}}
@@ -94,16 +108,26 @@ jobs:
94108
CTEST_ARGS: ${{inputs.ctest_args}}
95109
CTEST_TEST_TIMEOUT: ${{inputs.ctest_test_timeout}}
96110
USE_SIMD: ${{inputs.simd}}
97-
FMT_VERSION: ${{inputs.fmt_ver}}
111+
fmt_BUILD_VERSION: ${{inputs.fmt_ver}}
98112
OPENCOLORIO_VERSION: ${{inputs.opencolorio_ver}}
99113
OPENEXR_VERSION: ${{inputs.openexr_ver}}
100114
PYBIND11_VERSION: ${{inputs.pybind11_ver}}
101115
PYTHON_VERSION: ${{inputs.python_ver}}
102116
ABI_CHECK: ${{inputs.abi_check}}
103117
ACTIONS_RUNNER_FORCE_ACTIONS_NODE_VERSION: node16
104118
ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true
119+
# For CI, sometimes we want to require all dependencies to be present,
120+
# except for a select few listed explicitly. This ensures that we don't
121+
# accidentally have a situation in which we think we are building
122+
# against and testing an optional dependency, but in fact are not.
123+
OpenImageIO_REQUIRED_DEPS: ${{inputs.required_deps}}
124+
OpenImageIO_OPTIONAL_DEPS: ${{inputs.optional_deps}}
105125

106126
steps:
127+
- name: install nodejs20glibc2.17
128+
if: inputs.old_node == '1'
129+
run: |
130+
curl --silent https://unofficial-builds.nodejs.org/download/release/v20.18.1/node-v20.18.1-linux-x64-glibc-217.tar.xz | tar -xJ --strip-components 1 -C /node20217 -f -
107131
- name: Checkout repo
108132
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
109133
- name: Build setup
@@ -117,7 +141,7 @@ jobs:
117141
run: echo "date=`date -u +'%Y-%m-%dT%H:%M:%SZ'`" >> $GITHUB_OUTPUT
118142
- name: ccache-restore
119143
id: ccache-restore
120-
uses: actions/cache/restore@5a3ec84eff668545956fd18022155c47e93e2684 # v4.2.3
144+
uses: actions/cache/restore@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0
121145
with:
122146
path: ${{ env.CCACHE_DIR }}
123147
# path: ./ccache
@@ -136,7 +160,7 @@ jobs:
136160
fi
137161
- name: Install sonar-scanner and build-wrapper
138162
if: inputs.sonar == '1'
139-
uses: sonarsource/sonarcloud-github-c-cpp@e4882e1621ad2fb48dddfa48287411bed34789b1 # v2.0.2
163+
uses: sonarsource/sonarqube-scan-action@fd88b7d7ccbaefd23d8f36f73b59db7a3d246602 # v6.0.0
140164
- name: Build
141165
if: inputs.skip_build != '1'
142166
shell: bash
@@ -157,7 +181,7 @@ jobs:
157181
popd
158182
- name: ccache-save
159183
id: ccache-save
160-
uses: actions/cache/save@5a3ec84eff668545956fd18022155c47e93e2684 # v4.2.3
184+
uses: actions/cache/save@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0
161185
with:
162186
path: ${{ env.CCACHE_DIR }}
163187
key: ${{inputs.nametag}}-${{steps.ccache_cache_keys.outputs.date}}
@@ -177,7 +201,7 @@ jobs:
177201
if: inputs.coverage == '1'
178202
run: src/build-scripts/ci-coverage.bash
179203
- name: Sonar-scanner
180-
if: inputs.sonar == 1
204+
if: inputs.sonar == '1'
181205
env:
182206
GITHUB_TOKEN: ${{ secrets.PASSED_GITHUB_TOKEN }}
183207
SONAR_TOKEN: ${{ secrets.PASSED_SONAR_TOKEN }}
@@ -186,8 +210,8 @@ jobs:
186210
ls -l /__w/OpenImageIO/OpenImageIO/bw_output
187211
echo "BUILD_OUTPUT_DIR is " "${{ env.BUILD_WRAPPER_OUT_DIR }}"
188212
find . -name "*.gcov" -print
189-
# sonar-scanner --define sonar.cfamily.build-wrapper-output="${{ env.BUILD_WRAPPER_OUT_DIR }}"
190-
time sonar-scanner --define sonar.host.url="${{ env.SONAR_SERVER_URL }}" --define sonar.cfamily.build-wrapper-output="$BUILD_WRAPPER_OUT_DIR" --define sonar.cfamily.gcov.reportsPath="_coverage" --define sonar.cfamily.threads="$PARALLEL"
213+
# sonar-scanner --define sonar.cfamily.compile-commands="${{ env.BUILD_WRAPPER_OUT_DIR }}/compile_commands.json"
214+
time sonar-scanner --define sonar.host.url="${{ env.SONAR_SERVER_URL }}" --define sonar.cfamily.compile-commands="$BUILD_WRAPPER_OUT_DIR/compile_commands.json" --define sonar.cfamily.gcov.reportsPath="_coverage" --define sonar.cfamily.threads="$PARALLEL"
191215
# Consult https://docs.sonarcloud.io/advanced-setup/ci-based-analysis/sonarscanner-cli/ for more information and options
192216
- name: Check ABI
193217
if: inputs.abi_check != ''
@@ -203,7 +227,7 @@ jobs:
203227
time make sphinx
204228
- name: Upload testsuite debugging artifacts
205229
uses: actions/upload-artifact@6f51ac03b9356f520e9adb1b1b7802705f340c2b # v4.5.0
206-
if: ${{ failure() || inputs.build_docs == '1' || inputs.benchmark == '1' }}
230+
if: ${{ failure() || inputs.build_docs == '1' || inputs.benchmark == '1' || inputs.abi_check != '' }}
207231
with:
208232
name: oiio-${{github.job}}-${{inputs.nametag}}
209233
path: |

0 commit comments

Comments
 (0)