diff --git a/edmarketconnector.xml b/edmarketconnector.xml index a696a1e4..a4187153 100644 --- a/edmarketconnector.xml +++ b/edmarketconnector.xml @@ -17,142 +17,10 @@
Due to a lack of time to give the project the attention it needs Marginal has handed over ownership of the EDMarketConnector GitHub repository to the EDCD (Elite Dangerous Community Developers) organisation.
Initially Athanasius will now be responsible for maintaining the code, including addressing any Pull Requests and Issues, and making releases. Unfortunately he has no access to hardware running MacOS so can't easily generate builds for that platform or test them. So for the time being releases will be for Windows 10 only. MacOS users are advised to look into running from source (see the github README).
Going forwards the intention is to move to the python 3.7 code as soon as possible. To facilitate this there will be one more python 2.7 release in addition to this one, with the main aim of that being to add code to alert the user about any plugins they use that have apparently not been updated to run under python 3.7.
-See the project GitHub repository's README.md for further information.
+See the project GitHub repository's README.md for further information.
The first time that you run the app while playing the game you are redirected to Frontier's authentication website and prompted for your username and password.
-This is a minor maintenance release, mostly addressing behaviour around -process shutdown and startup, along with a couple of small enhancements that -most users won't notice.
+This release mostly addresses an issue when Frontier Authorisation gets stuck +on 'Logging in...' despite completing the authorisation on the Frontier +website.
If there is already an EDMarketConnector.exe process running when trying -to run another instance then that new process will no longer exit silently. -Instead you'll get a pop-up telling you it's detected another process, and -you need to close that pop-up in order for this additional process to then -exit.
-This hopefully makes it obvious when you've got a hung EDMarketConnect.exe -process that you need to kill in order to re-run the program.
+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.
In order to gather more information about how and why EDMarketConnector.exe -sometimes doesn't shutdown properly we've added some extra debug logging to -the sequence of clean-up calls performed during shutdown.
-Also, to make it more obvious if the process has hung during shutdown the -UI window is no longer hidden at the start of this shutdown sequence. It -will instead linger, with "Shutting down..." showing in the status line -(translation for this small phrase will be added in a later release).
-If you encounter this shutdown hang then please add a comment to +
Add Korean translation to both the application and the installer.
+This release contains a minor bug-fix, actually properly checking a station's +ships list before operating on it.
+ships['shipuard_list']
is a dict
before trying to use
+.values()
on it. This fixes the issue with seeing list object has no attribute values
in the application status line.This is a bug-fix release.
+Updated translations. Thanks once again to all those contributing as per +Translations.
+PLUGINS.md: Clarify when CargoJSON
is populated.
macOS: pip install -r requirements.txt
will now include pyobjc
so that
+running this application works at all. Check the updated Running from
+source
+for some advice if attempting to run on macOS.
JournalLock: Handle when the Journal directory isn't set at all, rather than +erroring. Fixes #910 - Not launching (Linux).
+Extra logging added to track down cause of #909 - Authentication not possible (PC) +. The debug log file might now indicate what's wrong, or we might need +you to run
+"c:\Program Files (x86)\EDMarketConnector/EDMarketConnector.exe" --trace
+
+in order to increase the log level and gather some extra information.
+Caution is advised if sharing a --trace
log file as it will now contain
+some of the actual auth data returned from Frontier.
Ensure that 'Save Raw Data' will work. Fixes #908 - Raw export of CAPI data broken.
+Prevent EDDN plugin from erroring when we determine if the commander has +Horizons. Fixes #907 - Modules is a list not a dict on damaged stations
+This release increases the Minor version due to the major change in how +multiple-instance checking is done.
+Adds Steam and Epic to the list of "audiences" in the Frontier Auth callout +so that you can authorise using those accounts, rather than their associated +Frontier Account details.
+New status message "CAPI: No commander data returned" if a /profile
+request has no commander in the returned data. This can happen if you
+literally haven't yet created a Commander on the account. Previously you'd
+get a confusing 'commander'
message shown.
Changes the "is there another process already running?" check to be based on
+a lockfile in the configured Journals directory. The name of this file is
+edmc-journal-lock.txt
and upon successful locking it will contain text
+like:
Path: <configured path to your Journals>
+PID: <process ID of the application>
+
+The lock will be released and applied to the new directory if you change it +via Settings > Configuration. If the new location is already locked you'll +get a 'Retry/Ignore?' pop-up.
+For most users things will operate no differently, although note that the +multiple instance check does now apply to platforms other than Windows.
+For anyone wanting to run multiple instances of the program this is now +possible via:
+runas /user:<USER> "\"c:\Program Files (x86)\EDMarketConnector\EDMarketConnector.exe\" --force-localserver-for-auth"
If anything has messed with the backslash characters there then know that you +need to have " (double-quote) around the entire command (path to program .exe +and any extra arguments), and as a result need to place a backslash before +any double-quote characters in the command (such as around the space-including +path to the program).
+I've verified it renders correctly on GitHub.
+The old check was based solely on there being a window present with the title
+we expect. This prevented using runas /user:SOMEUSER ...
to run a second
+copy of the application, as the resulting window would still be within the
+same desktop environment and thus be found in the check.
The new method does assume that the Journals directory is writable by the +user we're running as. This might not be true in the case of sharing the +file system to another host in a read-only manner. If we fail to open the +lock file read-write then the application aborts the checks and will simply +continue running as normal.
+Note that any single instance of EDMarketConnector.exe will still only monitor +and act upon the latest Journal file in the configured location. If you run +Elite Dangerous for another Commander then the application will want to start +monitoring that separate Commander. See wiki:Troubleshooting#i-run-two-instances-of-ed-simultaneously-but-i-cant-run-two-instances-of-edmc +which will be updated when this change is in a full release.
+Adds the command-line argument --force-localserver-for-auth
. This forces
+using a local webserver for the Frontier Auth callback. This should be used
+when running multiple instances of the application for all instances
+else there's no guarantee of the edmc://
protocol callback reaching the
+correct process and Frontier Auth will fail.
Adds the command-line argument --suppress-dupe-process-popup
to exit
+without showing the warning popup in the case that EDMarketConnector found
+another process already running.
This can be useful if wanting to blindly run both EDMC and the game from a +batch file or similar.
+We might have finally found the cause of the application hangs during shutdown. +Note that this became easier to track down due to the downtime +for migration of www.edsm.net around 2021-01-11. Before these fixes EDSM's +API not being available would cause an EDMC hang on shutdown.
+We've applied extra paranoia to some of the application shutdown code to +ensure we're not still trying to handle journal events during this sequence.
+We also re-ordered the shutdown sequence, which might help avoid the shutdown +hang.
+If you encounter a shutdown hang then please add a comment and log files to Application can leave a zombie process on shutdown #678 to help us track down the cause and fix it.
Cater for 'mangled name' class functions in our logging code. e.g. where
-you name a class member with a __
prefix in order to 'hide' it from
-out-of-class code.
We now avoid making Tk event_generate() calls whilst the appliction is +shutting down.
To help track down the cause of Crashing On Startup #798
-we've added some exception catching in our logging code. If this is
-triggered you will see ??:??
in logging output, instead of class and/or
-function names.
If you encounter this then please comment on that bug report to aid us in -tracking down the root cause!
+Plugins should actively avoid making any sort of Tk event_generate() call +during application shutdown.
+This means using if not config.shutting_down:
to gate any code in worker
+threads that might attempt this. Also, be sure you're not attempting such
+in your plugin_stop()
function.
See plugins/edsm.py and plugins/inara.py for example of the usage.
Fixed logging from EDMC.exe so that the -debug log goes into EDMC-debug.log
-not EDMarketConnector-debug.log
.
Any use of plug.show_error()
won't actually change the UI status line
+during shutdown, but the text you tried to show will be logged instead.
Fix EDMC.exe -j
handling of file encodings. NB: This command-line
-argument isn't listed on EDMC.exe -h
as it's intended for developer use
-only.
Cargo tracking will now correctly count all instances of the same type of +cargo for different missions. Previously it only counted the cargo for +the last mission requiring that cargo type, as found in Cargo.json.
Fix the name of 'Void Opal(s)' so that output of market data to files is -correct.
+The loaded contents of Cargo.json can now be found in monitor.state['CargoJSON']
.
+monitor.state
is what is passed to plugins as state
in the
+journal_entry()
call.
Fix URL in PLUGINS.md to refer to main
, not master
branch.
Our logging code should now cope with logging from a property.
We're able to pull py2exe
from PyPi now, so docs/Releasing.md has been
-update to reflect this.
Logging from any name-mangled method should now work properly.
+Miscellaneous updates to PLUGINS.md - mostly to clarify some things.
The only change from 4.1.3 is to insert some Windows version checks before -even attempting to set a UTF-8 encoding. We'll now only attempt this if the -user is not on Windows, or is on at least Windows 10 1903.
-For unknown reasons no exception was being thrown under some circumstances (in -this case running under an earlier Windows 10, but with EDMarketConnector.exe -set to run in Windows 7 compatibility mode for some unknown reason).
- -Revert to not setting gdiScaling
in the application manifest. This should
-fix #734
-and #739.
A side effect will be that the radio buttons in Preferences > Appearance -for the Theme selection will once more be improperly sized under any UI -scaling. This is a Tcl/Tk bug which they have fixed in their code, but not -yet made a new release containing that fix. We'll have it fixed when Tcl/Tk -release a fixed version and Python releases a fixed version, that we use, -that includes the fixed libraries.
-Wraps some ctypes code in a try/except in order to fix -#737. This should -benefit anyone running EDMC under any Wine version that doesn't set the -registry key we check for.
-Note, however, that we recommend running EDMarketConnector natively from -source if using Linux.
-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.
-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:
-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.
-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.
-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.
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.
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.
EDMC.exe will now log useful startup state information if run with the
---loglevel DEBUG
arguments.
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.
-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\
.
EDMarketConnector-debug.log
for the
-main program and EDMC-debug.log
for the command-line program.print(...)
will not appear in these new files.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.
- -In general this cleans up the code for all three System and Station Providers; -EDDB, EDSM, Inara.
- -Built using Python 3.7.8. Prior 4.0.x releases used 3.7.7.
-Don't crash if no non-default Journal Directory has been set.
-Only send to Inara API at most once every 30 seconds. This should avoid -the "Inara 400 Too much requests, slow down, cowboy. ;) ..." message and -being locked out from the API for an hour as a result. Any events that -require data to be sent during the 30s cooldown will be queued and sent when -that timer expires.
-This was caused by previous changes in an attempt to send cargo events -to Inara more often. This fix retains that enhancement.
-Note that if you log out and stop EDMC within 30 seconds you might have -some events not sent. If we tried to force a send then it might hit the -limit when you want to log back in and continue playing. As it is you can -re-run EDMC and log back into the game to ensure Inara is synchronised -properly.
-NB: Anyone who installed a 4.0.3-rcX release candidate version should first
-uninstall it before installing this.
-
Your settings are safe, they're in either the Registry on Windows, or in a
-file outside the install location on other OSes.
-
Your third-party plugins should also be safe, because you placed them in
-e.g. %LOCALAPPDATA%\EDMarketConnector\plugins
, not in the installation
-plugins folder, didn't you ?
This release contains fixes for a handful of bugs in 4.0.2.0, as well as a -switch to full Semantic Version -strings.
-Switch to Semantic Version strings.
-EDMC.exe -v
might now show
-some exception/error output if it fails to download and parse the appcast
-file. The string it shows, new version available or not, should be the
-same format as previously.Fix for bug #616 - EDMC Not Showing "Station" after Update -This was caused by changes to the EDDB plugin inadvertently no longer -maintaining some state that it turned out the Inara plugin was depending -on.
-×
(multiply) character. As with unpopulated
-systems clicking this will take you either to the system page, or to a
-list of stations in the system (depending on provider used).A fix for ships without a player-set name using a single
(space
-character) as their name in the UI, instead of the ship model name.
A fix for some file paths on Linux not understanding ~
as "my home
-directory". this should help anyone setting up on linux.
A new option to use an alternate method of opening a URL for shipyard links. -It's called 'Use alternate URL method' and is located in the 'File' > -'Settings' dialogue on the 'Configuration' tab, next to the dropdown used to -choose shipyard provider. If your setup results in coriolis.io or edsy.org -saying they can't load your build then try toggling this on.
-This method writes a small .html file,
-%LOCALAPPDATA%\EDMarketConnector\shipyard.html
-(or other-OS equivalent location), and directs your browser to open that.
-The file contains a meta refresh redirect to the URL for your build on
-your chosen shipyard provider. The file is not deleted after use, so
-you can also use this as "let's re-open that last build" facility even
-without
-EDMC running.
Please let us know if this doesn't work for you! -Anti-Virus or Software Firewalls might object to the "open .html file, and -then it redirects" workaround.
- -Translations updated:
-Thank you translators! Please do contribute on -the OneSkyApp project -if you are able to.
-Only a minor fix to EDMC.exe
-EDMC.exe -v
.This fixes a bug with the EDDB 'System Provider' URLs.
-Developers please note the new Contributing.md -, particularly Git branch structure and tag conventions -.
-This release is based on Python 3.7, not 2.7, so a user might find some of -their plugins stop working. If you have any plugins that do not have the -proper support you'll see a popup about this when you -start the program, at most once every 24 hours. As directed on that -popup you can check the status of -your plugins on 'File' > 'Settings' > 'Plugins' in the new 'Plugins Without -Python 3.x Support:' section.
-If the popup gets annoying then follow the directions to -disable a plugin.
-For any plugins without Python 3.x support you should first ensure you're -using the latest version of that plugin. If that hasn't been updated then -you might want to contact the plugin developer to see if they'll update the -plugin. We've checked many plugins and put them in the appropriate -section of this list.
-Plugin authors should also read the latest Developer Plugin -Documentation -, particularly the section -Available imports -. Let us know if we've missed anything.
-New 'Help' > 'About E:D Market Connector' menu item to show the currently -running version. Includes a link to the release notes.
-Translations updated:
-New languages: Serbian (Latin, Bosnia and Herzegovina), -Slovenian (Slovenia) and Swedish.
-New phrases were added and the only 100% translated languages are now: -Czech, French, German, Japanese, Polish, Portugese (Brazil), -Portugese (Portugal), Russian, Serbian (Latin), -Serbian (Latin, Bosnia and Herzegovina), Spanish, Swedish (Sweden) -Ukrainian,
-Thank you translators! Please do contribute on -the OneSkyApp project -if you are able to.
-EDDB plugin now uses a system's SystemAddress to construct the URL to view -the system on eddb.io. This removes the need for the systems.p file. -That file will be removed in a future version, plugin authors should not -be relying on its presence.
-EDDB plugin now uses a station's MarketID to construct a URL to view the -station on eddb.io. This removes the need for stations.p. That file will -be removed in a future version, plugin authors should not be relying on its -presence.
-NB: It's now using the system's "Population" data from Journal messages to
-determine if the system has stations or not. This allows for the x
as
-station name to be clickable to open the eddb.io page for system when you're
-not docked. It's known that some systems with stations have a Population of
-"0" and thus won't allow this functionality. This is Frontier's issue, not
-EDMC's. If you logged out in a populated system, run EDMC afresh, and use
-the 'Update' button you won't see the x
until you login fully to the game.
Tweak to Inara plugin so it will send updates via the Inara API more -frequently. Will now send an update, no more often than about once a -minute, if your cargo changes at all. This still won't update if you dock -and quickly buy or sell some cargo, but it's better than it was before. -You can nudge it by waiting a minute then re-opening the Commodities screen, -or indeed performing any other action the logs a new Journal event.
-The old 'anonymous' and custom 'uploaderID' options were taken out of -the UI back in December 2018, but the settings lingered in the Windows -Registry. Thus some users would still have been sending an anonymised or -custom 'uploaderID' in EDDN messages with no easy way to de-activate this.
-The EDDN Relay has been forcefully anonymising uploaderID since March -2018 anyway, so this is redundant. Thus the code that performs this -anonymisation has now been removed.
-There used to be an option to output commodities data in 'BPC' format, but
-it was removed from the UI back in Dec 2016. A few small pieces of code
-lingered and they have now been removed. Any plugin that was passing
-COMMODITY_BPC
to commodity.export()
will now break.
Fixed a bug where certain combinations of 'Output' and 'EDDN' options would -lead to all options on both tabs reverting to their defaults.
-Fixed a bug where if you copied a Journal file to the live location, -resulting in a "Journal.YYMMDDHHMMss.XX - Copy.log" file, the application -would pick it up as 'new' and potentially re-send duplicate data to all of -EDDN, EDSM and Inara.
-Now the only files the application will take note of must:
-Journal.
or JournalBeta.
..
-.
-log
.Fixed the location of Registry keys for the update checker, WinSparkle:
-EDCD
Registry key in
-Computer\HKEY_CURRENT_USER\Software\
.EDMarketConnector
instead of EDMarketConnector.py
inside
-there.Fixed to throw an exception, rather than a Segmentation Fault, if -run on Linux without DISPLAY properly set.
-Fixed EDMC.exe (command line tool) to correctly report the version with
--v
.
This should be the final release of EDMC based on Python 2.7. The next release after this, assuming this one doesn't introduce new bugs, will be based on Python 3.7. Any plugins that users have installed will need to have been updated to work under Python 3.7 by the time that next version of EDMC is released. During EDMC startup, at most once per day, you might see a popup with the text: - -
One or more of your enabled plugins do not yet have support for Python 3.x. Please see the list on the 'Plugins' tab of 'File' > 'Settings'. You should check if there is an updated version available, else alert the developer that they will need to update the code when EDMC moves to Python 3.x- -If so, do as it directs and check "File" > "Settings" > "Plugins" tab and see what plugins are listed in the section with the text "Plugins Without Python 3.x Support". - -
-If any of your plugins are listed in that section then they will need updating, by you or the original developer, to work with Python 3.7. See Migrating To Python 3.7 for more information. -
-Changes in this version: -
There was no real 3.45, it was 'burned' testing that updates from 3.44 would work with the new update_feed URL.
- -CHANGE OF MAINTAINER
-Due to a lack of time to give the project the attention it needs Marginal has handed over ownership of the EDMarketConnector GitHub repository to the EDCD (Elite Dangerous Community Developers) organisation.
-Initially Athanasius will now be responsible for maintaining the code, including addressing any Pull Requests and Issues, and making releases. Unfortunately he has no access to hardware running MacOS so can't easily generate builds for that platform or test them. So for the time being releases will be for Windows 10 only. MacOS users are advised to look into running from source (see the github README).
-Going forwards the intention is to move to the python 3.7 code as soon as possible. To facilitate this there will be one more python 2.7 release in addition to this one, with the main aim of that being to add code to alert the user about any plugins they use that have apparently not been updated to run under python 3.7.
-See the project GitHub repository's README.md for further information.
-The first time that you run the app while playing the game you are redirected to Frontier's authentication website and prompted for your username and password.
-The first time that you run the app while playing the game you are redirected to Frontier's authentication website and prompted for your username and password.
-