First time user of Builder, UX feedback

Hello all, I’m using Builder on NixOS to submit patches to a GNOME-first application.
The IDE itself is very nice, it was a pleasant surprise to find such a high-quality development environment present for GNOME devs. Magnificent work by the developers and much thanks.

However, getting started was a bit of a struggle. TL;DR list of notes at the end.

Some background info:

NixOS installs Builder in various ways, but to “get developing” on GNOME, the preferred method is via the configuration option services.gnome.core-developer-tools.enable, which installs a bunch of useful software in a bundle and enables sysprof. The astute would notice what it doesn’t do, however. That is, it doesn’t install flatpak nor flatpak-builder.

Interestingly, Builder seems to be able to pull flatpaks nonetheless, probably using an internal method which is enabled by the default Preferences > SDKs > Sources > Preferred Flatpak Installation value.

Fine and good, except that it still relies on the aforementioned binaries being in user environment. Nothing in the UI indicates this.

Here was my exploration:

Load project in Builder, accept detected SDK installs, wait till the circle indicator fills up (first note: the circle was hard to notice), click Build icon. Build failed (second note: failed with no output).

Open build pipeline, Build status Failed in red, Time is some number, try clicking greyed out steps.. why are they greyed out? Did they succeed? Did they fail? Are they unavailable? I know they’re clickable because they highlight like buttons do, but UI feedback is lacking here.

Try switching Active Configuration to Default, maybe the other config was faulty. Now I get some output, about meson not being found. However, the project’s build instructions insist I need not set up an environment, just click build.

I check the issue tracker to see if Builder builds have problems, nothing relevant, they just suggest I Update Dependencies and try Rebuild.

Maybe I can see the application logs themselves? (third note: no easy way to see what commands the IDE is running). Rerun Builder, but this time from terminal gnome-builder -v, ah! it complains that flatpak-builder doesn’t exist.

WARNING: Failed to execute child process “flatpak-builder”

Ok cool cool, so whenever I have the GNOME dev tools enabled, I should also install flatpak-builder, adjust NixOS config accordingly and try again.

Hit Build, this time I’m getting output and some steps succeed! By now I learned the elements which grey out in the pipeline are ones which succeeded. However, now it complains

Failed to init: Unable to find sdk org.gnome.Sdk version 46

What? I’m certain I saw it in the SDKs list (fourth note: no easy way to remove SDKs). Remove the sdk files under .gnome-builder and try again. Same problem.

With some searching online, I learn that the error comes from flatpak-builder (fifth note: no way to configure Builder to echo the commands it issues, no way to configure those commands to be verbose). Try to manually run flatpak-builder with verbose flags and some flags I’m guessing Builder added, that’s how I find out flatpak binary was also needed.

Adjust NixOS config again, rerun, software builds.

So these are the UX notes:

  1. the circle indicator was hard to notice, some kind of popup or animation could grab my attention to let me know I should wait
  2. Build failures can sometimes be output-free. Need more ways to diagnose.
  3. Build pipeline sidebar is a bit confusing. Can’t tell what things do without taking an action.
  4. Need access to IDE logs, or at least to the commands it runs on a build, need to be able to adjust commands, flags, etc
  5. SDKs installed via GNOME Builder should be Builder’s responsibility to clean up, some manual management is needed beyond Update button.

Some things I looked for: Graphical UI editing (e.g. with Workbench?), ability to open file in $EDITOR

Again many thanks to the devs, hope my blind experience make this software even more polished.

This looks like a Nix packaging issue. Please, raise it with the distro packagers.

The Builder documentation clearly states that you should install it via Flatpak; this guarantees that all its dependencies are available out of the box.

Yes, this is a known issue. I would recommend to install the SDKs and extensions in your user repository, instead; Builder will use them instead of downloading them to its own internal repository.

Graphical UI editing is not available; you’ll have to use an external tool, like Cambalache, for that.

Why would you use an external editor when you have a perfectly valid editor inside Builder?

Yes, we agree this issue I faced is largely a consequence of nixpkgs maintainers leaving Builder and flatpak uncoupled. It was never an intention of mine to blame Builder for this.

That said, do you consider the observations I made here invalid solely for being a consequence of something out of GNOME/Builder devs control?
What Builder devs do control is how it responds to unexpected conditions (or not-blessed setups) and helps the user debug them.
For example, do you consider the process by which I discovered the flatpak dependency acceptable? There could be other reasons why a build fails silently. Wouldn’t you say, for example, that it’s worth considering exposure and allowing editing the commands used in the build pipeline? As well as IDE logs?

The external editor is a me thing, and not to be taken as seriously as the rest of the observations. It’s just a nice-to-have. I have a nice personal editor setup and I’m more productive in it, so I was looking for a open in external editor option on the file tab menu. It makes little difference that it’s not there as I could just launch the editor from outside of Builder. Just as I would launch an external UI editing tool (though there may be something to be said here on discoverability/integration)