Welcome to the JMP Development Update for April 19, 2024!
At the end of the day today (April 19) we reach our Feature Freeze milestone for JMP 18.1. Developers, if you have completed Story items for JMP 18.1 that have downstream impact for documentation, strings, testing, or training, please add your features to the JMP 18.1 Features page in Confluence.
Also, a reminder from Trish O’Grady that the Portable UI string deadline for JMP 18.1 is Wednesday, May 1. Krzysztof Jozefowicz will kick off test runs of Stringbot in the early morning on Tuesday, April 30 and Wednesday, May 1 (before staff in the US who do not suffer from insomnia start working :smiling_face_with_smiling_eyes:). Given the six-hour time difference between Denmark and Cary, test runs should be completed no later than 5:00 AM Cary time.
Krzysztof will email results of the Stringbot test runs to the JMPDev list. Reviewing the results of these preliminary runs should help developers identify strings that are still stuck in “New” in Stringbot so that they can clean them up (along with any other lingering string related issues). JMP writers also look at Stringbot test run results as part of their string review process. The final production run of Stringbot for JMP 18.1 will be kicked off in the early morning hours on Thursday, May 2.
At the end of the day next Friday (April 26), we will reach our Code Freeze date for JMP 18.0.1. This will be our first planned “dot-dot” release and will include updates to third party libraries that resolve security vulnerabilities as well as fixes for a few select showstopper level bugs identified in 18.0. Adjustments are also being made to localized installer license agreements based on feedback from legal and testing teams, sample script disclaimers, and adjustments to icons and fonts that affect JMP fit and finish. Susan Conaghan will create JMP 18.0.1 release notes detailing all fixes. If you’re curious about what issues have been resolved in JMP 18.0.1, you can find the list of issues with 18.0.1 as a Fix Version here.
Even as we continue work on production JMP 18.X versions, the JMP 19 EA program is gearing up to begin in the very near future. In fact, JMP 19 EA1 is planned to freeze at the end of May! Mia Stephens sent along a reminder that JMP 18 EA members do not need to re-enroll for 19 – they will automatically be rolled over into the JMP 19 EA program. In a couple of weeks, once product management’s process is ready, they will ask teams to review the SalesForce EA campaign and either keep or remove current members. Teams can also invite new members to participate. More details will come, but please see this EA FAQ for more information.
In another piece of release news not tied to a JMP cycle, I wanted to be sure to mention that JMP DevOps released JiraBot 3.0 this week! Thanks very much to developer Myron Chandler for working on this project, and to Melanie Drake for testing support and Jira automation rule updates in the relevant development Jira projects. Also a shout out to new DevOps program manager Shannon Leslie for assisting with Jira automation rule troubleshooting, and thanks to Audrey Shull for also helping to test.
Due to popular demand, the new JiraBot 3.0 will now react to more changes that did not trigger role updates in previous JiraBot versions, like issue type changes, component changes, and project moves. JiraBot 3.0 also brings back a user interface for self-service changes, allowing you to filter component lists in various ways and update or add component assignments for existing components. You can find it here: JiraBot (jmp.com) Also, here’s a page with instructions and information here in Confluence: Jira How-To: Use JiraBot to populate default roles for components. Thanks to Melanie for updating that page this week!
Since migrating from Defects to Jira, JMP has used various iterations of JiraBot to populate the default roles (Developer, Tester, Tech Writer, etc) for our hundreds of different development components, replacing the functionality that the Defects Components table used to provide. JiraBot 1.0 was written by former JMP Live developer Tommy Odom to replace the role-populating Defects component table, but his application used a Kafka back end mechanism for watching Jira issues that was not available to us in the Atlassian cloud. Myron created the API-based JiraBot 2.0 back end when we moved to the cloud and requests for role updates had been handled via Jira requests in the JMPTOOL project. Myron is now looking ahead to leveraging the framework updates made while implementing the JiraBot 3.0 user interface in a future iteration of the JMP crash system (aka CrashBot).
Finally, thanks very much to Paul Nelson for presenting at the JMP Dev meeting yesterday! With the recent launch of JMP 18, Paul has been getting numerous questions about Python scripting examples to show for JMP 18 and hopefully this session gave some you all some good pointers! If you missed the meeting, you can find a recording here.
General Announcements
Important Upcoming Dates
- JMP 18.1 Feature Freeze – 4/19/24
- JMP 18.0.1 Code Freeze – 4/26/24
- JMP 18.1 Portable UI String Deadline – 5/1/24
- JMP 18.0.1 Release – ~ 5/18/24
- JMP 18.1 Approval Mode Begins – 5/21/24
- JMP 19.0 EA1 Freeze – 5/31/24
- JMP 18.1 Code Freeze – 6/14/24
- Please visit Confluence for a full list of JMP 18 and JMP 19 dates.
JMP Development Updates
Statistics
- Jianfeng: Working on bug fixes and integration to JMP 18.1. Implemented a feature for comparing means by using Games-Howell test when the individual group variances cannot be assumed to be equal. This feature was requested by users (JMP-7930) and an example of the output from this test is below.
- John Sall: In Design Space Profiler, test the thread-safety of the Predictor - it was overwriting factor values in "Fit Group" from simultaneous threads because the test for thread support was not done correctly. This is one of the very few fixes for 18.0.1 (JMP-21108). In Profiler Simulator, continued work on Simulation Experiment, allowing fixed factors, including categorical; improved dialog (JMP-21139). In Partition, made "random" tie-breaking consistent per platform invocation (JMP-21077). In Categorical, fixed the confidence intervals for Rate for supercategories (JMP-21019).
- Laura C-S: Continued working on 18.1 integrations of several new features in SEM, including the handling of weights which can be used for complex survey data or for inverse probability weighting. Updated the confluence 18.1 feature page with the appropriate info. Presented an SEM demo at a clinical psychology colloquium series at Rosalind Franklin University, which went really well! Attended meet the experts for the virtual Discovery Europe.
- Elizabeth: Finally (I hope!) tracked down all the tentacles of implementing robust/sandwich standard errors and the appropriate DFs for Mixed and GLMM, so that’s ready for testing (JMP-9820). Implemented a homogeneity of variance test in Mixed if the Unequal Variances repeated structure is specified (JMP-21137). Had some good questions/conversations in Meet the Experts yesterday. Code reviews for folks.
Stat Documentation
- Michael C: Met with the FTC 2024 program committee to work on finalizing abstract acceptances; fixed some broken help keys in 18.1; investigated errors that Acrolinx is not catching.
Stat Testing
- Mark: Developing a concept for a new mechanism to reuse definitions of experimental responses and factors. Studying Gaussian Process models and Bayesian Optimization. Developing a prototype of a Bayesian Optimization platform with Chris. Attended Meet the Expert session about DOE and Reliability in the online JMP Discovery Summit in Europe.
- Jacob: Testing the update to OpenBLAS 0.3.27. Working on script to re-run my failing unit tests. Added tests for Categorical confidence intervals, focusing on cases with supercategories.
- Tonya: Working on V18 Early Adopter presentation. Testing new features in CCB. Bug verification.
Life Sciences Updates
- Drew: Worked on bug fixes for 18.1. Continued research into ways to allow multiple JMPC reports be executed/viewed simultaneously (namespace/variable collision issues). Worked with Jim and Bob on getting JMPC 18.0.1 and 18.1 installer builds functioning on the new build machines hosted in AWS.
- Richard: Finishing up prototyping the non-SQL interface to search for nearby safety issues or medications.
Product Management and product Marketing
- My:
- Starting with Discovery Americas 2023, users have been learning about our JMP Product Roadmaps at Discovery conferences and during strategic customer engagements with Product Management. If you’re curious about what we’re researching or actively working on in JMP 19, please see the JMP Product Roadmap planning pages. Keep in mind that the roadmaps are subject to change, and should not be shared directly with customers without participation from Product Management.
- Also, thanks to everyone who supported Meet the Experts yesterday during the Discovery Europe Online session! Some rooms were quiet, but hopefully there were some engaging and informative conversations.
- Bryan F: Developed a Figma prototype for updating the look-and-feel of HTML5 exports for better consistency with JMP Live chrome. Coordinated potential changes with members of the HTML5 team (John Powell, Paul Spychala, and Praveena Panineerkandy) as well as Michael Goff to ensure JMP Live compatibility. Design discussions related to JMP Live. Coordinated with Sarah Sylvestre regarding updates to LearnBot usability script as well as more planning with respect to survey data and usability studies for data table features. Participated in Nielsen and Norman Group (NN/g) class on information architecture.
Technical Support and Engagement
- Duane: As you can see with the plot below, case volume is increasing substantially. Mostly, the increase is seen in the Engagement queue as our users are introduced to JMP 18, My JMP, and authorization.
- 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. As some folks may have noticed, reports are not be regenerating properly in JMP Live Sales, so the TS reports may not be available. (Eric, Dieter and team are aware and are working on it!)
- Case Volume by Week:
- Engagement Queue over Time:
- Case Topics for Engagement Queue, Total:
- Case Topics for Engagement Queue, Last Week:
Development Operations
- Nick R:
- Moved JMP Windows 19 CI machine to R-series AWS EC2 instance. This nearly halved both our full-build completion time and the time required to run JMP 19.0 Windows baseline tests. Made the same change to the new JMP 18 nightly build machine in AWS and will continue to work with Jim to help improve nightly build times.
- Spoke with Drew Foglia about setting up Life Science testing machines in AWS and working out a plan to migrate their current server and data storage needs to AWS. This is still in progress, but I am building our first Windows 11 test machine for them now in AWS and will work with the team to see what type of hardware configuration will best fit their needs.
- Worked on the Mac Analysis build some but was sadly disrupted this week with an Internet outage. I'm getting back into that again today as well.
- Updated MatLab License Server to 2024a.
- Updated AI and CI projects to support new directories needed for JMP 19 (namely the //depot/main/product/policies/... location)
- Melanie: Jirabot 3.0 – Now Live! You will see more updates, since it will react to component changes, issue type changes, and moving an issue to a different project. Check out the new UI where mappings can be updated easily: JiraBot (jmp.com). Also, a page with instructions and information: Jira How-To: Use JiraBot to populate default roles for components - JMP . Please let Myron and Melanie know if you see something odd. Migration to AWS: Updated tracking for Jenkins jobs and databases/webservers on jmptool: jmptool jenkins jobs - Distribution | JMP Live. DevOps: Overview meetings and chats with Shannon Leslie and other DevOps folk. General investigation and troubleshooting.
- Shannon L:
- Met with Qiana to get an overview of the Doc team and their processes, as well as the Jira projects they work in, tools, schedules, and their Oxygen conversion project; also worked with Qiana to set up sprints for their Oxygen conversion project in Jira.
- Met with Melanie to get more details on JiraBot and Jira Automation updates
- Reviewed Crash triage strategies with Shannon C and team
- Fully moved into Building A - A5308!
- Jim: Continued work on JMP 18.X build machine transition to AWS, with fixes for HTML template file location and collaboration with Drew on updates to JMP Clinical build process. UT process updates to compensate for recent authorization changes.
- Bob: Finalized license agreement testing. Added files to 18.0.1 and main (19). Worked with Brian and Jim on special JMP Pro Live 19 installer. Working on special JMP Pro Live 18.1 installer. Conversion of scripts to utilize new AWS build machine for version 18.
- Myron: JiraBot 3.0 – pushed out the UI and supporting processes. Updated certificates and jmptool – worked & working on various applications having certificate-related problems (telemetry, crash system, etc.).
- Shannon C: Did some testing of the new JiraBot 3.0 UI – so excited to see this launch! Continued onboarding meetings and 2024 goals discussions with Shannon L. Crash process discussions with Melanie, Myron and Shannon L. Prepared for and hosted numerous other meetings – weekly tooling meeting, group meeting, and various 1:1s with team members. Looked into a few JMP 18 production crashes for TS and wrote up a couple of JMPTEST investigations. JMPTEST-1186 was duplicated to known JMP 18 issue JMP-20682: Crash in ScriptableToolbarBox::preMeasure() from closing a data table or dashboard (already fixed in 18.1/19). Dave B was able to replicate another JMPTEST investigation I entered and the issue moved to the JMP project where Jianfeng has already fixed it for 18.1/19.0 (JMP-21109: JMP 18.0 production mystery crash with PlsModelFit::getFitted and ModelScreening::doActualByPred at the top of the stack). Thanks very much to developers for all the help resolving these 18.0 production issues!
Localization
- Allison: Finalized KO quote for JMP 18.1 and 18.2 UI localization and submitted the purchase req; responded to queries from linguists for Big Books translation projects; communicated with JMP Legal on work orders that need to be issued to vendors; validated KO return packages for BA, UG and SharedTextInsets; communicated and planned out schedule with BRD on taking localized screenshots for Big Books.
- Sandy: Testing Trados style memoq wordcount report changes in project creation dashboard. Testing image diff populate job with labels added. Testing populate source job with labels added.
- Krzysztof: Finished setting up an AWS machine for hosting memoQweb for our vendors, working on documenting this setup and instructions for users. Pushed Books translation returns for BA, UG and SharedTextInsets. Preparing for 18.1 UI translations. Discussing L10N automation development tasks.
- Trish: Working with Jeff and Daniel on authorization issues for translation teams. Worked with Allison on localization contracts for 18.1/18.2. Researching translation queries. Jira refinements for 18.1 projects.
- Sohail: Implementing new enhancements in the TM Search tool. Starting investigation on our own LLM implementation for localization support (for: harvesting terminology, providing term explanations, QA etc…)
- Howard: Bug fixes. Worked on l10n Dashboard Jira connection APIs.
Documentation
- Khawar: Finished working on an image editing task (JMPDOC-2018). Edited the DJ book to ensure consistency and remove some errors/typos (JMP-21002). Currently reading and annotating the UG book.
- Susan C: Working on 18.0.1 RNs & dates. Taking the class 7 habits of highly effective people. Met with Aaron to discuss some 18.1 JMP Live updates (Azure & example of Python refresh script). Working on JMP Live retrospective updates to 17, 17.1 & 17.2 help.
- ChrisB: Most of the week building all the localized DJ help and getting it published. Also rewriting the documentation for that process. Explained to Khawar how he's going to help us finish getting our image scripts in order (JMPDOC-26).
- Devon: JMPDOC-2183: Researching suggested updates to Platform Presets chapter, working on queries from the Localization teams, cleaning up converted Discovering JMP doc files using trial version of a new tool.
- Qiana: Sample data work for JMP 18.1. Project planning and coordination.
System/Host Testing-Cary
- Mandy: Wrote some new workflow builder tests after a fix for for/loops at 19.0 and 18.1 – added new test to the framework and tested both. Worked on changing a few other tests due to the TK changes, and worked a bit more on some workflow stuff for a demo next week. Worked with a Teams group here at SAS to track down all the crashes Teams has been having worldwide – a Microsoft guy is now working with us.
- Hunter: Testing several items affecting authorization and JIRA verifications.
Web Testing – Cary
- Natalie: Our daily automation runs for JMP 18.1 and 18.01 (and sometimes 19.0) are still blocked by an existing JMP crash. I committed several testcase updates for failing tests at 19.0 and investigated several remaining failures.
- Josh: Live 19.0 servers moved from SAS to AWS. 18.0.1 installer planning. Active Directory sync testing on 18.1 and 19.0. Testing new 18.1 and 19.0 installers due to a deployment change.
- Anna: Verified fixes. Beginning work to test refactoring updates for HTML5.
System/Host Testing-Beijing
Data Discovery
- Dan S: Made a number of changes to New Window() in JMP 19, adding support for functions and class methods for <
- Morgan: Pushed dark mode changes to 18.1 and did some additional visual bug fixing in Script Editor, as well as some fixing of the Script Editor quirks with selections and undo actions.
- Dave B: Investigated a tech support issue with a hard to edit journal. Tablebox/radio box row selection fix. Integrated fixes back to 18.1. Fixed a reproducibility problem with Oneway. Fixed a json/matix bug.
- Xan: Bug fixes and continued marker jitter work.
Host
- John Schroedl: Printing/drawing fix for check- and radio box measurements. (JMP-20684). Debugged interesting painting issue with Dan S. and Dave B. found by Evan which revealed a bug in my sticky layer handling present since JMP 11. The fix should help eliminate one source of the black flash we can sometimes see on Windows. Further telemetry investigations with Evan. Removed export/save-as to sas7bdat from Windows host code. Update Excel Addin projects at 18.0.1 to build on AWS VMs.
- Paul Nelson: Participated in Discovery Online – Meet the Experts and gave a JMP Dev Python presentation aimed at example sharing and best practices. Working on JMP-21142 – crash when trying to Python Get() a numpy array that is contains nested numpy array objects rather than just a column of numerical data. Finalized a few security updates:
- Python has been updated from 3.11.5 in JMP 18.0 to Python 3.11.9 in 18.0.1, 18.1 and 19.0.
- Libcurl has been updated to 8.7.1 in 18.0.1, 18.1 and 19.0.
Interactive HTML
- Whole team: Whitebox testing to look for regressions from our refactoring sprint.
- John Powell: Converted BubblePlotSegment.js to a JavaScript Class(JMPHTML-13655). Reviewed Feature Requests with Praveena, Paul, and Dieter to plan for JMP 19. Discussed new look for Interactive HTML content with Praveena, Paul S., Michael S., and Bryan F (JMPHTML-1835). Discussed implementation details for Control Chart Warnings Triage in JMP Live with Praveena, Annie, and Evan (JMPHTML-13650). Created bugs for data update issues seen by JMP Live customer, Hanwa(WEBJMP-8451, WEBJMP-8452). Updated Jira items for issues mentioned in Meet the Experts at Discovery Summit Europe Online(JMPHTML-1268, JMPPRODMGMT-805).
- Praveena: Met with Annie, Evan and John to understand CCB functionalities and how to extract information about test markers during export. Working on JMPHTML-1834 (Aurora helped to run JMP Live 18.1 locally). Collaborated with the team and Bryan Fricke to gather requirements for the design of HTML reports (JMPHTML-13664).
- Paul Spychala: Finished leading our refactoring sprint where we refactored almost all our code to ECMAScript 2015 classes, amongst other smaller refactoring items and updating and upgrading of tools. Still working with Bryan and our team with evolving our HTML look and feel to better match JMP Live.
- Michael Senoyuit: Worked on Font class and HTML Design.
- Mike Stickles: Completed work on JMPHTML-13616.
JMP Live
- Aurora: Adjusted plan and code for control chart warning improvements. Users will want to triage markers, not individual warnings.
Note from Shannon
Thanks to Mandy Chambers for sharing that she has been working with IT to narrow down Microsoft Teams crashes that she and others have been experiencing. The conditions for the crash seem to entail a meeting of over 30 minutes (but not always), the meeting is being recorded, folks may or may not be sharing a screen, and clicking either the Mic or UnMic or Camera buttons may trigger the crash. Crashes sometimes happen when clicking Leave or just typing something in the chat. (And yes, like the comic below, the crashes can sometimes appear to make you freeze, prompting others on the call to screenshot your frozen face for fun. :smiling_face_with_smiling_eyes:It’s just awesome.)
A familiar .ips crash file is generated when this crash happens and Mandy has been sharing them with the Microsoft Teams folks and working with a group from SAS via this ServiceNow ticket to try and get a resolution. Feel free to add your name to the ticket if you have been experiencing these very annoying crashes or email Mandy directly to tell her that it is happening to you. Mandy notes that a few Windows users have experienced crashes but that they mostly seem to be Mac related.
Hope you all have a great weekend!