All information is SAS company confidential. Do not disclose.
Welcome to the JMP Development Update for May 28, 2021!
We have now passed JMP 16.1 doc freeze. PDFs and Help are in the process of being finalized and translations are being returned for various 16.1 deliverables. Thanks to everyone for helping resolve high priority items in 16.1! I am sure we will have some additional bugs reported as customers continue to adopt JMP 16 that we’ll want to fix in 16.2, but 16.1 will mark the end of documentation updates as we hand off various JMP 16.1 book content for translation into Korean, Japanese and Simplified Chinese.
JMP 17 EA1 will be branched to match next Friday evening’s build. (Yes, we do build every day of the week, although unit tests do not run over the weekend.) If any showstoppers are found in EA1 source after branching, fixes can be selectively integrated into the EA branch while new feature development proceeds on main. Please see the JMP 17 dates page for the full EA schedule. We will have two months before EA2, currently planned for 8/3/21.
Here’s an important announcement from product management about EA1:
Next week the product management team will be compiling information for the JMP 17 Single Source Document. There are some placeholders for features listed on the page, so please take a look and let Mia know if anything is missing (or if anything should be removed for EA 1). Feel free to edit the page or add a comment! And, please reach out to Mia if you’d like to record a short feature video for EA 1.
Thanks to Aaron Andersen and Evan McCorkle for presenting at this week’s JMP Dev meeting! If you missed the meeting, you can see a recording here. They shared how they have opened the door to additional automated testing options for modal host dialogs that could previously only be tested interactively. Evan presented about changes to the Hamcrest JSL framework, and Aaron shared how their collaborative work was done as a prelude to changes Aaron plans to make to window close handling in the future.
As you’ll recall, a number of years ago, Aaron and Dave Barbour collaborated to create the image diff framework as a way for Aaron to more easily detect regressions in cross-platform axis code as he made changes. That framework now runs after every jmprunner build and notifies us of intentional and non-intentional changes in many aspects of JMP reports and interfaces. Likewise, these new testing possibilities will enable JMP testers and developers to enhance our existing test suite and find regressions sooner.
Thanks to Tonya Mauldin for sharing this week’s telemetry and crash tracks! JMP Live report is here: Telemetry and crash files for the week of 5/28/2021 | JMP Live (sas.com)

General Announcements
- If you’re willing to be a featured employee on Inside JMP, please download a copy of the Get to Know form. Simply fill out the questions and when you’re done, upload it, along with 3 photos of you to the folder. Thank you for helping to make our JMP family a little more familiar!
Important Upcoming Dates
- JMP 16.1 Code Freeze – 5/14/21
- JMP 17.0 EA1 – 6/4/21
- JMP 16.1 Final Installer Candidate – 6/30/21
- JMP 17.0 EA2 – 8/3/21
- Please visit Confluence for a full list of JMP 16 and JMP 17 dates.
JMP Development Updates
Interns
- If you haven’t yet, check out our introduction to the 2021 Summer Interns.
- Sara Earl: Fixing some of the sample items that come with JMP. The two major things I’ve done are going through and identifying bugs in the sample scripts, and then going through the sample data tables and fixing small bugs in a couple of scripts, as well as adding neat error messages for when scripts that require JMP Pro are run without it.
- Katherine Li: I started working this week so I have mostly been working on setting up as well as familiarizing myself with the JMP Live License Expiration project. I am in the process of making a Confluence article to begin the process.
Technical Support
- Sad news for those of us who worked with SAS retiree Eddie Routten. Eddie passed away suddenly earlier this week. He was a manager, mentor, and dear friend to many in Tech Support and beyond. You can review his obituary here.
- Wendy: According to this week’s Number of Tracks Across Time report, we can see that Tech Support is seeing an increase in the number of customers who are reaching out regarding JMP 16. Below demonstrates the top JMP 16 topics since the official release date.

Development Operations
- Jim: More updates to unit test machines, especially Python and Perl, and associated Unit Test Machine Configuration Confluence page. Tweaks to the JMP 16.1 mac OS build scripts to handle updater notarization. Updated EA scripts (EA Addin Menu) in anticipation of next week’s first EA build. Reported ASAN and ASSERT Jira tickets for JMP 17.0. Perforce support.
- Shannon: Worked with various members of the JMP and JMP TS team on Jira. Reviewed JMP 16.0 and 17.0 crashes, sent sets to developers for further investigation, and added tracks to existing defects. Reviewed doc auto integration issues with Nick.
Documentation
- Susan C: Working on checking the help files for 16.1 for JMP Live and the EG and BA books. Updated the 16.1 Release Notes for JMP Live features.
- Michael C: Worked on production checks and reviews for 16.1 documentation.
System/Host Testing
- Audrey: Worked with Sara E to fix scripts saved to sample data, Jira organization and HowTo pages, JMP Live publish testing, looking at Jenkins data.
- Mandy: Verified defects; mostly worked on the Tables > Preview dialog and creating examples for EA video as well as Data Table > subset for EA video and Tabulate, Stack columns. Worked on a few TS tracks, including crashes with Dave B and opened defects. In Tabulate – opened defect to fix confusing Change Item Label item on menu selection that needs to be grayed out (JMP-930) .
- Lisa: Completed the interview course, worked on verifying several 17.0 defects and entered image tests where possible, and updated JSL test failures.
- Hui: Spot checked HTML5 performance test on Heatmap. Testing and reported 7 issues in Jira.
- Eric Wang: (1) Testing add/get spaces member APIs (GraphQL), WEBJMP-3234. (2) Testing new JMP Live role ‘space admin’, WEBJMP-3225.
- Da Li: (1) Updated unit tests for JMP 17. (2) JIRA/defects verification. (3) Investigated how to setup Jenkins job for Mac to run JSL UT.
- Nala: (1) Updated the FD's Python tool to use Python.org instead of Anaconda. Now the tests are able to run on both Windows and Mac. (2) Refactored FD unit tests to define common variables in one file. (3) JIRA/defects verification. (4) Prepared training docs for Beijing team's new tester.
Data Discovery
- Dave B: Started 16.2 jmprunner builds (builds from perforce with 16.2 files should now build on that machine and show up in the jmprunner interface). Worked with Dan to fix sib append regression Joseph reported. Created test case for tech support track with a crash clicking on a table script and found a new issue with undo/redo while editing table scripts. Created a test case and fixed a crash reported to JMP tech support when right clicking on a graph axis.
- Dan S: Support of reports using Where-clause in Session files/Projects/ Dashboards. Initial work on box-scoping namespaces in JSL. More performance improvements for thumbnail generation in App Builder (16.2/17). Working with Michael Hecht to use RunProgram() on the Java included in JMP install.
- Xan: Cleaned up Matrix and TArray2D<> classes, including removing deprecated Matrix method names for better C++xx alignment.
- Evan: Conversions to use OpCode. Preparation for Dev talk on testing updates and With Window Handler. Ensuring that platform messages that create a data table return a reference to that newly created data table.
DOE
- Joseph: Continued work on Easy DOE infrastructure and prototype.
Host
- John Schroedl: Rebuilt utility apps with latest compiler and updated copyrights. Graphics pattern colorization fix. Fixed warnings from updated VS. Finished moving defects to Jira.
- Michael H: Tweaking the Mac embedded JRE so it can be used by JMP Clinical. Working on testbot-mac to improve diagnostic report capture.
HTML5
- John Powell: Finished creating HTML5 benchmark tests. Answered Jose Quaresma's questions from Solvay about Interactive HTML features. Updated HTML5 local data filter’s Inverse mode and Inverted filter to match JMP. Triaged and reduced FUTURE track defects. Held a Sprint Retrospective and Planning meeting. Removed proportional highlighting from HTML5 bubble plots.
- Josh M: Removed proportional highlighting from mosaic (JMPHTML-672).
Removed proportional highlighting from bars (JMPHTML-894). Began looking into porting the axis for categorical response profilers to JavaScript (JMPHTML-825).
- Mayowa: Added benchmark tests for box plots, working on removing proportional highlighting from box plots in interactive html.
- Bryan F: Updated the automation of metrics so the testers should only have to run one script to capture HTM5 test metrics and one test to capture JMPLive metrics for the each of the performance scripts that I created. Participated in HTML5 sprint retrospective, planning and estimation.
JMP Live
- Michael G: Added JMP Live Space pages, details panel, permissions table. Removed old sharing options from posts in JMP Live. Starting to add new space sharing options.
- Aurora: Onboarding our returning intern, Katherine Li. Coordinating with Chris on how access control and spaces can be developed concurrently. Weaving our new access control mechanism into existing logic (allow_edit and allow_view).
- Justin: Added API routes to get column properties and row data for data tables (WEBJMP-3112).
Statistics
- Elizabeth: Minor breakthrough with GLMMs that shows our plan of attack should work. Fixed an issue with the Naïve Bayes published formulas when there was a “on the fly” transform column used the Profiler in the formula depot didn’t work; still looking into a semi-related issue if the user changes display languages (JMP-855).
- Laura C-S: Prepared and presented for SEM presentation at P&G JMP Day. Continued work on starting values with instrumental variables with two-stage least squares (almost done!). Had a few meetings with Chris to discuss code for multiple-group analysis.
- John Sall: Fixed Formula Depot bug with Boosted Tree predictor. This took 4 days to figure out. (JMP-853)
- Peng: Working on repeated measure degradation, plus some newly emerged issues.
Stat Testing
- Jeremy: Extended the profiler to all fits with a save predicteds option in fit y by x (Fit Robust, Fit Loess, etc). Started working on fixes for high priority bugs in MDS. Attended Thermo Fisher’s “spectroscopy week” virtual conference and learned a lot from their demoes of end to end analyses for many types of spectra that may be of interest to JMP. Spent some time learning about JMP genomics, so that I could provide feedback.
- Fang: Tested the implementation related to random tie-breaking for Partition-based platforms and updated unit tests accordingly. Tested fixes for reported issues involving the Profiler in Formula Depot and Transformed Columns for Bootstrap Forest and Naïve Bayes. General unit tests cleanup for JMP 17.
- Tonya: Unit test cleanup and investigation of Laney P’ and U’ charts.
Life Sciences Updates
- John Cromer: Designing and implementing the infrastructure for getting and setting values for the new JMP Clinical 17.0 dynamic (on-results) report widgets, which incorporates reworked review templates, new study-level preferences, and default values.
- Rebecca: Recorded the DIA Innovation Theater talk with Geoff that will be presented at DIA on July 1st. Continued working on AE distribution in JMP 17.
Product Management
- The internal genomics survey is now closed. Many of you completed the survey, and we received a lot of great input/feedback. Thank you!
- Mia: Had the opportunity to spend a few days in Bldg A this week. Felt good to be back! Met with John S, Brad, Xan, Chris, and a few others. Participated in a call with Manya Mayes (Text Explorer, with Anne Milley), and the IDC call with Russ and Dan.
Note from Shannon
While we are all enjoying the extra day off, take a few minutes to remember the reason for this holiday. We honor the sacrifices of all brave people who gave their lives in service of our country.

I found this interesting article with some details about Memorial Day that I didn’t know, including this paragraph:
WHY IS THE POPPY A SYMBOL OF MEMORIAL DAY?
In the war-torn battlefields of Europe, the common red field poppy (Papaver rhoeas) was one of the first plants to reappear. Its seeds scattered in the wind and sat dormant in the ground, only germinating when the ground was disturbed—as it was by the very brutal fighting of World War 1.
Hope you all have a wonderful long weekend!