Current state of development

Hi,

I’m a C++ developer in the VFX space and was looking to scratch some itches in Natron. I pulled the code and started looking to build it in my development environment (Linux, Python 3.8, Qt 5.15, PySide2) and noticed a few parts that look to be in a WIP kinda state.
I can see some attempts at Python3 compatibility, but I don’t know if those code paths have ever been exercised as they don’t currently compile (missing semicolons, use of removed Python2 functions, etc).
I’m a little more comfortable in a CMake build system, so I had a quick stab at writing modern CMake wrappers for the library and also noticed that the Shiboken bindings aren’t compatible with PySide2, so before I go much further porting and updating things I wanted to see if there was an overall plan for the codebase or if I was treading on any toes.

Thanks

6 Likes

We only support Qt4 and Python2+PySide1. There are third-party experimental patches for Qt 5.12+ and “Qt for Python” (aka PySide2) support, but they where done against the (unmaintained) master branch and has not been backported to the RB-2.X branch(es), don’t know when that will happen (I guess I’m the one that has to do it), there are more important things to do (from my POV).

Which branch constitutes the focus for development then? I saw that RB-2.3 is currently the “default” branch, but master seemed more likely to be the focus as it was 2730 commits ahead.

Is there a plan for when Natron will jump to Python3, Pyside2, and Qt5? At the moment I’ve tried to keep things building under both paths, but PySide2 will definitely shake things up as the shiboken xml format needs significant changes (or a parallel file).

I’m happy to plug away at those changes if there is a chance they would be merged upstream, but it would definitely be easier if there was already a decision to abandon the Python2/Pyside1 code in the master branch.

RB-2.3 is our release branch, all focus is on that. Features/changes too big for a patch release should happen in RB-2.4.

Master was/is a WIP branch that was abandoned a long time ago, it’s unfinished and buggy.

If you where to do any changes I would fork RB-2.3.

See https://github.com/yomgui1/Natron/commit/67bfaa449e96ae8708a5cd8265f01731fb876323

We should support both PySide 1+2 if possible.

So, Qt5.12+ support is something I would like to add on top of my todo list this summer (usually the best time for me to work on Natron).

If possible I would like to coordinate with others, that way we don’t have a lot of wasted efforts.

If you (@Shootfast) has done (or planning to do) anything please let me know in this thread or on GitHib (I’m also @rodlie on GitHub), else I will probably start backporting the work done by @yomgui when my vacation starts (not sure when, probably the end of June).

3 Likes

@rodlie I am also planning on helping out with porting the work of @yomgui, though hopefully I’ll start making better PRs than that first one.

@Shootfast I am working on the Qt5 port as well. I’ve made a shared repo for me and rodlie (forked from Natron) at https://github.com/Songtech-0912/Natron, and I’ll be happy to invite you there are well to work on the port, if you’re ok with that.