Welcome to the JMP Development Update for January 31, 2025!
With JMP 18.1.2 now released to customers, we are heading towards security freeze for JMP 18.2 on 2/21/25. 18.2 final installer candidates will be created and testing will begin installer validation efforts soon after security freeze. Please note: if you need to push security fixes like third party library file updates or static analysis fixes to the 18.2 branch in Perforce before security freeze and do not currently have access, please contact Jim Borek.
With the release of JMP 19 EA6 in MyJMP last week and the announcement of its availability to customers, we are now looking forward to our JMP 19 EA7 freeze date on 2/13/25. Thanks very much to Audrey Shull, Hunter Weaver, John Schroedl, Bob Hickey and Daniel Powell for helping quickly investigate an authorization issue that cropped up with EA6 earlier this week! Mia Stephens brought it to our attention that several SEs had installed the JMP Pro EA for testing and found it was launching as JMP EA. Further testing and conversations with customers revealed that it only impacted JMPers because of a temporary interruption of soft checkins for internal users that prevented the proper validation of some authorization related fields new for EA6. Thanks very much to our internal users, testers and developers for always being willing to report and troubleshoot issues and also come up with work-arounds that we can share with impacted users, whether internal or external! I very much appreciate the teamwork and willingness to work late (or early) when needed to assess and understand such issues.
Also, a general comment on dates - please note that after a few years’ experience with EA Code Freeze dates almost always planned on Fridays, the DevOps team has adjusted future release schedules so that we freeze on Thursdays instead. This adjustment will allow my teams to create more quickly identify and resolve any build or installer issues with final installer candidates prior to the weekend. In general, we are on much shorter timeframes to validate and release EA candidates so it is very helpful to get issues ironed out while everyone is in the office so that the testing process can proceed as quickly as possible by Monday morning.
Thanks to Tonya Mauldin for sharing this week’s beta/crash report with crashes selected!

Beta and crash report for the week of Jan 31 2025 | JMP Live
General Announcements
Important Upcoming Dates
- JMP 18.2 Security Freeze – 2/21/25
- JMP 18.2 Final Image Candidate – 2/24/25
- JMP 18.2 QA Signoff – 3/13/25
- JMP 18.2 Release in MyJMP - 3/18/25
- Please visit Confluence for a full list of JMP 18 and JMP 19 dates.
JMP Development Updates
Development Operations
- Melanie:
- Daily Unit Tests: Monitoring connection problems on Sequoia and new parallel runs. Running updated console log script. Here’s a graph that shows run time in hours for daily unit tests for JMP Pro 19.0 on Windows 11. You can see how much faster we get all results after splitting the stream to run Rapid, Regular, and Stress in parallel instead of sequentially:

- Stringbot: Tested Myron’s fix for encoding Unicode characters correctly. Looks good!
- Thanks to Jim: For removing the list of all files synced in the console for daily unit tests – the logs were very long and were ballooning the file size for the data table, making it hard to work with. Removing it all decreased the file size for the 19.0 Windows unit test data table from 194 MB down to 4.63 MB!
- Jim: Updated multiple JIRA tickets related to process setup for JMP 18.2.1; decommissioned three older testing Mac Mini machines for M3 and M4 machines; continued to work around the issue associated with CIS’s security policy on VNC Viewer; with Audrey Shull’s assistance (thank you!!!), I reclaimed unused intern Perforce licenses; ongoing work attempting to resolve issues in JMPTOOL-1444; completed my updates for console logs for JMPTOOL-1480.
- Shannon L: Started discussions with JMP Procurement on transitioning Atlassian software renewals for summer to JMP. Worked with WebJMP team on POC for issue-level security, to be rolled out next week. Reported Confluence bug on pages not loading to Atlassian. Started spec'ing out MSSQL deprecation project with DevOps team. Jira Product Discovery security review underway. Weekly technical meetings. Configuration improvements to our Jira instance.
- Myron: Worked on JMPTOOL-1438 – stringbot corrupting utf8 strings, JMPTOOL-1460 – sample data delete script failed, and JMPTOOL-1477 – move data (and jobs and etc.) from MSSQL Server/jmptool to PostgreSQL/AWS.
- Shannon C: Wrapped up Q4 wrap-ups with team members. Researched SEMX UT issues using historical Jenkins data. Investigated a few crashes.
Localization
- Krzysztof: Finalized and pushed the new drop of translations for Marketplace. Further research in term extraction using LLM. Answering queries from translators and reviewers (for PortableUI 19.0). Preparing for memoQ license renewal (re-evaluating number of translator licenses and new components offered by memoQ). Testing new l10n automation features.
- Trish: Worked on getting template files for localized 18.2 JMP Help (JMPLOC-6383) from the doc team and am now getting translations completed; planning for JMP Live 19.0 help (JMPLOC-6805); answering translation queries; Marketplace translations for the January handoff completed, pushed to GIT and Kristen was notified.
- Howard: Worked on use case for Dashboard visioning for JIRA integration. Bug fixes.
- Sandy: Working on new string return process.
Documentation
- Khawar: Sample index - Finished adding suggestions for all the inconsistencies issues; Finalized the pages. Oxygen callouts - Discussed the process with Chris; Created dita files with instructions for images
- Chris: Building and publishing 18.0 and 18.1 help. Entered Jill’s DJ edits, and discussed the editing guidelines in general. Started writing the callout guidelines.
- Qiana: Sample data table work. Addressed edits in the Keyboard Shortcuts. Addressed edits in the Windows menu description card. Project planning and coordination.
- Devon: Reviewing the help key report, gathering info on new features for 19.0 docs, reviewing converted DJ files for internal doc team review.
System/Host Testing-Cary
- Mandy: Answered a few EA6 TS tracks for users found a few “where” things we missed, so very helpful to have those come in. One user found a crash and we worked and worked on it - thanks to much help from @Evan McCorkle who worked with the traceback and figured out what to do to replicate it so we can fix that one! Worked on tabulate changes, adding a few tests and verifying JIRA’s. Also worked on some tags/emoji jiras and will begin trying to write some tests. Evan and David W also worked on JSL for the filter view so beginning work on some JSL scripts to add to the framework there too. Busy time!
- Audrey: Investigating an authorization issue with JMP Pro when upgrading from EA5 to EA6; happily no customers were affected. Consolidating final installer test tasks into a few scripts and workflows to help streamline it. Going through my Jira lists.
- Hunter: Worked through several authorization and host issues encountered this week trying to reproduce problems and updated JIRA items with testing notes.
Web Testing – Cary
- Josh: I’ve been covering JMP Live while the Beijing team celebrates the Lunar New Year this week. During this time, I’ve performed some regression testing around Direct LDAP and Keycloak. Additionally, I’m testing the JMP Add-in Manager for JMP Live. This feature will allow customers to use data connector add-ins within JMP Live, providing a powerful way to integrate and manage their data seamlessly!

Core
- Dave B: Threadpool progress bar work to make it more responsive after cancel and fixed a reuse bug. Fixed a customer reported problem / crash with triple s importing. Add-In Status dialog work to support a list of locally developed Add-Ins.
- Dan S: Updates to stretching in LineUpBox. Add JSS classes for launcher components. Updated some older search input fields to use FilterFieldDisplay.
- Evan: Working to get Tag emoji/color to show up everywhere. Looking into Tag action recording.
- Xan: Unit tests for new Col XXX functions. Graph Builder grouping variable bugs.
DOE and Reliability
- Caleb: This week, I attended the RAMS conference and co-presented a tutorial on modern DOE with Ryan. We had a great turnout and good feedback! Also, a shout out to Peng on his tutorial on auto differentiation! Overall, it was a good conference! Even got a chance to take a walk on the beach!

Hosting and Interfaces
- John Schroedl: Working on changes to text input which give us control over the placement of alternate text input UI such as the Emoji picker, IME language popup, Clipboard history dialog, etc. Can be disabled by a hidden preference if we see input problems. Improved code doc in some host headers. Troubleshooting some customer issues.
- Paul N:
- JMP-23469 - https://jmpdiscovery.atlassian.net/browse/JMP-23469 JSL R support using Python. Most of the original JSL R functions are now implemented. Spent time cleaning up debugging output, testing scripting index scripts. Added some additional functionality to both R Send() and Python Send().
- The Send() functions now allow the user to use data table scoped columns to pass a column through to Python or R. For example:
(assuming Big Class)
R Send( dt:height );
will create the R vector height from the JMP column. Also cleaned up the optional second parameter to send it as a different name.
Python Send (dt:height, Python Name(“ht”) ); or
Python Send (dt:height, Python JSL Name to Python Name(“ht”));
or new functionality, just
Python Send (dt:height, “ht”) );
All three do the same thing of sending the height column as name “ht”. This works for both R and Python.
- The jmpex package provides an API analogous to the JSL interface. Allowing interaction with R from a JMP Python script without having to delve into the specific ‘rpy2’ package’s API.
import jmpex
dt = jmp.open(jmp.SAMPLE_DATA + 'Big Class.jmp')
jr = jmpex.R.R('rpy2')
s = jr.set( dt['age'], 'age' )
print(s)
print(s.__class__)
a = jr.get('age')
print(a)
print(a.__class__)
Here too from the Python side of things the .set( ) function accepts a jmp.DataTable.Column object, so behavior similar to dt:age occurs via the Python syntax of dt[‘age’].
JSL’s R Init() will install the jmpex package automatically from our $SAMPLE_SCRIPTS/Python directory if jmpex isn’t initially found. Also, because jmpex is an actual Python package, it knows it’s dependencies, rpy2, numpy, pandas, and their dependencies. Installing jmpex pulls in all the necessary dependencies, using Python’s package installation machinery. This does not install R itself; the user needs to have already installed R on the system and set the R_HOME environment variable to point to the appropriate directory. On the Mac, that’s /Library/Frameworks/R.framework/Versions/Current/Resources', on Windows on My machine it’s 'C:/Program Files/R/R-4.3.1'. These paths are also hardcoded into the jmpex package so R_HOME is unnecessary if your path to R matches the default.
Using the Python help mechanism,
help( jmpex.R )
will display the R class API implemented within the jmpex package.
Also, the Python side of things does not automatically install jmpex. If the user is only running from Python, then they will need to
import os
import jmp
from jmputils import jpip
jpip(‘install’, jmp.SAMPLE_SCRIPTS + ‘Python’ + os.sep + ‘jmpex.zip’)
This will trigger the install of jmpex and its dependencies from a Python script.
Second the following is also supported from JSL R Send() and Python Send()
R Send( ( dt:weight << get values ), “wt” )
Here you do need to set the as_name parameter since the evaluation of the expression doesn’t have a name.
Interactive HTML
- John Powell: Working on an issue where Alarm Graph in Process Screening(Environmental Monitoring) is not launching control charts (JMPHTML-14330). Started investigating why Local Data Filters work incorrectly with Process Screening published to JMP Live (JMP-24553). Updated the jittering for Interactive HTML version of Scatterplot 3D to be repeatable so that image comparisons are more reliable (JMPHTML-14279).
- Paul Spychala: JMPLive and HTML now support custom color GroupBoxes (for Page roles) (JMPHTML-13640). JMPLive/HTML GStream (Custom Graphics) rewrite re-adds tooltips (JMPHTML-14349).
- Praveena: This week I worked on the following process screening issues and a couple of control chart warning bugs
- Mike Stickles: Completed work on JMPHTML-14338 (S1549015: Bar: Label: Need to support custom Number Format). Began work on JMPHTML-2123 (Support axis Format to show Scientific format w/base and power/exponent instead of "e").
JMP Live
- Aurora: Control chart warning improvements (broaden ability to filter individual warnings by assignee or status, notify mentioned users even on comment / triage note edit, send single notification for multi-warning note that mentions a user, prep for Discovery Europe).
Statistics
- John Sall:
- In Process Screening, provide L95 and U95 confidence limits for quantiles, rather than SE. (JMP-23533), launch option "Keep Distribution Details" (JMP-24370), for CCB launch use Time role (JMP-24655), fix test bit setting (JMP-23533).
- In Categorical, restore menu item "Format Elements" with one dialog for all five elements formats with new "Std Dev Format".
- In the Profiler Optimization Control Panel, editing the Target needed a fix to add a centered argument (JMP-23768).
- Happy Groundhog Day 🦫!
Stat Testing
- Haley: Reviewed CVs for incoming GRA candidates with Clay Barker and James Koepfler. Verified recent additions to the SEM platform, including Model Notes and Disturbances lists in MIIV reports. Investigated a client-report crash in multiple-groups SEM. Met with Laura Castro-Schilo to continue preparing for our upcoming longitudinal SEM workshop.
- Jacob: Testing Easy DOE, writing unit tests for the new enhanced simulate responses feature. Investigating performance issues. Testing Categorical, writing unit tests for revised Format Elements feature. Preparing Easy DOE usability study planned for Discovery Europe.
- Tonya: Verifying CCB changes.
Life Sciences Updates
- Drew: Just JMP Clinical 19.0 Jiras and a couple of customer support meetings
Product Management and Product Marketing
- Bryan F: Worked with Dan Schikore and Evan on theming needs, worked with Sarah Sylvestre on a report on recent UX practices, worked with Michael Goff and Evan McCorkle on some designs, completed creating of a JMP 19 banner with input from Aaron Kennedy, working with Sarah Gilyard on preparing a test for profiler improvements at the JMP Lab at Discovery Summit Europe.
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:

Note from Shannon(s)
Thanks to Shannon L for sharing this! I agree - on one hand, it feel like – is it really almost February already? And on the other hand, January really seemed to go by veeerrryyy slowly. But yes, we did it! :smiling_face_with_smiling_eyes:

And whether the groundhog sees his shadow or not on Sunday, I’ll be enjoying the springlike weather this week! I’m excited for my middle sister Katie (visiting from NY this weekend) to be able to enjoy it too. She’s (literally) just arrived on a plane from upstate NY where it’s been ranging from 10-30 degrees with way too much snow, sleet and freezing rain. Whatever your weekend plans, hope you have a good one too!
