User:Severin/Reports/2022

= Weekly Reports: 2022 =

December 5 - December 11

 * Continued work on the "All" asset library, needed for the brush asset project:
 * Make catalogs from "All" library read-only.
 * Various cleanups and polishing.
 * Uploaded a draft patch for "All" asset library.
 * Wrote blog post about the technical documentation day. To be published still (awaiting some review).
 * First prototype for the Asset Shelf. Already quite useful to find pain points and evaluate the design.

Next Week

 * Brush assets
 * More research on technical documentation practices.
 * UI module day

November 21 - November 27

 * Technical documentation:
 * There was a spontaneous discussion about technical documentation. Wrote meeting notes and mailed bf-committerrs.
 * Read up a bit on how other organizations improved they technical documentation culture drastically. Talked to some other devs about it, will probably write up a little summary at some point.
 * Technical documentation day on Friday!
 * New branch for the "All" asset library needed for brush assets.

Created patches:
 * Path utils: Better comment and test weak trailing slash semantics.
 * Fix Open File/Location Externally relying on bad path semantics.

Master/release branch Commits:
 * Asset Browser: Avoid non-existent directory prints
 * Cleanup: Correct semantics for .blend listing in file/asset browser
 * UI: Don't render missing linked material previews, avoids UI freezing
 * Asset Browser: Allow changing active catalog from Python
 * Fix use-after-free of asset catalog data in node add menu

Review:
 * Accepted: Cleanup: Simplify removing asset code.
 * Accepted: Fix T102322: Crash on exiting VR session when using DirectX backend

Next Week

 * Brush assets
 * More research on technical documentation practices.
 * UI module day

November 14 - November 20

 * Wrote blog post draft on the asset system.
 * UI: Don't render missing linked eevee material previews, avoid freeze.

Master Commits:
 * Asset system: New asset system code module (with files from BKE)
 * Fix T102482: Crash loading geometry nodes assets after file load
 * Assets: Avoid quadratic complexity when freeing asset libraries
 * Asset system: Remap local asset ID pointers as part of UI remapping
 * Assets: Refactor asset representation storage
 * Fix crash when loading different file with asset browser open
 * Asset system: Move catalog tree code to own files
 * Cleanup: Minor cleanups in asset system headers
 * Cleanup: Better follow class layout style guide in asset headers
 * Cleanup: Avoid unnecessary/annoying type alias in asset system
 * Cleanup: Missing trailing underscore in private asset system member vars
 * Fix MSVC warnings from recent asset system changes
 * Fix use-after-free of asset catalog data in node add menu

Next Week

 * Focus on brush assets.

November 7 - November 13
Some fixes for the release, some important architectural changes for the asset system, and brush assets.


 * Set up a Taiga project to organize the flow of work for the brush assets project: https://tree.taiga.io/project/julianeisel-blender-brush-assets
 * Further asset system work to introduce `AssetRepresentation` (master commit is below):
 * Refactor how asset representations are added to an asset library
 * Fix uninitialized variable use when dragging in assets
 * Cleanup: Remove unnecessary storage wrapper class
 * Free asset representations when no longer displayed
 * Store ID in asset representation directly
 * Do ID remapping for asset libraries
 * Added a good amount of technical documentation for the asset system Asset System (Back End)
 * Created patch: Move BKE asset code to new asset system module (own directory)

Master Commits:


 * Fix T102242: Underline shortcut keys not working/appearing in sub-menu
 * Fix T85870: ColorRamp Keyframes crash Blender
 * Fix T102242: Underline shortcut keys not working/appearing in sub-menu
 * Asset System: New core type to represent assets (`AssetRepresenation`)
 * Cleanup: Remove unused class variable, added in previous commit
 * Cleanup: Link to documentation page for asset representation type
 * Fix incorrect forward declarations, causing warnings on Windows
 * Fix failure in recently added asset library tests
 * Fix uninitialized variable use in asset metadata test

Next Week

 * Focus on brush assets.

October 31 - November 5
Slow & short (4 day) BConf hangover week :) Mostly focused on reviews and fixes for the release. Also committed own changes for the dynamic reloading support for menus, needed for node group assets (worked on by the geometry nodes team).


 * Asset system work (asset representations):
 * Use asset representation in file browser entries, not asset metadata

Commits:


 * Cleanup: Use bool for binary (true-ish/false-ish) return value
 * UI: Support refreshing menu popups
 * UI: Support C defined menu types to listen to notifiers
 * UI/Nodes: Update node add menu as assets get loaded
 * Fix use-after-free in asset library storage destruction
 * Fix arrow key menu navigation using wrong direction
 * Fix empty menu title in some menus (e.g. Text Editor context menu)

Created patches:
 * Asset Browser: Allow changing active catalog from Python.

Review:
 * Accepted: UI: Sort items in Weight Locks menu
 * Accepted: Fix File Browser Move Bookmark malfunction if no item is selected
 * Accepted: Fix T102225: Crash opening menus
 * Requested changes to: GPencil: Asset Manager support (LITE)
 * Accepted: Nodes: Add node group assets in add menu

Next Week

 * Brush assets project
 * Asset system work - do larger architectural changes now, before branch off too much for brush assets.

October 24 - October 30
Blender Conference week!


 * Small UI workshop in the headquarters. We should share a short write-up soon.
 * Own presentation: A bird’s-eye view on the asset browser system (https://youtu.be/Ix6cezT3Cr0)
 * Got to talk to a number of people using asset functionality for personal or professional/studio use. This gave me valuable insights into how people are using things, and which problems they face. Was able to help them with some easy solutions/workarounds too. We need to keep this feedback coming, so I invited them to stay in touch with me.
 * Too many presentations, meetings and nice chats to list here. Had some exciting, productive and fun days (and exhausting) :)

Review:
 * Requested changes to: GPencil: Asset Manager support (LITE)
 * Accepted: Fix T101946: Outliner data-block counter treats bones as collection

Next Week

 * Continue work on Blender Project blogpost.
 * A bunch of small things I found out about during the conference.

October 17 - October 23

 * Further work on Blender Projects:
 * Wrote first draft for a blog post.
 * Uploaded patch: D16288: Basic Blender Project Support (experimental feature)
 * Update to path changes in master
 * Refactor BKE project interface & implementation
 * Cleanup: Remove unused headers
 * Add comment on asset library definition
 * Fix error when changing asset library name or path
 * Confirmation prompt for closing file with unsaved project settings
 * Use operator poll instead of cancelling; Minor cleanup
 * Hide UI behind experimental option
 * Fix incorrect operator name in UI script
 * Guest-hosted the Pipeline, Assets & IO module meeting and wrote the notes.
 * Fixed issue reported by the studio when using the File Browser thumbnail display mode in production files (see commit below).
 * Created prototype fix for non-responding UI when opening shader selector menu with linked Eevee materials because of shader compilation. Needs more work but didn't have the time to finish it. Also reported by the studio.

Review:
 * Requested changes to: Nodes: Add node group assets in add menu
 * Accepted: UI: Icon number indicator for data-blocks

Master Commits
 * File Browser: Fix slowdown with non-existing ID previews in big files
 * GPU: Avoid undocumented/fragile dependency on shader enumerator order

Next Week

 * Finish Blender conference talk.
 * UI workshop.
 * Blender Conference!

October 3 - October 9

 * https://wiki.blender.org/wiki/Source/Blender_Projects

September 26 - October 2

 * Worked on my Blender conference presentation on the asset browser system.
 * Not planned, but we ended up looking into basic Blender project support, and I started initial coding for it:
 * Add create, dummy load function and tests for project settings directory
 * Test project paths with unicode characters & trailing slashes
 * Handle and test both Unix and Windows style slashes
 * Support active project, set when loading or writing a file (+ tests)
 * Add test files for Blender Projects tests
 * Fix typo in Blender project readme file
 * Fix project not updated correctly on file save and write
 * Show hint in window title when editing file inside project
 * Add "New Project" operator to select a directory to use as project root
 * Initial support for reading project name from settings.json
 * Add .blender_project/settings.json file for Blender project testing
 * Friday was spent mostly moving around things in the office.

Next Week

 * Further work on Blender projects.
 * Brush assets.

September 19 - September 25

 * Continued work on the asset system:
 * Committed some WIP code to a branch: Initial `AssetRepresentation` type, storage & construction
 * Further uncommitted developments on that.
 * Improved technical documentation
 * Further discussions about the brush assets design.
 * Visited the ReConnect conference in Utrecht Thursday & Friday.

Commits:
 * DNA: Remove unnecessary studio light & light probe struct paddings
 * Refactor: Move file browser filelist.c to C++
 * Cleanup: Move file browser history handing to own file
 * Fix compile error on (designated initializers in C++)

Review:
 * Accepted: Fix T101201: Missing filter from outliner header
 * Accepted: File Browser: Manual auto-increase name support for output filepaths
 * Accepted: Nodes: Add node group assets to search menus

Next Week

 * Focus on brush assets related topics.

September 12 - September 18

 * Brush assets design meetings. A fair amount of time was spent on developing user story maps.
 * Discussion in Support RNA properties initializing operator properties

Created patches:
 * Outliner: New context menu building design (MVP)

Created tasks:
 * Assets: Option to treat library as either personal or project asset library.
 * Outliner: New context menu building design.

Review:
 * Accepted: Fix T100959: Memory leak when moving node with Alt
 * Accepted: WM: Support opening backup .blend files via drag-drop
 * Requested changes to: Nodes: Add node group assets to search menus

Next Week

 * General asset system developments
 * More brush asset discussions.
 * ReConnect conference Thursday & Friday.

September 5 - September 11
Further work on the brush assets project plus Outliner & library overrides.


 * Brush assets project:
 * Further design discussions.
 * Set up a testing project on Taiga (lean/agile development platform): https://tree.taiga.io/project/julianeisel-blender-brush-assets-demo
 * Wrote a proposal on how we could organize a Kanban board for the project: https://tree.taiga.io/project/julianeisel-blender-brush-assets-demo/wiki/home
 * Pipeline, assets & IO meeting where we discussed OpenAssetIO topics and asset traits (also helped with meeting notes).
 * Outliner work for library overrides (see commits below):
 * Rework filtering UI for library overrides view modes.
 * Cleanup context menus to only show operations that apply to the selected elements.
 * Pushed some earlier Outliner experiments to temporary branch:
 * Outliner: Initial (half working) port to new element storage

Created patches:
 * Outliner: New context menu building design (MVP).

Master Commits:
 * Console: Support page up/down and home keys for scrolling
 * Outliner: Hide search button for library overrides hierarchies view
 * Outliner: Hide search options for library overrides hierarchies view
 * Outliner: Hide ID type filter for library overrides
 * Cleanup: Simplify outliner context menu building queries
 * Outliner: Hide "data operations" context menu entries unless supported
 * Cleanup: Remove unused variable in RNA path function
 * Outliner: Don't show asset context menu when no IDs are selected
 * Outliner: Hide library overrdies context menu when no IDs are selected

Review:
 * Accepted: Fix T100887: Some C++ importers/exporters (e.g. OBJ) reset file dialog Sort By mode
 * Accepted: Fix unreported: Missed return in ASSET_OT_bundle_install item enumerator

Next Week

 * Brush assets project preparation (design work, defining project scope, etc).
 * UI module backlog sprints.

August 22 - August 28
Mostly holidays.


 * Joined the Sculpt, Paint & Texture module meeting to discuss brush asset management.
 * Joined the Pipeline, Assets & I/O module meeting, to discuss asset system and general I/O topics.
 * Did some experimental Outliner code refactors on my own time, mostly uncommitted so far.

Review:
 * Accepted: Fix T99493: better syncing between Node Editor and Image Editor

Master Commits:
 * Cleanup: Move outliner types to namespace, avoid C-style type definition

Next Week

 * Further meetings on brush asset management.
 * Remaining library overrides tasks.
 * UI module work.

August 15 - August 21
Plenty of catching up and following up after Siggraph. Besides that, a bunch of Outliner work (general improvements + improvements for library overrides).


 * Meeting write-up: 2022-08-09 OpenAssetIO Meeting @ Siggraph
 * Besides committed Outliner changes listed below, worked on further experiments to improve Outliner performance with complex trees, both need more testing/feedback:
 * Store unused tree-store elements in separate container, avoiding unused elements lookups.
 * Use mempool for allocating tree elements. Gave a bit of speedup, but wouldn't be compatible with future plans to refactor tree element code.

Master Commits:
 * Cleanup: Remove unused Outliner search element storage
 * Outliner: Avoid unnecessary Outliner storage copy
 * Cleanup: Improvements to Outliner tree writing code, add assert
 * Outliner: Compile outliner tree-hashing files in C++
 * Cleanup: General style improvements for Outliner tree hashing code
 * Outliner: Use C++ container for tree hash element storage
 * Outliner: Add commented out benchmarking calls for tree rebuilding
 * Outliner: Refactor outliner tree-hash interfaces with C++
 * Cleanup: Remove unused outliner function
 * Outliner: (Refactor) Use C++ map instead of GHash
 * Outliner: Refactor how lazy-building of children is done
 * Outliner: Workaround for big performance issue in Library Overrides mode

Review:
 * Accepted: BLF: Gamma Correction

Next Week

 * Holidays
 * More library overrides work, should be the final stretch of the project now.

August 8 - August 14
Siggraph!
 * Met many people, had interesting conversations, just a lot of networking and getting insights.
 * Meeting on OpenAssetIO. Meeting notes are being reviewed and will be shared soon.

August 1 - August 7
TODO


 * Left for Siggraph on Friday.

July 25 - July 31
TODO

July 18 - July 24
TODO


 * Document recently added cache directory
 * Update information on asset library indexing

July 18 - 24

 * UI patch review session
 * Meeting on integrating asset browsing functionality to any editor.
 * Created task: Rewrite File Browser UI to use views.
 * Proof of Concept: File Browser thumbnail mode using grid view
 * (Not yet committed) Patch to group properties by structs in the Properties mode of the Library Overrides display mode. Quite tricky to get to work right.
 * Helped in the interviewing process of a job applicant.

Commits
 * UI: Add `AbstractViewItem` base class
 * UI: Port view item features to base class, merge view item button types
 * Cleanup: Apply clang-format
 * UI Code Quality: Move view related files to own folder
 * Cleanup: Improve API and documentation of interface_view.cc
 * UI Code Quality: Move eyedropper files to own folder
 * Fix T99847: Dragging image from Image Editor to Node Editor broken
 * Fix missing registration of grid view items in the view
 * UI: Remove redundant view reference in view items

Review:
 * Accepted: LibOverride: support 'make override' for all selected items.

Next Week

 * UI patch review session
 * Kick-off some library overrides sprint.

July 11 - July 17

 * Updated the technical docs for UI views.
 * Work to set up Penpot as a core platform for UI design:
 * Set up UI kit library, Wireframe UI kit library and logo library.
 * Added the Blender icons to the UI kit, and did some initial edits to start porting them to reusable library assets.
 * Reached out to the Penpot development team to discuss some plans/features. Nice conversation :)
 * Updated: UI: Refactor path dropping so logic doesn't depend on icons
 * UI Patch Review Session:
 * Fix overly noisy surface deform warning message
 * Fix an increasing bottleneck when key press operator is too slow
 * Outliner: Double click on icon to select contents/hierachy
 * Compositor: Continously add/remove for cryptomatte.

Commits:
 * Cleanup: Remove unused operator name storage in UI lists
 * UI: Tweak layout of File Browser Preferences
 * Fix `on_drag_start` handler not getting ID when dragging from Outliner
 * Fix compiler error in debug builds after 1cf465bbc331
 * Manual:
 * Document recently added cache directory
 * Update information on asset library indexing

Review:
 * Accepted: Fix overly noisy surface deform warning message
 * Accepted: Fix an increasing bottleneck when key press operator is too slow

Next Week

 * Kick-off some library overrides sprint.
 * Meeting on integrating asset browsing functionality to any editor.
 * UI patch review session

July 4 - July 10

 * Created initial documentation page for unity builds.
 * Created initial asset system FAQ page, documenting how custom asset previews can be loaded from Python.

Commits
 * Cleanup: Correct UI view comments
 * Outliner, Library Overrides: List child objects under parents
 * Workspaces: Option to pin scene to a workspace
 * UI: Superimposed pin icon for workspace scene pinning in the scene switcher
 * Outliner, Library Overrides: List child objects under parents
 * Workspaces: Option to pin scene to a workspace
 * UI: Superimposed pin icon for workspace scene pinning in the scene switcher

Next Week

 * Further Library Overrides work
 * Update documentation for UI Views.
 * Hopefully some asset browser related stuff

June 27 - July 3

 * Feedback workshop in the Blender HQ.
 * Various discussions about the Library Overrides design.
 * Pipeline, Assets & IO meeting.
 * Updated and cleaned up the 3.3 User Interface release notes page.

Commits
 * Fix T93650: Asset drag into catalogs broken, Industry Compatible keymap
 * Cleanup: Use assert instead of early exit for asset dragging internals
 * File Browser UI: Use "Widget" font style instead of "Widget Label"
 * Cleanup: Remove redundant theme versioning code
 * Cleanup: Remove scene frame macros (`CFRA` et al.)
 * Fix pointer to pointer passed where single pointer is expected (VSE versioning)
 * Fix build error with Alembic after 65166e145b4d
 * UI: Add AbstractView base class for views, unify reconstruction in there
 * UI: Move rename buffer management to new view base class

Created patches:
 * Outliner, Library Overrides: List child objects under parents.
 * Fix paint cursors using wrong region after "Depends on Mouse" operator.

Created tasks:
 * Outliner: Double click on icon to select contents/hierachy.

Review:
 * Closed: Fix T98055: Library Filters do not work in Source Files

Next Week

 * Further Library Overrides work
 * Update documentation for UI Views.
 * Hopefully some asset browser related stuff

June 20 - June 26
Sick leave.

Next Week

 * Library Overrides design discussions & further development
 * Patch Review

June 13 - June 19
Mostly general maintenance (fixes, review, cleanups/refactors, docs). Committed a decent (and simple) performance improvement for the Outliner, especially for the Library Overrides display mode in production files, and merged the new grid view into master.

Friday I had a day off.

Documentation:
 * Created new documentation on operators: Operators

Commits (master and/or branches):
 * Cleanup: Move dragging code for buttons to own file
 * Outliner performance: Only expand sub-trees if needed
 * Fix T98715: Crash drag-dropping collection from outliner to ID property
 * Fix T98753: Outliner Unlink material in Blender File mode crashes
 * Outliner: Sanitize material unlinking callback, report errors
 * Fix T98875: Adding camera background image shows error
 * Fix T98909: Outliner - "Show Hierarchy" only shows one level
 * UI: Add initial "grid view"
 * Cleanup: Use const in File Browser filtering operator

Review:
 * Requested changes to: Compositor: Continously add/remove for cryptomatte.
 * Accepted: Add mask blending factor to mask editor
 * Accepted & committed: Add file browser operator to edit directory field
 * Accepted & committed: Resolve T92855: Don't show catalog path when dragging assets over root level catalogs

Next Week

 * Library Overrides design discussions & further development
 * Patch Review

June 6 - June 12
Holidays :)

May 30 - June 5
Master Commits
 * Fix T98461: Crash running screenshot from the command-line
 * Fix T95394: Crash when dragging from location of just cleared asset
 * Fix wrong asset dropped when dragging from loc. of just cleared asset
 * Fix "Open Clip" operator in Clip Editor broken
 * UI: Update rest of UI code for increased button flag bitfield

Created tasks:
 * UI Views: General ToDo's.
 * UI Code Quality: Move interface files to folders?.

Review:
 * Accepted: Fix T96984: Create new image.browse operator for uiTemplateImage layouts
 * Accepted: Fix T96157: Frame Node Labelsize changing depending on line-width setting

Next Week
Holidays :)

May 23 - May 29
Mostly focused on fixing issues and reviewing fixes for the release, also some related sanitizing and cleanups. Also reworked how element warnings are managed in the Outliner (needed for the library overrides project) and some general Outliner refactoring. National holiday on Thursday.

Commits
 * Cleanup: Early-exit in button handling code, minor cleanups
 * Fix T88570: Crash when saving after pressing ctrl+S twice.
 * Fix "Open Clip" operator in Clip Editor broken
 * Fix possible issues when mixing link & append for asset drag & drop
 * Asset Browser: Show "Current File" icon in sidebar source field
 * Fix possible issues when mixing link & append for asset drag & drop
 * Cleanup: Move new utilities for ID lookup operator properties
 * Fix further issues when mixing link & append for asset drag & drop
 * Fix buttons not being grayed out
 * Cleanup: Correct misleading comment in UI code
 * Fix possible lingering around of ID after asset dropping failed
 * Fix T95706: Material asset not applied if appended and then linked
 * Drag & drop: Invert priority of name and session UUID in ID lookups
 * Cleanup: Use new helpers for passing IDs from drag & drop to operators
 * Drag & drop: Use session UUID of IDs instead of name for dropping
 * Outliner: Refactor element warning and mode column querying
 * Outliner: Use general warning mechanics for library overrides
 * Outliner: Fix warning icon not bubbling up correctly to collapsed parent
 * Outliner: New C++ based functional tree iterators
 * Outliner: Make use of new C++ based functional iterators
 * Fix T97918: Crash when changing "Frame All" shortcut from context menu
 * Fix T97790: Crash in Outliner "Blender File" mode with old files
 * Cleanup: Use new macro for deprecated ID types

Review:
 * Accepted: Fix T83519: Line Gesture flip state not updating without a mouse move event
 * Requested changes to: Restrict temp/Maximized/Fullscreen window editing
 * Accepted: Fix T98293: Scene stats info not updated after new OBJ import
 * Requested changes to: Fix T96984: Create new image.browse operator for uiTemplateImage layouts
 * Accepted: Fix T97237: Disable add node group operator for custom node trees.

Next Week

 * More fixes in preparation for the 3.2 release.

I have a short holiday starting Friday, so I'm trying to get everything ready for the release from my side.

May 16 - May 22
4 days of sick leave. Continued refactoring button bit-flag usage to allow us to add further flags, which could prevent some blocking issues before the release.

Master Commits
 * Fix wrong data passed after recent changes in master
 * UI: Get rid of redundant UI_BUT_IMMEDIATE button flag
 * UI Code Quality: Resolve frankenstein bit-flag usage for widget drawing
 * Cleanup: Remove unused scrollbar drawing flag

Next Week
Fixes and reviews for the release.

May 9 - May 15
Mostly fixes and reviewing fixes for the release. We are running out of bits for button flags, which will become an issue sooner or later, and might even become a release blocker if we need to add a flag for an important fix (not too unlikely). So I spent some time on a solution to that, it was more difficult than thought initially.

Commits
 * Fix T97751: New OBJ IO - File Browser doesn't filter by .obj/.mtl
 * UI: Remove weird looking right aligned text in texture properties
 * UI: Increase bitfield size for button flags
 * Fix T88570: Crash when saving after pressing ctrl+S twice.
 * Fix "Open Clip" operator in Clip Editor broken
 * UI: Update rest of UI code for increased button flag bitfield
 * Cleanup (UI): Make space for more internal button flags
 * Revert commits to increase button flag bitfield size
 * Cleanup: Remove unused hotkey button definition function
 * Cleanup: Remove another unused hotkey button definition function
 * UI Code Quality: Use derived struct for hot-key buttons
 * Fix T97518: All buttons with eyedropper highlight if one is hovered
 * Fix crash when displaying some button tooltips
 * Fix possible null-pointer dererence for active button data

Created tasks:
 * HIG: (Sub-)Page Structure.
 * GPU Codegen crash when loading demo file.

Review:
 * Accepted: Fix T97386: Node socket labels swallow click/drag events
 * Accepted: Fix for crash opening the file selector multiple times
 * Accepted: Fix T96520 Node editor: Tweak fails with unselected nodes
 * Requested changes to: Fix T97386: Click Dragging on Socket Labels does not register

Next Week
Fixes and review for the release.

May 2 - May 8

 * Asset Browser meeting as part of the Pipeline, Assets & I/O meeting. Wrote relevant meeting notes.
 * UI meeting (no meeting notes yet)

Master Commits:
 * Add definition of "Blender Session" to the glossary
 * Fix T97751: New OBJ IO - File Browser doesn't filter by .obj/.mtl
 * UI: Remove weird looking right aligned text in texture properties
 * UI: Increase bitfield size for button flags

Created patches:
 * Fix T97518: All buttons with eyedropper highlight if one is hovered.
 * IO: Refactor passing of IO file extension filters to the File Browser.
 * Fix T97751: New OBJ IO - File Browser doesn't filter by .obj/.mtl.

Review:
 * Accepted: Outliner: add icons for nodegroups
 * Accepted: Fix T97575: Toggling fullscreen causes compositor recalc

Next Week

 * UI and Asset Browser bug classification and fixing (esp high priority ones).
 * UI and Asset Browser patch review
 * Finish/merge grouping of overridden properties.

April 25 - May 1
Beginning of the week was focused on getting remaining tasks done for the switch to bcon3. That is, some library overrides and some VSE stuff.


 * Further work on grouping overridden properties better for the library overrides Properties view mode (: Library Override - Outliner UI/UX).
 * Helped with some testing and design discussions on (VSE: Limit timeline view height).

Master Commits:
 * Cleanup: Use const for smoot scrolling function
 * Utils: Add macro for C++ default arguments in C headers
 * UI: Support setting context for buttons without layout
 * UI: Add callback for comparing button identity
 * Outliner: Add icon column to toggle if library overrides are editable
 * Cleanup: Make RNA function comment more readable
 * Assets: Note how object/geometry orientation affects automatic-previews

Review:
 * Accepted: XR: Add object extras, object types visibility session options
 * Accepted: VSE: Limit timeline view height
 * Accepted: Drag and Drop strip previews
 * Accepted: Fix: material link pref ignored by drop down material selector
 * Accepted: Filebrowser View pie

Next Week

 * Finish/merge grouping of overridden properties.
 * Asset Browser meeting (as part of the Pipeline, Assets & IO meeting)
 * UI meeting

April 18 - April 24
Time off.

April 4 - April 10
Worked 4 days only again.


 * Update in the manual:
 * Update Library Overrides display mode in Outliner
 * Created a task:
 * Support Dragging Assets Into the Outliner.
 * Worked on collection asset drag & drop support with bounding box snapping again, it's a bit tricky.
 * Investigated possibilities for batch loading previews from .blend files into the OS cache. Currently a lot of unnecessary work happens there when loading big libraries.
 * Opened thread for collection asset feedback

Master Commits:
 * Fix collection assets hidden in old files with asset browser open
 * Fix F-Curve visibility toggle disabled for library overridden rig

Review:
 * Accepted: UI: move "use_select_nearest_on_first_click" into it's own panel
 * Accepted: VSE: Add channel headers

Next Week
Short week with only 2-3 workdays for me.


 * Work on collection asset placement
 * Improvements to the new library overrides UI

March 28 - April 3

 * Worked on collection assets, they are enabled by default now.
 * Continued work on the library overrides views for the Outliner, most work is merged into master now. The entire first pass of important features is done, now focus goes more towards refining and adding smaller features.
 * Use non-recursive ID loop & fix issues adding same ID multiple times
 * Small cleanups and fixes
 * Updated mockups and the description of : Library Override - Outliner UI/UX
 * Various meetings on application templates

Master Commits
 * Outliner: Don't show indirectly linked Library Overrides properties
 * Icons: Programmatically create indirect library icon, remove from SVG
 * Fix T96844: Crash when switching workspaces and outliner modes
 * Assets: Support automatic collection previews
 * Use non-recursive ID loop & fix issues adding same ID multiple times
 * Outliner: New "Hierarchies" view mode for Library Overrides
 * Assets: Instancing operator option for collection asset dropping
 * Assets: Enable collection assets (no longer experimental)
 * Fix compiler error when building without USD and alembic

Created tasks:
 * Collection Assets: To Instance or Not to Instance.

Review:
 * Requested changes to: VSE: Add channel headers

Next Week
Only about 4 days of work again.


 * Work on collection asset placement
 * Improvements to the new library overrides UI

March 21 - March 27

 * Library Overrides Branches:
 * Outliner: Initial Hierarchy view mode for Library Overrides
 * Mostly finished implementation of the hierarchy view
 * Correct logic to avoid IDs recursing into themselves
 * Fix "Current File" being highlighted together with first ID base element


 * Asset Browser split & grid-view branch:
 * Adopt to RNA prototypes changes in master (fix compile error)
 * Cleanup: Use new license header convention

Master Commits:
 * Tiny visual fixes/tweaks for new library override buttons in Outliner
 * Fix T96705: Crash when pressing F3 outside a Blender window if Developer extras
 * Outliner: Don't display library overrides from linked files
 * Outliner: Remove list of library overrides from general display modes
 * Outliner: Don't draw library overrides indicator for override buttons
 * [Blender Manual] Update Outliner docs to changes in Library Overrides mode
 * Outliner: Don't show empty base elements in the library overrides mode
 * [Blender Manual] Assets: Explain the asset catalogs backup file
 * Fix Outliner highlighting multiple base elements in different libraries

Created patches:
 * Assets: Support automatic collection previews.
 * Outliner: Initial Hierarchy view mode for Library Overrides.
 * Outliner: Don't draw library overrides indicator for library override buttons.
 * Outliner: Remove list of library overrides from general display modes.
 * Outliner: Don't display library overrides from linked files.

Review:
 * Accepted: Fix T95678: Thumbnails are not working with big / large Objects

Next Week

 * More Library Overrides UI work
 * More collection assets work
 * Application templates workshop

March 14 - March 20
Got sick this week, so I had to take some sick days.


 * Filled out 2021 WBSO sheets (government subsidy)

Master Commits
 * RNA: Generate property declerations header, solving msg-bus C++ incompatibility
 * Auto-generate RNA-structs declarations in `RNA_prototypes.h`
 * Cleanup: Remove confusing double negation in RNA helper function
 * Outliner: Display buttons to edit library override properties
 * Fix keying-set selector broken

Created patches:
 * UI: Never reuse operator properties for drag & drop.

Review:
 * Accepted: BLI: Move CPPType to blenlib.
 * Accepted: Cleanup: Deprecated field access in outliner_duplicate
 * Accepted: Cleanup: remove redundant 'extern StructRNA' declarations
 * Initial design feedback: XR: Motion Capture
 * Initial design feedback: XR: Add object extras, object types visibility session options
 * Initial design feedback: XR: Customizable Actions

Next Week

 * Further work on library overrides usability.
 * Meeting in the studio on asset collections.

March 7 - March 13
Again, 4 days of work only.


 * Further work on the library override Outliner UI:
 * Add toggle for Library Overrides view mode
 * Got an initial version of the Hierarchy view mode to work (to be committed)
 * Got a working version of the tree "merging" to work, where multiple override paths including expanded RNA collection lists (modifiers, constraints, etc) are merged into a single hierarchy. (To be committed)
 * Chaired meeting in the Studio on developer role descriptions.
 * Some review work for release blockers and to catch up with the backlog generally.

Master commits
 * Cleanup: Deduplicate Outliner item culling logic
 * Outliner: Correct check for element culling
 * Outliner: Ensure compiler error when passing wrong tree-element to macro

Review:
 * Accepted: VSE: Use edge panning
 * Requested changes to: VSE: Add channel headers
 * Accepted: Fix T94692: Show Cached OneDrive Thumbnails
 * Accepted: Event System: drag events no longer default to the drag start location
 * Accepted: Fix T95256: Crash when creating off-screen pose asset
 * Accepted: Fix T95531: Draw y axis values in Driver Editor
 * Accepted: Fix T95591: Crash on drawing with measure tool with tweak fallback tool

February 28 - March 6
Again, 4 days of work only.


 * Further work on the library overrides Outliner UI:
 * Display modifiers and other collections with overrides in the tree
 * Fix glitchy highlighting of tree elements
 * (Unfinished) work to display all modifiers, constraints, etc if there is an override on them (e.g. a modifier was added).
 * Got asked by the studio to work on making dragging of files in the file browser thumbnail mode use the full preview tile size, so users don't have to carefully click on the thumbnail itself anymore. Patches and commits listed in the following.

Master Commits
 * WM: Allow drop-box polls to use context from UI
 * Cleanup: Remove duplicated comment
 * Cleanup: Use rectangle for file browser tile drawing
 * Fix T96140: Crash on color button drag & drop
 * Outliner: Display respective data-block icon in library overrides mode
 * Cleanup: Remove redundant drag image size parameters
 * File Browser UI: Allow dragging anywhere in a file preview tile to drag

Review:
 * Accepted: UI: Drag & Drop to Properties Materials Panel
 * Accepted & committed: Enabled the outliner to use the correct icon for each curve subtype.
 * Accepted: BLI: Add scoped-defer utility to add RAII-like behavior to C types.
 * Abandoned: Asset System: Allow disabling asset libraries

Created tasks:
 * Remove redundant linked & library override icons.

Created patches:
 * File Browser UI: Allow dragging anywhere in a file preview tile to drag.
 * Outliner: Display respective data-block icon in library overrides mode.

Next Week

 * Further work on library overrides usability.
 * Do at least some work for asset collections.

February 21 - February 27

 * Added ideas to the 2022 GSoC project ideas page:
 * Continue Outliner Code Refactor
 * Files as Assets
 * Asset Catalog Selector for Asset View Templates
 * Read up on and discussed brush management tasks & proposals, in preparation of the sculpt module meeting.
 * Sculpt/paint module meeting.
 * Started involvement in the overrides project.
 * Read up on the topic in the (blog post and tasks)
 * Display buttons for properties in the Outliner Library Overrides mode.
 * Updated script to generate weekly reports to also include commits from all branches & repositories. Need to upload this as patch still.

Master Commits:
 * Fix wrong asset library displayed/loaded in asset view templates
 * Fix incorrect Outliner tree-display type returned

Review:
 * Requested changes to: Asset Browser: regenerate multiple asset previews
 * Requested changes to: Fix T95678: Thumbnails are not working with big / large Objects
 * Requested changes to: UI: Support drag/drop of materials in properties panel

Patches worked on: 1
 * Needs Review: Outliner: Display respective data-block icon in library overrides mode

Next Week

 * Further work on library overrides usability.
 * Do at least some work for asset collections.
 * Some work for Asset Browser split & the asset system.

February 14 - February 20
More of the same: Focus was on the Asset/File Browser split and the grid-view, mostly performance related. A nice speedup for general preview loading from storage already landed in master.

Again, 4 days of work only.


 * VR patch review.
 * Further work on the Asset Browser split and grid-view, esp. addressing various performance issues:
 * Fix failed assert with small region size
 * Support active item
 * Store active item, asset metadata sidebar
 * Let UI do lazy-loading of previews, rather than file-list cache
 * Remove preview-caching from asset-list API
 * Fix missing (re)load when changing asset libraries
 * Fix crash when loading asset library takes multiple redraws
 * Fix missing redraw when switching asset libraries
 * Speedup preview icon loading
 * Solve redraw performance issue in huge asset libraries

Master Commits:
 * UI: Speedup preview icon loading from hard drive

Review:
 * Accepted: UI: Do not include the text stating an enum item is the default
 * Accepted: XR: Allow variable count of action map subactions
 * Accepted: Fix T76082: VR Scene Inspection: It shows me only a pink screen

Next Week
Plenty of smaller things:
 * Dig into overrides project topics, start work on some tasks.
 * Contribute to GSoC project ideas list.
 * Meeting on brush management.
 * Do at least some work for asset collections.
 * Some work for Asset Browser split & the asset system.

February 7 - February 13
Focus was on the Asset/File Browser split and the grid-view, big improvements in navigation speed in huge libraries already become apparent.

Again, 4 days of work only.


 * Wording and formatting improvements to Writing Style HIG page.
 * Further work on the Asset Browser split and grid-view:
 * Enforce a fixed column number for the grid layout
 * Show asset catalog tree-view in navigation sidebar
 * Move asset catalog filtering to editors/assets
 * Get changes in catalog tree to update the UI correctly
 * Mouse hover highlight for grid items
 * Add theme colors for view items
 * Various GUI tweaks
 * Support reading and writing asset browsers from/to files
 * Fix crash when loading files with asset browser open
 * Bring back editor pulldown menus, get operators to work, T for nav-bar
 * Only add items to layout that are visible on screen
 * Again: Various presentations/workshops at the Blender headquarters:
 * Developer roles workshop (part 2)
 * Strategic projects planning presentation
 * Phabricator replacement status presentation
 * Blender Studio online pipeline presentation

Master Commits:
 * Fix asset-view template ignoring "Asset Indexing" debug option

Created tasks:
 * Split Asset and File Browser, implement Grid View.

Review:
 * Accepted: Fix incompatible swapchain format for Quest 2
 * Accepted: Fix T94268: Closing SteamVR and restarting VR Session crashes Blender

Next Week

 * Continue work on asset collections.
 * Continue basic work for Asset Browser split & the asset system.
 * Get lazy-loading & caching of previews to work.

January 31 - February 6
Continued work on the Asset/File Browser rewrite, workshops on strategic topics and some smaller general work.

Worth noting: from this week on I'll only work 4 days a week for a bit, to have time for studies.


 * Created Wiki page (UI): Get Involved as a Designer
 * Further discussions and comment on (Collections: Functions to calculate bounding box and dimensions)
 * Investigated Asset Browser performance issues with many assets. Turned out to be issues
 * Further work on the Asset/File Browser split and the Grid-View API:
 * Add basic asset library loading, general cleanups
 * Display a basic list of assets, set up scrolling and notifier listening
 * Basic grid layout with big preview tiles
 * Various presentations/workshops at the Blender headquarters:
 * Texture workshop outcomes
 * Blender Studio Asset Management Pipeline presentation
 * Developer team roles workshop

Master Commits:
 * Guarded allocator: Document non-obvious initialization with MEM_new
 * Fix wrong use of region size without pixel-size applied
 * Asset Browser: Use directory name as default when adding asset libraries
 * Fix compile error with audaspace disabled
 * Cleanup: Better name for new Outliner tree element type
 * Cleanup: Namespace alias for internal outliner header

Next Week

 * Continue work on asset collections.
 * Continue basic work for Asset Browser split & the asset system.

January 24 - January 30

 * Continued Outliner refactoring.
 * UI module day (unplanned but overdue).
 * Work on drag & drop code to support retrieving context from buttons, needed for dragging assets onto material slots.
 * Update on `std::filesystem` discussion.
 * Started work to split off the Asset Browser from the File Browser. This is in preparation for adding a Grid-view API (similar to the new Tree-View API), which eventually serves decoupling asset reading from the file-list code, which again is needed for the asset system design.

Master Commits:
 * Drag & drop: Support using context of hovered button when dropping
 * Fix overread warning in screen operator
 * UX: Prevent click-through panels and used header area
 * Event System: Add debug sanity check "always pass" events
 * Cleanup: Small improvements to Outliner RNA path build function
 * Cleanup: Improve function name, introduced in own recent commit
 * Cleanup: Remove RNA data from TreeElement, get via type specific class
 * Fix incorrect index-key in RNA path built from Outliner
 * Outliner: Function to "cast" C-style TreeElement to typed C++ pendant
 * Cleanup: Reduce `void *` reliance of new RNA C++ Outliner elements
 * Outliner: Port sequencer elements to new tree-element design
 * Cleanup: Reduce `void *` reliance of new sequencer C++ Outliner elements
 * Outliner: Add missing sanity checks for RNA tree-elements
 * Outliner: Port RNA elements to new tree-element design

Review:
 * Requested changes to: UI: Support drag/drop of materials in properties panel
 * Accepted: Fix T61558: Label alignment in top bar
 * Accepted: Outliner: avoid creating unnecessary undo steps
 * Requested changes to: UI: Unify drawing style of UILists and Tree row buttons.
 * Requested changes to: Fix T94692: Show Cached OneDrive Thumbnails
 * Accepted: UI: Add OneDrive to System List for Windows
 * Accepted: Assets: Enable node group assets.
 * Accepted: Assets: Add operator to create preview from active object.

Next Week

 * Continue work on asset collections.
 * Investigate/fix performance issues with large asset libraries.
 * Continue basic work for Asset Browser split & the asset system.

January 17 - January 23
Further development for collection assets. Some fixes related to asset previews, to work towards fixing performance issues in large asset libraries. Also updated and merged some patches.

Master Commits:
 * Fix continuous stream of thumbnail notifiers after redo
 * Fix file/asset thumbnails causing constant stream of notifiers
 * Fix: File Browser using asset indexer after Asset Browser was visible
 * Asset Browser: Add debug option to disable asset indexing
 * Cleanup: Remove now redundant performance workaround for asset previews
 * Cleanup: Correct comments for immediate mode buffer draw functions
 * Cleanup: Improve naming of immediate mode buffer draw functions
 * UI: Speed up icon scaling
 * T94828: Appending collection with instancing links nested collections

Created patches:
 * Collections: Functions to calculate bounding box and dimensions.
 * Auto-generate RNA-structs declarations in `RNA_prototypes.h`.

Patches worked on:
 * RNA: Generate property declerations header, solving msg-bus C++ incompatibility
 * UX: Prevent click-through panels and used header area

Created tasks:
 * Add asset catalog selector to asset-view template (i.e. pose selector in the side-bar).

Review:
 * Commented: PyAPI: temporary context override support. D13126
 * Accepted: RNA: display exact integer values without fraction if step is integer.

Next Week

 * Continue work on asset collections.
 * Investigate/fix performance issues with large asset libraries.

January 10 - January 16
No particular focus. General maintenance mostly.


 * Outliner: Continued porting the code to more modern C++. The previous C/C++ mixture started causing development overhead.
 * Some more work for collection asset drag & drop support using bounding-box snapping.
 * Meeting in the studio on strategical targets for 2022.

Created tasks:
 * Appending collection with instancing makes objects in nested collections appear twice.

Created patches:
 * RNA: Generate property declarations header, solving message-bus C++ incompatibility.
 * Fix T94828: Appending collection with instancing links nested collections.

Master Commits:
 * Cleanup: Outliner function names, simplify struct initialization
 * Cleanup: Use destructor to delete Outliner runtime data
 * Cleanup: Use smart pointers for Outliner tree display and element types
 * Fix incorrect destruction of Outliner tree-elements
 * Cleanup: Remove Outliner C-API headers/wrappers
 * Cleanup: Fix warning when compiling without Audaspace
 * Fix/workaround MSVC compile error with messag-bus
 * Cleanup: Run `make format`
 * Outliner: Compile all Outliner files in C++
 * Cleanup: Use `nullptr` in new Outliner C++ files
 * Cleanup: Make message-bus utility macros callable from C++
 * Fix warnings after bab47b60cb69
 * Cleanup: Correct indentation
 * Fix T94299: Object asset set as visible but doesn't show

Review:
 * Accepted, made tweaks & canded: DNA_defaults: Add space clip editor defaults
 * Accepted: Outliner: Add way to display warning icon for items.
 * Closed & committed: Remove developers' local pathnames from SVG files and remove deprecated gradients
 * Accepted: Fix: Build warning with MSVC
 * Requested changes to: Add mask blending factor to mask editor
 * Requested changes to: UI: Support drag/drop of materials in properties panel

Next Week

 * Continue work on asset collections.
 * Discussions for preparing a project on overrides.

January 3 - January 9
Some fixes, review and work for collection asset support.


 * Worked on bounding box snapping for collection assets (not merged yet):
 * Initial bounding box based snapping for collection drag & drop
 * Get bounding box snap placing on drop to work

Created patches:
 * Fix T94299: Object asset set as visible but doesn't show.
 * Fix indirectly instanced objects being both instanced and linked

Master Commits:
 * Fix Cycles compile error after last own commit
 * RNA: Support bitwise operators for property flags in C++
 * Fix Adjust Last Operation panel showing session UUID number button
 * Fix T94308: Window Manager console error
 * Fix T94316: Asset catalog tree scrolls away when renaming a catalog

Review:
 * Accepted: Assets: Disable automatic preview generation for node groups.
 * Accepted: Fix T89587: Don't Change Line Width For Previews
 * Requested changes to: UI: Blender 101: Mouse Hover Highlight

Next Week

 * Continue work on collection assets.
 * General catching-up/maintenance after holidays.