19.2: Security Freeze 9/3/26; Final Installer Candidates 9/6/26 • 20.0: open in main; EA7 Code Freeze 10/1/26; Code Freeze 1/7/27
Welcome to the JMP Development Update for August 28, 2026!
We are nearing the end of the 19.2 cycle, with Security Freeze quickly approaching on September 3 and installer candidates to follow on September 6. 19.2 Release notes are in progress, and the doc team is working on 19.2 Help-related deliverables.
Please note that the next opportunity for emergency bug fixes after 19.2 will be 19.2.3; if you have encountered a bug that cannot wait till JMP 20, please mark it as Critical priority and add 19.2.3 in the Planned version field so that it can be further evaluated by development managers, technical support, user enablement and product management. As a reminder, candidates for 19.2.3 must also be resolved and tested in the 20.0 track before being considered for inclusion in this emergency bug fix release. Development managers are reviewing Critical items regularly in weekly meetings.
As we have now passed our Code Freeze for EA6, please update the Motivation and Summary section of your feature pages and make sure to note which updates are relevant for EA6. Also, please remove any outdated content from the page if it no longer applies to the current iteration. We plan to freeze code for EA7 on October 1.
We are now a month past our planned Development and Marketing Feature Freeze date. As discussed with managers at the development Ops meeting this week, we do not expect to see new items being added to the Late Features page at this point in the cycle. The only exceptions would be if the work was underway before feature freeze on July 23 and isn’t complete yet but is required to ship 20. If I see story or epic items added to the Late Features page after this point, I’ll be reaching out to managers to confirm their status. Minor new features that are not required to ship 20 should instead be added to the 20.1 Features page.
Thanks very much to Paul Spychala for presenting on new work on the Profilers for HTML and JMP Live coming in JMP 2027! Some of these changes take advantage of updates made to 3D graphics libraries in 20. If you missed the meeting, you can find the recording here. We have numerous meetings upcoming in the next few months and more available slots on the JMP Dev Volunteer page so please continue to sign up - we’d love to see what you’ve been up to this cycle!
General Announcements
Important Upcoming Dates
- 19.2 Security Freeze – 9/3/26
- 20 EA7 Code Freeze – 10/1/2026
- Final Portable UI String Handoff for 20 – 11/12/2026
- 20 Code Review Mode - 11/26/2026
- 20 Code Freeze – 1/7/27
- Please visit Confluence for a full list JMP 19 dates and JMP 20 dates.
JMP Development Updates
Product Management and Product Marketing
- Valerie: This week, I joined Mia and Scott from product management at the JMP EMEA Kick Off in Marlow. It was fantastic to reconnect with colleagues from across the EMEA sales organization, as well as our US team members. The event was filled with sales highlights, technical and marketing updates, and plenty of constructive conversations, all complemented by fun moments and some special celebrations.
shannon_conners_0-1788196962449.jpeg
- Bryan Fricke:
- Consolidated accessibility feedback from Greg Kraus and team and prepared focused follow-up questions covering screen-reader behavior, lengthy dialogs, Quick Start navigation, and menu accessibility.
- Provided feedback on accessibility presentation material.
- Continued Fluent System icon modernization efforts for 20, creating seven new implementation tickets covering debugger, sorting, and table-related icons.
- Identified and documented a refinement to OutlineBox title-bar icon scaling to improve visual hierarchy and consistency.
- Investigated platform-specific icon behavior across Windows themes to support a more robust long-term icon strategy.
- Conducted a preference test to determine which icon best represents the concept of a formula.
- Supported JMP Live report workflow discussions.
- Provided UX guidance on View sorting terminology, advocating for naming that better aligns with user mental models and distinguishes view-level operations from table-level operations.
- Continued coordination regarding Lyssna procurement and renewal considerations to help avoid future payment-term issues.
- Accessibility
- Icon Modernization
- Product UX & Workflow
- UX Enablement
Technical Support and Engagement
- Wendy:
- Students are back, and the Support teams are seeing an increase in JMP Student cases. The most common topic involves access requests, particularly around renewals and eligibility.
- Below are the usual graphs for case topics for both Tech Support and Engagement. 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.
Case Topics for Technical Support Americas/Japan, last week:
shannon_conners_1-1788196962450.png
Case Topics for Engagement queue, last week (excluding automated cases related to Restricted Party Screening):
shannon_conners_2-1788196962452.png
Development Operations
Jim:
Reported
- https://jmpdiscovery.atlassian.net/browse/JMP-32120 JSL UT Assertion Failure in shwBuilder.cpp:14817 void CCBuilderModel::setupSaveLimitsTable(EvalContext *, DataTable *)
- https://jmpdiscovery.atlassian.net/browse/JMP-32123 JSL UT Assertion Failure in lifeDistribution.cpp:5668 void LifeDistNonParamPlotData::ensureKMMarkerData() const
- https://jmpdiscovery.atlassian.net/browse/JMP-32125 TSAN data race at openNLP.cpp:2241, Parser::parse(std::__1::shared_ptr, int, int volatile&)
- https://jmpdiscovery.atlassian.net/browse/JMP-32126 data race at screening.cpp:1833, YByXObject::processGroup(std::__1::shared_ptr, int, int, int, int, ThreadPoolFunction*)
- https://jmpdiscovery.atlassian.net/browse/JMP-32127 data race at swap.h:45, std::__1::enable_if::value && is_move_assignable::value, void>::type
- https://jmpdiscovery.atlassian.net/browse/JMP-32135 Multivariate Process Capability crashes during Royston normality testing when filtered or missing data pass NaN values to the Shapiro–Francia sort
- https://jmpdiscovery.atlassian.net/browse/JMP-32137 UBSAN in shwBuilderDlg.cpp:1132
- https://jmpdiscovery.atlassian.net/browse/JMP-32138 UBSAN in shwBuilder.cpp:6583
- https://jmpdiscovery.atlassian.net/browse/JMP-32139 UBSAN in shwBuilderVariables.cpp:1213
- https://jmpdiscovery.atlassian.net/browse/JMP-32140 UBSAN in tabulate.cpp:17691
- https://jmpdiscovery.atlassian.net/browse/JMP-32141 UBSAN in annoylib.h:768
- https://jmpdiscovery.atlassian.net/browse/JMP-32143 UBSAN in displayCol.cpp:24656
- https://jmpdiscovery.atlassian.net/browse/JMP-32144 UBSAN in fitRepeatedMeasures.cpp:1068
Verified
- https://jmpdiscovery.atlassian.net/browse/JMP-31680 Use newTopString() Compare Groups (15); Distribution (15); Lognormal (2); Nonparametric (24); Normal (10); Pointwise (15)
- https://jmpdiscovery.atlassian.net/browse/JMP-31339 TSAN data race at znomsolve.cpp:46, znomprob(int, int, double const*, double const*, double*)
- https://jmpdiscovery.atlassian.net/browse/JMP-30934 TSAN data race at processScreening.cpp:984, ProcessScreenObj::processOne(int, int, std::__1::span, RowStatesMask const*, int const*, double const*, double const*, long const*, ProcessData&)
- https://jmpdiscovery.atlassian.net/browse/JMP-30935 TSAN data race at unique_ptr.h:288, std::__1::unique_ptr>::reset[abi:dee210106](DataGridViewInfo*)
- https://jmpdiscovery.atlassian.net/browse/JMP-31334 TSAN data race at dtColProperties.cpp:4050, CachedPropertyListMap::get(ColumnPropertyKey const&, bool) const
- https://jmpdiscovery.atlassian.net/browse/JMP-31408 JSL UT Assertion Failure in term.h:544 const JString &Term::charLevel(int) const
- https://jmpdiscovery.atlassian.net/browse/JMP-15587 Head Partition Not Measured
- https://jmpdiscovery.atlassian.net/browse/JMP-14949 JSL UT Assertion Failure in jColor.cpp:2204 void JMPColor::setJSLColor(int)
- https://jmpdiscovery.atlassian.net/browse/JMP-31376 UBSAN in dtProperties.cpp:1806
- https://jmpdiscovery.atlassian.net/browse/JMP-31367 UBSAN in wScale.cpp:1030
- https://jmpdiscovery.atlassian.net/browse/JMP-31357 UBSAN in byGroups.cpp:677
- https://jmpdiscovery.atlassian.net/browse/JMP-31356 UBSAN in processCapability.cpp:4507
- https://jmpdiscovery.atlassian.net/browse/JMP-1015 JSL UT Assertion Failure in topEvalSAS.cpp:6424, virtual JString CCodeGenerator::argMetadataType(CodeGenType)
- https://jmpdiscovery.atlassian.net/browse/JMP-6208 heap-use-after-free(READ:8) at __threading_support:330, std::__1::__libcpp_thread_isnull()
- Shannon L: Finalized JMP 19.1.5 and JMP Live 19.5.2 end-of-release tasks. Continued Jira administration improvements through transition-screen reviews with Melanie, critical-issue automation follow-up, and operational support across workflow and reporting requests; additional Atlassian user support. Continuing to work with Audrey on the inventory of JMP servers located in the SAS CIS & R&D VMWare centers, to plan their migrations or decommissions. Joined Project Greenfield, the SAS project to create a new ServiceNow environment, representing JMP as the Change Champion on that project - more soon. EA7 sprint assignments. Continued work on JMP 2027 product name updates. Weekly technical meetings, including participating in SAS CIS Atlassian Cloud Champions Community of Practice series planning.
- Melanie: Updated a JSL unit test that needed the new Macintosh app name (JMP (Pro) 2027) • Testing, validating, and closing various DevOps Jiras • Improved Status graphs for UT Log reporting that shows the difference between a successful run with an installer and a successful run without an installer (JMPTOOL-2367)• Revising Graph Builder graphs in UT Logs reporting that use Ordinal Date columns (JMP-30073) – Thanks to Seema and Paul Spychala for helping me track this down! • Tracking and following up on various CI test and build failures
- Nick:
- Work on the new non-scheduling version of DailyUT Watcher to which will now watch for installers to be created, queue those jobs in Jenkins, and create machines on demand. This is in preparation to move to an on-demand DailyUT end-to-end process. This is now fully working in my prototype and I will deploy a small test next week.
- Updated the Mac CI machines and did some general maintenance. Both Mac CI machines were cleaned up, and I'm hoping this improves some of the oddities we saw this past week with builds that seemed slow/stubborn.
- Myron:
- JMPTOOL-2393 – unprocessed Mac crashes
- Acrolinx – discussing SAS R&D's migration to Markup AI and the effects to JMP
- JMPTOOL-2385 – turn off 19.1.5-related test assignment and email jobs
- continuing crash system migration from jmptool to AWS
- Bob:
- Release of 19.1.5/19.5.2
- Work with John Schroedl on documenting changes made to VD Redistributables during version 19 Windows installer steps
- Prep and review of installer code for 20 EA 6.
- Shannon C: Reviewed JMP crash issues and some older special unit test run issues to close out resolved items. Worked with developers and testers on a few recently reported crashes. Reviewed EA reminder template with Shannon L. Held regular group and individual meetings and attended a session on continued dot-dot process enhancements. Prep for Q3 catch-up meetings.
Localization
- Allison: Processed the 20.0 Portable UI handoff 1 kits in memoQ and sent them to the translation teams for localization; communicated with translators and reviewers about the Portable UI localization schedule and shared reference materials with them; communicated with vendors, Procurement, and Legal on the purchase and new vendor onboarding requests in Zip; handed off localized 19.1.5 Release Notes to the Web team to post on the web.
- Krzysztof: Helped launching PortableUI 20.0 for translation using the new memoQwb online workflow. Looking into the impact of Acrolinx change to MarkupAI (focus on UI string checks). Preparing our translation tool for Oxygen (new templates, filter). Testing new L10N team scripts and automation.
- Sohail: Updated ChatUI system prompt, added edit categorization, fixed various UI elements, debugged job failures.
- Trish: Planning for Version 20.
Documentation
- Susan C:
- JMP 19.2 release notes - reviewed for consistency, Acrochecked, and sent for review. Incorporated review feedback to date.
- Updated Confluence pages for release notes and met with Allison.
- JMP Live - sent proposed outline to Dieter and Eric, made 1 minor change.
- Answered Q3 check-in questions and met with Qiana to discuss.
- Qiana:
- Worked on the 19.2 Release Notes.
- Had Q3 check-in discussions with the Doc Team.
- Procurement process for Oxygen Publishing Engine.
- JMP 19.2 project management work.
- Chris: Finished my 19.2 release notes. Updated the Oxygen framework and spent time styling the new help. Building the translated 19.2 help.
- Devon: Converting the JMP Live documentation to XML, building the 19.2 localized Doc Library.
- Jill: UI string review. Reviewing Release Notes. JMP-29489 and JMP-8651.
System/Host Testing
- Mandy:
- Led the testing of emergency bug fixes for recovery of corrupted data table and data table crash, corrupted column/ value labels for 19.1.5, 19.2, 20.0; thanks to others who helped!
- Worked on Icon verifies for “Go to Parent in data table", and expand and collapse for the Filter view - they look good/better. Working on Sample data tables to add to JMP 20 with Mia and Laura C-S.
- Received and processed 8-10 TS tracks, asking questions via email and opening Jiras where replicated.
- Conducted various trainings for new testers. Helped David E. in stat with a JSL testing thing he was working on. Added JSL test for MR and Recode together - before passing on to other tester. Added a few more Dynamic tables tests; working on Filter View and adding JSL tests where needed. Attended Auto Tagging SE chat with Ernest and others to discuss and out of that came a few changes - mostly positive feedback.
- Worked on this “better read-in of Corrupt value labels” - this works great at 20 - thanks Ernest! I did test it such that if you go back to 19.1.5 and 19.2 you do get the new prompts but tables open and you don’t get the value label back, but at 20 you now DO NOT get the prompt and the table opens and puts the value label back out there - this is not going back to 19.2 - too risky.
- Working on PPT for the Dev talk for early September, and working on Auto-Tagging data for Demo. Worked on Filter View fixes developer is adding with decorate rows - still not complete yet. Working on this JIRA with turning on the Header Graphs by default today - Header Summary Graphs - 2 preferences there are turned on by default:
shannon_conners_3-1788196962460.png
shannon_conners_4-1788196962471.png
- Eric Horton:
- Verified and closed JMP-27463 Clicking the Help button from AspenTech IP.21 Server UI redirects to invalid noinfo online help page; also verified correct help page for Connect to PI Server.
- Verified and closed JMP-31585 Query Builder truncates character data at 524287 characters.
- Verified and closed JMP-30224 Use Query Builder with a Databricks REST connection
- Verified and closed JMP-30222 Import a table with the Databricks REST connection
- Added new tests for Databricks REST connector importing a table and running Query Builder to our nightly test runs.
- Melisa:
- Started pre-testing on column header wrapping being added to Tabulate in JMP-13950
- Summarized A11Y issues found on Distribution for development to review
- Added new Mimic tests to cover issues found with Recode Together in JMP-32024 and JMP-30843
- Entered a regression found with Remove Local Data Filter on Tabulate: JMP-32177
- Nick H: focusing on both bug and feature verifications in JMP 20. Several corresponding unit tests and image tests have been added. I have also continued working on metadata unit tests, working with Ernest to improve certain expected behaviors.
- Justin: Familiarizing myself with the new endpoint manager functionality and begun creating my test strategy and initial testing code for the feature. In addition, I’ve been tweaking tests and maintaining the suffix testing environment.
- Audrey: Trying to recover some work from our intern and assess status since her continuation status is in flux. Unit test updates. Learning about Endpoint Manager (Thanks Chris Hesser!) Added draft release dates for all the 20.x(.x) releases to our JMP 20 Dates page.
Web Testing
- Josh:
- Led JMP Live 20 EA6 release readiness, including installer smoke testing, packaging coordination, and deployment planning.
- Investigated and tested Keycloak installation, authentication, and database migration issues, including SAML and IdP-initiated login scenarios.
- Identified and drove investigation of installer defects affecting WebJMP/Pool Manager deployments and other deployment-related issues.
- Validated EA builds, investigated build compatibility problems, and tested remote PostgreSQL connectivity.
- Assisted with test and load environments, including server updates and infrastructure support for load automation testing.
- Worked with infrastructure teams to validate AWS network connectivity and resolve access issues impacting testing environments.
- Prepared the team for upcoming large-scale installer validation efforts ("installer marathon") supporting JMP Live 20 readiness.
shannon_conners_5-1788196962473.png
- Seema:
- Allow re-ordering of custom statuses UI
- Admin panel section for CRUD custom statuses
- Fetch custom status in warnings panel for use in status dropdown & panel list
- Update warnings status filter to contain custom statuses
- Send in the severity level of the Triage Status to the report
- Add markerIds filter to markers query
- Email notification shows custom triage status without a label
- Notifications sent for some PS reports that shouldn't get them, when flipping group to warnings enabled
- Down migration problem with remove triage_status
- Home page Warnings List (inconsistent link targets, console errors)
- Querying for markers & package info at the same time throws transaction error
- Multi-select on control charts not working
- Session needs to be refreshed to see custom triage changes
- Adding a new status before saving a new order puts statuses back into pre-saved order
- Should not be able to save a custom status with the same name as a default status
- Accepted and Closed:
- Created Jiras:
- Hui:
- Verified `WEBJMP-12641` for Japanese report publishing.
- Reported four defects in Process Screening, row visibility, warning-pane access, and tooltip rendering; one is a regression.
- Continued execution on fine control of Local Data Filter ranges, Crosshair, filter search, Constellation Plot, and JMP Live I18N warning validation.
- Next focus is verification of delivered fixes, targeted regression coverage, and completion of active I18N warning validation.
- Metrics: 1 verified, 0 blocked, 0 reopened, 4 reported, 1 regression.
Core
- Dave B:
- Investigated a way to fix 18/19 journals that have distribution graphs with bar heights that don’t match the axis
- Fixed an ubsan bug with plot col and tried to track down the reason unexpected values where being passed to plot col
- Fixed a bug that caused scripts to sometimes add duplicate segs to a graph
- Dan S: Additional work on showing tooltips on portable boxes during keyboard navigation. Modified the <
- Xan: In Graph Builder, no longer implicitly switch high-cardinality ordinal columns to continuous. In progress: recording header graph options.
DOE and Reliability
- Eric M:
- Added an index sort to allow for faster Kaplan-Meier marker generation for residual plots in Fit Life
- Improvement of Customize Graph behavior for overlay probability plots in Fit Life by X and Life Distribution - Compare Groups
- Fixed bug related to cached GroupRowStateAbility for event plot which was introduced in recent update of that graphic
- Improvements and bug fixes for probability plots in life distribution:
- Helped Simin with a debug workflow as she begins to investigate convergence issues in fixed parameter fitting with log-location scale threshold models in Life Distribution.
- Began reviewing “Complete Guide to C++ Programming Foundations” for new training led by Dan S.
- Simin:
- The first post in the degradation blog series, which provides a general introduction to degradation analysis in JMP, has now been published. Here is the link: An introduction to degradation analysis in reliability. I encourage anyone interested in reliability and degradation analysis to take a look. The blog is intended for a general audience, including people with no prior experience using JMP for degradation analysis.
- I also updated the Phase 2 additive manufacturing design options, incorporating input and suggestions from Caleb, Mark, and Ryan DeWitt.
- Caleb: Working on addressing several bugs in the sample size explorers. Mainly focusing on accelerated sampling bugs.
Hosting and Interfaces
- Will:
- Adding quality of life features to the Data Connector Editor. Namely, removing the modal behavior from the dialog and adding a search filter for connection parameters.
- Investigating MATLAB runtime errors that have been found by testing.
- Recorded my Discovery Baltimore presentation on the SharePoint and OneDrive Data Connectors add-in.
- Paul N: Working on Python updates:
- JMP-32124 - Security - Updating 20’s Python from 3.14.6 to 3.14.7. Windows has been updated, MacOS not yet pushed. There are close to a dozen security fixes in this update.
- JMP-32162 - Security - Update OpenSSL bundled with Python 3.13, from 3.0.21 with EOL 9/2026, with OpenSSL 3.5.7 the new Long Term Support(LTS) version with EOL in 2030. Government Clients making a fuss over OpenSSL 3.0.21 support ending next week. This requires me to rebuild Python 3.13.15 with the rebuilt OpenSSL. Have built and tested on macOS and windows 19.2 but needs a little more cleanup and verification before pushing. Haven’t had to build Python from source since 18.2.2, so my Python build scripts have had to be modernized for Python 3.13. Note: Python 3.14.6, and 7 already ship with OpenSSL 3.5.x so JMP20 is safe from this issue.
- John Schroedl:
- Accessibility: With Evan's help, we fixed an issue preventing our context menus from working with the Windows "Voice Access" feature. Added APIs so portable code can notify screen readers of important UI changes which would otherwise only be known visually. Updated the Quick Start pages to notify users of the tip page transitions.
- Host: Changed host code to prevent cursorTrack from running when the mouse is over a host control. Updated radio and check boxes to use host tooltips instead of portable. Added support for <blog post of apps newly available on ARM as well as our info in the Works on ARM catalog.
Interactive HTML
- Paul Spychala:
- Worked on tool to help test and develop persisting features on JMPLive without needing to setup a server
- Removed circular dependencies
- Fix ordinal axis values on embedded Surface Plots (JMPHTML-15725)
- Support persist settings for Contour Profiler on JMPLive (JMPHTML-15733)
- Mike Stickles: Began working on JMPHTML-15788 (Support multiple response bar charts), derived from JMPPRODMGMT-804 (Interactive HTML: multiple response). This is expected to be a significant effort.
- John Powell: Implementing depth-sorted triangle rendering to improve rendering of Scatterplot 3D’s semi-transparent Normal Contour Ellipsoids and Nonpar Density Contours (JMPHTML-15727) .
- Michael Senoyuit: Worked on expanding the functionality of counts and find in LDF HTML.
JMP Live
- Aurora:
- Process Screening Triage (bug fixes, improve performance of report load, improve performance of audit log page)
- Investigate (with Eric) a spike in database connections during automated tests
- Update third party packages
- Plan (with many others) JMP Live EA 6 build
- Record Discovery US poster
Statistics
- John Sall
- In Process Screening, more menu item reordering (JMP-29636), and fix crash with Measurement Sigma property (JMP-32101).
- In Design Space Profiler, share limit area pale green (JMP-32118 ).
- In Response Screening, fix a TSAN-detected data race (JMP-32126).
Stat Testing
- Tonya: Testing new features simplify menus and conditional formatting in Process Screening. Testing new feature for out of spec indicator column in Manage Limits. Updating CUSUM unit test files due to recent string changes. Further testing of CUSUM after Annie's rewrite of the platform. Cleaning up multivariate capability Jira tickets and moving them to the newly created component.
Life Sciences Updates
- Drew: Working on a benching tool to assist testers in creating the benchmark content for a selected JMP Clinical template. Resolving JMP Clinical must-fix Jiras.
Note from Shannon
Even though we’re headed back into the 90’s for a few weeks, coffee shops are already rolling out the fall flavors!
shannon_conners_6-1788196962507.png
And this post from r/dataisbeautiful is two years old, but if you happen to see one with updated data, let me know! :smiling_face_with_smiling_eyes: Have a great weekend!
shannon_conners_7-1788196962519.png