Release Elite Dangerous Market Connector (EDMC)

Beta8 has broken output redirect, so won't be properly logging to the traditional file, and will have a popup complaining about this when you exit. I'll put out beta9 shortly to address this.
 
Pre-Release 4.1.0-beta9
Changes in beta8 had inadvertently broken the way printed output from the program is redirected to the logfile. This had two consequences:

  1. Anything using proper logging wouldn't appear in the Temp log file.
  2. A popup would appear on program exit, as the way we package the .exe causes any output to go to a file in the current working directory. This isn't writable with the way we install.
 
Oh, and I forgot the step to get that new .bat file into the installed files. So that won't be in until -rc1 (or beta10 if that's next). If you want to make your own, all it contains is:
Code:
EDMarketConnector.exe --trace
 
Last edited:
Pre-Release 4.1.0-rc1
This pre-release contains the result of a lot of code cleanup on several files and the addition of a proper logging paradigm, which should aid us in tracking down bugs.

None of the code cleanups should change actual program behaviour, but as we don't yet have the code in a state to have proper tests it's possible we've broken something.

  • The error 'list' object has no attribute 'values' should now be fixed.
  • This version will attempt to send empty market commodity lists over EDDN. The benefit of this is it will show when a Fleet Carrier no longer has any buy or sell orders active.
    At this time the EDDN Gateway will reject these messages. We're catching and suppressing that (but log a message at TRACE level). If/when the EDDN schema is updated and the Gateway starts using that this will mean, e.g. EDDB, can start better tracking Fleet Carrier markets.
  • We are now explicitly a Unicode application:
    1. A manifest setting in both EDMarketConnector.exe and EDMC.exe now specifies they're Unicode applications so that they default to using the UTF-8 codepage.
    2. We are now explicitly setting a UTF8 encoding at startup. NB: This is still necessary so that users running from source code are also using the UTF-8 encoding, there's no manifest in that scenario.
      This shouldn't have any side effects and has allowed us to switch to the native tkinter file dialogs rather than some custom code.
  • If you do encounter errors that might be related to this then it would be useful to see the logging output that details the Locale settings at various points during startup. Examples might include incorrect text being rendered for your language when you have it set, or issues with filenames and their content, but any of these are unlikely.
  • EDMarketConnector.exe now has gdiScaling set to true in its manifest. This results in better Windows OS scaling of the UI (radio buttons scale correctly now). This might negate the need for our own UI Scaling (see below), but we're leaving the functionality in for anyone who finds it useful.
  • New UI Scaling option! Find the setting on the 'Appearance' tab of Settings.
    1. This will only actually take effect after restarting the application.
    2. The 'Default' theme's menu names won't be resized due to using the default font. The other two themes work properly though as they use a custom font for those texts.
    3. As per the note next to the settings bar, "100" means "default", so set it to that if you decide you don't need the UI scaling.
    4. If you select 0 it will become 100 on the next startup.
  • Plugin Authors: If you are doing per-pixel things in your UI then you'll want to check config.get('ui_scale') and adjust accordingly. 100 means default scaling with other values being a percentage relative to that (so 150 means you need to scale everything x1.5).
  • Code dealing with Frontier's CAPI was cleaned up, so please report any issues related to that (mostly when just docked or when you press the Update button).
  • We now have proper logging available, using the python module of that name. Plugin Authors, please change your code to using proper logging, as per the new 'Logging' section of PLUGINS.md.
    1. We have a TRACE level of log output. By default this is turned off. Run either EDMarketConnector or EDMC with --trace flag to enable. This is intended for use where we need finer-grained tracing to track down a bug, but the output would be too spammy in normal use.
      To make it easy for users to run with TRACE logging there's a new file EDMarketConnector - TRACE.bat. Running this should result in the program running with tracing. Recommended use is to navigate a Windows File Explorer window to where EDMarketConnector.exe is installed then double-click this .bat file.
    2. EDMC.py has a new --loglevel command-line argument. See EDMC.py -h for the possible values. It defaults to 'INFO', which, unless there's an error, should yield the same output as before.
    3. EDMC.exe will now log useful startup state information if run with the --loglevel DEBUG arguments.
    4. EDMarketConnector has a new 'Loglevel' setting on the 'Configuration' tab to change the loglevel. Default is 'INFO' and advised for normal use. If reporting a bug it will be very helpful to change this to 'DEBUG' and then reproduce the bug.
    5. Both programs not only log to their old locations (console for EDMC, and %TEMP%\EDMarketConnector.log for the main application), but now also to a size-limited and rotated logfile inside the folder %TEMP%\EDMarketConnector\.
      1. A new file is only started if/when it reaches the 1 MiB size limit.
      2. We'll keep at most 10 backups of each file, so the maximum disk space used by this will be 22 MiB.
      3. The base filename inside there is EDMarketConnector-debug.log for the main program and EDMC-debug.log for the command-line program.
      4. Only actually logged output goes to these files, which currently is far from all the traditional output that goes to the old file/console. Anything using print(...) will not appear in these new files.
      5. These files always default to DEBUG level, whereas the old log file continues to follow the user-set logging level.
    6. Default logging level for plugins is DEBUG. This won't change what's actually logged, it just ensures that everything gets through to the two channels that then decide what is output.
  • There's a little extra DEBUG logging at startup so we can be sure of some things like Python version used (pertinent if running from source).
  • Minor tweak to EDDN plugin logging so we know what message we tried to send if it fails.
  • More logging added to companion.py to aid diagnosing Frontier Auth issues.
  • Extra TRACE level logging added for when we process Location, Docked, t puFSDJump and CarrierJump events for EDSM. This was added to help track down the cause of #713.
Translators: There are new strings to translate related to Log Levels and the new UI Scaling. Thanks to those who already updated!
 
Release 4.1.0

This release contains the result of a lot of code cleanup on several files and the addition of a proper logging paradigm, which should aid us in tracking down bugs.

None of the code cleanups should change actual program behaviour, but as we don't yet have the code in a state to have proper tests it's possible we've broken something.

  • The error 'list' object has no attribute 'values' should now be fixed.
  • This version will attempt to send empty market commodity lists over EDDN. The benefit of this is it will show when a Fleet Carrier no longer has any buy or sell orders active.
    At this time the EDDN Gateway will reject these messages. We're catching and suppressing that (but log a message at TRACE level). If/when the EDDN schema is updated and the Gateway starts using that this will mean, e.g. EDDB, can start better tracking Fleet Carrier markets.
  • We are now explicitly a Unicode application:
    1. A manifest setting in both EDMarketConnector.exe and EDMC.exe now specifies they're Unicode applications so that they default to using the UTF-8 codepage.
    2. We are now explicitly setting a UTF8 encoding at startup. NB: This is still necessary so that users running from source code are also using the UTF-8 encoding, there's no manifest in that scenario.
      This shouldn't have any side effects and has allowed us to switch to the native tkinter file dialogs rather than some custom code.
  • If you do encounter errors that might be related to this then it would be useful to see the logging output that details the Locale settings at various points during startup. Examples might include incorrect text being rendered for your language when you have it set, or issues with filenames and their content, but any of these are unlikely.
  • EDMarketConnector.exe now has gdiScaling set to true in its manifest. This results in better Windows OS scaling of the UI (radio buttons scale correctly now). This might negate the need for our own UI Scaling (see below), but we're leaving the functionality in for anyone who finds it useful.
  • New UI Scaling option! Find the setting on the 'Appearance' tab of Settings.
    1. This will only actually take effect after restarting the application.
    2. The 'Default' theme's menu names won't be resized due to using the default font. The other two themes work properly though as they use a custom font for those texts.
    3. As per the note next to the settings bar, "100" means "default", so set it to that if you decide you don't need the UI scaling.
    4. If you select 0 it will become 100 on the next startup.
  • Plugin Authors: If you are doing per-pixel things in your UI then you'll want to check config.get('ui_scale') and adjust accordingly. 100 means default scaling with other values being a percentage relative to that (so 150 means you need to scale everything x1.5).
  • Code dealing with Frontier's CAPI was cleaned up, so please report any issues related to that (mostly when just docked or when you press the Update button).
  • We now have proper logging available, using the python module of that name. Plugin Authors, please change your code to using proper logging, as per the new 'Logging' section of PLUGINS.md, rather than simple print(...) statements.
    1. We have a TRACE level of log output. By default this is turned off. Run either EDMarketConnector or EDMC with --trace flag to enable. This is intended for use where we need finer-grained tracing to track down a bug, but the output would be too spammy in normal use.
      To make it easy for users to run with TRACE logging there's a new file EDMarketConnector - TRACE.bat. Running this should result in the program running with tracing. Recommended use is to navigate a Windows File Explorer window to where EDMarketConnector.exe is installed then double-click this .bat file.
    2. EDMC.py has a new --loglevel command-line argument. See EDMC.py -h for the possible values. It defaults to 'INFO', which, unless there's an error, should yield the same output as before.
    3. EDMC.exe will now log useful startup state information if run with the --loglevel DEBUG arguments.
    4. EDMarketConnector has a new 'Loglevel' setting on the 'Configuration' tab to change the loglevel. Default is 'INFO' and advised for normal use. If reporting a bug it will be very helpful to change this to 'DEBUG' and then reproduce the bug. Changes to this will take effect immediately, no need for a restart.
    5. Both programs not only log to their old locations (console for EDMC, and %TEMP%\EDMarketConnector.log for the main application), but now also to a size-limited and rotated logfile inside the folder %TEMP%\EDMarketConnector\.
      1. The base filename inside there is EDMarketConnector-debug.log for the main program and EDMC-debug.log for the command-line program.
      2. A new file is only started if/when it reaches the 1 MiB size limit.
      3. We'll keep at most 10 backups of each file, so the maximum disk space used by this will be 22 MiB.
      4. Only actually logged output goes to these files, which currently is far from all the traditional output that goes to the old file/console. Anything using print(...) will not appear in these new files.
      5. These files always default to DEBUG level, whereas the old log file continues to follow the user-set logging level.
    6. Default logging level for plugins is DEBUG. This won't change what's actually logged, it just ensures that everything gets through to the two channels that then decide what is output.
  • There's a little extra DEBUG logging at startup so we can be sure of some things like Python version used (pertinent if running from source).
  • Minor tweak to EDDN plugin logging so we know what message we tried to send if it fails.
  • More logging added to companion.py to aid diagnosing Frontier Auth issues.
  • Extra TRACE level logging added for when we process Location, Docked, t puFSDJump and CarrierJump events for EDSM. This was added to help track down the cause of #713.
Translators: There are new strings to translate related to Log Levels and the new UI Scaling. Thanks to those who already updated!

There was a series of betas and release candidates between 4.0.6 and 4.1.0, see their individual changelogs on GitHub EDMarketConnector Releases. All the pertinent changes in them were folded into the text above.
 
NB: I've not updated the appcast file yet (that's the file that tells running EDMarketConnector.exe processes there's a new version). Please install manually and report any issues. If we get no reports of issues I'll update the appcast file later today.
 
NB: I've not updated the appcast file yet (that's the file that tells running EDMarketConnector.exe processes there's a new version). Please install manually and report any issues. If we get no reports of issues I'll update the appcast file later today.

... just installed. No problems have occurred. I simply installed v4.1.0 over v4.0.6. :)(y)
 
And the appcast file just got updated so automatic updates will start to be offered (the client only checks at most once every 8 hours).
 
Hm, the Update killed my EDMC.

I terminates again about a second or less after trying to launch the updated Version, no error Messages or Window or anything (?)
I guess I'll try again.

-- edit --

Nope, no dice.
Even uninstalling and re-installing the new Version doesn't make it even "peep" . Doesn't work.
I guess I have to rollback.

-- edit 2 --

Phew, V4.06 installed again - and absolutely no issues, works off the shelf.

Any idea what's going on with that? For what it's worth, I'm on Win7_64
 
Last edited:
Appears something about locales in win7-8.1 is different from win10. Will investigate tomorrow. For now please roll back to the last stable. To those that it DOES work for, you will be fine to keep running latest.
 
For anyone experiencing the "it doesn't even run" bug, add to this bug report. The information we need is:
  1. Your OS version (I suspect this is anything other than Windows 10).
  2. Your debug log file from "%TEMP%\EDMarketConnector\EDMarketConnector-debug.log"
  3. The other log file from "%TEMP%\EDMarketConnector.log"
 
Last edited:
In the meantime, I'm going to put together a 4.0.7 release with just the literal bugfixes from 4.1.0, no other changes.
 
For anyone having issues with 4.1.0 I've just backported the couple of fixes in it to make a 4.0.7:


Release 4.0.7

Due to the locale-related issues we're seeing with 4.1.0 this is a version based on 4.0.6, with a couple of fixes backported.

  • The error 'list' object has no attribute 'values' should be fixed.
  • This version will attempt to send empty market commodity lists over EDDN. The benefit of this is it will show when a Fleet Carrier no longer has any buy or sell orders active.
    At this time the EDDN Gateway will reject these messages. We're catching and suppressing that. If/when the EDDN schema is updated and the Gateway starts using that this will mean, e.g. EDDB, can start better tracking Fleet Carrier markets.
 
Anyone who had issues with 4.1.0 please report back if this new version works for you or not.

Release 4.1.1

This release should get the program running again for everyone who had issues with 4.1.0.

  • Catch any exception when we try to set UTF-8 encoding. We'll log where this fails but the program should continue running.
  • The use of the tkinter.filedialog code is now contingent on a UTF-8 encoding being set. If it isn't then we'll revert to the previous non-tkinter file dialog code. The older OSes that can't handle a UTF-8 encoding will get that slightly worse file dialog (that was previously always the case before 4.1.0). Everyone else gets to enjoy the more up to date file dialog with all the shortcuts etc.
 
Top Bottom