Add-In Manager enables you to easily build and re-build Add-In files, manage versions of an add-in over time, directly access source files, and have extra customizations for your add-in. Now with version 2.0 of Add-In Manager, you can control your entire JSL application development life-cycle now that you can deploy your add-ins out to your users directly from Add-In Manager!
The fundamental feature of Add-In Manager is the ability to build a JMP add-in file directly from source files. This feature was initially included in my Custom Add-In Builder add-in and Add-In Manager has taken the basics of that add-in and improved upon it.
With version 2.0 of Add-In Manager, you can now deploy (or push) add-ins out to your users directly from Add-In Manager. You can deploy to a TEST location for your users to test out your add-in and you can also deploy to a PROD location.
When deploying to PROD, a JSL script with an Associative Array is automatically updated with the latest publish date/time. This Associative Array can be used by an auto-generated 'updateCheck.jsl' script that can compare the build date of the user's add-in to the build date according to the Associative Array. If a newer version of the add-in is available, the user will see the following window, where they can choose to update to the latest version. This concept using an Associative Array to check for updates was adapted from @brady_brady's method of using a table with publish dates. This method is described in @Jeff_Perkinson's post How to write self-updating JMP add-ins.
Add-In Manager has the ability to automatically keep a version history of an add-in file each time a new one is built. It allows you to install, restore, or delete a previous version of an add-in. You can optionally include a comment for each build so you can keep track of what changes went into each version.
Add-In Manager allows you to make a few customizations to your add-in that previously required manual changes to XML. Below are the extra customizations available in Add-In Manager.
On the Files tab within Add-In Manager, you can open files in your source folder directly from JMP by double-clicking on the desired file in the table.
With Add-In Manager version 2.0, you can create your own custom metadata in addition to the metadata automatically included and managed by Add-In Manager.
From the Installed tab, you can enable, disable, or register installed add-ins as well register add-ins that are not installed.
This add-in is supported on Windows and Mac operating systems with JMP 13 or higher.
Add-In Manager, Part 1: Defining and building a JMP add-In
Add-In Manager, Part 2: Deploying auto-updating add-ins to users
Add-In Manager, Part 3: Advanced customization
Version 1.1-1.3 (October 16, 2017)
Version 2.0 (November 22, 2017)
Version 2.1 (February 26, 2018)
Version 2.2 (March 8, 2018)
Version 2.3 (April 6, 2018)
Version 2.4 (January 9, 2020)
Version 2.5 (February 5, 2020)
Version 2.6 (June 4, 2020)
Version 2.7 (June 10, 2020)
Version 2.8 (September 24, 2020)
Version 2.9 (February 4, 2021)
Version 3.0 (January 18, 2022)
Version 3.1 (March 4, 2022)
Version 3.2 (September 25, 2023)
Let me know if you find any issues!
Current Version=3.2
2.9
I'd like to roll out bug fixes, updates, and new features to my addin. I think I found one of the problems. When I look at the customMetadata.jsl, the "state" is "DEV", not "PROD" as required by updateCheck.jsl. This may sound silly, but I don't know how to get it to PROD without manually updating the jsl, which I hope to avoid. For my addin, I've built, then deployed (PROD) and finally installed (PROD). I don't know what more I can do to change it with the addin manager.
After reading through the help doc for the addin, it doesn't seem like the method you're using to update your addin is listed. When you say version control, do you mean a folder that not only contains the updated code, but also the updated customMetadata.jsl and other files that are generated with the addin manager?
Even more curiously, when I look in my PROD folder, in my Source folder, the publishedAddins.jsl does contain the addins I've been attempting to update. The Archive folder I have also has addins archived, but when I go to the addin menu of JMP and click on my addin, no message pops up that a new version of the addin is available. It's stuck at the first version I published. I'm obviously misunderstanding multiple things about this entire process.
@StarfruitBob
Deploying PROD is as easy as the drop down when you deploy the addin. You can build the addin, which puts it as DEV .. then you can deploy the addin as TEST or PROD which updates the custommetadata file for you.
the PROD deployment also will update the publishedaddins file... set up in the table when you set up your DEV, TEST, and PROD folder locations.
THe updatecheck script should use the addin date of the PROD, loaded, custommetadata file (local addin) and compare it to the publishedaddins file which will have the most current build date of the addin. If the most current build date of the addin is newer than the date of the installed addin, the user should be prompted to update.
I know my infrastructure required some additional work to make sure all the points lined up (file location access, etc), but i think the PROD depolyment may solve most of the issues for you.
I think deploying to PROD is one of the problems as we both suspect. I just tried to build another version of my addin and after building it, I noted that the customMetadata.jsl did indeed have "state" = "DEV", I then exited that window. When I selected this new version of the addin from the main development window of the addin manager, then deployed it to PROD, customMetadata.jsl still stated that the addin was in DEV.
To test this more, I manually changed the state from DEV to PROD for the new version of the addin, saved, and then clicked on my addin from JMP's addin menu. The addin didn't prompt me to update. This indicates to me there's something else I'm missing.
I checked my addin code to make sure the update checking section of code to add was out of date and using an old addin ID. I updated it and then check on customMetadata.jsl to see if any changes were made. state = DEV again, even though I deployed to PROD. Okay..
New version test: updated unique ID and minor text, but easy to see in the addin. Made sure update checking section of code was inserted and updated to match unique addin ID. Built addin. Deployed to PROD. Metadata file still says deployed to DEV….
Recap:
Hmmm....
It might be worth a fresh start with addin manager and update to fresh folders with no deployment vestiges.
Typically I click the Build button which creates everything in DEV ... then i can click the deploy button and click PROD and it will create the addin in my Production folder and the the metadat within the .jmpaddin says PROD as well as the publishedaddin file is updated with the builddate of that deployment.
Here's what I've done @nathan-clark @Justin_Chilton
Any tips?
@StarfruitBob
Hmmm... I'm out of ideas. I'll have to pass it off to @Justin_Chilton
@Justin_Chilton How does the Addin Manager store the settings?
Can I export them and send them to a colleague?
Is it save to install an updated version of Addin manger - or will this reset the settings?
@Justin_Chilton I'm a fan of the Add-In Manager! I've been building add-ins and menu structures with it for the past three years already. Recently, I've run into issues with JMP 17+ - in short: if I create a new blank add-in and a custom top-level menu in the add-in manager, then one or more submenus and click save, upon saving all the submenus disappear except the top-level menu item. This used to work flawlessly in JMP 14, 15 and 16. Is there something I'm doing wrong or a compatibility issue with JMP 17 - the log shows no errors.
I'm on AIM v3.1, Windows 10 Enterprise and JMP Pro 17.1.0
Same problem here
@hogi, the preference file for Add-in Manager is at these locations.
On Windows:
%APPDATA%\SAS\JMP Add-In Manager\AM.PFS
On Mac:
~/Library/Application Support/JMP Add-In Manager/AM.PFS
Thanks @Justin_Chilton for the file pathes - and for fixing the issue with V3.2
Are there plans to support Toolbars in a future release?
@Justin_Chilton thank you for the v3.2 - it resolved the issues I had & works as it used to
Thanks!
Hello @Justin_Chilton ,
Thank you a lot for your add-in which is life-saving !!! However, I just have a question:
I have an add-in that I deploy and maintain at a customer site with dozens of users. This customer has the google suite, so I drop the new version each time on a google Drive, and the users have to retrieve this new version each time to update. We all agree that this is very time-consuming, not optimized and a source of errors if the user forgets. I'd seen you "Add-in Manager" add-in and I wanted to use it, but I have to specify a PROD folder to which all users must have access. Usually it's a shared folder... But I've asked IT and it's not possible to create a shared folder for all these users. The PROD folder must correspond to the web address of the google drive directory where I traditionally store versions. Is it possible to adapt Add-in manager to have a web address at the base of a shared folder?
Where is the download for this please?
Some of the add-ins have been moved to JMP Marketplace and it definitely isn't clear... you can get this add-in from here Add-In Manager (at least I assume it is the same one).