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.
JMRI is now only available under the
GNU General Public License. For more information, please
copyright and licensing page.
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).
If any of those effect you, please either wait for
JMRI 4.5.2, due out shortly after this one,
or pick up a
development build installer
New warnings for this version:
See 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 invalid error, 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.
(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:
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.
- 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
- Fixed a problem occurring when a signal system references icons
in the local preferences directory.
Signal Mast Drivers
- Added Json server support for blocks and layoutblocks.
- The POSIX (Mac and Linux) launcher script has
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.
- Tooltips in startup items show more information than can be shown in the table of startup items.
- Startup items that need a system connection can now be bound to a specific system connection.
- 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.