Extensions Platform: Initial user interface #117285

Closed
opened 2024-01-18 15:34:48 +01:00 by Dalai Felinto · 14 comments

I updated the mockup to accomodate Pablo's feedback:

image

Repositories Menu:

image


Old mockup

This is a temporary (yet shippable) solution for the extensions interface.

image

image

Details:

  • When installing a new extension, it is enabled.
  • Although we can support installing/removing all extensions, the enable/disable (for now) is only for add-ons.

Extensions:

  • "Install from Disk", and "Check for Updates" go to the cog menu in the Extensions tab.

Add-ons:

  • No more official/community/testing, install and refresh
  • No more showing category on the headers (there are no categories for extensions).
I updated the mockup to accomodate Pablo's feedback: ![image](/attachments/64f787f4-e656-4caf-b46c-124d8cdf4842) Repositories Menu: ![image](/attachments/e6fc506b-9881-4482-a4ec-dff98f74122a) ------------- <details> <summary>Old mockup</summary> This is a temporary (yet shippable) solution for the extensions interface. ![image](/attachments/ad9310e7-1d55-4620-9430-d324c00b765c) ![image](/attachments/90e08fe3-71b2-4254-9953-46b571e46d05) </details> Details: * When installing a new extension, it is enabled. * Although we can support installing/removing all extensions, the enable/disable (for now) is only for add-ons. Extensions: * "Install from Disk", and "Check for Updates" go to the cog menu in the Extensions tab. Add-ons: * No more official/community/testing, install and refresh * No more showing category on the headers (there are no categories for extensions).
Dalai Felinto added the
Type
To Do
label 2024-01-18 15:34:48 +01:00
Dalai Felinto added this to the Python API project 2024-01-18 15:34:50 +01:00

Committed:

Currently there is no "Install to Disk" implemented for extensions, but that will be added.

Closing as complete.

Committed: - a1761b7c8c697cd1a9ec19a9347fe17a70f9dcb8 - https://projects.blender.org/ideasman42/bl_pkg/commit/2705981c6e84f8ccd7c85c4a89d993dd87904d4c Currently there is no "Install to Disk" implemented for extensions, but that will be added. Closing as complete.
Blender Bot added the
Status
Archived
label 2024-01-22 08:03:59 +01:00

Re-opening, some issues remain.

Re-opening, some issues remain.
Blender Bot added
Status
Confirmed
and removed
Status
Archived
labels 2024-01-22 11:34:34 +01:00
Author
Owner

Some of the remaining issues:

  • "Installed" text could be centralized to match the "Install" button (and drawn in gray instead of white)
  • Extensions tab should be closed by default
  • Categories still being used at the Add-on name (e.g., "Generic: Blender Kitsu")
  • Missing cog to go from extensions to the extension settings
  • We still show communuity/testing/... in the menu (and in their icons)
  • Missing "Update" button when there is a possible update for an extension
  • "Extension Repositories" to be renamed to "Repositories"
  • When seeing more details about an extension, I would call "Repo", "Repository" (turned between using a URL or a name there, but so be it)
  • We could probably also only show that line if there is more than one Repository enabled.
Some of the remaining issues: * [X] "Installed" text could be centralized to match the "Install" button (and drawn in gray instead of white) * [X] Extensions tab should be closed by default * [X] Categories still being used at the Add-on name (e.g., "Generic: Blender Kitsu") * [X] Missing cog to go from extensions to the extension settings * [x] We still show communuity/testing/... in the menu (and in their icons) * [X] Missing "Update" button when there is a possible update for an extension * [X] "Extension Repositories" to be renamed to "Repositories" * [X] When seeing more details about an extension, I would call "Repo", "Repository" (turned between using a URL or a name there, but so be it) * [X] We could probably also only show that line if there is more than one Repository enabled.

Completed the TODO's except for one.

We still show communuity/testing/... in the menu (and in their icons).

While I've removed the support level in the UI, removing this from the filter UI means we have to make a decision for how they are accessed.

Completed the TODO's except for one. > We still show communuity/testing/... in the menu (and in their icons). While I've removed the support level in the UI, removing this from the filter UI means we have to make a decision for how they are accessed.
Author
Owner

While I've removed the support level in the UI, removing this from the filter UI means we have to make a decision for how they are accessed.

We can treat all these add-ons as bundled add-ons for now. They cannot be updated/removed, but can still be enabled/disabled.

That does mean the list of add-ons will be loooooooong, but we ignore this for now, until we can offer them via the extensions web-site.

That means the "category" and the "support" level could be removed (when the experimental option is on).

> While I've removed the support level in the UI, removing this from the filter UI means we have to make a decision for how they are accessed. We can treat all these add-ons as bundled add-ons for now. They cannot be updated/removed, but can still be enabled/disabled. That does mean the list of add-ons will be loooooooong, but we ignore this for now, until we can offer them via the extensions web-site. That means the "category" and the "support" level could be removed (when the experimental option is on).
Author
Owner

Updated UI mockup with integrated extensions installing and settings:

image

As an incremental step we will try to have this version in before we consider the approach of separating installing/remove/update in their own editor, and settings/enable/disable in user preferences.

Updated UI mockup with integrated extensions installing and settings: ![image](/attachments/d9692561-aa3a-4aab-a5e5-f3633e8575d0) As an incremental step we will try to have this version in before we consider the approach of separating installing/remove/update in their own editor, and settings/enable/disable in user preferences.
Author
Owner

Just for the records (and so I can include the images on my weekly report, these were the visual explorations for what could be a more rich Extension editor in Blender.

Just for the records (and so I can include the images on my weekly report, these were the visual explorations for what could be a more rich Extension editor in Blender.
Member

Just writing down the outcome of our in-person discussion:

  • Move repositories into a popover (opened by the gear icon)
  • Panel-less list of extensions
  • New dropdown button in the header, with operators (e.g. Install from Disk, Install from Clipboard)
Just writing down the outcome of our in-person discussion: * Move repositories into a popover (opened by the gear icon) * Panel-less list of extensions * New dropdown button in the header, with operators (e.g. `Install from Disk`, `Install from Clipboard`)
Author
Owner

I updated the mockup to accomodate Pablo's feedback:

image

Repositories Menu:

image

I updated the mockup to accomodate Pablo's feedback: ![image](/attachments/64f787f4-e656-4caf-b46c-124d8cdf4842) Repositories Menu: ![image](/attachments/e6fc506b-9881-4482-a4ec-dff98f74122a)

Regarding "Install from Clipboard". Maybe that is not a permanently visible button, but rather a popup asking, "Install Blender Kitsu add-on from extensions.blender.org?". Or something non-blocking but still prominent.

That way a user doesn't necessarily even have to open the preferences in the right place, and it's more convenient. The potential issue is that inspecting the clipboard may not be very efficient if there is a lot of text on it, even if it only happens on the Blender window gaining focus.

Regarding "Install from Clipboard". Maybe that is not a permanently visible button, but rather a popup asking, "Install Blender Kitsu add-on from extensions.blender.org?". Or something non-blocking but still prominent. That way a user doesn't necessarily even have to open the preferences in the right place, and it's more convenient. The potential issue is that inspecting the clipboard may not be very efficient if there is a lot of text on it, even if it only happens on the Blender window gaining focus.

Regarding "Install from Clipboard". Firstly, drag&drop a URL is likely to be the most convenient way to install extensions from a browser, it's a quick explicit action which I suspect would be the more common way of installing extension from a website.

Given that, I'd be wary of clipboard auto-detection (even if could be efficient), because any false positives are going to be annoying. It might even be that the user has two Blender's open... then gets the popup in both... or has to manually copy some text to clear the clipboard to stop the popup from running. Some false positive popups could be prevented by inspecting installed extensions but this has the opposite problem that in some cases auto-detecting might seem to be broken.

For an initial implementation I think it's enough that the clipboard is used to auto-fill the text for an operator, I've used some RSS readers that do this and found it convenient enough.

Regarding "Install from Clipboard". Firstly, drag&drop a URL is likely to be the most convenient way to install extensions from a browser, it's a quick explicit action which I suspect would be the more common way of installing extension from a website. Given that, I'd be wary of clipboard auto-detection (even if could be efficient), because any false positives are going to be annoying. It might even be that the user has two Blender's open... then gets the popup in both... or has to manually copy some text to clear the clipboard to stop the popup from running. Some false positive popups could be prevented by inspecting installed extensions but this has the opposite problem that in some cases auto-detecting might seem to be broken. For an initial implementation I think it's enough that the clipboard is used to auto-fill the text for an operator, I've used some RSS readers that do this and found it convenient enough.

From the current proposal:

Although we can support installing/removing all extensions, the enable/disable (for now) is only for add-ons.

Last week the topic of removing extensions came up in a meeting with Dalai and we agreed to allow removing extensions from the UI, the rationale is:

  • It's possible to install an extension from disk, so not having a way to remove it means users are forced to do so by navigating the file-system.
  • Extensions are located in Blender's user directory (by default), which isn't so easy to locate/access depending on the OS.
  • Add-on users have been able to install and remove add-ons, something which has been working for years, preventing users from removing extensions seems like removing functionality.
  • If accidentally removing extensions for repositories that don't reference a remote URL is a problem, we could support setting the repository read-only.

We could make the UI clarify that this is an irreversible action, an additional confirmation could be used for instance.

From the current proposal: > Although we can support installing/removing all extensions, the enable/disable (for now) is only for add-ons. Last week the topic of removing extensions came up in a meeting with Dalai and we agreed to allow removing extensions from the UI, the rationale is: - It's possible to install an extension from disk, so not having a way to remove it means users are forced to do so by navigating the file-system. - Extensions are located in Blender's user directory (by default), which isn't so easy to locate/access depending on the OS. - Add-on users have been able to install and remove add-ons, something which has been working for years, preventing users from removing extensions seems like removing functionality. - If accidentally removing extensions for repositories that don't reference a remote URL is a problem, we could support setting the repository read-only. We could make the UI clarify that this is an irreversible action, an additional confirmation could be used for instance.

I don't think I've ever used either drag & drop or a clipboard from a browser this way. So regardless if it's with clipboard or drag & drop, I guess there can be something on the website clearly explaining it, like you click something and it opens a popover explaining how to do it.

I don't think I've ever used either drag & drop or a clipboard from a browser this way. So regardless if it's with clipboard or drag & drop, I guess there can be something on the website clearly explaining it, like you click something and it opens a popover explaining how to do it.
Author
Owner
Closing this task for now. The remaining tasks are split into: * [Extensions Platform: Repositories - initialization and "Add" pop-up](https://projects.blender.org/blender/blender/issues/117840). * [Extensions Platform: User Interface - Checkboxes, parenthesis and SPDX](https://projects.blender.org/blender/blender/issues/117841). * [Extensions Platform: Install via Drag and Drop](https://projects.blender.org/blender/blender/issues/117843).
Blender Bot added
Status
Archived
and removed
Status
Confirmed
labels 2024-02-05 13:10:43 +01:00
Sign in to join this conversation.
No Label
Interest
Alembic
Interest
Animation & Rigging
Interest
Asset Browser
Interest
Asset Browser Project Overview
Interest
Audio
Interest
Automated Testing
Interest
Blender Asset Bundle
Interest
BlendFile
Interest
Collada
Interest
Compatibility
Interest
Compositing
Interest
Core
Interest
Cycles
Interest
Dependency Graph
Interest
Development Management
Interest
EEVEE
Interest
EEVEE & Viewport
Interest
Freestyle
Interest
Geometry Nodes
Interest
Grease Pencil
Interest
ID Management
Interest
Images & Movies
Interest
Import Export
Interest
Line Art
Interest
Masking
Interest
Metal
Interest
Modeling
Interest
Modifiers
Interest
Motion Tracking
Interest
Nodes & Physics
Interest
OpenGL
Interest
Overlay
Interest
Overrides
Interest
Performance
Interest
Physics
Interest
Pipeline, Assets & IO
Interest
Platforms, Builds & Tests
Interest
Python API
Interest
Render & Cycles
Interest
Render Pipeline
Interest
Sculpt, Paint & Texture
Interest
Text Editor
Interest
Translations
Interest
Triaging
Interest
Undo
Interest
USD
Interest
User Interface
Interest
UV Editing
Interest
VFX & Video
Interest
Video Sequencer
Interest
Virtual Reality
Interest
Vulkan
Interest
Wayland
Interest
Workbench
Interest: X11
Legacy
Blender 2.8 Project
Legacy
Milestone 1: Basic, Local Asset Browser
Legacy
OpenGL Error
Meta
Good First Issue
Meta
Papercut
Meta
Retrospective
Meta
Security
Module
Animation & Rigging
Module
Core
Module
Development Management
Module
EEVEE & Viewport
Module
Grease Pencil
Module
Modeling
Module
Nodes & Physics
Module
Pipeline, Assets & IO
Module
Platforms, Builds & Tests
Module
Python API
Module
Render & Cycles
Module
Sculpt, Paint & Texture
Module
Triaging
Module
User Interface
Module
VFX & Video
Platform
FreeBSD
Platform
Linux
Platform
macOS
Platform
Windows
Priority
High
Priority
Low
Priority
Normal
Priority
Unbreak Now!
Status
Archived
Status
Confirmed
Status
Duplicate
Status
Needs Info from Developers
Status
Needs Information from User
Status
Needs Triage
Status
Resolved
Type
Bug
Type
Design
Type
Known Issue
Type
Patch
Type
Report
Type
To Do
No Milestone
No project
No Assignees
4 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: blender/blender#117285
No description provided.