Release Notes for JMRI 4.21.4 release
      
    Date: January 29, 2021
    From: Bob Jacobsen
    Subject: Test Release 4.21.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 test releases.
We expect this series to end in the next JMRI production release in early 2021.
(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 a version older than JMRI 4.20, 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 relese.
     
- 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
    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:
Older warnings
See the 
JMRI 4.20 release note for more warnings predating the 4.21 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 
JMRI 4.20
installing this test release.
    - Since JMRI 4.21.1
        The jmri.jmrix.SystemConnectionMemo class has become a jmri.SystemConnectionMemo
        interface and a jmri.jmrix.DefaultSystemConnectionMemo class. This may
        require changes to scripts.  If you have a script that references
        jmri.jmrix.SystemConnectionMemo, please change it to either
        jmri.SystemConnectionMemo or jmri.jmrix.DefaultSystemConnectionMemo
        (it's easier to have you just try the two than to explain which
        one will work in which case)
    
- Since JMRI 4.21.1
        The way preferences are loaded at startup has been slightly
        modified.  There is no impact to JMRI applications, but Non-JMRI
        applications that are not derived from apps.Apps or apps.AppsBase
        but are using jmri.implementation.JmriConfigurationManager to load
        preferences will no longer see preferences if an error occurs.  To
        restore the old behavior, use apps.AppsConfigurationManager instead.
    
- Since JMRI 4.19.1
        The getBeanByUserNameandgetBeanBySystemNamecalls in the variousManagerclasses
        are no longer needed with Java 8 and have been deprecated for eventual
        removal.  Their replacements aregetByUserNameandgetBySystemNamerespectively.
        If you usegetBeanByUserNameandgetBeanBySystemNamein script or Java code you've written, please
        switch to the new names.
- 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
        DCC-EX
            
                - messaging enhancements and cleanup, retry some failed messages
- allow user to define meters in DCC-EX that display in JMRI
LocoNet
            
                - New LNCV Programming tool (Uhlenbrock protocol), available from LocoNet menu, with window
                  specific help.
Uhlenbrock Intellibox
            
                - Added hardware connection support for the (LocoNet) Uhlenbrock USB Adapter part #63120.
                  Manufacturer states their USB drivers only support Windows OS.
New / Updated decoder definitions
        Digikeijs (Digirails)
            
                - Added DR5033 LocoBoost configuration support, using the new LNCV service mode programming.
 You can access the DecoderPro programming panes from the LNCV Tool table matched by article number
                  (5033 in this case).
Digitrax
            
                - Allow configuration of more function outputs for FX3 decoders.
Uhlenbrock
            
                - New Switch Module 63410 decoder support, using the new LNCV service mode programming.
 You can access the DecoderPro programming panes from the LNCV Tool table matched by article number
                (6341 in this case).
Dispatcher System
        
        
             - In addition to running trains by Signal Masts or Signal Heads you may now run trains by No Signals
             This is most useful for Automatic engineer, and works best with fast throw switchs, such as snap switchs, as
             it works solely on whether a section is allocated. If you need to check switch sensors for position you must
             continue to use SSL or SML signals.
Meters and MeterFrames
        
        
            - default meter digits based on max and resolution of defined meter
Operations
        
        
            - New feature for cars, Return When Loaded. Now you can set a load name and destination for a car when
            it's load status changes to loaded. See operations help for more details.
Preferences
        
        
            - The rules for the system connection prefix (one capital followed only by a number, for example D78)
            are now protected in the Connection Preference panel. Invalid entries are highlighted in red.
- A bug that could make connection tabs disappear has been fixed.
Signals
        
	    Cab Signals
            
                - Better set row height in table.
Switchboard Editor
        
        
            - Slider and Key switch shapes are drawn on screen instead of loading image files.
              This increased redraw speed and allows using your custom colors and scaling the size of
              the graphics to the space available. The old images files for these have been removed.
- Symbol shapes are still drawn by swapping 2 image files. We added the option to scale them
            in the Option menu. (Hint: You can replace the supplied image files with your own images as
            long as they carry identical file names).
Timetable
        
        
            - Set the default start time for a new train to match the schedule start time.
Warrants
        
        
            - A button to translate the throttle settings to track speed in inches/sec
            	or millimeters/sec or scale speed on miles/hr or kilometers/hr has been
            	added to the windows used for editing Warrants or creating NXWarrants.
Miscellaneous
        
        
            - YetAnotherAutoTrain.py (YAAT) has been updated to version 2.2.  This version
            includes support for compiling train definitions for faster startup.  It also includes
            the ability to create extensions to the command language.  A Help document has been
            added to the JMRI Help pages.
- The Comments columns in Tools ⇒ Tables have support for multi-line comments.
            The Edit Comment option has been added to the right click pop-up
            menu that is normally used to move user names.  A tooltip will be displayed with
            the comment content.