Release Elite Dangerous Market Connector (EDMC)

Status
Thread Closed: Not open for further replies.

Release 4.2.3

This release mostly addresses an issue when Frontier Authorisation gets stuck on 'Logging in...' despite completing the authorisation on the Frontier website.

  • Allow edmc... argument to EDMarketConnector.exe. This should only be necessary when something has prevented your web browser from invoking the edmc protocol via DDE.
    If you were encountering the 'Logging in...' issue and still do with this release then please try running the application via the new "EDMarketConnector - localserver-auth.bat" file in the installation directory.
    This simply runs EDMarketConnector.exe with the --force-localserver-for-auth command-line argument. This forces the code to setup and use a webserver on a random port on localhost for the Frontier Authorisation callback, the same way it already works on non-Windows platforms.
  • Add Korean translation to both the application and the installer.
 
With a view to being able to quickly respond to any code changes required to support the forthcoming ED Odyssey Alpha we're going to be merging the current "develop" branch code into the "main" branch.

This means anyone running EDMC from source should probably be using the "stable" branch (which tracks released versions for the most part), rather than "main". Unless, of course, you want to help with wider testing of this newer code. If you're running from the Windows packages this won't affect you at all.

Currently I plan to perform the "develop" -> "main" merge some time on Wednesday, 24th March 2021.

The versions of EDMC for Odyssey (Alpha and beyond) will definitely be based on current "develop" work, so if you have the ability to test it please do!
 
Last edited:

Release 4.2.4

This release fixes one cosmetic bug and prepares for the Odyssey Alpha.

  • Avoid a spurious 'list index out of range' status text. This was caused by the EDDN plugin running out of data to send.
  • Add some paranoia in case Odyssey Alpha looks like a live version. This should prevent sending any alpha data to EDDN, EDSM and Inara.
  • Reduce some log spam in normal operation below TRACE level.
  • Updated Korean translation.
 
With a view to being able to quickly respond to any code changes required to support the forthcoming ED Odyssey Alpha we're going to be merging the current "develop" branch code into the "main" branch.

This means anyone running EDMC from source should probably be using the "stable" branch (which tracks released versions for the most part), rather than "main". Unless, of course, you want to help with wider testing of this newer code. If you're running from the Windows packages this won't affect you at all.

Currently I plan to perform the "develop" -> "main" merge some time on Wednesday, 24th March 2021.

The versions of EDMC for Odyssey (Alpha and beyond) will definitely be based on current "develop" work, so if you have the ability to test it please do!
This merge has now been performed. So if you were runnig from source on the "main" branch you might want to switch to the "stable" branch... but we'd appreciate more user testing of this newer code.
 
As information about the Odyssey Alpha testing has now been made public...

For all of those taking part, one small request. Please ensure you've upgraded to the latest versions of EDMC. Check for new versions daily. And if you see any issues open a bug report or enhancement request as necessary.

I'll put out a 5.0.0-beta1 on Sunday evening at the latest (but probably before because we have some new code that needs wider testing anyway). Expect a new release on Monday once we're certain of some things like the gameversion in the Journal files.
 
Oh, and just in case a certain set of circumstances conspire to make EDMC think the Alpha is a live version...

I advise all players to not have EDMarketConnector.exe running whilst playing the Odyssey Alpha, until I've had chance to either declare things OK, or have released a new version that addresses any issues.
 
Oh, and just in case a certain set of circumstances conspire to make EDMC think the Alpha is a live version...

I advise all players to not have EDMarketConnector.exe running whilst playing the Odyssey Alpha, until I've had chance to either declare things OK, or have released a new version that addresses any issues.
I'm sorry, it's not quite clear.
If someone accidentally runs the subjob while running alpha, it will not break the database for all ?
 
I'm sorry, it's not quite clear.
If someone accidentally runs the subjob while running alpha, it will not break the database for all ?
We don't know. We've done our best to ensure that no alpha data ends up being sent, but it could, so please be wary until we can say for sure that its okay.
 
I'm sorry, it's not quite clear.
If someone accidentally runs the subjob while running alpha, it will not break the database for all ?
With phase 1 only being a single star system the damage to databases like EDDB and EDSM will be minimal, if any at all.

However you also don't want your personal data being sent to the EDSM or Inara APIs from the Alpha. It could screw with things like your credit balance, ships owned, faction reputation and anything else that is sent to those APIs.

So, play safe, don't run EDMC (or other third party tools) whilst playing the Alpha until we say it's safe.
 

Pre-Release 5.0.0-beta1


At this stage you should only install this version if you're able, and prepared, to make high quality bug reports and test fixes. But do note that any Odyssey changes will be based upon this version, not 4.2.4, and thus it is in everyone's interest to help test this if they can.

This release comes after some substantial code cleanup and is our first based on Python 3.9 rather than 3.7. Other than what is noted in this changelog it should have the same functionality as 4.2.4.
  • We are now testing and building with Python 3.9 (3.9.2 specifically at this point). This should have no 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.
    For developers you 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.
  • We now also cite the git 'short hash' in the version string. For a Windows install of the application this is sourced from the .gitversion file
    (written during the build process).
    When running from source we attempt to use the command git rev-parse --short HEAD to obtain this. If this doesn't work it will be set to 'UNKNOWN'.
  • New 'Main window transparency' slider on Settings > Appearance.
  • New command-line argument for EDMarketConnector.exe --reset-ui. This will:
    1. Reset to the default Theme.
    2. Reset the UI transparency to fully opaque.
    3. The intention is this can be used if you've lost sight of the main window due to tweaking these options.
  • We have added a 'killswitch' feature to turn off specific functionality if it is found to have a bug. An example use of this would be in an "oh
    ! we're sending bad data to EDDN!" moment so as to protect EDDN listeners such as EDDB.
    If we ever have to use this we'll announce it clearly and endeavour to get a fixed version of the program released ASAP. We will NOT be
    using this merely to try and get some laggards to upgrade.
  • Our logging code will make best efforts to still show class name and other such fields if it has trouble finding any of the required data for
    the calling frame. This means no longer seeing ??:??:?? when there is an issue with this.
  • macOS: We've managed to test the latest code on macOS Catalina. Other than keyboard shortcut support not working it appears to be working.
  • We've pulled the latest Coriolis data which might have caused changes to ship and module names as written out to some files.

Plugin Developers​

  • config.py has undergone a major rewrite. You should no longer be using config.get(...) or config.getint(...), which will both give a
    deprecation warning.
    Use instead the correct config.get_ function:
    • config.get_list(<key>)
    • config.get_str(<key>)
    • config.get_bool(<key>)
    • config.get_int(<key>)
    • Setting still uses config.set(...).
  • The files stations.p and systems.p have been removed from the Windows Installer. These were never intended for third-party use. Their core code use was for generating EDDB-id links, but we long since changed the EDDB plugin's handlers for that to use alternate URL formats based on game IDs or names.
    If you were using either to lookup EDDB IDs for systems and/or stations then please see how system_url() and station_url now work in
    plugins/eddb.py.
    This change also removed the core (not plugin) eddb.py file which generated these files. You can find it still in the git history if needs
    be. It had gotten to the stage where generating systems.p took many hours and required 64-bit Python to have any hope of working due to memory usage.
  • Support has been added for the NavRoute (not Route as v28 of the official Journal documentation erroneously labels it) Journal event and
    its associated file NavRoute.json. See PLUGINS.md:Events documentation
  • Similarly there is now support for the ModuleInfo event and its associated ModulesInfo.json file.

Code Clean Up​

  • Some code to do with processing Journal events has been re-factored.
  • The code for File > Status has been cleaned up.
  • Localisation code has been cleaned up.
  • Code handling the Frontier Authorisation callback on Windows has been cleaned up.
 

Release 4.2.5

  • Support the 'JournalAlpha' files from the Odyssey Alpha. We've confirmed any data from these is correctly tagged as 'beta' for the is_beta flag passed to plugins.
    Any data from Odyssey Alpha is sent to EDDN using the test schemas.
    No data from Odyssey Alpha is sent to the EDSM or Inara APIs.
  • Fix ship loadout export to files to not trip up in the face of file encoding issues. This relates to the 'Ship Loadout' option on the 'Output' tab of Settings/Preferences.

Plugin Authors​

We've added a compatibility layer so that you can start using the different config.get methods that are in 5.0.0-beta1.
 

Pre-Release 5.0.0-beta2

  • Support the 'JournalAlpha' files from the Odyssey Alpha. We've confirmed any data from these is correctly tagged as 'beta' for the is_beta flag passed to plugins.
    Any data from Odyssey Alpha is sent to EDDN using the test schemas.
    No data from Odyssey Alpha is sent to the EDSM or Inara APIs.
  • Fix ship loadout export to files to not trip up in the face of file encoding issues. This relates to the 'Ship Loadout' option on the 'Output' tab of
    Settings/Preferences.

Plugin Authors​

Note that config.appversion() and config.appversion_nobuild() now return a semantic_version.Version, not a str.
 

Release 4.2.7

Developer error meant that 4.2.6 didn't actually contain the intended fix. This will, honest. No, it wasn't intended as an April Stupids Day prank.

Release 4.2.6​

This release applies a workaround for a game bug to do with late Scan events.
  • EDDN requires that all Scan events are augmented with StarPos (system co-ordinates). This is taken from the co-ordinates of the current system.
    A sequence of EDDN messages indicated that the game can log a delayed Scan event for the previous system after having already jumped (FSDJump event) to another system.
    This application would then erroneously apply the new system's StarPos to the Scan from the old system.
    This application will now not send such delayed Scan events to EDDN at all.
 

Pre-Release 5.0.0-beta3

This pre-release allows for using the application with the Odyssey Phase 1 Alpha without constant complaints of 'Error: Frontier server is lagging'. Work is on-going for supporting any new items and features in the Alpha, but this application should now be usable with it. Please
report any EDMC errors you experience!
  • Add support for detecting if a player is on-foot. This is then used to prevent false 'Frontier server lagging' messages.
    Note that currently your on-foot location can only be detected when you login, and not when you disembark from an Apex shuttle anywhere.
  • Linux and macOS: You can now set a font name and size in your config file. Ensuring this is a TTF font, rather than a bitmap font, should allow the application UI scaling to work.
    1. 'font' - the font name to attempt using
    2. 'font_size' - the font size to attempt using.
    There is no UI for this in Preferences, you will need to edit your config file to set or change it, and then restart the application.
    This is not supported on Windows so as not to risk weird bugs. UI Scaling works on Windows without this.
  • Code to do with processing Journal events was reworked and noisy logging reduced as a consequence.

Plugin Authors​

  • The new materials added in Odyssey (for things like Suit and on-foot Weapon upgrades) are now tracked in the state['Component'] dictionary.
    NB: Only from the MissionCompleted event at this point, support still needs adding for the ShipLockerMaterials event to synchronise totals at login.
  • companion.ship_map was moved to util_ships.ship_map so as to avoid an import loop from some other changes.
 

Pre-Release 5.0.0-beta4

  • Now using Python 3.9.4.
  • Some initial support for things new in Odyssey has been added. We can detect when you're on-foot and at a station, so as to leverage Frontier CAPI to send data about the station to EDDN etc.
    NB: Due to shortcomings in Journal support we can only detect your 'station' location on orbital stations, and only when you first login there, not for subsequent Disembarking at one, and not at all for surface ports, let alone surface settlements.
    More support, for things like the 'ShipLocker' inventory of all the new materials, will be added in a subsequent beta.
  • A little TRACE logging output has been commented out for now.

Plugin Developers

  • All static data that is cleared for use by plugins is now in the file edmc_data.py and should be imported from there, not any other module.
    The one thing we didn't move was the 'bracket map' dictionaries in td.py as they're for use only by the code in that file.
    All future such data will be added to this file, and we'll endeavour not to make breaking changes to any of it without increasing our Major version.
  • We now change the current working directory of EDMarketConnector.exe to its location as soon as possible in its execution. We're also now more paranoid about ensuring we reference the full path to the .gitversion file.
    However, no plugin should itself call os.chdir(...) or equivalent. You'll change the current working directory for all core code and other plugins as well (it's global to the whole process, not per-thread). Use full absolute paths instead (pathlib is what to use for this)
 
Pre-Release 5.0.0-beta5
  • Ship Type/Name will now be greyed out, and not clickable, if we don't currently have loadout information for it. This prevents trying to send an empty loadout to your shipyard provider.
  • Sanity check a returned Frontier Authentication token to be sure it's for the current Commander. If it's not you'll see "Error: customer_id doesn't match!" on the bottom status line. Double-check you're using the correct credentials when authing!
  • Bug fixed when handling CAPI-sourced shipyard information. This would currently only have shown up on live for Fleet Carriers due to a Frontier bug with not returning shipyard data at all for normal stations.
    It has been observed that Frontier has fixed this bug for Odyssey.
  • Don't try to get Ship information from LoadGame event if directly in CQC.
  • A lot of general code cleanup relating to: Inara, outfitting, Frontier CAPI, hotkey (manual Updates), dashboard (Status.json monitoring), commodities files, ED format ship loadout files.
  • Inara: Don't attempt to send an empty setCommanderReputationMajorFaction API call. This quietens an error from the Inara API caused when a Cmdr literally has no Major Faction Reputation yet.
Plugin Developers
  • Initial support for new Odyssey "MicroResources" (Data, Item, Component and Consumable) in the "Ship Locker" and "BackPack". NB: Currently the ShipLockerMaterials
    event omits a Data array, so we can't properly track those.
    See the updated PLUGINS.md for details about this in the state dictionary.
 

Pre-Release 5.0.0-beta6

This adds a new UI element 'Suit', below 'Ship' when applicable that details the type of suit you currently have equipped and its Loadout name. This UI element is collapsed/hidden if no suit/on-foot state is detected, i.e. not playing Odyssey (Alpha or otherwise).
  • Updated translations. Once more, thanks to all the translators!
  • There is a new CL arg for EDMarketConnector.exe --force-edmc-protocol, but this is really only of use to core developers (its purpose being to force use of the edmc:// protocol for Frontier Auth callbacks, even when not 'frozen').
  • Slightly improve checking of old ship loadout files before writing a new one.
  • Linux config will be flushed to disk after any change. This means that EDMC.py can now actually make use of the latest CAPI auth if it's been updated by EDMarketConnector.py since that started.

Plugin Developers​

We now have support for Odyssey Suits and their Loadouts. See PLUGINS.md for details, particuarly the way in which state[Suits] might be either a list or a dict and how to deal with that.
NB: This data is only guaranteed up to date and correct after a fresh CAPI data pull, as the current Journal events don't allow for updating it on the fly (this should change in a future Odyssey patch).
 
Latest Python releases no longer support Windows 7

I've been made aware that all Python 3.9 releases state " Note that Python 3.9.4 cannot be used on Windows 7 or earlier. " or similar. Ref: https://www.python.org/downloads/windows/

The upcoming EDMC 5.0.0 will be using Python 3.9.4 and as such, according to that quote, will not work on Windows 7, but will continue to work with Windows 8/8.1 and Windows 10.

In the long-term I expect a future Python release to drop support for Windows 8/8.1, and possibly at some point only support Windows 10 versions newer than some release.

Whilst it's definitely still possible to upgrade a Windows 7/8/8.1 install to Windows 10 for free I'm aware that for some people there's hardware incompatibility that prevents this.

We could try to put out separate installers using latest Python 3.8 for the build, but at some point Python 3.8 will no longer be supported, and sooner than this we'll likely start using Python 3.9+ specific features in the code.

I'd appreciate comments from anyone still on Windows 7 who currently uses EDMC.
 
Status
Thread Closed: Not open for further replies.
Top Bottom