View Single Post
09/22/18, 04:21 PM   #19
zgwortz
Join Date: Jun 2015
Posts: 23
Originally Posted by sirinsidiator View Post
This happens a lot more often than you think, since most addon authors aren't professional programmers with years of experience, and even then it happens. "Upgrading" libraries the old LibStub way is very complicated and if you messed up in some old version of it, it will cause unexpected and unfixable bugs for years, since the old version won't just disappear in most cases. Using the new facilities that the game offers, ensures that only one version of the addon is loaded into memory, which avoids this problem entirely.
Possibly. I'm well aware that many addon programmers don't have the experience to do libraries right, but that lends itself more to an argument that we need better library programming practices instead of poorer addon programming practices.

One fairly easy solution would be to make sure that all libraries have a current maintainer who is responsible for updating at least the version numbers with every API release. If all the out of date libraries (including LibStub) had current API versions, nobody would have to enable Out of Date addons. I would then find it useful for Minion to be updated to have a dependency mechanism - if Addon A needs Addon B (a library, or other addon), it would automatically install Addon B if and only if Addon B is not Out of Date for the current API version. By making Minion require a dependency to be up to date, it encourages the addon author to seek out the library maintainer and request an update, instead of propagating the problem.

Another solution (fairly common in the wider world of software, but perhaps more complex than ZOS and/or addon developers would want here...) would be for ZOS to establish a certification mechanism which would it allow it to load an addon automatically for a given API version. Certs would be generated through testing on PTS - run your addon without triggering UI errors and it will generate a cert file. Certs could be uploaded to ESOUI without requiring a new addon update, and Minion would install the most recent Cert (if any) with the addon. (In addition to helping the library problem, this would also be a boon to other addon developers who wouldn't necessarily need to update the addon package file when a new API is released - they simply upload a new Cert.)

There are lots of other possible solutions. My desire isn't to force people to do things necessarily the old way - I'm just trying to avoid a new approach which is actually worse.
  Reply With Quote