As MCprep is an extremely complex addon, debugging using traditional means in Blender is incredibly difficult. Some of the bugs in #601 were extremely deep level bugs that were incredibly difficult to debug normally. Each time we wanted to check a different variable, we had to modify print statements and rebuild the code, which is slow when a bug involves assets.
In an ideal world, Blender would come with a Python debugger that would allow us to analyze multiple things at once, and would allow the use of breakpoints. With the addition of Blender Extensions however, it might be possible to allow the creation of a debug build that uses https://github.com/microsoft/debugpy, and allow us to attach to it from an editor that supports it (VScode natively, Neovim with https://github.com/HiPhish/debugpy.nvim, etc). Then we could add a debug-build action that includes these wheels into the MCprep build, and otherwise excludes them at runtime. This would allow for much more advanced debugging in MCprep.
Some requirements:
Any version of Blender with Python 3.8+ (as of writing); Blender 4.2 should be fine with this requirement
The ability to build MCprep as an extension; this is possible right now in BpyBuild, so long as we include a blender_manifest.toml file in the MCprep_addon directory (though manifest verification has not yet been merged in BpyBuild)
The reason the ability to use MCprep as an extension is important is because Blender now natively supports using third-party packages in extensions by bundling wheels into the extension.
As MCprep is an extremely complex addon, debugging using traditional means in Blender is incredibly difficult. Some of the bugs in #601 were extremely deep level bugs that were incredibly difficult to debug normally. Each time we wanted to check a different variable, we had to modify print statements and rebuild the code, which is slow when a bug involves assets.
In an ideal world, Blender would come with a Python debugger that would allow us to analyze multiple things at once, and would allow the use of breakpoints. With the addition of Blender Extensions however, it might be possible to allow the creation of a debug build that uses https://github.com/microsoft/debugpy, and allow us to attach to it from an editor that supports it (VScode natively, Neovim with https://github.com/HiPhish/debugpy.nvim, etc). Then we could add a
debug-build
action that includes these wheels into the MCprep build, and otherwise excludes them at runtime. This would allow for much more advanced debugging in MCprep.Some requirements:
blender_manifest.toml
file in theMCprep_addon
directory (though manifest verification has not yet been merged in BpyBuild)