From 8c2775f6d8ea2966aa829e08d8bbe65cda712c5b Mon Sep 17 00:00:00 2001 From: Jonathan Harris Date: Mon, 30 Sep 2019 17:35:22 +0100 Subject: [PATCH 001/147] Appear on task bar in dark mode on Linux and so enable minimize button. Maybe addresses #440 --- EDMarketConnector.py | 7 ++- theme.py | 123 +++++++++++++++++++++---------------------- 2 files changed, 63 insertions(+), 67 deletions(-) diff --git a/EDMarketConnector.py b/EDMarketConnector.py index 75f31d53..664103ae 100755 --- a/EDMarketConnector.py +++ b/EDMarketConnector.py @@ -217,10 +217,9 @@ class AppWindow: theme_titlebar.bind('', self.drag_start) theme_titlebar.bind('', self.drag_continue) theme_titlebar.bind('', self.drag_end) - if platform == 'win32': # Can't work out how to deiconify on Linux - theme_minimize = tk.Label(self.theme_menubar, image=self.theme_minimize) - theme_minimize.grid(row=0, column=3, padx=2) - theme.button_bind(theme_minimize, self.oniconify, image=self.theme_minimize) + theme_minimize = tk.Label(self.theme_menubar, image=self.theme_minimize) + theme_minimize.grid(row=0, column=3, padx=2) + theme.button_bind(theme_minimize, self.oniconify, image=self.theme_minimize) theme_close = tk.Label(self.theme_menubar, image=self.theme_close) theme_close.grid(row=0, column=4, padx=2) theme.button_bind(theme_close, self.onexit, image=self.theme_close) diff --git a/theme.py b/theme.py index 8c55e3c5..228d4258 100644 --- a/theme.py +++ b/theme.py @@ -15,6 +15,8 @@ from ttkHyperlinkLabel import HyperlinkLabel from config import appname, applongname, config +if __debug__: + from traceback import print_exc if platform == 'win32': import ctypes @@ -33,65 +35,66 @@ elif platform == 'linux2': Atom = c_ulong Display = c_void_p # Opaque - # Sending ClientMessage to WM using XSendEvent() - SubstructureNotifyMask = 1<<19 - SubstructureRedirectMask = 1<<20 - ClientMessage = 33 + PropModeReplace = 0 + PropModePrepend = 1 + PropModeAppend = 2 - _NET_WM_STATE_REMOVE = 0 - _NET_WM_STATE_ADD = 1 - _NET_WM_STATE_TOGGLE = 2 + # From xprops.h + MWM_HINTS_FUNCTIONS = 1 << 0 + MWM_HINTS_DECORATIONS = 1 << 1 + MWM_HINTS_INPUT_MODE = 1 << 2 + MWM_HINTS_STATUS = 1 << 3 + MWM_FUNC_ALL = 1 << 0 + MWM_FUNC_RESIZE = 1 << 1 + MWM_FUNC_MOVE = 1 << 2 + MWM_FUNC_MINIMIZE = 1 << 3 + MWM_FUNC_MAXIMIZE = 1 << 4 + MWM_FUNC_CLOSE = 1 << 5 + MWM_DECOR_ALL = 1 << 0 + MWM_DECOR_BORDER = 1 << 1 + MWM_DECOR_RESIZEH = 1 << 2 + MWM_DECOR_TITLE = 1 << 3 + MWM_DECOR_MENU = 1 << 4 + MWM_DECOR_MINIMIZE = 1 << 5 + MWM_DECOR_MAXIMIZE = 1 << 6 - class XClientMessageEvent_data(Union): + class MotifWmHints(Structure): _fields_ = [ - ('b', c_char * 20), - ('s', c_short * 10), - ('l', c_long * 5), + ('flags', c_ulong), + ('functions', c_ulong), + ('decorations', c_ulong), + ('input_mode', c_long), + ('status', c_ulong), ] - class XClientMessageEvent(Structure): - _fields_ = [ - ('type', c_int), - ('serial', c_ulong), - ('send_event', c_int), - ('display', POINTER(Display)), - ('window', Window), - ('message_type', Atom), - ('format', c_int), - ('data', XClientMessageEvent_data), - ] - - class XEvent(Union): - _fields_ = [ - ('xclient', XClientMessageEvent), - ] - - xlib = cdll.LoadLibrary('libX11.so.6') - XFlush = xlib.XFlush - XFlush.argtypes = [POINTER(Display)] - XFlush.restype = c_int - XInternAtom = xlib.XInternAtom - XInternAtom.restype = Atom - XInternAtom.argtypes = [POINTER(Display), c_char_p, c_int] - XOpenDisplay = xlib.XOpenDisplay - XOpenDisplay.argtypes = [c_char_p] - XOpenDisplay.restype = POINTER(Display) - XQueryTree = xlib.XQueryTree - XQueryTree.argtypes = [POINTER(Display), Window, POINTER(Window), POINTER(Window), POINTER(Window), POINTER(c_uint)] - XQueryTree.restype = c_int - XSendEvent = xlib.XSendEvent - XSendEvent.argtypes = [POINTER(Display), Window, c_int, c_long, POINTER(XEvent)] - XSendEvent.restype = c_int - try: + xlib = cdll.LoadLibrary('libX11.so.6') + XInternAtom = xlib.XInternAtom + XInternAtom.argtypes = [POINTER(Display), c_char_p, c_int] + XInternAtom.restype = Atom + XChangeProperty = xlib.XChangeProperty + XChangeProperty.argtypes = [POINTER(Display), Window, Atom, Atom, c_int, c_int, POINTER(MotifWmHints), c_int] + XChangeProperty.restype = c_int + XFlush = xlib.XFlush + XFlush.argtypes = [POINTER(Display)] + XFlush.restype = c_int + XOpenDisplay = xlib.XOpenDisplay + XOpenDisplay.argtypes = [c_char_p] + XOpenDisplay.restype = POINTER(Display) + XQueryTree = xlib.XQueryTree + XQueryTree.argtypes = [POINTER(Display), Window, POINTER(Window), POINTER(Window), POINTER(Window), POINTER(c_uint)] + XQueryTree.restype = c_int dpy = xlib.XOpenDisplay(None) - XA_ATOM = Atom(4) - net_wm_state = XInternAtom(dpy, '_NET_WM_STATE', False) - net_wm_state_above = XInternAtom(dpy, '_NET_WM_STATE_ABOVE', False) - net_wm_state_sticky = XInternAtom(dpy, '_NET_WM_STATE_STICKY', False) - net_wm_state_skip_pager = XInternAtom(dpy, '_NET_WM_STATE_SKIP_PAGER', False) - net_wm_state_skip_taskbar = XInternAtom(dpy, '_NET_WM_STATE_SKIP_TASKBAR', False) + motif_wm_hints_property = XInternAtom(dpy, b'_MOTIF_WM_HINTS', False) + motif_wm_hints_normal = MotifWmHints(MWM_HINTS_FUNCTIONS | MWM_HINTS_DECORATIONS, + MWM_FUNC_RESIZE | MWM_FUNC_MOVE | MWM_FUNC_MINIMIZE | MWM_FUNC_CLOSE, + MWM_DECOR_BORDER | MWM_DECOR_RESIZEH | MWM_DECOR_TITLE | MWM_DECOR_MENU | MWM_DECOR_MINIMIZE, + 0, 0) + motif_wm_hints_dark = MotifWmHints(MWM_HINTS_FUNCTIONS | MWM_HINTS_DECORATIONS, + MWM_FUNC_RESIZE | MWM_FUNC_MOVE | MWM_FUNC_MINIMIZE | MWM_FUNC_CLOSE, + 0, 0, 0) except: + if __debug__: print_exc() dpy = None @@ -356,25 +359,19 @@ class _Theme: else: root.withdraw() - # https://www.tcl-lang.org/man/tcl/TkCmd/wm.htm#M19 - # https://specifications.freedesktop.org/wm-spec/wm-spec-latest.html#STACKINGORDER - root.attributes('-type', theme and 'splash' or 'normal') root.update_idletasks() # Size gets recalculated here - root.deiconify() - root.wait_visibility() # need main window to be displayed before returning - if dpy and theme: - # Try to display in the taskbar + if dpy: xroot = Window() parent = Window() children = Window() nchildren = c_uint() XQueryTree(dpy, root.winfo_id(), byref(xroot), byref(parent), byref(children), byref(nchildren)) - # https://specifications.freedesktop.org/wm-spec/wm-spec-latest.html#idm140200472615568 - xevent = XEvent(xclient = XClientMessageEvent(ClientMessage, 0, 0, None, parent, net_wm_state, 32, XClientMessageEvent_data(l = (_NET_WM_STATE_REMOVE, net_wm_state_skip_pager, net_wm_state_skip_taskbar, 1, 0)))) - XSendEvent(dpy, xroot, False, SubstructureRedirectMask | SubstructureNotifyMask, byref(xevent)) - xevent = XEvent(xclient = XClientMessageEvent(ClientMessage, 0, 0, None, parent, net_wm_state, 32, XClientMessageEvent_data(l = (_NET_WM_STATE_REMOVE, net_wm_state_sticky, 0, 1, 0)))) - XSendEvent(dpy, xroot, False, SubstructureRedirectMask | SubstructureNotifyMask, byref(xevent)) + XChangeProperty(dpy, parent, motif_wm_hints_property, motif_wm_hints_property, 32, PropModeReplace, theme and motif_wm_hints_dark or motif_wm_hints_normal, 5) XFlush(dpy) + else: + root.overrideredirect(theme and 1 or 0) + root.deiconify() + root.wait_visibility() # need main window to be displayed before returning if not self.minwidth: self.minwidth = root.winfo_width() # Minimum width = width on first creation From e9a23c67dc64bc6a5d7f468fd6e38d44e282ea68 Mon Sep 17 00:00:00 2001 From: Jonathan Harris Date: Wed, 2 Oct 2019 18:50:06 +0100 Subject: [PATCH 002/147] Send correct opponentName for Interdicted and Interdiction events Fixes #459 --- plugins/inara.py | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/plugins/inara.py b/plugins/inara.py index 0303e288..bed8692b 100644 --- a/plugins/inara.py +++ b/plugins/inara.py @@ -613,20 +613,25 @@ def journal_entry(cmdr, is_beta, system, station, entry, state): add_event('addCommanderCombatDeath', entry['timestamp'], data) elif entry['event'] == 'Interdicted': - add_event('addCommanderCombatInterdicted', entry['timestamp'], - OrderedDict([('starsystemName', system), - ('opponentName', entry['Interdictor']), - ('isPlayer', entry['IsPlayer']), - ('isSubmit', entry['Submitted']), - ])) + data = OrderedDict([('starsystemName', system), + ('isPlayer', entry['IsPlayer']), + ('isSubmit', entry['Submitted']), + ]) + if 'Interdictor' in entry: + data['opponentName'] = entry['Interdictor'] + elif 'Faction' in entry: + data['opponentName'] = entry['Faction'] + elif 'Power' in entry: + data['opponentName'] = entry['Power'] + add_event('addCommanderCombatInterdicted', entry['timestamp'], data) elif entry['event'] == 'Interdiction': data = OrderedDict([('starsystemName', system), ('isPlayer', entry['IsPlayer']), ('isSuccess', entry['Success']), ]) - if 'Interdictor' in entry: - data['opponentName'] = entry['Interdictor'] + if 'Interdicted' in entry: + data['opponentName'] = entry['Interdicted'] elif 'Faction' in entry: data['opponentName'] = entry['Faction'] elif 'Power' in entry: From 034c0b5bd2e2adbb65d902e6f33216f311fe1b78 Mon Sep 17 00:00:00 2001 From: Jonathan Harris Date: Thu, 3 Oct 2019 19:22:58 +0100 Subject: [PATCH 003/147] Send SAASignalsFound events to EDDN --- plugins/eddn.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/plugins/eddn.py b/plugins/eddn.py index 6359121b..17170ae1 100644 --- a/plugins/eddn.py +++ b/plugins/eddn.py @@ -413,10 +413,7 @@ def journal_entry(cmdr, is_beta, system, station, entry, state): # Send interesting events to EDDN, but not when on a crew if (config.getint('output') & config.OUT_SYS_EDDN and not state['Captain'] and - (entry['event'] == 'Location' or - entry['event'] == 'FSDJump' or - entry['event'] == 'Docked' or - entry['event'] == 'Scan') and + (entry['event'] in ('Location', 'FSDJump', 'Docked', 'Scan', 'SAASignalsFound')) and ('StarPos' in entry or this.coordinates)): # strip out properties disallowed by the schema for thing in ['ActiveFine', 'CockpitBreach', 'BoostUsed', 'FuelLevel', 'FuelUsed', 'JumpDist', 'Latitude', 'Longitude', 'Wanted']: From ba9954dd7b01cf082e24b25153cc00c25a3f148e Mon Sep 17 00:00:00 2001 From: Jonathan Harris Date: Mon, 7 Oct 2019 14:11:14 +0100 Subject: [PATCH 004/147] Document multithreading in more detail --- PLUGINS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PLUGINS.md b/PLUGINS.md index dcf4cd1b..3e8159fc 100644 --- a/PLUGINS.md +++ b/PLUGINS.md @@ -132,7 +132,7 @@ def plugin_app(parent): Once you have created your plugin and EDMC has loaded it there are three other functions you can define to be notified by EDMC when something happens: `journal_entry()`, `dashboard_entry()` and `cmdr_data()`. -Your events all get called on the main tkinter loop so be sure not to block for very long or the EDMC will appear to freeze. If you have a long running operation then you should take a look at how to do background updates in tkinter - http://effbot.org/zone/tkinter-threads.htm +Your events all get called on the main Tkinter loop so be sure not to block for very long or the app will appear to freeze. If you have a long running operation such as sending or receiving data from an external server then you should do this in a separate worker Thread. You can send work items to the worker thread over a Queue. Tkinter is not thread-safe so you should not access any Tkinter resources (including widgets and variables) from worker threads - doing so may cause the app to crash intermittently. You can signal back to the main thread using Tkinter's `event_generate()` widget method, generating a user-defined event that you have previously registered with the [`bind_all()`](http://effbot.org/tkinterbook/tkinter-events-and-bindings.htm) widget method. See the [EDSM plugin](https://github.com/Marginal/EDMarketConnector/blob/master/plugins/edsm.py) for an example of these techniques. ### Journal Entry From 838ad16ac59e4ada15aed6f4598c2a7a1e937157 Mon Sep 17 00:00:00 2001 From: Jonathan Harris Date: Sun, 27 Oct 2019 15:35:13 +0000 Subject: [PATCH 005/147] Add Agronomic Treatment introduced for an community goal --- commodity.csv | 1 + 1 file changed, 1 insertion(+) diff --git a/commodity.csv b/commodity.csv index 6b55ae58..a78111a8 100644 --- a/commodity.csv +++ b/commodity.csv @@ -217,3 +217,4 @@ id,symbol,category,name 128924331,Alexandrite,Minerals,Alexandrite 128924332,Opal,Minerals,Void Opals 128924333,RockforthFertiliser,Chemicals,Rockforth Fertiliser +128924334,AgronomicTreatment,Chemicals,Agronomic Treatment From 416545d0abbac0b8a3c39ffc9d8f1288047c0dc5 Mon Sep 17 00:00:00 2001 From: Jonathan Harris Date: Mon, 4 Nov 2019 12:27:48 +0000 Subject: [PATCH 006/147] Update Polish translation --- L10n/pl.strings | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/L10n/pl.strings b/L10n/pl.strings index 4900e0e6..db75b1b1 100644 --- a/L10n/pl.strings +++ b/L10n/pl.strings @@ -143,7 +143,7 @@ "Error: Can't connect to EDSM" = "Błąd: Brak połączenia z EDSM"; /* [inara.py] */ -"Error: Can't connect to Inara" = "Błąd: Nie można połączyć się do serwisu Inara"; +"Error: Can't connect to Inara" = "Błąd: Nie można połączyć się z serwisem Inara"; /* [edsm.py] */ "Error: EDSM {MSG}" = "Błąd: EDSM {MSG}"; From 6230c65b184db4b15ec76e8ddd0e0cdc60c4d469 Mon Sep 17 00:00:00 2001 From: Jonathan Harris Date: Wed, 27 Nov 2019 01:33:58 +0000 Subject: [PATCH 007/147] Doc fixes --- PLUGINS.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/PLUGINS.md b/PLUGINS.md index c9276aa8..1ed51b00 100644 --- a/PLUGINS.md +++ b/PLUGINS.md @@ -19,14 +19,14 @@ Each plugin has it's own folder in the `plugins` directory: Plugins are python files. The plugin folder must have a file named `load.py` that must provide one module level function and optionally provide a few others. -EDMC will import the `load.py` file as a module and then call the `plugin_start()` function. +EDMC will import the `load.py` file as a module and then call the `plugin_start3()` function. ```python def plugin_start3(plugin_dir): """ Load this plugin into EDMC """ - print "I am loaded! My plugin folder is {}".format(plugin_dir.encode("utf-8")) + print("I am loaded! My plugin folder is {}".format(plugin_dir)) return "Test" ``` @@ -39,7 +39,7 @@ def plugin_stop(): """ EDMC is closing """ - print "Farewell cruel world!" + print("Farewell cruel world!") ``` If your plugin uses one or more threads to handle Events then stop and join() the threads before returning from this function. From f514ed7a64577e51a751d0c9368bbf0ddf186654 Mon Sep 17 00:00:00 2001 From: Jonathan Harris Date: Sun, 1 Dec 2019 18:41:14 +0000 Subject: [PATCH 008/147] Fix Detailed Surface Scanner rating --- outfitting.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/outfitting.py b/outfitting.py index ebd675a6..d324b70a 100644 --- a/outfitting.py +++ b/outfitting.py @@ -278,7 +278,7 @@ fighter_rating_map = { } misc_internal_map = { - ('detailedsurfacescanner', 'tiny') : ('Detailed Surface Scanner', 'C'), + ('detailedsurfacescanner', 'tiny') : ('Detailed Surface Scanner', 'I'), ('dockingcomputer', 'advanced') : ('Advanced Docking Computer', 'E'), ('dockingcomputer', 'standard') : ('Standard Docking Computer', 'E'), 'planetapproachsuite' : ('Planetary Approach Suite', 'I'), From 0bf415eced58e528dc1d3be07034912c99f51232 Mon Sep 17 00:00:00 2001 From: Jonathan Harris Date: Sun, 1 Dec 2019 18:46:06 +0000 Subject: [PATCH 009/147] Fixes another binary versus string issue in collate.py --- collate.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/collate.py b/collate.py index e808737f..b3053c08 100755 --- a/collate.py +++ b/collate.py @@ -52,7 +52,7 @@ def addcommodities(data): os.unlink(commodityfile+'.bak') os.rename(commodityfile, commodityfile+'.bak') - with open(commodityfile, 'wb') as csvfile: + with open(commodityfile, 'w') as csvfile: writer = csv.DictWriter(csvfile, ['id', 'symbol', 'category', 'name']) writer.writeheader() for key in sorted(commodities): From 1984e25e50191e6795904214db864147271a9a33 Mon Sep 17 00:00:00 2001 From: VAKazakov <47143965+VAKazakov@users.noreply.github.com> Date: Wed, 4 Mar 2020 22:43:47 +0300 Subject: [PATCH 010/147] Fixing reputation values error "Inara setCommanderReputationMinorFaction, The reputation value exceeds the valid range" --- plugins/inara.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/inara.py b/plugins/inara.py index bed8692b..2ae07e70 100644 --- a/plugins/inara.py +++ b/plugins/inara.py @@ -374,7 +374,7 @@ def journal_entry(cmdr, is_beta, system, station, entry, state): [ OrderedDict([ ('minorfactionName', f['Name']), - ('minorfactionReputation', f['MyReputation']), + ('minorfactionReputation', f['MyReputation']/100), ]) for f in entry['Factions'] ]) From 994624d83b69dc0ad9f877135ccc2a26e679e28e Mon Sep 17 00:00:00 2001 From: VAKazakov <47143965+VAKazakov@users.noreply.github.com> Date: Thu, 5 Mar 2020 11:52:34 +0300 Subject: [PATCH 011/147] changing division by int to float, as suggested --- plugins/inara.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/inara.py b/plugins/inara.py index 2ae07e70..1be99c52 100644 --- a/plugins/inara.py +++ b/plugins/inara.py @@ -374,7 +374,7 @@ def journal_entry(cmdr, is_beta, system, station, entry, state): [ OrderedDict([ ('minorfactionName', f['Name']), - ('minorfactionReputation', f['MyReputation']/100), + ('minorfactionReputation', f['MyReputation']/100.0), ]) for f in entry['Factions'] ]) From 0f154415ac9aff96431c47272684dfacd77860c9 Mon Sep 17 00:00:00 2001 From: Athanasius Date: Tue, 16 Jun 2020 22:22:59 +0100 Subject: [PATCH 012/147] README.md: Notice added about change of maintainer. --- README.md | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/README.md b/README.md index 065ba687..84953f49 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,14 @@ +**2020-06-16 21:00 UTC** + +**Due to a lack of time to continue with maintenance at this point Marginal (also known as Otis on the Discord) has kindly transferred ownership of this github repository to the EDCD Organisation.** + +**EDCD has some volunteers ready to take over maintenance, so over the next few days you can expect at least one fresh release to get things fully transferred (necessary to change the URL that EDMC uses to check for new versions). After that we'll work hard at getting all of the Pull Requests addressed before moving on to any other outstanding Issues.** + +**Initially Athanasius will be the principle maintainer and releaser before passing the reins over to "LCU No Fool Like One" who has kindly agreed to take over as primary maintainer.** + +**Any questions or further offers of help can be directed to the Discord #edmc channel as below.** + + [![Discord chat](https://img.shields.io/discord/164411426939600896.svg?style=social&label=Discord%20chat)](https://discord.gg/usQ5e6n) Elite: Dangerous Market Connector (EDMC) @@ -361,3 +372,16 @@ License Copyright © 2015-2018 Jonathan Harris. Licensed under the [GNU Public License (GPL)](http://www.gnu.org/licenses/gpl-2.0.html) version 2 or later. + +**2020-06-16 21:00 UTC** + +**Due to a lack of time to continue with maintenance at this point Marginal (also known as Otis on the Discord) has kindly transferred ownership of this github repository to the EDCD Organisation.** + +**EDCD has some volunteers ready to take over maintenance, so over the next few days you can expect at least one fresh release to get things fully transferred (necessary to change the URL that EDMC uses to check for new versions). After that we'll work hard at getting all of the Pull Requests addressed before moving on to any other outstanding Issues.** + +**Initially Athanasius will be the principle maintainer and releaser before passing the reins over to "LCU No Fool Like One" who has kindly agreed to take over as primary maintainer.** + +**Any questions or further offers of help can be directed to the Discord #edmc channel as below.** + + +[![Discord chat](https://img.shields.io/discord/164411426939600896.svg?style=social&label=Discord%20chat)](https://discord.gg/usQ5e6n) From d385a3c36265076962131ccc7a5eb50dc2c53482 Mon Sep 17 00:00:00 2001 From: Athanasius Date: Wed, 10 Jun 2020 15:04:03 +0100 Subject: [PATCH 013/147] Initial empty RELEASING.md --- docs/RELEASING.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/RELEASING.md diff --git a/docs/RELEASING.md b/docs/RELEASING.md new file mode 100644 index 00000000..e69de29b From ba0fbd3ef3a2c26b5f8fa3842f89e8335df18fea Mon Sep 17 00:00:00 2001 From: Athanasius Date: Wed, 10 Jun 2020 16:36:59 +0100 Subject: [PATCH 014/147] docs: RELEASING.md fuilly fleshed out. Unless I'm mistaken about the source of some necessary software/files, or someone can only find a later/different version of them, this should now serve as an easy guide to making EDMC releases. --- docs/RELEASING.md | 76 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) diff --git a/docs/RELEASING.md b/docs/RELEASING.md index e69de29b..7e02a027 100644 --- a/docs/RELEASING.md +++ b/docs/RELEASING.md @@ -0,0 +1,76 @@ +Introduction +=== + This document aims to enable anyone to quickly get up to speed on how to: + +1. Build a Windows .exe for the application +1. Package that .exe into an .msi file for distribution +1. Handle the files generated so the application automatically detects new available versions and asks the user to upgrade. + +Note that for Windows only a 32-bit application is supported at this time. This is principally due to the Windows Registry handling in config.py. + +Environment +--- + You will need several pieces of software installed, or the files from their .zip archives, in order to build the .exe and generate the .msi + +1. [Python](https://python.org): 32-bit version of Python 3.7 for Windows. [v3.7.4](https://www.python.org/downloads/release/python-374/) is the most recently tested version. +1. [py2exe](https://github.com/albertosottile/py2exe): You need a pre-release version, [0.9.4.0](https://bintray.com/alby128/py2exe/download_file?file_path=py2exe-0.9.4.0-cp37-none-win32.whl), see [this py2exe issue](https://github.com/albertosottile/py2exe/issues/23#issuecomment-541359225) +1. [WiX Toolset](https://wixtoolset.org/): 3.11.1 is the most recently tested version. +1. [WinSparkle](https://github.com/vslavik/winsparkle): `winsparkle.dll` and `winsparkle.pdb` from the release's .zip file. v0.6.0 is the most recently tested version. Copy the two files into your checkout of the EDMC git files. +1. [Windows SDK](https://developer.microsoft.com/en-US/windows/downloads/windows-10-sdk/). This is needed for the internationalisation support in EDMC. [Windows 10 SDK, version 1903 (10.0.18362.1)](https://go.microsoft.com/fwlink/?linkid=2083338) is the most recently tested version. + +If you are using different versions of any of these tools then please ensure that the paths where they're installed match the associated lines in `setup.py`. i.e. if you're using later WiX you might need to edit the WIXPATH line, and likewise the SDKPATH line if you're using a later Windows SDK kit. + +Necessary Edits +--- +There are some things that you should always change before running your own version of EDMC +1. The Frontier CAPI client ID. This is hardcoded in companion.py, but can be overridden by setting a CLIENT_ID environment variable. + +There are other things that you should probably change, but can get away with leaving at the upstream values, especially if you only you are going to use the resulting .exe and/or .msi files. **But** realise that the resulting program will still try to check for new versions at the main URL unless you change that. + +1. Copyright and 'Company' texts. These are in `setup.py`. Search for `'copyright'` and `'company_name'`. + +1. Location of release files. To change this edit `setup.py`. Look for the `appcast.write()` statement and change the `url="...` line. + +1. Application names, version and URL the file with latest release information. These are all in the `config.py` file. See the `from config import ...` lines in setup.py. + 1. appname: The short appname, e.g. 'EDMarketConnector' + 1. applongname: The long appname, e.g. 'E:D Market Connector' + 1. appcmdname: The CLI appname, e.g. 'EDMC' + 1. appversion: The current version, e.g. '3.5.0.0' + 1. update_feed: The URL where the application looks for current latest version information. This URL should be hosting a renamed (so the full URL doesn't change over application versions) version of the appcast_win_.xml file. The original upstream value is `https://marginal.org.uk/edmarketconnector.xml` + +Packaging & Installer Generation +--- +Assuming the correct python.exe is in your PATH then simply run: + + setup.py py2exe + +else you might need something like: + + "%LOCALAPPDATA%\Programs\Python\Python37-32\python.exe" setup.py py2exe + +Output will be something like (`...` denoting parts elided for brevity): + + running py2exe + ... + Building 'dist.win32\EDMC.exe'. + Building 'dist.win32\EDMarketConnector.exe'. + Building shared code archive 'dist.win32\library.zip'. + ... + Windows Installer XML Toolset Compiler version 3.11.1.2318 + Copyright (c) .NET Foundation and contributors. All rights reserved. + ... + Package language = 1033,1029,1031,1034,1035,1036,1038,1040,1041,1043,1045,1046,1049,1058,1062,2052,2070,2074,0, ProductLanguage = 1029, Database codepage = 0 + MsiTran V 5.0 + Copyright (c) Microsoft Corporation. All Rights Reserved + ... + DonePackage language = 1033,1029,1031,1034,1035,1036,1038,1040,1041,1043,1045,1046,1049,1058,1062,2052,2070,2074,0, ProductLanguage = 0, Database codepage = 0 + MsiTran V 5.0 + Copyright (c) Microsoft Corporation. All Rights Reserved + + Done + +You should now have one new/updated folder `dist.win32` and two new files (version number dependent): `EDMarketConnector_win_350.msi` and `appcast_win_350.xml`. If you want to just check the generated .exe files then they're in that `dist.win32` folder. + +Distribution +--- +Put the `EDMarketConnector_win_.msi` file in place where you're releasing the files. Put the `appcast_win_.xml` file where it will be served under the URL you specified in the `update_feed` you set in `config.py`. From 5d8e0e4c5ab7e890b48c331bfe9f7b495b2219fd Mon Sep 17 00:00:00 2001 From: Athanasius Date: Sun, 14 Jun 2020 17:52:20 +0100 Subject: [PATCH 015/147] docs: RELEASING.md update for checking later versions * WiX Toolset 3.11.2 * WinSparkle 0.7.0 NB: There's a need for a specific/older version of two python modules: certifi and keyring, else running EDMarketConnector.exe doesn't work. --- docs/RELEASING.md | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/docs/RELEASING.md b/docs/RELEASING.md index 7e02a027..9b78c9f2 100644 --- a/docs/RELEASING.md +++ b/docs/RELEASING.md @@ -12,11 +12,17 @@ Environment --- You will need several pieces of software installed, or the files from their .zip archives, in order to build the .exe and generate the .msi +1. [WiX Toolset](https://wixtoolset.org/): 3.11.2 is the most recently tested version. +1. [WinSparkle](https://github.com/vslavik/winsparkle): `winsparkle.dll` and `winsparkle.pdb` from the release's .zip file. v0.7.0 is the most recently tested version. Copy the two files, found at `\\Release`, into your checkout of the EDMC git files. +1. [Windows SDK](https://developer.microsoft.com/en-US/windows/downloads/windows-10-sdk/). This is needed for the internationalisation support in EDMC. [Windows 10 SDK, version 1903 (10.0.18362.1)](https://go.microsoft.com/fwlink/?linkid=2083338) is the most recently tested version. Technically you only need the following components: `MSI Tools`, `Windows SDK for Desktop C++ x86 Apps` (which will auto-select some others). NB: If you have need to uninstall this it's "Windows Software Development Kit - Windows 10.0.18362.1" in "Apps & Features", *not* "Windows SDK AddOn". 1. [Python](https://python.org): 32-bit version of Python 3.7 for Windows. [v3.7.4](https://www.python.org/downloads/release/python-374/) is the most recently tested version. + 1. You'll now need to 'pip install' several python modules + 1. `pip install certifi==2019.9.11` (because a later version doesn't work with py2exe, causing cacert.pem to not be found) + 1. `pip install requests` + 1. `pip install watchdog` 1. [py2exe](https://github.com/albertosottile/py2exe): You need a pre-release version, [0.9.4.0](https://bintray.com/alby128/py2exe/download_file?file_path=py2exe-0.9.4.0-cp37-none-win32.whl), see [this py2exe issue](https://github.com/albertosottile/py2exe/issues/23#issuecomment-541359225) -1. [WiX Toolset](https://wixtoolset.org/): 3.11.1 is the most recently tested version. -1. [WinSparkle](https://github.com/vslavik/winsparkle): `winsparkle.dll` and `winsparkle.pdb` from the release's .zip file. v0.6.0 is the most recently tested version. Copy the two files into your checkout of the EDMC git files. -1. [Windows SDK](https://developer.microsoft.com/en-US/windows/downloads/windows-10-sdk/). This is needed for the internationalisation support in EDMC. [Windows 10 SDK, version 1903 (10.0.18362.1)](https://go.microsoft.com/fwlink/?linkid=2083338) is the most recently tested version. + 1. `pip install py2exe-0.9.4.0-cp37-none-win32.whl` + 1. `pip install keyring==19.2.0` (because newer tries to get importlib_metadata in a way that doesn't work) If you are using different versions of any of these tools then please ensure that the paths where they're installed match the associated lines in `setup.py`. i.e. if you're using later WiX you might need to edit the WIXPATH line, and likewise the SDKPATH line if you're using a later Windows SDK kit. From 6d138dddd4beace4a4822fac111d88b40e0efa47 Mon Sep 17 00:00:00 2001 From: Athanasius Date: Sun, 14 Jun 2020 17:56:46 +0100 Subject: [PATCH 016/147] docs: RELEASING.md: It works with Python 3.7.7 --- docs/RELEASING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/RELEASING.md b/docs/RELEASING.md index 9b78c9f2..639510d5 100644 --- a/docs/RELEASING.md +++ b/docs/RELEASING.md @@ -15,7 +15,7 @@ Environment 1. [WiX Toolset](https://wixtoolset.org/): 3.11.2 is the most recently tested version. 1. [WinSparkle](https://github.com/vslavik/winsparkle): `winsparkle.dll` and `winsparkle.pdb` from the release's .zip file. v0.7.0 is the most recently tested version. Copy the two files, found at `\\Release`, into your checkout of the EDMC git files. 1. [Windows SDK](https://developer.microsoft.com/en-US/windows/downloads/windows-10-sdk/). This is needed for the internationalisation support in EDMC. [Windows 10 SDK, version 1903 (10.0.18362.1)](https://go.microsoft.com/fwlink/?linkid=2083338) is the most recently tested version. Technically you only need the following components: `MSI Tools`, `Windows SDK for Desktop C++ x86 Apps` (which will auto-select some others). NB: If you have need to uninstall this it's "Windows Software Development Kit - Windows 10.0.18362.1" in "Apps & Features", *not* "Windows SDK AddOn". -1. [Python](https://python.org): 32-bit version of Python 3.7 for Windows. [v3.7.4](https://www.python.org/downloads/release/python-374/) is the most recently tested version. +1. [Python](https://python.org): 32-bit version of Python 3.7 for Windows. [v3.7.7](https://www.python.org/downloads/release/python-377/) is the most recently tested version. You need the `Windows x86 executable installer` file, for the 32-bit version. 1. You'll now need to 'pip install' several python modules 1. `pip install certifi==2019.9.11` (because a later version doesn't work with py2exe, causing cacert.pem to not be found) 1. `pip install requests` From 38fc256cb0c0c05f23528a09e73cac90ba3d74bc Mon Sep 17 00:00:00 2001 From: Athanasius Date: Sun, 14 Jun 2020 18:02:54 +0100 Subject: [PATCH 017/147] docs: RELEASING.md: Document specific versions of site-packages modules --- docs/RELEASING.md | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/docs/RELEASING.md b/docs/RELEASING.md index 639510d5..ac4f87f6 100644 --- a/docs/RELEASING.md +++ b/docs/RELEASING.md @@ -20,6 +20,24 @@ Environment 1. `pip install certifi==2019.9.11` (because a later version doesn't work with py2exe, causing cacert.pem to not be found) 1. `pip install requests` 1. `pip install watchdog` + + As dependencies also get pulled in here's a list of what ended up in site-packages, and their versions: + + cachetools-4.1.0.dist-info + certifi-2019.9.11.dist-info + chardet-3.0.4.dist-info + entrypoints-0.3.dist-info + future-0.18.2-py3.7.egg-info + importlib_metadata-1.6.1.dist-info + keyring-19.2.0.dist-info + pathtools-0.1.2-py3.7.egg-info + pefile-2019.4.18-py3.7.egg-info + pywin32_ctypes-0.2.0.dist-info + requests-2.23.0.dist-info + setuptools-41.2.0.dist-info + urllib3-1.25.9.dist-info + watchdog-0.10.2-py3.7.egg-info + zipp-3.1.0.dist-info 1. [py2exe](https://github.com/albertosottile/py2exe): You need a pre-release version, [0.9.4.0](https://bintray.com/alby128/py2exe/download_file?file_path=py2exe-0.9.4.0-cp37-none-win32.whl), see [this py2exe issue](https://github.com/albertosottile/py2exe/issues/23#issuecomment-541359225) 1. `pip install py2exe-0.9.4.0-cp37-none-win32.whl` 1. `pip install keyring==19.2.0` (because newer tries to get importlib_metadata in a way that doesn't work) From 4c7cc84a8b5a8fe44e2b4e989bbe584c2776cd32 Mon Sep 17 00:00:00 2001 From: Athanasius Date: Sun, 14 Jun 2020 18:04:49 +0100 Subject: [PATCH 018/147] docs: RELEASING.md: Move site-packages list to after python/py2exe --- docs/RELEASING.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/docs/RELEASING.md b/docs/RELEASING.md index ac4f87f6..d12fcebc 100644 --- a/docs/RELEASING.md +++ b/docs/RELEASING.md @@ -20,6 +20,9 @@ Environment 1. `pip install certifi==2019.9.11` (because a later version doesn't work with py2exe, causing cacert.pem to not be found) 1. `pip install requests` 1. `pip install watchdog` +1. [py2exe](https://github.com/albertosottile/py2exe): You need a pre-release version, [0.9.4.0](https://bintray.com/alby128/py2exe/download_file?file_path=py2exe-0.9.4.0-cp37-none-win32.whl), see [this py2exe issue](https://github.com/albertosottile/py2exe/issues/23#issuecomment-541359225) + 1. `pip install py2exe-0.9.4.0-cp37-none-win32.whl` + 1. `pip install keyring==19.2.0` (because newer tries to get importlib_metadata in a way that doesn't work) As dependencies also get pulled in here's a list of what ended up in site-packages, and their versions: @@ -32,15 +35,13 @@ Environment keyring-19.2.0.dist-info pathtools-0.1.2-py3.7.egg-info pefile-2019.4.18-py3.7.egg-info + py2exe-0.9.4.0.dist-info pywin32_ctypes-0.2.0.dist-info requests-2.23.0.dist-info setuptools-41.2.0.dist-info urllib3-1.25.9.dist-info watchdog-0.10.2-py3.7.egg-info zipp-3.1.0.dist-info -1. [py2exe](https://github.com/albertosottile/py2exe): You need a pre-release version, [0.9.4.0](https://bintray.com/alby128/py2exe/download_file?file_path=py2exe-0.9.4.0-cp37-none-win32.whl), see [this py2exe issue](https://github.com/albertosottile/py2exe/issues/23#issuecomment-541359225) - 1. `pip install py2exe-0.9.4.0-cp37-none-win32.whl` - 1. `pip install keyring==19.2.0` (because newer tries to get importlib_metadata in a way that doesn't work) If you are using different versions of any of these tools then please ensure that the paths where they're installed match the associated lines in `setup.py`. i.e. if you're using later WiX you might need to edit the WIXPATH line, and likewise the SDKPATH line if you're using a later Windows SDK kit. From 806bea5b5cd617dd8c809a08f3cf1db6e9dca3e2 Mon Sep 17 00:00:00 2001 From: Athanasius Date: Sun, 14 Jun 2020 18:08:54 +0100 Subject: [PATCH 019/147] docs: RELEASING.md: Expand on how to run the py2exe command --- docs/RELEASING.md | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/docs/RELEASING.md b/docs/RELEASING.md index d12fcebc..6df31636 100644 --- a/docs/RELEASING.md +++ b/docs/RELEASING.md @@ -65,11 +65,17 @@ There are other things that you should probably change, but can get away with le Packaging & Installer Generation --- -Assuming the correct python.exe is in your PATH then simply run: +You'll want to do the .exe and .msi generation in a `cmd.exe` window, not e.g. a 'Git bash' window. + +Assuming the correct python.exe is associated with .py files then simply run: setup.py py2exe -else you might need something like: +else you might need this, which assumes correct python.exe is in your PATH: + + python.exe setup.py py2exe + +else you'll have to specify the path to python.exe: "%LOCALAPPDATA%\Programs\Python\Python37-32\python.exe" setup.py py2exe From 69b585ac1dec31c5832eed9239a1b26a1aa3c0c6 Mon Sep 17 00:00:00 2001 From: Athanasius Date: Sun, 14 Jun 2020 18:11:17 +0100 Subject: [PATCH 020/147] docs: RELEASING.md: Reminder to check the .exe and .msi actually work. --- docs/RELEASING.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/RELEASING.md b/docs/RELEASING.md index 6df31636..4c29497a 100644 --- a/docs/RELEASING.md +++ b/docs/RELEASING.md @@ -102,6 +102,10 @@ Output will be something like (`...` denoting parts elided for brevity): You should now have one new/updated folder `dist.win32` and two new files (version number dependent): `EDMarketConnector_win_350.msi` and `appcast_win_350.xml`. If you want to just check the generated .exe files then they're in that `dist.win32` folder. +Now check that the `EDMarketConnector.exe` in the `dist.win32` folder does run without errors. + +Finally, uninstall your current version of ED Market Connector and re-install using the newly generated .msi file. Check the resulting installation does work (the installer will run the program for you). + Distribution --- Put the `EDMarketConnector_win_.msi` file in place where you're releasing the files. Put the `appcast_win_.xml` file where it will be served under the URL you specified in the `update_feed` you set in `config.py`. From e008986490f06f97e19cbd75b65ada58534ae4db Mon Sep 17 00:00:00 2001 From: Athanasius Date: Sun, 14 Jun 2020 18:29:00 +0100 Subject: [PATCH 021/147] docs: RELEASING.md: site-packages corrected. This had been listing importlib_metadata, and its dependency zipp, because it's a dependency of newer 'keyring'. As we're hard-coding an older 'keyring' without that dependency we don't need to list them here. --- docs/RELEASING.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/docs/RELEASING.md b/docs/RELEASING.md index 4c29497a..57c332df 100644 --- a/docs/RELEASING.md +++ b/docs/RELEASING.md @@ -31,7 +31,6 @@ Environment chardet-3.0.4.dist-info entrypoints-0.3.dist-info future-0.18.2-py3.7.egg-info - importlib_metadata-1.6.1.dist-info keyring-19.2.0.dist-info pathtools-0.1.2-py3.7.egg-info pefile-2019.4.18-py3.7.egg-info @@ -41,7 +40,6 @@ Environment setuptools-41.2.0.dist-info urllib3-1.25.9.dist-info watchdog-0.10.2-py3.7.egg-info - zipp-3.1.0.dist-info If you are using different versions of any of these tools then please ensure that the paths where they're installed match the associated lines in `setup.py`. i.e. if you're using later WiX you might need to edit the WIXPATH line, and likewise the SDKPATH line if you're using a later Windows SDK kit. From 4459e19b47b5bc6339e56623e63e500fec608489 Mon Sep 17 00:00:00 2001 From: Athanasius Date: Sun, 14 Jun 2020 18:48:09 +0100 Subject: [PATCH 022/147] docs: RELEASING.md: Clarify the py2exe version requirements. 0.9.3.2 will work, due to a hack in setup.py. 0.9.4.0 is pre-release and works with or without that hack. --- docs/RELEASING.md | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/docs/RELEASING.md b/docs/RELEASING.md index 57c332df..5f779abb 100644 --- a/docs/RELEASING.md +++ b/docs/RELEASING.md @@ -20,11 +20,21 @@ Environment 1. `pip install certifi==2019.9.11` (because a later version doesn't work with py2exe, causing cacert.pem to not be found) 1. `pip install requests` 1. `pip install watchdog` -1. [py2exe](https://github.com/albertosottile/py2exe): You need a pre-release version, [0.9.4.0](https://bintray.com/alby128/py2exe/download_file?file_path=py2exe-0.9.4.0-cp37-none-win32.whl), see [this py2exe issue](https://github.com/albertosottile/py2exe/issues/23#issuecomment-541359225) - 1. `pip install py2exe-0.9.4.0-cp37-none-win32.whl` +1. [py2exe](https://github.com/albertosottile/py2exe): + 1. Install the python module. There are two options here. + 1. You can use the latest release version [0.9.3.2](https://github.com/albertosottile/py2exe/releases/tag/v0.9.3.2) and the current Marginal 'python3' branch as-is. This contains a small hack in `setup.py` to ensure `sqlite3.dll` is packaged. + + pip install py2exe-0.9.3.2-cp37-none-win32.whl + 1. Or you can use a pre-release version, [0.9.4.0](https://bintray.com/alby128/py2exe/download_file?file_path=py2exe-0.9.4.0-cp37-none-win32.whl), see [this py2exe issue](https://github.com/albertosottile/py2exe/issues/23#issuecomment-541359225), which packages that DLL file correctly. + + pip install py2exe-0.9.4.0-cp37-none-win32.whl + You can then edit out the following line from `setup.py`, but it does no harm: + + %s/DLLs/sqlite3.dll' % (sys.base_prefix), + 1. `pip install keyring==19.2.0` (because newer tries to get importlib_metadata in a way that doesn't work) - As dependencies also get pulled in here's a list of what ended up in site-packages, and their versions: + As dependencies also get pulled in here's a list of what ends up in site-packages, and their versions: cachetools-4.1.0.dist-info certifi-2019.9.11.dist-info From ade048d1fc326b2f9f9f777bdb37c25e2352fe14 Mon Sep 17 00:00:00 2001 From: Athanasius Date: Mon, 15 Jun 2020 15:50:26 +0100 Subject: [PATCH 023/147] docs: RELEASING.md: How to update edmarketconnector.xml --- docs/RELEASING.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/docs/RELEASING.md b/docs/RELEASING.md index 5f779abb..d29df19c 100644 --- a/docs/RELEASING.md +++ b/docs/RELEASING.md @@ -116,4 +116,8 @@ Finally, uninstall your current version of ED Market Connector and re-install us Distribution --- -Put the `EDMarketConnector_win_.msi` file in place where you're releasing the files. Put the `appcast_win_.xml` file where it will be served under the URL you specified in the `update_feed` you set in `config.py`. +Put the `EDMarketConnector_win_.msi` file in place where you're releasing the files. + +For the `edmarketconnector.xml` update you'll need to edit the existing file: +1. Update the `` and `<description>` texts to reflect the latest version and the additional changelog. +1. Update the `url`, `sparkle:version` and `length` elements as per the latest appcast_win_<version>.xml file geneated by the build process. Ensure the `url` does match where you uploaded the `.msi` file. From 381c039a31eac73c5d898c5a89174f21333f09c6 Mon Sep 17 00:00:00 2001 From: Athanasius <github@miggy.org> Date: Mon, 15 Jun 2020 17:42:04 +0100 Subject: [PATCH 024/147] docs: RELEASING.md: Mostly have the actual release procedure documented now. There's a 'TODO' for generating the zip and tar.gz source files. --- docs/RELEASING.md | 25 +++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) diff --git a/docs/RELEASING.md b/docs/RELEASING.md index d29df19c..211bc12a 100644 --- a/docs/RELEASING.md +++ b/docs/RELEASING.md @@ -116,8 +116,25 @@ Finally, uninstall your current version of ED Market Connector and re-install us Distribution --- -Put the `EDMarketConnector_win_<version>.msi` file in place where you're releasing the files. +It is recommended to keep all the files for distribution on github, including the 'update_feed' file. So once you have tested the new .msi file -For the `edmarketconnector.xml` update you'll need to edit the existing file: -1. Update the `<title>` and `<description>` texts to reflect the latest version and the additional changelog. -1. Update the `url`, `sparkle:version` and `length` elements as per the latest appcast_win_<version>.xml file geneated by the build process. Ensure the `url` does match where you uploaded the `.msi` file. +1. You should have already decided on the new version number, as it's specified in `config.py`. You'll need to redo the `.msi` build if you forgot. **Remember to do a fresh git commit for this change.** + 1. Keep in mind that despite being specified as, e.g. '3.5.0.0' the `setup.py` code only takes note of the first 3 parts for deciding the release number. i.e. `3.5.0.1` results in the same `rel-350/EDMarketConnector_win_350.msi` as '3.5.0.0' does. + +1. Prepare a changelog text for the release. You'll need this both for the github release and the contents of the `edmarketconnector.xml` file. + 1. Update `edmarketconnector.xml` to add this changelog text to the correct section. + 1. You'll need to change the `<title>` and `<description>` texts to reflect the latest version and the additional changelog. + 1. Update the `url`, `sparkle:version` and `length` elements of the `<enclosure>` section as per the latest appcast_win_<version>.xml file generated by the build process. + 1. **DO NOT git commit this change or push to github**. *We need to get the github release in place first before changing the file that running EDMC clients will check.* + +1. Add a git tag for the release, which you'll refer to when actually creating the release: + 1. Add a git tag matching the `rel-XYZ` part of the URL in the `appcast_win_XYX.msi` file. e.g. `git tag -a rel-350` + 1. Ensure this tag is pushed to github: `git push --tags <github remote>` + +1. TODO: Generate the Source Code zip and tar.gz files. + +1. Craft a new github Release, using the tag you added before. Include the .msi file for Windows and the Source Code files if you have them. Use the changelog text you already prepared. + +1. Check that the URL for the release that you specified in `edmarketconnector.xml` actually matches where github has placed the `.msi` file. + +1. **NOW commit the latest `edmarketconnector.xml` changes and push to github.** This is the step that fully publishes the release for running EDMC instances to pick up on 'Check for Updates'. Yes, this means that this step isn't included in the git tag, but the alternative (with hosting the file via github raw URL) is to have a race condition where a running EDMC instance might check the file and see there's a new version *before that new version is actually available for download*. From 141609e7fb52d1683cec4e25c3014c87bd024edc Mon Sep 17 00:00:00 2001 From: Athanasius <github@miggy.org> Date: Mon, 15 Jun 2020 18:10:23 +0100 Subject: [PATCH 025/147] docs: RELEASING.md: github adds the Source Code files itself --- docs/RELEASING.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/docs/RELEASING.md b/docs/RELEASING.md index 211bc12a..a2f182a3 100644 --- a/docs/RELEASING.md +++ b/docs/RELEASING.md @@ -131,9 +131,7 @@ It is recommended to keep all the files for distribution on github, including th 1. Add a git tag matching the `rel-XYZ` part of the URL in the `appcast_win_XYX.msi` file. e.g. `git tag -a rel-350` 1. Ensure this tag is pushed to github: `git push --tags <github remote>` -1. TODO: Generate the Source Code zip and tar.gz files. - -1. Craft a new github Release, using the tag you added before. Include the .msi file for Windows and the Source Code files if you have them. Use the changelog text you already prepared. +1. Craft a new github Release, using the tag you added before. Include the .msi file for Windows (the Source Code files are added by github based on the release tag). Use the changelog text you already prepared. 1. Check that the URL for the release that you specified in `edmarketconnector.xml` actually matches where github has placed the `.msi` file. From e3d5acc27f3b46615e23265dfc2494b3eacc5207 Mon Sep 17 00:00:00 2001 From: Athanasius <github@miggy.org> Date: Wed, 17 Jun 2020 15:28:59 +0100 Subject: [PATCH 026/147] Initial commits before release 3.4.4.0 This is a little messy due to the need to bootstrap the edmarketconnector.xml file into the 'releases' branch. --- .gitignore | 4 +- config.py | 4 +- edmarketconnector.xml | 326 ++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 331 insertions(+), 3 deletions(-) create mode 100644 edmarketconnector.xml diff --git a/.gitignore b/.gitignore index 0a73c9fb..e6e08332 100644 --- a/.gitignore +++ b/.gitignore @@ -9,5 +9,7 @@ dump *.pdb *.msi *.wixobj -*.xml +appcast_win_*.xml +appcast_mac_*.xml +EDMarketConnector.VisualElementsManifest.xml *.zip diff --git a/config.py b/config.py index 6f7834b1..1e6c47fd 100644 --- a/config.py +++ b/config.py @@ -8,9 +8,9 @@ from sys import platform appname = 'EDMarketConnector' applongname = 'E:D Market Connector' appcmdname = 'EDMC' -appversion = '3.4.3.0' +appversion = '3.4.4.0' -update_feed = 'https://marginal.org.uk/edmarketconnector.xml' +update_feed = 'https://raw.githubusercontent.com/EDCD/EDMarketConnector/releases/edmarketconnector.xml' update_interval = 47*60*60 diff --git a/edmarketconnector.xml b/edmarketconnector.xml new file mode 100644 index 00000000..abc27f5c --- /dev/null +++ b/edmarketconnector.xml @@ -0,0 +1,326 @@ +<?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 + https://raw.githubusercontent.com/EDCD/EDMarketConnector/releases/edmarketconnector.xml + Most recent changes with links to updates. + + + + + Release 3.43 + + h2 { font-size: 105%; } +

Release 3.44

+

NB: This release doesn't yet exist for MacOS + ... +

+ +

Release 3.43

+
    +
  • New commodity and modules from “September Update”.
  • +
  • Misc fixes.
  • +
  • More control over plugin widget colors.
  • +
+

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.

+

Release 3.42

+
    +
  • Use EDSY.org address for EDShipyard.
  • +
  • Add advanced multi-cannon from “Bridging the Gap”.
  • +
+

Release 3.41

+
    +
  • Transparent theme window size reduced.
  • +
+

Release 3.40

+
    +
  • Add new modules in 3.4.
  • +
  • Improved authentication when app started with game already running.
  • +
+

Release 3.38

+
    +
  • More authentication fixes.
  • +
  • Send influence and reputation gain to Inara on mission completion.
  • +
+

Release 3.37

+
    +
  • More authentication fixes.
  • +
  • More robust/graceful handling of Frontier Auth and/or cAPI server outages.
  • +
+

Release 3.36

+
    +
  • Fix for forthcoming Frontier authentication changes.
  • +
+

Release 3.35

+
    +
  • Display feedback on successful authentication.
  • +
  • Outfitting and Shipyard data also sent to EDDN on visiting outfitting or shipyard in-game, and tagged with a “Horizons” flag.
  • +
  • Sends your local faction reputation to Inara.
  • +
  • Fix for preferences window appearance on macOS Mojave.
  • +
+

Release 3.33

+
    +
  • More authentication fixes.
  • +
+

Release 3.32

+
    +
  • Fix for token expiry during a session (“Frontier server is down” error).
  • +
  • Force re-authentication if credentials entered for wrong Cmdr.
  • +
  • More logging of OAuth failures.
  • +
+

Release 3.31

+
    +
  • Support for OAuth2-based access to station commodity market, outfitting and shipyard data.
  • +
  • Fix for command-line program.
  • +
  • Improved handling of authentication errors.
  • +
  • Commodity market data also sent to EDDN on visiting the in-game commodity market.
  • +
  • Misc fixes.
  • +
+

Release 3.30

+
    +
  • Support for OAuth2-based access to station commodity market, outfitting and shipyard data.
  • +
  • Commodity market data also sent to EDDN on visiting the in-game commodity market.
  • +
  • Misc fixes.
  • +
+

Release 3.20

+
    +
  • Preliminary support for E:D 3.3.
  • +
  • Support accessing Journal on macOS remotely over SMB.
  • +
  • Misc fixes.
  • +
+

Release 3.12

+ +

Release 3.11

+
    +
  • Misc fixes.
  • +
+

Release 3.10

+
    +
  • Support for new ships and modules in E:D 3.1.
  • +
  • Fix for sending ship loadouts with engineered modules with certain secondary effects to Inara.
  • +
  • Add separators between plugins in main window.
  • +
  • Chinese (Simplified) translation courtesy of Cmdr Zhixian Wu.
  • +
  • Portuguese (Portugal) translation courtesy of Carlos Oliveira.
  • +
+

Release 3.06

+
    +
  • Extend localisation support to plugins.
  • +
  • Hungarian translation courtesy of Cmdr Wormhole.
  • +
  • Misc fixes.
  • +
+

Release 3.05

+
    +
  • Fix for “Frontier server is down” error on systems with primary language other than English.
  • +
  • Fix for TD prices file format.
  • +
+

Release 3.04

+
    +
  • Export ship loadout to Coriolis in Journal “Loadout” format.
  • +
  • Fix for “This app requires accurate timestamps” error - get timestamps for cAPI-derived data from cAPI server.
  • +
  • Fix for TCE integration.
  • +
  • Support for “package plugins”.
  • +
+

Release 3.03

+
    +
  • Fixes for stats and plugin display.
  • +
+

Release 3.02

+
    +
  • Choose between eddb, EDSM and Inara for station and shipyard links.
  • +
  • Don't display “Solo” mode in main window.
  • +
  • Fix for saving ship loadout to file when ship name contains punctuation.
  • +
+

Release 3.01

+
    +
  • Various fixes for EDSM, Inara and TCE integrations.
  • +
  • Fix for failure to terminate cleanly.
  • +
  • Switch ship loadout file to journal format.
  • +
+

Release 3.00

+
    +
  • Support for E:D 3.0.
  • +
  • Updates your entire fleet on EDSM and/or Inara whenever you visit the shipyard in game.
  • +
  • Updates your current ship's loadout on EDSM and/or Inara whenever it changes.
  • +
  • Plugin access to your dashboard status.
  • +
+ ]]> +
+ +
+ + + + + Release 3.44 + + body { font-family:"Segoe UI","Tahoma"; font-size: 75%; } h2 { font-family:"Segoe UI","Tahoma"; font-size: 105%; } +

Release 3.44

+

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.

+
    +
  • Version increased to 3.4.4.0 / 3.44.
  • +
  • URL the application checks for updates changed to point to github,
  • +
+

Release 3.43

+
    +
  • New commodity and modules from “September Update”.
  • +
  • Increase transparent theme font size.
  • +
  • Misc fixes.
  • +
  • More control over plugin widget colors.
  • +
+

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.

+

Release 3.42

+
    +
  • Use EDSY.org address for EDShipyard.
  • +
  • Fixes for running under Wine on Linux.
  • +
  • Support not always on top with dark theme on Linux.
  • +
  • Add advanced multi-cannon from ”Bridging the Gap”.
  • +
+

Release 3.41

+
    +
  • Transparent theme window size reduced.
  • +
+

Release 3.40

+
    +
  • Use Euro Caps font with transparent theme.
  • +
  • Add new modules in 3.4.
  • +
  • Improved authentication when app started with game already running.
  • +
+

Release 3.38

+
    +
  • More authentication fixes.
  • +
  • Send influence and reputation gain to Inara on mission completion.
  • +
+

Release 3.37

+
    +
  • More authentication fixes.
  • +
  • More robust/graceful handling of Frontier Auth and/or cAPI server outages.
  • +
+

Release 3.36

+
    +
  • Fix for forthcoming Frontier authentication changes.
  • +
  • Fix for installation on non-English systems.
  • +
+

Release 3.35

+
    +
  • Display feedback on successful authentication.
  • +
  • Outfitting and Shipyard data also sent to EDDN on visiting outfitting or shipyard in-game, and tagged with a “Horizons” flag.
  • +
  • Sends your local faction reputation to Inara.
  • +
+

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.

+

Release 3.33

+
    +
  • More authentication fixes.
  • +
+

Release 3.32

+
    +
  • Fix for token expiry during a session (“Frontier server is down” error).
  • +
  • Force re-authentication if credentials entered for wrong Cmdr.
  • +
  • More logging of OAuth failures.
  • +
+

Release 3.31

+
    +
  • Support for OAuth2-based access to station commodity market, outfitting and shipyard data.
  • +
  • Fix for command-line program.
  • +
  • Improved handling of authentication errors.
  • +
  • Commodity market data also sent to EDDN on visiting the in-game commodity market.
  • +
  • Misc fixes.
  • +
+

Release 3.30

+
    +
  • Support for OAuth2-based access to station commodity market, outfitting and shipyard data.
  • +
  • Commodity market data also sent to EDDN on visiting the in-game commodity market.
  • +
  • Misc fixes.
  • +
+

Release 3.20

+
    +
  • Preliminary support for E:D 3.3.
  • +
  • Support accessing Journal on macOS remotely over SMB.
  • +
  • Misc fixes.
  • +
+

Release 3.12

+ +

Release 3.11

+
    +
  • Misc fixes.
  • +
+

Release 3.10

+
    +
  • Support for new ships and modules in E:D 3.1.
  • +
  • Fix for sending ship loadouts with engineered modules with certain secondary effects to Inara.
  • +
  • Add separators between plugins in main window.
  • +
  • Chinese (Simplified) translation courtesy of Cmdr Zhixian Wu.
  • +
  • Portuguese (Portugal) translation courtesy of Carlos Oliveira.
  • +
+

Release 3.06

+
    +
  • Extend localisation support to plugins.
  • +
  • Hungarian translation courtesy of Cmdr Wormhole.
  • +
  • Misc fixes.
  • +
+

Release 3.05

+
    +
  • Fix for “Frontier server is down” error on systems with primary language other than English.
  • +
  • Fix for TD prices file format.
  • +
+

Release 3.04

+
    +
  • Export ship loadout to Coriolis in Journal “Loadout” format.
  • +
  • Fix for “This app requires accurate timestamps” error - get timestamps for cAPI-derived data from cAPI server.
  • +
  • Fix for TCE integration.
  • +
  • Support for “package plugins”.
  • +
+

Release 3.03

+
    +
  • Fixes for stats and plugin display.
  • +
+

Release 3.02

+
    +
  • Choose between eddb, EDSM and Inara for station and shipyard links.
  • +
  • Don't display “Solo” mode in main window.
  • +
  • Fix for saving ship loadout to file when ship name contains punctuation.
  • +
+

Release 3.01

+
    +
  • Various fixes for EDSM, Inara and TCE integrations.
  • +
  • Fix for failure to terminate cleanly.
  • +
  • Switch ship loadout file to journal format.
  • +
+

Release 3.00

+
    +
  • Support for E:D 3.0.
  • +
  • Updates your entire fleet on EDSM and/or Inara whenever you visit the shipyard in game.
  • +
  • Updates your current ship's loadout on EDSM and/or Inara whenever it changes.
  • +
  • Plugin access to your dashboard status.
  • +
+ ]]> +
+ +
+ + + From f52d4a5e756b23de21a038ac09313e896a354814 Mon Sep 17 00:00:00 2001 From: Athanasius Date: Wed, 17 Jun 2020 16:41:25 +0100 Subject: [PATCH 027/147] Updates various github URLs to EDCD, not Marginal, ones. --- EDMarketConnector.py | 6 +++--- PLUGINS.md | 2 +- PRIVACY.md | 2 +- README.md | 10 +++++----- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/EDMarketConnector.py b/EDMarketConnector.py index 75f31d53..39bd19b7 100755 --- a/EDMarketConnector.py +++ b/EDMarketConnector.py @@ -662,13 +662,13 @@ class AppWindow: self.w.clipboard_append(monitor.station and '%s,%s' % (monitor.system, monitor.station) or monitor.system) def help_general(self, event=None): - webbrowser.open('https://github.com/Marginal/EDMarketConnector/wiki') + webbrowser.open('https://github.com/EDCD/EDMarketConnector/wiki') def help_privacy(self, event=None): - webbrowser.open('https://github.com/Marginal/EDMarketConnector/wiki/Privacy-Policy') + webbrowser.open('https://github.com/EDCD/EDMarketConnector/wiki/Privacy-Policy') def help_releases(self, event=None): - webbrowser.open('https://github.com/Marginal/EDMarketConnector/releases') + webbrowser.open('https://github.com/EDCD/EDMarketConnector/releases') def save_raw(self): self.status['text'] = _('Fetching data...') diff --git a/PLUGINS.md b/PLUGINS.md index dcf4cd1b..4e35c3f1 100644 --- a/PLUGINS.md +++ b/PLUGINS.md @@ -251,7 +251,7 @@ If you display localized strings in EDMC's main window you should refresh them i Translation files should reside in folder named `L10n` inside your plugin's folder. Files must be in macOS/iOS ".strings" format, encoded as UTF-8. You can generate a starting template file for your translations by invoking `l10n.py` in your plugin's folder. This extracts all the translatable strings from Python files in your plugin's folder and places them in a file named `en.template` in the `L10n` folder. Rename this file as `.strings` and edit it. -See EDMC's own [`L10n`](https://github.com/Marginal/EDMarketConnector/tree/master/L10n) folder for the list of supported language codes and for example translation files. +See EDMC's own [`L10n`](https://github.com/EDCD/EDMarketConnector/tree/master/L10n) folder for the list of supported language codes and for example translation files. # Python Package Plugins diff --git a/PRIVACY.md b/PRIVACY.md index 7eb9b859..853239a4 100644 --- a/PRIVACY.md +++ b/PRIVACY.md @@ -38,4 +38,4 @@ If you have registered with the [Inara](https://inara.cz/) website this app tran ### Plugins -If you have installed any [plugins](https://github.com/Marginal/EDMarketConnector/wiki/Plugins) this app makes your Commander details available to those plugins. +If you have installed any [plugins](https://github.com/EDCD/EDMarketConnector/wiki/Plugins) this app makes your Commander details available to those plugins. diff --git a/README.md b/README.md index 065ba687..7d199993 100644 --- a/README.md +++ b/README.md @@ -35,14 +35,14 @@ Installation Mac: * Requires Mac OS 10.10 or later. -* Download the `.zip` archive of the [latest release](https://github.com/Marginal/EDMarketConnector/releases/latest). +* Download the `.zip` archive of the [latest release](https://github.com/EDCD/EDMarketConnector/releases/latest). * The zip archive contains the **EDMarketConnector** app - move this app to **Applications** or wherever you want it. * Double-click on the app to run it. Windows: * Requires Windows 7 or later. -* Download the `.msi` package of the [latest release](https://github.com/Marginal/EDMarketConnector/releases/latest). +* Download the `.msi` package of the [latest release](https://github.com/EDCD/EDMarketConnector/releases/latest). * Double-click on it to install. * Run **Elite Dangerous Market Connector** from the Start Menu or Start Screen. @@ -211,7 +211,7 @@ You'll see a very long cooldown period if your system's time of day changes whil - Re-start the app. ### Update Error! -The [GitHub server](https://github.com/Marginal/EDMarketConnector/releases/latest) that hosts this app's updates only supports TLS 1.2 and higher. Follow [these](https://help.passageways.com/hc/en-us/articles/115005183226-How-to-enable-TLS-1-2-in-Internet-Explorer-11-and-MS-Edge) instructions to change your Windows settings to disable the [deprecated](https://tools.ietf.org/html/rfc7568) SSL 2.0 and 3.0 protocols and enable TLS 1.2. +The [GitHub server](https://github.com/EDCD/EDMarketConnector/releases/latest) that hosts this app's updates only supports TLS 1.2 and higher. Follow [these](https://help.passageways.com/hc/en-us/articles/115005183226-How-to-enable-TLS-1-2-in-Internet-Explorer-11-and-MS-Edge) instructions to change your Windows settings to disable the [deprecated](https://tools.ietf.org/html/rfc7568) SSL 2.0 and 3.0 protocols and enable TLS 1.2. ### Location of configuration files If your configuration has been corrupted, or badly set, such that you can't run the program to fix it, or you otherwise need to directly access the configuration then these are the locations of the configuration: @@ -237,7 +237,7 @@ Future updates will also be installed to this location. This app doesn't work with PS4 or Xbox Elite: Dangerous accounts. On these platforms the game lacks support for the API and Journal files that this app relies on. ### Reporting a problem -Please report a problem as a new GitHub [issue](https://github.com/Marginal/EDMarketConnector/issues/new). Please wait for the error to occur and zip up and attach this app's log file to the new issue: +Please report a problem as a new GitHub [issue](https://github.com/EDCD/EDMarketConnector/issues/new). Please wait for the error to occur and zip up and attach this app's log file to the new issue: Mac: @@ -251,7 +251,7 @@ Windows: Running from source -------- -Download and extract the [latest source code](https://github.com/Marginal/EDMarketConnector/archive/master.zip) (or fork and clone if you're comfortable with using `git`). +Download and extract the [latest source code](https://github.com/EDCD/EDMarketConnector/archive/master.zip) (or fork and clone if you're comfortable with using `git`). Mac: From 4ee1510862ad31d6eea6b958d8bdcaaba1a1e484 Mon Sep 17 00:00:00 2001 From: Athanasius Date: Wed, 17 Jun 2020 16:42:17 +0100 Subject: [PATCH 028/147] Updates build config for EDCD, tweaked copyright, and latest WiX * Change instances of 'Marginal' to 'EDCD'. Including github URLs. * Update SDKPATH and WIXPATH to the latest versions. * Removes un-necessary attempt at including VCredist file. This isn't needed on any Windows 10 version that is vaguely current (tested on 1909). * Adds the following to the EDMarketConnector.wxs section so that any new version definitely replaces any older one: InstallScope="perMachine" without this it defaults to a per-user install, and you end up with the prior Marginal-era EDMC allegedly still installed as well, even though they're installed into the same path. See commit 1beca864d362625f983cc9465125124ffada4ae2 in the python3 branch. * Appends ", 2020 Athanasius" to the copyright notices in setup.py. This will likely change to ", 2020 EDCD" pending EDCD Council approval. --- EDMarketConnector.wxs | 13 +++---------- setup.py | 16 ++++++++-------- 2 files changed, 11 insertions(+), 18 deletions(-) diff --git a/EDMarketConnector.wxs b/EDMarketConnector.wxs index 841926d9..8e47bdeb 100644 --- a/EDMarketConnector.wxs +++ b/EDMarketConnector.wxs @@ -11,9 +11,10 @@ Version="$(var.PRODUCTVERSION)" UpgradeCode="$(var.UPGRADECODE)" Language="!(bind.fileLanguage.EDMarketConnector.exe)" - Manufacturer="Marginal"> + Manufacturer="EDCD"> - + @@ -64,14 +65,6 @@ - - - - - - - - 1 and isdir(dist_dir): macdeveloperid = None # Windows paths -WIXPATH = r'C:\Program Files (x86)\WiX Toolset v3.9\bin' -SDKPATH = r'C:\Program Files (x86)\Windows Kits\8.1\bin\x86' +WIXPATH = r'C:\Program Files (x86)\WiX Toolset v3.11\bin' +SDKPATH = r'C:\Program Files (x86)\Windows Kits\10\bin\10.0.18362.0\x86' # OSX paths SPARKLE = '/Library/Frameworks/Sparkle.framework' @@ -95,7 +95,7 @@ if sys.platform=='darwin': ], 'LSMinimumSystemVersion': '10.10', 'NSAppleScriptEnabled': True, - 'NSHumanReadableCopyright': u'© 2015-2019 Jonathan Harris', + 'NSHumanReadableCopyright': u'© 2015-2019 Jonathan Harris, 2020 Athanasius', 'SUEnableAutomaticChecks': True, 'SUShowReleaseNotes': True, 'SUAllowsAutomaticUpdates': False, @@ -147,16 +147,16 @@ setup( windows = [ {'dest_base': APPNAME, 'script': APP, 'icon_resources': [(0, '%s.ico' % APPNAME)], - 'copyright': u'© 2015-2019 Jonathan Harris', + 'copyright': u'© 2015-2019 Jonathan Harris, 2020 Athanasius', 'name': APPNAME, # WinSparkle - 'company_name': 'Marginal', # WinSparkle + 'company_name': 'EDCD', # WinSparkle 'other_resources': [(24, 1, open(APPNAME+'.manifest').read())], } ], console = [ {'dest_base': APPCMDNAME, 'script': APPCMD, - 'copyright': u'© 2015-2019 Jonathan Harris', + 'copyright': u'© 2015-2019 Jonathan Harris, 2020 Athanasius', 'name': APPNAME, - 'company_name': 'Marginal', + 'company_name': 'EDCD', } ], data_files = DATA_FILES, options = OPTIONS, @@ -213,7 +213,7 @@ appcast.write(''' \t\t\t\t]]> \t\t\t \t\t\t Date: Wed, 17 Jun 2020 17:08:11 +0100 Subject: [PATCH 029/147] edmarketconnector.xml: Ensure 3.44 changelog is complete. * Copied the Windows one to the MacOS section, and added some emphasis. * URL-ised the reference to the README.md. --- edmarketconnector.xml | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/edmarketconnector.xml b/edmarketconnector.xml index abc27f5c..e1e5eefd 100644 --- a/edmarketconnector.xml +++ b/edmarketconnector.xml @@ -13,10 +13,16 @@ h2 { font-size: 105%; }

Release 3.44

-

NB: This release doesn't yet exist for MacOS - ... -

- +

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.

+
    +
  • Version increased to 3.4.4.0 / 3.44.
  • +
  • URL the application checks for updates changed to point to github,
  • +
+

Release 3.44

Release 3.43