Welcome to the JMP Development Update for March 31, 2023!
With JMP 17.1 updaters now available on support.sas.com, annual license customers can now obtain the latest set of maintenance fixes. Other assorted deliverables like JMP Subscription and the JMP trial installers are also making their ways into their respective online homes. Brand new customers in select JMP territories will receive JMP 17.1 full installers through the end-to-end JMP CPQ system, while delivery of full installers for existing customers will be coming soon through My JMP. (Just in case you noticed I said “My JMP” instead of “My.JMP” – yes, the rumors are true - the photographer who owned the domain myjmp.com has recently agreed to transfer ownership to JMP the company for our future use. Good news!)
This week, JMP managers approved the creation of an extremely limited scope JMP 17.1.1 desktop release. This branch and release will be solely for the purpose of resolving a regression issue encountered during the JMP Live publish operation that prevents publishing of certain control charts that leverage both local data filter and control chart warnings. This issue is impacting JMP and JMP Live customer Regeneron as they migrate their JMP Live environment and scripts from JMP 16 (which warned but allowed the publish to continue) to JMP 17 (which experiences an errors that prevents the publish from proceeding).
We are also coming up on our freeze for JMP 18 EA2, planned for April 7th. The EA2 deadline for updating JMP 18 feature pages and submitting videos is April 10. Thank you for all the updates I’ve noticed this week so far! Also, if you are highlighting a feature in EA2, please list questions you’d like to ask EA members on your feature page under “EA Requests”. And finally, if you’d like to record a short video for EA2, please see these EA Video Guidelines or reach out to Mia Stephens.
If you are working on a major new addition for JMP 18 and have not yet created a feature page, please use this How-To page in Confluence as a guide. As a reminder, an important piece of any major feature project is to enter a Jira epic that will serve as the parent container for your project. There is a Jira section on the feature page where you can link to your epic and even embed filters to show child items. Remember, you do not track code pushes in an epic because epics do not have roles like developer or tester. Instead, you will add child stories under your epic that describe the pieces and parts of the project.
It is very helpful if you refer to the feature release number in the title of the epic – e.g., “Feature X for JMP 18”. Or, if you are continuing to enhance something that was launched in a prior release, you can use a title like “JMP 18 Updates to Feature Y.” JMP Product Management is using these feature pages and associated epics as they build out the roadmap for current and future JMP features.
Thanks to both of our JMP Dev presenters this week, both from "TTFKAXT-NJT" (The Team Formerly Known as Xan's Team – now Julian’s team)! Thanks to Eric Hill, Mandy Chambers and new team director Julian Parris for tag teaming on coming up with that catchy nickname in the meeting chat for Thursday…I think I’ll hold off on changing the header for the group section below just yet…! As I mentioned, I have been getting a lot of requests to present dev demos recently and I am doing the best that I can to accommodate them in a timely manner so thanks all for your patience.
- At our session on Tuesday, Ernest Pasour showed off updates to JMP 18 Workflow Builder, demoed new table header statistics, and shared the newly rewritten Columns Viewer user interface that is slated to replace the old Columns Viewer in JMP 18. If you missed the Tuesday meeting, you can find a recording here.
- And on Thursday, Dan Schikore presented on his new Group Platform work for JMP 18, intended to help manage many aspects of report windows when using by groups and multiple Ys. You can find more information in Confluence here. If you missed the Thursday meeting, you can find a recording here.
Thanks very much to Tonya Mauldin for sharing the beta/crash data for the last 2 weeks. Crashes are selected.

Beta/Crash report for the weeks of 3/24/2023 and 3/31/2023 | JMP Live (sas.com)
And last but never least, thanks to Audrey Shull for sharing this week’s Confluence Tip of the Week!
Atlassian is in the midst of migrating its users to their new page editor. All of our old, migrated pages defaulted to the old page editor. All of your newly created pages will default to the new page editor. I encourage everyone who finds themselves editing older pages to go ahead and convert them. In the lower left corner, you’ll see this message. That’s your cue to click Preview page and go ahead and make the conversion. Let Audrey know if you have any trouble with it.

General Announcements
- If you’re willing to be a featured employee on Inside JMP, please download a copy of the Get to Know form. Simply fill out the questions and when you’re done, upload it, along with 3 photos of you to the folder. Thank you for helping to make our JMP family a little more familiar!
Important Upcoming Dates
- JMP 18 EA2 Freeze – 4/7/23
- JMP 18 EA3 Freeze – 5/12/23
- JMP 17.2 Code Approval – 6/13/23
- JMP 18 EA4 Freeze – 6/23/23
- JMP 17.2 Code Freeze – 6/30/23
- JMP 18 Development and Marketing Feature Freeze – 7/21/23
- Please visit Confluence for a full list of JMP 17 and JMP 18 dates.
JMP Development Updates
Data Discovery
- Xan: Background map resolution issues reported by JMP user Craige Hales. Last week was another early DC cherry blossom peak:

- Dan S: Continued work on Group Platform for By and Multiple-Y. Fixed several issues with order-by and layout, particularly tabbed layout combined with various other options. Fixed the group outline title for Principal Components, and worked with Annie to enable ordering of CCB by platform-computed values. Continuing to update the HowTo page that describes how Group Platform interacts with the underlying platforms.
- Evan: Finished Where optimizations for equalities and inequalities. Added parallelism to Where. Only remaining optimizations are Contains and Regex to have full optimized support for everything Data Filter outputs. Dealt with some Private Data Table issues. Investigating column formula performance.
DOE
- Caleb: On Wednesday, I presented a webinar for ISEA (International Statistical Engineering Association) on the proper use and interpretation of the Statistical Engineering Framework as part of findings from a working group I led last year. The presentation was very well received! A link to a recording of the webinar should be available soon on this page. Also, I finished some updates to the optimization routine for the new ALT platform. I’m back to working with Brad on our new alternative to Lenth’s method and making great progress!
Host
- Paul N: The legacy Map server’s hardware is to be decommissioned today. The new map server has been up and live for approximately 2 weeks.Continuing work on Python.
- Python uses reference counting for its objects. The current Python integration ignored the proper increment / decrement of objects by replacing the decrement operation with a no-op allowing it to leak. I have been tracking down and fixing the reference counting in the existing code and ensuring that the full embedding pays close attention to the Python object management.
- Windows and macOS support for a user specific site-packages directory inside of SpecialDir::ProductUserAppDataVersion. A JMP + user specific package install location.
- Addition of a __version__ property to the jmp package. This allowing JMP’s Python API changes to be tracked, documented, and tested at a programmatic level.
- Exposing special directory paths on the Python side: sample data, sample import data, sample scripts.
- Addition of jmp.open(path) to jmp package.
- jmp.open(jmp.SAMPLE_DATA + 'Iris.jmp')
- Further testing of running JSL from the Python side, including calling some of the JSL Python functions…
import jmp
jmp.runJSL('''
Names Default To Here(1);
Python Init();
d1 = 3.14159;
Python Send(d1);
'''
)
print(f'JSL set value: d1 = { d1 }\n')
Having output:
JSL set value: d1 = 3.14159
- This how I’m planning on ensuring the Python support is highly functional long before a deeper Python API is implemented. Allowing the Python to be supplemented by calls into JSL, focusing on the in-memory data interoperability between JMP, JSL and Python. The Python API can grow slowly and deliberately over time. Right now, the JSL Python Init() is still needed due to some side effects. I should be able remove the need when called from within the full Python environment. The above is just an example; I do not expect to need to use JSL to Send() and Get() data between the two environments as a regular occurrence once appropriate data types are created for the Python side to wrap JMP objects.
- John Schroedl: Investigating changing TEConverter on Windows to use the ICU library similar to Mac as part of adding encodings needed by the new SAS import code. More code signing work.
- Michael H: Finished up the new SAS dataset importer. Started investigating improvements to the OSI PI importer.
Interactive HTML
- Paul Spychala: Another week working on Axis parity between desktop and HTML by adding unique font size support for nested axes (JMPHTML-700). We also added parity for Log Axis with Increments other than 1 (JMPHTML-2065, JMPHTML-1331). We also wrapped our HTML reports to get around Cross Origin Resources Sharing limitations of Iframes on cross server implementations. Lastly we improved the performance and memory usage of reverting all axes and scales that could freeze the web browser (JMPHTML-2026).
- John Powell: Continued working on support for Contour plot with help from Dan S (JMPHTML-1071). Started adding support for Contour plot legend styles (JMPHTML-2063). Started Q1 check-ins.
- Praveena: Continuing to work on Make table highlights respond to selections in graphs.
Learning Contour plot segment from John Powell.
JMP Live
- Aurora: 18.0 - Use client's preferred sort order for in-folder navigation. Start implementation for @ mentioning users in comments. Miscellaneous - Helped with interviewing for an open position. Added another Jira automation rule for JMP Live (finding automation very handy). Moved offices. Setting up a monthly in-office board game lunch - see me or Aaron Anderson for details.
- Michael G: Worked on and pushed out Deleting Users UI. Did UI work for AD Sync. Various code reviews and bug fixing.
Statistics
- John Sall:
- In Design Space Profiler when using "Make and Connect Random Table", you have options to embed the plots with the Design Space Profiler, proposed by Sam Gardner (JMP-16170).

- In Response Screening for Means Differences, add the Benjamini-Yekutieli FDR-adjusted confidence limits (currently hidden, later added to PlotCol). (JMP-14909)
- In Fit Least Squares plots, show excluded points with an 'e' symbol in light gray. Previously, it showed validation set and test set points with 'v' and 't', so this is using a similar mechanism. (JMP-5571, JMP-16220)
See 'v' and 'e' points, not used in the fitting.

Stat Testing
- Mark: Made a flow chart for the instructions to use the Usability Study Tool with Jacob. Submitted abstract about usability study of new factor list to JMP Discovery Summit USA with Jacob. Supported including several usability studies in EA 2 release. Closing tickets for Easy DOE. Answering question in JMP Community.
- Jacob: Verifying Jira tickets and cleaning unit tests. Working on usability studies for MSA Design and Easy DOE with Caleb, Mark, and Ryan. Updating the usability study tool to incorporate feedback from Laura Castro-Schilo. Investigating performance issues.
- Tonya: Working with short run control charts. Answered user community questions about Type 1 Gauge, Nelson test 3, and customizing tests in Process Screening. Bug verification.
Product Management
- Bryan F: Processing data from Discovery Summit and coordinating with developers and others so the results are actionable. There has also been discussions about usability testing and tradeoffs between various methods.
Technical Support
- Duane:
- Wendy has been interviewing for her new team. Many very good candidates have been evaluated. Hopefully, the role will be filled in the next couple weeks. Additionally, several of us in TS have been reviewing/testing JMP Legacy Accounts being pulled into Salesforce and preparing for installer assets to become available to existing customers. This morning was interesting. We came into an email loop with an IT email account at NXP which produced over 1700 cases. Candice was able to turn off the flow and end the cycle, but nothing like coming into an unassigned folder like that!
- Here are the TS JMP Live reports and the link to the Jira filter showing the tickets reported by TS for the last 14 days.

Development Operations
- Bob: Pushed 17.1 updaters for JMP and JMP Pro externally. Worked with SalesForce team to prepare uploads to MyJMP early next week. Prepared Trial and ProTrial to be pushed early next week. Resolved issues with new JMP LLC signing certificate for Windows installers.
- Melanie: Continued testing localization Jenkins job improvements and tested new MIF-PDF job that is migrating to AWS. Tested and then changed the screen scheme for JMP DevOps Tooling Jira project. Created and explored Jira boards and filters for DevOps and L10N tooling. Tested filename markers in 2 final Chinese docs. Continued planning with localization team on AWS migration. Ate pizza with co-workers!
- Myron: Worked on JMPTOOL-767 - Migrate the MIF-PDF jobs from a CAVCENT VM to AWS as well as JMPTOOL-267/JMPTOOL-642 - New XSTR files are not being created automatically on non-Main branches when JMP.xlf is updated.
- Jim: Verified fixed Jira tickets and reported new ones resulting from the latest ASAN and Debug UT runs. Working on producing a JMP Clinical 18.0 installer for macOS.
Documentation
- ChrisB: Testing for JMPTOOL-788, the help copy script. Going to need a tweak to it so that it doesn't clobber existing /jmplive and /jmppublic directories. Moved offices. Some WebWorks interrogation as I tried to figure out why it creates 2 versions of output. Fixed a minor issue with all the 17.1 help files and pushed to prod.
- Qiana: Worked on Quick Start New Feature page. Worked with Jim and Bob to remove the Documentation folder from the installer. Worked on tooltips for the JMP Help menu. Coordinated with Test and L10N on JMP Help Test for 17.2 for JA and ZH. Project planning and coordination.
- Susan C: Creating & planning 18.0 Jiras for our EA processes. Working on a content outline for Tips of the Day, to align with Ruth & Mia’s videos for new users. Contributing to Help menu revamp ideas for menu options & tooltips.
System/Host Testing-Cary
- Mandy: Created JIRA ticket for JMP 18 Sikuli testing for prompt/if/else features of Workflow Builder (JMPTEST-279). Entered some goals for 2023 into Workday. Opened 2 JIRA tickets to add a few new workflows to JMP 18 sample directory (JMP-16183, JMP-16184) Chased down another random diff with nightly runs and found my tests failing due to another test before it with Evan’s great help. Working on 2 workflow examples to use for an EA2 video – preparing to record and share prior to April 10th. Created a DataTable/Workflow folder in JMP 18 for workflow tests since there are now scripting calls to open and execute workflows. Testing and verifying JIRA tickets as usual and adding tests where needed.
- Mike M: Working on Workflow Sikuli tests and another Columns Viewer test. Opened a couple Jira issues for docs and tutorials from finishing up the 17.1 installer testing. Investigating some very noisy image tests that should be cleaned up now. A couple new columns viewer Jiras to open based on an initial run-through with Ernest. Still trying to get the Chinese jmplive help in the right spot for 17.0 (trying to manipulate redirects, copy files into new dirs., etc). Localized JMP Help (17.2) testing coming up next.
- Hunter: Tried to reproduce some test failures with Rajneesh and Fang on specific Mac versions, completed three security training courses, and looked at two issues with odd behavior with reports in the project window.
- Audrey: AWS learning, prep for future, and migration of servers.
Note from Shannon
Hope you all have a great weekend!
