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:
- the circle indicator was hard to notice, some kind of popup or animation could grab my attention to let me know I should wait
- Build failures can sometimes be output-free. Need more ways to diagnose.
- Build pipeline sidebar is a bit confusing. Can’t tell what things do without taking an action.
- 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
- SDKs installed via GNOME Builder should be Builder’s responsibility to clean up, some manual management is needed beyond
Updatebutton.
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.