So you seem a bit heated here.
Developing Gnome Shell extension is a giant waste of time
People value time differently, my experiences as an extension developer have taught me a great deal and shaped my career path. So
clarifications
Some quick clarifications…
-
Documentation is hard, and it is a moving target. We are a community-driven project, especially when it comes to Extensions. We’re compiling a lot of resources into Extensions | GNOME JavaScript and working on replacing the existing Extensions site to better support the community.
That said, searching through GNOME Shell is very possible. Classes are named in a standard way and you can follow the
imports
object. Eventually we’ll probably switch to ECMAScript 2015+ imports which will make IDE support even more friendlyNothing is “obfuscated”… this isn’t Minecraft server development.
-
Try asking questions in extensions on Matrix, we’re always happy to point people in the right direction.
-
There are some debugging tools (looking glass, for example) but realistically you’re adding JavaScript extensions onto a host application. Building “debugging” tools for that is incredibly challenging, building debugging for the Shell itself is already hard.
If you don’t want to debug on your actual shell you can open nested shells or use a VM for testing day-to-day.
-
There is no extension “API design”. You’re adding things on top of the existing GNOME Shell API design, which isn’t necessarily optimized for extensions.
Other than that most “cleanup” is actually fairly straight forward if you understand at a fairly basic level how event listeners, garbage collection, dynamic languages, etc. works. (also GObject know-how is helpful)
The rest of this commentary seems… like a very specific issue. You could (nicely) hit up the very nice people who volunteer their time to aid new extension developers… I’m fairly certain your extension could be cleaned up without massive out-of-order non-deterministic issues.
-
Part of the problem we had was people using extensions on unsupported versions, in GNOME 40 onward the Shell won’t load unsupported extensions.
We review for grievous cleanup errors, obvious leaks, very laggy code, and most importantly potential security issues.
We can’t QA beyond that given current resources (we are literally volunteers) but hey there are some really cool folks working on a “smoke test” to check that an extension can at least load without crashing the shell automatically.
-
Yeah we don’t control this, Distros which heavily modify things risk extension incompatibilities - especially if there is an extension used which doesn’t play nice with others. Fedora, Arch, and Debian provide a fairly clean experience while Ubuntu is skinned but not as heavily extended. Others like PopOS ship a very modified shell that will introduce incompatibilities.
tldr
Anyways, tldr, we’re just a bunch of nice people volunteering our time to build what we view as an amazing desktop (with extensions!). There’s always a hard balance to strike and we have limited resources.
Heated rants don’t really help the community improve, if there is specific documentation you’re missing or a specific query there are people who can help.
My two cents.
EDIT: You can find me as @ewlsh in most places now, forgot this was an older account