Skip to content

Releases: EDCD/EDMarketConnector

Release 5.1.2

29 Jul 18:10
066bd60
Compare
Choose a tag to compare
  • We now test against, and package with, Python 3.9.6.

    As a consequence of this we no longer support Windows 7.
    This is due to Python 3.9.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.1.2

  • A Journal event change in EDO Update 6 will have caused some translated suit names to not be properly mapped to their sane versions. This change has now been addressed and suit names should always come out as intended in the EDMarketConnector.exe UI.

  • There is a new command-line argument to cause all Frontier Authorisation to be forgotten: EDMarketConnector.exe --forget-frontier-auth.

  • Situations where Frontier CAPI data doesn't agree on the location we have tracked from Journal events will now log more useful information.

Bug Fixes

  • The code should now be robust against the case of any Journal event name changing.

Plugin Developers

  • We now store GameLanguage, GameVersion and GameBuild in the state passed to journal_entry() from the LoadGame event.

  • Various suit data, i.e. class and mods, is now stored from relevant Journal events, rather than only being available from CAPI data. In general, we now consider the Journal to be the canonical source of suit data, with CAPI only as a backup.

  • Backpack contents should now track correctly if using the 'Resupply' option available on the ship boarding menu.

  • We now cache the main application version when first determined, so that subsequent references to config.appversion() won't cause extra log spam (which was possible when, e.g. having a git command but using non-git source).

Release 5.1.1

10 Jun 19:13
Compare
Choose a tag to compare
  • We now test against, and package with, Python 3.9.5.

    As a consequence of this we no longer support Windows 7.
    This is due to Python 3.9.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.1.1

The big change in this is adjustments to be in line with Journal changes in Elite Dangerous Odyssey 4.0.0.400, released 2021-06-10, with respect to the Odyssey materials Inventory.

This update is mandatory if you want EDMarketConnector to update Inara.cz with your Odyssey inventory.

  • ShipLockerMaterials is dead, long live ShipLocker. Along with other changes to how backpack inventory is handled we should now actually be able to fully track all Odyssey on-foot materials and consumables without errors.

  • Inara plugin adjusted to send the new ShipLocker inventory to Inara.cz. This is still only your ship inventory of Odyssey materials, not anything currently in your backpack whilst on foot.
    See this issue for some quotes from Artie (Inara.cz developer) about not including backpack contents in the Inara inventory.

  • Errors related to sending data to EDDN are now more specific to aid in diagnoising issues.

  • Quietened some log output if we encounter connection errors trying to utilise the Frontier CAPI service.

Translations

We believe that nothing should be worse in this version compared to 5.1.1, although a small tweak or two might have leaked through.

We'll be fully addressing translations in a near-future release after we've conclude the necessary code level work for the new system. Nothing should change for those of you helping on OneSky, other than at most the 'comments' on each translation. They should be more useful!

Pending that work we've specifically chosen not to update any translations in this release, so they'll be the same as released in 5.1.0.

Bug Fixes

  • Handle where the Backpack.json file for a Backpack event is a zero length
    file. Closes #1138.

  • Fixed case of 'Selection' in 'Override Beta/Normal Selection' text on Settings > Configuration. This allows translations to work.

Plugin Developers

  • We've updated Contributing.md including:

    1. Re-ordered the sections to be in a more logcial and helpful order.
    2. Added a section about choosing an appropriate log level for messages.
    3. fstrings now mandatory, other than some use of .format() with respect to translated strings.
  • docs/Translations.md updated about a forthcoming change to how we can programmatically check that all translation strings have a proper comment in 'L10n/en.template' to aid translators.

  • state passed to journal_entry() now has ShipLockerJSON which contains the json.load()-ed data from the new 'ShipLocker.json' file. We do attempt to always load from this file, even when the ShipLocker Journal event itself contains all of the data (which it does on startup, embark and disembark), so it should always be populated when plugins see any event related to Odyssey inventory.

Release 5.1.0

04 Jun 18:18
Compare
Choose a tag to compare
  • We now test against, and package with, Python 3.9.5.

    As a consequence of this we no longer support Windows 7.
    This is due to Python 3.9.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.1.0

  • Updates to how this application utilises the Inara.cz API.

    1. The current state of your ShipLockerMaterials (MicroResources for Odyssey Suit and handheld Weapons upgrading and engineering) will now be sent. Note that we can't reliably track this on the fly, so it will only update when we see a full ShipLockerMaterials Journal event, such as at login or when you disembark from any vehicle.
    2. Odyssey Suits and their Loadouts will now be sent.
    3. When you land on a body surface, be that in your own ship, in a Taxi, or in a Dropship. Depending on the exact scenario a Station might be sent along with this.
  • You can now both edit the 'normal' and 'beta' coriolis.io URLs, and choose which of them are used. 'Auto' means allowing the application to use the normal one when you're running the live game, or the beta version if running a beta version of the game.

  • Suit names will now be displayed correctly when we have pulled the data from the Frontier CAPI, rather than Journal entries.

  • Many translations updated once more, especially for new strings. Thanks as always to those contributing!

Bug Fixes

Plugin Developers

There are some new members of the state dictionary passed to journal_entry(); Taxi, Dropship, Body and BodyType. See PLUGINS.md for the details.

Release 5.0.4

27 May 17:05
Compare
Choose a tag to compare
  • We now test against, and package with, Python 3.9.5.

    As a consequence of this we no longer support Windows 7.
    This is due to Python 3.9.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.0.4

This is a minor bugfix release, ensuring that Odyssey Suit names (and loadout) will actually display if you're in your ship on login and never leave it.

NB: This still requires a Frontier CAPI data pull, either automatically because you're docked if you have that option set, or by pressing the 'Update' button. We can't display data when we don't have it from either CAPI or Journal sources. You'll also see '<Unknown>' between the time we see the Journal LoadGame event during login and when there's either a Journal suit-related event, or a CAPI data pull completes.

Release 5.0.3

27 May 14:14
Compare
Choose a tag to compare
  • We now test against, and package with, Python 3.9.5.

    As a consequence of this we no longer support Windows 7.
    This is due to Python 3.9.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.0.3

  • You can now click on a 'cell' in the "File" > "Status" popup to copy that text to the clipboard. This was a relatively easy, and non-intrusive, code change. We'll look at richer, fuller, copy functionality in the future.

  • Suit names, for all grades, should now be displaying as just the relevant word, never a symbol, and with the redundant 'suit' word(s) from all languages removed. Note that Frontier have not translated the following, so neither do we: "Artemis", "Dominator", "Maverick". The 'Flight Suit' should, approximately, use the Frontier-supplied translation for 'Flight' in this context. In essence the displayed name is now as short as possible whilst disambiguating the suit names from each other.

Bug Fixes

  • The check for "source, but with extra changes?" in appversion will now not cause an error if the "git" command isn't available. Also, the extra text added to the build number is now ".DIRTY".

  • Actually properly handle the "you just made progress" version of the EngineerProgress Journal event, so that it doesn't throw errors.

Plugin Developers

  • The backpack and ship locker tracking of micro-resources might now actually be correct with respect to 'reality' in-game. This is in part thanks to Frontier changes to some events in 4.0.0.200.

  • Suit names will now only be sourced from Journal events if the application didn't (yet) have the equivalent CAPI data.

  • The displayed Suit name is stored in an extra "edmcName" key within state['Suits'] and state['SuitCurrent']. What was found in the Journal or CAPI data is still present in the "name" and "locName" values.

  • The "language", "gameversion" and "build" values from the "Fileheader" event are all now stored in state[] fields. See PLUGINS.md for updated documentation.

  • We have a new Contributing.md policy of adding comments in a defined format when we add or change code such that there's a 'hack', 'magic' or 'workaround' in play. You might find some of this enlightening going forwards.

Release 5.0.2

21 May 14:22
Compare
Choose a tag to compare
  • We now test against, and package with, Python 3.9.5.

    As a consequence of this we no longer support Windows 7.
    This is due to Python 3.9.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.0.2

This release is primarily aimed at getting the UI "Suit: ..." line working properly.

  • The "Suit: ..." UI line should now function as best it can given the available data from the game. It should not appear if you have launched the Horizons version of the game, even if your account has Odyssey enabled. You might see "<Unknown>" as the text when this application does not yet have the required data.

  • Changed the less than obvious "unable to get endpoint: /profile" error message to "Frontier CAPI query failure: /profile", and similarly for the other CAPI endpoints we attempt to access. This new form is potentially translated, but translators need time to do that.

    In addition the old message "Received error {r.status_code} from server" has been changed to "Frontier CAPI server error: {r.status_code}" and is potentially translated.

  • The filenames used for 'Market data in CSV format file' will now be sane, and as they were before 5.0.0.

  • Linux: 'Shipyard provider' will no longer default to showing 'False' if no specific provider has been selected.

Plugin Developers

  • Extra Flagse values added in the live release of Odyssey have been added to edmc_data.py.

  • Odyssey 'BackPack' values should now track better, but might still not be perfect due to Journal bugs/shortcomings.

  • state passed to journal_entry() now has a BackpackJSON (note the case) member which is a copy of the data from the Backpack.json (yes, that's currently the correct case) file that is written when there's a BackPack (guess what, yes, that is currently the correct case) event written to the Journal.

  • state['Credits'] tracking is almost certainly not perfect. We're accounting for the credits component of SuitUpgrade now, but there might be other such we've yet accounted for.

  • state['Suits'] and associated other keys should now be tracking from Journal events, where possible, as well as CAPI data.

  • There is a section in PLUGINS.md about how to package an extra Python module with your plugin. Note the new caveat in PLUGINS.md:Avoiding-pitfalls about the name of your plugin's directory.

Release 5.0.1

17 May 17:49
Compare
Choose a tag to compare

Release 5.0.1

The main reason for this release is to add an 'odyssey' boolean flag to all EDDN messages for the benefit of listeners, e.g. eddb.io, inara.cz, edsm.net, spansh.co.uk, etc. Please do update so as to make their lives easier once Odyssey has launched!

  • Translations have been updated again. Thanks to all the contributors. See wiki:Translations and Translations welcome for links and discussion if you want to help.

  • Changed the error message "Error: Frontier server is down" to "Error: Frontier CAPI didn't respond" to make it clear this pertains to the CAPI and not the game servers.

Killswitches

In the 5.0.0 changelog we said:

We will **NOT** be using this merely to try and get some laggards to upgrade.

However, from now on there is an exception to this. After this release any subsequent -beta or -rc versions will be killswitched after their full release is published.

For example, if we put out a 5.0.2-beta1 and 5.0.2-rc1 before the full 5.0.2, then when 5.0.2 was published we would activate all available killswitches for versions 5.0.2-beta1 and 5.0.2-rc1. In this example 5.0.1 would not be killswitched as part of this policy (but still could be if, e.g. a data corruption bug was found in it).

In general please do not linger on any -beta or -rc release if there has been a subsequent release. Upgrade to the equivalent full release once it is published.

Plugin Developers

  • Please make the effort to subscribe to GitHub notifications of new EDMarketConnector releases:

    1. Login to GitHub.
    2. Navigate to EDMarketConnector.
    3. Click the 'Watch' (or 'Unwatch' if you previously set up any watches on us). It's currently (2021-05-13) the left-most button of 3 near the top-right of the page.
    4. Click 'Custom'.
    5. Ensure 'Releases' is selected.
    6. Click 'Apply'.

    This way you'll be aware, as early as possible, of any -beta and -rc changelogs and changes that might affect your work.

  • state passed to journal_entry() has a new member Odyssey (note the capital O) which is a boolean indicating if the LoadGame event both has an Odyssey key, and if so, what the value was. Defaults to False.

  • PLUGINS.md updated to document the state['Horizons'] flag that has been present in it since version 3.0 of the game.

  • The stations.p and systems.p files that were deprecated in 5.0.0 have now also been removed in git. As this release is made they will no longer be in the develop, main or stable branches. If you truly need to find a copy look at the Release/4.2.7 tag, but do read the 5.0.0 changelog for why we stopped using them and what you can change to also not need them.

Release 5.0.0

12 May 14:11
Compare
Choose a tag to compare

Release 5.0.0

Python 3.9

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

    As a consequence of this we no longer support Windows 7.
    This is due to Python 3.9.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.

This Update Is Mandatory

This release is a mandatory upgrade for the release of Elite Dangerous Odyssey. Any bug reports against earlier releases, pertaining to Odyssey or not, will be directed to reproduce them with 5.0.0 or later. There are also minor bugs in 4.2.7 and earlier that have been fixed in this version. There will NOT be another 4.2.x release.

The major version has been incremented not for Odyssey support, but because we have made some minor breaking changes to the APIs we provide for plugin developers.

Due to these plugin API changes (see below) users might need to update their plugins. A check of all the Plugins we know about only found one with an issue related to the move to edmc_data.py, the developer was informed and the issue addressed.

Other plugins should, at most, log deprecation warnings about the config changes (again, see below).

In the first instance please report any issues with plugins to their developers, not us. They can contact us about EDMC core code issues if they find such in their investigations.

All plugin developers would benefit from having a GitHub account and then setting up a watch on EDMarketConnector of at least 'Releases' under 'Custom'.

NB: If you had any beta or -rc1 of 5.0.0 installed and see anything weird with this full release it would be advisable to manually uninstall, confirm the installation directory (default c:\Program Files (x86)\EDMarketConnector) is empty, and then re-install 5.0.0 to be sure you have a clean, working, install. Anyone upgrading from 4.2.7 or earlier shouldn't see any issues with this.

Changes and Enhancements

  • If the application detects it's running against a non-live (alpha or beta) version of the game it will append " (beta)" to the Commander name on the main UI.

  • Updated translations. Once more, thanks to all the translators!

  • We now 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!

  • 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.

    The intention is this can be used if you've lost sight of the main window due to tweaking these options.

    There is a new file EDMarketConnector - reset-ui.bat to make utilising this easy on Windows.

  • New CL arg for EDMarketConnector.exe --force-edmc-protocol. 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').

  • 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.

    If you want to run multiple instances of the application under Linux then please check the updated Troubleshooting: Multi-Accounting wiki entry.

  • 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.

  • 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'.

  • 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 shit! 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.

    Plugin Developers: See Killswitches.md for more information about this.

  • 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.

Odyssey

Every effort was made during the Odyssey Alphas to ensure that this application will continue to function correctly with it. As always, make a Bug Report if you find anything not working, but be sure to check our Known Issues first.

  • A new UI element 'Suit' now appears below 'Ship' when applicable. It 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, e.g. not playing Odyssey.

  • Note that we can only reliably know about Suits and their Loadouts from a CAPI data pull (which is what we do automatically on docking if configured to do so, or when you press the 'Update' button). We do attempt to gather this data from Journal events as well, but if you switch to a Suit Loadout that hasn't been mentioned in them yet we won't be able to display that until the next CAPI data pull.

If anyone becomes aware of a 'suit loadouts' site/tool, a la Coriolis/EDSY but for Odyssey Suits, do let us know so we can add support for it! We're already kicking around ideas to e.g. place JSON text in the clipboard if the Suit Loadout is clicked.

Bug Fixes

  • 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.

  • 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.

  • Bug fixed when handling CAPI-sourced shipyard information. This happens 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.

  • 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.

Code Clean Up

  • Code pertaining to processing Journal events was reworked and noisy logging reduced as a consequence.

  • A little TRACE logging output has been commented out for now.

  • 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.

  • A lot of general code cleanup relating to: Inara, outfitting, Frontier CAPI, hotkey (manual Updates), dashboard (Status.json monitoring), commodities files, and ED format ship loadout files.

Plugin Developers

  • The files stations.p and systems.p have been removed from the Windows Installer. These were never intended for third-party use. Their use in core code was for generating EDDB-id URLs, 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.

  • All static data that is [cleared for use by plugins](https://github.com/EDCD/EDMarketConne...

Read more

Pre-Release 5.0.0-rc1

08 May 09:52
Compare
Choose a tag to compare
Pre-Release 5.0.0-rc1 Pre-release
Pre-release

Pre-Release 5.0.0-rc1

Python 3.9

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

    As a consequence of this we no longer support Windows 7. This is due to Python 3.9.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.

Changes and Enhancements

  • If the application detects it's running against a non-live (alpha or beta) version of the game it will append " (beta)" to the Commander name on the main UI.

  • Updated translations. Once more, thanks to all the translators!

  • We now 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!

  • 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.

    The intention is this can be used if you've lost sight of the main window due to tweaking these options.

  • New CL arg for EDMarketConnector.exe --force-edmc-protocol. 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').

  • 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.

    If you want to run multiple instances of the application under Linux then please check the updated Troubleshooting: Multi-Accounting wiki entry.

  • 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.

  • 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'.

  • 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 shit! 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.

Odyssey

Every effort was made during the Odyssey Alphas to ensure that this application will continue to function correctly with it. As always, make a Bug Report if you find anything not working, but be sure to check our Known Issues first.

  • A new UI element 'Suit' now appears below 'Ship' when applicable. It 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, e.g. not playing Odyssey.

  • Note that we can only reliably know about Suits and their Loadouts from a CAPI data pull (which is what we do automatically on docking if configured to do so, or when you press the 'Update' button). We do attempt to gather this data from Journal events as well, but if you switch to a Suit Loadout that hasn't been mentioned in them yet we won't be able to display that until the next CAPI data pull.

If anyone becomes aware of a 'suit loadouts' site/tool, a la Coriolis/EDSY but for Odyssey Suits, do let us know so we can add support for it! We're already kicking around ideas to e.g. place JSON text in the clipboard if the Suit Loadout is clicked.

Bug Fixes

  • 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.

  • 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.

  • Bug fixed when handling CAPI-sourced shipyard information. This happens 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.

  • 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.

Code Clean Up

  • Code pertaining to processing Journal events was reworked and noisy logging reduced as a consequence.

  • A little TRACE logging output has been commented out for now.

  • 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.

  • A lot of general code cleanup relating to: Inara, outfitting, Frontier CAPI, hotkey (manual Updates), dashboard (Status.json monitoring), commodities files, and ED format ship loadout files.

Plugin Developers

  • The files stations.p and systems.p have been removed from the Windows Installer. These were never intended for third-party use. Their use in core code was for generating EDDB-id URLs, 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.

  • 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.

  • config.appversion() is now a function that returns a semantic_version.Version. In contexts where you're expecting a string this should mostly just work. If needs be wrap it in str().

  • Example plugin plugintest updated. This includes an example of how to check core EDMC version if needs be. This example is also in PLUGINS.md.

  • 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_<type>() function:

    • config.get_list(<key>)
    • config.get_str(<key>)
    • config.get_bool(<key>)
    • config.get_int(<key>)

    Setting still uses config.set(...).

  • We now change the current working directory of EDMarketConnector.exe to its location as soon as possible in its execution. We're also 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).

  • The state dict passed to plugins in journal_entry() calls (which is actually monitor.state in the core code) has received many additions relating to Odyssey...

Read more

Pre-Release 5.0.0-beta8

06 May 07:59
Compare
Choose a tag to compare
Pre-release

Pre-Release 5.0.0-beta8

  • If the application detects it's running against a non-live (alpha or beta) version of the game it will append " (beta)" to the Commander name on the main UI.

  • Don't assume some Journal events always have a 'Cost' value.

  • Removed a stray piece of code relating to the aborted systray implementation. This would have caused minimising of the application to hide the window. Only triggered if you'd tried our develop branch whilst the systray code was active, and left the option "Minimize to systray" active.

Plugin Developers

  • monitor.state['OnFoot'] is now set True for a DropshipDeploy event.

  • Better detect that we're back on-foot from Disembark on a station.

  • Better Docked event processing to cater for the more limited form of this event in an Apex taxi.