Release Notes for JMRI 4.19.5 release
Date: April 23, 2020
From: Bob Jacobsen
Subject: Test Release 4.19.5 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 test releases.
We expect this series to end in the next JMRI production release in early summer 2020.
(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.
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 JMRI 4.11.9 or earlier, we strongly recommend that you update to
JMRI 4.12 and make sure that's running without errors
during startup or on the JMRI log.
Once you have JMRI 4.12 running OK,
store your configuration and panel files and use those from then on.
There have been
changes in serial port support, panel file format and configuration options since those earlier releases,
and moving to the stable JMRI 4.12 release
is a good way to work through any possible problems.
If you are currently using JMRI 4.7.3 or earlier on Linux or macOS (Windows doesn't need this),
you must
update to JMRI 4.12 and
carrying out the migration process described in the JMRI 4.12 release note
before updating to this release.
If you are currently using JMRI 4.17.7 or earlier, including if the previous paragraphs
convinced you to update to JMRI 4.12,
we strongly recommend that you update to
JMRI 4.18 and make sure that's running without errors
during startup or on the JMRI log.
Once you have JMRI 4.18 running OK,
store your configuration and panel files and use those from then on.
There have been
changes panel file format and configuration options since earlier releases,
and moving to the stable JMRI 4.18 release
is a good way to work through any possible problems.
Known problems with this release
New warnings for this release:
-
Layout Editor files that are stored with this version will not
generally be readable by earlier versions. This version
continues to be able to read files written by releases
back to 4.12 and in many cases even older.
Older warnings
See the
JMRI 4.18 release note for more warnings predating the 4.19 development series,
including pointers to various migration issues.
These may be relevant to you if you're updating from an earlier version.
- Since JMRI 4.19.4
Manager.getSystemNameArray()
has been removed after being
deprecated for two years. Please migrate to using
Manager.getNamedBeanSet()
instead. If you really
must have an array, use Manager.getNamedBeanSet().toSet()
- Since JMRI 4.19.3
Manager.getSystemNameArray()
has been removed after being
deprecated for two years. Please migrate to using
Manager.getNamedBeanSet()
instead. If you really
must have an array, use Manager.getNamedBeanSet().toArray()
;
see this tutorial for examples.
- Since JMRI 4.19.3
The JavaCSV API has been replaced with the Apache Commons CSV API.
This may impact some scripts. See
TurnoutStatePersistence.py
for an example of how to use the new CSV parsing API. If unable to
use the new API, the JAR for the old API can be
downloaded
and added to jmri.conf using the
--cp:a=path/to/javacsv.jar
parameter.
- Since JMRI 4.19.1
JMRI now enforces the standard form of system names,
where the system is denoted by a single letter or a letter plus digits.
Some users of JMRI 4.18 or earlier might have incompatible values.
If you have one of these hardware connections:
- Anyma DX512 using “DX”
- DCC++ using “DCCPP"
- DCC4PC using “DP"
- JSON client using “json”
- MRC using “MR"
- Marklin CS2 using “MC"
- Raspberry PI using “PI"
- TAMS using “TM”
you may have to migrate. Please update to JMRI 4.18 prior
to installing JMRI 4.19.1 (or later) and check the JMRI Console to
see if there are any instructions there. See the
migration page
for additional information.
- Since JMRI 4.19.1
The
getBeanByUserName
and getBeanBySystemName
calls in the various Manager
classes
are no longer needed with Java 8 and have been deprecated for eventual
removal. Their replacements are
getByUserName
and getBySystemName
respectively.
If you use getBeanByUserName
and getBeanBySystemName
in script or Java code you've written, please
switch to the new names.
- Since JMRI 4.17.5
JMRI's scripting support now defaults to the UTF-8 character encoding for all
script files on all platforms. This may require that some scripts be re-saved
using UTF-8.
- Since JMRI 4.17.5
Windows Only The JMRI installer removes the existing
lib folder from a JMRI installation when upgrading JMRI. The
existing lib folder contents are retained in the backup folder.
This means that any files you have added to the lib
folder will be removed.
- Since JMRI 4.17.5
macOS Only This version includes changes to how
the final .dmg file is built, signed and notarized. This was done to increase
compatibility with macOS 10.15 Catalina.
Please drag the JMRI icon to the Applications folder to install this release.
For more information on
Catalina compatibility,
see the
JMRI website.
- Since JMRI 4.17.4
Panel file NamedBean items such as Turnouts, Sensors, etc are now written to panel
files in order by their Manager system prefix and system name.
Previously, they had (roughly) been written in the order they'd be
read from the earlier file(s). This will result in a big change to the order
the first time a file is re-written, but after that it should be much more stable.
- Since JMRI 4.11.4
There are issues with the Pi-SPROG One command station operation. A number of workarounds should be applied:
- Do not turn on the track power until the power supply to the Pi-SPROG ONE is turned on
- Do not enable extra debugging through default.lcf, nor open the system console window
- Do not open the SPROG console window
- Disable power conversion (CV 29) in all locos
- If connecting via VNC (or similar), setup the screen layout before turning on the track power
Pi-SPROG One with version 2.4 or earlier firmware will cause a timeout after a track short circuit. A dialog box will
open to inform the user of this. The track power will be turned off and must be turned on again using the power control.
Download links:
Please note that the download links in this and future JMRI releases link to
Github servers.
People are welcome to distribute the download files further via other websites, etc.
If you want to check that you've received original, unmodified versions, please
check the files against the checksums shown below.
The
list of included changes is available from our
GitHub code repository.
Hardware Support
MERG CBUS
- CBUS Console - Translation of Bootloading ( Firmware Update ) CAN Frames.
- CBUS Console - Display JMRI Turnout, Sensor and Light status from CBUS On / Off Events.
- CBUS Event Table - Improvements to UI
New / Updated decoder definitions
BLI
- Blueline change version range
ESU
- Added LokPilot 5 family.
- Updated LokSound 5 Consist and Sound Levels panes to handle latest firmware updates.
SoundTraxx
- DSD-100LC steam & diesel add CV59
Control Panel Editor
- The Palette and Circuit Builder
windows make a "best effort" to open at a position minimizing
any area that may obscure the panel display.
- Circuit Builder
The system name is auto generated when the Add New Detector Circuit
window is opened. This name may be changed before the Occupancy
Block is created. After creating, the field is removed from the window
since the system name can no longer be edited.
- Palette
- Each tab resizes to display itself with its preferred dimensions.
- The Memory Tab has been modified to display generic
forms of their respective devices. Dragging is best accomplished by
mouse down within the Drag to Panel box, but outside
of the device icon itself.
- Bugs in the Signal Mast and Background
tabs have been fixed.
- The Text tab items have been rearranged.
Dispatcher
- The displayed names in the Section and Transit
tables, along with the transit selection and block selections in the
Activate New Train Dispatcher window, now behave like other
JMRI tools. Instead of the system name (user name) format,
the names use the display name format. The display name format
uses the user name. If not available, the system name is used.
- The list size for the dropdown combo boxes use the content size instead of
the default 8 rows.
- The Section, Transit, and Dispatcher help documents have been updated. The
Section and Transit help have been cleaned up to reduce redundant verbiage.
Scripting
- Jython has been updated to version 2.7.2
- Long deprecated
instance()
methods to get the default
instance of a manager have been removed. Use
InstanceManager.getDefault(NameOfManager.class)
instead.
- PR 8286 revised the way
that JMRI code should fire and catch events. If you have code (Java or script)
of your own that implements event firing or tricky listening, you
should review those changes to see if they will or should affect your code.
Signals
Signal Systems
- Eckart Meyer updated the DB HV 1969 system to have proper aspect control.
Throttle
- Add a speed step dropdown to the extended throttle;
this makes it easier to select the speed step mode and
makes it possible to select the less common speed step modes
exposed by some systems.
- Consolidated the throttle layout code,
centralized the logic for determining if throttle icons should be shown,
and added unit tests for the control panel layout and some preferences.
Warrants
- The Warrant List now responds to changes in window size.
The length of the status field varies as needed and keeps the
Stop All Trains button visible even on small screens.
- When creating a new warrant the system name is auto generated. This name may be
changed before the warrant is saved. After saving the field can not be edited.
Virtual Sound Decoder
- The VSD old graphical user interface (GUI) was removed. For users who call VSD
from JMRI PanelPro, nothing changes. For users who call VSD from a Jython script,
theoretically the script can fail. Please see also
here.
Miscellaneous