CHANGELOG

Summary

Maintainability
Test Coverage
* Fri Aug 30 2024 Adrian Coveney <adrian.coveney@stfc.ac.uk> - 3.4.1-1
 - Improved error logging to store full traceback on unexpected exceptions.
 - Changed more code to use pyOpenSSL to improve compatibility with newer OpenSSL versions.
 - Added a check to prevent a host certificate being to used for target server encryption.
 - Changed which version of exit function is used to avoid edge case.
 - Various changes and improvements to build scripts and processes.

* Wed Feb 21 2024 Adrian Coveney <adrian.coveney@stfc.ac.uk> - 3.4.0-1
 - Fixed compatability with newer versions of OpenSSL that only provide comma separated DNs.
 - Fixed Python 3 compatability (indirectly fixing EL8+ compatability) by performing explicit
   decoding. Note that this limits messages to ASCII as this is the current behaviour.
 - Added new build script that handles both RPM and DEB pacakging and later OSes.
 - Changed default config file values to bring in line with AMS usage.

* Mon Oct 09 2023 Adrian Coveney <adrian.coveney@stfc.ac.uk> - 3.3.0-1
 - Added warning that BDII broker fetching will be deprecated in a future version.
 - Added non-zero exit status if sender or receiver crash.
 - Fixed SSM hanging if TCP connection drops by adding timeout.
 - Fixed directory queue system picking up sub-directories.
 - Fixed AMS messaging library dependency issue.
 - Fixed documentation for running a containerised receiver.
 - Fixed a few minor code issues.

* Thu Jun 29 2023 Adrian Coveney <adrian.coveney@stfc.ac.uk> - 3.3.0-1
 - Added destination queue to the log during startup to aid troubleshooting.
 - Added check that the config file exists to allow for better error messages.
 - Changed dependencies to limit python-ldap below 3.4.0 and python-daemon below 2.3.0.
 - Changed rpmbuild config to use less OS-specific dependencies.
 - Fixed read timeouts leading to a crash.
 - Fixed command line arguments to allow a relative file path for the DNs file.
 - Removed the separate logging config file.
 - Removed python-daemon as a hard requirement as only needed for receivers.
 - Refactored a large amount of code for maintainability and security.

* Wed Apr 28 2021 Adrian Coveney <adrian.coveney@stfc.ac.uk> - 3.2.1-1
 - Changed certificate and key comparison to allow both RSA and EC keys.
 - Corrected dependencies to include OpenSSL.

* Thu Mar 18 2021 Adrian Coveney <adrian.coveney@stfc.ac.uk> - 3.2.0-1
 - Added logging of what certificate DNs/subjects are being used to facilitate
   troubleshooting.
 - Added stomp.py as .deb package dependency to avoid broken installations.
 - Refactored code to enable simpler external calls and better testing.

* Wed Dec 16 2020 Adrian Coveney <adrian.coveney@stfc.ac.uk> - 3.1.1-1
 - Changed logging to reduce how verbose the logging of a 3rd-party module is.

* Tue Dec 01 2020 Adrian Coveney <adrian.coveney@stfc.ac.uk> - 3.1.0-1
 - Enabled retries for all AMS communication methods to avoid timeouts from
   crashing SSM.

* Wed Sep 23 2020 Adrian Coveney <adrian.coveney@stfc.ac.uk> - 3.0.0-1
 - As part of the migration to Python 3, this release removes support for
   Python 2.6.
 - The argo-ams-library is now an optional module, depending on whether AMS is
   used or not.
 - Fixed how the use_ssl config option is retrieved to avoid "referenced before
   assignment" errors leading to SSM failing to run.
 - Changes made to messaging loops to avoid high CPU usage.

* Tue Sep 03 2019 Adrian Coveney <adrian.coveney@stfc.ac.uk> - 2.4.1-1
 - Fixed handling of OpenSSL errors so that messages that have been tampered
   with are now rejected.
 - Changed logging to remove excessive messages from a 3rd-party module used
   when sending via AMS.

* Thu Aug 01 2019 Adrian Coveney <adrian.coveney@stfc.ac.uk> - 2.4.0-1
 - Added support for sending and receiving messages using the ARGO Messaging
   Service (AMS).
 - Added option to send messages from a directory without needing to conform to
   the file naming convention that the dirq module requires.
 - Fixed SSM hanging if certificate is not authorised with the broker. Now it
   will try other brokers if available and then correctly shut down.
 - Fixed an OpenSSL 1.1 syntax error by including missing argument to checkend.

* Wed Nov 28 2018 Adrian Coveney <adrian.coveney@stfc.ac.uk> - 2.3.0-2
 - Updated build and test files only.

* Thu Aug 16 2018 Adrian Coveney <adrian.coveney@stfc.ac.uk> - 2.3.0-1
 - Added support for stomp.py versions from 3.1.6 onwards which allows for
   builds on Ubuntu Trusty and should enable IPv6 support.
 - Added script for creating Ubuntu (.deb) builds.
 - Added script for creating Docker container builds.

* Mon May 14 2018 Adrian Coveney <adrian.coveney@stfc.ac.uk> - 2.2.1-1
 - Added a check that the server certificate used for encryption hasn't expired
   so that a sending SSM won't start with an out of date server certificate.
 - Improved error handling for received messages so that more useful debugging
   information in obtained.

* Thu Nov 16 2017 Adrian Coveney <adrian.coveney@stfc.ac.uk> - 2.2.0-1
 - Added a check that certificates have not expired before starting SSM.
 - SSL errors now propagated out properly and saved for received messages.
 - Trimmed down the number of log messages generated for receivers.
 - Added python-devel build requirement for non fedora-packager OSs (CentOS).

 * Tue Jan 12 2016 Adrian Coveney <adrian.coveney@stfc.ac.uk> - 2.1.7-1
 - Added a delay when receiver is reconnecting to improve reliability.

 * Mon Mar 02 2014 Adrian Coveney <adrian.coveney@stfc.ac.uk> - 2.1.6-1
 - Improved the log output for SSM receivers so that there are fewer trivial
   entries and so it's more useful in tracking messages on the filesystem.

 * Fri Nov 28 2014 Adrian Coveney <adrian.coveney@stfc.ac.uk> - 2.1.5-1
 - (No changes from pre-release version.)

 * Fri Nov 28 2014 Adrian Coveney <adrian.coveney@stfc.ac.uk> - 2.1.5-0.4.rc4
 - Corrected namespace of overridden variable (to enable SSL/TLS changes).

 * Fri Nov 28 2014 Adrian Coveney <adrian.coveney@stfc.ac.uk> - 2.1.5-0.3.rc3
 - Removed python-ssl as a dependency as it can be option in some contexts.
 - Made it possible for old versions of stomp.py (3.0.3 and lower) to use
   SSL/TLS versions that aren't SSL 3.0.

 * Thu Nov 27 2014 Adrian Coveney <adrian.coveney@stfc.ac.uk> - 2.1.5-0.2.rc2
 - Added a warning for old versions of stomp.py (3.0.3 and lower) that are
   limited to using SSL 3.0 for secure connections.

 * Tue Nov 25 2014 Adrian Coveney <adrian.coveney@stfc.ac.uk> - 2.1.5-0.1.rc1
 - The highest version of SSL/TLS available is now used (previously only SSLv3).
 - Added python-ssl as a dependency (SL5/EL5 only).
 - Minor tweaks made to logging calls and the logging level of certain messages.

 * Fri Aug 08 2014 Adrian Coveney <adrian.coveney@stfc.ac.uk> - 2.1.4-1
 - Corrected version number used in Python code.

 * Mon Jul 21 2014 Adrian Coveney <adrian.coveney@stfc.ac.uk> - 2.1.3-1
 - (No changes from pre-release version.)

 * Thu Jul 17 2014 Adrian Coveney <adrian.coveney@stfc.ac.uk> - 2.1.3-0.2.alpha1
 - RPM now enforces the use of stomppy < 4.0.0 as versions greater than this are
   currently incompatible with SSM.
 - Changes made to disconnection method which should prevent threading
   exceptions (mostly during shutdown).

 * Mon Jun 02 2014 Adrian Coveney <adrian.coveney@stfc.ac.uk> - 2.1.2-0
 - The output of brokers.py has been improved so that it can be used to query
   the BDII for valid brokers.
 - The outgoing message directory will now be regularly cleared of empty
   directories and locked messages will be unlocked after five minutes.

 * Wed Oct 30 2013 Adrian Coveney <adrian.coveney@stfc.ac.uk> - 2.1.1-0
 - Reduced impact on message brokers of sending pings to refresh the connection.
 - Improved lost connection behaviour.

 * Tue Apr 16 2013 Will Rogers <will.rogers@stfc.ac.uk>  - 2.1.0-0
 - Verify any certificate supplied for encrypting messages
   against the CA path
 - Receiver can check CRLs on certificates

 * Wed Feb 27 2013 Will Rogers <will.rogers@stfc.ac.uk>  - 2.0.3-0
 - Add support for messages signed with quopri or base64
   content-transfer-encoding (for UNICORE).

 * Tue Feb 26 2013 Will Rogers <will.rogers@stfc.ac.uk>  - 2.0.2-0
 - Fix SSL connection for receiver

 * Fri Feb 8 2013 Will Rogers <will.rogers@stfc.ac.uk>  - 2.0.1-0
 - Fix crash when receiver sends ping message

 * Sat Jan 26 2013 Will Rogers <will.rogers@stfc.ac.uk>  - 2.0.0-0
 - Fix SSL connection option
 - First release of SSM2

 * Fri Jan 25 2013 Will Rogers <will.rogers@stfc.ac.uk>  - 0.0.4-0
 - Sensible defaults for release

 * Fri Jan 11 2013 Will Rogers <will.rogers@stfc.ac.uk>  - 0.0.3-0
 - Changed rpm name to apel-ssm

 * Thu Jan 03 2013 Will Rogers <will.rogers@stfc.ac.uk>  - 0.0.2-0
 - Fixed connection freeze