Extension Compatibility - Who is responsible?

Not sure if the is the right Category for this discussion - but that is why it is a question to the forum !

Every annual upgrade I roll over my 35 or so free and purchased plugins into the new version…

When reinstalling from the Extension Warehouse I get a warning on many of them


This warning is really frustrating to the millions of SU users every year

Surely we can have a more positive statement about a extensions compatibility than “maybe”

Is it the millions of users responsibility to individually confirm compatibility?

Is it the 100’s of developers responsibility to confirm compatibility?

Is it Trimbles responsibility to confirm compatibility?

Is there a dedicated team reviewing plugin compatibility?

Who marks an extension as compatible?

In what timeframe is this extension review done?

Is this warning just a legal protection and really nothing is being done to confirm compatibility?

I don’t know about other users but I cannot afford to have downtime with an unstable software

yet also need the extensions I have been using for years.

Surely there is a more proactive way of handling extensions?

It’s the developer that marks the extension as compatible but I’m not sure to what degree you can hold the developer responsible for doing so. If someone develops an extension, e.g. as a hobby, and then simply don’t have the time or interest to test it for all new versions, or die, then you can’t really force them. If publishing an extension came with requirements of updating it I think fewer people would want to do it. That said, in my experience most developers seem to mark there extension as compatible. I mostly see this message for extension written eons ago by someone no longer active in the community.

The message is not just a legal requirement. Extensions that uses compiled code need to be recompiled for each new Ruby version. Extensions written in pure Ruby should be compatible, but aren’t always as some developers use hacks that no longer works in newer SU versions.

I think warning the user the extension might not work but still let the user try anyway is a quite reasonable approach. Perhaps there could be a link to a help article describing what extensions typically are compatible and what typically are not.

1 Like

thanks for the explanation Christina… nevertheless it all seems a bit hit or miss…

for example… I was just watching one of Aarons (Sketchup Aaron that is) recent great sketchup videos

recommending some useful extensions only to be flagged with

that warning on installing… they may cause problems…

maybe its only me who sees the irony of SU recommending something that may cause problems?

and the lack of corporate responsiveness from Trimble in being more proactive in ensuring compatibility…

they certainly are commercially advantaged by the huge effort developers put into preparing their extensions

and making many free to their customers.

Surely it would be possible with all of Trimble’s resources to set up a small team

to test compatibility of extensions offered in their warehouse after each release for the benefit and

confidence of the millions of customers using their product or at least add a user feedback section

to the warehouse where compatibility feedback can be flagged?

PS… this is not a dig at Aaron… love his videos :slight_smile:

The linked video is from 2017 so Aaron couldn’t know if the extension would later be marked as compatible with SU 2018 or 2019.

I’m not sure how Trimble would be more proactive in ensuring compatibility. Changes to the Ruby API are very carefully designed to avoid breaking compatibility and when it does it is typically because extension developers used the API in a way that was never intended, which is discouraged. Updating the Ruby version requires compiled Ruby extensions to be recompiled, there isn’t really any way around it and holding on to an old Ruby version would cause other issues.

I don’t know if its worth it to put resources into manually checking the hundreds of extensions. Staff with the technical know-how would probably do more good in say support. There has been some thoughts about automatically check what extensions are compatible by seeing if they use complied code, but that wouldn’t catch pure Ruby extensions that for other reasons are incompatible (hacky code, conceptually clashes with new features etc). In the end such a system could probably just tell you how likely an extension is to work in your SU version, and I’m not sure if it is helpful for the end user to see or just raise more question about what such a value means, how it was calculated and how to interpret it.

Even pure Ruby extensions are not always compatible, because SketchUp also upgrades the version of Ruby, and Ruby is not always retro-compatible. For instance:

  • Ruby 2.0 removed the method Array::nitem
  • Ruby 2.5 removed the class Fixnum

That happens in rare cases too, which makes it harder to automatically check compatibility. Sure static code analysis could catch a lot of these but then such a system itself would need to be updated each time something new is removed.

It is the developer’s responsibility (and choice) to support newer and/or older versions of sketchup. Simple.

1 Like