Can we move to using python3.8?

With 2.90.0 and 2.83.5 released with py3.7, could we now move to start using py3.8 for the next release?

Is there any technical reason to stay with 3.7?

1 Like

Hi Sambler.
Recently been assessed to which version to upgrade and finally updated to 3.7.7.

Sources:
https://developer.blender.org/T76184
https://developer.blender.org/T77846

We try to follow the VFX reference platform, and that will still be on 3.7 in 2021.

7 Likes

I don’t know if this is the appropriate place to raise this, but Blender now got switched to Python 3.9 (https://developer.blender.org/rB5bddfde217b1477c02de9dcfa8c078969d432519), while the VFX Platform is still very much on 3.7. Was this discussed anywhere else to upgrade Blender’s Python version? This upgrade to 3.9 will make it very much harder for us to keep a common environment for our tools and pipeline.

https://developer.blender.org/T83246
https://lists.blender.org/pipermail/bf-committers/2020-December/050799.html

1 Like

Yes, it’s a bit unfortunate that even though there was support on the vfx platform to moving to 3.9 for 2021, the industry has still been too slow in even getting to 3.7 and an update was delayed for next year as per this thread: https://groups.google.com/g/vfx-platform-discuss/c/-UfNwawZges

At this point some users were running into legitimate bugs in 3.7 that have since been fixed in later versions. Remember that 3.7 is not receiving any fixes at this point beyond security updates; putting blender in a tough spot. 2.93 is an LTS release which needs to last 2 years. Another 2 years without python fixes is problematic.

@Frieder In the meantime, if this is truly detrimental for you, perhaps start a new thread that details exactly how things (software, pipeline, addons) will fail in your environment now. There was an, IMHO, weak call by blender to the community to ask for input on these issues but no feedback was received. Nothing will probably be done for 2.93 at this point but it will help blender anticipate and understand your requirements better.

2 Likes

Thank you @rboxman and @ankitm for the replies! It’s helpful to see the discussion leading up to this point.
I’ll collect some thoughts before starting a new thread and read the information that you provided for now to better understand how the decision was made.

For context: The only thread I saw was Ton asking on Twitter about the Python version. Jeff Hanna replied to the thread, expressing the consensus of the Tech Art community that we should stick to Python 3.7.

Yeah, that was literally the only reply and he only, more or less, expressed a desire for things to remain on 3.7. There was no concrete example behind it that would show exactly what needs to be supported and why.

For additional reference https://developer.blender.org/T84752 and its 5 duplicates is the issue I mentioned about 3.7 already being problematic for some users.

1 Like

Blender 2.93 will be using Python 3.9. Current beta builds are already on py3.9.

1 Like

Agreed, I monitor twitter, here, and bf-commiters and missed this somehow until @sybren announced on twitter .

Not to rehash that thread, I get the bug fixes for Python needed, but the concrete example here of the downside is rather obvious. Most(*) addons using c python extensions will not work right now with Blender 2.93 after moving to Python 3.9. Off the top of my head those are:

ProRender
(future RenderMan plugin)
FLIP fluids
Luxcore
octane
redshift

I’m sure there are others. But the point is that those addons probably need to recompile to support Bender 2.93 and support two different build systems for building their c-extensions to 3.7 and 3.9. Which sucks let me tell you. Particularly for render plugins that support many different apps, not just blender, they make a Python 3.7 binding since that is the industry standard.

  • There is a way that python c-extensions can be built with limited functionality and forward compatibility https://docs.python.org/3/c-api/stable.html but it is limiting and my experience with this has been mixed. I don’t consider this a great solution.

Edit: For the future what is the best way for addon developers to be involved in this discussion?

7 Likes

It is very annoying, I’m the TD at a mid sized studio that is based on Blender, Houdini and Fusion, we are excited about Blender, but often there are decisions being made IMHO without taking reliability of Blender as part of an ecosystem into account, our pipeline Manager, our Render Manager, our Renderer of choice which was being ported to blender and was a godsend to us, all these are fundamental tools for the operation of the studio, and we can’t upgrade Blender just because there was apparently very little consultation with the ecosystem, as long as the attitude keeps being everybody has to adapt to us this will keep happening and having the privilege of using Blender in a professional environment without having a dev department is still going to be hard to achieve.

2 Likes

All the other softwares like Maya or Max break their API every two versions (more or less) and that requires a plugins re-compilation work, that is something everyone, users and plug-in developers are used to and know.

In general, with some small exceptions/fixes non compiled addons should work, that is the majority, however very complex addons may require a bit more adaptation and compiled addons require a recompilation, that’s it.

The LTS is there to maintain on-going projects stable with a stable release, 2.82 was the first LTS and will be supported for one more year, 2.93 is the second one and will receive support for two years, if you want/need stability you should use those, if you want bleeding edge, disruptive changes may occur, that’s the difference between LTS and non-LTS

The root cause really is the relatively short support period on a python release (18 months) and the VFX platform historically dragging their heels on the python version they pick (for various reasons)

It was decided not to ship with 3.7 since 2.93 was an LTS release for us, which means 2 years of bugfixes, python 3.7 had its last bugfix release in June of 2020 (so no bug fix support ~3 years at the end of our support period) which could have been OK if we did not have outstanding issues only solved in newer versions, so we opted to leap to 3.9, was it on a whim arrogantly going “everybody has to adapt to us!” hardly, we knew it would ruffle some feathers, but we (still) think it was the right call.

was it? for some users yes, some of the pesky crashes they had are gone now, for some the answer is hard no, “shipping with a different python version, what were you thinking?!”

A similar issue will exist for VFX 2022 where the VFX Platform was proactive and picked the latest version they could, python 3.9.x was chosen which ends bugfix support a mere 5 months into the year.

Given python 3.10 may not be out by the time the VFX Platform locks down for 2022 this is the only version they could have chosen and yet it is still not “a great choice”

With python rejecting the thought of having LTS releases, it’s gonna stay tricky.

on the upside, 2.93 will have a compatible python version for the full 2022 year :slight_smile:

5 Likes

Hey Juan, Thank you for your input, I know how the API works, main difference is that there is already support and communication built between these apps and their ecosystem so if max, maya, etc break compatibility you can be certain that this is mostly temporary, and often the developer has been notified and there is already a recompiled version when the new app is out, this is not the case with Blender, there isn’t this standardization yet, we are on .83 LTS since it came out and would love to go to .93 LTS, sadly this is not only not possible but we don’t know when it will be, I agree that is not incumbent on Blender to develop tools for other companys like let’s say, Houdini Engine, but it should be a priority to look at the environment before making decisions, Renderman just came out and people have to choose between trying out an standard tool for rendering and the new Blender version, it feels like a middle finger to people waiting to use the engine as well as to the developers that took interest in the app, going back to the houdini engine example, is not very encouraging for a company to develop a plugin if you are not even going to abide by the VFX Reference Plataform that you yourself said were going to abide by.
I love Blender, this is just a bit frustrating because there is still this vibe around that the bigger ecosystem support is just fragile and Blender always seems to be reticent to integrate.

2 Likes

Maybe it is just me, I’m sure decisions are made with the best intentions and there is a big chance that the larger user base is not impacted :slight_smile:

I don’t know if there was a way to keep support for both versions (3.7 and 3.9) and probably the solution was the correct one, hopefully the apps will support the new version soon and I’m just talking out of ignorance :slight_smile:

Being as it may I just want to be clear in my personal appreciation on the hard work of the developers.

1 Like

Addon developers knew this change was coming, this was announced in the proper places, weekly release notes mainly, also this change was made long before the release, 1 month (aprox) before the release API changes were locked, that’s something known and published, not just that, also anyone was able to make use of Blender Alpha/Bera/RC.

Why are not addon developers ready before the release?

I have no idea, but the communication was done, and the process is the same as always, also it was announced when 2.83 that there would be API break between LTS versions if it was required.

So I don’t think it’s Blender’s responsibility but addon developers responsibility, all the announcements where done, and even there was a consultation here, in this exact thread, Addon developers should be used to be here in the same way they are used to be in beta forums for max or Maya, Blender will not (and IMHO should not) make direct special consultation to some Addon developers for this kind of changes, Addon developers should be here to be aware of this things and provide their opinion in the same way different people did at that time :slight_smile:

2 Likes

I don’t disagree with this fundamentally. I might rephrase “dragging their heels” to “being conservative”. I do think the tradeoff on bug fixes for some and breaking c-python extensions for add ons is the fundamental issue here.

If Blender wants to be the industry standard (as I want it to be), it has to adapt a bit to the industry, not the other way around IMO. Things like moving a python no ones else is on yet do erode the standing a bit. If Blender developers feel that tradeoff is worth it so be it.

3 Likes

:+1: ok, just saying, the industry doesn’t care that much about how blender (or Max or Maya etc) feels, but blender should be way more interested on the pulse of the industry.

my thoughts exactly, very well put

using python 2.7 for 12 years is pretty conservative. entire DCCs have peaked and died in that timespan, it’s not unreasonable to expect studios to construct their pipelines in a way that facilitates progress as an entire industry rather than relying on a pipeline that has almost certainly had a decent amount of cruft bolted on over the past decade.