User:Sybren/Code Quality Day ideas

= Code Quality Day ideas =

Ideas

 * Finish work on the `modernize-loop-convert` Clang-Tidy rule
 * Continue https://developer.blender.org/T74506
 * Move auto-keying code into a separate C file, such that the related code sits together instead of strewn across multiple C files. Or at least document what can be found where.
 * Split `ed_screen_context` into separate functions, or at least refactor to use early returns.
 * Move keyframe-insertion code from `editors` to `blenkernel`.
 * Split `splineik_evaluate_bone` into separate functions.
 * Rename `BKE_scene_get_depsgraph` to `BKE_scene_get_viewport_depsgraph`
 * Deprecate `SELECT` and remove `#define SELECT 1` from various places in the code.
 * Split up `pyrna_py_to_prop`

After the new Alembic exporter has been merged into master

 * USD/Alembic: replace `HierarchyContext &` with `HierarchyContext *`.

Done

 * Properly describe action baking in the manual.
 * `ANIM_apply_keyingset` has a `short success` variable (which is strange to begin with, as `success` is usually a boolean and not a quantity). The value returned by `return success;` is then later also compared to constants with values `-1` and `-2`. To summarize: `bool`, `short`, and `enum` are all combined into one variable. Found this while investigating T73773.
 * Document `bpy.msgbus`:
 * the new docs,
 * original patch D2917,
 * example from Ideasman, and
 * Stack Exchange question on the topic.
 * USD/Alembic: refactor code to replace `std` containers with `BLI` ones: not worth the effort as the Alembic library needs `std::vector` and `blender::Map` has slightly different memory management than its `std` counterpart, causing other issues with the Alembic library.