<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:sparkle="http://www.andymatuschak.org/xml-namespaces/sparkle" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title>E:D Market Connector</title>
		<link>https://raw.githubusercontent.com/EDCD/EDMarketConnector/releases/edmarketconnector.xml</link>
		<description>Most recent changes with links to updates.</description>

		<!-- Important: Mac must be listed before Windows since Sparkle < 1.18.1 on OSX doesn't check sparkle:os -->

		<item>
			<title>Release 3.44</title>
			<description>
				<![CDATA[
<style>h2 { font-size: 105%; }</style>
<h2>Release 3.44</h2>
<p><b>CHANGE OF MAINTAINER</b></p>
<p>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.</p>
<p>Initially Athanasius will now be responsible for maintaining the code, including addressing any Pull Requests and Issues, and making releases.  <b><u>Unfortunately he has no access to hardware running MacOS so can't easily generate builds for that platform</u> or test them.  So for the time being releases will be for Windows 10 only.</b>  MacOS users are advised to look into running from source (see the github README).</p>
<p>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.</p>
<p>See the project GitHub repository's <a href="https://github.com/EDCD/EDMarketConnector/blob/main/README.md">README.md</a> for further information.</p>
<ul>
 <li>Version increased to 3.4.4.0 / 3.44.</li>
 <li>URL the application checks for updates changed to point to github,</li>
</ul>
				]]>
			</description>
			<enclosure
				url="https://github.com/EDCD/EDMarketConnector/releases/download/rel-344/EDMarketConnector_mac_344.zip"
				sparkle:os="macos"
				sparkle:version="3.4.4.0"
				length="6058091"
				type="application/octet-stream"
			/>
		</item>

		<!-- Windows -->

		<item>
			<title>Release 4.2.3</title>
			<description>
				<![CDATA[
<style>body { font-family:"Segoe UI","Tahoma"; font-size: 75%; } h2 { font-family:"Segoe UI","Tahoma"; font-size: 105%; }</style>

<h2>Release 4.2.3</h2>
<p>This release mostly addresses an issue when Frontier Authorisation gets stuck
on 'Logging in...' despite completing the authorisation on the Frontier
website.</p>
<ul>
<li>
<p>Allow <code>edmc...</code> argument to EDMarketConnector.exe.  This should only be
necessary when something has prevented your web browser from invoking the
<code>edmc</code> protocol via DDE.</p>
<p>If you were encountering the 'Logging in...' issue and still do with this
release then please try running the application via the new
<code>EDMarketConnector - localserver-auth.bat</code> file in the installation
directory.</p>
<p>This simply runs EDMarketConnector.exe with the
<code>--force-localserver-for-auth</code> 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.</p>
</li>
<li>
<p>Add Korean translation to both the application and the installer.</p>
</li>
</ul>


<h2>Release 4.2.2</h2>
<p>This release contains a minor bug-fix, actually properly checking a station's
ships list before operating on it.</p>
<ul>
<li>Check that <code>ships['shipuard_list']</code> is a <code>dict</code> before trying to use
<code>.values()</code> on it.  This fixes the issue with seeing <code>list object has no attribute values</code> in the application status line.</li>
</ul>

<h2>Release 4.2.1</h2>
<p>This is a bug-fix release.</p>
<ul>
<li>
<p>Updated translations.  Thanks once again to all those contributing as per
<a href="https://github.com/EDCD/EDMarketConnector/wiki/Translations">Translations</a>.</p>
</li>
<li>
<p>PLUGINS.md: Clarify when <code>CargoJSON</code> is populated.</p>
</li>
<li>
<p>macOS: <code>pip install -r requirements.txt</code> will now include <code>pyobjc</code> so that
running this application works at all.  Check the updated <a href="https://github.com/EDCD/EDMarketConnector/wiki/Running-from-source">Running from
source</a>
for some advice if attempting to run on macOS.</p>
</li>
<li>
<p>JournalLock: Handle when the Journal directory isn't set at all, rather than
erroring.  Fixes <a href="https://github.com/EDCD/EDMarketConnector/issues/910">#910 - Not launching (Linux)</a>.</p>
</li>
<li>
<p>Extra logging added to track down cause of <a href="https://github.com/EDCD/EDMarketConnector/issues/909">#909 - Authentication not possible (PC)</a>
. The debug log file might now indicate what's wrong, or we might need
you to run</p>
<pre><code>"c:\Program Files (x86)\EDMarketConnector/EDMarketConnector.exe" --trace
</code></pre>
<p>in order to increase the log level and gather some extra information.
Caution is advised if sharing a <code>--trace</code> log file as it will now contain
some of the actual auth data returned from Frontier.</p>
</li>
<li>
<p>Ensure that 'Save Raw Data' will work.  Fixes <a href="https://github.com/EDCD/EDMarketConnector/issues/908">#908 - Raw export of CAPI data broken</a>.</p>
</li>
<li>
<p>Prevent EDDN plugin from erroring when we determine if the commander has
Horizons.  Fixes <a href="https://github.com/EDCD/EDMarketConnector/issues/907">#907 - Modules is a list not a dict on damaged stations</a></p>
</li>
</ul>


<h2>Release 4.2.0</h2>
<p><em>This release increases the Minor version due to the major change in how
multiple-instance checking is done.</em></p>
<ul>
<li>
<p>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.</p>
</li>
<li>
<p>New status message "CAPI: No commander data returned" if a <code>/profile</code>
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 <code>'commander'</code> message shown.</p>
</li>
<li>
<p>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
<code>edmc-journal-lock.txt</code> and upon successful locking it will contain text
like:</p>
<pre><code>Path: &lt;configured path to your Journals&gt;
PID: &lt;process ID of the application&gt;
</code></pre>
<p>The lock will be released and applied to the new directory if you change it
via Settings &gt; Configuration.  If the new location is already locked you'll
get a 'Retry/Ignore?' pop-up.</p>
<p>For most users things will operate no differently, although note that the
multiple instance check does now apply to platforms other than Windows.</p>
<p>For anyone wanting to run multiple instances of the program this is now
possible via:</p>
<p><code>runas /user:&lt;USER&gt; "\"c:\Program Files (x86)\EDMarketConnector\EDMarketConnector.exe\" --force-localserver-for-auth"</code></p>
<p>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
<em>and</em> 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).</p>
<p>I've verified it renders correctly <a href="https://github.com/EDCD/EDMarketConnector/blob/Release/4.2.0/ChangeLog.md">on GitHub</a>.</p>
<p>The old check was based solely on there being a window present with the title
we expect.  This prevented using <code>runas /user:SOMEUSER ...</code> 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.</p>
<p>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.</p>
<p>Note that any single instance of EDMarketConnector.exe will still only monitor
and act upon the <em>latest</em> 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 <a href="https://github.com/EDCD/EDMarketConnector/wiki/Troubleshooting#i-run-two-instances-of-ed-simultaneously-but-i-cant-run-two-instances-of-edmc%3E">wiki:Troubleshooting#i-run-two-instances-of-ed-simultaneously-but-i-cant-run-two-instances-of-edmc</a>
which will be updated when this change is in a full release.</p>
</li>
<li>
<p>Adds the command-line argument <code>--force-localserver-for-auth</code>. This forces
using a local webserver for the Frontier Auth callback.  This should be used
when running multiple instances of the application <strong>for all instances</strong>
else there's no guarantee of the <code>edmc://</code> protocol callback reaching the
correct process and Frontier Auth will fail.</p>
</li>
<li>
<p>Adds the command-line argument <code>--suppress-dupe-process-popup</code> to exit
without showing the warning popup in the case that EDMarketConnector found
another process already running.</p>
<p>This can be useful if wanting to blindly run both EDMC and the game from a
batch file or similar.</p>
</li>
</ul>



<h2>Release 4.1.6</h2>
<p>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 <a href="http://www.edsm.net" rel="nofollow">www.edsm.net</a> around 2021-01-11.  Before these fixes EDSM's
API not being available would cause an EDMC hang on shutdown.</p>
<ul>
<li>
<p>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.</p>
<p>We also re-ordered the shutdown sequence, which might help avoid the shutdown
hang.</p>
<p>If you encounter a shutdown hang then please add a comment and log files to
<a href="https://github.com/EDCD/EDMarketConnector/issues/678">Application can leave a zombie process on shutdown #678</a>
to help us track down the cause and fix it.</p>
</li>
<li>
<p>We now avoid making Tk event_generate() calls whilst the appliction is
shutting down.</p>
</li>
<li>
<p>Plugins should actively avoid making any sort of Tk event_generate() call
during application shutdown.</p>
<p>This means using <code>if not config.shutting_down:</code> to gate any code in worker
threads that might attempt this.  Also, be sure you're not attempting such
in your <code>plugin_stop()</code> function.</p>
<p>See plugins/edsm.py and plugins/inara.py for example of the usage.</p>
</li>
<li>
<p>Any use of <code>plug.show_error()</code> won't actually change the UI status line
during shutdown, but the text you tried to show will be logged instead.</p>
</li>
<li>
<p>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.</p>
</li>
<li>
<p>The loaded contents of Cargo.json can now be found in <code>monitor.state['CargoJSON']</code>.
<code>monitor.state</code> is what is passed to plugins as <code>state</code> in the
<code>journal_entry()</code> call.</p>
</li>
<li>
<p>Our logging code should now cope with logging from a property.</p>
</li>
<li>
<p>Logging from any name-mangled method should now work properly.</p>
</li>
<li>
<p>Miscellaneous updates to PLUGINS.md - mostly to clarify some things.</p>
</li>
</ul>

				]]>
			</description>
			<enclosure
				url="https://github.com/EDCD/EDMarketConnector/releases/download/Release/4.2.3/EDMarketConnector_win_4.2.3.msi"
				sparkle:os="windows"
				sparkle:installerArguments="/passive LAUNCH=yes"
				sparkle:version="4.2.3"
				length="11382784"
				type="application/octet-stream"
			/>
		</item>

	</channel>
</rss>
