19.1.1: Release planned 4/14/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 April 10, 2026!
Sign-offs are now complete for the JMP 19.1.1 product security releases, expected to be available in MyJMP on Tuesday, April 14. DevOps is now preparing for the 19.1.2 branching event, and other 19.1.2 infrastructure setup tasks are underway. Similar to 19.1.1, 19.1.2 will deliver security fixes only - third-party library updates and static analysis fixes.
Please keep in mind that you are working on a critical bug fix for JMP 20 that also impacts 19.2 and earlier versions and is severe enough to be a candidate for our 19.1.3 emergency bug fix release, please add 19.1.3 in the Planned Version field in Jira. We primarily focus on evaluating CRP issues for X.X.3 releases – numerical issues, widespread bugs, and critical problems without workarounds. You will need to secure sponsorship from product management or customer care management to have an issue considered for 19.1.3. Fixes intended for 19.1.3 also must be tested in 19.2 and 20 prior to being integrated into the 19.1.3 branch.
JMP 20 EA3 is quickly approaching, and is planned to freeze on April 30. Thanks for updating and creating feature pages for new items! Full details about dates and deadlines for EA3 are included in the Outlook reminder that should be on your calendar for April 30. If you did not receive it, please contact Melanie Drake, and she can add you.
Thanks to John Sall for sharing this link to Michael Hecht’s presentation yesterday on newer C++ features like std::optional, std::expected, std::variant, std::span, and structured bindings. By the way, if you are relatively new to JMP and looking for an overview of the JMP code base, you can also see this page in Confluence summarizing a series of JMP Code Tours conducted by Xan Gregg and others.
Finally, thanks very much to Shannon Leslie for sharing the latest round of Atlassian updates!
April 2026 Atlassian customizations/improvements
This week, the Admin team rolled out a change to several R&D Jira projects to gather Security fields together in a new tab in Jira issues. You can find more information about this change here.
You can contact Shannon Leslie or any of the other JMP Atlassian admins with questions. Also check out our JMP Atlassian Q&A Teams channel, where this and other Atlassian information will continue to be shared.
General Announcements
Important Upcoming Dates
- JMP 20 EA3 Code Freeze - 4/30/26
- 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 of JMP 19 dates and JMP 20 dates.
JMP Development Updates
Hosting and Interfaces
- Michael H:
- Refactored the Number and String column display classes as shown, so that the data they manage can maintain const correctness. (JSL: Number Col Box, Number Col Edit Box, etc.) I think most of the fallout from this change has been corrected, but if you notice any regressions, please let me know.


- John Schroedl: Updated VS solution to newer slnx format. Thank you to Jim Borek, Nick Ruva and David Barbour for quick updates to the build systems. Host tree control fixes for improved accessibility of tree items and fixed issue with the coloring of tree expanders. Had various accessibility discussions. Updated mouse cursors and handling to look a bit better in high DPI. Applied a host-related data table window sizing fix from JMP 20 to 19.2. Had discussions with Bob Hickey about the WebView2 install streamlining he's done; a nice performance win there!
- Paul N: JMP-28416 and JMP-28661 - issues with crashes due to uncaught / improperly caught C++ exceptions thrown from code called from jmp.run_jsl(). JMP-30181 Security Update JMP 20 and 19.2 to Python 3.13.13
Interactive HTML
- Paul Spychala: I have been working on performance of JMPHTML reports. This includes allowing a JMPLive column switcher update to modify the report directly if there is session already started (JMPHTML-15353). We also improved the performance of treemaps with many unique cells (lots of different legend colors) (JMPHTML-1308). We also have changed caching strategies for GroupRowStateAbilities on HTML exports (JMPHTML-15405). We also fixed a bug with Fit to Window going bonkers inside ScrollBoxes (JMPHTML-15399).
- John Powell:
- Improved load time performance of interactive HTML graphs with many (3000+) marker segments due to many overlays by using a single shared background canvas (JMPHTML-13546).
- Improve C++ export time performance of many marker segments (25+) with many rows (250k+) when using a Linked Subset table by caching and reusing subset indices (JMPHTML-15408).
- Investigating applying this technique to other segments.
- Praveena:
- Worked on
- JMPHTML-15356 Investigate removing hasFullWebXMLSupport func from exports
JMPHTML-15386 Pie: Explanatory Message Missing for static image
JMPHTML-15289 Some log messages are not visible within JMP Log window
- Working on
Statistics
- Laura C-S: Working with Haley on expanding materials for a half-day SEM workshop into a full-day workshop we’re teaching next week at a conference. Met with Sohyeon and Haley to discuss ideas for a longitudinal SEM example. Met with the Diversity Movement group to discuss initiatives for this year. Discussed diagram needs with Andrew and created a usability study with Haley for testing a SEM diagram feature. Attended meeting with stat developers on useful C++ tips.
- Elizabeth: Fixed a bug with RSquare calculations in Mixed surfaced by Jacob’s testing of the updated BLAS routines (JMP-30309). Fixed a bug found by the display/graph guys with the GLMM diagnostic bundles if data table rows are deleted after the platform is run (JMP-30361). Representing the stat group on an internal group working on improving the new, currently named Linked Items UI/UX.
- John Sall
- In Process Screening, new commands "Set Limits" and "Embed Limits in Saved Script” to make it easier to fix the limits for Phase 2 (JMP-30278).
- In Fit Least Squares, fix a crash for "Save Prediction and Interval" for nested models (JMP-30357).
- In several places fix where the Profiler messed up an axis if a factor was "Discrete Numeric" (JMP-30356).
- In many places, replace std::unique_ptr with std::optional for conditional ProgressBars (Thanks, Michael Hecht).
Stat Documentation
- Michael C: The entire statistical documentation team has been converting all of the equations in JMP documentation into LaTeX format in preparation for the move to a new authoring tool. This is a huge effort, but it will make the equations easier to maintain going forward and they should look much better in the Help!
Stat Testing
- Mark: I submitted my modernized Grubbs' Outlier Test extension to the JMP Marketplace and it was accepted. I modernized my Dixon Outlier Test extension, in particular with newer tables of critical values for better test coverage, to the JMP Marketplace. I helped Jacob by running two suites of unit test scripts on builds before an after an update to the OpenBLAS library to confirm timing changes. Laura L. reached out to ask about another old script I wrote to calculate the confidence interval for the coefficient of variation. I confirmed that it works but decided to modernize it. It uses the method by Vangel, which has been shown to exhibit poor coverage, so I am implementing a new exact method while modernizing the UI.
- Jacob:
- Testing the update to the new version of OpenBLAS
- Writing Mimic() tests for Easy DOE and OC Curves
- Preparing presentation on unit testing using covering arrays
- Testing shelved builds of upcoming changes in Space Filling Design and Design Explorer
Life Sciences Updates
- Drew: JMP Clinical 20 feature work - Clinical Study Report. Researching a JMP Clinical-specific version of the Assistant to help guide users in the usage of JMP Clinical. Updates to the JMP Validation Suite add-in and researching ways to simplify the process of building/providing the benchmark files. Continuing work on automating the JMP Clinical unit tests.
- Peggy: Please send my thank you to my JMP family for the beautiful flowers on behalf of the passing of my father-in-law. It means so much to work with such caring folks every day here at JMP.
Product Management and Product Marketing
- Kaylee: This week, we held a sales enablement training on the JMP Live adoption process and the value it brings to help expand JMP footprint within sales accounts. The training covered the JMP Live adoption guide, outlining key steps for implementing JMP Live and achieving lasting organizational impact. For more details, the recording is available here.
- Bryan F:
- JMP 20 Icon Refresh: Continued work on JMP 20 icon refresh, including alignment and refinement of DOE icons for clarity and consistency.
- Accessibility Improvements: Coordinating with Host and Core groups on accessibility improvements, with initial focus on an accessibility walkthrough tied to EA3.
- P&G Engagement Support: Supported upcoming P&G engagement with EA2 study prep and a backup VM to reduce lab risk, which has non trivial setup cost.
Technical Support and Engagement
- Gary: Below are the usual graphs for case volume as well as topics for both Tech Support and Engagement. With the new JMP Trial process that was launched on April 1st JET has been fielding a lot of questions on this change. 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 (excluding cases related to Restricted Party Screening):
Development Operations
- Nick:
- I attempted to update the DailyUT French, German, and Japanese systems using our base Windows 11 QEMU image, but sadly I will need to do full installs in each language as I was not happy (nor do I trust) the conversion of the image into each language as described by Microsoft. There were too many non-native remnants around the system, and I don't want that for localization testing. I've started building the new images today.
- I also got pretty far on Mac virtualization this week only to run into terrible performance issues once used in practice. I'm not sure why, but I think I've messed up something in my configuration, so I'm debugging that.
- All JMP 20.0 Jenkins Windows projects have been converted to the new SLNX file without a hitch. That was a quick win.
- The Swarm and Jenkins servers had OS updates (only) applied.
- Bob:
- Enhanced Windows installer logic to reliably detect WebView2 Evergreen Runtime (JMP-30368) – this modification will speed up the install time by not launching the WebView2 installer if check shows it is not needed. Thanks to John Schroedl for initial discussion of what the Windows OS expects.
- Created installer validation files for 19.1.1. Discussed with Drew Foglia ideas on how to modify the process I use to take advantage of the great work he is doing for product validation
- Melanie: Created branching task Jiras for 19.1.2: JMPTOOL-2130. Investigations prior to starting the Sample Data Stringbot job for 19.2. Helped Susan with the JMP Live Help Template setup Jenkins process for JMP Live 19.5 - Thanks to Jim for changing Perforce permissions. Worked with Shannon Leslie and Susan to plan a new End of Release task (starting with 19.1.2) for Release Notes. Worked with Shannon Leslie on some issue-level security changes in Jira. Various and sundry tests, validations, and investigations.
- Jim:
- Created final installer candidates for JMP 19.1.1
- Reported numerous JIRA entries from the results of the latest ASAN UT run
- Verified fixed JIRA entries
- Prepared for upcoming JMP 19.1.2 (from Melanie’s branching task JIRAs).
- Shannon L: Finishing up JMP and JMP Live 19.1.1 release work, including producing the security bulletin and updates to 3rd party library scanning. Work is continuing with the JMP Marketplace Monetization project, with a Sandbox meeting this week to continue to create product code requirements. Atlassian administration and user support. Weekly technical meetings.
- Shannon C: Discussions about dot-dot branch processes. Reviewed many Jira issues to clean up lists. Investigated a few crashes. Team lunch in Building A café. Team and individual meetings.
Localization
- Krzysztof: Assisting with processing of translation returns for 19.5 JMP Live. Helping with debugging and fixing issues in our workflow related to JMP Live and Marketplace localization and word count reports. Reviewing and fixing jobs for future releases of JMP Live Help (new version numbers and new deliverables). Working on enhancing legacy string chain reports with metadata on user ids and dates for the changed translations.
- Sandy:
- Worked on restructure of dashboard validation classes
- Worked on jira bug related to restructure of dashboard validation classes
- Worked on documentation related to moving all files in commit/return process into same json file
- Worked on adding file validation back to end of populate job
- Trish: Reviewing resumes/HireVue videos for Localization Engineer Position. Taking screenshots for UG that require access to internal servers for JA, ZH and KO. Allison has located a potential vendor to support Simplified Chinese translations for V20 – I attended the meeting she set up w/the vendor so we could gather additional information. Vendor looks very promising.
- Allison: Processed 19.5 JMP Live UI, Keycloak and Installer returns and pushed the translations to GIT; processed new Marketplace strings and sent packages to vendors for translation; did MTPE of the Marketplace strings for ZH; did review implementation of JMP Live UI ZH translations; communicated with vendor for ZH localization quote; had a call with a potential vendor to support future ZH translations; reported bugs that were encountered during localization automated processes and tested the fixes.
- Howard: Worked on pytest mark down. Worked with Sandy on resolving Word count scenarios for newly implemented project template approach. Worked on better handling the error messages. Bug fixes.
- Sohail: Refactor and clean up term extraction scrips, build multilingual term base, and update tests for modified functions.
Documentation
- Susan C:
- Documenting JMP Live 19.5 fixed bugs (review is scheduled for April 16)
- Testing Jira mapping project for JMP Live
- Planning to start documenting all release notes, incl. security fixes and JMP Live 19.5
- Trying to get Adobe Acrobat Pro Cloud review working - needed to reinstall Pro
- Qiana: Worked on JMP-30326 and JMP-29398. Investigated case 00300782 relating to STIPS sample data. Attended meetings. Project planning.
- Jill: 4/6 UI string report, JMP-29332, meeting with Ernest to discuss auto tagging.
System/Host Testing-Cary
- Eric:
- Added as administrator on Databricks (cloud-based data platform); logged into Databricks and created personal access tokens needed for new Databricks data statconnectors.
- Created two new Databricks data connectors in JMP 20; One utilizing personal access tokens for authentication and one utilizing OAuth2 authentication.
- Verified and closed JMP-30223 (JMP 20) Create/configure Databricks data connector;
- Verified and closed JMP-30229 (JMP 20) Users should be able to create and use Test with new Databricks connector;
- Verified and closed JMP-30225 (JMP 20) Databricks connectors should work the same on Mac as Windows;
- Verified and closed JMP-29045 (JMP 20) Add mechanism for Databricks Warehouse and Catalog interactive selection;
- Create a new Confluence page for Cloud-based Data Connectors (Snowflake and Databricks)
- Created new OracleDB connectors on both Windows and Mac.
- Verified and closed JMP-28028 (JMP 20) OracleDB connections follows the Python policy settings
- Verified and closed JMP-28059 (JMP20) Users should be able to create and use Test with a new Databricks connector.
- Create a new Confluence page for OracleDB Connector
- Verified new test results for Datatable/ODBC tests in the Dedicated Suffix runs in the JSL Unit Test Results dashboard
- Justin: This week I worked primarily on finish test strategy and starting automation for the addition of filepaths to the python jmp.run_jsl() function allowing users to run jsl files from our python environment. I also worked on closing several defects related to the jmp python integrated image object updates. Finally, I continued work on setting up w=the JMP Windows dedicated suffix run environment.
- Audrey: 19.1.1 final installer validation is complete. I18N testing and prep for the next round. Summer intern planning. Trying to play with Mimic. Investigating an authentication issue with Hunter Weaver and Daniel Powell.
Web Testing – Cary
- Josh:
- JMP Live 19.1.1
- Installer testing completed
- JMP Live 19.5 and 20.0
- PostgreSQL database upgrades completed on 10 machines
- Team support
- Assisted testers with troubleshooting build issues and authentication provider configuration in their local development environments
- Testing Focus – JMP Live 20 Authorization
- Current testing is heavily focused on authorization changes in JMP Live 20
- The development team is in the process of migrating authentication configuration from .env files to the database
- In parallel, we are working toward implementing a first party authentication solution for JMP Live 20
- This introduces a significant amount of new setup, configuration paths, and test scenarios
- Overall, this is an exciting area with a lot of new functionality to validate, but also requires extensive setup and coverage across different configurations

- Seema
- Accepted and Closed:
- Warnings panel link to specific row in data table is dangerous when warning is invalidated
- History tab Action filter pill displays no text
- History Table uses "Published" for several things that don't feel like publishes
- Users who cannot view a given data table should not learn about it in platform_properties via REST API
- Front end: Display a count of processes in PS report with warnings not "Addressed"
- PS Warning number on badge not updated unless report is closed/re-opened
- PS triage badge based on warningSummaryCount does not react to PACKAGE_TRIAGE_CHANGE pubsub
- Regeneration fails for PS when using ID
- Wrong row referenced in Warning panel when BY groups are used for Process Screening
- PS Warning number on badge not updated unless report is closed/re-opened
- Multi select triage directly from chart for Control Chart Warnings is not always available for reports with more than one chart
- REST api calls in apikey_exceptions always returning 401 Unauthorized
- Regeneration fails for PS when using ID
- 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
- Hui
- Investigated a customer reported journal export to RTF issue; verified Subset KNN crash on HTML5 and JMP Live hang with large HTML5 file.
- Completed Bubble Plot regression testing due to recent refactoring changes.
- Reported one major HTML5 UI regression impacting Graph Builder (JMPHTML 15399); also surfaced a long-standing Mosaic HTML5 tooltip issue (present since 19.1) for visibility.
- Validated the JSL Unit Framework to capture HTML5 export log messages, strengthening future regression detection.
- Continued testing on Process Screening on JMP Live 20.
- Taylor
- Accepted and Closed:
- Windows Server 2025 16 Keycloak (Existing) Cross Mark 19.1.1
de-DE
- Upgrade express to 5.x.x
- Error creating schedule using custom repeat interval
- Category name overlaps advisory on Warnings panel
- Reduce the level of detail in Settings change and TPP audit log records
- rules.maxEndOfDay_text error reported when creating schedule Runs at 11:xx PM
- createAdminUser should log operation in audit log
- Replace Axios in client code
- Upgrade to Vuetify 4
- Natalie: HTML Automation report: 19.1.1 –– With Install testing completed this week, our daily automation for 19.1.1 was suspended on 4/8/26, 19.5 - All Clean, 20.0 – All Clean! I am making good progress with baseline automation coverage for Process Screening. I created new feature files with testcases for tooltip testing and row selection within the process screening summary table. Completed bug verification for a JMP Live bug found with automation.
- Mateo: Completed installer testing for JMP Live 19.1.1, completed Postgres upgrades to our automation machines, and continued updating our automated UI tests, focusing on the JMP Live spaces page.
- Anna: Reviewing test program coverage and adding new tests for axis, points and legend. Verifying fixes for performance issues.
Core
- Dave B:
- Worked with Michael Hecht to fix a customer report crash closing a data table (twice)
- Fixed a couple of bugs saving local data filters to html and rtf
- Tracked down a crash during image tests (FDE)
- Recreated a customer-reported crash in the script editor
- Evan: Removing Share Graph and Share Table from JMP 20 due to Windows OS issues. Refinement of Linked Items/Reports design in response to Dev Talk and Discovery Lab feedback. Adding F6 landmark keyboard navigation for Data Table (see Keyboard accessibility - Windows apps | Microsoft Learn).
- Dan S: Investigating a progress bar for by-group launch. 19.2 fix for truncated Tab Pages. Fixes for Ternary axis editing. Initial accessibility (focus) support for FrameBox.
- Xan: Added Multiple Response support to multiple Overlays usage. Thanks to Jianfeng Ding, Graph Builder now supports more correlation methods.
DOE and Reliability
- Caleb: Continued my work on improving the sample size explorer infrastructure. I've also been preparing for mine, Don, and Di's talk at the upcoming DATAWorks event in two weeks. I'll admit, given my limited (a.k.a. barely above zero) coding experience with Python, I employed the skills of Claude to aid in developing a simulation study for the talk. Color me impressed!
Note from Shannon
Although it’s going to be a beautiful spring weekend, North Carolina is still experiencing drought conditions right now. The US Drought Monitor website lists our area as being in Severe drought, so be aware of that this weekend. Conserve water and avoid outside fires for sure. Hopefully, we’ll get some more rain soon to refill the streams and creeks that have been drying up. Have a great weekend, all!
