From 1e5d09eff44cbf55cba5e189b640f89df9862b51 Mon Sep 17 00:00:00 2001 From: Athanasius Date: Mon, 28 Nov 2022 15:39:03 +0000 Subject: [PATCH] Release 5.6.0: appversion and changelog --- ChangeLog.md | 81 +++++++++++++++++++++++++++++++++++++--------- config/__init__.py | 2 +- 2 files changed, 66 insertions(+), 17 deletions(-) diff --git a/ChangeLog.md b/ChangeLog.md index dda30d956..283a09be5 100644 --- a/ChangeLog.md +++ b/ChangeLog.md @@ -27,8 +27,17 @@ produce the Windows executables and installer. --- -Pre-Release 5.6.0-beta1 +Release 5.6.0 === + +Tha major reason for this release is to address the Live versus Legacy galaxy +split [coming in Update 14 of the game](https://www.elitedangerous.com/news/elite-dangerous-update-14-and-beyond-live-and-legacy-modes). +See the section "Update 14 and the Galaxy Split" below for how this might +impact you. + +Changes +--- + * We now test against, and package with, Python 3.10.8. * The code for sending data to EDDN has been reworked. This changes the 'replay log' from utilising an internal array, backed by a flat file @@ -52,7 +61,7 @@ Pre-Release 5.6.0-beta1 i.e. not a bad message, then this processing is abandoned to wait for the next invocation. - The 5-minute timer in point 2 differs from the old code, where almost any + The 5-minute timer in point 3 differs from the old code, where almost any new message sending attempt could initiate processing of the queue. At application startup this delay is only 10 seconds. @@ -68,14 +77,14 @@ Pre-Release 5.6.0-beta1 The rework was necessary in order to enable this, in case of any queued or delayed messages which did not contain this information in the legacy `replay.jsonl` format. - - **EDDN Listeners** - *If any message was already delayed such that it did not - have the EDDN header recorded, then the `gameversion` and `gamebuild` will - be empty strings*. In order to indicate this the `softwareName` will have - ` (legacy replay)` appended to it, e.g. `E:D Market Connector Connector - [Windows] (legacy replay)`. In general this indicates that the message was - queued up using a version of EDMC prior to this one. If you're only - interested in Live galaxy data then you might want to ignore such messages. +* For EDSM there is a very unlikely set of circumstances that could, in theory + lead to some events not being sent. This is so as to safeguard against + sending a batch with a gameversion/build claimed that does not match for + *all* of the events in that batch. + + It would take a combination of "communications with EDSM are slow", more + events (the ones that would be lost), a game client crash, *and* starting + a new game client before the 'more events' are sent. Update 14 and the Galaxy Split --- @@ -83,10 +92,12 @@ Due to the galaxy split [announced by Frontier](https://www.elitedangerous.com/n there are some changes to the major third-party websites and tools. * Inara [has chosen](https://inara.cz/elite/board-thread/7049/463292/#463292) - to only accept Live galaxy data on its API. As such EDMarketConnector will - not even process Journal data for Inara after 2022-11-29T09:00:00+00:00 - unless the `gameversion` indicates a Live client. This explicitly checks - that the game's version is semantically equal to or greater than '4.0.0'. + to only accept Live galaxy data on its API. + + This application will not even process Journal data for Inara after + 2022-11-29T09:00:00+00:00 *unless the `gameversion` indicates a Live client*. + This explicitly checks that the game's version is semantically equal to or + greater than '4.0.0'. If a Live client is *not* detected, then there is an INFO level logging message "Inara only accepts Live galaxy data", which is also set as the main @@ -94,13 +105,51 @@ there are some changes to the major third-party websites and tools. If you continue to play in the Legacy galaxy only then you probably want to just disable the Inara plugin with the checkbox on Settings > Inara. +* All batches of events sent to EDSM will be tagged with a `gameversion`, in + a similar manner to the EDDN header. -* As this application now sends `gameversion` in all EDDN message headers you - can expect other third-party sites to choose to filter data based on that. + Ref: [EDSM api-journal-v1](https://www.edsm.net/en/api-journal-v1) +* All EDDN messages will now have appropriate `gameversion` and `gamebuild` + fields in the `header` as per + [EDDN/docs/Developers.md](https://github.com/EDCD/EDDN/blob/live/docs/Developers.md#gameversions-and-gamebuild). + + As a result of this you can expect third-party sites to choose to filter data + based on that. Look for announcements by individual sites/tools as to what they have chosen to do. +Known Bugs +--- +In testing if it had been broken at all due to 5.5.0 -> 5.6.0 changes it has +come to light that `EDMC.EXE -n`, to send data to EDDN, was already broken in +5.5.0. + +In addition, there is now some extra 'INFO' logging output which will be +produced by any invocation of `EDMC.EXE`. This might break third-party use of +it, e.g. [Trade Computer Extension Mk.II](https://forums.frontier.co.uk/threads/trade-computer-extension-mk-ii.223056/). +This will be fixed as soon as the dust settles from Update 14, with emphasis +being on ensuring the GUI `EDMarketConnector.exe` functions properly. + +Notes for EDDN Listeners +--- +* Where EDMC sourced data from the Journal files it will set `gameversion` + and `gamebuild` as per their values in `Fileheader` or `LoadGame`, whichever + was more recent (there are some events that occur between these). +* *If any message was already delayed such that it did not + have the EDDN header recorded, then the `gameversion` and `gamebuild` will + be empty strings*. In order to indicate this the `softwareName` will have + ` (legacy replay)` appended to it, e.g. `E:D Market Connector Connector + [Windows] (legacy replay)`. In general this indicates that the message was + queued up using a version of EDMC prior to this one. If you're only + interested in Live galaxy data then you might want to ignore such messages. +* Where EDMC sourced data from a CAPI endpoint, the resulting EDDN message + will have a `gameversion` of `CAPI-` set, e.g. `CAPI-market`. + **At this time it is not 100% certain which galaxy this data will be for, so + all listeners are advised to ignore/queue such data until this is clarified**. + + `gamebuild` will be an empty string for all CAPI-sourced data. + Plugin Developers --- * There is a new flag in `state` passed to plugins, `IsDocked`. See PLUGINS.md diff --git a/config/__init__.py b/config/__init__.py index e3fa1312a..100ec7e74 100644 --- a/config/__init__.py +++ b/config/__init__.py @@ -52,7 +52,7 @@ # # Major.Minor.Patch(-prerelease)(+buildmetadata) # NB: Do *not* import this, use the functions appversion() and appversion_nobuild() -_static_appversion = '5.6.0-beta2' +_static_appversion = '5.6.0' _cached_version: Optional[semantic_version.Version] = None copyright = '© 2015-2019 Jonathan Harris, 2020-2022 EDCD'