Hi folks, I’m looking for the best documentation or advice that can help me fully understand the process for packaging up and publishing an extension with an arguably convoluted structure. The intent is that I can distribute something that combines Generator’s pixmap access AND filesystem access and UXP’s relatively nice user experience.
With much help from the amazing resources made available by Davide Barranca and others, I have a working prototype that uses a UXP panel as a GUI for a Generator plugin, communicating back and forth via Websockets (much like the Websockets example on Github). It does everything I need, but now that I’ve started to think forward to eventually publishing I’m not sure that the Adobe Marketplace will allow me package up everything and distribute it easily (or at all).
My understanding is that the Generator plugin will need to be installed in the plugins subfolder of the built in Generator. Given that the generator plugin is running in Node, I’m also using that instance to call child processes to run another third party tool to process generated files (which would also need to be either installed locally or included in the extension). This all works in my dev environment, with the only added step being that I’m starting an independent generator process manually during development.
I haven’t done a deep dive on it yet, but my instincts tell me that publishing to the Marketplace may not allow a single extension to install in multiple contexts like this. If so, are my only options to:
- Not publish to the Adobe marketplace, and instead just sell my extension elsewhere, like Gumroad, and either include an installer script or detailed instructions for the user?
- Abandon UXP, and just go back to building it entirely as a “Generator first” plugin, and use a web browser based GUI (which I’ve prototyped, and isn’t a bad experience… the UI is more snappy for one thing)?
- Release 2 separate extensions that are each installed in their own way, but which rely on the other ALSO being installed for it to work properly?
- Standalone generator application communicating with a UXP panel maybe?
- Standalone GUI communication with built in Generator plugin?
Or some other option I haven’t considered? I find it difficult to find good documentation, even if it exists somewhere there’s a whole lot of half-baked or out-of-date documentation that gets in the way when searching and ends up leading me down the wrong path.
Perhaps I’ve made things more difficult for myself than it needs to be, have I over complicated the extension? Is there hope in the rumoured “Imaging API” that might give me direct filesystem access and allow a threaded background process to not interfere with the user’s experience? I absolutely need Generator’s pixmap access, and almost certainly need direct filesystem access, and would be nice to use UXP for the GUI, so what should I do?