Node panels: Enable new node group interfaces #1

Closed
Lukas Tönne wants to merge 14 commits from node-panels-final into node-panels-rna

When changing the target branch, be careful to rebase the branch in your fork to match. See documentation.
Owner

Part 3/3 of #109135, #110272

Switch to new node group interfaces and deprecate old DNA and API.
This completes support for panels in node drawing and in node group
interface declarations in particular.

The new node group interface DNA and RNA code has been added in parts
1 and 2 (#110885, #110952) but has not be enabled yet. This commit
completes the integration by

  • enabling the new RNA API
  • using the new API in UI
  • read/write new interfaces from blend files
  • add versioning for backward compatibility
  • add forward-compatible writing code to reconstruct old interfaces

All places accessing node group interface declarations should now be
using the new API. A runtime cache has been added that allows simple
linear access to socket inputs and outputs even when a panel hierarchy
is used.

Old DNA has been deprecated and should only be accessed for versioning
(inputs/outputs renamed to inputs_legacy/outputs_legacy to catch
errors). Versioning code ensures both backward and forward
compatibility of existing files.

The API for old interfaces is removed. The new API is very similar but
is defined on the ntree.interface instead of the ntree directly.
Breaking change notifications and detailed instructions for migrating
will be added.

A python test has been added for the node group API functions. This
includes new functionality such as creating panels and moving items
between different levels.

⚠️ This PR is against the node-panels-rna branch, which would be
merged to main by #110952. The PR must be rebased on main after that.

Part 3/3 of #109135, #110272 Switch to new node group interfaces and deprecate old DNA and API. This completes support for panels in node drawing and in node group interface declarations in particular. The new node group interface DNA and RNA code has been added in parts 1 and 2 (#110885, #110952) but has not be enabled yet. This commit completes the integration by * enabling the new RNA API * using the new API in UI * read/write new interfaces from blend files * add versioning for backward compatibility * add forward-compatible writing code to reconstruct old interfaces All places accessing node group interface declarations should now be using the new API. A runtime cache has been added that allows simple linear access to socket inputs and outputs even when a panel hierarchy is used. Old DNA has been deprecated and should only be accessed for versioning (inputs/outputs renamed to inputs_legacy/outputs_legacy to catch errors). Versioning code ensures both backward and forward compatibility of existing files. The API for old interfaces is removed. The new API is very similar but is defined on the `ntree.interface` instead of the `ntree` directly. Breaking change notifications and detailed instructions for migrating will be added. A python test has been added for the node group API functions. This includes new functionality such as creating panels and moving items between different levels. ⚠️ This PR is against the [node-panels-rna](https://projects.blender.org/LukasTonne/blender/src/branch/node-panels-rna) branch, which would be merged to main by #110952. The PR must be rebased on main after that.
Lukas Tönne changed title from Part 3/3 of #109135, #110272 to Node panels: Enable new node group interfaces 2023-08-17 11:56:58 +02:00
Lukas Tönne force-pushed node-panels-final from 8a8c02a383 to 22e8f72bb2 2023-08-21 11:02:59 +02:00 Compare
Lukas Tönne force-pushed node-panels-final from 33c34b8425 to 7e682246c5 2023-08-21 13:03:54 +02:00 Compare
Lukas Tönne closed this pull request 2023-08-21 15:40:29 +02:00
Lukas Tönne reopened this pull request 2023-08-21 15:54:12 +02:00
Lukas Tönne changed title from Node panels: Enable new node group interfaces to Node panels: Enable new node group interfaces 2023-08-21 15:54:44 +02:00
Lukas Tönne force-pushed node-panels-final from f9e9e1d3f0 to a837b068eb 2023-08-21 15:57:29 +02:00 Compare
Lukas Tönne changed title from Node panels: Enable new node group interfaces to Node panels: Enable new node group interfaces 2023-08-21 15:57:52 +02:00
Lukas Tönne closed this pull request 2023-08-21 16:00:47 +02:00

Pull request closed

Sign in to join this conversation.
No reviewers
No Label
No Milestone
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: LukasTonne/blender#1
No description provided.