2024-09-27 Core Module Roadmap Meeting

The goal of the meeting was to define the up-coming main tasks or projects for the Core module.

This roadmap will also be presented in the first Core Module Meeting this week on Thursday 03 October at 10AM CEST.

Present:

  • Fiona Cohen
  • Dalai Felinto
  • Bastien Montagne
  • Sergey Sharybin

The topics were split in three main categories:

  • Technical/low-level improvements.
  • 5.0 compatibility breakages.
  • More user-facing high-level projects.

Maintenance & Technical Debt

General target of this section is to improve quality, reliability and maintainability of existing Blender code and features. Ideally it should also make adding new features simpler and safer.

Automated Testing

Add more periodic builds & tests to the buildbot. The main goal is to detect early issues that can easily skip through our unittests.

  • Add code-coverage reports.
  • Run unittests on debug builds. Ran nightly, using debug-with-ASAN builds.
  • Add ‘smoke tests’ (opening a collection of complex production files from the past 2 or 3 years). Ran weekly probably, e.g. on the weekends, using release-with-assert builds.

Depends on other devops/IT tasks and priorities, Bastien and Jacques will coordinate with the devops team.

RNA Path Project

Moving PointerRNA to non-trivial C++ data has proven complex, in particular because of its links with python integration code. Current code is “95%” there, but unclear how hard it will be to tackle the last percents.

Related design tasks:

Bastien will focus on finishing this in the coming weeks.

Finish “C++ GuardedAlloc” Sanitizing

Lots of work done there already, but we still have some half-baked features left over, the need to be either finished, or fully removed. See also the WIP design task.

Bastien will coordinate, and find another dev to help with the cleanups.

Other Topics

There are a lot of small or not-so-small designs/todos in the Core workboard. Some things that would be ‘good to have soon’, but there is likely no time in the coming months to work on them.

5.0 Breaking Changes

The up-coming Blender 5.0 release next year is the opportunity to introduce forward-compatibility breaking changes. Since Blender 4.5 is expected to be able to open 5.x blendfiles, it means that designs and targets should be discussed and agreed on in the next few months, and implementation should happen in the first half of 2025.

An overview of ideas can be found in tasks listed in the 5.0 milestone.

Bastien will coordinate this topic with the other modules as well.

Blendfile

  • Support shared data accross IDs.
  • Improve binary stability of blendfiles across saving when no actual data is changed.
  • Removal of Big-Endian support.

See also the dedicated task. Note that not all ideas listed here would necessarily imply compatibility breakage.

IDProperties

Separate storage of IDproperties defined by users as ‘custom data’, from the ones used by runtime RNA as storage backend (e.g. all data defined by extensions).

(New) Projects

Ideas and designs to either add new features or improve existing ones, mainly in data management areas.

Linking & Import

  • Improvements to linking from blendfiles (e.g. not systematically loading all data).
  • Embedded Linked Data (hybrid between normal linking, and appending).
  • Importing from other formats (the Collection Import idea).
  • The USD instancing project.

See also this WIP ideas/designs.

Most of the actively developped topics listed above are worked on by the Pipeline, Assets & I/O module. But there is still a lot of design work needed, and care must be taken that the current work fits well within the broader picture.

Bastien will coordinate design work together with the USD dev team.

Overrides

Focus will be put first on improvements to the existing Library Overrides:

  • Investigate possibilities to improve reliability and resilience of liboverride, and/or define more clearly its known limitations and requirements in the context of a complex production pipeline.
  • Add some missing liboverride features, like proper support for materials (although override of materials would not be useful currently, being able to override materials assignement would be).

Further projects could get some more design work, if time allows:

Variants

High-level design still has many interesting technical topics to be investigated.

The Core module will be involved in the technical design discussions.

Partial Update of Blendfiles

The target of this work is to remove the current distinction between Asset and non-Asset blendfiles, which was introduced to allow the ‘brush asset’ project to edit and save brushes. This would be a use-case for the “second stage” of the Refactor of Partial Write and Beyond design.

This is likely a big projects on its own, and does not seem to have the highest priority currently.

14 Likes