User:Severin/Reports/2020

= Weekly Reports: March - December 2020 =

December 7 - Dec 13
Busy week, main task was getting the Asset Browser through review - all patches are approved now.


 * User Interface meeting (notes still have to be written)
 * Mailed bf-committers about the need for Cairo for Wayland - I don't think there is one.
 * Many tweaks, fixes and cleanups for the Asset Browser. Some noteworthy ones:
 * Rename "Make Asset" & "Remove Asset Data" to "Mark Asset" and "Clear Asset".
 * Rename "Repositories" to "Asset Libraries" in code and UI.
 * Finish support for directories as Asset Libraries.
 * Don't allow selecting single .blend's as Asset Libraries for now.
 * Made data-block references of the Current File repository safe over destructive operations (undo/redo, data-block deletion, reading without UI, etc.) -.
 * Don't run thread-unsafe file-list reading in threads.
 * Avoid unsafe access to asset browsing through BPY.

Commits to master:


 * From the Asset Browser branch:
 * UI: Allow UI to pass focused data-block to operators via context
 * UI: Allow Outliners to pass selected data-blocks to operators via context
 * Cleanup: Use const for filter queries
 * Fix T83559: File Browser uses wrong operation
 * Cleanup: Use enum for file selection type definitions
 * Cleanup: Correct an own earlier commit to use an existing utility function
 * File Browser: Refactor access to the selection parameters struct
 * Cleanup: Use guarded allocator for data-block names returned from file reading
 * Fix unexpected "/" path after normalizing empty directory path
 * Needed for the Asset Browser:
 * Refactor/extend BKE API to get special user directories
 * Ghost: Support queries for special user directories (desktop, documents, etc.)
 * UI Code Quality: Start refactoring Outliner tree-element building (using C++)
 * Fix missing type check for Outliner eyedropper query
 * Cleanup: Avoid setting (unsafe) Outliner tree element data that won't be used
 * Fix access to invalid data in Outliner tree building

Created patches: 2
 * BPY: Add application handler for workspace switches.
 * More relibable way to get special user directories (desktop, documents, etc).

Created tasks: 6
 * Evaluate "Add to Collection" in Object > Collections panel.
 * Avoid reading of all ID data when reading asset data.
 * Post-merge code cleanups.
 * Various issues with regions in the Asset Browser.
 * Manual & Release Notes Docs.
 * Disable File Browser only operators for Asset Browsing.

Review: 4 These were rather trivial patches:
 * Accepted: macOS/Retina: Fix cursor position in side-by-side stereo 3d mode
 * Accepted: Correct the order of the last two arguments in `eevee_cryptomatte_shading_group_create`
 * Accepted: Cleanup: Fix capitalization in various places
 * Accepted: IC keymap: add ability to select, delete modifiers and engage and exit searching in Properties

Next Week

 * Push all the Asset Browser commits.
 * Further fixes, tweaks and cleanups from the Asset Browser Milestone 1 backlog for 2.92.
 * Hopefully, get data-block design changes in finally

November 30 - December 6
Most time was spent on the Asset Browser review which is going great so far. Other than that, there was the code quality day and some general tasks.

General:
 * User Interface Meeting and wrote meeting notes (with great help from Hans though!).
 * Code Quality Day:
 * Cleanup: Move Outliner runtime hash into internal runtime struct, out of DNA
 * Continued work to refactor Outliner tree code (using C++). That is, started to work on porting the individual tree-element types to a new design too.
 * Atomics: Add 16 bit fetch + AND and fetch + OR signed integer operations
 * UI/BPY: Allow Python operator polls to set the disabled hint.

Asset Browser:
 * Split the big Asset Browser patch into 7 smaller ones:
 * Asset Browser: Metadata storage, reading and API.
 * Asset Browser: "Make Asset" operator and UI integration.
 * Asset Browser: Various changes for previews.
 * Asset Browser: Support dragging assets and appending on drop.
 * Asset Browser: Support custom asset repository paths through Preferences.
 * Asset Browser: Internal File Browser changes & Python API additions.
 * Asset Browser UI.
 * Lots of cleanups and smaller changes to address feedback that came up during review.
 * Support "Remove Asset-Data", turning asset data-blocks back into regular data-blocks..
 * Committed and finished work to make file previews use the icon system in a thread-safe manner.
 * Created some more tasks:
 * Avoid unused preview icons from Asset Browser.
 * "Current File" assets often loose their preview on read.
 * Ensure "Current File" repository stays in sync with main data-base.

Review: 3
 * Accepted: UI Code Quality: Finish porting outliner tree building to C++
 * Accepted: Cleanup: remove forward declared enums
 * Accepted: Point users to new location of "Show Group Colors" option

Next Week
Last week before christmas holidays!
 * Continue going through Asset Browser task backlog.
 * UI meeting.
 * Review VR controller and haptics support patch.

November 23 - November 29
Had two days off this week, so a short report. Started the Asset Browser review process and went through some general Asset Browser implementation tasks.

General:
 * (Short) User Interface meeting and wrote meeting notes.

Asset Browser:
 * Submitted the Asset Browser patch for review. - Quite a big one, might have to split it up.
 * Support custom preview images for assets.
 * Proper implementation of "Make Asset" for button context menus.
 * Did quite some work to port File Browser preview images into icons, so they can be accessed via BPY. Needs to be finished still, issue is that parts of the icon system have to be made thread safe for this.

Next Week

 * Continue going through Asset Browser task backlog.
 * Go through Asset Browser review.
 * UI meeting.

November 16 - November 22
Had to do some regular module work, but spent quite some time on the Asset Browser. Mostly organization/communication and going through the task backlog.




 * Asset Browser:
 * Updated general project description and milestone 1 description.
 * Sent status update to bf-committers.
 * Support asset meta-data editing from the UI.
 * Add refresh button for external repositories.
 * Draw hint instead of file list if repository path is invalid, see picture.
 * Use context to get selected data-blocks from Outliner, not operator properties.
 * Fixes and cleanups.
 * Finished patch for data-block selector UI changes.
 * Fixed bug in Outliner library-override integration.
 * Build-system: Force C linkage for all DNA type headers.
 * UI meeting and wrote notes.

Created tasks: 5 Asset Browser Milestone 1:
 * Bug-report: Assert When Unlinking "Edit Source" Text Data-block.
 * Crash on undo while showing "Current File" repository.
 * Read Entire Asset-Data When Reading Asset Repository.
 * Asset Browser Milestone 1 (task for merge).
 * Handle Material Slots When Appending Material Assets.

Fixes: 3
 * Fix T82918: File menu "Save Copy" shows "Save As" in File Browser
 * Fix pin icon in Properties not right-aligned after zooming
 * Fix T81227: Modifier menu and text switch places

Review: 2
 * Accepted: Add Custom Space to Constraints
 * Accepted: Property Search: Fix warning

Next Week
I have two days off this week.
 * Continue going through Asset Browser task backlog.
 * UI meeting.

November 9 - November 15


Mostly Asset Browser work.


 * Added to and committed the Outliner tree building refactor with C++.
 * Asset Browser:
 * Wrote Pose Library design document.
 * After discussion, we decided I should focus on the milestone 1 without pose libraries from now on.
 * Updated the Milestone 1 workboard to list all current ToDo and design tasks. (See below for the created tasks).
 * Implemented threaded preview generation for the "Current File" repository, see video.
 * Separate File Browser and Asset Browser data (display options, current path, navigation history, etc.).
 * Automatically refresh "Current File" repository when creating assets.
 * Use already existing Asset Manager icon for the Asset Browser.

Created tasks: 16 All these are for the Asset Browser Milestone 1:
 * Use Context to Pass Data to "Make Asset" Operator.
 * Add Button to Refresh the Automatic Asset Preview.
 * Polish Preview Creation.
 * Support Directories as Asset Repositories.
 * Add Icon for the Asset Browser.
 * UI Cleanup.
 * Support Filtering by Tags.
 * Support Basic Meta-data Editing for "Current File" repository.
 * Support Custom Preview Images.
 * "Make Asset" and the Search Menu.
 * Automatically refresh the "Current File" Repository.
 * Fix issues with "Make Asset" in Button Context Menu.
 * Make Thumbnail Dragging More Reliable.
 * Support More Data-block Types.
 * Support "Unmake Asset".
 * Handle Data Dependencies.

Next Week

 * Finish and commit data-block design changes patch.
 * Continue going through Asset Browser ToDo tasks.
 * Make sure the UI module doesn't have outstanding tasks for bcon4.

October 19 - October 25
Review, general UI module work and a bit of Asset Browser stuff.

General:
 * UI team meeting & wrote meeting notes.
 * Proposed (now accepted) workaround for id_management test failure on macOS/Clang.
 * Worked with Hans Goudey on a final placement for the Properties data-path pin and the search button, for which we had to find a workaround for layout issues.
 * Patch review session with Hans.



Asset Browser:
 * Created an own developer.blender.org project for the Asset Browser, including an own milestone.
 * Created a digital user story map for the pose libraries (see picture).
 * Created tasks:
 * Asset Management Terminology.
 * Define How to Deal With Different Preview Sizes and DPIs.
 * Discussed possible next sprint with David Drayton.

Commits:
 * UI: Swap order of increment and decrement file name icon in File Browser
 * UI: Move Properties path pin button next to the data-path
 * UI: Better center-align Properties search button in header
 * Cleanup: Missing parentheses around macro in versioning

Review: 11
 * Accepted: Fix T81890: Active keyframe changes with active FCurve on deselect of keyframe
 * Accepted: Fix T81818: Outliner mode column does not consider shared object data
 * Accepted: Sculpt: Remove tools with missing icons experimental option
 * Accepted: UI: Allow changing the active side of line gestures
 * Accepted: Move selection box with spacebar
 * Accepted: Unable to build without UI_PROP_DECORATE
 * Accepted: UI: Popover arrows are clipped
 * Requested changes to: T68649 Adding a dialog box to Load Factory Preferences
 * Accepted: UI Code Quality: Cleanup ui_but_update_from_old_block
 * Requested changes to: Outliner: Create new collection with selected objects
 * Requested changes to: UI: FModifier layout updates, drag and drop

Next Week

 * Wrap-up 3rd Asset Browser sprint (pose library design/prototyping).
 * Start 4th Asset Brower sprint (document and commit to the basic design).
 * UI patch review.
 * UI meeting + notes.

October 12 - October 18
Bug tracker week, but didn't manage to spend too much time on actually fixing bugs.

General:
 * UI meeting & wrote meeting notes.
 * Spent quite some time on a single issue, that is a id_management test failure on macOS/Clang (see ). Found out this is likely a compiler bug.
 * Patch review session with Campbell.

Commits:
 * Outliner: Use operator option to decide which item to rename
 * Cleanup: Refactor lookup for hovered Outliner element for renaming
 * Cleanup: Remove unused properties from node Viewer Region operator
 * Cleanup: Rename Outliner helper function

Fixes:
 * Fix build error with clean builds
 * Fix error in previous commit
 * Fix T81675: Renaming collapsed collection in Outliner renames nested items
 * Fix T81555: Outliner object state filter not updating correctly

Review: 10
 * Accepted: Property Search: Reset panel expansion when exiting search
 * Accepted: Sculpt: Add angle snapping to line gesture tools
 * Accepted: Fix T81697: Property search crash with python handlers
 * Accepted: Change Invert Filter icon for UIList
 * Requested changes to: New option to invert search filter in Dopesheet
 * Accepted: Property Search: All tabs
 * Requested changes to: [WIP] directional box selection
 * Accepted: Fix T81669: Vertex size in UV Editor changes using Face Dot Size in themes
 * Accepted: Outliner: Add missing check for the drag type in datastack_drop_poll
 * Requested changes to: Fix T81532: UI: Animation Editors - slider covers button to reveal the sidebar

October 5 - October 11
General UI module and pose library work mostly. There was lots of talking, brain storming, note making and sketching for me.


 * UI meeting & meeting notes.
 * Asset Browser, sprint #3 (pose library design/prototyping):
 * Created a pose library user-story map (offline, will create an online version as well).
 * Had a meeting with David Drayton, mostly giving him a project update and general discussion around presets. Helped confirming hypotheses.
 * Created test-builds, received and replied to feedback.
 * Fixed some issues in the previous sprint.
 * Started writing an overview document for the Asset Browser design. I think we have to do better at communicating that to "outsiders". This may become part of an own sprint.
 * Created & discussed patch - Workspaces: Add option to specify a preferred scene for a workspace.
 * Gave initial feedback - VR: OpenXR Action Support.

Next Week

 * UI patch review
 * Bug sprint

September 28 - October 4
Plenty of UI patch review, finished 2nd asset browser sprint (custom repository basics) and Friday was code quality day.


 * Asset Browser:
 * Support showing local assets in Asset Browsers ("Local" repository) -.
 * Add Preferences options to set up custom asset repositories.
 * Support switching between custom repositories in the Asset Browser.
 * Code quality:
 * Worked on a patch to rework the version patching design with some C++ tricks to avoid possible issues and clean things up (P1681). I wasn't too satisfied with the result though.
 * Clear layout pointer on layout destruction.
 * Reworked 2D View panning and zooming operator integration.
 * Remove dead code in panel logic.
 * Remove/replace C standard library `assert` and header usages.

Next Week

 * UI patch review.
 * Start 3rd Asset Browser sprint (pose library design/prototyping).
 * Prepare Asset Browser code for review & merge as experimental feature
 * Upload design fragments at some centralized location.
 * Continue work on Human Interface Guidelines.

September 21 - September 27
All kinds of UI tasks, didn't manage to get as much done for the Asset Browser as I hoped. Overall this wasn't the most productive week.


 * Worked on the Human Interface Guidelines.
 * Created an updated proposal for the tooltip guidelines.
 * Created (more or less empty) sub-pages: Accessibility, Icons, Writing Style (with contents copied from the old guidelines).
 * Added sub-page on user-centered design with some initial contents.
 * Added a list of TODOs to be addressed before making the guidelines more public & official.
 * Updated data-block selector design changes patch.
 * Asset Browser:
 * Show "Make Asset" in the context menu of buttons showing IDs.
 * Had a user story meeting with Hjalti Hjálmarsson and Pablo Fournier from the Blender Studio, as well as Pablo Vazquez. I will write up notes for this.
 * Local WIP changes to support showing local assets as repository.
 * UI module work:
 * Tuesday module meeting.
 * Regular tracker and organization work.

Next Week

 * UI patch review.
 * Continue 2nd Asset Browser sprint.
 * Write up notes on Pose Library user story session.
 * Upload design fragments at some centralized location.
 * Continue work on Human Interface Guidelines.

September 14 - September 20
Plenty of review, some meetings, smaller fixes and continued work on the data-block design changes. Didn't get to work on the Asset Browser.


 * Created (experimental) patch: Versioning: Try to prevent accidental early-exiting in versioning.
 * Updated patch with changes: Fix C operators can't set default display or sort type for File Browser.
 * Continued work on the data-block selector design changes. Changes are local, but I should be able to update soon with them.
 * Because of that, I did some general improvements to superimposed icons:
 * UI: Correct superimposed icon interaction hotspot.
 * UI: Support interacting with superimposed icons while editing.
 * Support tooltips for superimposed icons (local only right now).
 * Cleanup: Resolve warnings.
 * UI Module work:
 * Updated the roadmap picture
 * UI meeting
 * Tuesday module meeting

Next Week

 * UI patch review
 * 2nd Asset Browser sprint

August 31 - September 6
More review and other general UI module work.


 * UI meeting on Monday, wrote meeting notes.
 * Did a pass over existing bug reports to reclassify more as known issues.
 * Created TODO task for missing icon for the release.
 * Code Quality Day:
 * Created patch: RNA - Better validation for float UI step size (makes Add-on test succeed, ).
 * Store curve-button gradient type in derived struct.
 * Use derived struct for number buttons.

Next Week

 * UI Patch review
 * Next iteration over the data-block selector implementation.
 * Plan and start second Asset Browser sprint.

August 24 - August 30
Mostly review, the first Asset Browser sprint and smaller, general tasks.


 * Asset Manager:
 * First Sprint started this week. I'm pretty happy with the result, most targets for it are already done.
 * Add Asset Browser UI as sub-editor for the File Browser.
 * First steps for asset repositories, for a single assets.blend in a fixed path.
 * Support dragging assets from Asset Browser into viewport.
 * Created patch: UI: Remove "Unset" from buttons context menu.
 * Created TODO task: Missing DNA Defaults ("Reset to Default Value" sets to 0) -

Next Week

 * UI & Module Meeting
 * Wrap up the first Asset Browser sprint (evaluate it and create a short video demo). Plan and maybe start the second one.
 * Code Quality Day

August 17 - August 23
Mostly some general work and some further design work to prepare the first asset manager sprints.


 * Asset Manager:
 * Wrote meeting notes for last week's meeting.
 * Monday we had a meeting with David Drayton, UX specialist and 3D Artist, to discuss the Asset Manager design, process and tools. There seems to be lots of agreement on the issues and approaches. It was quite encouraging.
 * Did a first draft of a user story map for the implementation perspective.
 * Created patch: Fix C operators can't set default display or sort type for File Browser.
 * Reported: Icon Background Opaque for Animation channels.
 * RNA: Validate scene/view-layer combination for statistics query.
 * Continued working on data-block selector design changes (esp. for Library Overrides):
 * Rather big update for : Add menu to ID-template for library operations.
 * Created a design task for the proposed changes.
 * Outliner: Avoid rebuilding tree on selection/active changes.
 * Created design task: Quad View Exiting Behavior.

Next Week

 * UI Patch Review (esp. the Outliner GSoC project patches)
 * Start first sprint/iteration of the Asset Browser. Goal is to have an initial (limited/broken) UI to test and evaluate.

August 10 - August 16
Continued the Asset Manager core design discussions, next week I should be able start implementing a first iteration of the entire design. I also tried to get some VR tasks resolved, in time for 2.90 and to be able to focus more on other things. There was also some continued work to improve search menus for usage with libraries and UI patch review.


 * We had a couple of Asset Manager discussions and (together with Ton as the project commissioner, see ) settled on the foundations for the first part of the project.
 * Created a UI Patch: Add menu to ID-template for library operations.

Next Week

 * Start work on a first, very simple/hacky implementation of the initial Asset Browser design.
 * Regular development work (UI patch review, UI module work, GSoC, etc.)

August 3 - August 9
It was bug sprint week, so I spent most time on bug fixing. Managed to fix 17 UI bugs. Also tried to catch up a bit with the incoming flood of UI patches, checked the status of GSoC UI projects and did some work for code quality day.


 * Created : Title Case for UI Labels
 * Went over GSoC UI projects to check on status and if there are any troublesome changes.
 * Code quality day:
 * Committed existing patches to use derived structs for button types (typed buttons design) -
 * Use derived struct for HSV Cube buttons.

Next Week

 * A few bug fixes for 2.90.
 * Check asset manager design with Ton.
 * Search Menu Design for Linked Data-blocks.
 * Regular UI module work (including patch review).

July 27 - August 2
A week with little tangible outcome. I intentionally hold back on writing more Asset Manager code until the big picture design is signed off by Ton. Also traveled back to Amsterdam, where I had to set up a new system...


 * Kept working on the Asset Manager presentation. We re-scheduled it for the next week due to timing difficulties. After feedback from Dalai I added concrete workflow examples with mockups.
 * I spent quite some time thinking about the brush storage and pose library design for the Asset Manager.
 * Wrote down an initial proposal from Julien Kaspar and me on how the brush storage and workflow could look like.
 * For pose libraries things are still vague. But it's less pressuring and for now a basic idea of the workflow should be enough.
 * Checked status of the Property Search work and gave feedback.
 * GSoC:
 * 2nd GSoC evaluation. Unfortunately we had to fail the VR project.
 * The Outliner project passed. I tried to get a better idea of where it stands, so I can take over as main mentor from William.

Next Week

 * Bug sprint
 * Patch review
 * Code quality day

July 20 - July 26

 * VR:
 * Show note for VR Scene Inspection add-on if built without WITH_XR_OPENXR.
 * Change how landmarks affect viewer pose.
 * Reviewed Sebastian König's additions to the Scene Inspection add-on and committed them with own changes.
 * Created VR release notes page.
 * Asset-Manager
 * Created design task for data-block previews: - Support preview thumbnails for more data-block types
 * I'm preparing a big picture asset manager presentation for the Blender Studio. No breaking news in there (all info is publicly available), it's just to make sure the entire Studio (including Ton as the Project Commissioner) is on the same page.

Next Week
Mostly the same as last week. Given the new plan to have the asset manager presentation next week, I focused on preparing that over my initial plans.


 * Design for (UI: Search Menu Design for Linked Data-blocks).
 * Asset Manager presentation for the studio.
 * Wrap up Asset Manager meta-data work.

July 13 - July 19
Had holidays this week. Still did a few smaller things, mostly to make sure things are ready for Bcon3 next Wednesday.


 * Created 2.90 task: Review updates to VR Scene Inspection Add-on.
 * Checked status of 2.90 UI and VR targets. and  might have to be postponed (checked with Hans on the latter).
 * Also, gave two ten minute presentations on Asset Manager and VR on the German Blender Day :)

Next Week

 * Design for (UI: Search Menu Design for Linked Data-blocks).
 * Review changes to VR Scene Inspection Add-on.
 * Wrap up Asset Manager Meta-data work.

July 6 - July 12
All focus was on the asset-manager. Making great progress on that, the first part, asset-metadata is almost done.


 * Asset Manager:
 * Experimented with a new asset data-block type, for some possible technical benefits.
 * After discussing this with Brecht, I went back to the previous solution. It makes some things more complicated but should allow the same features.
 * Add support for different kinds of meta-data: Author, description, tags.
 * Add File Browser Link/Append option to show only assets, lays foundations for reading asset data from other files (.
 * Started writing technical core design document (with core requirements and specifications).
 * UI meeting, meeting notes and general module work.
 * Ongoing work for macOS arm64 support with patches from Apple.

Next Week
Holidays :)

June 29 - July 5


Work on the Asset Manager started this week! For the first weeks this will overlap with the library overrides usability work I've been doing.


 * Wrote up notes on how to use the UI workboard.
 * UI: Show library status icons in search menus, rather than letter prefix.
 * Outliner/UI: Show library state icons for data-blocks in "Data API" mode.
 * Checked Background Images usability issue
 * Commited manual additions.
 * Asset Manager:
 * Initial "Create Asset" operator.
 * Create datablock previews/thumbnails when creating assets.
 * Support object data-block previews.
 * Code quality day:
 * Wrote rather exhaustive reply to the pointer code-style thread.
 * Continued work to untangle `uiBut` into type specific sub-structs.
 * GSoC VR project evaluation & communication.

Fixes

 * : Material preview not visible in selection list

Next Week

 * Continue Asset meta-data work
 * UI patch review

June 22 - June 28
Lots of general work. I also took over UI module ownership, so I spent time on organizational tasks for the module.


 * Committed translation fixes for layout headings.
 * Wrote UI team meeting notes.
 * Docs: Updated HMD setup documentation.
 * VR: Properly support outputting sRGB swapchain buffers.
 * HIG: Created task for selection behavior.
 * UI module: Created a custom dashboard for UI patches.
 * UI module: Made a first pass to re-organized the UI workboard -- over 500 tasks!
 * Library Overrides: Updated (Show library overrides in Outliner) with new Outliner filtering and fixes for new threaded overriding.
 * GSoC mentoring

Review:
 * [suggested alternative approach]: Edit Voxel Size: Move the label to the center of region when not visible.
 * [accepted]: Widget - Replace geometry by fragment shader drawing.
 * [accepted]: Add Free Handle Types to CurveProfile Widget.

Fixes:
 * Fix Preferences not saved when changing translation settings.
 * : Material preview crash with running VR session.
 * Fix error when filtering in Outliner "Blender File" mode with libraries.
 * : VSE Sequencer/Preview crash after fullscreen.
 * Proposed fix/workaround for (Adjust Last Operation: Changes in Outliner are reverted back automatically).

Next Week

 * Library Overrides: Get in, find a design for ID-templates.
 * Asset Manager! Add some initial data structures and add basics for meta-data.
 * VR: keep up with SteamVR updates, some workaround/fixes might be needed on our side.
 * General GSoC work

June 15 - June 21
A mixture of general UI tasks and VR, plus some catching up on patch review.

General:
 * We had two UI meetings. There should be meeting notes soon.
 * Artists in the studio mentioned performance issues with the Outliner in big scenes. Investigated and committed improvements to avoid quite some unnecessary work.
 * Discussed some major Asset Manager code design questions with Brecht.
 * Created design task, UI: Search Menu Design for Linked Data-blocks.
 * Watched a very useful presentation by Andy about the studio pipeline.

VR:
 * Spent quite some time on trying to fix the DirectX interoperability failure on some hardware - with no success... Some code changes I did for that should  be re
 * Created report to Monado about color-management issues, based on my previous SteamVR one. Helped them test a fix too.
 * Created a Virtual Reality project for developer.blender.org and organized tasks on its workboard.
 * GSoC: Discussed code design with student and Jeroen

Fixes:
 * Crash when closing window while Outliner shows screens.

Review:
 * [accepted]: Fix T77541: Unregistering DATA_PT_modifiers doesn't remove modifier panels
 * [explained alternative & accepted]: UI: Add shortcuts for modifier panels
 * [accepted]: UI: Ctrl-click on panel header to expand & collapse subpanels
 * [requested changes]: UI: Status Bar Changes
 * [accepted]: UI: Drag and Drop Constraints, Layout Updates
 * [accepted]: UI: Grease Pencil Modifier Drag and Drop, Layout Changes
 * [accepted]: Outliner: Selection cleanup
 * [accepted]: UI: ShaderFx Drag and Drop, Layout Updates

Next Week

 * Library Overrides (finish Outliner integration, start work on search menues ).
 * UI patch review
 * Smaller VR tasks (e.g. update Blender Manual for SteamVR support, fix DirectX interoperability failure on some GPUs, etc)
 * GSoC

June 8 - June 14
Worked further on library overrides, a bit of general UI development, and due to the unexpected announcement of OpenXR support in SteamVR, I spent a day on VR again.


 * UI: Avoid rebuilding Outliner tree on simple button interactions.
 * UI: Show library names grayed out and right-aligned in menus.
 * UI [patch]: Show library status icons in search menus, rather than letter prefix.
 * VR:
 * Thursday evening we got the news that SteamVR added OpenXR support! So I spent Friday on this, it has some implications.
 * It worked out of the box with the Blener Studio's Vive! Well except of one issue...
 * There is a SteamVR bug in color-space handling. We had it before with other OpenXR runtimes, so we have a workaround in place that I enabled for SteamVR too now.
 * Discussed how we can deal with this issue with regards to the LTS release, and how SteamVR support affects VR development in general.
 * Created a detailed bug report to SteamVR for the color-management issue. Also commented on an existing request for OpenGL support.
 * Spent quite some time talking to Peter Klimenko (the VR GSoC student) on overall design an implementation for the controller support.
 * Personal weekend project: Started working on parallel drawing of the VR view, so that can draw continuously without overhead of the rest of Blender's main loop. Needs more work (crashes a lot...) but I got something basic working.
 * Asset Manager: Painfully merged master into the existing asset branches from Bastien, useful as reference at least.

Fixes:
 * Fix crash running "Edit Voxel Size" operator outside of a main 3D View region.
 * Fix missing animation decorators for pointer buttons.
 * Fix : File Browser in macOS fullscreen crashes or makes windows unusable.

Review:
 * [requested changes]: Drag and Drop Constraints, Layout Updates.
 * [suggested alternative & accepted once incorporated]: Voxel Size Edit: Fix text not readable when zooming in the viewport.

Next Week

 * Library Overrides
 * UI patch review
 * Smaller VR tasks (e.g. update Blender Manual for SteamVR support, fix DirectX interoperability failure on some GPUs, decide how the SteamVR color-management issue can be addressed for LTS, etc)
 * GSoC

June 1 - June 7
A short week with little time to work on the general UI agenda. Monday was a holiday, Friday was code quality day. So most time was spent on general tasks, but managed to do a few things for library overrides.


 * Committed a few usability improvements for the "Make Library Overrides" operator:
 * Don't move collections to Scene Collection when overriding
 * Unlink instance empty after "Make Library Override"
 * Expand linked/overriden collections by default in the Outliner
 * Had a meeting with Bastien on Library Overrides. Turns out there's less work to do for me than I thought, Bastien plans to look into most issues I thought would be on my plate. I will still try to help him although the Asset Manager should probably get prioritized.

Code Quality Day:
 * Updated and fixed quite some merge conflicts for the `wm-drag-drop-rewrite` branch (see ).
 * Same with the `temp-ui-button-type-refactor` branch
 * Continued work in the `temp-ui-button-type-refactor` branch, which partially had to be reworked due to conflicting changes in master.
 * Updated with these changes (UI Code Quality: Use derived structs for search buttons and decorators).

Fixes:
 * Fix broken split layout in encoding options.

Review:
 * [accepted]: Fix T77173 - Report Background Colors for 2.83 Release
 * [requested changes, committed tweaks & accepted once ready]: Pan 2D Region When Dragging to Boundary
 * [accepted]: Cleanup: Use const context for some UI templates
 * [accepted]: Drag and Drop Modifiers, Layout updates

Next Week

 * Library Overrides
 * UI patch review
 * GSoC

May 25 - May 31
There was no particular focus this week. Did a mixture of bug fixing, review and GSoC. The GSoC VR project needed some final preparations, to make sure there's a bigger picture on the engineering side for the student to work towards.


 * UI/Physics: Show error enabling Rigid Body if compiled without Bullet.
 * Cleanup: Avoid mixing unlink-operator and menu name for ID-templates.
 * Cleanup/refactor: Workspace API, boilerplate code, early exit.
 * VR/GSoC - Created design tasks for the main deliverables of the VR GSoC project. These should give the student the foundation needed to get his work done:
 * : Controller Drawing
 * : Controller Based Picking
 * : Python API for Controller Interaction

Fixes:
 * Fix T76957: Rigid body "Animated" text cutoff.
 * Fix T68209: Crash opening pre 2.8 file with maximized area.
 * Fix T77075: Crash omitting optional UILayout.template_ID_tabs parameter.
 * Fix T77075: Overlapping tabs placement when used in right Top-bar split.

Review:
 * [accepted]: Curves - Implement Handles for selected points only.
 * [accepted]: UI Experiment - Scrollbars.
 * [accepted & committed]: Skip unnecessary cursor setting.
 * [requested changes & committed own tweaks]: Indicate the Active Keyframe in Graph Editor.
 * [requested changes]: Drag and Drop Modifiers, Layout updates.

Next Week
It's important that I move forward in the general agenda, so that I can soon move on to the asset manager work. That means, I have to get work on the library overrides done.


 * Focus: Library overrides.
 * UI patch review.
 * GSoC (help students getting started).
 * Create design task for UI process policies.

May 18 - May 24
Many general tasks with no particular focus. Although I did spend some more time on the bug tracker.


 * Did quite some changes for Curves: Implement Handles for selected points only.
 * Brecht, Campbell and I discussed ways to solve issues with stale data access by the UI, as well as dealing with context changes during UI handler execution. Discussion on going.
 * There's an ongoing discussion on how the UI development process happens, caused by some recent controversies. I updated a personal vision statement proposal for the UI team, to help addressing this (prefer to not share the link yet).
 * VR: Investigated some possible anti-aliasing improvements but want to check with the viewport team before committing/submitting any changes.
 * WBSO bookkeeping
 * GSoC (organizational chatting, discussed some concrete project aspects).
 * General Bug tracker triaging and classification

Fixes:
 * : Renaming bone in pose mode doesn't redraw the viewport names.
 * Proposed fix for : Workspace duplicate resets my tweak tool back to default select box.
 * , : Issues with File Browser spawned from other temporary windows.
 * : Empty HUD (Redo Panel).
 * : Preferences window can not be opened from script operator
 * VR: Fix big performance bottleneck for simple scenes

Review:
 * [accepted]: Curves - Disable Curve Normals by default.
 * [accepted]: Fix T75694 - Compositor Backdrop boundbox missing updates.
 * [accepted]: UI - Remove panel grid snapping
 * [accepted]: Fix T76960 - fluid baking operators not working with pinned object
 * [accepted]: Outliner - Show drivers for bone visibility icon

Next Week

 * UI Patch review
 * Create design task for UI process policies.
 * GSoC/VR:
 * Create design task for VR controller API design.
 * Investigate decision regaring OpenGL vs. raycasts for picking with controllers.
 * Continue work on library overrides.

May 11 - May 17
Packed week. Plan was to focus on the bug tracker, mainly fixing. Lots of patches were coming in (partially bug fixes) so I had to spend more time on keeping that manageable than doing fixes myself. Emphasized fixes to show what I've done for the bug tracker sprint.


 * VR:
 * Investigated issue with landmark changing, but turned out to be a design issue. Commented in.
 * Checked Ubisoft's VR changes (xr-world-navigation branch) and discussed how that could affect the overlapping GSoC project.
 * Investigated a remaining code design concern of mine for and suggested ways to solve it.
 * Checked if library upgrades for the OpenXR SDK or FreeType are needed for 2.90 (see ).
 * Investigated fix for  - Windows only event system issue when changing windows. While the report itself is low-priority, its cause may have other effects, so would be good to solve.
 * Committed some changes/fixes by others (takes time from me too, since changes have to be tested and the commit message has to be written):
 * Fix : Tweak development branch splash image to exclude rounded corners (by Yevgeny Makarov, ).
 * Fix  (part 1): Missing hinting information in default font (by Harley Acheson, ).
 * Fix  (part 2): Missing hinting information in default monospace font (by Nikhil Shringarpurey, ).

Fixes:
 * Fix, : UILayout.prop_search broken for data-block names.
 * Fix : UI/Animation - Don't change Graph Editor cursor from scrubbing region.
 * Fix : Clicking the text button X in a pop-up doesn't clear.
 * Fix : Fast clicks over Dopesheet toggles trigger renaming.

Review:
 * [accepted]: Fix T76665 - Wrong files selected when using box select.
 * [requested changes]: Fix T76595: Indicate the Active Keyframe in Graph Editor.
 * [commented to suggest alternative approach]: Fix T75292 - File-select events not handled while modal handler is active.
 * [accepted & committed]: Fix T76772 - Addon: Add Camera Rigs are broken.
 * [suggested changes & accepted once addressed]: Fix T76734 - Changing Envelope FModifier controlpoints missing update.
 * [requested changes & accepted once addressed]: Preference setting for default empty size for collection instances.
 * [requested changes & accepted once addressed]: UI - List Panel System.
 * [suggested changes & accepted once addressed]: Curves - Disable Curve Normals by default.
 * [suggested changes]: Curves: Implement Handles for selected points only.
 * [accepted & suggested visual changes]: UI - Windows Shell Links & Improved Mac Aliases.

May 4 - May 10
Tried to focus a bit more on library overrides usability work. I have a much better idea of what the issues are and what we could do to address them by now. This needs to be checked on with others, so I created a design task (to collect usability issues for starters) and submitted some first patches. Besides that, mostly general development.


 * Library Overrides:
 * Submitted patch to improve "Make Library Overrides" usability.
 * Submitted patch to display library overrides in the Outliner.
 * Created design task to collect usability issues/paper-cuts
 * VR: Created feedback thread for first milestone with a list of known issues
 * UI: Gray out shortcut indicator in search menus.
 * macOS: Remove workaround for old quit dialog.
 * Some general GSoC work (organizational stuff mostly).

Fixes:
 * Fix wrong XR notifier bit value.
 * Proposed fix for : After render you want to save image, but saving window it is hidden below render windows when Blender.app in fullscreen mode (macOS)
 * exposed an issue with search menus for string properties. Created a possible fix but need to test some more (P1380).

Review:
 * [requested changes & accepted after update]: Corner styles for annotation line tool.
 * [accepted & committed]: VR - Fix OpenXR state freeze on Oculus after taking off HMD.
 * [second review pass, requested changes]: UI - List Panel System

Next Week

 * Bug tracker

April 27 - May 3
Monday was a Dutch national holiday, so this was a four day week. These were mostly spent on general UI development. Forgot in last week's planning that Friday would be a code quality day, so time was spent on that rather than more libray overrides work and bug tracker.


 * UI: Use property split layout and decorators for material properties.
 * Some UI changes in the layout generation code were needed for this:
 * Support array properties for UILayout.prop_decorator.
 * Add (internal) option to use property splitting for label-less items
 * UI Code Quality: Use derived structs for search buttons and decorators
 * VR: Attempted to fix some issues with changing base boses, i.e. landmarks in the *VR Scene Inspection* Add-on.
 * Some smaller additions to the Human Interface Guidelines (prefer to not link to this yet).
 * Investigated some library overrides issues, but needs further discussions.

Fixes:
 * Dragging panels changing region size.

Review:
 * [requested changes]: UI - Use new heading layout option to remove Text strip Shadow subpanel
 * [requested changes]: UI - List Panel System
 * [commented]: UI - Drag and Drop Modifiers, Layout updates
 * [didn't comment, same as for applies]: UI - Drag and Drop Constraints, Layout Updates

Next Week

 * Continue work on library overrides usability issues.
 * Continue Review of modifier and constraint UI changes.
 * Bug Tracker

April 20 - April 26
Various things with no particular focus: General UI, library overrides, VR, bug-tracker. Didn't have much code to commit, but did some experiments and digging into various issues.


 * Use different icon to remove user-created shortcuts in Preferences.
 * Submitted proof of concept patch for text wrapping support in labels.
 * Small default-settings tweaks:
 * Reduce near-clipping in factory settings.
 * Change default axes for Track To constraint.
 * VR: Tweaks to the add-on UI.
 * Spent time on further digging into existing usablity issues for library overrides. Also made two experimental patches for improved search menus for linked data, but don't have access to the machine they're on right now.
 * Investigated possible solutions for . Also discussed direction to take with UI font rendering within the UI team (possible improvements, checking what other apps do, different trade-offs, etc).
 * Investigated details and proposed possible solutions for.
 * Proposed solution for.

Fixes:
 * : Fix missing Outliner selection syncing on "Select Hierarchy".
 * Fix utterly wrong decorator button logic.

Next Week

 * Review patches for modifier and constraint UI changes.
 * Continue work on library overrides usability issues.
 * General UI
 * Bug Tracker

April 13 - April 19
General UI development for the 2.83 release and getting the layout system changes ready for master (the famous last 10%...).


 * Better split layout for checkboxes:
 * Committed to master on Friday
 * Reduce padding around checkboxes
 * Don't use split layout for operator properties if all are checkboxes (looks broken otherwise, )
 * Final fixes and polish for the commit.
 * Support using property split for menu items & use for output FPS setting
 * Draw real node sockets for node-input buttons and left-align them.
 * Resources: Remove small splash screen image variant.
 * Investigated and removed old hacks for dynamic scrollbar hiding, see fixes below.
 * Discussions, chats or meetings on various UI topics.
 * Bug tracker

Fixes:
 * : Scroll-bar glitch in Preferences when clicking on check-boxes.
 * : Use after free when merging specific areas.
 * : Modifiers disappearing from UI.
 * : Unexpected behavior when using drag & drop after "Select Hierarchy".

Review:
 * [accepted & committed]: Automatically scale splash screen image
 * [made minor edits, accepted & committed]: Avoid manual right-alignment of text in splash screen
 * [made edits, accepted & committed]: Round splash image corners according to theme preferences
 * [accepted]: Toolsystem - Fix error for groups with diffrent amount of tools between modes

Next Week

 * Library overrides UI, see and.
 * Bug tracker classification and fixing.

April 6 - April 12
Only worked on general UI developemt tasks. That mainly is, layout system changes, first changes for library overrides and some bug fixing.


 * Better support for linked data-blocks in search buttons . Important for library overrides.
 * Changes to checkbox layouts and the general property split layout :
 * William Reynish and I planned to work on this for a while. It has quite an impact on readability and allows further polish all over the UI. Plus it's relevant for some modifier design changes currently in progress.
 * What seems like a relatively simple change needs quite some fine tuning since it will affect many parts of the UI. There are also some further tweaks enabled by this.
 * William went over layout definitions and updated them based on my work.
 * Also applied some of these changes to the modifier branch, mostly as examples for William and Hans Goudey to follow.
 * Checked alternative approach for (Rounding the corners of the splash image according to the theme preferences - WIP patch is attached there). Would need more work but we decided it's not really worth it.
 * General bug tracker work.

Fixes:
 * : Crash on deleting current workspace from the outliner.
 * (high priority): Crash when changing active keying set. This one was quite nasty and took some time. Turns out there were actually three bugs.

Review:
 * [accepted]: Compositor backdrop gizmo dragging interrupts with node mouse over
 * [rejected]: Fix T75203 - Crash when changing active keying set

Next Week
BCon3 is coming, so I should spend some more time on the tracker. Other than that regular UI development, esp. for library overrides.
 * Bug tracker classification and fixing.
 * Library overrides UI, see and.
 * Finish checkbox layout changes and submit for review.

March 30 - April 5
Focus was wrapping up the VR work, so I mostly did some final polish.


 * VR:
 * First days of the week, I worked on improving base pose management - right now we do it all on the Blender side, but there should be a way to let the OpenXR runtime know about it, so it can do fine tuning. This turned out to be quite a hassle and I didn't get it to work entirely. After lots of back and forth I mostly got it to work, but then there were differences between runtimes. So my conclusion is that the OpenXR specification doesn't cover this case sufficiently.
 * VR Scene Inspection add-on: Add manual link and increase version number
 * Refactored DirectX context management.
 * Smaller fixes
 * Code cleanup day:
 * Continue work to change naming conventions of high-level UI types
 * Split up Window-Manager VR file (and related changes).
 * UI: Support split property layout for pointer search buttons.

Fixes:
 * Fix accidentally reverted changes in VR merge due to merge error

Review:
 * [accepted]: Utils - add option to format only changed files to make format.
 * [gave design feedback]: bRemove Version from Footer.
 * [requested changes]: Synchronizing editors between workspaces.
 * [gave design feedback]: Use menus for operator search & various improvements.

Next Week
Next week I'll stop further VR development (bug fixes may still come) and move on to library overrides.
 * First changes for the library overrides UI, see and.
 * UI Patch review
 * Bug tracker classification

March 22 - March 29
Time was mostly spent on the patch tracker. The UI patch backlog is shrinking slowly. At least in my queries they all fit on a single page now :)


 * Gave feedback on some GSoC project proposals. E.g. https://devtalk.blender.org/t/gsoc-20-virtual-reality-controller-input-interaction-support-proposal/12222/ and https://devtalk.blender.org/t/gsoc-2020-multi-properties-editing/12266. For other projects this happened through private communication channels.
 * Checked on the VR scene scale option (made a quick implementation), but I'm still not convinced it's really needed. Needs more user feedback.
 * Tweaks to the VR related manual entries.
 * Checked over UI patch backlog and found some older patches to be closed or abandoned.
 * Updated an old patch of mine, : Fix Node Editor undo glitch after adding node.

Fixes:
 * Fix VR viewer offset on session start with no positional tracking.

Review:
 * [committed]: Theming colors and size of background (transparency) checkerboard pattern.
 * [accepted & committed]: Fix missing grid theme option for Movie Clip Editor.
 * [accepted & committed]: Fix : Scrolling doesn't work in menu if there is no active item.
 * [requested changes & accepted later]: UI: 3D Viewport text edit menus.
 * [requested changes]: Dialog Alert and Info Editor Icon Colors.
 * [commented]: Don't draw icons if the widget is too small.
 * [suggested changes, accepted later]: VSE: don't allow strip preview when clicking on the scrubbing region.
 * [sugested changes & accepted]: VSE: don't allow strip preview when clicking on the scrubbing region.
 * [requested changes]: Region "Hover" Refactor.
 * [accepted]: UI: Add missing operators to menus in the 3D Viewport Mesh Edit mode.

Next Week

 * Again: Work on the remaining tasks for the first VR milestone.
 * More patch review
 * Bug tracker

March 16 - March 22
This week was all about merging the VR patches. With success!


 * During review, it was suggested to change the way we manage VR view shading. We discussed this in and in the Blender chat, and came to a conclusion which I implemented.
 * VR finally landed on Tuesday. That is, the main VR patches.
 * Overall the merges seem to have gone smooth. Of course there were a few things to fix, but they were all small and mostly build system issues on specific platforms.
 * Contacted the informal "VR team" to let them know about the merge and discuss further steps. There's no new, non-public info there yet. This is just an informal poke that should be followed up by public records.
 * Documentation:
 * Last week's report didn't schedule documentation work for this week, which was an oversight. I spent quite some time on this.
 * Took some time to write informative commit messages (esp. for ). They should give other developers enough context to reason about changes.
 * Release notes: Created an own page for VR.
 * Manual: Added entries for the new VR add-on and HMD usage. The latter is essentially the getting started guide to refer users to.
 * Developer Documentation: Updated developer documentation I wrote early and moved it to the more official developer docs.
 * Joined the Bender Everyday livestream on Friday to talk about the VR project!

Fixes:
 * Fix BPY enum property definiton failing if items contain spaces.

Next Week
I'd like to catch up with things that I neglected a bit in favor of getting VR in:
 * Patch review
 * Bug tracker classification
 * Feedback on GSoC proposals and helping students to get started.
 * Work on the remaining tasks for the first VR milestone.

March 9 - March 15
Lots and lots of polishing for the VR patches. Unfortunately, I didn't get them in yet because the back-and-forth for the review takes more time then I hoped. The last patch for C-side changes is also less contained and had less time for polish, so it needed more work than earlier patches. But: We're really close!


 * VR:
 * Finally decided to look into why Eevee rendering is so unusable in VR, while waiting on review by other devs. Turns out this was a very simple to fix issue. Now Eevee works surprisingly well! Honestly I didn't expect it to work that well.
 * A number of bigger, or at least non-trivial refactors
 * Lots of cleanups and smaller fixes
 * Created patch : Allow WM-reports to be displayed as popups (wanted for VR)

Fixes:
 * : Crash when scrolling viewport shading pop-up
 * Fix failing assert because of invalid region coordinates

Review:
 * [accepted]: Drag & Drop on panels in 3d view behaves unexpectedly.

Next Week

 * Still: Get remaining VR patches into master!
 * Patch review
 * Work on the remaining tasks for the first VR milestone.