Release Notes for JMRI 4.5.1 release
Date: July 10, 2016
From: Bob Jacobsen
Subject: Test version 4.5.1 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 release
Two spurious messages are emitted at startup:
startup.StartupActionModelUtil ERROR - Did not find class "jmri.jmrix.srcp.srcpmon.SRCPMonAction" [main]
startup.StartupActionModelUtil ERROR - Did not find class "jmri.jmrix.srcp.packetgen.PacketGenAction" [main]
Unless you're using a SRCP connection, these are not a problem, just an annoyance. They're fixed in JMRI 4.5.2.
- JMRI does not work on OS X unless a JDK is installed. This is fixed in version 4.5.2 (#1679).
New warnings for this version:
- If you use the SRCP system connection and have configured JMRI Preferences to open SRCP tool windows when JMRI starts, you'll have to reset those preferences.
- LocoTools, no longer supported since JMRI 2.10, has been removed from the Linux and OS X distributions.
- 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.
- 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
To remove Java SE 6 from OS X, follow these steps:
- Download uninstall-java6.sh. The rest of these steps assume you downloaded it to your Downloads folder.
- 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
bash ~/Downloads/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/Users/your-user-name/Downloads/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.
- Due to changes in the libraries shipped with 4.5.1 compared to earlier releases, if you choose to revert to an earlier release after installing 4.5.1 without completely uninstalling, the 'lib' directory will contain extra files that will cause problems running JMRI. If needing to revert to an earlier version, we recommend you to uninstall 4.5.1 first prior to installing the earlier 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.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 Yahoo group for help converting them, or just drop them and use the current definitions.
(Since JMRI 4.1.1) The OpenLCB 0.6.4 library in this version has a bug in its alias calculations which prevents JMRI from communicating occasionally. A patch has been submitted to the OpenLCB group, but as they seem no longer interested in maintaining that code, it's not known when this will be fixed. In the meantime, the workaround is to restart JMRI and/or the hardware node(s) and try again; that might allocate different alias values.
Please use these links for downloading:
Mac OS X: https://sourceforge.net/projects/jmri/files/test%20files/JMRI.4.5.1-R44ce773.dmg/download
Changes since production release 4.4:The list of included commits is available from our GitHub code repository.
- Initial support for the DCS240, allowing you to configure it in the preferences. This is just initial support: Many advanced features are not yet supported.
- The SRCP layout connection can now handle more than one simultaneous connections.
New / Updated decoder definitions
- Egbert Broerse added support for the DR4018/24 decoders.
- Alain Le Marchand added support for the DH126T decoder.
- Some earlier versions of JMRI emitted lots of warnings while loading a roster entry containing certain ESU decoders. This is now fixed.
- Updates for the Tsunami 2 decoders, including new models TSU-2200 and TSU-PNP
- Michael Mosher added definitions for the TCS WOW Steam V4 plus updates fro other steam versions and diesel ver3
- New feature, you can now see and modify the track "Moves" that are used to determine the order tracks are processed by the program during a train build. In the "Edit Location" window under tools, select "Show Track Moves". To change the move count for a track, double click on the "Moves" value in the table and enter a positive or negative number. Tracks with the least number of "Moves" are processed first.
- Steve Todd fixed a bug with the JMRI Web Server Conductor where you couldn't properly terminate a train that didn't have work at the last location in the train's route.
- Added Jython functions and examples for pulling JMRI configurations into a script. (#1502)
- The DebounceSensor.py script was updated. Note that Sensor debouncing can also be directly turned on in the Sensor Table now, too.
- Updated B&O 2009 signal definitions to fix restricted aspect in some cases (#1574)
- Fixed a problem occurring when a signal system references icons in the local preferences directory.
Signal Mast Drivers
- The POSIX (Mac and Linux) launcher script has been improved. It provides much more flexibility for adding extra .jar files and setting options. The algorithm for how much memory the program uses has also been improved.
- Egbert Broerse updated the French translation.
- Added startup action to allow a pause for up to five minutes in processing startup items. (#1499)
- Tooltips in startup items show more information than can be shown in the table of startup items. (#1505)
- Startup items that need a system connection can now be bound to a specific system connection. (#1520)
- Sonnys Hansen updated the Danish translation.
- Many structural updates to the code as part of the new-series cleanup process. If you have your own program based on JMRI, please check for newly-deprecated references.
- Some semi-automatic and manual cleanup of the HTML in the help files. If you notice any broken formatting, please report it. Thanks.