How do people manage versioning their PiPLs?
I asked this in the general forum initially but this is a more appropriate place. It's mind boggling how difficult it is to find the forums for these software packages to the casual participant.
I have a pair of plugins that I maintain for an enterprise application. These plugins are released alongside the external applications for which they're developed. A new version of the plugins is released every six months or so, and many users have several versions of the plugins installed at the same time so that they can just pick and choose based on the version of the other apps they're targeting.
This was all well and good, until After Effects CC 2019. Now, only the first plugin alphabetically gets loaded. The others are completely ignored as far as I can tell; the EntryPointFunc isn't called. The contents of the PiPL file aren't terribly well documented (at least, not in the AE SDK Guide PDF), it just sort of vaguely says "there's stuff in there but don't worry about it just use one from the sample code." It even goes so far as to wrap the section up with "Why do I need to know all of this? You don't..."
So basically my users are screwed. Going forward I guess I can try to implement something in here which does stuff to do things but... What do I do? What does the "Version" mean? How should I update these files so that multiple installations of the same plugin works? The plugin installers already tag the installation plugin names with the version, e.g. MyPlugin-1.0.aex, MyPlugin-1.1.aex, etc. (It doesn't really matter but they're actually symbolically linked into the Plug-ins folder from elsewhere.)
My preference would be for Adobe to revert this "new intelligence which skips loading plugins that might already be loaded" check since it cannot actually be accurate ever (since it's based on alphabetic order). My next preference would be for this file to be documented or have a reference to where to find that documentation in the PiPL section of the AE SDK Guide.
Here's my PiPL, for all of the plugins:
#include "AEConfig.h"
resource 'PiPL' (16000) {
{ /* array properties: 7 elements */
/* [1] */
Kind {
AEGP
},
/* [2] */
Name {
"MercuryAEExport"
},
/* [3] */
Category {
"General Plugin"
},
/* [4] */
Version {
196609
},
/* [5] */
#ifdef AE_OS_WIN
#ifdef AE_PROC_INTELx64
CodeWin64X86 {"EntryPointFunc"},
#else
CodeWin32X86 {"EntryPointFunc"},
#endif
#endif
}
};
