Welcome to the JMP Development Update for April 4, 2025!
Next week is JMP Reunion! Looking forward to seeing many of you and participating in the group sessions, team building and social events! In addition to the plenaries and Ask Me Anything sessions, on Thursday morning, there will be a cross-departmental session for JMP R&D with several affinity group sessions. During the second session (10:45-11:30 am), please stop by if you would like to share any thoughts on EA and release process with your colleagues and JMP DevOps.
A reminder that JMP 19 EA8 is planned to freeze on April 17th. At this point, I know everyone is working to fix bugs and finalize any items still left on the Late features page. About 60% of the items listed on the page have been moved to the Completed section while the remainder are still in progress. Please make sure to remove any items that are not currently planned for 19.0 from epics that you have linked in the Late features page. We want to make sure that those epics can be closed out for 19.0 to properly reflect their completed status on the page.
Thanks to Jim Borek for sharing this important news from SAS IT:
The Windows 11 24H2 feature update will begin rolling out to randomized groups beginning in April 2025. You will receive a pop-up toast notification when the update hits your machine. Once it's available on your machine, you have seven days before it's required. You can choose to update immediately or schedule a time to update. During the upgrade process, systems will reboot and remain unusable for approximately 30 minutes. All applications and data will remain intact. Learn more about the update process. We highly encourage installation at a convenient time prior to the deadline!
And thanks to Tonya Mauldin for sharing details on the beta/crash report for this week with crashes selected.

Beta and crash report for the week of April 4 2025 | JMP Live
General Announcements
Important Upcoming Dates
- JMP 19 EA8 Freeze – 4/17/25
- JMP 19 Review Mode – 5/23/25
- JMP 19 EA9 Freeze – 6/5/25
- JMP 19 Approval Mode – 6/13/25
- JMP 19 Security Freeze - 8/15/25
- JMP 19 Final Image Candidate – 8/18/25
- JMP 19 QA Signoff – 9/11/25
- JMP 19 posted to MyJMP – 9/16/25
- Please visit Confluence for a full list of JMP 18 and JMP 19 dates.
JMP Development Updates
Hosting and Interfaces
- Paul N: Working on scripts automating the process of taking a Python distribution, paring it down and repackaging it to suit JMP’s needs for embedding. The goal is taking what takes about a week of time to manually update Mac and Windows builds, down to less than an hour + testing time. This will allow for a much faster and predictable turn around if we need to quickly make a security update for Python. Used the Mac version of the script to update JMP 19 to Python 3.13.2 first, then got the Windows script running today and pushed the Windows update. (Note: these scripts run from the terminal. :smiling_face_with_smiling_eyes:)
- John Schroedl: Continued troubleshooting issues caused by the latest BeyondTrust update. More dark mode tweaks: themed system menu, label control printing. Icon updates and related code changes. Add hint text in recent files list when the list is empty. Allow tooltips from inactive windows.
Interactive HTML
- John Powell:
- Working on updating marker shape rendering in HTML(WebGL) version of Scatterplot 3D to handle high marker quality like JMP that has special treatment for certain marker shapes and beginning to look into supporting unicode marker shapes.
- Reported an issue with the dot marker size in Scatterplot 3D when hardware acceleration is disabled(JMP-25673).
- Working with marketing on a project for the reunion.
- Helped SE Donny Kopp answer a customer request about sharing static distributions as a single HTML file in an automated way.
- Mike Stickles: Worked out a fix for an issue where certain line graphs were drawn incorrectly due to pre-calculation not being detected (JMPHTML-1516), and posted it for review. Also fixed an issue where labels can be placed incorrectly on nested bar charts (JMPHTML-1864); this is also posted for review. While investigating a different issue, found a case where a packed bars graph with overlays resulted in incorrect hover labels in JMP (not just in HTML); passed that to Anna Kushner for verification and logging in Jira.
JMP Live
- Aurora: Bug fixing - bulk delete edge cases, publish control chart from Mac, bookmark audit logging, broken tests, etc. Added some tips to Bitbucket article in Confluence. Whitebox testing.
Statistics
- Annie:
- Worked on fixing Short Run issues in CCB: (Jira JMP-22152, JMP-20328, & JMP-22717)
- Worked on CCB Performance issues (Jira JMP-25285)
- Worked on Set last n subgroups option (Jira JMP-25071 & JMP-24813)
- Fixed misc. CCB issues: (Jira JMP-25411, JMP-25503, JMP-25503, JMP-22346, JMP-25284, & JMP-25439)
- Fixed EWMA chart test issue (Jira JMP-20187)
- John Sall:
- In Response Screening, increase Max Comparison Levels default from 10 to 100 (JMP-25615).
- In Design Space Profiler - new Corners column now called "-log10 Prob"(JMP-25550).
- In Fit Least Squares - shift key prompts for suffix and alpha level for save commands(JMP-23590).
- In Process Screening - fix crash and a couple of other mis-codings of alert/action items(JMP-25526), and many other small fixes.
- In Fit Group - enable Mixture Profiler if mixture factors(JMP-25531).
- In Explore Outliers - allow coloring of cells even if locked (JMP-25341).
- In Fit Response Screening - add L95, U95 to LS Means, add SE, L95, U95 to Sliced LS Means Diffs(JMP-25142).
- In Design Space Profiler - Lock at midpoint (JMP-18962) and a preliminary implementation of Impact Ratios (hidden feature)(JMP-14552).
- Also working on an all-comparisons for the 2-by-M case in Response Screening.
Stat Testing
- Jacob:
- Testing shelved updates to Simulate Responses
- Testing the Set Cover() builtin function, which will be used to test BayesFlo in Covering Array. Writing my own JSL implementation of Set Cover() to test this.
- Verifying tickets and cleaning unit tests, including updating DOE oracles where the run order changed (due to changelist 844792)
- Tonya: Writing tests for new features in Process Capability and Process Screening. Also working on Jira verifications.
- Mark: Testing Bayesian Optimization with Yeng, Kasia, and Chris.
Life Sciences Updates
- Drew: Created a TabulateToDOCXTable add-in (similar to TabulateToRTFTable) but uses the Python python-docx package, instead of SAS. Got approval for and pushed a fix to Jira in 18.2.1 that prevented JMP Clinical from launching if the user’s Documents folder contained a comma. We had 2 new customers report this issue and it’s becoming more common as folks include their organization’s name in their OneDrive root folder - including “, Inc.” as an example. Working on JMP Clinical bug and feature Jiras.
- Richard: Scoped out a new analysis for summarizing patient treatments. Taught a data visualization class at UNC.
Product Management and Product Marketing
- Bryan F: Over the past week, I have been developing and refining new icons. Additionally, I made several adjustments to the JMP Live theme. I also conducted a preference study with representative users, gathering input on JMP theming. Also, worked with Michael Goff on JMP Live icon colors.
- Kaylee: Held a sales enablement training on reporting in Salesforce. If anybody is interested more I posted an article on insideJMP that has the link to the page and training recording.
Technical Support and Engagement
- Gary:
- The Support teams continued to field questions related to the recent release of 18.2. We are looking forward to a great week at Reunion connecting with our colleagues across the world!
- Below are the usual graphs for case volume as well as topics for both Tech Support and Engagement. Due to an issue with the data coming from Salesforce, the graphs below are through Wednesday, April 2nd. Here are the TS JMP Live reports and the link to the Jira filter showing the tickets reported by Support for the last 14 days.
- Technical Support Case Volume by week:

- Case Topics for Technical Support queue, last week:

- Engagement Support Case Volume by week:

- Case Topics for Engagement queue, last week:

Development Operations
- Jim:
- After multiple restages of the Mac JMP Baseline UT machine, it is finally producing results via the Jenkins project.
- At Kimi’s request (JMPTOOL-1559), updated R to 4.4.3 on all Windows AMIs; Macintosh are still pending due to need for clang on testing machines.
- At Michael Hecht’s request, Xcode 16.3 is now the latest version on the JMP 19 build machine.
- Last, but certainly not least, THANK YOU to John Sall and Beth Evans for allowing us and coordinating the volunteer opportunity at Burkett Farms this week. It was good to socialize with other JMP staff and productive to provide to our community partners!
- Melanie:
- Testing a Fast & Furious migration of Stringbot processes for Sample Data to AWS because we need 19 data table features, and we can’t install/run JMP 19 on jmptool, which is still running Windows Server 2016. Thanks to Qiana and Mandy who noticed the problem and especially to Myron who is updating it all really fast!
- Unit Test Stream Monitoring work – added LDFs to the graphs; publishing them all on JMP Live! DevOps Reports | JMP Live Also hit a bug with how the LDF looks when published in 19 with the LDF closed instead of open. Sorry for the tiny filters! Thanks to Josh and Hui for looking at this - [JMPHTML-14476] Data Filter: The data filter is not properly sized when the LDF is closed when exported - Jira
- Finished setting up the new stringbot dictionary request process. We have a new component in JMP DevOps Tooling (Stringbot Dictionary) for developers to request updates to the dictionary. This will be documented and announced after next week’s JMP Reunion, though it is ready to be used now. (Process: enter a Jira in JMPTOOL with the Stringbot Dictionary component, and we’ll take it from there!)
- Preparing for the JMP Reunion next week.
- Bob H: Most of my week was spent researching and testing possible fixes and workarounds for https://sas.service-now.com/sp?id=ticket&table=incident&sys_id=63d0b9ed83a06a50a2737a10feaad3e4. This is the Beyond Trust bug that is keeping the Windows installers from writing to the admin sections of the Windows registry.
- Shannon L: Continuing to work through procurement forms for Atlassian renewals, and reduce license counts where appropriate for the renewals. Continued to assist with JMP 19 story cleanup. Weekly technical meetings, including reunion meeting prep. Atlassian user support, and reviewing upcoming monthly changes to our Atlassian tools.
Localization
- Allison: Prepared and validated the 19.0 Portable UI handoff 2 strings for localization in memoQ, launched the project and sent the package to translation teams; investigated and communicated with developers about queries on JMP Live strings; met with Doc team to talk about Localized Help meeting agenda next week; provided feedback and comments to Howard on Localization Dashboard project lifecycle processes Confluence page.
- Ying: Continuing to check EN screenshot scripts for DJ and retaking screenshots if needed (JMPLOCTOOL-735). Five chapters have been completed and four Jira bugs opened for the Documentation team to correct certain screenshot scripts. Understand the process of creating animated GIFs. Processing JMP Reunion travel.
- Trish: Mostly reunion planning - Meeting with doc team to finalize ideas for help meeting agenda; working on presentation for localization team; team building activity for localization team and team dinner finalized and booked; scheduled meeting with doc to review over creation of localized animated .gifs for Quick Start.
- Sandy: Regression testing on file matching utility due to new file naming convention. Continued testing and refinement of new string return process program.
- Howard: Finished Dashboard Project Life Cycle Instruction on Confluence. Finished PDF renaming related testing on Jenkins. Bug fixing.
Documentation
- Susan C:
- Mainly working on documenting the process of creating JMP Live/Public help in Confluence pages so that all processes are documented & repeatable, also so that Ying has clear instructions as she takes on the creation of the localized help.
- Planning for Reunion
- Weekly meetings with Qiana and with the Doc team as usual
- Assisted with wording on some JMP Live log messages
- Chris: Reviewed and fixed screenshots (JMPDOC-2386 and 2382). Fixed some JSL samples (JMP-23980). Reviewed Khawar’s callout images. Reviewed Susan’s (extensive) JMP Live build instructions.
- Qiana: Continued working on sample data. Met with L10N to discuss the meeting with Ying about building localized JMP Live help. Reunion week planning. Project planning and coordination.
- Khawar: Sample index - Discussed some changes to the sample index and issues with Chris. Oxygen callouts - Finished creating images for DOE; Started working on UG; Discussed and edited EG images.
- Devon: Preparing materials for meetings during Reunion: XML versions of JMP Live docs, documenting FrameMaker to XML conversion process.
System/Host Testing-Cary
- Nick H: Worked to fix an issue where we were not correctly importing TS track numbers and the description field with the new Jira v3 API. Filed a few issues for the new data grid, notebooks and the sample index. I have also been working on 19.0 verifications and EA feedback tracks.
- Audrey: Looking at a few unit test failures, working with Nick H to re-query our Jira data after we discovered changes in JSON returned from new API endpoints, final Reunion preparations. Looking forward to seeing lots of you next week!
- Lisa: Looked at sample tsv export of 18.0 telemetry from Myron, checking image test diffs for graph builder bug fixes, and updated JSL test timing script to remove 18.2 reports.
Web Testing – Cary
- Josh
- JMP Live Jira Verifications
- API rate limit testing for local authorization
- Various publishing scenarios
- Worked on updating the database for auth.live.com to Keycloak 25. The database couldn’t be upgraded directly to 25.0.6 due to a migration bug in Keycloak. I had to migrate the database incrementally using the following versions: Keycloak 15 → Keycloak 20 → Keycloak 22 → Keycloak 24 → finally, Keycloak 25.
- We were then able to migrate directly from Keycloak 15 to Keycloak 26 without any issues.
- Anna: Testing Scatterplot 3D on desktop in preparation for John’s implementation in HTML5. Reported issue Mike Stickles found for packed bar on desktop. Reverified Xan's updated fix for LDF with dynamic transform.
- Natalie: Completed an automation update for all HTML image benchmarks. Continued to monitor intermittent hang in the Jenkins pipeline. Began with new automation coverage for table styling.
System/Host Testing-Beijing
Core
- Morgan: Fixed the way that script editor finds platforms and JSL functions for highlighting to greatly reduce the time per search, and added defined symbols to autocompletion menus.
- Dan S: Dark mode fixes (legends, graphlets). Compiling list of save-scripts-in-English issues and fixing some. Looking into improving the data filter numeric precision for display.
- Andrew: Updated the behavior of the color theme picker color blindness filter and made tabulate save the grouping as tags when exporting to data tables.
- Dave B: Recreated one anonymous crash and spent time on a second. Table box bug fixes (get matrix, make combined datatable).
DOE and Reliability
- Caleb: More bug fixes and preparing for JMP reunion. Looking forward to seeing everyone in person!
Note from Shannon
Sad news this week with the passing of actor Val Kilmer. He was a bit of an odd man out in Hollywood but definitely an actor who was highly dedicated to his craft. He was in a variety of movies I watched as a kid, including a few comedies – I think the first movie of his I saw was the very silly spy parody Top Secret, and Real Genius was another favorite for me and my sister. And there was the summer that we watched Top Gun pretty much daily…but one of my personal favorites was Willow, which was recently resurrected as a (short-lived) streaming series (though minus Kilmer). Willow was one of the few movies from my youth that my 13 year old son didn’t think was hopelessly terrible. (Let’s just say Neverending Story did not age well!) RIP Madmartigan.
