Skip to content

Commit 9bfcce7

Browse files
authored
build: Prepare for branch of 3.1 releases (#4862)
Preparation to create a dev-3.1 branch with this merge. It will fail the ABI test, that is expected. Immediately after, we'll update the ABI reference standard for 3.1. Signed-off-by: Larry Gritz <lg@larrygritz.com>
1 parent 4c4e397 commit 9bfcce7

5 files changed

Lines changed: 41 additions & 16 deletions

File tree

CHANGES.md

Lines changed: 29 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,28 @@ Release 3.1 (target: Sept 2025?) -- compared to 3.0
44
- Anticipated release candidate: Sep 1, 2025
55
- Anticipated supported release: Sep 15, 2025
66

7-
### New minimum dependencies and compatibility changes:
7+
**NOTE:** We anticipate some additional changes to color management to be
8+
rolled out during the beta period. It will not include any breaks to API or
9+
ABI compatibility, but we do expect some behavior changes.
10+
11+
**Executive Summary / Highlights:**
12+
- New image file support: Ultra HDR (HDR images in JPEG containers).
13+
- oiiotool new commands: `--layersplit`, `--pastemeta`, `--demosaic`,
14+
`create-dir` and new expression expansion tokens: `IS_CONSTANT`,
15+
`IS_BLACK`, `SUBIMAGES`.
16+
- New IBA image processing functions: `scale()`, `demosaic`.
17+
- New 2-level namespace scheme that we hope will make it possible in the
18+
future for our annual releases to NOT need to break backward ABI
19+
compatibility.
20+
- Support in Python for `ImageBuf._repr_png_` method allows use of OIIO
21+
inside [Jupyter Notebooks](https://jupyter.org/) to display computed
22+
images.
23+
- Color management improvements (some TBD, not landed yet) to conform to
24+
Color Interchange Forum and OpenEXR new conventions for naming and
25+
specifying color spaces.
826

9-
- Anticipated raising of Python minimum to 3.9.
27+
### New minimum dependencies and compatibility changes:
28+
* *Python*: 3.9 minimum (from 3.7) [#4830](https://github.com/AcademySoftwareFoundation/OpenImageIO/pull/4830) (3.1.4.0)
1029

1130
### ⛰️ New features and public API changes:
1231
* *New image file format support:*
@@ -160,7 +179,8 @@ Release 3.1 (target: Sept 2025?) -- compared to 3.0
160179
- *build*: Clean up Windows compilation warnings [#4706](https://github.com/AcademySoftwareFoundation/OpenImageIO/pull/4706) (3.1.3.0)
161180
- *build/python*: Wheel upload_pypi step should only run from main repo [#4820](https://github.com/AcademySoftwareFoundation/OpenImageIO/pull/4820) (3.1.3.0)
162181
- *build*: Fix typo related to finding ccache [#4833](https://github.com/AcademySoftwareFoundation/OpenImageIO/pull/4833) (3.1.4.0)
163-
* Dependency support:
182+
- *build*: C++23 support [#4844](https://github.com/AcademySoftwareFoundation/OpenImageIO/pull/4844) (3.1.4.0)
183+
* Dependency and platform support:
164184
- *deps*: Support static OCIO self-builds [#4517](https://github.com/AcademySoftwareFoundation/OpenImageIO/pull/4517) (by zachlewis) (3.1.0.0/3.0.1.0)
165185
- *deps*: Add new ref output for libheif updates [#4525](https://github.com/AcademySoftwareFoundation/OpenImageIO/pull/4525) (3.1.0.0/3.0.1.0)
166186
- *build*: Add build recipe for PNG [#4423](https://github.com/AcademySoftwareFoundation/OpenImageIO/pull/4423) (by zachlewis) (3.1.0.0/3.0.1.0)
@@ -174,6 +194,11 @@ Release 3.1 (target: Sept 2025?) -- compared to 3.0
174194
- *tests*: Update ref image for slightly changed freetype accents [#4765](https://github.com/AcademySoftwareFoundation/OpenImageIO/pull/4765) (3.1.3.0)
175195
- *deps/ffmpeg*: Replace deprecated and soon removed avcodec_close with avcodec_free_context [#4837](https://github.com/AcademySoftwareFoundation/OpenImageIO/pull/4837) (by Vlad Erium) (3.1.4.0)
176196
- *build/jpeg2000*: Update jpeg2000input.cpp to include cstdarg [#4836](https://github.com/AcademySoftwareFoundation/OpenImageIO/pull/4836) (by Peter Kovář) (3.1.4.0)
197+
- *deps*: Raise minimum supported Python from 3.7 to 3.9 [#4830](https://github.com/AcademySoftwareFoundation/OpenImageIO/pull/4830) (3.1.4.0)
198+
- *deps*: Use get_plane2 introduced by libheif 1.20.2 [#4851](https://github.com/AcademySoftwareFoundation/OpenImageIO/pull/4851) (by toge) (3.1.4.0)
199+
- *windows*: Include Windows version information on produced binaries [#4696](https://github.com/AcademySoftwareFoundation/OpenImageIO/pull/4696) (by Jesse Yurkovich) (3.1.3.0)
200+
- windows + ARM64*: Add arm_neon.h include on Windows ARM64 with clang-cl [#4691](https://github.com/AcademySoftwareFoundation/OpenImageIO/pull/4691) (by Anthony Roberts)
201+
- *build/windows*: Propagate CMAKE_MSVC_RUNTIME_LIBRARY [#4842](https://github.com/AcademySoftwareFoundation/OpenImageIO/pull/4842) (3.1.4.0)
177202
* Testing and Continuous integration (CI) systems:
178203
- *tests*: Improve Ptex testing [#4573](https://github.com/AcademySoftwareFoundation/OpenImageIO/pull/4573) (3.1.1.0)
179204
- *tests*: Better testing coverage of null image reader/writer [#4578](https://github.com/AcademySoftwareFoundation/OpenImageIO/pull/4578) (3.1.1.0)
@@ -217,10 +242,7 @@ Release 3.1 (target: Sept 2025?) -- compared to 3.0
217242
- *ci*: Update linux arm clang reference output [#4782](https://github.com/AcademySoftwareFoundation/OpenImageIO/pull/4782) (3.1.3.0)
218243
- *ci*: Bump 'latest releases' tests to use pybind11 3.0.0 [#4828](https://github.com/AcademySoftwareFoundation/OpenImageIO/pull/4828) (3.1.4.0)
219244
- *ci*: For python stub generation, lock pybind11 to pre-3.0 [#4831](https://github.com/AcademySoftwareFoundation/OpenImageIO/pull/4831) (3.1.4.0)
220-
* Platform support:
221-
- *windows*: Include Windows version information on produced binaries [#4696](https://github.com/AcademySoftwareFoundation/OpenImageIO/pull/4696) (by Jesse Yurkovich) (3.1.3.0)
222-
- windows + ARM64*: Add arm_neon.h include on Windows ARM64 with clang-cl [#4691](https://github.com/AcademySoftwareFoundation/OpenImageIO/pull/4691) (by Anthony Roberts)
223-
- *build/windows*: Propagate CMAKE_MSVC_RUNTIME_LIBRARY [#4842](https://github.com/AcademySoftwareFoundation/OpenImageIO/pull/4842) (3.1.4.0)
245+
- *ci*: Add a VFX Platform 2026 CI job [#4856](https://github.com/AcademySoftwareFoundation/OpenImageIO/pull/4856) (3.1.4.0)
224246

225247
### 📚 Notable documentation changes:
226248
- *docs*: Clarify 'copy_image' example [#4522](https://github.com/AcademySoftwareFoundation/OpenImageIO/pull/4522) (3.1.0.0/3.0.1.0)

CMakeLists.txt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,12 @@ project (OpenImageIO VERSION ${OpenImageIO_VERSION}
1919
set (PROJ_NAME OIIO) # short name, caps
2020
string (TOLOWER ${PROJ_NAME} PROJ_NAME_LOWER) # short name lower case
2121
string (TOUPPER ${PROJ_NAME} PROJ_NAME_UPPER) # short name upper case
22-
set (PROJECT_VERSION_RELEASE_TYPE "dev" CACHE STRING
22+
set (PROJECT_VERSION_RELEASE_TYPE "beta" CACHE STRING
2323
"Build type, for example: dev, beta2, RC1 (empty string for normal release)")
2424
set (${PROJECT_NAME}_VERSION_RELEASE_TYPE ${PROJECT_VERSION_RELEASE_TYPE})
2525
set (PROJECT_AUTHORS "Contributors to the OpenImageIO project")
2626
option (${PROJECT_NAME}_SUPPORTED_RELEASE
27-
"Set ON for supported release branches, OFF for 'main'" OFF)
27+
"Set ON for supported release branches, OFF for 'main'" ON)
2828
if (${PROJECT_NAME}_SUPPORTED_RELEASE)
2929
set (${PROJECT_NAME}_DEV_RELEASE OFF)
3030
else ()
@@ -40,7 +40,7 @@ if (CMAKE_VERSION VERSION_LESS 3.21)
4040
endif ()
4141
endif ()
4242

43-
# Set up module path for our own cmake modules and add some esential ones
43+
# Set up module path for our own cmake modules and add some essential ones
4444
list (APPEND CMAKE_MODULE_PATH
4545
"${PROJECT_SOURCE_DIR}/src/cmake/modules"
4646
"${PROJECT_SOURCE_DIR}/src/cmake")

INSTALL.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,9 @@ NEW or CHANGED MINIMUM dependencies since the last major release are **bold**.
1717
* C++17 or higher (also builds with C++20 and C++23)
1818
* The default build mode is C++17. This can be controlled by via the
1919
CMake configuration flag: `-DCMAKE_CXX_STANDARD=20`, etc.
20-
* Compilers: gcc 9.3 - 14.2, clang 5 - 20, MSVS 2017 - 2022 (v19.14
21-
and up), Intel icc 19+, Intel OneAPI C++ compiler 2022+.
20+
* Compilers: gcc 9.3 - 14.2, clang 5 - 20 (though we don't actively test
21+
older than 11), MSVS 2017 - 2022 (v19.14 and up), Intel icc 19+, Intel
22+
OneAPI C++ compiler 2022+.
2223
* CMake >= 3.18.2 (tested through 4.1)
2324
* Imath >= 3.1 (tested through 3.2 and main)
2425
* OpenEXR >= 3.1 (tested through 3.4 and main)

src/doc/Doxyfile

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2187,10 +2187,13 @@ PREDEFINED = DOXYGEN_SHOULD_SKIP_THIS \
21872187
OIIO_NAMESPACE_END="}" \
21882188
OIIO_NAMESPACE_3_0_BEGIN="namespace OIIO {" \
21892189
OIIO_NAMESPACE_3_0_END="}" \
2190+
OIIO_NAMESPACE_3_1_BEGIN="namespace OIIO {" \
2191+
OIIO_NAMESPACE_3_1_END="}" \
21902192
OIIO_NS_BEGIN="namespace OIIO {" \
21912193
OIIO_NS_END="}" \
21922194
OIIO_CONSTEXPR17=constexpr \
21932195
OIIO_CONSTEXPR20=constexpr \
2196+
OIIO_CONSTEXPR23=constexpr \
21942197
OIIO_IB_DEPRECATE_RAW_PTR:= \
21952198
OIIO_INLINE_CONSTEXPR="inline constexpr" \
21962199
OIIO_PURE_FUNC= \

src/include/OpenImageIO/oiioversion.h.in

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -173,10 +173,9 @@ namespace OIIO = @PROJ_NAMESPACE@;
173173
#define OIIO_NS_BEGIN(ver) namespace @PROJ_NAMESPACE@ { namespace ver {
174174
#define OIIO_NS_END } }
175175

176-
// Specialty macro: Make something ABI compatible with 3.0
177-
#define OIIO_NAMESPACE_3_0 @PROJ_NAMESPACE@_v3_0
178-
#define OIIO_NAMESPACE_3_0_BEGIN namespace OIIO_NAMESPACE_3_0 {
179-
#define OIIO_NAMESPACE_3_0_END }
176+
// Specialty macro: Make something ABI compatible with 3.1
177+
#define OIIO_NAMESPACE_3_1_BEGIN OIIO_NS_BEGIN(v3_1)
178+
#define OIIO_NAMESPACE_3_1_END OIIO_NS_END
180179

181180
// Macro to use names without explicit qualifier
182181
#define OIIO_NAMESPACE_USING using namespace @PROJ_NAMESPACE@::@PROJ_VERSION_NAMESPACE@;

0 commit comments

Comments
 (0)