Release Notes for JMRI 4.5.4 release
Date: September 19, 2016
From: Bob Jacobsen
Subject: Test version 4.5.4 of JMRI/DecoderPro is available for download.
This is a test release. Please post a note if you encounter any new or old bugs! And please back up your JMRI files before installing this, in case you want to go back to an earlier version.
This is the next in a series of test versions. We expect this series to end in the next JMRI production release around the end of 2016. (See the tentative release schedule)
Some of the changes involved are quite extensive. They may require a certain amount of experience before they are working well. Therefore, this test version should be considered experimental.
Known problems with this releaseNone at release time.
New warnings for this version:
Older warningsSee the JMRI 4.4 release note for warnings predating the 4.4 development series. These may be relevant to you if you're updating from an earlier version.
(Since JMRI 4.5.2)This and future versions of JMRI may not function on OS X if the Java SE 6 provided by Apple is installed. OS X operating system updates routinely remove this version of Java SE 6. Please raise any issues concerning this on the user's group.
To remove Java SE 6 from OS X, follow these steps (these steps assume JMRI is installed in the folder /Applications/JMRI, if not, adjust the following paths as needed):
- Open Terminal.app.
El Capitan only: Reboot into Recovery Mode by restarting your Mac and pressing Cmd-R until the Apple logo appears. Once in Recovery Mode, select Terminal from the Utilities menu.
- Run the command
/Applications/JMRI/PanelPro.app/Contents/Resources/uninstall-java6.shIt can take up to a half hour to complete. Wait for the message Removed Apple Java SE6.
El Capitan only: Run the command
bash /Volumes/Macintosh\ HD/Applications/JMRI/PanelPro.app/Contents/Resources/uninstall-java6.sh /Volumes/Macintosh\ HDIt can take up to a half hour to complete. Wait for the message Removed Apple Java SE6.
- El Capitan only: Restart your Mac.
(Since JMRI 4.5.2)Support for directly executing AppleScript within JMRI has been removed due to changes in macOS and Java outside our control. If you require the ability to use AppleScript, you may be able to add this capability on your own by visiting JMRI AppleScript Support, but please be aware that this may not work on upcoming releases of macOS or Java.
(Since JMRI 4.5.1)LocoTools, no longer supported since JMRI 2.10, has been removed from the Linux and OS X distributions.
(Since JMRI 4.5.1)Internal turnouts and sensors need to have complete, individual system names. The names "IT" and "IS" (without any suffix) are no longer permitted: "IT12" is fine, but just "IT" is not. Most panel files that contain these should automatically migrate them to new names when saved, but in some cases you might need to manually update them.
(Since JMRI 4.3.5) When sharing a configuration between this version and JMRI 4.3.4 or older, the older version of JMRI will not reflect changes in preferences, window position, table sorting, column order, or other user interface state. This is due to changes in how user preferences and interface state are stored.
(Since JMRI 4.3.3) You can now set the order of your startup items: If you're opening panel files, running scripts, etc as the program starts up, there's a preferences pane that lets you easily set the order in which those happen. If you've set the order manually (e.g. by editing configuration files) in the past, please check this preference to make sure it's set the way you want.
(Since JMRI 4.1.2) Jython has been upgraded to version 2.7.0 with the following potentially breaking changes:
- The decodeJmriFilename() function is no longer available by default. Use the FileUtil.getExternalFilename() method instead.
- The simple propertyListener object is no longer available by default. Create your own, following the examples provided in the jython folder in the JMRI distribution.
- jmri_defaults.py included in the JMRI distribution is no longer executed by default, but will be executed before any other Jython scipts if included in your User Files location.
- The default behavior of python.cachedir.skip is now true. If using a custom python.properties file, include "python.cachedir.skip=false" in that file.
- Certain Python scripts are too large to be evaluated in Jython. If a script fails with the
java.io.IOException: Mark invaliderror, set "jython.exec=true" in a custom python.properties file or rewrite the script to be less than 100,000 characters per file. Note that when using "jython.exec=true" it may be desirable to run the included script jmri_bindings.py as a startup action to emulate the evaluation environment used when jython.exec=false.
(Since JMRI 4.1.1) Decoder definitions that use the "ivariable" form are now deprecated. Definitions included with this release have been converted to the new form. If you have decoder definitions with the older "ivariable" form, they will no longer validate, but can still be used for the first couple of test releases in this series. Please ask on the JMRI Users group for help converting them, or just drop them and use the current definitions.
Please use these links for downloading:
Mac OS X: https://sourceforge.net/projects/jmri/files/test%20files/JMRI.4.5.4-Rb93cb4f.dmg/download
Changes since test release 4.5.3:The list of included commits is available from our GitHub code repository.
- Send direction and function changes even when JMRI thinks the value is unchanged. (#1894)
- Added Support for Z21 RailCom messaeges through the reporter interface.
- Added Support to the Z21 Simulator to generate railcom messages based on the last 19 throttle messages sent to the simulator. This mimics the behavior of the command station, which sends at most 19 addresses back at a time.
- All tables in operations now save immediately when their size or order is changed.
- The car blocking for passenger cars no longer disappears after pressing "Save" in the "Edit Car" window.
- Made some improvements to the train tool "Show Car Types Serviced".
- The train description will no longer write across the top of a Manifest header.
- Panel Editor, Control Panel Editor, Layout Editor interfaces and the Add Entry-Exit (NX) Pairs
panel now have full i18n and a German translation.
Translators please review the new jmrit.display bundle keys. (#1889)
- Scripts now have access always available "addressedProgrammers" and "globalProgrammers" objects that provide replacements for the deprecated "programmers" object. Use of the "programmers" object will log a deprecation warning. (#1932)
- The InstanceManager now sends a notification on every change of a default object for a class, instead of just the ProgrammerManager. (#1934)
- A Service Provider Interface (SPI) is now available for thrid party developers to directly add items to the list of Startup Actions and Startup Buttons. (#1936)
- Fixed an issue where JMRI applications would silently fail to start if a Java Runtime Environment was not installed on macOS instead of notifying the user. (#1943)
- To ease translations, many commonly used property keys have been grouped so they need to be translated only once to be available throughout JMRI. Translators, please update your repository and review the application for missed items. (#1828)