All information is SAS company confidential. Do not disclose.
Welcome to the JMP Development Update for May 14, 2021!
As I’m sure you all know, JMP 16.1 Code Freeze is here. The DevOps team will be working at the beginning of next week to get all processes up and running for 16.2 so thanks in advance for your patience. We’ll keep you posted on progress.
We are quickly moving towards JMP 17 EA1, planned to be built in early June. Please continue to update your Feature pages in the JMP 17 Features Category in Confluence for any items that you plan to highlight to early adopters. It would be particularly helpful if you are currently working in Defects to work with Shannon to migrate your feature items into Jira issues. Confluence can auto-detect the status of Jira issues and display them in a Confluence page. Need to create a new page for a Feature you’d like to highlight? Please copy and fill out this template.
We met as a group this Thursday. If you missed the meeting, you can visit the link in the dev meeting invite to see a recording or click here. We have several meetings on the schedule in the coming weeks, but please let me know if you’re interested in presenting in June or later this summer.
At the start of the meeting, John congratulated Chris Gotwalt on the occasion of his 20th SAS anniversary and spoke about his many contributions over his years with JMP. Chris also spoke about his deep appreciation for working in the JMP group and shared the story of how he ended up working with JMP as a technical fellow. Brian C also spoke in honor of John Schroedl’s 30th anniversary at SAS and shared details about John’s many contributions to SAS user interfaces on Windows and various efforts he has spearheaded over the years.
Thanks very much to John Sall for presenting on performance improvements he has been making in support of analyzing genomics data in JMP Pro. John emphasized the importance of profiling performance with large wide data tables to identify bottlenecks and gave a number of examples where there was significant overhead not necessarily in the analytical part of the code, but rather in report or table creation/ update. If you missed the meeting, you can see the recording by visiting the link in the original invite. You can also find a PDF of John’s slides here.
As a follow up to the meeting, Mia Stephens and Russ Wolfinger request that you share your thoughts about the future direction of JMP Genomics by filling out this survey. They would like as many responses as possible, and say that you should feel free to skip questions if you don’t have direct experience in that area.
Thanks as usual to Tonya for providing the details on crash and telemetry tracks with Version 16.1 selected! The JMP Live report is here: Crash & Telemetry tracks for the week of 5/14/2021 | JMP Live (sas.com)
Product Release

Topic


Platform

Company

General Announcements
- We are welcoming our (virtual) JMP summer interns next Tuesday. JMP is hosting 8 interns this summer, including returning JMP host team intern Katherine Li, plus 7 new interns-two others in R&D and five working with the marketing team.
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 16.1 Code Freeze – 5/14/21
- JMP 17.0 EA1 – 6/4/21
- Please visit Confluence for a full list of JMP 16 and JMP 17 dates.
JMP Development Updates
Documentation
- Michael C: Migrated the majority of existing DOC.* defects over to Jira. Please enter any new issues for documentation in the JMP Documentation (JMPDOC) project space in Jira. We will be removing the DOC.* components from Defects once we finish out 16.1 production checks next week.
- Sheila: Worked on the release notes and Jiras. Reviewed the JMP Live doc and generated help as a test before the doc is sent for translation. Generated the 16.1 help. Worked with Michael to use regular expressions in Beyond Compare to identify help pages that have changed since the last generation. Then only those pages will be reviewed.
- Karen: Completing 16.1 documentation updates. Thanks for the quick reviews from collaborators (Ryan L, Dan S.) for the last few tweaks.
System/Host Testing
- Nala: (1) Testing Python initialization when the machine has multiple versions of Python installed, see defect S1586708. (2) Tested the Client preference, which is new in JMP 17, see WEBJMP-2588. (3) Investigated FD unit tests failures: 200+ tests failed in the nightly framework. The reason is that the sample data big class.jmp was changed by some other tests. (4) JIRA/defects verification.
- Eric Wang: (1) Test JMP Live Jira items, testing Basic Spaces GraphQL APIs WEBJMP-3160. (2) Add new Jest tests for add/delete/get a space. Writing tests for 'get spaces'. (3) Tested 'JMP Publish' for NF S1587664 'use WebView2 Browser instead of embedded IE'. (4) JIRA/defects verification.
- Da Li: (1) Tested JMP NF 'MFI for PDF', see BRDSTG-3117. (2) Tested 'Internet Open', 'Signing into Google Sheets' and 'File > Open with .html file' for NF S1587664 'use WebView2 Browser instead of embedded IE'. (3) JIRA/defects verification.
- Mike Wu: (1) Completed the JMP 17.0 profiler regression testing for JMPHTML-779 and JMPHTML-535. Tested manual activation against both TEST server and PRPD server. (3) Tested JMP 16.1 Early Install for JMP AL updater on Windows and JMP Student Sub on Mac. (4) JIRA/defects verification.
Mike M: Reviewed 16.1 JMP Live help docs ready for translation, worked on early installer testing for 16.1, Sikuli review session with Annie that generated 2 new Sikuli tests to be written.
Josh L: JMP Live Story Testing and bug verification focused on 16.1 issues. JMP Live 16.1 Documentation Review. Working on getting firewall ports open to our Azure instance in landing zone 2.
- Cary / Beijing JMP Live Testing Jira Status
- 05 Stories in Testing
- 16 Stories in Test Ready
- 05 Bug Created in the last 7 days
- 13 Stories / Bugs Closed in the last 7 days
- Audrey: Prep for interns, recovering our QA Nightly Automation machine with ISD, early install testing for Mac & Win.
- Lisa: Early installer testing for 16.1. Saw a case where NameExpr did not evaluate correctly from the getCrashData.jsl in 16.1 & 17.0 so Dan and Evan reverted the behavior. Discovered a crash using MR columns in parallel plot.
- Justin: Added new filtering by known Jira issues on the tester unit test result page. This new filtering is not yet taken into account for email notifications or the filtered counts on the main results page. There is now also a line number shown in the failure details. If available, this will point to you the line in the file where the assertion that failed is located. Transitioning unit tests to Audrey.
- Mandy: Did 16.1 pre-installer testing – completed with no huge issues. Working on tables to use for Tables > Preview EA1 video, along with testing changes Ernest has made/is making. Helped chase down customer issue with column properties between JMP and JMP Pro. Helped report a crash from Brady, dragging grouped scripts around in the table on Mac.
Data Discovery
- Dan S: 16.1 fixes for Contour Plot crash and labels, Diagram platform crash. JMP 17 performance improvement for generating thumbnail images in Dashboard Builder, Tab Pages, and Graphlets. Made updates to image output in collaboration with other developers that may impact saving output, Copy/Paste, Drag/Drop, internal image capture and use, or other processes that pass through the functions described in this How-To. If you see any changes in image quality, loss of vector formats, or other problems that seem related, please let me know.
- Evan: Reformatted Scripting Index example string literals in C++ for easy editing. Improvements to jslgen. Working on TopMap interface to improve performance and ease of use.
- Dave B: Fixed parallel plot crash with multiple response columns, updated plot col and added interval style plot (still some work to do), fixed a problem reading older jmp journals, fixed a problem cloning splitters, updated crashreader program to validate checksums before showing source code snippets.
- Ernest: Fixing miscellaneous bugs. Work on table preview.
DOE
- Brad: “The prediction profiler at 30” is now published online in Quality Engineering. Please contact me or Shannon for a PDF copy of the full article. This short article on the topic also appeared in the JMP 16 JMP Foreword.
- Caleb: Started work on improving the ALT design platform workflow and finalized my plans for 17.0 work.
Host
- John Schroedl: Web browser work (navigate in-place, hotkey crash). Worked with Dan on bitmap capture. Started high DPI splash screen investigation. Helped people with various VS issues.
- Aaron: Various Project and Window Handler fixes. Ongoing work to simplify and clean up FileSpec::dlgPick() and friends. Added support for opening .bmp files in JMP windows. Learning about JmpLive publishing code from Bryan Boone.
HTML5
- Held a HTML5 development process improvement meeting (minutes).
- Mayowa: Working on supporting customized font sizes in interactive html (JMPHTML-837)
- Bryan F: Continued working on HTML5 dark mode. Developed a prototype technique to automate HTML5 benchmarking. Continued to work on eliminating discrepancy between the size of HTML5 reports and JMP reports.
- Josh
- HTML5 Benchmarking: Presented benchmarking tools I developed last week to the HTML5 team and testers. Begin collecting benchmarks checked into /test/HTML5Tests/Performance.
- Categorical Profilers: Broke Epic JMPHTML-764 down into smaller JIRA stories to track individual parts. Pushed update to data structures and rendering which allows categorical profilers to be exported using the temporary preference (JMPHTML-767).
- pref(Interactive HTML Enable Categorical Profilers(1))
- Converted Confluence page to use the JMP new feature template. Discussed testing effort and implementation with platform owners and testers. 8 out of 9 planned platforms are now implemented on C++ side (deciding what to do about standalone profiler, see JMPHTML-869).
- Helped Jordan Hiller debug a profiler he was seeing as static in JMP Live, but interactive in standalone. Turns out he was publishing in 16.0, but it was getting regenerated in JMP Live running 16.1. It had disallowed combinations that were discovered to be an issue late in 16.1 and so it was forced to static in that release, with the hope to revisit in 17 (S1587365). Jordan will recreate his demo without disallowed combinations.
- John Powell: Investigated changes to the multirange selector used in continuous filters needed to make the local data filter’s inverse feature behave more like JMP. Updated Jira issues to use Fixed version/s = 17:OPEN where appropriate. Answered internal question about HTML5 Profilers with Josh M.’s help and another about HTML5 Hover labels. Attended Josh M.’s meeting about his JSL tools and documentation to help with creating HTML5 and JMP Live performance tests. Built HTML5 and JMP Live performance tests For Heatmaps and Markers.
JMP Live
- Aurora: Finished implementing the basics of our new (17.0) access control mechanism. Started fleshing out the same (default permissions, single-space admin, REST API route). Reviewing JMP Live 16.1 documentation. Onboarding Justin Chilton.
- Justin: Started JMP live developer position on Tuesday. Got environment set up to run JMP Live locally. Started working through fixing a list of Jira issues Aurora put together for onboarding. Most notably, the display name for a user can be 64 characters in length now opposed to 32 before. Several of the fixed issues involved returning errors when appropriate or just improving our error codes.
Statistics
- John Sall: Fixed n-squared error-logging in Fit Ordinal. Fixed the "Finish" string localization issue in Model Screening-to-Stepwise (S1589060). Implemented random tie-breaking in the partition platforms (S1589088). Investigated two M1 issues in Neural Boosted and Nonlinear. Both appear to be small differences in numerics (JMP-404, JMP-617). Fixed a Confidence Limit command interaction with fail-to-converge in Nonlinear (JMP-617). Changed the 2-by-2 feature in Response Screening to 2-by-M, since comparisons need to be made for different dose levels to placebo (S1588396).

- Laura C-S: Cleaned up the multiple-group analysis shelf Eric and I worked on and pushed it to main to facilitate ongoing MGA work. Finished preparing and recording a presentation for ENBIS. Posted article on Medium that links to JMP’s user community as part of an experiment with Arati and Larry to increase web traffic. Submitted an abstract for Discovery Americas on longitudinal SEM.
- Peng: Research and looking into a newly surfaced issue in Proportional Hazards.
- Annie: Researching new features for control charts in v17.
Stat Testing
Life Sciences Updates
- All: The JMP Clinical 8.1 hotfix was completed and the update was published Wednesday afternoon.
- John C: Fixed JMP Clinical 8.1 issues with subject filters: Copy 7.x filers into 8.1 to allow review templates that reference them to continue working, and workaround the error caused by the USUBJID SAS Name column property value being an expression rather than a string. Provided post-install guidance on calls with the FDA. For JMP Clinical 16.1, added convenience functions for getting/setting/switching JMP data table column JMP names, SAS names, and SAS labels, and fixed an issue with properly linking treatment variable/value widgets to study metadata.
Product Management
- Dieter: Published a few more reports to our red triangle site and installed Perrigo’s eval site on AWS.
Technical Support
- Duane: TS remains busy with our customers, and JMP 16 is becoming more popular. At this time, installation and licensing are the biggest areas we are hearing about, but some more usage questions are trickling in. Here are the TS JMP Live reports. (JMP Live 16). Here is information regarding Customer Reported Defects filed by TS.

Development Operations
- Jim:
- Reported numerous UT differences that were only occurring on Big Sur M1 using JMP Pro 16.1. Thanks to Michael Hecht for his detailed investigation!
- Reported ASAN and Assertion Failure Jiras for 17.0, as well as Jira and DEFECTS verification for 16.1.
- Worked with multiple people to get the correct copyright dates into JMP 16.1.
- Requested and configured additional VMs for JMP 16.2 UTs on Windows. Will create the //depot/rel/r16.2 branch based off of //depot/rel/r16.1 after code freeze.
- Branched JMP 17.0 code for EA (to test Add-in) and attempted to build an executable. Thanks to Ernest, Chung-Wei, Aaron, and Xan for their help and patience.
- Working on shifting the JMP Clinical installer for Mac from being based on 16.1 to 17.0.
- Bob: First attempt at 17.1 and 17.2 dates added to the JMP 17 Dates page in Confluence. EA test install built for Windows for Julian to examine new JMP 17 EA addin. Reset JMP Live files in PRISM for needed updates. Software copyright discussion with Sara van Asch in Legal.
- Shannon: Created/updated Confluence page for JMP 16.2 branching and finished converting remaining branching tasks items into Jira process type items under JMP Branching Tasks epic. Updated various Jira How-To pages based on suggestions received from JMP team members. Migrated JMP.BROWSER items to Jira Web Browser component for Aaron and deleted the Defects component. Please enter any new issues for the JMP internal web browser in Jira. Investigated recently reported 16.0 crashes.
Note from Shannon
Thanks very much to Nicole Jones for sharing this happy news about the latest addition to our JMP family: “Jacob Rhyne and his wife Jaclyn welcomed their sweet little daughter, Madelyn Pearl, Monday, May 10th weighing 5 lbs 14 oz. Jaclyn and Madelyn are doing great! Big Brother Nolan is very excited.” Congratulations to the whole Rhyne family! Jacob will be out on paternity leave for the next month and in his absence, Mark Bailey will be covering his testing areas.

Thanks for posting this here, Shannon! Your update is always so full of information, and I sometimes miss it when it comes out Friday afternoons. Now I can know to look for them here on Inside JMP.:)