Release Notes for JMRI 5.5.4 release
Date: September 9, 2023
From: Bob Jacobsen
Subject: Test Release 5.5.4 of JMRI/DecoderPro is available for download.
Notes:
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 5.5.* test releases.
It requires Java 11 to work.
(See our page on downloading Java 11)
We expect this series to end in the next JMRI 5.6 production release in December 2023.
(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 release should be considered experimental.
We would appreciate your feedback on it.
JMRI is now only available under the
GNU General Public License. For more information, please
see our
copyright and licensing page.
Update From Older JMRI Versions
If you are currently using a version older than JMRI 5.0, please follow these instructions carefully:
- Is your current version older than JMRI 4.12?
If so, then update to JMRI 4.12 first, and ensure everything works correctly: check
start-up, check things you need to be working, and check the JMRI log as well) before doing anything else.
Store your configuration and panel files under a new name and use those from now on.
Then continue with step 2.
If you are currently using JMRI 4.7.3 or earlier on Linux or macOS (Windows doesn't need this),
then it's very important
that you update to JMRI 4.12 and
carrying out the migration process described in the JMRI 4.12 release note
before updating to any later release.
- Is your current version older than JMRI 4.20?
Then update to JMRI 4.20 first, and ensure that works correctly (check
start-up, check things you need to be working, and check the JMRI log as well) before doing anything else.
Save your preferences again.
Store your configuration and panel files under a new name, use those from now on, and go on to step 3.
- Is your current version older than JMRI 4.24?
Then update to JMRI 4.24 first, and ensure that works correctly (check
start-up, check things you need to be working, and check the JMRI log as well) before doing anything else.
Save your preferences again.
Store your configuration and panel files under a new name and use those from now on.
- Is your current version older than JMRI 5.0?
Then update to JMRI 5.0 first, and ensure that works correctly (check
start-up, check things you need to be working, and check the JMRI log as well) before doing anything else.
Save your preferences again.
Store your configuration and panel files under a new name and use those from now on.
- You can then install this release.
Following this multi-step order of updating via stable major releases safeguards you against possible migration issues
that can arise from skipping these versions.
New problems with this release
New warnings for this release:
-
Scripts that output Logging statements with log4jv1.x ( org.apache.log4j ) imports will stop working
from JMRI 5.5.4 and should be updated to use SLF4J logging.
See here for some examples on how to do this.
-
Custom default.lcf Logging Control Files will cease to take effect from JMRI 5.5.4
To create a custom default_lcf.xml in the new Logging Configuration format, see
JMRI Debugging and Logging
Older warnings
See the
JMRI 5.4 release note for more warnings predating the 5.5 development series,
including pointers to various migration issues.
These may be relevant to you if you're updating from an earlier version;
we strongly recommend you update to at least
JMRI 5.0
before installing this test release.
See
instructions above.
- Since JMRI 4.99.1
This test release, and all subsequent ones, require the use of
Java 11 or later. Java 8 is explicitly not supported.
There's more information on this migration on the
JMRI Tech Road Map and
JVM Capabilities pages.
- Since JMRI 5.3.2
Some images in the resources/icons folder have been renamed.
Spaces have been changed to underscore. It's images in the
resources/icons/ItalianSignals/ACEI,
resources/icons/ItalianSignals/Prototypical,
resources/icons/smallschematics/aspects/NW-1981,
resources/icons/smallschematics/aspects/NYC-1956,
xml/signals/FS-1987, xml/signals/NW-1981,
xml/signals/NYC-1956 and resources/icons/SNCF/Small
folders that have been renamed. If you are using these images directly, you will need to update the reference.
- Since JMRI 5.3.7
The definition of "Last Seen" for Id Tags has been
clarified to mean "Location where the tag was last seen to be present".
Previously, a report that a tag was absent could be remembered as the
last seen report. The relevant code changes are specific to LocoNet
Reporters. This might affect your scripts and LogixNG if you were assuming
the prior behavior.
- Since JMRI 5.3.7
Some Reporters, particularly LocoNet, would improperly clear an "enter" report
when an "exits" report for the same tag was seen elsewhere. This was an
error that has been fixed, but if you have scripts or LogixNG that depend on
this behavior you might have to update them.
- Since JMRI 5.5.3
LocoNet Server and LocoNet Client have been removed.
If you are using these, you need to change the connection to
LocoNet over TCP instead.
- Since JMRI 5.5.3
Scripts that output Logging statements with log4j should be updated to import sl4fj logging.
See here for some examples on how to do this.
Download links:
These files are located in the
JMRI 5.5.4 GitHub release.
The
list of included changes is available from our
GitHub code repository.
Hardware Support
C/MRI
- Fix the Update button on the sensor table
for C/MRI sensors.
LocoNet
- Added a DecoderPro definition for the DS78V. This required
code changes, so this definition will not work with earlier
versions of JMRI.
- The jython/loconet/LnEditEvolutionRoutesAndOpSw.py script has been updated
to version 2.0.
This script allows you to configure the OpSw and routes in the new Digitrax
Series 7 boards.
- The jython/loconet/PGM_DS74_GEN.py can be used to program DS74 boards
from a configuration held in a text file.
MQTT
- Added support for Track Power control
- Added support for throttle control - speed, direction, and functions
- Added support for Command Station consists
- Fixed bug that stopped retained MQTT messages from being received on start up.
- Clear Last Will and Testament on startup
- The presentation of the "Send Frame" tool was improved.
- Fixed some subtle bugs when pasting CDI panes.
- Improved how
tab numbering is done
when creating a CDI display.
New / Updated decoder definitions
ESU
- The LokPilot Basic 1.0 decoder definition is now product-ID specific.
Public Domain and DIY decoders
- Updated to support FREDi v2.2
DecoderPro
- Added ability to identify Dietz decoder models with CV128
- Moved an excessive warning message to being a debug message
-
Layout Editor
- Labels and icons on a panel can now have one or more classes. This is useful if the label/icon is controlled by LogixNG.
LogixNG
- The Icon/Label by class on panel action is added.
It allows LogixNG to control all icons/labels of a class.
- The Audio expression has been added. It lets
LogixNG listen on an Audio and take appropriate action.
Panel Editor
- Labels and icons on a panel can now have one or more classes. This is useful if the label/icon is controlled by LogixNG.
Control Panel Editor
- Labels and icons on a panel can now have one or more classes. This is useful if the label/icon is controlled by LogixNG.
Preferences
- Custom default.lcf Logging Control Files will cease to take effect.
To create a custom default_lcf.xml in the new Logging Configuration format, see
JMRI Debugging and Logging
Scripting
- Scripts that output Logging statements with log4jv1.x ( org.apache.log4j ) imports will stop working
and should be updated to use SLF4J logging.
See here for some examples on how to do this.
- TurnoutStatePersistence.py was not correctly updated to use SLF4J in 5.5.3, fixed in 5.5.4
Signals
Signal Systems
- The aspects in the FS-1987 signal system were updated.
Switchboard Editor
- Some improvements to how text is sized that will make
the display occupy space a little better.
Turnouts, Lights, Sensors and other elements
- Memory Usernames for IMCURRENTTIME and IMRATEFACTOR can now be loaded from xml file.
Warrants
- Fixed problems that were causing Learn Warrant to fail
Web Access
- panel.js - add data-panel-name attribute to support panel-specific css
Virtual Sound Decoder
- Removed deprecated method isPlaying - use Audio.STATE_PLAYING.
- Added optional portable file access in VSD. To be used in Roster Media (VSDecoder_Path)
and VSD Preferences (Default VSD File Path). For Portable File Access see
here.
Miscellaneous
- Logging Configuration Files have moved to the xml format, eg.
default_lcf.xml
Custom default.lcf Logging Control Files will cease to take effect.
To create a custom default_lcf.xml in the new format, see
JMRI Debugging and Logging
- Logging levels ( eg. INFO, DEBUG ) can be changed for the current session in
Display / Edit Log Categories
- Logging Libraries have been fully updated to Log4J 2.20
- The Rolling Log files have been renamd from messages.log.1 and messages.log.2 to messages.1.log and messages.2.log
- The way data is entered in memory icons, block icons
and global variable icons have been improved.
- You can now set the preferences to open the RailCom table at startup.
- The analog fast clock now shows when the fast clock has been stopped.
- Updated batik-transcoder 1.14 to 1.17, resolving a security issue
- Improvements to Dialog boxes when displayed with "Always On Top" window frames present.