workbenchdev / workbenchdev/Workbench

Add hints / guards against silent or unclear failures

Open
#218 5 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
JavaScript
Stars
844
Forks
91
Avg merge
7h 12m
Merged PRs (30d)
1

Description

Some things fail (or crash even) silently—we should add measures to inform users and possibly prevent the rendering.

https://floss.social/@sonny/109975391706946091

I discussed with James if this belongs in Blueprint or Workbench, no clear winner. Let's start/iterate in Workbench and possibly transfer to Blueprint later.

No child allowed

crash: no
priority: high

Passing children to objects that don't accept any such as Label will not provide any feedback. It is confusing to beginners as the children don't get rendered but no explanation is given.

We should emit an error.

Label {
  label: "Hello";
  Button {
    label: "World";
  }
}

Single child allowed

crash: no
priority: high

Some widgets like AdwStatusPage, Adw.Clamp, ScrolledWindow, ... allow only one child. It doesn't error but only the last child will be rendered. It's confusing and makes the user think they did something wrong.

OK

Adw.StatusPage {
  Button {
    label: "a";
  }
}

KO

Adw.StatusPage {
  Button {
    label: "a";
  }
  
  Button {
    label: "b";
  }
}

Order of properties on Gtk.Adjustment

crash: no
priority: medium

OK:

      Scale one {
        width-request: 130;
        adjustment: Gtk.Adjustment {
          lower: 0;
          upper: 100;
          value: 50;
        };
      }

KO:

      Scale one {
        width-request: 130;
        adjustment: Gtk.Adjustment {
          lower: 0;
          value: 50;
          upper: 100;
        };
      }

https://matrix.to/#/!aUhETchlgthwWVQzhi:matrix.org/$16780187509362SfqjZ:gnome.org?via=gnome.org&via=matrix.org&via=libera.chat

ToggleButton grouped to each others

Grouping ToggleButtons to each others will render fine but will cause Workbench to freeze when clicking on one of them.

crash: yes
priority: low

KO

using Gtk 4.0;
using Adw 1;

Box {
  halign: center;
  valign: center;
  orientation: horizontal;
  
  ToggleButton button_first {
    label: "Toggle On";
    group: button_second;
  }

  ToggleButton button_second {
    label: "Toggle Off";
    group: button_first;
  }
}

OK:

using Gtk 4.0;
using Adw 1;

Box {
  halign: center;
  valign: center;
  orientation: horizontal;
  
  ToggleButton button_first {
    label: "Toggle On";
  }

  ToggleButton button_second {
    label: "Toggle Off";
    group: button_first;
  }
}

icon not found

crash: no
priority: low

https://matrix.to/#/!kDBZrVKCdhrVuWxbGe:matrix.org/$GI0tPROepvgJBYCqjapML5GqxIXxS6bHukuFrj9RttQ?via=gnome.org&via=matrix.org&via=catgirl.cloud

some references does'nt show up and are replaced by a corrupted icon which looks odd

If we detect an icon as not fund - we could show a hint to lookup the icon library in the menu

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the listed Workbench cases: unsupported children, multiple children, Gtk.Adjustment property order, grouped ToggleButtons, and missing icons. Review how Workbench currently reports or handles these examples, then define focused behavior for each case; done should mean users receive clear feedback or the problematic rendering is prevented without freezes.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript
Domain
desktop, developer-experience, devtools
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.