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.
- RNA API: Support Proper Deprecation Process.
- ID Management: Sanitize and clarify ID tags and ID creation/copy tags (was already part of last âtechnical debtâ mini-project schedule).
- BKE: Refactor handling of packed files to use IDTypeInfo.
- Refactor Delete Hierarchy Outliner code
- WIP: Improve Copy/Paste (although this one is arguably more of an âother modulesâ topic ultimately).
- Handling âUnused IDsâ on Save & Fake User:
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:
- Cherry-picking (pre-requisite for e.g. usable liboverride of node trees, including shader nodes).
- Dynamic overrides.
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.