BugFixes ...

The following changes have been made:

General:

Remove invalid iCCP chunk from hyperion icon
Fix timeout push and display with timeout 0
Added resources directory to share resources as code (static lib) e.g. systray icon for standalone capture implementations
Some polishing to CPack
Git remote path now embed in build id, to see faster the origin repository
Corrected some code indent
Set CMake QT version to 5.5 & python version to 3.5
Additions to .deb creation
Fix Aurora compiler warning (Issue #527)
Removed some redundant code in ImageToLedsMap and reserved memory on the ledColors vector (MartB Commit: https://github.com/hyperion-project/hyperion.ng/commit/1d9165f403fc1ab2d1135efbdd8f96c829974fb0)
Docker compile script and instruction
Removed assets/webconfig/server_scripts/demo.py
Avoid compilation 'note' on GCC 6 ARM
Removed V4L2 warning for OSX build

Capture interfaces:

Search and connect to Hyperion server using ssdp discovery
Remove assert()

Platform Capture:

set inactive after 5s no input

Dispmanx:

Fix double free of _captureBuffer

V4L2:

Added no-change as a USB capture video standard (Brindosch: https://github.com/hyperion-project/hyperion.ng/pull/495#issuecomment-360163813)
Start only if init is success
Device and input parameters merged
Set inactive after 3s if noSign
Prevent cross settings apply

QtGrabber:

New default capture implementation

LED Devices:

Moved devices in Threads
Fix ledCount passing
Fix segfaulting in reinit
Nanoleaf Aurora WebUI fixes (related with closed PR #522)

Flatbuffer:

Replacement for Protobuffer (Issue #494)

Blackborder:

Fix Processor threshold calculation
Detector does not allocate all the images now if the first one already matches. (MartB Commit: https://github.com/hyperion-project/hyperion.ng/commit/1d9165f403fc1ab2d1135efbdd8f96c829974fb0)

WebUI:

Custom effects can now be deleted again
More i18n (translation files)
Speed improvements for live visualization
LED & IMAGE stream set to max 20hz
Remove restarts
UploadHandler added to Effects Configurator to allow uploading GIF files
Update entry is now disabled (https://hyperion-project.org/threads/update-to-2-1.3350/)

EffectEngine:

Python DeInit / Init is now globally managed
Modules separated from the actual sub-interpreter code, since they are already static (EffectModule.h)
Header files moved to include directory
New global effect file handler class

Effects:

New wave effect
Remove running dots effect

JSON Server:

Removed jsonserver forwarding

Doxygen:

Add cmake option "BUILD_HYPERION_DOC"

WebServer:

Rename webconfig to webserver
Close client connection on stop
Webserver can be no longer disabled
Port number will now increment if port is not available for listening. To prevent total webui failure
WebSocket are now shared between WebServer and JsonAPI

SSDP:

As alternate to ZeroConf, will reflect changes to webserver port and whole interface address changes

Boblight:

Moved to hyperion class, as it can't live in global scope

PriorityMuxer:

The PriorityMuxer now simply accepted images (size should already be compressed)

JsonAPI:

Class replacement for JsonProcessor
Backwards compatibility ensured, to support hyperion classic remote control. The old transform commands are not supported yet.
The "clearall" command works again
The origin parameter is now optional (Thanks to penfold42 https://github.com/hyperion-project/hyperion.ng/pull/523#issuecomment-450593319)

BonjourBrowser:

BonjourServiceBrowsing moved to the daemon since globally valid. Interface of the register method slimmed down

SettingsManager:

New Class to manage the settings read write from/to config file

... and many small changes.
Notes: This PR is mostly from @Brindosch's and @MartB's rework branch .
After a successful test I have taken over all important changes from Brindosch and MartB.
I will omit not fully functional changes such as the plugin system, the database,
the instance management and the API authentication for the moment.
@WoLpH, @RickDB, @penfold42, @SJunkies and all other People:
TESTERS WANTED

@Paulchen-Panther great work!
would you please include the flatBuffer solution from brindosch rework branch?

@SJunkies
if the implementation of flatbuffer runs stable enough after a few tests I will integrate it.

Currently have to use Hyperion non-ng as the JSON interface got changed a while back so that it's no longer backwards compatible, use it with Home Assistant so wondering if we can easily add some checks in that interface on the Hyperion.ng side to allow for some legacy commands as well.

@RickDB
Is it the origin parameter that’s breaking it ?
If so, it should be easy to make it optional

Thanks for the tip @Paulchen-Panther.
The builds you have run for me and it seems stable.
2 issues though.

When prompted to restart after making changes in the web interface.
hyperion fails to restart, shows a segregation fault - Here's my logs from that point:
`[hyperiond MAIN]  hyperiond.cpp:92:freeObjects() destroy grabbers and network stuff
[hyperiond Core]  Unregister input source named 'Dispmanx' from priority register
[hyperiond Dispmanx]  GrabberWrapper.cpp:46:~GrabberWrapper() Close grabber: Dispmanx
[hyperiond V4L2:auto]  V4L2Grabber.cpp:75:uninit() uninit grabber: auto
[hyperiond Core]  Unregister input source named 'V4L2:auto' from priority register
[hyperiond V4L2:auto]  GrabberWrapper.cpp:46:~GrabberWrapper() Close grabber: V4L2:auto
[hyperiond EFFECTENGINE]  EffectEngine.cpp:53:~EffectEngine() Cleaning up Python interpreter

 hyperion will restart now          *

[hyperiond Process]  error while restarting hyperion
Segmentation fault
2. Hyperion remote in home assistant donst work for me, all commands from HA result in this message being shown in the log:[hyperiond JSONSERVER]  JsonServer.cpp:64:newConnection() New connection from: ::ffff:<IP_ADDRESS>
[hyperiond BLACKBORDER]  BlackBorderDetector.cpp:26:calculateThreshold() threshold set to 0.050000 (13)
[hyperiond BLACKBORDER]  BlackBorderProcessor.cpp:26:BlackBorderProcessor() mode: default
[hyperiond BLACKBORDER]  ImageProcessor.cpp:62:setLedMappingType() set led mapping to type 0
[hyperiond JSONCLIENTCONNECTION]  While validating schema against json data of 'JsonRpc@::ffff:<IP_ADDRESS>':[root].origin: missing member
[hyperiond JSONSERVER]  JsonServer.cpp:77:closedConnection() Connection closed
[hyperiond JSONSERVER]  JsonServer.cpp:64:newConnection() New connection from: ::ffff:<IP_ADDRESS>
[hyperiond BLACKBORDER]  BlackBorderDetector.cpp:26:calculateThreshold() threshold set to 0.050000 (13)
[hyperiond BLACKBORDER]  BlackBorderProcessor.cpp:26:BlackBorderProcessor() mode: default
[hyperiond BLACKBORDER]  ImageProcessor.cpp:62:setLedMappingType() set led mapping to type 0
[hyperiond JSONSERVER]  JsonServer.cpp:77:closedConnection() Connection closed
`

@Joeboyc2
Can you please post the complete log output? And sure you are building the correct PR?
This output points to the file JsonServer.cpp in line 64 but the position in this pr is line 98

[hyperiond JSONSERVER] JsonServer.cpp:64:newConnection() New connection from: ::ffff:<IP_ADDRESS>

And the Origin parameter has been corrected by @penfold42

[hyperiond JSONCLIENTCONNECTION] While validating schema against json data of 'JsonRpc@::ffff:<IP_ADDRESS>':[root].origin: missing member

@Joeboyc2
Can you please post the complete log output? And sure you are building the correct PR?
This output points to the file JsonServer.cpp in line 64 but the position in this pr is line 98

[hyperiond JSONSERVER] JsonServer.cpp:64:newConnection() New connection from: ::ffff:<IP_ADDRESS>

And the Origin parameter has been corrected by @penfold42

[hyperiond JSONCLIENTCONNECTION] While validating schema against json data of 'JsonRpc@::ffff:<IP_ADDRESS>':[root].origin: missing member

Hi @Paulchen-Panther,
Im using the build from your repo (https://github.com/Paulchen-Panther/hyperion.ng/releases/download/4b56008/Hyperion-2.0.0-Linux-rpi.sh) i've unpacked it in to a folder called 'hyperion' in /home/pi
i started it by cd'ing to /home/pi/hyperion/bin and running ./hyperiond
Here is my full log output:

pi@Hyperion:~/hyperion/bin $ ./hyperiond
[hyperiond EFFECTFILES]  36 effects loaded from directory :/effects/
[hyperiond EFFECTFILES]  19 effect schemas loaded from directory :/effects/schema/
[hyperiond EFFECTFILES]  0 effects loaded from directory /home/pi/.hyperion/custom-effects
[hyperiond SettingsManager]  Selected configuration file: /home/pi/.hyperion/config/hyperion_main.json
[hyperiond SettingsManager]  SettingsManager.cpp:72:SettingsManager() Settings database initialized
[hyperiond BLACKBORDER]  BlackBorderProcessor.cpp:65:handleSettingsUpdate() Set mode to: default
[hyperiond ComponentRegister]  ComponentRegister.cpp:67:componentStateChanged() Blackborder detector: enabled
[hyperiond ComponentRegister]  ComponentRegister.cpp:67:componentStateChanged() LED device: enabled
[hyperiond LEDDEVICE]  LedDevice 'apa102' configured.
[hyperiond ComponentRegister]  ComponentRegister.cpp:67:componentStateChanged() Smoothing: enabled
[hyperiond ComponentRegister]  ComponentRegister.cpp:67:componentStateChanged() Smoothing: disabled
[hyperiond LEDDEVICE]  ProviderSpi.cpp:48:open() _baudRate_Hz 1000000,  _latchTime_ns 1
[hyperiond LEDDEVICE]  ProviderSpi.cpp:49:open() _spiDataInvert 0,  _spiMode 0
[hyperiond EFFECTENGINE]  run effect Rainbow swirl on channel 0
[hyperiond HYPERION]  PriorityMuxer.cpp:158:registerInput() Register new input 'System/EFFECT' with priority 0 as inactive
[hyperiond HYPERION]  Inital foreground effect 'Rainbow swirl' started
[hyperiond EFFECTENGINE]  run effect Light clock on channel 254
[hyperiond HYPERION]  PriorityMuxer.cpp:158:registerInput() Register new input 'System/EFFECT' with priority 254 as inactive
[hyperiond HYPERION]  Inital background effect 'Light clock' started
[hyperiond HYPERION]  PriorityMuxer.cpp:158:registerInput() Register new input 'System/GRABBER' with priority 250 as inactive
[hyperiond ComponentRegister]  ComponentRegister.cpp:67:componentStateChanged() Framegrabber: enabled
[hyperiond BOBLIGHT]  BoblightServer.cpp:24:BoblightServer() Instance created
[hyperiond DAEMON]  Hyperion initialized
[hyperiond DAEMON]  set screen capture device to 'dispmanx'
[hyperiond DISPMANXGRABBER]  Grabber.cpp:33:setVideoMode() Set videomode to 0
[hyperiond DISPMANXGRABBER]  Display opened with resolution: 720x480
[hyperiond DISPMANXGRABBER]  Grabber.cpp:82:setWidthHeight() Set new width: 80, height: 45 for capture
[hyperiond DAEMON]  DISPMANX frame grabber created
[hyperiond V4L2:auto]  Grabber.cpp:33:setVideoMode() Set videomode to 0
[hyperiond V4L2:auto]  available V4L2 devices:

[hyperiond V4L2:auto]  search for usable video devices
[hyperiond V4L2:auto]  no usable device found
[hyperiond V4L2:auto]  Signal threshold set to: {12, 12, 12}
[hyperiond V4L2:auto]  Signal detection is now disabled
[hyperiond V4L2:auto]  Signal detection area set to: 0.250000,0.250000 x 0.750000,0.750000
[hyperiond DAEMON]  hyperiond.cpp:398:handleSettingsUpdate() V4L2 grabber created
[hyperiond JSONSERVER]  JsonServer.cpp:23:JsonServer() Created instance
[hyperiond JSONSERVER]  Started on port 19444
[hyperiond FLATBUFSERVER]  Started on port 19400
[hyperiond HYPERION]  PriorityMuxer.cpp:236:setInputImage() Priority 250 is now active
[hyperiond HYPERION]  PriorityMuxer.cpp:335:setCurrentTime() Set visible priority to 250
[hyperiond WEBSERVER]  WebServer.cpp:96:handleSettingsUpdate() Set document root to: :/webconfig
[hyperiond WEBSERVER]  Started on port 8090 name 'Hyperion Webserver'
[hyperiond HYPERION]  PriorityMuxer.cpp:236:setInputImage() Priority 254 is now active
[hyperiond HYPERION]  PriorityMuxer.cpp:236:setInputImage() Priority 0 is now active
[hyperiond HYPERION]  PriorityMuxer.cpp:335:setCurrentTime() Set visible priority to 0
[hyperiond WEBSOCKET]  WebSocketClient.cpp:34:WebSocketClient() New connection from ::ffff:<IP_ADDRESS>
[hyperiond EFFECTENGINE]  effect finished
[hyperiond HYPERION]  PriorityMuxer.cpp:295:setCurrentTime() Timeout clear for priority 0
[hyperiond HYPERION]  PriorityMuxer.cpp:335:setCurrentTime() Set visible priority to 250
[hyperiond JSONSERVER]  JsonServer.cpp:98:newConnection() New connection from: ::ffff:<IP_ADDRESS>
[hyperiond JSONSERVER]  JsonServer.cpp:111:closedConnection() Connection closed
[hyperiond JSONSERVER]  JsonServer.cpp:98:newConnection() New connection from: ::ffff:<IP_ADDRESS>
[hyperiond JSONSERVER]  JsonServer.cpp:111:closedConnection() Connection closed
[hyperiond JSONSERVER]  JsonServer.cpp:98:newConnection() New connection from: ::ffff:<IP_ADDRESS>
[hyperiond JSONCLIENTCONNECTION]  File does not exist: :schema-clearall
[hyperiond JSONSERVER]  JsonServer.cpp:111:closedConnection() Connection closed
[hyperiond JSONSERVER]  JsonServer.cpp:98:newConnection() New connection from: ::ffff:<IP_ADDRESS>
[hyperiond JSONCLIENTCONNECTION]  While validating schema against json data of 'JsonRpc@::ffff:<IP_ADDRESS>':[root].origin: missing member
[hyperiond JSONSERVER]  JsonServer.cpp:111:closedConnection() Connection closed
[hyperiond JSONSERVER]  JsonServer.cpp:98:newConnection() New connection from: ::ffff:<IP_ADDRESS>
[hyperiond JSONSERVER]  JsonServer.cpp:111:closedConnection() Connection closed
[hyperiond JSONSERVER]  JsonServer.cpp:98:newConnection() New connection from: ::ffff:<IP_ADDRESS>
[hyperiond JSONSERVER]  JsonServer.cpp:111:closedConnection() Connection closed
[hyperiond JSONSERVER]  JsonServer.cpp:98:newConnection() New connection from: ::ffff:<IP_ADDRESS>
[hyperiond JSONCLIENTCONNECTION]  File does not exist: :schema-clearall
[hyperiond JSONSERVER]  JsonServer.cpp:111:closedConnection() Connection closed
[hyperiond JSONSERVER]  JsonServer.cpp:98:newConnection() New connection from: ::ffff:<IP_ADDRESS>
[hyperiond JSONCLIENTCONNECTION]  While validating schema against json data of 'JsonRpc@::ffff:<IP_ADDRESS>':[root].origin: missing member
[hyperiond JSONSERVER]  JsonServer.cpp:111:closedConnection() Connection closed
[hyperiond JSONSERVER]  JsonServer.cpp:98:newConnection() New connection from: ::ffff:<IP_ADDRESS>
[hyperiond JSONSERVER]  JsonServer.cpp:111:closedConnection() Connection closed
[hyperiond JSONSERVER]  JsonServer.cpp:98:newConnection() New connection from: ::ffff:<IP_ADDRESS>
[hyperiond JSONCLIENTCONNECTION]  While validating schema against json data of 'JsonRpc@::ffff:<IP_ADDRESS>':[root].origin: missing member
[hyperiond JSONSERVER]  JsonServer.cpp:111:closedConnection() Connection closed
[hyperiond JSONSERVER]  JsonServer.cpp:98:newConnection() New connection from: ::ffff:<IP_ADDRESS>
[hyperiond JSONSERVER]  JsonServer.cpp:111:closedConnection() Connection closed
[hyperiond JSONSERVER]  JsonServer.cpp:98:newConnection() New connection from: ::ffff:<IP_ADDRESS>
[hyperiond JSONSERVER]  JsonServer.cpp:111:closedConnection() Connection closed
[hyperiond JSONSERVER]  JsonServer.cpp:98:newConnection() New connection from: ::ffff:<IP_ADDRESS>
[hyperiond JSONSERVER]  JsonServer.cpp:111:closedConnection() Connection closed
[hyperiond JSONSERVER]  JsonServer.cpp:98:newConnection() New connection from: ::ffff:<IP_ADDRESS>
[hyperiond JSONSERVER]  JsonServer.cpp:111:closedConnection() Connection closed
[hyperiond JSONSERVER]  JsonServer.cpp:98:newConnection() New connection from: ::ffff:<IP_ADDRESS>
[hyperiond JSONSERVER]  JsonServer.cpp:111:closedConnection() Connection closed
[hyperiond JSONSERVER]  JsonServer.cpp:98:newConnection() New connection from: ::ffff:<IP_ADDRESS>
[hyperiond JSONSERVER]  JsonServer.cpp:111:closedConnection() Connection closed
[hyperiond JSONSERVER]  JsonServer.cpp:98:newConnection() New connection from: ::ffff:<IP_ADDRESS>
[hyperiond JSONSERVER]  JsonServer.cpp:111:closedConnection() Connection closed
^C[hyperiond MAIN]  Application closed with code 0
[hyperiond FLATBUFSERVER]  Stopped
[hyperiond WEBSERVER]  Stopped Hyperion Webserver
[hyperiond Dispmanx]  GrabberWrapper.cpp:36:~GrabberWrapper() Close grabber: Dispmanx
[hyperiond V4L2:auto]  GrabberWrapper.cpp:36:~GrabberWrapper() Close grabber: V4L2:auto
[hyperiond DAEMON]  PythonInit.cpp:28:~PythonInit() Cleaning up Python interpreter
When i added that message before i was running it by typing hyperiond from /home/pi so that may have been an old installation
But im still having the same issues.
As some added information, i'm running it on a Pi Zero W and my home assistant instance is on <IP_ADDRESS>

Shame on me. :grimacing:  I forgot that my releases are compiled via docker. In docker script, of course, is the github address hyperion-project in it and not mine. I'll create you new ones right now. Excuse me, my mistake.

 In docker script, of course, is the github address hyperion-project in it and not mine. I'll create you new ones right now. Excuse me, my mistake.

No worries atall @Paulchen-Panther, you've been doing some great work on this, really pleased to see that the project is getting some attention :)

It seems they are the right releases.

Can you please run Hyperion with Debug switch for more information?
(hyperiond -d)

It seems they are the right releases.

Can you please run Hyperion with Debug switch for more information?
(hyperiond -d)

Here my output when running (hyperiond -d)

pi@Hyperion:~/hyperion/bin $ ./hyperiond -d
[hyperiond DAEMON]  PythonInit.cpp:20:PythonInit() Initializing Python interpreter
[hyperiond SettingsManager]  Selected configuration file: /home/pi/.hyperion/config/hyperion_main.json
[hyperiond SettingsManager]  SettingsManager.cpp:127:SettingsManager() Settings database initialized
[hyperiond EFFECTFILES]  36 effects loaded from directory :/effects/
[hyperiond EFFECTFILES]  19 effect schemas loaded from directory :/effects/schema/
[hyperiond EFFECTFILES]  0 effects loaded from directory /home/pi/.hyperion/custom-effects
[hyperiond SettingsManager]  Selected configuration file: /home/pi/.hyperion/config/hyperion_main.json
[hyperiond SettingsManager]  SettingsManager.cpp:72:SettingsManager() Settings database initialized
[hyperiond BLACKBORDER]  BlackBorderProcessor.cpp:65:handleSettingsUpdate() Set mode to: default
[hyperiond ComponentRegister]  ComponentRegister.cpp:67:componentStateChanged() Blackborder detector: enabled
[hyperiond ComponentRegister]  ComponentRegister.cpp:67:componentStateChanged() LED device: enabled
[hyperiond LEDDEVICE]  LedDevice 'apa102' configured.
[hyperiond ComponentRegister]  ComponentRegister.cpp:67:componentStateChanged() Smoothing: enabled
[hyperiond LEDDEVICE]  ProviderSpi.cpp:48:open() _baudRate_Hz 1000000,  _latchTime_ns 1
[hyperiond LEDDEVICE]  ProviderSpi.cpp:49:open() _spiDataInvert 0,  _spiMode 0
[hyperiond EFFECTENGINE]  run effect Rainbow swirl on channel 0
[hyperiond HYPERION]  PriorityMuxer.cpp:158:registerInput() Register new input 'System/EFFECT' with priority 0 as inactive
[hyperiond HYPERION]  Inital foreground effect 'Rainbow swirl' started
[hyperiond EFFECTENGINE]  run effect Waves with Color on channel 254
[hyperiond HYPERION]  PriorityMuxer.cpp:158:registerInput() Register new input 'System/EFFECT' with priority 254 as inactive
[hyperiond HYPERION]  Inital background effect 'Waves with Color' started
[hyperiond BOBLIGHT]  BoblightServer.cpp:24:BoblightServer() Instance created
[hyperiond DAEMON]  Hyperion initialized
[hyperiond DAEMON]  set screen capture device to 'dispmanx'
[hyperiond DISPMANXGRABBER]  Grabber.cpp:33:setVideoMode() Set videomode to 0
[hyperiond DISPMANXGRABBER]  Display opened with resolution: 720x480
[hyperiond DISPMANXGRABBER]  Grabber.cpp:82:setWidthHeight() Set new width: 80, height: 45 for capture
[hyperiond DAEMON]  DISPMANX frame grabber created
[hyperiond V4L2:auto]  Grabber.cpp:33:setVideoMode() Set videomode to 0
[hyperiond V4L2:auto]  available V4L2 devices:
[hyperiond V4L2:auto]  search for usable video devices
[hyperiond V4L2:auto]  no usable device found
[hyperiond V4L2:auto]  Signal threshold set to: {12, 12, 12}
[hyperiond V4L2:auto]  Signal detection is now disabled
[hyperiond V4L2:auto]  Signal detection area set to: 0.250000,0.250000 x 0.750000,0.750000
[hyperiond DAEMON]  hyperiond.cpp:398:handleSettingsUpdate() V4L2 grabber created
[hyperiond JSONSERVER]  JsonServer.cpp:23:JsonServer() Created instance
[hyperiond JSONSERVER]  Started on port 19444
[hyperiond FLATBUFSERVER]  Started on port 19400
[hyperiond WEBSERVER]  WebServer.cpp:96:handleSettingsUpdate() Set document root to: :/webconfig
[hyperiond WEBSERVER]  Started on port 8090 name 'Hyperion Webserver'
[hyperiond HYPERION]  PriorityMuxer.cpp:236:setInputImage() Priority 0 is now active
[hyperiond HYPERION]  PriorityMuxer.cpp:335:setCurrentTime() Set visible priority to 0
[hyperiond HYPERION]  PriorityMuxer.cpp:236:setInputImage() Priority 254 is now active
[hyperiond WEBSOCKET]  WebSocketClient.cpp:34:WebSocketClient() New connection from ::ffff:<IP_ADDRESS>
[hyperiond JSONSERVER]  JsonServer.cpp:98:newConnection() New connection from: ::ffff:<IP_ADDRESS>
[hyperiond JSONSERVER]  JsonServer.cpp:111:closedConnection() Connection closed
[hyperiond HYPERION]  PriorityMuxer.cpp:295:setCurrentTime() Timeout clear for priority 0
[hyperiond HYPERION]  PriorityMuxer.cpp:335:setCurrentTime() Set visible priority to 254
[hyperiond EFFECTENGINE]  effect finished
[hyperiond JSONSERVER]  JsonServer.cpp:98:newConnection() New connection from: ::ffff:<IP_ADDRESS>
[hyperiond JSONCLIENTCONNECTION]  File does not exist: :schema-clearall
[hyperiond JSONSERVER]  JsonServer.cpp:111:closedConnection() Connection closed
[hyperiond JSONSERVER]  JsonServer.cpp:98:newConnection() New connection from: ::ffff:<IP_ADDRESS>
[hyperiond JSONCLIENTCONNECTION]  While validating schema against json data of 'JsonRpc@::ffff:<IP_ADDRESS>':[root].origin: missing member
[hyperiond JSONSERVER]  JsonServer.cpp:111:closedConnection() Connection closed
[hyperiond JSONSERVER]  JsonServer.cpp:98:newConnection() New connection from: ::ffff:<IP_ADDRESS>
[hyperiond JSONSERVER]  JsonServer.cpp:111:closedConnection() Connection closed
[hyperiond JSONSERVER]  JsonServer.cpp:98:newConnection() New connection from: ::ffff:<IP_ADDRESS>
[hyperiond JSONSERVER]  JsonServer.cpp:111:closedConnection() Connection closed
^C[hyperiond MAIN]  Application closed with code 0
[hyperiond FLATBUFSERVER]  Stopped
[hyperiond WEBSERVER]  Stopped Hyperion Webserver
[hyperiond Dispmanx]  GrabberWrapper.cpp:36:~GrabberWrapper() Close grabber: Dispmanx
[hyperiond V4L2:auto]  GrabberWrapper.cpp:36:~GrabberWrapper() Close grabber: V4L2:auto
[hyperiond DAEMON]  PythonInit.cpp:28:~PythonInit() Cleaning up Python interpreter

New releases are created. The RPI build can take up to 30 minutes. The releases are then again at https://github.com/Paulchen-Panther/hyperion.ng/releases
Please excuse me again.

thank you again @Paulchen-Panther i'll check again in a bit 👍

@Joeboyc2 Releases are finished. Travis is very stressed today. :smile:

Hey @Paulchen-Panther,
That new build works just fine now 👍
There seems to be a small issue with the remote in HA (always shows the lights are on) but it works just fine now, i can turn the lights off and set set colours and effects
Thank you again for your work on this

There seems to be a small issue with the remote in HA (always shows the lights are on) but it works just fine now, i can turn the lights off and set set colours and effects

If you find out which command HA sends for the remote I can fix that

Looking at the python script for the component : https://github.com/home-assistant/home-assistant/blob/dev/homeassistant/components/light/hyperion.py
It looks like it sends a serverinfo command, then uses the response to determine if the lights are on, if an effect is running etc

@Joeboyc2 I'll check it. Thank you

@Joeboyc2
I have added the JSON-RPC server info activeEffects and activeLedColor
Travis builds are on the way.

That's working now, switches off and stays off :)
New issue though..... when i switch it back on, the lights turn on :+1 but the switch in home assistant dosen't stay on 👎
Ive added some extra debugging to the component, i'll see if i can grab the command it is sending

Then I'll wait for your feedback :grin:

Then I'll wait for your feedback 😁

Seems it i looking for 'RGB Value' to be in the info>activeLedColor 'serverinfo' response:

def update(self):
"""Get the lights status."""
# postpone the immediate state check for changes that take time
if self._skip_update:
self._skip_update = False
return
response = self.json_request({'command': 'serverinfo'})
if response:
# workaround for outdated Hyperion
if 'activeLedColor' not in response['info']:
self._rgb_color = self._default_color
self._rgb_mem = self._default_color
self._brightness = 255
self._icon = 'mdi:lightbulb'
self._effect = None
return
# Check if Hyperion is in ambilight mode trough an HDMI grabber
try:
active_priority = response['info']['priorities'][0]['priority']
if active_priority == self._hdmi_priority:
self._brightness = 255
self._rgb_color = [125, 125, 125]
self._icon = 'mdi:video-input-hdmi'
self._effect = 'HDMI'
return
except (KeyError, IndexError):
pass
led_color = response['info']['activeLedColor']
if not led_color or led_color[0]['RGB Value'] == [0, 0, 0]:
# Get the active effect
if response['info'].get('activeEffects'):
self._rgb_color = [175, 0, 255]
self._icon = 'mdi:lava-lamp'
try:
s_name = response['info']['activeEffects'][0]["script"]
s_name = s_name.split('/')[-1][:-3].split("-")[0]
self._effect = [x for x in self._effect_list
if s_name.lower() in x.lower()][0]
except (KeyError, IndexError):
self._effect = None
# Bulb off state
else:
self._rgb_color = [0, 0, 0]
self._icon = 'mdi:lightbulb'
self._effect = None
else:
# Get the RGB color
self._rgb_color = led_color[0]['RGB Value']
self._brightness = max(self._rgb_color)
self._rgb_mem = [int(round(float(x)*255/self._brightness))
for x in self._rgb_color]
self._icon = 'mdi:lightbulb'
self._effect = None

Attention error on my part. Will be fixed immediately
Original vs PR

@Paulchen-Panther i just spotted at actually, space missing in the returned value.
i'll update my local copy, see if that fixes it temporarily 👍

@RickDB
Implementing the forwarder took longer than I thought. You are welcome to test if you want and have time.

Hey @Paulchen-Panther,
That latest release has fixed all of my issues with HA now, Thank you once again for your work on this :+1

@RickDB READY TO MERGE? :interrobang: :smirk:
Or would anyone still want to test?

Merge it already !
What’s stopping us from “releasing” 1.0 ?

Ready to merge :D
Do we want to squash and merge or keep all additional 46 commits in git history?

My vote - keep the history.
Lots of changes here and could make untangling things easier later.
History is cheap !

ready for hyperion.ng 1.0! :-)

Merged 👍

can we provide the binarys from travis under the release section?

That would be sweet!

can we provide the binarys from travis under the release section?

That would be perfect as we don't have any easy installer like from legacy Hyperion up and running yet, Sourceforge was something @brindosch handled so for the time being we can host the binaries on github :)

we have to fix the travis builder first
https://github.com/Paulchen-Panther/hyperion.ng/blob/Release_Builder/.travis/travis_build.sh

build type has to release
we have to manage the version number now

@RickDB
Do you have the access data for travis (hyperion-project)?
Otherwise we will not be able to generate releases on GitHub.

@Paulchen-Panther restarted builds in Travis, not a lot of experience with it to be honest so might need some help setting up automatic builds.

There seems to be a problem with the old PRs. Can you still delete the related chaches?

Caches deleted and retrying builds :)

but no one updated the travis files here on github 😃

but no one updated the travis files here on github 😃

Details details :P

I think he wants to say that we should edit this file
https://github.com/hyperion-project/hyperion.ng/blob/master/.travis/travis_deploy.sh
to deploy the builds here on github instead on sourceforge (which is not working atm anyways)

I think the old PRs are not building because the owners of the PRs still have the old Travis files in their fork

The owners will have no choice but to recreate the PR

I think he wants to say that we should edit this file
https://github.com/hyperion-project/hyperion.ng/blob/master/.travis/travis_deploy.sh
to deploy the builds here on github instead on sourceforge (which is not working atm anyways)

First, the other prs must be corrected. then we can work on the travis_deploy.sh. :wink: :

Will notify them then 👍

I think he wants to say that we should edit this file
https://github.com/hyperion-project/hyperion.ng/blob/master/.travis/travis_deploy.sh
to deploy the builds here on github instead on sourceforge (which is not working atm anyways)

First, the other prs must be corrected. then we can work on the travis_deploy.sh. 😉 :

Why is it needed that the PRs will build? You mean open PRs?
Isn't it only important that our master will build?

Why is it needed that the PRs will build? You mean open PRs?
Isn't it only important that our master will build?

Klar ist es wichtig, das der Master Branch erzeugt wird.

Klar ist es wichtig, das der Master Branch erzeugt wird.

Ok, verstanden. Macht sinn, danke.

Only 2PRs left to fix, @Paulchen-Panther any ideas what we need to correct for #530 ?

Btw since you did a considerable amount of work on this would you like to get the team member status on Github and forum?

@RickDB I would feel honored.

I feel it's only right, you've done some great work @paulchen-panther

@Paulchen-Panther Awesome, team invite sent 👍

@RickDB Thank you very much! :smiley:

@Paulchen-Panther Is there a way to include the CoreElec patch from PR #534 without it conflicting with our other platforms?

@RickDB
Yes, it's possible. The global CMake variable ENABLE_AMLOGIC can be used to query whether hyperion is being build for the amlogic system and thus it is possible to add a bibliotek individually.

Hello @Paulchen-Panther,
thank you for all your hard work migrating also my stuff into it. So it isn't lost in .... space :)
I want to add a short comment on your comment :)

I will omit not fully functional changes such as the plugin system, the database,
the instance management and the API authentication for the moment.

The database itself seemed stable to me. With the signal/slot thing it should also work across threads. Actually you have seen a lot of segfaults for sure while saving/interacting. A reason is the direct access of the threaded webserver to the threaded Hyperion class which interrupts the Hyperion thread in a very dangerous way. You can see this at the stacktraces, it crashes everywhere with no reason (I had further issues with the LED device thread)
I implemented the database primarily to remove the need of config files. As a user wish was also to use multiple Hyperion instances at the same time (multiple led devices) with no hassle. After a lot of internal reorganizing the live apply of settings was simply part of it.
As i am a huge fan of addons and extensions, a database to save their state and settings was helpful. Especially as we are talking about multiple Hyperion instances which can run each addon on their own with own settings. That would be a mess without (You can handle this but...) :)
Was the api auth broken? Probably i didn't pushed the last changes to gh. The system itself is probably slighty oversized. On the other hand some default security might kill no one (for example just local network access to Hyperion by default)
I found a .gif of the token system

And the state of the webapp (created with Quasar (Vue)), a simple control interface with multi instance support. The coolest thing from my view was the SSDP server detection when compiled for Android. Sadly the overall support of minimum required Android versions is critcal and the performance in a browser is better(!!!)

Hallo @brindosch
Ein paar Punkte bezüglich deinem Projekt und Dir hätte ich auch noch.
Der erste Punkt geht an dich. Ist deine Anwesenheit von dauert oder nur ein Gast auftritt?
Der nächste Punkt betrifft deine Änderungen (Rework Branch). Es ist schön das du dich in dein Projekt so sehr vertieft hast aber es ist und bleibt nicht meins.  Es steht dir jederzeit frei es selber zu veröffentlichen. Mehr habe ich nicht zu sagen.

The database feature is indeed nice. But I remember that I was not able to compile your work because of a restriction in version compatibility with QT and your DB dirvers.
The Feature with the api is also nice and something we should add for security. I also think that the way you implemented the feature is good for us regarding the scope. I also think about setting a password for access the webui.
The Webapp is nice! Is there a way to test? This should not replace the webui right? It is more meant for an remote app, right?

Hallo @Paulchen-Panther ,
also das war keine Kritik an deiner Arbeit, sollte man das falsch verstanden haben.  Du hast bei den Plugins ja noch mir ausgeholfen und nun konnte man es nicht übernehmen, weil es einfach immer verzwickter wurde/ schlicht zuviel. Was coden angeht kann ich nichts versprechen. Vielleicht packt es mich mal wieder. Auch wenn ich es zuletzt doch etwas übertrieben habe :)
Ich hatte zwischendrin noch einen ekelhaften Datenverlust bei dem leider einiges zur Hyperion webpage und co verloren gegangen ist.
Du kannst aber gerne jederzeit einen Gedankenaustausch anstoßen oder nachfragen, sollte was unklar sein. Du hast dich da allerdings schon sehr rein gehangen (Docker,Azure,Travis und co), da gehört schon viel Zeit dazu bis es Resultate gibt (Ich denke mal ich kann das so sagen - als ebenfalls Laie) und so wirklich dankt es keiner. Ich fand das mit redPanther immer ganz toll, ich hatte nur kaum ein Wort verstanden was redPanther immer schrieb, als redPanther ging bin ich mehr in C++ eingestiegen, hab ich davor ja nur etwas am Javascript gebastelt. Alleine programmieren ist ok. Gedankenaustausche oder gegenseitig nachfragen was so Sache ist, dient aber der zusätzlichen Unterhaltung und motiviert. (Damit ist nicht gemeint: Wie lange noch?) Zumindest sehe ich das so.
So, genug geplappert
@b1rdhous3
You might need another qt lib which wasn't installed. I noticed that also for the .deb package.
Regarding the webapp:
Yes, it is not a full configuration interface. But it would look very modern that way :)
It was a play around with Quasar and Vue. I had fun because the speed of results and debug possibility (with an additional Vue browser extension) is very enjoyable. Compared with pure Javascript or "simplicity extensions" like JQuery.
I copied the app to the hyperion-project server. But due to nginx settings it won't work, but i didn't contacted @RickDB. The solution is for sure very simple to adapt the settings for a vue app in a subfolder.
But the app was for the rework branch and it also needs a Qusasar update. They evolved alot during the year(s)
And i don't know how the current Android state is :)
All in all. The webapp was much more stable than my rework branch :laughing: Probably i should start there :)

With our new server nginx is running with kaltura modifications which can a bit shitty to deal with but know that @WoLpH wants to run vanilla nginx on it again at some point, can of course make any config changes if needed to it or add additional domains if  you want as we have plenty of resources on it :)
@brindosch  We did do some cleaning in the user rights area a while back (forum and github) for inactive admins, if you want to work on Hyperion again just let me know and will restore those 👍

@brindosch Ich hätte mal eine frage bezüglich der HardwareLedCount Angabe in der config. Für was ist diese Angabe da? Es gibt doch schon ein LED Array in der Config. Warum dann noch mal dieser Wert?

 Das war von jemandem ein Anliegen und redPanther hat es so integriert. Über den Nutzen dieses sehr speziellen falls darf gestritten werden.
Ist der hardwareLedCount kleiner als der echte LED count wird es ignoriert.

 So ähnlich dachte ich mir das. Entweder hat es nie oder nur kurz funktioniert. Es verhält sich nämlich genau andersrum. Ist der Wert größer, schmiert Hyperion ab und ist der Wert kleiner oder gleich startet Hyperion.

Wo crasht es denn spezifisch? Hab im code nichts gesehen, aber läuft wahrscheinlich irgendwo über den vector index raus? In jedem Fall Hyperion::update() oder eine Initialisierung/settings update das iwas zerhaut

Also wie gesagt, wenn die Anzahl der LEDs größer ist im hardwareLedCount chrasht es.
Hier mal die Fehlermeldung:
[hyperiond EFFECTFILES]  36 effects loaded from directory :/effects/
[hyperiond EFFECTFILES]  19 effect schemas loaded from directory :/effects/schema/
[hyperiond EFFECTFILES]  0 effects loaded from directory /home/paulchen/.hyperion/custom-effects
[hyperiond SettingsManager]  Selected configuration file: /home/paulchen/.hyperion/config/hyperion_main.json
[hyperiond SettingsManager]  SettingsManager.cpp:73:SettingsManager() Settings database initialized
[hyperiond BLACKBORDER]  BlackBorderProcessor.cpp:65:handleSettingsUpdate() Set mode to: default
[hyperiond ComponentRegister]  ComponentRegister.cpp:67:componentStateChanged() Blackborder detector: enabled
[hyperiond FLATBUFCONNECTION]  Connecting to Hyperion: <IP_ADDRESS>:19401
[hyperiond ComponentRegister]  ComponentRegister.cpp:67:componentStateChanged() LED device: enabled
[hyperiond LEDDEVICE]  latchTime(0) is bigger/equal rewriteTime(0)
[hyperiond LEDDEVICE]  LedDevice 'fadecandy' configured.
[hyperiond ComponentRegister]  ComponentRegister.cpp:67:componentStateChanged() Smoothing: enabled
[hyperiond EFFECTENGINE]  run effect Rainbow swirl fast on channel 0
[hyperiond HYPERION]  PriorityMuxer.cpp:153:registerInput() Register new input 'System/EFFECT' with priority 0 as inactive
[hyperiond HYPERION]  Inital foreground effect 'Rainbow swirl fast' started
[hyperiond EFFECTENGINE]  run effect Warm mood blobs on channel 254
[hyperiond HYPERION]  PriorityMuxer.cpp:153:registerInput() Register new input 'System/EFFECT' with priority 254 as inactive
[hyperiond HYPERION]  Inital background effect 'Warm mood blobs' started
[hyperiond HYPERION]  PriorityMuxer.cpp:153:registerInput() Register new input 'System/GRABBER' with priority 250 as inactive
[hyperiond ComponentRegister]  ComponentRegister.cpp:67:componentStateChanged() Framegrabber: enabled
[hyperiond BOBLIGHT]  BoblightServer.cpp:24:BoblightServer() Instance created
[hyperiond DAEMON]  Hyperion initialized
[hyperiond DAEMON]  set screen capture device to 'x11'
[hyperiond X11GRABBER]  Grabber.cpp:33:setVideoMode() Set videomode to 0
[hyperiond DAEMON]  X11 grabber created
[hyperiond V4L2:auto]  Grabber.cpp:33:setVideoMode() Set videomode to 0
[hyperiond V4L2:auto]  Signal threshold set to: {12, 12, 12}
[hyperiond V4L2:auto]  Signal detection is now disabled
[hyperiond V4L2:auto]  Signal detection area set to: 0.250000,0.250000 x 0.750000,0.750000
[hyperiond DAEMON]  hyperiond.cpp:412:handleSettingsUpdate() V4L2 grabber created
[hyperiond JSONSERVER]  JsonServer.cpp:23:JsonServer() Created instance
[hyperiond JSONSERVER]  Started on port 19444
[hyperiond MAIN]  start systray
[hyperiond PROTOSERVER]  Started on port 19445
[hyperiond FLATBUFSERVER]  Started on port 19400
[hyperiond WEBSERVER]  WebServer.cpp:96:handleSettingsUpdate() Set document root to: :/webconfig
[hyperiond WEBSERVER]  Started on port 8090 name 'Hyperion Webserver'
QObject: Cannot create children for a parent that is in a different thread.
(Parent is QTcpSocket(0xf244e0), parent's thread is QThread(0xbd5620), current thread is QThread(0xf1fd30)
QObject: Cannot create children for a parent that is in a different thread.
(Parent is QTcpSocket(0xf244e0), parent's thread is QThread(0xbd5620), current thread is QThread(0xf1fd30)
[hyperiond X11GRABBER]  Update of screen resolution: [0x0]  to [1920x1080]
[hyperiond X11GRABBER]  Using XRender for grabbing
[hyperiond X11GRABBER]  Update output image resolution: [0x0]  to [240x135]
[hyperiond X11GRABBER]  Capture interface is now enabled
[hyperiond HYPERION]  PriorityMuxer.cpp:231:setInputImage() Priority 250 is now active
[hyperiond HYPERION]  PriorityMuxer.cpp:330:setCurrentTime() Set visible priority to 250
[hyperiond HYPERION]  ImageToLedsMap.h:93:getMeanLedColor() ImageToLedsMap: colorsMap.size != ledColors.size -> 166 != 167
Qt has caught an exception thrown from an event handler. Throwing
exceptions from an event handler is not supported in Qt. You must
reimplement QApplication::notify() and catch all exceptions there.
[hyperiond MAIN]  Hyperion aborted:
vector::_M_range_check: __n (which is 166) >= this->size() (which is 166)
[hyperiond FLATBUFSERVER]  Stopped
[hyperiond PROTOSERVER]  Stopped
[hyperiond WEBSERVER]  Stopped Hyperion Webserver
[hyperiond V4L2:auto]  GrabberWrapper.cpp:36:~GrabberWrapper() Close grabber: V4L2:auto
QObject::killTimer: Timers cannot be stopped from another thread
QObject::~QObject: Timers cannot be stopped from another thread
QSocketNotifier: Socket notifiers cannot be enabled or disabled from another thread
*** Error in `./hyperiond': double free or corruption (fasttop): 0x00007fd82c002e10 ***
Abgesehen davon gibt es auch eine Fehler im WebUI. Wenn der Device type geändert wurde und man startet Hyperion neu, wird immer "file" als type angezeigt. Also Fehler hat NG noch genug.

Als wäre es erst gestern gewesen. Die Asserts hab ich rausgeworfen und gegen debug statements ersetzt.  Ich hab den Fehler entweder gefunden oder er ist noch da.
Hier der code: https://github.com/brindosch/hyperion.ngBeta/blob/rework/include/hyperion/ImageToLedsMap.h#L90
Achtung: Da sind 2 asserts drin.
Gut wäre es wohl du lässt dir in der Hyperion::update() mal die vector size(s) ausgeben, vielleicht sieht man da was komisches. Eventuell fehlt da ein vector update(), welches nicht auf die ImageToLeds übertragen wird
Was das file device angeht. Ich hab jetzt nichts gesehen was auf einen Fehler offenbart.
Ich hab gesehen du hast das signal vom settingsManager auf config Änderung angezapft. In der API ist aber noch der reload drin. Fehlt noch was zur vollständigen live Anwendung der Einstellungen?

Kann sein das du dich da vertan hast? im assert ist es == und im debug statment ist es !=  ???

ImageToLedsMap.h:93:getMeanLedColor()
Passt schon, ist eine visuelle Auswertung. Ich weiß, man ist immer wieder verblüfft, wenn man von C/++ mehr bekommt als Datensalat - man kennt es einfach nicht anders... :)

Passt schon, ist eine visuelle Auswertung. Ich weiß, man ist immer wieder verblüfft, wenn man von C/++ mehr bekommt als Datensalat - man kennt es einfach nicht anders... :)

Verstehe ich nicht. Sorry.
Ich habe 166 Leds. (Siehe oben) Wenn ich 167 im hardwareLedCount angeben dann passiert folgendes:
Du vergleichst colorsMap (166) mit ledColors (167) auf Ungleichheit, gibst wenn beide werte ungleich sind ein debug log aus und kehrst mit einem return zurück. ?!?!?!?!?

 Die Frage ist, tritt das einmal auf oder immer.
Da der debug output in meinem code noch drin ist, kann es kein dauerhaftes Problem gewesen sein (Sonst wäre das log ja immer zugespamt).
Ich wollte nur sagen, versuch den assert raus zu machen und so ggf besser das Problem einkreisen zu können.

So, ich habe den Fehler gefunden.
In der Hyperion.cpp:534:update() wurde geschrieben das der "ledbuffer" vector wieder zurück gesetzt werden muss. Diese Vorgehensweise verstehe ich auch. Den Absturzt verursacht die "Color byte order schleife in Zeile 581", weil  der ledbuffer vector im zweiten Durchgang NICHT zurück gesetzt wird. Es wird geprüft ob der _hwLedCount größer ist als der ledbuffer. Das ist er auch im ersten Durchlauf so, bis er in Zeile 610 angeglichen wird.

Glückwunsch, vielleicht wäre es sinnvoll, dass komplett aus Hyperion::update zu werfen und im handleSettingsUpdate einmalig zu verarbeiten.
Was hältst du davon?


Examples please!

Could you please provide examples?  Also it would be great to just do this at the time of resource creation instead of a follow up Azure CLI call.  Thanks.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: e9984dc8-c276-354c-6c40-db77fad8e7cc
Version Independent ID: f785cf84-06f2-946e-c8c6-c2a227394335
Content: az tag
Content Source: src/command_modules/azure-cli-resource/azure/cli/command_modules/resource/_help.py
Service: azure-resource-manager
GitHub Login: @rloutlaw
Microsoft Alias: routlaw

Nearly all create commands support the --tags argument to do this at creation time.

Awesome!  I will check that out.  Thanks.

@kristianjaeger, what command(s) exactly would you like to see examples for or what type of examples would you like?

@adewaleo This was a long time ago.  I believe I was looking for ways to tags resources as I was creating them via the Azure CLI on OS X.
One thing I've noticed, in the past at least, is that the PowerShell Azure CLI seems to be better documented than the OS X / *nix CLI.  Thanks.

@kristianjaeger.  How do you find Powershell's documentation to be better, so we can improve the CLI's docs?
az resource tag has an example on how to tag resources. Also most create commands include --tags for tagging resources on resource creation. e.g. az vm create, az storage account create and az network vnet create.

@adewaleo Thanks. As I mentioned as of 10/24/18 when I filed this issue.  There were more examples for using Azure CLI with Powershell rather than Bash on OS X.  If that's not the case now then your teams should know. If the *nix CLI docs / examples are better now that's great. Cheers.

It's interesting you say that, because we've gotten some feedback that some of our commands tend to be more bash-oriented rather that powershell/cmd-oriented.
Seeing there aren't any directly actionable items concerning this issue. I will go ahead and close it. Thanks @kristianjaeger


Feat:adding a new page to display all contributors✨

I want to add a page to showcase all the contributors of this website.
@iamparas0 can you assign me this issue.

@iamparas0 can i work on this aswell


test: align set_schema_test.lua with sort_order feature

The pull request tarantool/tarantool#8915 implements the key part sort order, which introduces a new sort_order field of index parts. This field is unexpected for the test and so it fails [1].
This patch fixes the test by allowing to have this part property.

https://github.com/tarantool/tarantool/actions/runs/6172230004/job/16752337479

Is it ready for review?

@DifferentialOrange, shure.


Reorganize existing tutorials, but ensure existing links are preserved.

Done when: Existing tutorials under http://projecthydra.github.io/training/ are not front and center on the homepage (like they currently are), but WITHOUT CHANGING ANY OF THE LINKS!!

Issue addressing maintaining current training links:  #27


Determine if old enough to vote in one line

This removes the need for the MIN_VOTER_AGE variable, and combines the two lines into one, improving readability.

Better yet: weight = float(age >= settings.MIN_VOTER_AGE)

Plasma2.0

interestingly, if you're using "split diff", it's harder to conceal the change:
split diff:

unified diff:

👍 looks good

@Smittyvb with proper timing you probably could've done this :)


cmd/render: allow for '=' in config values

I think we'd have to invent our own quoting in that case. The '=' isn't a shell primitive, just something we do ourselves to the full argument. Could perhaps use url encoding, but I think this is the simplest and most usable way to go about it.


gamesPlayed not working?

I have tried every method mentioned in the wiki but haven't been able to get it to work properly. The only method that works is specifying a "non-Steam game", otherwise nothing happens. Below are the methods I tried:
gamesPlayed(730, true);
gamesPlayed([730], true);
gamesPlayed({ game_id: 730, game_extra_info: 'Counter Strike: Global Offensive' }, true);
gamesPlayed([{ game_id: 730, game_extra_info: 'Counter Strike: Global Offensive' }], true);

This is the only one that seems to work:
gamesPlayed(['Counter Strike Global Offensive'], true);

that doesnt work for me too. So, setPersona(SteamUser.EPersonaState.Online) too.


Theming + tailwind: guide and example are different

from Discord:

hey! In the theming guide (https://svelteflow.dev/learn/guides/theming) we're instructed to import Tailwinds entry point after Svelte Flows base styles, however, in the Tailwind styling example (https://svelteflow.dev/examples/styling/tailwind) Tailwinds entry point is imported before Svelte Flows base styles. Both ways seem to work fine though, just wanted to let you know and ask if there's anything I should be aware of here?

Tailwind doesn't seem to be installing correctly on Stackblitz on this example as well.


messages.list() "max" [403] Forbidden Error with bot account

We are now using webexteamssdk to continuously receive messages with a bot account(the access token will not be expired).  It works well at the beginning of receiving messages, But [403] Forbidden Error occurs when the num of mentioned messages increases to be more than 50.
I've learned from a closed issue"All messages in a room always returned by messages.list() method #50" that max parameter specifies the maximum number of items per page ("page size"). It works well with my own account access token with max=5. I don't know why the max can not work in bot account with mentioned people limit.
My example code to receive messages:
from webexteamssdk import WebexTeamsAPI
token = "<token>"
my_room = "<room_id>"
api = WebexTeamsAPI(access_token=token)
messages = api.messages.list(roomId=my_room, mentionedPeople="me")
id = 0
for message in messages:
    id = id + 1
    print(message)
    print(id)

Some logs of my test:
No set of max -> webexteamssdk.exceptions.ApiError: [403] Forbidden
max = 0 - retrieved "mentionedPeople" = 50 -> webexteamssdk.exceptions.ApiError: [403] Forbidden
max=50 - retrieved "mentionedPeople" = 50 -> webexteamssdk.exceptions.ApiError: [403] Forbidden
max=55 - retrieved "mentionedPeople" = 55 -> webexteamssdk.exceptions.ApiError: [403] Forbidden
max=58 - retrieved "mentionedPeople" = 58 -> webexteamssdk.exceptions.ApiError: [403] Forbidden
max=59 - retrieved "mentionedPeople" = 58 -> no error [403]
max=100 - retrieved "mentionedPeople" = 58 -> no error [403]
max=101 - webexteamssdk.exceptions.ApiError: [400] Bad Request - Failed to retrieve rooms

@yinghyu , so the use case here is that you are polling Webex Teams (using the bot's token) for messages where a bot is mentioned, and you are reporting that you are getting 403 - Forbidden Error when you try to retrieve > 50 messages.
Have you tried making this same request using the interactive API docs and/or a REST client like Postman?

@yinghyu I am closing this issue as it doesn't look like an issue with the SDK.  If you are still experiencing this issue, I recommend reproducing the issue using another API client (like Postman).  If you encounter the problem with multiple clients, which I suspect will be the case, then I recommend opening a case with Webex Developer Support.


Does goctl support generating Helm? Is there a corresponding plan?

as shown in the question.

Helm 不是主流配置方式，没必要支持吧！现在主流配置要要么yaml或者crd+operator。
Helm is not the mainstream configuration, there is no need to support it! Now the dominant configuration is either YAML or CRD + Operator

Helm 不是主流配置方式，没必要支持吧！现在主流配置要要么yaml或者crd+operator。 Helm is not the mainstream configuration, there is no need to support it! Now the dominant configuration is either YAML or CRD + Operator

好吧，我试试自己实现吧
Well, I'll try to implement it


Agent class

Class for an Agent.
To test: python -m examples.agent_example
A good question to ask for testing is "What were the last 10 checking account transactions for Constance Faust?"
Overview
Prompt
The Prompt class implements a consistent interface for constructing a prompt. It can contain commands, examples, function_resources, data_resources, constraints, and completed_steps.
Agent
The Agent takes as input an AgentName for the Agent, a system_prompt that acts as a set of instructions, a list of resources (paths to SQLite databases) and a list of modules (python modules) which act as tools. The Agent first creates a workspace to save data to at .agents/AgentName/. The resources and modules are summarized and saved to .agents/AgentName/resources.yaml and .agents/AgentName/tools.yaml respectively. When a user gives a command, these summaries are inserted into the prompt such that the Agent can draw from them as needed.
The UNLQ_GPT_BASE_PROMPT in src/neosophia/agents/system_prompts.py instructs the agent to operate in a step by step fashion. This is important because a function that was executed in a certain step can return data that will be used in subsequent steps. The data that is returned from function calls is saved in function_resources and is added to the prompt. When the Agent generates a step, it outputs Thoughts, Resource, Function, Parameters and Returned. This is all added to the prompt under the completed_steps section, so the Agent is able to determine what's already been completed.
When the Agent determines it has enough information to answer the question, it will call extract_answer.
Improvements

Only insert tools and resources needed for the current task into the prompt instead of everything
Summarize previous steps taken to reduce token count
Be able to insert a command after a step has been taken to fix or change something
Modify agent such that it's easily added into a Gradio app

Right now it's printing the generated prompt and the response from the LLM — we can change that as needed.

This is very good work.  It's a really nice demonstration of a very general agent built on a broad foundation.
I think some of the elements, like resources and tools, could be factored out into their own first-class citizens.  That's not trivial work, though, so we should tackle those under separate efforts.
I left a few other comments (some of which i now see listed under "improvements" above) and agree with Ben's comments.


Variable explorer should update all at once

There has been some feedback about the variable explorer being slow.
The variable explorer isn't really slow, it's just made to be async and interruptable.
We could change this such that we compute all the variables the way we do now, but then don't refresh the screen (or put loading) until we have all of the data.

Doesn't seem worth keeping this old bug around for variable view perf unless it's getting votes / new customer complaints.


Bug: Facebook

Facebook Dark Mode is no longer working. The Login screen is dark, but on the messages screen only the search messenger field is dark.

Duplicate of #44, this is already fixed!

@madsmtm Thanks for the link, unfortunately, it seems to have to be happening again. I've completed the readme steps including toggling dark mode and reloading Ferdi/service with no luck. This is occurring on Ferdi 5.5.0 by the way.

Did you try the newest version?

@madsmtm scratch that didn't see the commit from 14 hours ago. Working now thanks!


Remove """ as in selection.md for example

I think you can just use
    selection_function(fitness, selection_number, rng)

Implements a selection function.
...
...
```

or I think there is a possibility to refer to your docstring in the original code and you don't have to write it twice (like in crossover.md)

Docstrings are hard copied instead of automatically posted there again via the auto docs functions

This is not an issue. This function is not in the code. It is just a template to show how the selection, crossover and mutation function can be implemented.


Update colours

Update colour palette to include new colours from WSC

Need to align on colour naming convention first

New Colours:
berry - #F69C8B
birch - #FBF5EB
blueball - #4E85BB
forestFog - #EBEFED
goldenrod - #F4BC55
lichen - #DBF5ED
lilyGreen - #B6EBDB
mint - #92E0C9
moss - #81A0A2
parkGreen - #034045
pine - #11784D
poppy - #C2352B
seafoam - #83C7B2
softSandBrown - #F4E8D9
spruce - #056F78
Updated:
birch - previously Named offWhite
poppy - previously red


Add display of internal circuits for ForLoopOps and SwitchCaseOps to mpl circuit drawer

Summary
This PR adds display of the circuits inside ForLoopOps and SwitchCaseOps to the mpl circuit drawer
Details and comments
This PR should be merged after #10096 and #10170. This adds the display of ForLoopOps and SwitchCaseOps in the same manner as was done in #10170 for IfElseOps and WhileLoopOps. This also fixes a bug in how gates were folding introduced in #10170.

[ ] Add tests
[ ] Release note

qr = QuantumRegister(4, "q")
cr = ClassicalRegister(3, "cr")
qc = QuantumCircuit(qr, cr)
qc.h(0)
with qc.for_loop((2, 4, 8, 16)) as i:
    qc.h(0)
    qc.h(1)
    qc.cx(0, 1)
    qc.rx(pi/i, 1)
    qc.measure(0, 0)
    qc.measure(1, 1)
    with qc.if_test((cr[2], 1)):
        qc.z(0)
qc.draw(style={"showindex": True})

from qiskit.circuit import QuantumCircuit, ClassicalRegister, QuantumRegister
qreg = QuantumRegister(3)
creg = ClassicalRegister(3)
qc = QuantumCircuit(qreg, creg)
qc.h([0, 1, 2])
qc.measure([0, 1, 2], [0, 1, 2])

with qc.switch(creg) as case:
    with case(0):
        qc.x(0)
    with case(1):
        qc.z(1)
        qc.z(1)
    with case(2, 3, 4, 5, 6):
        qc.y(0)
        qc.y(0)
        qc.y(0)
    with case(case.DEFAULT):
        qc.cx(0, 1)
qc.h(0)
qc.draw(style={"showindex": True})

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

168 of 391 (42.97%)  changed or added relevant lines in 2 files are covered.
19 unchanged lines in 8 files lost coverage.
Overall coverage decreased (-0.1%) to 85.752%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

qiskit/visualization/circuit/_utils.py
10
11
90.91%

qiskit/visualization/circuit/matplotlib.py
158
380
41.58%

Files with Coverage Reduction
New Missed Lines
%

crates/accelerate/src/sabre_swap/mod.rs
1
99.77%

crates/qasm2/src/expr.rs
1
93.76%

qiskit/circuit/tools/pi_check.py
1
91.23%

qiskit/transpiler/passes/synthesis/unitary_synthesis.py
1
90.39%

crates/qasm2/src/lex.rs
2
91.14%

qiskit/pulse/library/waveform.py
3
93.75%

qiskit/visualization/circuit/matplotlib.py
4
48.21%

crates/qasm2/src/parse.rs
6
96.65%

Totals

Change from base Build<PHONE_NUMBER>:
-0.1%

Covered Lines:
71219

Relevant Lines:
83052

💛  - Coveralls

I added a test using textbook style in order to test the bug I found with text color.


[Snyk] Upgrade html-snapshots from 1.5.1 to 1.6.0

This PR was automatically created by Snyk using the credentials of a real user.Snyk has created this PR to upgrade html-snapshots from 1.5.1 to 1.6.0.
:information_source: Keep your dependencies up-to-date. This makes it easier to fix existing vulnerabilities and to more quickly identify and fix newly disclosed vulnerabilities when they affect your project.

The recommended version is 1 version ahead of your current version.
The recommended version was released 7 days ago, on 2022-12-16.

Release notes

Package name: html-snapshots

1.6.0 - 2022-12-16puppeteer update, devdeps updates

1.5.1 - 2022-12-06examples, devdeps updates

    from html-snapshots GitHub release notes

Commit messages

Package name: html-snapshots

cb55f7b Merge pull request #220 from localnerve/rc-1.6.0
430de07 @ 1.6.0 - puppeteer update, devdeps updates
be4dea4 Merge pull request #219 from localnerve/snyk-upgrade-3e7bf74fd26cf10373cbf00e42c4f72f
818ddf8 fix: upgrade html-snapshots from 1.5.0 to 1.5.1
336f60b Merge pull request #218 from localnerve/snyk-upgrade-df60a764f105825fecb29d7b88e2d3a8
031cf1d fix: upgrade html-snapshots from 1.5.0 to 1.5.1
fca6d41 Merge pull request #216 from localnerve/snyk-upgrade-7271f706ccf3ce2454fda9fa371f554b
c9505f8 fix: upgrade html-snapshots from 1.5.0 to 1.5.1
1617c27 update examples deps
25d1fab update examples deps
cea2e15 Update history.md
de9f703 Merge pull request #215 from localnerve/dependabot/npm_and_yarn/examples/debug-phantomjs/qs-6.5.3
d146fa3 chore(deps): bump qs from 6.5.2 to 6.5.3 in /examples/debug-phantomjs
81f0974 Merge pull request #214 from localnerve/snyk-upgrade-3bb3c90f2434ebec67ab9433d27e8603
85da3d2 fix: upgrade html-snapshots from 1.5.0 to 1.5.1

Compare

Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open upgrade PRs.
For more information:
🧐 View latest project report
🛠 Adjust upgrade PR settings
🔕 Ignore this dependency or unsubscribe from future upgrade PRs

Coverage: 99.242%. Remained the same when pulling 154be0fe2c596f6f291f47535bd4eb56ee708e4a on snyk-upgrade-211061791f25c6ace1f702d7ffe12c21 into 47afd7ac348afa0a11dd7659da7bd84505eccd9c on master.


Do not require rekor and fulcio data

Make rekor and fulcio params not mandatory when creating a new instance of the cosign::Client.
This fixes issue #17

Thanks for all the reviews


[FEATURE REQUEST]: Integrate BingChat, using Sydney.py

Found this python library, and was wondering if it would be possible to integrate it. Would be happy to take a crack at it if the dev is okay with me forking the project.
Python library:  https://github.com/vsakkas/sydney.py

Hi @emkay5771! That looks very interesting, I've put it on my list for this weekend to take a look 👀! Thanks for sharing.
I would suggest creating a separate plugin for this if and when it will be incorporated though. This plugin focuses mainly on ChatGPT and the use of your own API keys, allowing for more privacy. I'm also planning to add support for the ChatGPT plugins when I get access to them.
However, if the library you have shared works well and I have some time on my calendar, I would definitely be up for creating a Plugin like that or supporting you in creating one?

Re: the privacy aspect, the Sydney API, based on my cursory glancing, appears to use your personal cookie (retrieved by the user from Developer Settings) to access the chatbot, which should be able to be set in Flow Settings.
Let me know when you get the chance to take a look into it, and if you'd like, I can either try to do it, or more than happy to assist you where needed.

So I've looked at the code of Sydney.py. It seems to use a WebSocket connection with BingChat to run the conversation. If we would want to make use of this I think the best way to go would be to set up a single connection, send and receive the prompts and then close it again. Basically like a regular API call.
I'm interested in seeing the possibilities but also have limited availability in the upcoming period. So if you are eager to get started, it might be best to give it a shot yourself. Of course, I can share some of the learnings I have with creating this plugin to help you get started. Otherwise, I can pick it up later. Let me know what you prefer!

Closing this issue since I currently unfortunately don't have time to pick this up. Feel free to create a PR to add the functionality. Thank you for your suggestion!


Option to use property bag for calling GET operations in Angular

When calling a POST request of a WebAPI you can use a class to represent the payload, and the typescript client will generate an interface or class for it. This obviously means the parameter order doesn't matter. You call it like this from Angular:
this.thingClient.postNewThing( { id: 'all', thingName: 'Dog' } )

I want to be able to do this with GET with the Angular client, however I don't see a way to do so that doesn't require me to keep the list of parameters in sync. If I use a helper payload object with a GET then the client tries to send it in the body which is no good.
I'm using [FromQuery] in .NET API method - which currently generates a signature like this in the typescript client - all parameters in an ordered list:
ThingClient.searchThings(parameter1: string, parameter2: string, parameter3:string);

Obviously I have to call these in the correct order, or it will break. This is fine for just a couple parameters, but can be dangerous if you make sweeping changes to your API. What I'd like to do is use an interface like this when calling the API - so I can put the parameters in any order and the compiler will tell me if the name of anything changes.
this.thingClient.getThings({ parameter2: '2', parameter1: '111', parameter3: '333');

This would be a very simple implementation - driven by a flag - and the new generated code would look like this:
// use options property bag, with optional parameters as appropriate
getThings(options: { parameter1?: string, parameter2?: string, parameter3?: string}): Observable<ThingReport | null>
{
     // construct the URL from non empty parameters
     if (options.parameter1!== undefined) { url_ += "parameter1="... }
     }

You wouldn't even need to define a new interface explicitly, the parameters just get put into a 'bag' and then the URL is constructed from whatever values aren't undefined.
I think this would be a new option because generating two signatures would be problematic. I would much prefer this over the ordered parameter list.

It makes sense to have this option, but it should be completely typed not just an any property bag...

… and it should be behind a new setting so that we dont break existing users.

@RicoSuter We absolutely need this and I'm happy to implement it but its hard to understand where to start. Could you provide a pointer? It looks like this cannot be handled by updating the typescript templates alone as the properties get injected by outside code.
Where in the code does the generation of the properties happen? Once this is changed it should be no problem to adjust the templates (as existing code would be reused with minor modifications).
Las step would be to provide a config option to make this optional, again I would be grateful for pointers where this sits in the codebase.

Ok after intial review here are some observations:

When using [FromQuery] + a complex typed input the type name of the complex type is NOT included in the open api specification (which makes sense)
Assuming that generation can only happend with what is in the specification information the first learning is that we either need to use an anonymous type (with typed properties) or generate some name (I'm currently leaning towards the first)
I see a two phased approach to implement this within nswag

at first template only (we will do the angular one first)

hard code (no option) that all get requests (identify based on http method on operation) get wrapped into an anonymous type (update generation code of method signature  e.g AngularClient.liquid), say into a variable named requestData
hard code (no option) Client.RequestUrl.liquid to prepend all variable names with requestData.
upside, no work needed in .NET projects
using not very accessible to others

with changes in .Net code

extend operation (? not sure if this is the right place) with a flag like QueryParametersAsObject
extend the above templates to react based on value of this newly created flag

Am I on the right track here?

Here is a REALLY simple version of wrapping get/head parameters into property bag when there are query string parameters. Templates can be found here:
https://github.com/ntziolis/NSwag/tree/b49d0fdf7cd81d60f38a35baed0d1b9dd673a0cc/src/NSwag.CodeGeneration.TypeScript/Templates
Some notes:

Angular Only (but should be very easy to adapt as its only a single line that is angular specific)
The conditions for wrapping are (Get or Head) AND has query parameters
If so it assumes ALL parameters are query parameters and it wraps them into an object

This suffices for our use case as we don't mix path parameters and query params. But I'll be working on making this more solid moving forward.

The solution has since been extended to only wrap query parameters:
https://github.com/ntziolis/NSwag/tree/master/src/NSwag.CodeGeneration.TypeScript/Templates
I did run into some issues that caused this to take much longer than necessary, which should be called out in the template section of the documentation:

NSwag uses DotLiquid and DOtLiquid does NOT many of the documented liquid keywords
DotLiquid does NOT support

the liquid where filter:
assign nonQueryParameters = operation.Parameters | where: "IsQuery", false
assigning a variable with the result of a bool condition:
assign hasWrappedQueryParameter = operation.IsGetOrHead and operation.QueryParameters.size > 0


Issue with next-routes in production mode on iOS 9.3.

I am running next-routes on nextjs 6, great package! Unfortunately I am having an issue I cannot seem to find the answer for. I had several users complain that the app was not working properly on their apple devices. After investigating I noticed that on ios 9.3 (have not tested other versions) the client side routing did not work.
When I ran locally in dev environment I noticed the links worked fine, even testing on ios 9.3. When running again using build and production mode locally, I was able to replicate this not working. It seems the client side routing does not work in production mode on safari on ios 9.3. There were no console errors or anything like that and including a global polyfill did not change anything either.
Thoughts?

Upon further testing and debugging, my team discovered we were able to remove this error by removing UglifyJS from webpack config in nextjs production mode - unsure where exactly the problem lies

Thanks for reporting. Could you check if this is happening too with pure next.js links or only when using next-routes?


attention_is_all_you_need cannot run

So I am trying to set up the pytorch-directml on my desktop with 5700XT AMD GPU, I followed exact steps on https://learn.microsoft.com/en-us/windows/ai/directml/gpu-pytorch-windows using python 3.9.16(I also tried a lot of times using freshly installed environments with anaconda) and I have run python in the environment to test if torch installed properly, which it did(calculated 3 as shown in the webpage). But when I install requirements before executing install.py for "attention_is_all_you_need" in 1.13 folder, it tries to uninstall torch 1.13.1 and install torch 2.0.0 instead, if I manually uninstall the torch 2.0.0 and install torch-directml(torch 1.13.1) again, it shows the following:

which I guess it should be fixed if there is a version number specified in the requirements.txt.
squeezenet can be run as normal, but CPU usage is also pretty high, is this normal?

Hi @Henry715, thanks for bringing this up. torchtext requirements needed to be fixed to 0.14.1 to be compatible with torch-directml, try a clean install with the new requirements.txt file updated in the above PR and let us know if that solves your issue.

It is working now, the model has been trained successfully, but when I tested the model using the command provided in the Readme, a codec problem happens, is this because of the windows installation?

I had UK version of windows installed if I remember correctly, and the region of the system is UK, too (Only the displaying language is simplified Chinese).

And for squeezenet, when I try to preidict with some images(I assume the a.jpeg is some images that the users have, not included in the repo itself) downloaded from google, this happens:


StacVersion behind what's currently implemented

Describe the bug
There are two problems here -- the first problem is that stac4s doesn't really declare anywhere what version it supports. The second problem is that where it kind of sort of declares it, it's wrong -- we're in the 1.0.0 series, but ValidStacVersion still says 0.9.0 is the only valid one.
Expected behavior
Finding out STAC version isn't hard, validation is correct
Additional context
There aren't huge changes between 0.9.0 and 1.0.0-betaX, so this hasn't bitten us, but we should still update it and make it easier to discover. In particular, with Franklin reporting decoding errors to users, it would be nice if we didn't risk sending them to the wrong version of the STAC spec to fix things.

Bump, still bad, but now differently.


fix: replace eprintf with logs

…except in tests

Some of these should maybe be warn?

@ulrikstrid for gossip-related failures, you mean? I'm not sure I understand the subtleties of warning vs error.

As I see it a error is something that is not expected to happen so when it does we want to be notified (via alerts).
A warning is something that's not "good" but we don't expect anyone to act on it immediately.
@d4hines and @Laucans, do you have any other ideas here?

@ulrikstrid @aguillon @Laucans I don't expect us to be able to figure out the best policy without trial and error tbh. I'll do a quick comb-through of these changes and see if any make more sense as alerts, then I'll merge. We can follow up with changes as needed.


Status on Model Weight Release?

Dear Amy,
Love your work on this and super excited to start using this framework in downstream research. What is the status on model weights being released?
All the best,
NDS

hi, thanks for the interest in our work!
See here for the model weights: https://huggingface.co/amyxlu/cheap-proteins/tree/main. Will implement the changes to get the weights more conveniently downloadable in the coming weeks.

Hello!
Perhaps it's still private? The page is still empty in you HF profile: https://huggingface.co/amyxlu

best<3,
NDS

Could you check to see if this works now?
https://huggingface.co/amyxlu/cheap-proteins/tree/main

It does -- Aiiiii you made our day!
All the best,
NDS


Support glkapi.js in node

Here are some conservative changes which allow glkapi.js to be used in node.
Notes:

Supports the external libraries being loaded either from vm_options or from the window object if it exists. Throws if Dialog or GlkOte are not loaded. Allows GiDispa and GiLoad to not be loaded.
But I just noticed that restore_allstate has a reference to GiLoad without checking whether it is set. So probably that one should become required too? There are also many references to GiDispa in the autosaving code... we'll probably need to have a longer discussion on whether and how glkapi.js can/should be used outside of GlkOte and Quixe. I'll maintain a fork if I have to, but I'd really love to be able to just copy over the file everytime there's an update to GlkOte. (Depending on GiDispa may make perfect sense and when I add autosaving to ZVM I may discover that I want to use it too, so maybe all that will be needed is one guard checking for GiDispa at the beginning of the autosaving functions.)
Uses the support array in glk_gestalt. I removed the has_canvas check, and it now relies on graphics being listed in the support array.
Fixes a bug: gestalt_MouseInput was checking wintype_TextBuffer instead of wintype_TextGrid
glk_exit sends an exit message to GlkOte. I needed this to stop listening for events in glkote-term. Possibly should also send an exit message in fatal_warning?
Supports CommonJS
Does not have my changes to glk_fileref_create_by_prompt

I was originally expecting to have to write my own Dialog implementation from scratch, but the electrofs.js version would actually require very few changes to be usable by me.
I have an idea of how to make it very easy to extend for a node terminal app, but still return the same unchanged Electron API for your use. If it works I'll put it here for your review.

So I turned the Dialog singleton into an ES6 class, and then extended it with the Electron specific code. It exports the classes in CommonJS, and returns an instance so the Dialog global variable (in the browser) will be as it was before. Seems to work great to me.

I can't tell if this is something I've broken, but the transcript isn't being completely flushed to disk. Once Lectrote has a work around for glk_fileref_create_by_prompt (but without any of the other changes) I'll need to test it.

My previous changes to glk_exit meant that nothing would be printed after the last input. I've changed it so that update() will take a message, but this is probably not what you want. I noticed that Quixe calls update() after glk_exit() but I don't think that will work with my glkote-term because update() will try to do things which the previous exit call has unloaded. I don't know what is ideal here.


Updated mints to use pinia stores for state management

Incredible PR! Thank you

LGTM

Todo:

add activateMint to useMintsStore in SettingsView.vue
move this.splitToSend in melt into try, catch block

Invited you as a collaborator to this repo! 🙏


When can a new release be expected?

Howdy! Thanks for being so welcoming to new PRs and ideas. I'm excited to use the new features we've added natively. When can we expect a new release?

Hey @ConnorSinnott, some time this week most likely.

A little bit late but we just released version 4.2.0: #136.


Fix VFD definition

[X] Wrong definition was copied in for VFD
[X] added citation to ASHRAE data dictionary
[x] move VFD out of HVAC Equipment hierarchy as a subclass of a more generic Motor class

Hey Gabe - my understanding is that a VFD is actually not a type of motor.  It is instead a motor controller.  Whether or not we want to get that technical is another question, but just wanted to put it out there.

Haystack currently models a VFD as a kind of Motor, so I was just being consistent with that choice. I think for the kind of analytics we are targeting, conflating the driver with the motor itself seems to be a common design decision

Ah - I see.  Thanks for the clarification


Location: hide has no effect when used on button

type: custom:flipdown-timer-card
show_title: true
entity: timer.guest_bathroom_light
styles:
rotor:
fontsize: 2rem
height: 30px
button:
location: hide
The buttons (stop/cancel) are still shown on the right

Actually, it seems to be a problem with saving. If I edit the raw config then I can make the buttons hide with the above config, but when I used the UI to edit and hit save, it discarded my changes


Link to demo report is broken

The link to the demo report in readme.md is broken.

Check this one - https://demo.qameta.io/allure/


Bluetooth: Controller: Support for RTC advance compare event

Add support for having advance compare events on RTC used by the Controller.
Fixes #62871.

stale


ERROR when make px4_sitl_default gazebo

Hello, i'm just installed ROS kinetic and cloned PX4 Frimware
I already checked 'make px4_sitl_default' command work well
but I try to this with gazebo option, the error causes.
I'm using Ubuntu 16.04 LTS 64 bits, and ROS kinetic and I'm really want to solve this problem
This is log of terminal
[  0%] Built target lockstep_scheduler
[  1%] Generating ../../logs
[  2%] Built target drivers_board
[  2%] Built target uorb_headers
[  2%] Built target logs_symlink
[  2%] Built target mixer_gen
[  3%] Built target mixer_gen_6dof
[  3%] Built target ver_gen
[  4%] Built target git_ecl
[  4%] Built target git_gps_devices
[  4%] Built target git_mavlink_v2
[  4%] Built target git_gazebo
[  5%] Built target tinybson
[  6%] Built target perf
[  8%] Built target work_queue
[  9%] Built target ecl_airdata
[  9%] Built target ecl_geo
[  9%] Built target ecl_geo_lookup
[ 10%] Built target ecl_tecs
[ 10%] Built target ecl_validation
[ 28%] Built target uorb_msgs
[ 28%] Built target Mixer
[ 29%] Built target rc
[ 29%] Built target version
[ 29%] Performing configure step for 'sitl_gazebo'
-- install-prefix: /usr/local
-- Using C++14 compiler
[ 30%] Built target parameters
[ 30%] Built target ecl_l1
[ 30%] Built target SimpleMixer
-- Boost version: 1.58.0
-- Found the following Boost libraries:
--   system
--   thread
--   filesystem
--   chrono
--   date_time
--   atomic
[ 30%] Built target HelicopterMixer
[ 30%] Built target NullMixer
[ 31%] Built target MultirotorMixer
[ 31%] Built target generate_topic_listener
-- Boost version: 1.58.0
[ 31%] Built target mixer
[ 33%] Built target modules__uORB
[ 34%] Built target px4_work_queue
-- Checking for module 'gstreamer-1.0 >= 1.0'
[ 35%] Built target px4_platform
--
-- Checking for module 'gstreamer-base-1.0 >= 1.0'
--
[ 36%] Built target px4_daemon
[ 37%] Built target px4_layer
[ 38%] Built target systemlib
[ 39%] Built target cdev
-- Building klt_feature_tracker without catkin
[ 39%] Built target airspeed
[ 39%] Built target bezier
[ 39%] Built target AirspeedValidator
-- Building OpticalFlow with OpenCV
[ 39%] Built target hysteresis
[ 40%] Built target battery
[ 41%] Built target lib__cdev__test__cdev_test
[ 41%] Built target circuit_breaker
[ 42%] Built target CollisionPrevention
[ 43%] Built target controllib
[ 43%] Built target lib__controllib__controllib_test
[ 44%] Built target conversion
[ 45%] Built target drivers__device
[ 45%] Built target mathlib
[ 45%] Built target drivers_barometer
[ 46%] Built target drivers_magnetometer
[ 46%] Built target FlightTask
[ 47%] Built target landing_slope
[ 47%] Built target mixer_module
[ 47%] Built target pid
[ 47%] Built target output_limit
[ 47%] Built target lib__rc__rc_tests
[ 47%] Built target tunes
-- catkin DISABLED
-- Gazebo version: 7.0
[ 47%] Built target mag_compensation
[ 47%] Built target arch_tone_alarm
[ 48%] Built target WeatherVane
-- Found GStreamer: adding gst_camera_plugin
-- Found GStreamer: adding gst_video_stream_widget
[ 48%] Built target modules__uORB__uORB_tests
[ 50%] Built target lib__work_queue__test__wqueue_test
[ 50%] Built target drivers__camera_capture
CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
GSTREAMER_LIBRARIES (ADVANCED)
    linked by target "LiftDragPlugin" in directory /home/minjoon/catkin_ws/src/Firmware/Tools/sitl_gazebo
    linked by target "gazebo_gst_camera_plugin" in directory /home/minjoon/catkin_ws/src/Firmware/Tools/sitl_gazebo
    linked by target "gazebo_parachute_plugin" in directory /home/minjoon/catkin_ws/src/Firmware/Tools/sitl_gazebo
    linked by target "gazebo_catapult_plugin" in directory /home/minjoon/catkin_ws/src/Firmware/Tools/sitl_gazebo
    linked by target "gazebo_barometer_plugin" in directory /home/minjoon/catkin_ws/src/Firmware/Tools/sitl_gazebo
    linked by target "gazebo_wind_plugin" in directory /home/minjoon/catkin_ws/src/Firmware/Tools/sitl_gazebo
    linked by target "gazebo_geotagged_images_plugin" in directory /home/minjoon/catkin_ws/src/Firmware/Tools/sitl_gazebo
    linked by target "gazebo_opticalflow_mockup_plugin" in directory /home/minjoon/catkin_ws/src/Firmware/Tools/sitl_gazebo
    linked by target "gazebo_magnetometer_plugin" in directory /home/minjoon/catkin_ws/src/Firmware/Tools/sitl_gazebo
    linked by target "sensor_msgs" in directory /home/minjoon/catkin_ws/src/Firmware/Tools/sitl_gazebo
    linked by target "gazebo_irlock_plugin" in directory /home/minjoon/catkin_ws/src/Firmware/Tools/sitl_gazebo
    linked by target "gazebo_video_stream_widget" in directory /home/minjoon/catkin_ws/src/Firmware/Tools/sitl_gazebo
    linked by target "gazebo_controller_interface" in directory /home/minjoon/catkin_ws/src/Firmware/Tools/sitl_gazebo
    linked by target "std_msgs" in directory /home/minjoon/catkin_ws/src/Firmware/Tools/sitl_gazebo
    linked by target "gazebo_gps_plugin" in directory /home/minjoon/catkin_ws/src/Firmware/Tools/sitl_gazebo
    linked by target "gazebo_usv_dynamics_plugin" in directory /home/minjoon/catkin_ws/src/Firmware/Tools/sitl_gazebo
    linked by target "gazebo_sonar_plugin" in directory /home/minjoon/catkin_ws/src/Firmware/Tools/sitl_gazebo
    linked by target "mav_msgs" in directory /home/minjoon/catkin_ws/src/Firmware/Tools/sitl_gazebo
    linked by target "nav_msgs" in directory /home/minjoon/catkin_ws/src/Firmware/Tools/sitl_gazebo
    linked by target "gazebo_lidar_plugin" in directory /home/minjoon/catkin_ws/src/Firmware/Tools/sitl_gazebo
    linked by target "gazebo_opticalflow_plugin" in directory /home/minjoon/catkin_ws/src/Firmware/Tools/sitl_gazebo
    linked by target "gazebo_mavlink_interface" in directory /home/minjoon/catkin_ws/src/Firmware/Tools/sitl_gazebo
    linked by target "gazebo_uuv_plugin" in directory /home/minjoon/catkin_ws/src/Firmware/Tools/sitl_gazebo
    linked by target "gazebo_vision_plugin" in directory /home/minjoon/catkin_ws/src/Firmware/Tools/sitl_gazebo
    linked by target "gazebo_multirotor_base_plugin" in directory /home/minjoon/catkin_ws/src/Firmware/Tools/sitl_gazebo
    linked by target "gazebo_imu_plugin" in directory /home/minjoon/catkin_ws/src/Firmware/Tools/sitl_gazebo
    linked by target "gazebo_gimbal_controller_plugin" in directory /home/minjoon/catkin_ws/src/Firmware/Tools/sitl_gazebo
    linked by target "physics_msgs" in directory /home/minjoon/catkin_ws/src/Firmware/Tools/sitl_gazebo
    linked by target "gazebo_motor_model" in directory /home/minjoon/catkin_ws/src/Firmware/Tools/sitl_gazebo

-- Configuring incomplete, errors occurred!
See also "/home/minjoon/catkin_ws/src/Firmware/build/px4_sitl_default/build_gazebo/CMakeFiles/CMakeOutput.log".
See also "/home/minjoon/catkin_ws/src/Firmware/build/px4_sitl_default/build_gazebo/CMakeFiles/CMakeError.log".
platforms/posix/CMakeFiles/sitl_gazebo.dir/build.make:105: recipe for target 'external/Stamp/sitl_gazebo/sitl_gazebo-configure' failed
make[4]: *** [external/Stamp/sitl_gazebo/sitl_gazebo-configure] Error 1
CMakeFiles/Makefile2:33059: recipe for target 'platforms/posix/CMakeFiles/sitl_gazebo.dir/all' failed
make[3]: *** [platforms/posix/CMakeFiles/sitl_gazebo.dir/all] Error 2
make[3]: *** Waiting for unfinished jobs....
[ 50%] Built target drivers__pwm_out_sim
[ 51%] Built target drivers__gps
[ 52%] Built target drivers__camera_trigger
CMakeFiles/Makefile2:25688: recipe for target 'platforms/posix/CMakeFiles/gazebo.dir/rule' failed
make[2]: *** [platforms/posix/CMakeFiles/gazebo.dir/rule] Error 2
Makefile:7802: recipe for target 'gazebo' failed
make[1]: *** [gazebo] Error 2
Makefile:198: recipe for target 'px4_sitl_default' failed
make: *** [px4_sitl_default] Error 2

CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
GSTREAMER_LIBRARIES (ADVANCED)

https://github.com/PX4/Firmware/blob/d609639367eaecb59dcb322493235a8c552c4e03/Tools/setup/ubuntu.sh#L190-L196

CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
GSTREAMER_LIBRARIES (ADVANCED)

https://github.com/PX4/Firmware/blob/d609639367eaecb59dcb322493235a8c552c4e03/Tools/setup/ubuntu.sh#L190-L196

Thank you for your help :-)

@mjsky97 no worries!


Wist core webassembly based parser

This is aimed at fixing #71. All of the existing rules have been ported over to use the new light AST.
Here are some minor Benchmarks that I'm currently seeing:
MacBook Pro (Retina, 15-inch, Mid 2015)
Test file: test.brs 1048 loc
$ node -v
v10.2.1

$ node bin/wist.js test.brs
✖ 169 problems (12 errors, 157 warnings)

Finished in 6.89s

$ wist test.brs
✖ 164 problems (12 errors, 152 warnings)

Finished in 17.18s

The expectation is that a single brightscript file will not have nearly that much code. A more realistic situation with this ~150 loc file.
$ node bin/wist.js test.brs
✖ 38 problems (3 errors, 35 warnings)

Finished in 2.30s

$ wist test.brs
✖ 33 problems (3 errors, 30 warnings)

Finished in 7.73s

I think where the next step would be trying to optimize the Javascript side of the tool

nish, I tried to build the package and install it into my node_modules but its missing the /dist directory and contents when i do it that way.  Then wist fails to run, showing the following error:
Error: ENOENT: no such file or directory, open 'dist/libwist.wasm'

Any ideas?

This LGTM now. Do you think we can squash some of the commits (especially the WIP ones) into a few easy to distinguish units before merging?

Yeah good plan, I already had plans to do this 👍


[HIP_900] Aditi | Add HealthNumber as one of the verified identifier type for discovery

 Here is an overview of what got changed by this pull request:

Complexity increasing per file
==============================
- src/In.ProjectEKA.HipService/Discovery/Ranker/HealthNumberRanker.cs  2
- src/In.ProjectEKA.HipLibrary/Matcher/HealthNumberMatcher.cs  1

See the complete overview on Codacy