Skip to content

Releases: EDCD/EDMarketConnector

Release/5.5.0

26 Sep 09:49
Release/5.5.0
2fba41c
Compare
Choose a tag to compare

Release 5.5.0

Download and run the EDMarketConnector_win_5.5.0.msi linked below this changelog to install.

  • Virus Total scan results for this release.
  • We now test against, and package with, Python 3.10.7.
  • EDDN: Support added for the FCMaterials schemas to aid third-party sites in offering searches for where to buy and sell Odyssey Micro Resources, including on Fleet Carriers with the bar tender facility.

Bug Fixes

  • EDDN: Abort fsssignaldiscovered sending of message if no signals passed the checks.
  • EDDN: Add Horizons check for location on fsssignaldiscovered messages.
  • Don't alert the user if the first attempted load of NavRoute.json contains no route.
  • Inara: Don't set marketID for ApproachSettlement unless it's actually present in the event.

Plugin Developers

  • We now build using the new, setuptools mediated py2exe freeze() method, so we're in the clear for when distutils is removed in Python 3.12.

    This shouldn't have any adverse effects on plugins, i.e. all of the same Python modules are still packaged as before.

  • Support has been added for the NavRouteClear event. We do send this through to plugins, so that they know the player has cleared the route, but we keep the previously plotted route details in state['NavRoute'].

  • The documentation of the return type of journal_entry() has been corrected to Optional[str].

  • FDevIDs files (commodity.csv rare_commodity.csv) updated to latest versions.

Developers

  • We now build using the new, setuptools mediated py2exe freeze() method, so we're in the clear for when distutils is removed in Python 3.12.
  • The old setup.py file, along with associated py2exe.cmd have been removed in favour of the new Build-exe-and-msi.py file. Documentation updated.

Release/5.4.1

18 Jun 12:59
Release/5.4.1
e1354c3
Compare
Choose a tag to compare

Release 5.4.1 VirusTotal

  • We now test against, and package with, Python 3.10.5.

  • If for any reason EDMarketConnector.exe fails to shutdown and exit when asked to by the upgrade process this should no longer result in a spontaneous system reboot. Closes #1492.

    A manual reboot will still be required to complete the EDMarketConnector upgrade process and we make no guarantees about the stability of the application until this is done.

  • The new EDDN fsssignaldiscovered/1 schema has been implemented.

  • EDSM trace level logging will no longer log API credentials unless explicitly asked to, separately from other EDSM API trace logging.

Bug Fixes

  • EDDN: Ensure we always remove all _Localised suffix keys in data. This was missed in some recent new schemas and turned out to be an issue for at least approachsettlement/1.

Release/5.4.0

08 Jun 13:06
Release/5.4.0
20c60a3
Compare
Choose a tag to compare

Release 5.4.0-beta0

  • We now test against, and package with, Python 3.10.4.
  • New EDDN schema fssbodysignals is now supported.
  • Odyssey Update 12 will add BodyID to CodexEntry journal events, so don't overwrite this with an augmentation if it is already present. We've also added the same for BodyName in case Frontier ever add that.
  • Translations updated. Thanks again to all the contributors.

Bug Fixes

  • Cross-check the MarketID in CAPI data, not only the station name, to ensure the data is for the correct station. Closes #1572.
  • Location cross-check paranoia added to several EDDN message types to ensure no bad data is sent.
  • Ensure we don't send bad BodyID/Name for an orbital station if the player uses a taxi. Closes #1522.

Developers

  • Odyssey Update 12 adds a new Journal event, and file, FCMaterials.json, detailing the available trades at a Fleet Carrier's bar tender. Support has been added for this. Plugin developers are sent an FCMaterials event with the full contents of the file.

EDMC.exe

This now uses specific exit codes in all cases, rather than a generic EXIT_SYS_ERR (6) for some cases. See the appropriate line in EDMC.py for details.

Release/5.4.0-beta0

06 Jun 13:36
Release/5.4.0-beta0
44ecfb1
Compare
Choose a tag to compare
Release/5.4.0-beta0 Pre-release
Pre-release

Pre-Release 5.4.0-beta0

  • We now test against, and package with, Python 3.10.4.
  • New EDDN schema fssbodysignals is now supported.
  • Odyssey Update 12 will add BodyID to CodexEntry journal events, so don't overwrite this with an augmentation if it is already present. We've also added the same for BodyName in case Frontier ever add that.

Bug Fixes

  • Cross-check the MarketID in CAPI data, not only the station name, to ensure the data is for the correct station. Closes #1572.
  • Location cross-check paranoia added to several EDDN message types to ensure no bad data is sent.
  • Ensure we don't send bad BodyID/Name for an orbital station if the player uses a taxi. Closes #1522.

Developers

  • Odyssey Update 12 adds a new Journal event, and file, FCMaterials.json, detailing the available trades at a Fleet Carrier's bar tender. Support has been added for this. Plugin developers are sent an FCMaterials event with the full contents of the file.

EDMC.exe

This now uses specific exit codes in all cases, rather than a generic EXIT_SYS_ERR (6) for some cases. See the appropriate line in EDMC.py for details.

Release/5.3.4

22 Mar 07:39
Release/5.3.4
693463d
Compare
Choose a tag to compare

Release 5.3.4

Whilst EDMarketConnector.exe was fixed for the Odyssey Update 11 difference in Journal file names, EDMC.exe was not. If you're wondering, that's the command-line utility that, for instance, Trade Computer Extensions uses to obtain data.

  • Use the new common function for finding latest journal file in EDMC.py.
  • Quietens some NavRoute related logging for the benefit of EDMC.py. This is now at DEBUG level, rather than INFO.

Release/5.3.4-beta1

18 Mar 10:15
Release/5.3.4-beta1
c18c181
Compare
Choose a tag to compare
Release/5.3.4-beta1 Pre-release
Pre-release

Release 5.3.4

Whilst EDMarketConnector.exe was fixed for the Odyssey Update 11 difference in Journal file names, EDMC.exe was not.

  • Use the new common function for finding latest journal file in EDMC.py.
  • Quietens some NavRoute related logging for the benefit of EDMC.py. This is now at DEBUG level, rather than INFO.

Release/5.3.3

15 Mar 16:27
Release/5.3.3
8104a71
Compare
Choose a tag to compare

Release 5.3.3

Unfortunately 5.3.2 failed to fully address the issues caused by the different Journal filenames when using the Odyssey Update 11 client. It's fine if you run EDMarketConnector first and then the game, as the code path that detects a new file always does just that.

But the code for EDMarketConnector startup to find the current newest Journal file relied on sorting the filenames and that would mean the new-style names would always sort as 'oldest'.

This release fixes that code to properly use the file modification timestamp to determine the newest file on startup.

Release/5.3.2

15 Mar 14:05
Release/5.3.2
b601302
Compare
Choose a tag to compare

Release 5.3.2

This release contains one change to cope with how Frontier decided to name the Journal files differently in the Update 11 Odyssey client.

Release/5.3.1

21 Feb 12:35
Release/5.3.1
24e8912
Compare
Choose a tag to compare

Release 5.3.1

This release addresses some issues with newer EDDN code which could cause erroneous alerts to the player, or sending of bad messages.

  • EDDN: Cope with ApproachSettlement on login occurring before Location, such that we don't yet know the name of the star system the player is in.

    Closes #1484

  • EDDN: Cope with ApproachSettlement missing planetary coordinates on login at/near a settlement in Horizons.

    Closes #1476

  • EDDN: Change the CodexEntry "empty string" checks to only apply to those values where the schema enforces "must be at least one character".

    This prevents the big 'CodexEntry had empty string, PLEASE ALERT THE EDMC DEVELOPERS' message from triggering on, e.g. NearestDestination being empty, which the schema allows.

    Closes #1481

Plugin Developers

  • If you use a sub-class for a widget the core code will no longer break if your code raises an exception. e.g. a plugin was failing due to Python 3.10 using collections.abc instead of collections, and the plugin's custom widget had a configure() method which was called by the core theme code on startup or theme change. This then caused the whole application UI to never show up on startup.

    This also applies if you set up a button such that enter/leave on it, i.e. mouse in/out, causes the theme.py code for that to trigger.

    So, now in such cases the main UI should actually show up, although your plugin's UI might look weird due to theming not being properly applied.

    The plugin exception WILL be logged, at ERROR level.

Release/5.3.0

15 Feb 15:34
Release/5.3.0
e6c3421
Compare
Choose a tag to compare
  • We now test against, and package with, Python 3.10.2.

    As a consequence of this we no longer support Windows 7.
    This is due to Python 3.10.x itself not supporting Windows 7.
    The application (both EDMarketConnector.exe and EDMC.exe) will crash on startup due to a missing DLL.

    This should have no other impact on users or plugin developers, other than the latter now being free to use features that were introduced since the Python 3.7 series.

    Developers can check the contents of the .python-version file in the source (it's not distributed with the Windows installer) for the currently used version in a given branch.


Release 5.3.0

As has sadly become routine now, please read our statement about malware false positives affecting our installers and/or the files they contain. We are as confident as we can be, without detailed auditing of python.org's releases and all the py2exe source and releases, that there is no malware in the files we make available.

This release is primarily aimed at fixing some more egregious bugs, shortcomings and annoyances with the application. It also adds support for two additional EDDN
schemas.

  • We now test and build using Python 3.10.2. We do not yet make use of any features specific to Python 3.10 (or 3.9). Let us restate that we absolutely reserve the right to commence doing so.

  • We now set a custom User-Agent header in all web requests, i.e. to EDDN, EDSM and the like. This is of the form:

    EDCD-EDMarketConnector-<version>

  • "File" -> "Status" will now show the new Odyssey ranks, both the new categories and the new 'prestige' ranks, e.g. 'Elite I'.

    NB: Due to an oversight there are currently no translations for these.

    Closes #1369.

  • Running EDMarketConnector.exe --reset-ui will now also reset any changes to the application "UI Scale" or geometry (position and size).

    Closes #1155.

  • We now use UTC-based timestamps in the application's log files. Prior to this change it was the "local time", but without any indication of the applied timezone. Each line's timestamp has UTC as a suffix now. We are assuming that your local clock is correct and the timezone is set correctly, such that Python's time.gmtime() yields UTC times.

    This should make it easier to correlate application logfiles with in-game time and/or third-party service timestamps.

  • The process used to build the Windows installers should now always pick up all the necessary files automatically. Prior to this we used a manual process to update the installer configuration which was prone to both user error and neglecting to update it as necessary.

  • If the application fails to load valid data from the NavRoute.json file when processing a Journal NavRoute event, it will attempt to retry this operation a number of times as it processes subsequent Journal events.

    This should hopefully work around a race condition where the game might not have yet updated NavRoute.json at all, or has truncated it to empty, when we first attempt this.

    We will also now NOT attempt to load NavRoute.json during the startup 'Journal catch-up' mode, which only sets internal state.

    Closes #1348.

  • Inara: Use the <journal log>->Statistics->Bank_Account->Current_Wealth value when sending a setCommanderCredits message to Inara to set commanderAssets.

    In addition, a setCommanderCredits message at game login will now only ever be sent at game login. Yes, you will NEED to relog to send an updated balance. This is the only way in which to sanely keep the 'Total Assets' value on Inara from bouncing around.

    Refer to Inara:API:docs:setCommanderCredits.

    Closes #1401.

  • Inara: Send a setCommanderRankPilot message when the player logs in to the game on-foot. Previously you would HAVE to be in a ship at login time for this to be sent.

    Thus, you can now relog on-foot in order to update Inara with any Rank up or progress since the session started.

    Closes #1378.

  • Inara: Fix for always sending a Rank Progress of 0%.

    Closes #1378.

  • Inara: You should once more see updates for any materials used in Engineering. The bug was in our more general Journal event processing code pertaining to EngineerCraft events, such that the state passed to the Inara plugin hadn't been updated.

    Such updates should happen 'immediately', but take into account that there can be a delay of up to 35 seconds for any data sent to Inara, due to how we avoid breaking the "2 messages a minute" limit on the Inara API.

    Closes #1395.

  • EDDN: Implement new approachsettlement/1 schema.

  • EDDN: Implement new fssallbodiesfound/1 schema.

  • EDDN: We now compress all outgoing messages. This might help get some particularly large navroute messages go through.

    If any message is now rejected as 'too large' we will drop it, and thus not retry it later. The application logs will reflect this.

    NB: The EDDN Gateway was updated to allow messages up to 1 MiB in size anyway. The old limit was 100 KiB.

    Closes #1390.

  • EDDN: In an attempt to diagnose some errors observed on the EDDN Gateway with respect to messages sent from this application some additional checks and logging have been added.

    NB: After some thorough investigation it was concluded that these EDDN errors were likely the result of long-delayed messages due to use of the "Delay sending until docked" option.

    There should be no functional changes for users. But if you see any of the following in this application's log files PLEASE OPEN AN ISSUE ON GITHUB with all the requested information, so that we can correct the relevant code:

    • No system name in entry, and system_name was not set either! entry: ...
    • BodyName was present but not a string! ...
    • post-processing entry contains entry ...
    • this.body_id was not set properly: ...
    • system is falsey, can't add StarSystem
    • this.coordinates is falsey, can't add StarPos
    • this.systemaddress is falsey, can't add SystemAddress
    • this.status_body_name was not set properly: ...

    You might also see any of the following in the application status text (bottom of the window):

    • passed-in system_name is empty, can't add System
    • CodexEntry had empty string, PLEASE ALERT THE EDMC DEVELOPERS
    • system is falsey, can't add StarSystem
    • this.coordinates is falsey, can't add StarPos
    • this.systemaddress is falsey, can't add SystemAddress

    Ref: #1403 #1393.

Translations

  • Use a different workaround for OneSky (translations website) using "zh-Hans" for Chinese (Simplified), whereas Windows will call this "zh-CN". This is in-code and documented with a comment, as opposed to some 'magic' in the Windows Installer configuration that had no such documentation. It's less fragile than relying on that, or developers using a script/documented process to rename the file.

  • As noted above we forgot to upload to OneSky after adding the Odyssey new ranks/categories. This has now been done, and some new phrases await translation.

Plugin Developers

We now test against, and package with Python 3.10.2.

  • We've made no explicit changes to the Python stdlib, or other modules, we currently offer, but we did have to start explicitly including asyncio and multiprocessing due to using a newer version of py2exe for the windows build.

  • We will now include in the Windows installer all of the files that py2exe places in the build directory. This is vulnerable to a later version of our code, python and/or py2exe no longer causing inclusion of a module.

    We have endeavoured to ensure this release contains at least all of the same modules that 5.2.4 did.

    We are looking into including all of Python stdlib, but if there's a particular part of this we don't package then please ask us to by opening an issue on GitHub.

  • We now have an .editorconfig file which will instruct your editor/IDE to change some settings pertaining to things like indentation and line wrap, assuming your editor/IDE supports the file.

    See Contributing.md->Text formatting.

  • As noted above, prior to this version we weren't properly monitoring EngineerCraft events. This caused the state passed to plugins to not contain the correct 'materials' (Raw, Manufactured, Encoded) counts.

  • config.py has been refactored into a sub-directory, with the per-OS code split into separate files. There shouldn't be any changes necessary to how you utilise this, e.g. to...

Read more