That's a good question!

There are two subtly different issues:

1. Which VFX Platform years should we be ensuring that the current OIIO dev and 
release branches will build on?

2. Which older OIIO releases are we obligated to continue to support, both with 
bug fixes as well as updates to keep compatibility with new versions of our 
dependencies (e.g., when OpenEXR 3.0 is released, does OIIO 2.1 need to be 
updated to be able to build against it?).

The second issue is easier. We do a major release yearly, and liberally 
backport fixes and non-ABI-breaking enhancement to the current supported 
release family (now 2.2.x, which gets a minor release like clockwork every 
month). The prior release family (now 2.1.x) only is updated for very critical 
bugs and only upon request. Nothing older is ever patched.

The combination of how quickly people upgrade their OIIO and how stable and 
mature it is means that there is very little demand that I'm seeing for patches 
to anything other than the current release family. I'm just following the 
users' lead for the most part.

Now back to the harder question -- which set of compilers and other 
dependencies do we need to support with the current and dev releases? There is 
unfortunately no hard rule about this, just a bunch of heuristics and 
surveillance of the major studios, such as: What's the oldest version of Maya 
people are still using? What is the default compiler in the version of CentOS 
that most of the studios are using? Users may freely update and rebuild OIIO, 
but they can't easily change their studio's OS or which version of a DCC app 
their in-progress show has locked onto.

At work, we're just now ending our internal requirements for gcc4.8/C++11 
compatibility (which was driven by the toolchain we chose years ago for our 
Maya 2019 plugin ecosystem). It's not really that we're only now starting 
gcc6/C++14... we've been building that as well, multiple versions of everything 
to serve the several DCC apps with different requirements. But it's only in the 
last few weeks that a particular show is winding down that was the very last on 
the old toolchain. We don't yet have a show *requiring* C++17, but we surely 
will soon, since that's the CY 2021 requirement of the DCC apps.

So that means that just now, our need to support VFX Platform 2017 (the last to 
use gcc4.8) can be retired. I guess that makes our effective minimum 2018? Or 
maybe 2019? It's not 2020, because all the studios are still needing Python 
2.7, and technically that is VFXP 2019.

Exactly when can we stop supporting CY2019 and drop Python 2.7 support? When 
can we stop supporting CY2020 and move to C++17/gcc9? The answers to those are 
currently unknown, but at my studio we're at least a year away for both of 
those.

I am hoping to coax some combination of ASWF TAC and VFX Platform into 
stipulating sunset dates for VFX Platform years, clear guidance where they say, 
for example, "here are the compatibilities for CY2022, and also nobody should 
count on continued support for <=2019 from this point onward, and software 
projects need not support them." I think that we could all live closer to the 
most recent releases if the whole ecosystem were agreed on when we retired the 
old versions. But right now, all the projects are just guessing, and that leads 
to being pretty conservative about what you support.

        -- lg


> On Mar 27, 2021, at 5:29 PM, Solomon Boulos <bou...@cs.stanford.edu> wrote:
> 
> That makes sense. 
> 
> Would you describe OIIO’s development branch as needing to be compatible with 
> VFX’s Reference Platform CY of N-2 or N-1? (N-3?). 
> 
> How about the oldest release branch that will receive bug fixes and be 
> ensured to pass CI? N-3 to do a full show? N-5 because you locked at the 
> start of the show and were behind at the time? :).
> 
> On Sat, Mar 27, 2021 at 14:32 Larry Gritz <l...@larrygritz.com 
> <mailto:l...@larrygritz.com>> wrote:
> We're only just now wrapping the last show that uses a software stack based 
> on gcc4.8/C++11. It will probably be a couple more years before we (and 
> everybody else who uses OIIO) are totally free of the need to be compatible 
> with prior years' DCC apps that are gcc6/C++14. As a core library used across 
> many products and apps, we just can't require users to be closer to the 
> bleeding edge than other apps they depend on and need to link against.
> 
> I'm hopeful that the ASWF TAC and/or VFX Platform can be urged to give 
> definitive guidance on how many prior years of VFX Platform should continue 
> to be supported by the foundational open source libraries. VFX Platform CY 
> 2021 was the first to be C++17, so if/when we can get a clear sunset date on 
> compatibility with CY 2020, we'll know when we can drop 14.
> 
> 
>> On Mar 27, 2021, at 1:13 PM, Solomon Boulos <bou...@cs.stanford.edu 
>> <mailto:bou...@cs.stanford.edu>> wrote:
>> 
>> Why not make the jump to 17 now? There are a lot of nice bonuses in C++17 (
>> https://isocpp.org/files/papers/p0636r0.html 
>> <https://isocpp.org/files/papers/p0636r0.html> is a reasonable summary) and 
>> given how long you’ve been on C++11, it seems like it’d be a while before 
>> upgrading again. Unless you figure you’d do the C++17 upgrade next year?
>> 
>> On Sat, Mar 27, 2021 at 12:52 Larry Gritz <l...@larrygritz.com 
>> <mailto:l...@larrygritz.com>> wrote:
>> https://github.com/OpenImageIO/oiio/pull/2918 
>> <https://github.com/OpenImageIO/oiio/pull/2918>
>> 
>> This is just testing the waters by changing the *default* compatibility mode 
>> from C++11 to C++14, but not yet dropping support for C++11, to shake 
>> anything loose that will be trouble for people. For now, you can keep 
>> compiling master with C++11 by using -DCMAKE_CXX_STANDARD=11 on the cmake 
>> configure step.
>> 
>> But the bump of the true minimum to C++14 (and dropping of gcc 4.8 and MSVS 
>> 2015) is IMMINENT. 
>> 
>> For perspective, VFX Platform has specified C++14 since 2018, and specifies 
>> C++17 for 2021. So this is not exactly a bleeding edge move. 
>> 
>> Of course, I'm only talking about master (future OIIO >= 2.3). Compilers, 
>> standards, and other dependencies will never be removed from supported 
>> release branches (currently 2.2). Nothing stops people from using 2.2 if 
>> they need compatibility with older dependencies or build tools.
>> 
>> I'm also thinking that by the time we release OIIO 2.3, other dependencies 
>> may also have their minimum versions raised. For example, we currently 
>> support OpenEXR as far back as 2.0 (2012!).
>> 
>> So let this be the final notice -- if you are expecting OIIO 2.3 (not 
>> officially released/supported until the second half of 2021) to be 
>> compatible with gcc 4.8, C++11, MSVS < 2017, or to build against any 
>> versions of its dependencies that are older than 2016, please speak up now 
>> and we can discuss these requirements.
>> 
>> 
>> --
>> Larry Gritz
>> l...@larrygritz.com <mailto:l...@larrygritz.com>
>> 
>> 
>> 
>> 
>> _______________________________________________
>> Oiio-dev mailing list
>> Oiio-dev@lists.openimageio.org <mailto:Oiio-dev@lists.openimageio.org>
>> http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org 
>> <http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org>
>> _______________________________________________
>> Oiio-dev mailing list
>> Oiio-dev@lists.openimageio.org <mailto:Oiio-dev@lists.openimageio.org>
>> http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org 
>> <http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org>
> 
> --
> Larry Gritz
> l...@larrygritz.com <mailto:l...@larrygritz.com>
> 
> 
> 
> 
> _______________________________________________
> Oiio-dev mailing list
> Oiio-dev@lists.openimageio.org <mailto:Oiio-dev@lists.openimageio.org>
> http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org 
> <http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org>
> _______________________________________________
> Oiio-dev mailing list
> Oiio-dev@lists.openimageio.org
> http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org

--
Larry Gritz
l...@larrygritz.com




_______________________________________________
Oiio-dev mailing list
Oiio-dev@lists.openimageio.org
http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org

Reply via email to