[WIP] Safelist, "offline manifest" #44
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
WIP Implementation of "safelists" and "offline manifests"
Background
Skein works by exporting a type registry from Bevy and reading it to generate interfaces in Blender.
TODO
Safelists
#39
Safelists allow users to restrict the components that are exported. For example, if you were working with a group of artists and wanted them to have specific access to all the components in a hypothetical
for_blender_usagecrate and nothing else, a safelist would allow you to do that. This allows more sophisticated users the ability to offer a specific blender API by selecting crates and specific components.We're choosing to do this on the rust side of things so that the produced offline manifests and such are comparatively smaller than they otherwise would be and have a better time being checked in to source control.
offline manifests
#40
Skein currently makes use of registry type exports, Default and user-provides presets, and this set of data could grow in the future. Some users want to be able to write a file out at startup with all of the configured information, so that that files can be used as the source of truth instead of requiring a BRP fetch from Blender. This also supports multi-blend-file usecase a bit better as a blend file can try to read a file in when opened, leading to only need to export from Bevy once.
This PR introduces the new
SkeinManifesttype which defines the versioning information and data that python will read in.A new
write_manifest_and_exitfeature will write out a manifest file when enabled. This is also configurable in the Skein plugin options. So you can: