19.1.2: Security Freeze 5/7/26 • 19.2: Code Approval Mode begins 6/18/26 • 20.0: open in main • 20 EA3 Freeze 4/30/26; Feature Freeze 7/23/26
Welcome to the JMP Development Update for May 1, 2026!

Thanks very much to Audrey Shull for sharing this tribute to Mandy Chambers!
Congratulations to Mandy on her 40-year work anniversary at SAS! Mandy has made quite an impact at JMP. From her very first year (when she dove into JMP Discovery with her sea turtle poster) to today, where she is contributing to discussions about Data Table design/rework, she has been a force for quality and for good within our organization. Many of you know her as a Mac and Data Table expert, and she is also sometimes known as the Crash Queen for her ability to find and reproduce crashes.
Mandy worked on the SAS side for 24 years before joining JMP in 2015. I couldn’t easily access her defect activity from her SAS years, but below is a graph of the 2,000 defects/Jiras she has entered so far for JMP in her 11 years with us. She’s also been a great volunteer for SAS communities, including the SAS Mentoring Circles and the Women’s Initiative Network. Mandy - thank you for sharing your time and talents with your colleagues and our customers, and for making SAS and JMP a great place to work. Please help me congratulate Mandy on 40 awesome years!

We have now reached our Code Freeze milestone for EA3. We will release installers once JMP QA has signed off. Please update your feature pages for EA3 by tagging them with the ea3 label, updating the Motivation and Summary sections, and removing any outdated content by the end of the day on Monday, May 4. Have EA videos ready by Tuesday, May 5. EA4 is planned to freeze on June 11.
Heads up that we have about 6 weeks left before we enter Code Approval mode for JMP 19.2. Code Freeze for the 19.2 track is planned for July 9, soon after we return from the July holiday break.
JMP summer interns will soon be arriving! SAS and JMP summer interns all start on May 19th. You can find a page listing new and existing interns and managers here. We’re looking forward to hearing from interns later in the summer as they share demos and presentations about their projects!
General Announcements
Important Upcoming Dates
- JMP 20 EA4 Code Freeze – 6/11/26
- JMP 19.2 Code Approval - 6/18/26
- JMP 19.2 Code Freeze – 7/9/26
- JMP 20 EA5 Code Freeze – 7/23/26
- JMP 20 Feature Freeze – 7/23/26
- Please visit Confluence for a full list JMP 19 dates and JMP 20 dates.
JMP Development Updates
JMP Live
- Aurora:
- Investigating and fixing some warning triage bugs.
- Thinking and talking about proposed version 20 features: Report Workflow, Package Versioning, Custom Triage Statuses, Custom Triage Input Fields.
- Introduced two new AI-based bug detection tools for the JMP Live team. 'pr-review' to have GitHub Copilot review a Pull Request as an addition to (not replacement for) human review of a proposed code change - this tool pulls in existing review comments for context. 'random-file-review' to have GitHub Copilot review a randomly selected JMP Live source code file - this tool pulls in other source code and possibly-related Jiras for context. Both tools require JMP Live developer evaluation of output. They produce a mix of "nope, you're wrong", "yeah, I guess technically you're right but who cares", and "wow, good catch, we need to fix that!". In my experience, that last category more than justifies the time spent reading the rest of the output.
Statistics
- Laura C-S: Made several SEM improvements and bug fixes suggested/identified by Dr. Christian Geiser (who’s been posting multiple SEM-in-JMP videos on LinkedIn by the way!). Work includes allowing latent variables to be oblique/orthogonal within the group invariance shortcut, eliminating redundancies in bootstrap tables printed to the report with multiple group analysis, allowing a random subset of observations to be selected in drawing the Predicted Values Plot (PVP), overlaying observed values in the PVP, and refreshing checkboxes in the cross-lagged panel model shortcut.
- John Sall: In Categorical, in response to recent Proctor and Gamble visit, add a feature to Highlight Cells to colorize cells that are significantly different from a specified category (JMP-30536).
Stat Testing
- Jacob:
- Testing Highlight Cells in Categorical, writing new unit tests and preparing to test new “Signif > ‘Category’” Highlight Cells feature (JMP-30536)
- Testing Space Filling Design. Added unit tests for the Mixture Sum feature. Beginning to write tests for the new Random methods (JMP-20367)
- Preparing presentation on writing unit tests using covering arrays
- Triaging feedback from Intel on Easy DOE, adding and updating Jira tickets
Stat Documentation
- Michael C: The statistical documentation team has completed the creation of LaTeX markup for all of the standalone equations in the JMP documentation. There were close to 2,000 equations to address. Our next step will be to paste that markup into the converted files that the documentation team are busy getting ready for us.
Life Sciences Updates
- Richard:
- Finished a feature that summarizes longitudinal data using a double forest plot

- Submitted an add-in to the JMP Marketplace that was part of an undergraduate honors thesis for a UNC student on longitudinal patient profiles that describes each patient in the context of the larger group.

Product Management and Product Marketing
- Valerie: Working on Environmental Monitoring blogs lately. They have been published here:
- Dan V:
- As a follow-up to the recent training around LLMs and AI that Scott and I presented and collaborated with Sara and Kaylee to develop the Sales Sheet, wrote an article on some thoughts on JMP’s Unique Value Proposition in an AI-Focused World.
- Finalizing plans for PM meetings in town the week of 5/18. Looking forward to a productive week of meetings to discuss key JMP 20 and beyond projects.
- Bryan:
- Icon modernization: Continued Fluent System icon refresh, with additional icons for DOE and Reliability platforms.
- Menu polish: Collaborated with dev to resolve Mac menu icon sizing issues, iterating on assets to unblock EA progress.
- Workspace prototyping: Continued prototyping work and conversations related to Workspace design.
- Accessibility: Cross team communication and coordination on accessibility development and feedback.
Technical Support and Engagement
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 (excluding cases related to Restricted Party Screening):

Development Operations
- Nick R:
- Worked with the Security team to refine the one-off package scanner. This worked for duckdb like we'd hoped but was very hit-and-miss with random packages. I took some notes and I am refining how this will work moving forward and focuses on more source/repo scanning instead of package manager to make this a bit more reliable.
- Upgraded Jenkins plugins to address security vulnerabilities reported this week (JMPTOOL-2173).
- Troubleshooting on both DailyUT and HTML5 issues that cropped up this week. HTML5's issues seem to be directly related to the P4 Jenkins plugin that was upgraded as part of the security updates. Luckily, this plugin wasn't one of the reported issues, and I could easily roll us back a version. Opened a ticket with the P4Java team to report the issue and will be watching for future updates.
- Shannon L: Security freeze for 19.1.2 is next Thursday, May 7, containing several 3rd party library updates thus far. Presented the Marketplace Monetization company-wide initiative at the DigiOps summit this week, along with Scott Allen and Matthew Gilmore. Worked on several proof of concepts in our Atlassian ecosystem. Weekly technical meetings and security initiative improvements.
- Bob: Final preparations for 20 EA 3 installers. Worked with Jim on status e-mail (JMPTOOL-2152). Assisted Tech Support on text for public JMP Notes on silent installers. Assisted Tech Support on issues a customer is having with version 19 and VC Redistributable files.
- Shannon C: Coordination on 19.1.2. Reviewed unit test failures and crash reports in production tracks. Team meetings and weekly catch-ups.
- Jim: JMPTOOL-1708 and b
- ranching for JMP 20 EA #3.
Localization
- Krzysztof: Pushed a fix to the Japanese translation error in JMP (19.1.2). Worked on tooling and process for Oxygen translation (folder structure in P4, validations, file chunking). Evaluated test translations from a potential new vendor for Simplified Chinese. Updated jobs for JMP Live Help (new version number and new deliverable).
- Trish: Continue to evaluate candidates for DTP replacement position – interview scheduled for a candidate on Monday. Vendor taking screenshots found i18n bug related to sample data table value labels - reported JMP-30598 for Ernest to weigh-in. Jira cleanup.
- Howard: Added better error handling for the Dashboard. Worked on glue/split Dita xml for localization process. Worked on Project TM export feature.
- Sandy: Evaluating use of different tools in the new oxygen file xml validation process.
Documentation
- Devon: Reviewed and pushed five Stats books converted to XML to P4V for the Doc team to begin conversion cleanup efforts: CR, MM, PSM, FLM, and PR.
- Susan C: Peer reviewed BA, CR, and DOE for Oxygen fixes. Incorporated Jill’s edits to the JMP Live/Public help. Creating the JMP Live/Public EN help.
- Qiana: Attended meetings. Cleaned up the converted BA files. Did project planning and coordination.
- Jill: Editing JMP Public files and working on DOE files after the oXygen migration.
- Chris: Cleaning XML.
System/Host Testing-Cary
- Mandy: Worked on writing JSL tests for tagging columns and checking tables with tags - new to 20. Worked more on Recode and some new JSL there too - finding issues with some of the new ways to Recode multiple columns together. Testing a tabulate with ID test build to help Clinical out with a future change they are making at 20. Need to work on a few Dynamic tables changes developer pushed this week and see if more tests need to be added there. Data table had two changes for EA3 - Scripts are moving back to FIRST in the front of the top left corner of the table and the prompt that comes up to save reports will show up now the first time, allowing you to check a box that says Do not show me this again.


- Eric:
- Experimenting with JSL test script writing using GitHub Copilot in VS Code and also experimenting with the same using Assistant in JMP 20.
- Exploring JSL resources from our online documentation (specifically from the Extending JMP section on external data sources) and Intro to JSL in the Learning Library.
- Continued debugging ODBC MySQL JSL test failures in JMP 20. Opened bug JMP-30560: MySQL table fails to open with latest ODBC driver.
- Trying to replicate customer data connection issue in JMP 19.0.1 where their data connection fails with Trusted Authentication.
- Hunter: Testing a JMP 20 build for a license validation update for JMP-30541
- on a variety of configurations over a span of days as the running sessions transition from valid to expired to terminated. Completed some brief testing with JMP Student Edition 19.2 running on a MacBook Neo with an A18 Pro processor and only 8 GB RAM. No problems were encountered installing and running JMP and the baseline tests completed in two minutes which was faster than running on my office M1 Mac Mini. JIRA verifications. Reviewed more localized documentation and updated the related JIRA items.
- Audrey: Reviewing a final set of JSL snippets sent by Scott Allen for helping train an LLM for JSL use. Working with Justin Kusch on defining the subset of tests for our third party suffix runs. Assessing our Hands-On Interactive tests for their fitness for inclusion in the Mimic test framework. Working with Lisa Grossman to review the automation script we have to look at our JSL test timings. Preparing for our summer interns.
- Nick H: Worked on learning some of the new mimic GUI automation testing functionality and created a unit test that was used to verify a data table action recording bug. In doing this I found bug in mimic list handling when there are grouped columns in a list. In addition to this I worked on other verifications with focus on bugs planned for 19.2 and 19.1.3 integration.
Web Testing – Cary
- Hui
- Verified crash fixes in a specific Desktop and HTML5 workflow across Graph Builder, HTML5 Boxplots, and Journal editing to prevent JMP 20 EA customer impact.
- Reported one major and two standard priority issues affecting Graph Builder usability and rendering correctness (JMPHTML 15484, JMPHTML 15481, JMPHTML 15479).
- Validated a performance improvement for Parallel Plots resizing that reduces unnecessary data rebuilds (JMPHTML 15450).
- Continued performance investigation and testing for dashboard embedded graphs and JMP Live publishing scenarios (JMPHTML 15458, JMPHTML 15408, JMPHTML 15398).
- Verified 10 fixes this week across crash resolution, UI regression coverage, and performance related changes in Desktop and HTML5.
- Natalie: HTML Automation report: 19.1.2 –– All Clean, 19.5 - All Clean, 20.0 – 4 new failures. This week 6 new testcases were added for Process Screening. We had 4 failures today resulting from a performance fix in this area pushed yesterday. Our automation caught several issues introduced by this change. An automation win! The fix pushed today will be tested with automation over the weekend as well. I completed additional new testcases this week that will be merged next week.
- Seema:
- Accepted and Closed:
- Refetch all markers upon PACKAGE_NEW_VERSION
- CCB: use Unicode Unicode 0x1F as delimiter in warnings JSON qc_ids string
- PS: use Unicode Unicode 0x1F as delimiter in warnings JSON qc_ids string
- Deal with semicolons in ID column in PS and CCB
- Group value can be null (GraphQL complains)
- Add ID values to control chart notification email
- Reduce scope of impact of turning warnings on for a group
- Created Jiras:
- Warnings panel text indicates category without warnings has warnings
- Notification email for missing char group is blank instead of "Missing" for groupValue
- Warnings Panel: ID label displayed for missing ID values when ID value is num
- Missing string IDs for CCB warnings with multiple rows/IDs returns unexpected value in Warning panel and email notifications
Core
- Xan:
- Added support for multiple Freq variables in Graph Builder — handy for a per-element data filter hack.
- Updated confidence intervals in GB Line of Fit for Unequal Variance thanks to report from Yusuke Ono.
- Added per-variable Overlay Encoding UI just in time for EA3.
- Updated Y Function() and friends to use a local instead of a global for its variable.
- Dave B:
- Found and fixed a couple of crashes related to an undo happening while dragging, rare but a few customers seem to have hit this issue
- Continuing to test the ability to run add-ins with protected jsl files
- Dan S: Working on accessibility support for TableBox - getting close to screen readers being able to navigate each cell. Integrated Ternary axis fixes to 19.2. New fix for customer-reported issue using the search field in a conditional data filter.
- Evan: Accessibility work for TableBox. Investigating Categorical copy/paste issues on macOS. Linked Items redesign work and some changes for EA3. JUnit XML file artifact for Mimic Test Framework.
Hosting and Interfaces
- Michael H:
- Updated run-unit-tests to use viewdiagnostic directly for converting .ips files to crash reports, replacing ipstocrash. Also fixed a potential race condition between crash recording and diagnostic capture, which could have caused reports to be missed in rare cases.
- Bumped Mac JMP 20’s minimum supported OS to macOS 14 Sonoma (Apple’s oldest currently supported version). Addressed resulting deprecation warnings across several areas, including speech synthesis (speak()), Metal checks, authorization code, deleted item animation, file system watching, and LAPACK/CBLAS.
- Corrected unintended changes to the Mac JMP project file that had enabled sandboxing and altered code-signing settings, causing multiple issues.
- Refreshed Mac JMP menu item status icons with a more modern set, including new dark mode variants.
Interactive HTML
- Mike Stickles:
- Tabled performance analysis on a dense line graph which took 50-65 seconds to load, but all available performance analysis tools claimed a load time of 1 to 2.5 seconds. Was unable to figure out where the rest of the time was going and finally logged it as a new bug (JMPHTML-15455) so the issue would not get forgotten.
- Currently working on implementing Pattern Formats for dates in Interactive HTML (JMPHTML-14083). Of the 38 pattern codes, currently 14 will cause date parsing to fail and 4 parse incorrectly. I am working on getting those 18 implemented, then will check all 38 for correctness in non-US locales.
- John Powell:
- Updated markers to recalculate only what's necessary rather than rebuilding the whole cache when resizing (JMPHTML-15448).
- Updated pie chart log messages to handle new unsupported styles (JMPHTML-15342).
- Added a log message for unsupported “Square” ellipse element style (JMPHTML-15438).
- Attended Intern Manager training.
- Participated in a meeting to discuss saving user settings/changes to reports on JMP Live.
- Michael Senoyuit: Worked on making LDF more efficient on JMP Live. Small changes to performanceData in HTML.
Note from Shannon
Thanks to Mike Stickles for sharing his favorite quantum mechanics cartoon! Hope you all have a great weekend!
