diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e1ca5ea850..e57351446c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -406,8 +406,8 @@ jobs: pybind11_ver: v3.0.0 simd: "avx2,f16c" skip_tests: 1 - # abi_check: v3.1.3.0 - abi_check: 9bfcce725a3806a3f70c7e838d9d98d6d95c917a + # abi_check: v3.1.6.0 + abi_check: d4c8024633dba8bb3c01d22b65ce9bc7a1ae215e setenvs: export OIIO_CMAKE_FLAGS="-DOIIO_BUILD_TOOLS=0 -DOIIO_BUILD_TESTS=0 -DUSE_PYTHON=0" USE_OPENCV=0 USE_FFMPEG=0 USE_PYTHON=0 USE_FREETYPE=0 optional_deps_append: "openjph;Qt6" diff --git a/CHANGES.md b/CHANGES.md index b8d2131765..b43f6dc023 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,46 +1,14 @@ -Release 3.1 (target: Oct 1 2025?) -- compared to 3.0 ----------------------------------------------------- +Release 3.1 (target: Oct 2 2025) -- compared to 3.0.x +----------------------------------------------------- - Beta 1: Aug 22, 2025 - Beta 2: Sep 19, 2025 - Release candidate 1: Sep 27, 2025 -- Anticipated supported release: Oct 1, 2025 (-ish) - -**Change highlights in RC1** - - *oiiotool*: Use normalized path when creating wildcard path pattern [#4904](https://github.com/AcademySoftwareFoundation/OpenImageIO/pull/4904) (by Jesse Yurkovich) (3.1.6.0) - - *oiiotool*: Ignore empty subimage(s) when calculating non-zero region [#4909](https://github.com/AcademySoftwareFoundation/OpenImageIO/pull/4909) (by Carine Touraille) (3.1.6.0) - - *docs/python*: Add type hints to Python docs [#4908](https://github.com/AcademySoftwareFoundation/OpenImageIO/pull/4908) (by Connie Chang) (3.1.6.0) - - *build*: Fix some build issues encountered on a musl libc system [#4903](https://github.com/AcademySoftwareFoundation/OpenImageIO/pull/4903) (by omcaif) (3.1.6.0) - - *ci*: Sonar scan guard [#4902](https://github.com/AcademySoftwareFoundation/OpenImageIO/pull/4902) (by vvalderrv) (3.1.6.0) - - *ci*: Add more exceptions to when we test docs building [#4899](https://github.com/AcademySoftwareFoundation/OpenImageIO/pull/4899) (3.1.6.0) - - *ci*: Require all dependencies, with explicit exceptions [#4898](https://github.com/AcademySoftwareFoundation/OpenImageIO/pull/4898) (3.1.6.0) - -**Change highlights in beta 2** - - *oiiotool*: Allow easy splitting of subimages by name [#4874](https://github.com/AcademySoftwareFoundation/OpenImageIO/pull/4874) (3.1.5.0) - - *ffmpeg*: Add ability to read CICP metadata [#4882](https://github.com/AcademySoftwareFoundation/OpenImageIO/pull/4882) (by Brecht Van Lommel) (3.1.5.0) - - *ffmpeg*: FFmpeg incorrectly set zero oiio:BitsPerSample [#4885](https://github.com/AcademySoftwareFoundation/OpenImageIO/pull/4885) (by Brecht Van Lommel) (3.1.5.0) - - *gif*: Gif output didn't handle FramesPerSecond attribute correctly [#4890](https://github.com/AcademySoftwareFoundation/OpenImageIO/pull/4890) (3.1.5.0) - - *heic*: Read and write of CICP and support for bit depth 10 and 12 [#4880](https://github.com/AcademySoftwareFoundation/OpenImageIO/pull/4880) (by Brecht Van Lommel) (3.1.5.0) - - *png*: CICP metadata support for PNG [#4746](https://github.com/AcademySoftwareFoundation/OpenImageIO/pull/4746) (by Zach Lewis) (3.1.5.0) - - *raw*: Add thumbnail support to the raw input plugin [#4887](https://github.com/AcademySoftwareFoundation/OpenImageIO/pull/4887) (by Anton Dukhovnikov) (3.1.5.0) - - *webp*: Support reading/writing the ICCProfile attribute [#4878](https://github.com/AcademySoftwareFoundation/OpenImageIO/pull/4878) (by Jesse Yurkovich) (3.1.5.0) - - *api*: Versioned namespace to preserve ABI compatibility between minor releases [#4869](https://github.com/AcademySoftwareFoundation/OpenImageIO/pull/4869) (3.1.5.0) - - *deps(freetype)*: Test freetype 2.14 and document that it works [#4876](https://github.com/AcademySoftwareFoundation/OpenImageIO/pull/4876) (3.1.5.0) - - *deps(ffmpeg)*: Ffmpeg 8 support [#4870](https://github.com/AcademySoftwareFoundation/OpenImageIO/pull/4870) (3.1.5.0) - - *deps(openvdb)*: Look for boost headers for OpenVDBs older than 12 [#4873](https://github.com/AcademySoftwareFoundation/OpenImageIO/pull/4873) (by Alex Fuller) (3.1.5.0) - - *deps(openexr)*: OpenEXR 3.4 supports two compression types for HTJ2K [#4871](https://github.com/AcademySoftwareFoundation/OpenImageIO/pull/4871) (by Todica Ionut) (3.1.5.0) - - *deps(openexr)*: Several OpenEXR and OpenJPH build related fixes [#4875](https://github.com/AcademySoftwareFoundation/OpenImageIO/pull/4875) (3.1.5.0) - - *deps(openjph)*: Fix openjph target use [#4894](https://github.com/AcademySoftwareFoundation/OpenImageIO/pull/4894) (3.1.5.0) - - *ci*: Fix broken python wheel building [#4855](https://github.com/AcademySoftwareFoundation/OpenImageIO/pull/4855) (by Zach Lewis) (3.1.5.0) - - -**NOTE:** We anticipate some additional changes to color management to be -rolled out during the beta period. It will not include any breaks to API or -ABI compatibility, but we do expect some behavior changes. +- Full release, v3.1.6.1: Oct 2, 2025 **Executive Summary / Highlights:** - New image file support: Ultra HDR (HDR images in JPEG containers). - oiiotool new commands: `--layersplit`, `--pastemeta`, `--demosaic`, - `create-dir` and new expression expansion tokens: `IS_CONSTANT`, + `--create-dir` and new expression expansion tokens: `IS_CONSTANT`, `IS_BLACK`, `SUBIMAGES`. - New IBA image processing functions: `scale()`, `demosaic()`. - New 2-level namespace scheme that we hope will make it possible in the @@ -223,6 +191,7 @@ ABI compatibility, but we do expect some behavior changes. - *build*: Fix typo related to finding ccache [#4833](https://github.com/AcademySoftwareFoundation/OpenImageIO/pull/4833) (3.1.4.0) - *build*: C++23 support [#4844](https://github.com/AcademySoftwareFoundation/OpenImageIO/pull/4844) (3.1.4.0) - *build*: Clean up obsolete logic for old compilers [#4849](https://github.com/AcademySoftwareFoundation/OpenImageIO/pull/4849) (3.1.5.0) + - *build*: Update autobuild defaults for some dependencies [#4910](https://github.com/AcademySoftwareFoundation/OpenImageIO/pull/4910) (3.1.6.1) * Dependency and platform support: - *build(OCIO)*: Support static OCIO self-builds [#4517](https://github.com/AcademySoftwareFoundation/OpenImageIO/pull/4517) (by zachlewis) (3.1.0.0/3.0.1.0) - *build(PNG)*: Add build recipe for PNG [#4423](https://github.com/AcademySoftwareFoundation/OpenImageIO/pull/4423) (by zachlewis) (3.1.0.0/3.0.1.0); PNG auto-build improvements [#4835](https://github.com/AcademySoftwareFoundation/OpenImageIO/pull/4835) (3.1.4.0) @@ -245,6 +214,7 @@ ABI compatibility, but we do expect some behavior changes. - *deps(openjph)*: Fix openjph target use [#4894](https://github.com/AcademySoftwareFoundation/OpenImageIO/pull/4894) (3.1.5.0) - *deps(openvdb)*: Look for boost headers for OpenVDBs older than 12 [#4873](https://github.com/AcademySoftwareFoundation/OpenImageIO/pull/4873) (by Alex Fuller) (3.1.5.0) - *deps(python)*: Raise minimum supported Python from 3.7 to 3.9 [#4830](https://github.com/AcademySoftwareFoundation/OpenImageIO/pull/4830) (3.1.4.0) + - *deps(opencolorio)*: Support for OpenColorIO 2.5 [#4916](https://github.com/AcademySoftwareFoundation/OpenImageIO/pull/4916) (3.1.6.1) - *windows*: Include Windows version information on produced binaries [#4696](https://github.com/AcademySoftwareFoundation/OpenImageIO/pull/4696) (by Jesse Yurkovich) (3.1.3.0) - *windows*: Propagate CMAKE_MSVC_RUNTIME_LIBRARY [#4842](https://github.com/AcademySoftwareFoundation/OpenImageIO/pull/4842) (3.1.4.0) - *windows + ARM64*: Add arm_neon.h include on Windows ARM64 with clang-cl [#4691](https://github.com/AcademySoftwareFoundation/OpenImageIO/pull/4691) (by Anthony Roberts) @@ -335,6 +305,15 @@ ABI compatibility, but we do expect some behavior changes. --- --- +Release 3.0.11.0 (Oct 1, 2025) -- compared to 3.0.10.1 +------------------------------------------------------- + - *oiiotool*: Allow easy splitting output of subimages by name [#4874](https://github.com/AcademySoftwareFoundation/OpenImageIO/pull/4874) + - *webp*: Support reading/writing the ICCProfile attribute for WepP files[#4878](https://github.com/AcademySoftwareFoundation/OpenImageIO/pull/4878) (by Jesse Yurkovich) + - *gif*: GIF output didn't handle FramesPerSecond attribute correctly [#4890](https://github.com/AcademySoftwareFoundation/OpenImageIO/pull/4890) + - *deps*: Test freetype 2.14 and document that it works [#4876](https://github.com/AcademySoftwareFoundation/OpenImageIO/pull/4876) + - *deps*: Look for boost headers for OpenVDBs older than 12 [#4873](https://github.com/AcademySoftwareFoundation/OpenImageIO/pull/4873) (by Alex Fuller) + + Release 3.0.10.1 (Sep 16, 2025) -- compared to 3.0.10.0 ------------------------------------------------------- - *ci*: Fix broken python wheel building [#4886](https://github.com/AcademySoftwareFoundation/OpenImageIO/pull/4886) [#4855](https://github.com/AcademySoftwareFoundation/OpenImageIO/pull/4855) (by Zach Lewis) diff --git a/CMakeLists.txt b/CMakeLists.txt index d05f6f6040..ff18b18624 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,7 +4,7 @@ cmake_minimum_required (VERSION 3.18.2...4.0) -set (OpenImageIO_VERSION "3.1.6.0") +set (OpenImageIO_VERSION "3.1.6.1") set (OpenImageIO_VERSION_OVERRIDE "" CACHE STRING "Version override (use with caution)!") mark_as_advanced (OpenImageIO_VERSION_OVERRIDE) @@ -19,7 +19,7 @@ project (OpenImageIO VERSION ${OpenImageIO_VERSION} set (PROJ_NAME OIIO) # short name, caps string (TOLOWER ${PROJ_NAME} PROJ_NAME_LOWER) # short name lower case string (TOUPPER ${PROJ_NAME} PROJ_NAME_UPPER) # short name upper case -set (PROJECT_VERSION_RELEASE_TYPE "rc1" CACHE STRING +set (PROJECT_VERSION_RELEASE_TYPE "" CACHE STRING "Build type, for example: dev, beta2, RC1 (empty string for normal release)") set (${PROJECT_NAME}_VERSION_RELEASE_TYPE ${PROJECT_VERSION_RELEASE_TYPE}) set (PROJECT_AUTHORS "Contributors to the OpenImageIO project") diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index d3c9d673dc..1e0cfbdf23 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,37 +1,29 @@ Contributing to OpenImageIO =========================== -> NOTE: This is the proposed post-ASWF-move version of CONTRIBUTING. After the -> project is legally transferred and moved to the new repo, this file will -> replace the one at the project root. -> -> TO DO: -> -> - [X] Update the mail list sign-up page after the mail list moves. -> - [ ] Update the repo URL -> - [ ] Double check the security and info email addresses. -> - -Code contributions to OpenImageIO are always welcome, and [nearly 200 +Code contributions to OpenImageIO are always welcome, and [nearly 250 people](https://github.com/AcademySoftwareFoundation/OpenImageIO/blob/main/CREDITS.md) have done so over the years. Please review this document to get a briefing on our process. +General Tips for Open Source Development +---------------------------------------- + +* GitHub's [Open Source Guides](https://opensource.guide/) + - Especially the guide on [How to Contribute to Open Source](https://opensource.guide/how-to-contribute/) + + Mail List and Slack ------------------- -Contributors should be reading the oiio-dev mail list: - * [oiio-dev](https://lists.aswf.io/g/oiio-dev) For developers of the OpenImageIO code itself, or users who are really interested in the OIIO internals. This is where we mostly discuss the code (including bug reports), but are also happy to answer user questions about -use or working of OIIO. - -You can sign up for the mail list on your own using the link above. +use or working of OIIO. You can sign up for the mail list on your own using the link above. -The [ASWF Slack](https://slack.aswf.io/) has an `openimageio` channel. Sign up +* [ASWF Slack](https://slack.aswf.io/) has an `openimageio` channel. Sign up for the Slack on your own, then under "channels", select "browse channels" and you should see the openimageio channel (among those of the other projects and working groups). @@ -55,7 +47,7 @@ enhancements: https://github.com/AcademySoftwareFoundation/OpenImageIO/issues **If you are merely asking a question ("how do I...")**, please do not file an issue, but instead ask the question on the [oiio-dev mailing -list](https://lists.aswf.io/g/oiio-dev). +list](https://lists.aswf.io/g/oiio-dev) or on the Slack channel. If you are submitting a bug report, please be sure to note which version of OIIO you are using, on what platform (OS/version, which compiler you used, @@ -215,7 +207,7 @@ under `fix:`, because that appears first in the list). It is also encouraged, when it makes sense to do so, to put a subcategory in parenthesis after the prefix, like `fix(exr):` or `feat(IBA):`. It's ok to use obvious abbreviations for major classes or subsections: IB=ImageBuf, -IBA=ImageBufAlgo, IC=ImageCace, TS=TextureSystem, etc. If there is no clear +IBA=ImageBufAlgo, IC=ImageCache, TS=TextureSystem, etc. If there is no clear single format or class that is the man focus of the patch, then you can omit the subcategory. diff --git a/SECURITY.md b/SECURITY.md index 1fc108aa7a..60c1f1bcb3 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -9,9 +9,8 @@ security vulnerabilities. | ----------------- | ---------------------------------------------------- | | main | :white_check_mark: :construction: ALL fixes immediately, but this is a branch under development with a frequently unstable ABI and occasionally unstable API. | | 3.1.x | :white_check_mark: All fixes that can be backported without breaking ABI compatibility. New tagged releases monthly. | -| 3.0.x | :white_check_mark: All fixes that can be backported without breaking ABI compatibility. New tagged releases monthly. | -| 2.5.x | :warning: Bug fixes backported only if critical or upon request (and if we are able to cleanly backport). New tagged releases only occasionally. | -| < 2.5.x | :x: No longer receiving patches of any kind. | +| 3.0.x | :warning: Important fixes that can be easily backported without breaking ABI compatibility. New tagged releases as needed, and becoming less frequent over time. | +| <= 2.5.x | :x: No longer receiving patches of any kind. | ## Reporting a Vulnerability diff --git a/docs/dev/RELEASING.md b/docs/dev/RELEASING.md index 3d2233a348..e0d88fded0 100644 --- a/docs/dev/RELEASING.md +++ b/docs/dev/RELEASING.md @@ -325,7 +325,7 @@ The following are the steps for making the release: > The API is now frozen -- we promise that subsequent 3.1.x releases > (which should happen monthly) will not break back-compatibility of API, > ABI, or linkage, compared to this release. Please note that this release - > is *not* ABI or link compatible with 2.5 or older releases. + > is *not* ABI or link compatible with 3.0 or older releases. > > Release notes for 3.1 outlining all the changes since last year's > release can be found at *LINK TO THE GITHUB RELEASE PAGE.* @@ -347,15 +347,15 @@ The following are the steps for making the release: > releases to the 3.1 family roughly monthly, which will contain bug fixes > and non-breaking enhancements. > - > The older 2.5 series of releases is now considered obsolete. We will - > continue for now to make 2.4 patch releases, but over time, these will + > The older 3.0 series of releases is now considered obsolete. We will + > continue for now to make 3.0 patch releases, but over time, these will > become less frequent and be reserved for only the most critical bug > fixes. > - > The "main" branch is now progressing toward an eventual 3.1 release next + > The "main" branch is now progressing toward an eventual 3.2 release next > fall. As usual, you are welcome to use main for real work, but we do > not make any compatibility guarantees and don't guarantee continuing API - > compatibility in main. + > compatibility within main. > > (Paste the full set of 3.1 changes here, just copy the appropriate > part of CHANGES.md)