HSV Recordings being aborted with "undefined"

Trying to setup motion recordings through MQTT payloads. MQTT is being received just fine, but I get notifications through the HomeKit with just a still image snapshot (no video) and no recording is created in HomeKit for the event either. See the log below for the error as to why it doesn't record. Have tried a number of things in the config but haven't had any luck.

[1/21/2022, 10:44:25 PM] [CameraUI] MQTT: New message: Topic: backyard - Data: ON - Type: string
[1/21/2022, 10:44:25 PM] [CameraUI] Backyard: Motion ON
[1/21/2022, 10:44:45 PM] [CameraUI] Backyard: Motion OFF - Motion handler timeout.
[1/21/2022, 10:44:47 PM] [CameraUI] Backyard: The recording process was aborted by HSV with reason "undefined"
[1/21/2022, 10:44:47 PM] [CameraUI] Backyard: Closing recording process

Full config:

{
"name": "CameraUI",
"port": 8081,
"atHomeSwitch": false,
"debug": false,
"mqtt": {
"active": true,
"host": "<IP_ADDRESS>",
"username": "mqtt",
"password": "mqtt"
},
"http": {
"active": false
},
"smtp": {
"active": false
},
"ftp": {
"active": false
},
"ssl": {
"active": false
},
"cameras": [
{
{
"name": "Backyard",
"manufacturer": "Unifi",
"model": "G4 Bullet",
"motion": true,
"switches": false,
"useInterfaceTimer": false,
"motionTimeout": 20,
"unbridge": true,
"hsv": true,
"prebuffering": true,
"prebufferLength": 4000,
"videoConfig": {
"source": "-i URL",
"subSource": "-i URL",
"stillImageSource": "-i URL",
"rtspTransport": "tcp",
"maxStreams": 3,
"vcodec": "copy",
"acodec": "libfdk_aac",
"stimeout": 10,
"audio": true,
"debug": true
},
"mqtt": {
"motionTopic": "backyard",
"motionMessage": "ON",
"motionResetTopic": "backyard",
"motionResetMessage": "OFF"
},
"smtp": {
"email": "Backyard"
},
"videoanalysis": {
"active": false
}
},
],
"options": {
"videoProcessor": "ffmpeg"
}
}

I'm seeing a similar issue w/ SMTP motion triggering on an Annke C800

fixed in v5.0.11

@seydx so it’s not logging the error anymore, but the issue still persists and I can’t figure out why. The MQTT message triggers a motion event but there is no recording saved in in HomeKit and the motion notification from HomeKit doesn’t show a video, just a still image. Any ideas?

@seydx so it’s not logging the error anymore, but the issue still persists and I can’t figure out why. The MQTT message triggers a motion event but there is no recording saved in in HomeKit and the motion notification from HomeKit doesn’t show a video, just a still image. Any ideas?

Can you enable debug in your config.json, trigger s movement and send me the whole log pls (also install the latest version of camera ui)

Is 'The recording process was aborted by HSV with reason "UNEXPECTED_FAILURE"' the same problem?

@Tombra1889
no, its related to a wrong config.json and/or camera config
Can you post your config.json and a screenshot from the cameras own settings (like fps, resolution, bitrate etc)

thx. that's my new settings:

{
"name": "CameraUI",
"port": 8583,
"debug": true,
"mqtt": {
"active": false
},
"http": {
"active": true,
"port": 8582,
"localhttp": false
},
"smtp": {
"active": false
},
"ftp": {
"active": false
},
"ssl": {
"active": false
},
"cameras": [
{
"name": "Entry",
"manufacturer": "INSTAR",
"model": "N-5907HD-PoE",
"motion": true,
"doorbell": true,
"useInterfaceTimer": false,
"motionTimeout": 60,
"unbridge": true,
"hsv": true,
"prebuffering": true,
"prebufferLength": 4,
"videoConfig": {
"source": "-i<EMAIL_ADDRESS>"subSource": "-i<EMAIL_ADDRESS>"stillImageSource": "-i http://<IP_ADDRESS>/tmpfs/snap.jpg?usr=xxxxx&pwd=xxxxx",
"rtspTransport": "tcp",
"maxStreams": 2,
"vcodec": "copy",
"acodec": "copy",
"stimeout": 10,
"audio": false,
"debug": true
},
"videoanalysis": {
"active": false
}
}

@Tombra1889
try with a lower image quality and bitrate (eg 2048 kbps)

same problem :-/

same problem :-/

Set vcodec to "libx264"

the crazy thing is that it works partially with Keyframe = 20.
[22/01/2022, 17:10:41] [CameraUI] Entry: Motion ON
[22/01/2022, 17:10:42] [CameraUI] Entry: Video fragments requested from HSV
[22/01/2022, 17:10:42] [CameraUI] Entry: Setting prebuffer stream as input
[22/01/2022, 17:10:42] [CameraUI] Entry: Prebuffer requested with a duration of -4s
[22/01/2022, 17:10:42] [CameraUI] Entry: Start recording...
[22/01/2022, 17:10:42] [CameraUI] Entry: Recording command: /usr/lib/node_modules/homebridge-camera-ui/node_modules/ffmpeg-for-homebridge/ffmpeg -hide_banner -analyzeduration 0 -probesize 1822588 -f mp4 -i tcp://<IP_ADDRESS>:30820 -f mp4 -sn -dn -vcodec libx264 -pix_fmt yuv420p -profile:v baseline -level:v 3.1 -b:v 2000k -vf fps=30,scale=w=1920:h=1080:force_original_aspect_ratio=1,pad=1920:1080:(ow-iw)/2:(oh-ih)/2 -force_key_frames expr:gte(t,n_forced*4) -an -movflags frag_keyframe+empty_moov+default_base_moof -max_muxing_queue_size 1024 tcp://<IP_ADDRESS>:30834
[22/01/2022, 17:10:42] [CameraUI] Entry: Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'tcp://<IP_ADDRESS>:30820':
Metadata:
major_brand     : iso5
minor_version   : 512
compatible_brands: iso5iso6mp41
encoder         : Lavf58.45.100
Duration: 00:00:16.43, start: 8.300000, bitrate: N/A
[22/01/2022, 17:10:42] [CameraUI] Entry:     Stream #0:0(und): Video: h264 (Baseline) (avc1 / 0x31637661), yuvj420p(pc), 1280x720, 886 kb/s, 12.15 fps, 30 tbr, 15360 tbn, 60 tbc (default)
Metadata:
handler_name    : VideoHandler
[22/01/2022, 17:10:42] [CameraUI] Entry: Recording started
[22/01/2022, 17:10:42] [CameraUI] Entry: Stream mapping:
Stream #0:0 -> #0:0 (h264 (native) -> h264 (libx264))
Press [q] to stop, [?] for help
[22/01/2022, 17:10:42] [CameraUI] Entry: [swscaler @ 0x29f92e0] deprecated pixel format used, make sure you did set range correctly
[22/01/2022, 17:10:42] [CameraUI] Entry: [libx264 @ 0x29cffc0] frame MB size (120x68) > level limit (3600)
[libx264 @ 0x29cffc0] MB rate (244800) > level limit (108000)
[22/01/2022, 17:10:42] [CameraUI] Entry: [libx264 @ 0x29cffc0] using cpu capabilities: ARMv6 NEON
[22/01/2022, 17:10:42] [CameraUI] Entry: [libx264 @ 0x29cffc0] profile Constrained Baseline, level 3.1, 4:2:0, 8-bit
[libx264 @ 0x29cffc0]
[22/01/2022, 17:10:42] [CameraUI] Entry: 264 - core 160 - H.264/MPEG-4 AVC codec - Copyleft 2003-2020 - http://www.videolan.org/x264.html - options: cabac=0 ref=2 deblock=1:0:0 analyse=0x1:0x111 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=0 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=6 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=0 weightp=0 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=abr mbtree=1 bitrate=2000 ratetol=1.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
Output #0, mp4, to 'tcp://<IP_ADDRESS>:30834':
Metadata:
major_brand     : iso5
minor_version   : 512
compatible_brands: iso5iso6mp41
encoder         : Lavf58.45.100
[22/01/2022, 17:10:42] [CameraUI] Entry:     Stream #0:0(und): Video: h264 (libx264) (avc1 / 0x31637661), yuv420p, 1920x1080, q=-1--1, 2000 kb/s, 30 fps, 15360 tbn, 30 tbc (default)
Metadata:
handler_name    : VideoHandler
encoder         : Lavc58.91.100 libx264
Side data:
cpb: bitrate max/min/avg: 0/0/2000000 buffer size: 0 vbv_delay: N/A
[22/01/2022, 17:10:42] [CameraUI] Entry: frame=   12 fps=0.0 q=0.0 size=       1kB time=00:00:00.00 bitrate=N/A speed=   0x
[22/01/2022, 17:10:43] [CameraUI] Entry: frame=   21 fps= 18 q=0.0 size=       1kB time=00:00:00.00 bitrate=N/A speed=   0x
[22/01/2022, 17:10:44] [CameraUI] Entry: frame=   33 fps= 19 q=0.0 size=       1kB time=00:00:00.00 bitrate=N/A speed=   0x
[22/01/2022, 17:10:45] [CameraUI] Entry: frame=   48 fps= 16 q=36.0 size=       1kB time=00:00:00.00 bitrate=93046.2kbits/s speed=2.17e-05x
[22/01/2022, 17:10:45] [CameraUI] Entry: frame=   55 fps= 16 q=40.0 size=       1kB time=00:00:00.23 bitrate=  25.9kbits/s speed=0.0661x
[22/01/2022, 17:10:46] [CameraUI] Entry: frame=   64 fps= 16 q=33.0 size=       1kB time=00:00:00.53 bitrate=  11.3kbits/s speed=0.132x
[22/01/2022, 17:10:46] [CameraUI] Entry: frame=   74 fps= 16 q=33.0 size=       1kB time=00:00:00.86 bitrate=   7.0kbits/s speed=0.184x
[22/01/2022, 17:10:47] [CameraUI] Entry: frame=   84 fps= 16 q=32.0 size=       1kB time=00:00:01.20 bitrate=   5.0kbits/s speed=0.229x
[22/01/2022, 17:10:48] [CameraUI] Entry: frame=   93 fps= 16 q=31.0 size=       1kB time=00:00:01.50 bitrate=   4.0kbits/s speed=0.255x
[22/01/2022, 17:10:48] [CameraUI] Entry: frame=  103 fps= 16 q=31.0 size=       1kB time=00:00:01.83 bitrate=   3.3kbits/s speed=0.283x
[22/01/2022, 17:10:49] [CameraUI] Entry: frame=  112 fps= 16 q=30.0 size=       1kB time=00:00:02.13 bitrate=   2.8kbits/s speed=0.302x
[22/01/2022, 17:10:50] [CameraUI] Entry: frame=  122 fps= 16 q=30.0 size=       1kB time=00:00:02.46 bitrate=   2.5kbits/s speed=0.319x
[22/01/2022, 17:10:50] [CameraUI] Entry: frame=  132 fps= 16 q=30.0 size=       1kB time=00:00:02.80 bitrate=   2.2kbits/s speed=0.338x
[22/01/2022, 17:10:51] [CameraUI] Entry: Closing recording process
[22/01/2022, 17:10:51] [CameraUI] Entry: Resetting motion sensor, because HSV closed the recording process
[22/01/2022, 17:10:51] [CameraUI] Entry: FFMPEG socket closed during read for 8 bytes!
[22/01/2022, 17:10:51] [CameraUI] Entry: The recording process was aborted by HSV with reason "CANCELLED"
[22/01/2022, 17:10:51] [CameraUI] Entry: Prebuffer request ended
[22/01/2022, 17:10:51] [CameraUI] Entry: FFmpeg recording process exited (expected)

thx. that's my new settings:
{ "name": "CameraUI", "port": 8583, "debug": true, "mqtt": { "active": false }, "http": { "active": true, "port": 8582, "localhttp": false }, "smtp": { "active": false }, "ftp": { "active": false }, "ssl": { "active": false }, "cameras": [ { "name": "Entry", "manufacturer": "INSTAR", "model": "N-5907HD-PoE", "motion": true, "doorbell": true, "useInterfaceTimer": false, "motionTimeout": 60, "unbridge": true, "hsv": true, "prebuffering": true, "prebufferLength": 4, "videoConfig": { "source": "-i<EMAIL_ADDRESS>"subSource": "-i<EMAIL_ADDRESS>"stillImageSource": "-i http://<IP_ADDRESS>/tmpfs/snap.jpg?usr=xxxxx&pwd=xxxxx", "rtspTransport": "tcp", "maxStreams": 2, "vcodec": "copy", "acodec": "copy", "stimeout": 10, "audio": false, "debug": true }, "videoanalysis": { "active": false } }

Change „Video-Encoding“ (camera settings) to Constant Bitrate

Garten: The recording process was aborted by HSV with reason "UNEXPECTED_FAILURE"

The recording process was aborted by HSV with reason "UNEXPECTED_FAILURE"

Hmm weird
Try with following camera settings
Resolution: 1280x720
FPS: 30
Keyframe Interval: 120
Image Quality: 3
Bitrate: 2048 kbps
Video Encoding: Constant Bitrate (CBR) or None
config.json

{
  "name": "CameraUI",
  "port": 8583,
  "debug": true,
  "mqtt": {
    "active": false
  },
  "http": {
    "active": true,
    "port": 8582,
    "localhttp": false
  },
  "smtp": {
    "active": false
  },
  "ftp": {
    "active": false
  },
  "ssl": {
    "active": false
  },
  "cameras": [
    {
      "name": "Entry",
      "manufacturer": "INSTAR",
      "model": "N-5907HD-PoE",
      "motion": true,
      "doorbell": true,
      "useInterfaceTimer": false,
      "motionTimeout": 60,
      "unbridge": true,
      "hsv": true,
      "prebuffering": true,
      "prebufferLength": 4,
      "videoConfig": {
        "source": "-i<EMAIL_ADDRESS>        "subSource": "-i<EMAIL_ADDRESS>        "stillImageSource": "-i http://<IP_ADDRESS>/tmpfs/snap.jpg?usr=xxxxx&pwd=xxxxx",
        "rtspTransport": "tcp",
        "maxStreams": 4,
        "vcodec": "copy",
        "acodec": "libfdk_aac",
        "stimeout": 10,
        "audio": false,
        "debug": true
      },
      "videoanalysis": {
        "active": false
      }
    }
  ]
}

25 fps is the max

@seydx here's the result with debug on. The backyard event was the one I triggered. So the motion event is being triggered and it actually does record the event in HSV. But for some reason, the notification the app sends is just a still image instead of video clip like if the video analysis was on and it triggers based on motion on the substream. Any ideas?
[1/22/2022, 2:53:16 PM] Homebridge v1.4.0 (HAP v0.10.0) (CameraUI) is running on port 53011.
[1/22/2022, 2:53:27 PM] [CameraUI] Front Door: Setting up camera, please be patient...
[1/22/2022, 2:53:27 PM] [CameraUI] Backyard: Setting up camera, please be patient...
[1/22/2022, 2:53:27 PM] [CameraUI] Driveway: Setting up camera, please be patient...
[1/22/2022, 2:53:27 PM] [CameraUI] Front Porch: Setting up camera, please be patient...
[1/22/2022, 2:53:27 PM] [CameraUI] Front Yard: Setting up camera, please be patient...
[1/22/2022, 2:53:27 PM] [CameraUI] Grayson’s Room: Setting up camera, please be patient...
[1/22/2022, 2:53:27 PM] [CameraUI] Levi’s Room: Setting up camera, please be patient...
[1/22/2022, 2:53:27 PM] [CameraUI] Playroom: Setting up camera, please be patient...
[1/22/2022, 2:53:28 PM] [CameraUI] Grayson’s Room: Prebuffering scheduled for restart at 2AM: 667 minutes
[1/22/2022, 2:53:28 PM] [CameraUI] Playroom: Prebuffering scheduled for restart at 2AM: 667 minutes
[1/22/2022, 2:53:28 PM] [CameraUI] Levi’s Room: Prebuffering scheduled for restart at 2AM: 667 minutes
[1/22/2022, 2:53:28 PM] [CameraUI] Front Door: Prebuffering scheduled for restart at 2AM: 667 minutes
[1/22/2022, 2:53:29 PM] [CameraUI] Front Yard: Prebuffering scheduled for restart at 2AM: 667 minutes
[1/22/2022, 2:53:29 PM] [CameraUI] Front Porch: Prebuffering scheduled for restart at 2AM: 667 minutes
[1/22/2022, 2:53:29 PM] [CameraUI] Driveway: Prebuffering scheduled for restart at 2AM: 667 minutes
[1/22/2022, 2:53:29 PM] [CameraUI] Backyard: Prebuffering scheduled for restart at 2AM: 667 minutes
[1/22/2022, 2:53:29 PM] [CameraUI] Front Door: Configuring unbridged accessory...
[1/22/2022, 2:53:29 PM] [CameraUI] Front Door: Setting up accessory...
[1/22/2022, 2:53:29 PM] [CameraUI] Backyard: Configuring unbridged accessory...
[1/22/2022, 2:53:29 PM] [CameraUI] Backyard: Setting up accessory...
[1/22/2022, 2:53:29 PM] [CameraUI] Driveway: Configuring unbridged accessory...
[1/22/2022, 2:53:29 PM] [CameraUI] Driveway: Setting up accessory...
[1/22/2022, 2:53:29 PM] [CameraUI] Front Porch: Configuring unbridged accessory...
[1/22/2022, 2:53:29 PM] [CameraUI] Front Porch: Setting up accessory...
[1/22/2022, 2:53:29 PM] [CameraUI] Front Yard: Configuring unbridged accessory...
[1/22/2022, 2:53:29 PM] [CameraUI] Front Yard: Setting up accessory...
[1/22/2022, 2:53:29 PM] [CameraUI] Grayson’s Room: Configuring unbridged accessory...
[1/22/2022, 2:53:29 PM] [CameraUI] Grayson’s Room: Setting up accessory...
[1/22/2022, 2:53:29 PM] [CameraUI] Levi’s Room: Configuring unbridged accessory...
[1/22/2022, 2:53:29 PM] [CameraUI] Levi’s Room: Setting up accessory...
[1/22/2022, 2:53:29 PM] [CameraUI] Playroom: Configuring unbridged accessory...
[1/22/2022, 2:53:29 PM] [CameraUI] Playroom: Setting up accessory...
[1/22/2022, 2:53:29 PM] [CameraUI] camera.ui v5.0.12 is listening on port 8081 (http)
[1/22/2022, 2:53:29 PM] Front Door 8035 is running on port 39391.
[1/22/2022, 2:53:29 PM] Please add [Front Door 8035] manually in Home app. Setup Code: 031-45-154
[1/22/2022, 2:53:29 PM] Backyard 313D is running on port 46005.
[1/22/2022, 2:53:29 PM] Please add [Backyard 313D] manually in Home app. Setup Code: 031-45-154
[1/22/2022, 2:53:29 PM] Driveway DDE6 is running on port 45709.
[1/22/2022, 2:53:29 PM] Please add [Driveway DDE6] manually in Home app. Setup Code: 031-45-154
[1/22/2022, 2:53:29 PM] Front Porch 6EAB is running on port 44923.
[1/22/2022, 2:53:29 PM] Please add [Front Porch 6EAB] manually in Home app. Setup Code: 031-45-154
[1/22/2022, 2:53:29 PM] Front Yard AB66 is running on port 39035.
[1/22/2022, 2:53:29 PM] Please add [Front Yard AB66] manually in Home app. Setup Code: 031-45-154
[1/22/2022, 2:53:29 PM] Grayson’s Room FCF2 is running on port 43917.
[1/22/2022, 2:53:29 PM] Please add [Grayson’s Room FCF2] manually in Home app. Setup Code: 031-45-154
[1/22/2022, 2:53:29 PM] Levi’s Room 636D is running on port 34271.
[1/22/2022, 2:53:29 PM] Please add [Levi’s Room 636D] manually in Home app. Setup Code: 031-45-154
[1/22/2022, 2:53:29 PM] Playroom 5F1C is running on port 45899.
[1/22/2022, 2:53:29 PM] Please add [Playroom 5F1C] manually in Home app. Setup Code: 031-45-154
[1/22/2022, 3:42:26 PM] [CameraUI] Config changed through interface, saving...
[1/22/2022, 3:42:26 PM] [CameraUI] Accessories refreshed and config.json saved!
[1/22/2022, 3:42:42 PM] [CameraUI] Front Door: Unknown target specified for motion handler (custom)!
[1/22/2022, 3:43:23 PM] [CameraUI] MQTT: New message: Topic: backyard - Data: ON - Type: string
[1/22/2022, 3:43:23 PM] [CameraUI] Backyard: Motion ON
[1/22/2022, 3:43:43 PM] [CameraUI] Backyard: Motion OFF - Motion handler timeout.
[1/22/2022, 3:43:45 PM] [CameraUI] Backyard: Closing recording process


Feature request: support derive for traits

Context: https://github.com/gmlewis/moonbit-ray-tracer
In this repo, I was forced to write:
pub(open) trait Object {
  ...
  output(Self, Logger) -> Unit
  to_string(Self) -> String
}

instead of (preferred):
pub(open) trait Object {
  ...
} derive(Show)

in order to support inspect! in black-box unit tests, but the compiler doesn't allow it.
(Also, I wanted to add op_equal to support assert_eq! but couldn't get it to work with trait objects... but that's probably a different issue that is unrelated to this one.)
It might be nice to be able to derive any methods for traits, like Show, Eq, FromJson, ToJson, etc.

As an aside... now I'm remembering that I got a weird error message about Self showing up twice when I tried to add op_equal(Self, Self) -> Bool to the trait... very strange.

pub(open) trait Object {
...
} derive(Show)

Does
pub(open) trait Object : Show {
 // everything other than to_string / output
}

Work for you?

As an aside... now I'm remembering that I got a weird error message about Self showing up twice when I tried to add op_equal(Self, Self) -> Bool to the trait... very strange.

Maybe you are using it as trait object?

Sure, sounds good.  So multiple derives would be trait Object : Show, Eq, ToJson, FromJson {...} for example ?

Maybe you are using it as trait object?

I didn't think so, but will have to try again to test it out.

Again, feel free to close if this is already the case.

Sure, sounds good. So multiple derives would be trait Object : Show, Eq, ToJson, FromJson {...} for example ?

It's trait Object : Show + Eq + ToJson + FromJson.

As an aside... now I'm remembering that I got a weird error message about Self showing up twice when I tried to add op_equal(Self, Self) -> Bool to the trait... very strange.

This could be a bug if you are using a typealias with a trait. Should be fixed soon.


Transfer to notebook

Simply copying the script code to a notebook. Could use some cleaning and prose. For some reason, we are getting lookback on the cluster centres, whereas we should only be showing the most recent.
cc @maximlt

Thanks for starting to gather the code in a notebook 👍
If you want to display the most recent clusters (n=3) then this change would be required (fixing a typo too):
diff --git a/examples/river_kmeans.py b/examples/river_kmeans.py
index 4acbaf1..f204e9e 100644
--- a/examples/river_kmeans.py
+++ b/examples/river_kmeans.py
@@ -58,7 +58,7 @@ def main(viz=True):
         return concat([previous, new]).iloc[-last_lines:, :]

     partition_obs = 10
-    particion_clusters = 10
+    partition_clusters = 10
     backlog_obs = 100

     # .partition is used to gather x number of points
@@ -74,8 +74,8 @@ def main(viz=True):
     )
     (
         clusters
-        .partition(particion_clusters)
-        .map(pd.concat)
+        .partition(partition_clusters)
+        .map(lambda t: t[-1])
         .sink(pipe_out.send)
     )

Instead of concatenating the clusters (n=3partition) the stream just gets the last clusters (n=3) that were accumulated in .partition. Note that it means that some clusters (=3(partition-1)) are not displayed at all.
Even if the script is working at the required cadence thanks to the use of .partition I've opened an issue in holoviews (https://github.com/holoviz/holoviews/issues/5178) to report the error observed when holoviews (or panel or bokeh or tornado...) couldn't cope with a high frequency.


Change to layout to accommodate more devices below 768px

Purpose
Devices between 576px and 768px were quite tight in terms of layout. This is only taking into account the default seeded data too. If you had long category names its likely going to cause you more issues.
Changes
Overall this only really changes the breakpoint at which the layout collapses down, replacing the $sm to $lg.
Below is a screenshot comparison, on the left is 576px and on the right is 768px.
Before (Theme as it currently stands)

After (With changes applied)

Thank you for the PR!
Shouldn't it be col-md to target devices below 768px? IIRC col-lg targets devices below 992px
Can you adjust the CartBox as well in a separate PR to the ti-ext-cart repo.

Thank you for the PR!
Shouldn't it be col-md to target devices below 768px? IIRC col-lg targets devices below 992px
Can you adjust the CartBox as well in a separate PR to the ti-ext-cart repo.

@GrantBartlett Any updates?

@GrantBartlett Any updates?


Problem on part2 - running nox

Hi, I am following along your articles (great work BTW) and I don't know if here is the most appropriate place to reach you, but I couldn't run nox following the instructions.
I think that there is some conflict between pyenv and previously installed anaconda. I get permission errors:
$ nox
nox > Running session tests-3.8
nox > Creating virtual environment (virtualenv) using python3.8 in .nox/tests-3-8
nox > Command /home/user/anaconda3/bin/python3 -m virtualenv /media/user/7A28-2BBB/Hypermodern Python/.nox/tests-3-8 -p python3.8 failed with exit code 1:
PermissionError: [Errno 1] Operation not permitted: '/home/user/.pyenv/versions/3.8.2/bin/python3.8' -> '/media/user/7A28-2BBB/Hypermodern Python/.nox/tests-3-8/bin/python'
nox > Session tests-3.8 failed.
nox > Running session tests-3.7
nox > Creating virtual environment (virtualenv) using python3.7 in .nox/tests-3-7
nox > Command /home/user/anaconda3/bin/python3 -m virtualenv /media/user/7A28-2BBB/Hypermodern Python/.nox/tests-3-7 -p python3.7 failed with exit code 1:
PermissionError: [Errno 1] Operation not permitted: '/home/user/anaconda3/bin/python3' -> '/media/user/7A28-2BBB/Hypermodern Python/.nox/tests-3-7/bin/python'
nox > Session tests-3.7 failed.
nox > Ran multiple sessions:
nox > * tests-3.8: failed
nox > * tests-3.7: failed

Do you have any idea how can I can overcome that?
I've also tried:
source ~/.poetry/env
poetry run nox

And I get the same output.

Hi @staticdev
This looks to me like you installed Nox using Anaconda's Python interpreter. Could you check if Nox's shebang contains something like /home/user/anaconda3/bin/python3? You can print its shebang from a terminal running bash, like this:
head -n1 $(which nox)

If so, I would recommend to uninstall Nox from that Python installation:
/home/user/anaconda3/bin/python3 -m pip uninstall nox

Then reinstall Nox using your system Python. On a recent Linux (which you seem to be using), this would be:
/usr/bin/python3 -m pip install --user --upgrade nox

Alternatively, you could also install Nox using pipx. Just make sure when you install pipx itself, that you use the system Python, not Anaconda's Python.
HTH, let me know if that resolved your problem. Glad you're enjoying the articles :)

No, actually it seems like having nothing to do with anaconda. In the end, I've tried another computer without anaconda and got the same problem:
nox
nox > Running session tests-3.8
nox > Creating virtual environment (virtualenv) using python3.8 in .nox/tests-3-8
nox > Command /home/user/.pyenv/versions/3.8.2/bin/python3.8 -m virtualenv /media/user/7A28-2BBB/Hypermodern Python/.nox/tests-3-8 -p python3.8 failed with exit code 1:
PermissionError: [Errno 1] Operation not permitted: '/home/user/.pyenv/versions/3.8.2/bin/python3.8' -> '/media/user/7A28-2BBB/Hypermodern Python/.nox/tests-3-8/bin/python'
nox > Session tests-3.8 failed.
nox > Running session tests-3.7
nox > Creating virtual environment (virtualenv) using python3.7 in .nox/tests-3-7
nox > Command /home/user/.pyenv/versions/3.8.2/bin/python3.8 -m virtualenv /media/user/7A28-2BBB/Hypermodern Python/.nox/tests-3-7 -p python3.7 failed with exit code 1:
PermissionError: [Errno 1] Operation not permitted: '/home/user/.pyenv/versions/3.7.6/bin/python3.7' -> '/media/user/7A28-2BBB/Hypermodern Python/.nox/tests-3-7/bin/python'
nox > Session tests-3.7 failed.
nox > Ran multiple sessions:
nox > * tests-3.8: failed
nox > * tests-3.7: failed

With head -n1 $(which nox) I got:
#!/home/user/.pyenv/versions/3.8.2/bin/python3.8


NXP Dogwood - updated web analytics link

Trivial update. Need a review before I push. This is for: https://trello.com/c/tCbb6Re9

I see no problem with this - let's merge.


NitroShare cannot see LG V10

this is strange
windows 7 Ultimate K and LG V10, nonrooted and nonmodified at N cannot see my computer

nvm i did something wrong


How to initialize a RNN model ?

In some implements of RNNs such as char-rnn and Oxford machine learning course parctical6, we need to randomly initialize the parameters of networks using a  certain distribution (normal distribution or something else). Is there a equivalent operation in this RNNs library ? Or I need to do it myself.

@Beanocean You can do it the same way as those packages:
parameters = rnn:getParameters()
parameters:uniform(-0.1, 0.1)

@nicholas-leonard I know, thank you very much.


Is the library multiplatform?

Hello. Is the library multiplatform?

@lemkoleg Yes, it is a Compose Multiplatform library.

Supports IOS?

fun ImageViewer{} is only available in the Android project. It is not available in the MPP.


Deleted portals still teleport you

Self explanatory. I created a portal, deleted it, reset the destination, but it still teleported me to the old location, no matter what. I deleted the portal, deleted both portals, even moved it to a different location then tried again with the same old names, and then gave up. Having a different location and different names probably works, but that would be way too weird having 2 empty spaces for portals. Please fix

Hi, I know this is an old issue, but I am currently looking through all the old (and new) tickets.
I was unable to replicate this. Tried several times. If this is still happening (while on the latest version), please make a new ticket with more information. Thanks!


Two windows in the same node zoomed at the same time

Hi!
In Yabai we may have two windows with zoom-parent toggled on at the same time.
I don't know if this behavior is intended, but I believe chunkwm allowed only one window to be zoomed into the parent node at the same time, zooming out any previous active one.

This is intentional, but I am still undecided which one I prefer.

You can always just run this command before toggling a window to zoom-parent to remove zoom-parent from all other windows on the space:
yabai -m query --windows --space \
    | jq -r '.[] | select(."zoom-parent" == 1).id' \
    | xargs -I{} yabai -m window {} --toggle zoom-parent

I prefer the current way, as it offers more flexibility.

@dominiklohmann Wow, that's a really nice trick indeed, thank you!
@koekeishiya I'm on the same boat as you trying to decide which way is better for me, but I think @dominiklohmann's solution works great and gives the user the chance to choose.

@dominiklohmann There's a catch though. Now I'm not able to remove zoom-parent from the current window, as I'm toggling it off, and then on again.
I'm trying to figure out a way to exclude the focused window from your command, but my script-fu is a bit limited for this case.

Add the query to the call to select in jq:
yabai -m query --windows --space \
    | jq -r '.[] | select(."zoom-parent" == 1 and .focused == 0).id' \
    | xargs -I{} yabai -m window {} --toggle zoom-parent

That's it, I completely overlooked the set of window properties! You're the man, cheers!


[pg] support of row_to_json over table record

minimal example
--!syntax_pg
SELECT pg_catalog.row_to_json(t) AS chart_data
FROM (select 1 as x) t

aliases are considered only if no columns were matched
SELECT pg_catalog.row_to_json(x) AS chart_data
FROM (select 1 as x,2 as y) x


GOBIN: undefined
toolsGopath:
gopath: /home/zhaytee/go
GOROOT: /usr/local/go
PATH: /usr/local/go/bin:/home/zhaytee/.vscode-server/bin/ea3859d4ba2f3e577a159bc91e3074c5d85c0523/bin:/home/zhaytee/.nvm/versions/node/v12.18.4/bin:/home/zhaytee/.vscode-server/bin/ea3859d4ba2f3e577a159bc91e3074c5d85c0523/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/home/zhaytee/go/bin:/home/zhaytee/.local/bin

   gocode: gocode not installed
   gopkgs: gopkgs not installed
   go-outline: go-outline not installed
   go-symbols: go-symbols not installed
   guru: guru not installed
   gorename: gorename not installed
   gotests: gotests not installed
   gomodifytags: gomodifytags not installed
   impl: impl not installed
   fillstruct: fillstruct not installed
   goplay: goplay not installed
   godoctor: godoctor not installed
   dlv: dlv not installed
   gocode-gomod: gocode-gomod not installed
   godef: godef not installed
   goreturns: goreturns not installed
   golint: golint not installed
   gopls: /home/zhaytee/go/bin/gopls installed

go env
Workspace Folder (api): /home/zhaytee/Development/platform/api
	GO111MODULE=""
	GOARCH="amd64"
	GOBIN=""
	GOCACHE="/home/zhaytee/.cache/go-build"
	GOENV="/home/zhaytee/.config/go/env"
	GOEXE=""
	GOFLAGS=""
	GOHOSTARCH="amd64"
	GOHOSTOS="linux"
	GOINSECURE=""
	GONOPROXY=""
	GONOSUMDB=""
	GOOS="linux"
	GOPATH="/home/zhaytee/go"
	GOPRIVATE=""
	GOPROXY="https://proxy.golang.org,direct"
	GOROOT="/usr/local/go"
	GOSUMDB="sum.golang.org"
	GOTMPDIR=""
	GOTOOLDIR="/usr/local/go/pkg/tool/linux_amd64"
	GCCGO="gccgo"
	AR="ar"
	CC="gcc"
	CXX="g++"
	CGO_ENABLED="1"
	GOMOD=""
	CGO_CFLAGS="-g -O2"
	CGO_CPPFLAGS=""
	CGO_CXXFLAGS="-g -O2"
	CGO_FFLAGS="-g -O2"
	CGO_LDFLAGS="-g -O2"
	PKG_CONFIG="pkg-config"
	GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build361984029=/tmp/go-build -gno-record-gcc-switches"

Share the Go related settings you have added/edited
{
    "go.autocompleteUnimportedPackages": true,
    "gopls": {
        "usePlaceholders": false,
        "staticcheck": false
    },
    "go.languageServerExperimentalFeatures": {
        "diagnostics": true
    },
    "[go.mod]": {
        "editor.formatOnSave": true,
        "editor.codeActionsOnSave": {
            "source.organizeImports": true,
        },
    },
    "[go]": {
        "editor.formatOnSave": true,
        "editor.codeActionsOnSave": {
            "source.organizeImports": true,
        },
        "editor.snippetSuggestions": "none",
    }
}

Describe the bug
VSCode is running on macOS, vscode-go is running on linux/amd64 (I'm using the remote-ssh extension).
I just upgraded to gopls 0.60. Now vscode is yelling at me about the workspace needing go.mod changes, presumably due to the -mod=readonly change introduced to gopls 0.60. The status bar reads "Error loading workspace", and has a permanent spinner.
I'm not aware of anything I can do configuration-wise to solve this problem, so I think this might count as a bug. Not entirely sure.
Error loading workspace: go [-e -json -compiled=true -test=true -export=false -deps=true -find=false -- builtin github.com/myorg/platform/api/compiled/go/...]: exit status 1: go: updates to go.mod needed, disabled by -mod=readonly

Any help would be appreciated. Thank you.

Sounds good. Thanks for letting me know about the expected workflow going forward!


Social media Logos on contact-us page

The current version has images(.png) as logos  and  not icons which seems kinda not perfect.
Also, updated the links with the official social media handles.

Issue:

As evident in the above pic the icons appear quite large

hey @ousnik, can I work on this issue?

please assign me this task.

Please assign me this issue.


Copy listeners before emitting an event

This fix aims to solve an issue that could arise should listeners be added/removed inside an event callback.
It has some perf issues, but I fear that it cannot be helped. What do you think?

Actually I'm probably mistaken, it seems that copies are made inside removeListener, which is a much better and quite elegant way to avoid this issue entirely. I keep this issue open so that you can correct me if I'm wrong, but if not, then forget it :)

When a listener is removed we update this._events[evt] to point the new array of listeners.
This does not change the listeners reference that still points to the original array.

Yep, that's what I noticed right after submitting this PR - thanks for your time and sorry for the confusion!


When creature passives are updated, the "Title" is not updated (although the descriptor is)

One common change in the current campaign I am running is for creatures is to have Negative Healing (pre remaster) to having Void Healing post remaster.  When this is updated, the description is updated via this tool, the description is updated but the "title" or "name" of the passive trait is not:
Screen shot:

Note: The "title"/"name" should say Void Healing.  Here it is directly from the beastiary:

Creature example: Corpselight

Hi @soch0601
I cannot understand what you mean with this. When I update my Corpselights from Abomination Vaults, using Refresh it changes from Negative Healing -> Void Healing.
Am I misunderstanding your issue, and you are requesting the opposite?

So for some reason it did not update the name for me, only the text.  After running it for my corpselight on AV, I got the above result....

I am sorry, but I cannot seem to be able to reproduce this.
Most of my Bestiary creatures have Void Healing already.
Perhaps there is some internal handling from PF2e to trigger negative/void spirit/alignment etc., as those are special cases for how they need to be handled?
I.e. renaming one feat with that slug triggers renaming them all or something?
If you find another way to assist me in reproducing this, then I can look into it further

Closing due to inactivity


DAG is not running as expected

Sorry, since I can't reopen the issue, I post the problem here. I would like schedule a job running every hour, but the problem it never runs.
from airflow.models import DAG
from airflow.operators import BashOperator
from datetime import datetime, timedelta

args = {
    'owner': 'airflow',
    'start_date': datetime.now() - timedelta(minutes=5),
}

dag = DAG(dag_id='cat_test',
          default_args=args,
          schedule_interval='0 * * * *')

cmd = 'echo hello > /home/kimi/hello.txt'

t1 = BashOperator(task_id='cat_hello',
                  bash_command=cmd,
                  dag=dag)

Code is above, did I do something wrong? After load the dag, what should I do? The dag is never triggered. I was expecting it would run like normal cron job.

And the problem is when I run:
airflow scheduler

I will schedule all the job from 2015-10-01, but right now is 2015-12-02, did I do something wrong? Where to set the configurations.

http://pythonhosted.org/airflow/faq.html
"Is your start_date set properly? The Airflow scheduler triggers the task soon after the start_date + scheduler_interval is passed."
You need your start date to before now-schedule_interval


Update ProjectSpec.md

As stated in the PR https://github.com/yonaskolb/XcodeGen/pull/869/files#r438188955 the name of the field should be executable

Thanks @paciej00, good catch. Sorry I didn’t see your initial comment.
While we have this open could you please add the executable to toJSONValue(), just noticed it’s missing there

Sure, I updated the file.


Add metadata tags to WAV and OGG audio streams

Implements a part of https://github.com/godotengine/godot-proposals/issues/3307
This allows for reading out metadata/tags bundled along with Ogg Vorbis and WAV files, which is useful for attribution, an in-game jukebox and so on.
This also adds get_tags() to AudioStream itself so that extensions for more audio file formats can provide their own tags.

I've added the same tag reading functionality to WAV in addition to Ogg Vorbis.

I've worked with taglib in the past when creating audio programs. Taglib abstracts over audio file tags and would be usable for all audio files, instead of needing to implement for each separately. If we're already using libraries to read the audio itself, though idk if it would actually save effort or tears in the long run. Any thoughts?

I've worked with taglib in the past when creating audio programs. Taglib abstracts over audio file tags and would be usable for all audio files, instead of needing to implement for each separately. If we're already using libraries to read the audio itself, though idk if it would actually save effort or tears in the long run. Any thoughts?

For OGG Vorbis the comments were already being read with libvorbis but discarded.
For WAV the chunks were also already being read but no check for a LIST/INFO chunk was in place.
So in those cases I'm not so sure if using another library would be helpful but for a future implementation for ID3 tags it might be.
I'm also not sure how ideal it would be to have a library that supports many more formats than godot supports out of the box.
Overall though, if an implementation with a library instead of this manual approach is preferred, I would not mind this PR being superseded.

I believe the WAV oddities are an issue with (a lack of) standardization regarding how WAV files can incorporate metadata.
From what I've read they do not have a general way to support metadata, it's just very common to include a RIFF chunk of type LIST with the list identifier of INFO (See here)

Interestingly, "ID3" is the name of a metadata standard. Does that mean metadata is put before the RIFF file header in some WAV files?

Nothing stops anyone from including a different chunk (e.g. ID3) anywhere in the WAV file and depending on the version they can come at the very beginning of the file, however this kind of file will fail to load even without the PR.

01 - Title Theme (Main Menu).zip
Dolphin can read all the tags successfully, including an embedded cover:

This file seems to have both an ID3 chunk as well as an INFO chunk so Dolphin is likely reading the ID3 data instead.
If full handling of all kinds of WAV metadata is desired I would like to leave that to someone else, as that's beyond my scope of knowledge.


[BUG] Q color control too many reports

Reproduction steps
Getting more reports than expected on transitions. looks like 1 per second even after transition is complete. Or something.
Bug prevalence
always
GitHub hash of the SDK that was being used
3263e403469fd66827d923484a50ddb504544112
Platform
core
Platform Version(s)
No response
Anything else?
No response

@jmartinez-silabs

@cecille Depending on the transition time, the report interval could be 1s. This should be the smaller interval of report posible. Other than end of transition report.
Can you clarify/what step we're done to see report after transition? That should not be possible. the new code is only exercise on the calculation of the steps.
I'll have to look at it on Monday, I am still away


FileReadToEndNotReadable keeps failing on release/v1.25

Fixes:
https://github.com/envoyproxy/envoy/issues/25614
Signed-off-by: Aliasgar Ginwala<EMAIL_ADDRESS>

Note, this fix just makes the test a duplicate of the test above it (with a misleading name and some unrelated actions suggesting there's some coverage that there is not).

@ravenblackx can you advise on the best way forward
(following up on https://github.com/envoyproxy/envoy/issues/25614#issuecomment-1435903136)
if coverage is dropping then i guess that means another test is required for the uncovered lines
also a bit confused - if it is duplicating above test then i would assume that removing the test should have no affect on coverage

i would assume that removing the test ...

nm, i see - currently the test gives some coverage lines, when "fixed" it becomes a dupe of above and loses that coverage
i guess the question is what is needed to properly cover those lines

/backport

Yeah, I think this is a situation where those lines can't be covered and have the test not break in environments where the file permissions don't behave the desirable way (can't mock it out because the test is explicitly of the non-mock filesystem code). I'm not aware of a more reliable way to cause a 'read' operation to fail, after an 'open' operation succeeded.
It's possible the test could be conditional (check that the permissions preclude reading the file after they've been changed, and if they don't, just log that the test was skipped and don't do the EXPECT), which would provide the coverage in the coverage environment where the test works, and then 'skip' in the environment where the test doesn't work.
A reasonable alternative would be to just delete the problem test, annotate that branch as not reasonable to cover, and explicitly reduce the coverage for that file.

Yeah, I think this is a situation where those lines can't be covered and have the test not break in environments where the file permissions don't behave the desirable way (can't mock it out because the test is explicitly of the non-mock filesystem code). I'm not aware of a more reliable way to cause a 'read' operation to fail, after an 'open' operation succeeded.
It's possible the test could be conditional (check that the permissions preclude reading the file after they've been changed, and if they don't, just log that the test was skipped and don't do the EXPECT), which would provide the coverage in the coverage environment where the test works, and then 'skip' in the environment where the test doesn't work.
A reasonable alternative would be to just delete the problem test, annotate that branch as not reasonable to cover, and explicitly reduce the coverage for that file.

@ravenblackx @phlax thanks. What is the final suggestion? Can we do incremental patch with alternatives post merging this? Please advice.

It looks like this won't merge as-is because it fails coverage, so you'd have to update the coverage file anyway if you're making this change.
My suggestion would be, if we're going for a quick fix for now and maybe iterating later:

Change the test case back to the version that isn't meaningless, then comment it out entirely, with an explanatory comment about how it doesn't work in some envs. (Maybe link to this PR or the issue for more context.)
Add "source/common/filesystem/posix:96.5" in /test/per_file_coverage.sh (argh so close to not needing an exception!)

Thanks @ravenblackx : So coverage failure is due to minimal changes as per logs
Code coverage for source/common/filesystem/posix is lower than limit of 96.6 (96.5)
##[error]Bash exited with code '1'.
Finishing: Run CI script bazel.coverage

So for my knowledge why do we need to touch coverage for minimal changes?
Follow up on your suggestions if I understand correctly:
For 1.  I an comment out in this PR TEST_F(FileSystemImplTest, FileReadToEndNotReadable) { and add issue link.
For 2. do you mean for call we need to use this https://github.com/envoyproxy/envoy/blob/main/source/common/filesystem/posix/filesystem_impl.cc#L96 so that for linux it wont be showing not needing exception ? . I was thinking if we comment out we can skip 2 for now too. Just not getting the need for this. Please help clarify. Let me know

Just not getting the need for this. Please help clarify

my understanding re point 1 is yep, that is correct
point 2 is to add an entry for source/common/filesystem/posix in here https://github.com/envoyproxy/envoy/blob/main/test/per_file_coverage.sh - to lower the coverage expectation

Just not getting the need for this. Please help clarify

my understanding re point 1 is yep, that is correct
point 2 is to add an entry for source/common/filesystem/posix in here https://github.com/envoyproxy/envoy/blob/main/test/per_file_coverage.sh - to lower the coverage expectation

Thanks a bunch @phlax and @ravenblackx for suggestions. Addressed comments. PTAL

@ravenblackx @phlax as per suggestions commenting the code was more work as format checks kept failing.
./test/common/filesystem/filesystem_impl_test.cc:112:// #ifndef WIN32
                                                         ^
Checked 4461 file(s) and 121304 comment(s), found 1 error(s).
ERROR: spell check failed. Run 'tools/spelling/check_spelling_pedantic.py fix and/or add new words to tools/spelling/spelling_dictionary.txt'

Anyways adjusted as requested to comment out with original working state and issue link so someone else might not just re change it to failing state . PTAL as most of the checks passed.

The current failure is due to bash
E: The repository 'https://packages.microsoft.com/ubuntu/20.04/prod focal Release' is no longer signed.
##[error]Bash exited with code '100'.
Finishing: Bash

no formatting other failures @ravenblackx @phlax PTAL

ill hold the 1.25 release ( #25828 ) till this has landed so we can backport it


[UBS-User. Personal Cabinet] The message about wrong house number/ corp number/ entrance number is incorrect

Environment: macOS Mojave 10.14.6, Chrome Version 105.0.5195.102
Reproducible: always
Build found: 29.09.2022
Preconditions

Log in to the GreenCity as User https://ita-social-projects.github.io/GreenCityClient/#/

Steps to reproduce

Open 'UBS-user'
Click on 'User Data'
Click on 'Edit data'
Click on 'Add address'
Enter more than 8 numeric and alphabetic characters in the 'House' field/  'Corp' field/ 'Entrance' field (e.g. "1254ABCD")
Enter more than 255 numeric and alphabetic characters in the field 'Comment to the address'

Actual result
The message about wtong number is 'The field should contain 1-30 characters.'

Expected result
The message about wtong number in the 'House' field/  'Corp' field is 'The field should contain 1-8 characters.'
The message about wtong number in the 'Entrance' field is 'The field should contain 1-2 characters.'
The message about wtong maxLength in the field 'Comment to the address' is 'The field should contain 1-255 characters.'
User story and test case links
E.g.: "User story #3811

Fixed


How to resolve URL

Previously our app was able to use
ITEActionBlock to get a resolved value of the useractivity's URL and pass it to getAndTrackDeeplink for a custom action. This is now deprecated and would break our setup. Is there a way to just retrieve the resolved value when we receive the url inside of app delegate's
- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler?
Thanks.

In application:continueUserActivity:... method add
`IterableAPI.handle(universalLink: "https://xyz")

In AppDelegate
set IterableConfig.urlDelegate = self

Now you will get a callback with the resolved url

func handle(iterableURL url: URL, inContext context: IterableActionContext) -> Bool {
    // You will get resolved url here
}

Please see here for more information
https://github.com/iterable/swift-sdk/#deep-links


add some basic tests for Pom parsing and value interpretation

Super great work on this plugin! I was a little skeptical that it would handle my pom file properly and was about to write a similar plugin. To my surprise, this is really well written code and works very well!
I added some tests. At the very least I hope you'll consider merging it because with so little activity the plugin looks dead (and led to my initial skepticism).

Gentle reminder @shivawu to look at this and merge it?


Reassign labels

Any labels that previously referenced the underlying select field should focus the tagger widget when selected.
Could do this by modifying the for attribute of the label to point to the input of the tagger widget or see if there's an event we could override.

v0.7.1 binds to the mosueup on labels and resolves this. The focus fixes in 0.7.0 for the underlying element didn't seem to solve the problem.


⚠ ClamAV has degraded performance

In 88c3289, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 236 ms

Resolved: ClamAV performance has improved in a25e958.


fix: example to use its own code

This PR makes some addition to PR #99
Since the example package previously relied on AndroidDialogPicker and AndroidDropdownPicker from the Core React Native Package, I've included the RNCPicker manually to the example, so that Android example actually uses the java code from this repository.

:tada: This PR is included in version 1.6.4 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Make All Fragment Transitions much better

Current Fragment Transitions are ugly and unstable sometimes, make custom animations that look nice

See this repo for a general idea

Keep this as reference

New implementation causes bugs on Nexus 5 API 23, click About Page to replicate, see this for a possible solution

They're acceptable for now, closing this


Fix broken proxy link

Platform link is still broken, not sure where that should go.

Hi @mjallday. Thanks for your PR.
I'm waiting for a istio member to verify that this patch is reasonable to test. If it is, they should reply with /ok-to-test on its own line. Until that is done, I will not automatically test new commits in this PR, but the usual testing commands by org members will still work. Regular contributors should join the org to skip this step.
I understand the commands that are listed here.

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by: rkpagadala
To fully approve this pull request, please assign additional approvers.
We suggest the following additional approver: ayj
Assign the PR to them by writing /assign @ayj in a comment when ready.
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

pilot/OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

/ok-to-test

/assign @ayj

No longer relevant. The file was removed in https://github.com/istio/istio/pull/4948


ci: introduce sonarcloud

:tada: This PR is included in version 0.3.1 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


defaults command parsing plist files differently on macOS Catalina

NOTE This was copy-pasted from https://github.com/flutter/flutter/issues/33909 by @kangwang1988.
The output of flutter run -v:
The domain/default pair of (/Users/kylewong/Desktop/hello_flutter/ios/Runner/Info, CFBundleIdentifier) does not exist

In flutter, defaults comand instread of plutil is used to parse plist files. However, defaults command in MacOS 10.15 seems working unexpectedly.
kylewong@KyleWongdeMacBook-Pro Downloads % md5 /Applications/Android\ Studio.app/Contents/Info.plist
MD5 (/Applications/Android Studio.app/Contents/Info.plist) = 35022a129a5bc23c51b2c05c9029ebe9
kylewong@KyleWongdeMacBook-Pro Downloads % md5 /Users/kylewong/Downloads/Info.plist
MD5 (/Users/kylewong/Downloads/Info.plist) = 35022a129a5bc23c51b2c05c9029ebe9

Those two plist has the same md5, however, defaults works differently.
% defaults read /Users/kylewong/Downloads/Info
2019-06-06 10:26:27.505 defaults[26063:176464]
Domain /Users/kylewong/Downloads/Info does not exist
kylewong@KyleWongdeMacBook-Pro Downloads % defaults read /Applications/Android\ Studio.app/Contents/Info
{
    CFBundleDevelopmentRegion = English;
    CFBundleDocumentTypes =     (
                {
            CFBundleTypeExtensions =             (
                ipr
            );
            CFBundleTypeIconFile = "studio.icns";
            CFBundleTypeName = "Android Studio Project File";
            CFBundleTypeRole = Editor;
        },

It seems plutil works fine now while the defaults command fails.
plutil -p /Users/kylewong/Downloads/Info.plist
{
  "CFBundleDevelopmentRegion" => "English"
  "CFBundleDocumentTypes" => [
    0 => {
      "CFBundleTypeExtensions" => [
        0 => "ipr"
      ]
      "CFBundleTypeIconFile" => "studio.icns"
      "CFBundleTypeName" => "Android Studio Project File"
      "CFBundleTypeRole" => "Editor"
    }
    1 => {
      "CFBundleTypeExtensions" => [
        0 => "*"
      ]
      "CFBundleTypeName" => "All documents"
      "CFBundleTypeOSTypes" => [
        0 => "****"
      ]
      "CFBundleTypeRole" => "Editor"
      "LSTypeIsPackage" => 0
    }

cc @vanelizarov
As it is not a blocker now and macos 10.15 is still in beta, I don't think it's a good practice to change the plist parsing logic in flutter.
Updated at 2019-06-06 10:34:59

This looks similar https://github.com/flutter/flutter/issues/35256

@kangwang1988 could you provide a minimal reproduceable setup for this? I cannot reproduce it. Thanks

As it is not a blocker now and macos 10.15 is still in beta, I don't think it's a good practice to change the plist parsing logic in flutter.

The use of defaults to read arbitrary plists is explicitly unsupported. From its man page (this is on 10.14):
     filepath  Domains may also be specified as a path to an arbitrary plist
               file, with or without the '.plist' extension. For example:
[...]
               WARNING: The defaults command will be changed in an upcoming
               major release to only operate on preferences domains. General
               plist manipulation utilities will be folded into a different
               command-line program.

I don't see any reason to assume that this error output isn't exactly the change that has been previously warned about. Even if it's not, rewriting our parsing logic to not rely on a behavior that is explicitly documented as something that shouldn't be relied is a good idea; it'll break in a later release if not this one.

We say not to rely on PlistBuddy here:
https://github.com/flutter/flutter/blob/ca5411e3aa99d571ddd80b75b814718c4a94c839/packages/flutter_tools/lib/src/ios/plist_utils.dart#L17-L19
But then, we rely on /usr/libexec/PlistBuddy here:
https://github.com/flutter/flutter/blob/ca5411e3aa99d571ddd80b75b814718c4a94c839/packages/flutter_tools/bin/xcode_backend.sh#L57
Since we already have such a dependency, should we formalize it by checking for it in doctor and using it explicitly?

Then again, if the user doesn't have PlistBuddy, that command in xcode_backend.sh will just produce an empty $FLTAssetsPath, so it's a soft dependency.

If we can use plutil, that's probably the best way to go, no?

Whatever hard dependency we take on, we need to make sure to add a doctor check for it so the user can see what's wrong if they don't have that tool.

Looking at using plutil, must add a doctor check for it

Assigning per recent discussion. ETA is tomorrow.

Writing tests for this, I found the case that triggers the OP bug: Plist files that are encoded as JSON no longer work with defaults in Catalina.


Feature Request: Joining groups in PWA mode

Maybe I'm missing something, but it seems that you cannot join groups (only create them) from an PWA app?
Installed the PWA on my iPhone and group page tells me to open a link with a group or create a new one, but I have no way of opening the link inside the PWA.
Maybe there could be a button which opens a box where you can paste the link or id of a group in order to get it to load in the PWA?

I agree, it is annoying not being able to open a group in PWA mode. It is because of two limitations on iOS:

you can’t share any storage between the PWA and the Safari-version of the app (so visiting a group in Safari doesn’t add it to the PWA’s recent groups)
you can’t set up the links on a domain (e.g. spliit.app) to be opened in the PWA.

I like your suggestion:

Maybe there could be a button which opens a box where you can paste the link or id of a group in order to get it to load in the PWA?

It could be a nice workaround to finally be able to use Spliit as a PWA on iOS 😉

Maybe there could be a button which opens a box where you can paste the link or id of a group in order to get it to load in the PWA?

Done ✅ 😃

@scastiel 🚤 !! Thanks a bunch!


LightningMessageChannel cannot be created using sfdx force:source:deploy or sfdx force:source:push

Summary
SFDX doesn't want to deploy/convert the LightningMessageChannel.
Steps To Reproduce:

Create new messageChannels/controlChanel.messageChannel and fill it with something like code below.

<?xml version="1.0" encoding="UTF-8"?>
<LightningMessageChannel xmlns="http://soap.sforce.com/2006/04/metadata">
    <isExposed>true</isExposed>
    <lightningMessageFields>
        <description>Lorum Ipsum</description>
        <fieldName>action</fieldName>
    </lightningMessageFields>
    <masterLabel>controlChanel</masterLabel>
</LightningMessageChannel>

Create new Dev/Scratch org

Push the code using sfdx force:source:deploy -p force-app/main/default/messageChannels/controlChanel.messageChannel or sfdx force:source:push

Expected result
LMS channel deployed with no errors
Actual result
An object 'controlChanel' of type LightningMessageChannel was named in package.xml, but was not found in zipped directory
This meta file cannot be converted. I'm getting this message trying to convert it - Component conversion failed: messageChannels/controlChanel.messageChanne: Could not infer a metadata type
System Information

If you are using sfdx

{
        "cliVersion": "sfdx-cli/7.146.1",
        "architecture": "darwin-x64",
        "nodeVersion": "node-v16.14.2",
        "pluginVersions": [
                "@oclif/plugin-autocomplete 0.3.0 (core)",
                "@oclif/plugin-commands 1.3.0 (core)",
                "@oclif/plugin-help 3.3.1 (core)",
                "@oclif/plugin-not-found 1.2.6 (core)",
                "@oclif/plugin-plugins 1.10.11 (core)",
                "@oclif/plugin-update 1.5.0 (core)",
                "@oclif/plugin-warn-if-update-available 1.7.3 (core)",
                "@oclif/plugin-which 1.0.4 (core)",
                "@salesforce/analytics 1.0.6",
                "@salesforce/lwc-dev-server 2.11.0",
                "@salesforce/sfdx-plugin-lwc-test 0.1.7 (core)",
                "@salesforce/sfdx-scanner 2.13.1",
                "alias 2.0.0 (core)",
                "apex 0.11.0 (core)",
                "auth 1.8.2 (core)",
                "community 1.1.4 (core)",
                "config 1.3.30 (core)",
                "custom-metadata 1.0.12 (core)",
                "data 0.6.12 (core)",
                "generator 1.2.2 (core)",
                "info 2.0.0 (core)",
                "isvte-sfdx-plugin 1.1.15",
                "limits 2.0.0 (core)",
                "org 1.11.2 (core)",
                "salesforce-alm 54.1.0 (core)",
                "schema 2.0.0 (core)",
                "sfdx-cli 7.146.1 (core)",
                "source 1.9.3 (core)",
                "telemetry 1.4.0 (core)",
                "templates 54.3.0 (core)",
                "trust 1.1.0 (core)",
                "user 1.7.1 (core)"
        ],
        "osVersion": "Darwin 21.4.0"
}

@constantine-prokopenko-vrp Can you double-check the naming of your file? I tried to duplicate but it worked fine for me.
That said, I'm on one version newer: sfdx-cli/7.147.1 darwin-x64 node-v16.14.2
Also, the filename has to end in messageChannel-meta.xml, not just messageChannel, just in case you copied that and didn't type it wrong.
The reason I mention the naming, is because your example is controlChanel instead of controlChannel. When I named everything as you posted, force:source:push said nothing found. Adding -meta.xml worked without issue. I tried naming the file different from the masterLabel, just to get the same error, but I got nothing (it just kept working).
So, either some details aren't perfect, or 7.147 might fix your issue.

@constantine-prokopenko-vrp Can you double-check the naming of your file? I tried to duplicate but it worked fine for me. That said, I'm on one version newer: sfdx-cli/7.147.1 darwin-x64 node-v16.14.2
Also, the filename has to end in messageChannel-meta.xml, not just messageChannel, just in case you copied that and didn't type it wrong.
The reason I mention the naming, is because your example is controlChanel instead of controlChannel. When I named everything as you posted, force:source:push said nothing found. Adding -meta.xml worked without issue. I tried naming the file different from the masterLabel, just to get the same error, but I got nothing (it just kept working).
So, either some details aren't perfect, or 7.147 might fix your issue.

You are right.

@constantine-prokopenko-vrp Sounds good, but was it the naming, or the version? I'm asking just so that anyone else finding this can know which detail ended up fixing the situation.

@i814u2 the issue was related to the extension of the file.
The typo in the name worked fine. Once I added the messageChannel-meta.xml extension in lieu of messageChannel the issue vanished.


Update pickx provider url

Hey guys, the last weeks we have been lucky because the provider hasn't changed the retrieve url.
However I'm sure they'll change it over time.
I've spend quite some time trying to see how I could retrieve the url through code but I had no success.
I don't mind updating the url when it changes, however since it takes quite some time for a PR to be approved the provider is unavailable for quite some time.
What could we do to maybe speed things up ?


macOS X 10.15 Catalina support?

On the Public betas of Mac OS X QLStephen.qlgenerator stopped working. I've attached a screenshot with the message I'm receiving:

I haven't found a workaround.
Thank you.

This is probably because of notarization enforcement. The binary just needs to be notarized by Apple. (Which I believe requires their $99 developer program subscription.)

In the mean time, to get around this, you can go to the folder (⌘⇧G from Finder) ~/Library/Quicklook/QLStephen.qlgenerator/Contents/MacOS/ and right-click QLStephen, selecting Open. This will give you the option to open it anyway, and it should load correctly in the future.

On the latest beta you can get by it by going to Security in system preferences after you try and open it once and hit "Allow Anyway". Still would love to see it notarized properly.

This is probably because of notarization enforcement. The binary just needs to be notarized by Apple. (Which I believe requires their $99 developer program subscription.)

Not gonna lie this sounds like extortion. Open source developers should be able to freely ship their code when end users fully understand and accept those risks.

Notarization does not require the $99/yr subscription. Just needs an Developer Apple ID and Xcode .

On the latest beta you can get by it by going to Security in system preferences after you try and open it once and hit "Allow Anyway". Still would love to see it notarized properly.

I tried qlmanage -p README.MD for a readme file. I don't get the warning to move the plugin to the Trash, but I now get an error message in the console and the file appears the way it did if I never installed this plugin (plain text).
Testing Quick Look preview with files:
	README.MD
2019-10-07 20:18:17.998 qlmanage[32498:129283] *** CFMessagePort: bootstrap_register(): failed 1100 (0x44c) 'Permission denied', port = 0x6f07, name = 'com.apple.coredrag'
See /usr/include/servers/bootstrap_defs.h for the error codes.
2019-10-07 20:18:18.054 qlmanage[32498:129283] *** CFMessagePort: bootstrap_register(): failed 1100 (0x44c) 'Permission denied', port = 0xb01f, name = 'com.apple.tsm.portname'
See /usr/include/servers/bootstrap_defs.h for the error codes.

On a related note, I see this message when I try the same thing for a json file with a json reading plugin. this preview cannot be safely displayed in quick look

Just updated my operating system and got this message:

Same here, just updated to Catalina yesterday and QLStephen stopped working.
Please update it in order to be compatible with Catalina.

+1

Please use thumbs up instead of "+1" or "me too" comments. They often add no value, clutter the issue's discussions, and generate unnecessary notifications to all participants, including the project's maintainers.

If it helps, here are the docs on Notarizing Your App Before Distribution.

@samcat116 This is what I get when I follow the instructions on this page. The app in the screen shot is an freshly created, properly code signed app that meets all of the notarization requirements. If you know something I don't I would love to be proven wrong, but from all the resources I've come across and my own personal experience it seems that the paid Apple Developer Program membership is a necessary part of notarization.

Can you try with the CLI?
As per Notarize Your Preexisting Software under Notarizing Your App Before Distribution, you can try to Upload Your App to the Notarization Service using altool
It might look more complex, but could you give it a shot and try it out.

@KoCMoHaBTa When following those instructions, the Archive Post-action script that it gives doesn't even export the zip file that it is supposed to export. I made my own zip file instead, tried uploading it, and got this error. I find it weird that there is a space between "provider" and the period following it, like there is supposed to be a provider name there. The command I ran is exactly the command given in the instructions (except for the file name of course). I'm not entirely sure what a provider is in this context, but I'm guessing it's related to ADP membership.

@partheseas Check this out - https://forums.developer.apple.com/thread/119445
Looks like the message is misleading and for some reason, the tool cannot find this provider automatically.
So you have to specify it as the --asc-provider parameter, part of altool command.
In order to find your provider name - check the first post from eskimo on this thread - https://forums.developer.apple.com/thread/113798

watching……

Simply cross-referencing similar issues in other QuickLook plugins in case a solution surfaces somewhere :

https://github.com/anthonygelibert/QLColorCode/issues/51
https://github.com/toland/qlmarkdown/issues/89
https://github.com/Nyx0uf/qlImageSize/issues/45
https://github.com/Marginal/QLVideo/issues/63
https://github.com/ealeksandrov/ProvisionQL/issues/30
https://github.com/hezi/QuickLookAPK/issues/12

Also, there seems to be changes in Catalina beyond notarization breaking the plugins.

Note that sudo qlmanage -p README.md works for me, with SIP and notarization disabled (with csrutil disable and sudo spctl --master-disable).
Is the move forward to publish a version that is notarized? Or is it a different issue?

So I tried notarizing one of the plugins with my paid developer account, and it doesn't seem to accept .qlgenerator files
I ran the xcrun alttool command, and got an error like
 1 package(s) were not uploaded because they had problems:
	/var/folders/nz/nlsr_8yn2tdblj6fcfyylv140000gn/T/62F12993-D9CA-4467-829C-0460DC836E3A/com.fiatdev.QLMarkdown.itmsp - Error Messages:
		ERROR ITMS-4064: "File extension of file 'QLMarkdown' is invalid for this software; use 'zip,pkg,dmg' instead." at SoftwareAssets/EnigmaSoftwareAsset
2019-10-15 17:40:56.282 altool[3526:23550] *** Error: ERROR ITMS-4064: "File extension of file 'QLMarkdown' is invalid for this software; use 'zip,pkg,dmg' instead." at SoftwareAssets/EnigmaSoftwareAsset

There seems to be no documentation online on notarizing QuickLook plugins either.

Check this out -> https://github.com/anthonygelibert/QLColorCode/issues/51#issuecomment-541235470

I hope description on this site might be useful.

Thanks @KoCMoHaBTa @ahmetgeymen, I'll try this again in the coming weekend.

In the mean time, to get around this, you can go to the folder (⌘⇧G from Finder) ~/Library/Quicklook/QLStephen.qlgenerator/Contents/MacOS/ and right-click QLStephen, selecting Open. This will give you the option to open it anyway, and it should load correctly in the future.

it works for me at macOS 10.15.

QL插件都在~/Library/QuickLook/目录，但从系统设置->拓展->快速查看，却没有允许使用此目录，但其中包含了/System/Library/Frameworks/RealityKit.framework内的几个插件。
brew cask 不允许使用root，并且/System/Library/Frameworks/RealityKit.framework只读。
很烦~ :(

@samcat116

Notarization does not require the $99/yr subscription. Just needs an Developer Apple ID and Xcode .

You are kidding right? You only get a valid developer id, when you pay $99 for the Apple Developer program.

~/Library/Quicklook/QLStephen.qlgenerator/Contents/MacOS/

In the mean time, to get around this, you can go to the folder (⌘⇧G from Finder) ~/Library/Quicklook/QLStephen.qlgenerator/Contents/MacOS/ and right-click QLStephen, selecting Open. This will give you the option to open it anyway, and it should load correctly in the future.

it works for me at macOS 10.15.

not for me. What else did you do?

not for me. What else did you do?

I had to go to Security & Privacy in System Preferences right after you get an error message and I could whitelist it from there. I think I went: Quicklook -> error -> Security panel -> Quicklook again -> additional confirmation dialog and then it worked.

For me just asked me in the begging to approve, after that, it's not showing that normal window approve in sucurity.
This path I could not find it: Quicklook -> error -> Security panel -> Quicklook again ->
suggestions ?

Sorry that was unclear. I mean that I triggered an error by trying to quicklook a file using QLStephen and after that I could go to the security settings to approve it etc

Sorry for this questions again...
Ok, If I got your logic, I run this:
root@MacBookPro _FILMs # qlmanage -p Test.mkv
Testing Quick Look preview with files:
	Test.mkv
2019-10-22 13:01:01.845 qlmanage[11471:2293464] *** CFMessagePort: bootstrap_register(): failed 1100 (0x44c) 'Permission denied', port = 0x6e03, name = 'com.apple.coredrag'
See /usr/include/servers/bootstrap_defs.h for the error codes.
2019-10-22 13:01:01.884 qlmanage[11471:2293464] *** CFMessagePort: bootstrap_register(): failed 1100 (0x44c) 'Permission denied', port = 0x1431f, name = 'com.apple.tsm.portname'
See /usr/include/servers/bootstrap_defs.h for the error codes.

After that, nothing show up.

Perhaps an inspiration to port this to the new system can be found here https://github.com/anthonygelibert/QLColorCode/issues/51

~/Library/Quicklook/QLStephen.qlgenerator/Contents/MacOS/

In the mean time, to get around this, you can go to the folder (⌘⇧G from Finder) ~/Library/Quicklook/QLStephen.qlgenerator/Contents/MacOS/ and right-click QLStephen, selecting Open. This will give you the option to open it anyway, and it should load correctly in the future.

it works for me at macOS 10.15.

not for me. What else did you do?

I don't know how it happened. I tried to uninstall it and then do the same thing again, but after deleting it , the md file still can be preivewed. It confused me.

Oh, maybe the Xcode,  because it suggests me to open with it.
ps: I installed the Xcode yesterday.

Do you have a Apple paid dev account? That according to what I'm reading can make a huge difference.

So I was successfully able to notarise the plugin, using the steps here. Unfortunately, the signed binary still didn't work in Catalina (atleast QLMarkdown, which I tested). I didn't get security related errors, but it just failed to work.
I think these plugins will have to be re-written as System Extensions to work in Catalina.

Solution that did a trick for me:

Disable Gatekeeper (Terminal > sudo spctl --master-disable)
Check: .ipa preview works
Enable Gatekeeper (Terminal > sudo spctl --master-enable)
Open 'System Preferences' > 'Security & Privacy' > General tab >> you will see a message at the bottom, 'QLStephen.qlgenerator was blocked from opening because it is not from an identified developer.' > Click on 'Open anyway'
It works now with enabled Gatekeeper

2. Check: .ipa preview works

What do you mean about "Check: .ipa preview works" ?
I downloaded an .ipa app and pressed Space in Finder, nothing shows up, and tried: qlmanage -p -d1 Downloads/File.ipa and still, nothing is coming to ask me the permission on the System Preferences' > 'Security & Privacy'.
suggestions?

I did all of that but still doesn't show anything. Also, I did a test with a zip file with the BetterZip quick preview and also is not working.

What else I'm missing?

Preview of zip files doesn't fork for me as well now.
But ipa - works.
If you want to see preview of archive formats you can try this:
https://macitbetter.com/BetterZip-Quick-Look-Generator/
Install it > Launch > Relaunch Finder > Try zip preview

Still. there is something else that you have done in yours that I didn't in mine.
Do you need to have the Xcode installed?
have you done this too: sudo csrutil disable ?
I consider myself pretty smart, so I'm doing what you are saying to do.

Yes, I have Xcode installed, but I think it doesn't matter.
No, 'sudo csrutil disable' didn't do.
I'm sure it should work with disabled Gatekeeper, so check the preview functionality when you have this:

(and don't forget to relaunch Finder)

PS: the files with .md and .ipa the previews are working, but not the .apk .zip .mkv .json .js .mp3.
All the QuickPreview extensions were installed by the same way.

Yes, I have Xcode installed, but I think it doesn't matter.
No, 'sudo csrutil disable' didn't do.
I'm sure it should work with disabled Gatekeeper, so check the preview functionality when you have this:

(and don't forget to relaunch Finder)

yeap, that it my case, even after reboot and still.

Hm...
Not sure, but maybe try to update Homebrew.

have done that too.
:(

I've been experimenting with a fresh macOS Catalina install on a vm and these are the steps I can reliably make QLStephen work:

brew cask install qlstephen
Restart Finder
Open a finder window and navigate to any folder that contains a plaintext file qlstephen tries to generate a preview for. Maybe you need to trigger Quicklook explicitly by selecting the file and hitting space.
This will generate an error message saying the developer can't be verified. From "move to trash" and "cancel" choose "cancel"
Open System Preferences -> Security & Privacy and under the General tab at the Botton click "Allow anyway"
Log out and log back in
Repeat step 2
In the warning message that now appears choose "open"

Everything should be working now. If you don't have a clean install and you can't trigger the first error message anymore I would uninstall QLStephen first and restart your Mac.

I've been experimenting with a fresh macOS Catalina install on a vm and these are the steps I can reliably make QLStephen work:

brew cask install qlstephen
Restart Finder
Open a finder window and navigate to any folder that contains a plaintext file qlstephen tries to generate a preview for. Maybe you need to trigger Quicklook explicitly by selecting the file and hitting space.
This will generate an error message saying the developer can't be verified. From "move to trash" and "cancel" choose "cancel"
Open System Preferences -> Security & Privacy and under the General tab at the Botton click "Allow anyway"
Log out and log back in
Repeat step 3
In the warning message that now appears choose "open"

Everything should be working now. If you don't have a clean install and you can't trigger the first error message anymore I would uninstall QLStephen first and restart your Mac.
Btw, depending on factors I'm not entirely sure about you can sometimes skip step 2 and/or 6

Try this and not work for QLimagesize

I've been experimenting with a fresh macOS Catalina install on a vm and these are the steps I can reliably make QLStephen work:

brew cask install qlstephen
Restart Finder
Open a finder window and navigate to any folder that contains a plaintext file qlstephen tries to generate a preview for. Maybe you need to trigger Quicklook explicitly by selecting the file and hitting space.
This will generate an error message saying the developer can't be verified. From "move to trash" and "cancel" choose "cancel"
Open System Preferences -> Security & Privacy and under the General tab at the Botton click "Allow anyway"
Log out and log back in
Repeat step 3
In the warning message that now appears choose "open"

Everything should be working now. If you don't have a clean install and you can't trigger the first error message anymore I would uninstall QLStephen first and restart your Mac.
Btw, depending on factors I'm not entirely sure about you can sometimes skip step 2 and/or 6

Guys, sorry but I lost my brain, there is something that we are missing.
I did also a new VM, and did this:
`
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brew cask install betterzip
created a test .zip
test pressing Space
nothing happened
relunched Finder
nothing happened
opened once the Betterzip unckecking everything
test pressing Space
nothing happened
relunched Finder
Worked
brew cask install QuickNFO
created a test .nfo
test pressing Space
nothing happened
relunched Finder
nothing happened
brew cask install qlcolorcode
created a test .js
test pressing Space
nothing happened
relunched Finder
error about permission show up
authorized in Settings/Security
test pressing Space
nothing happened
relunched Finder
nothing happened
restarted the VM
error about permission show up / clicked open
test pressing Space
this error below show up

brew cask install quicklook-json
created a test .js
test pressing Space
nothing happened
relunched Finder
Worked
but....after other instalation below, this stopped to work. What is the logic?
brew cask install qlimagesize
created a test .nfo
test pressing Space
nothing happened
relunched Finder
nothing happened
brew cask install quicklook-csv
created a test .nfo
test pressing Space
nothing happened
relunched Finder
nothing happened
brew cask install suspicious-package
created a test .zip
test pressing Space
nothing happened
relunched Finder
nothing happened
opened once the suspicious-package app
test pressing Space
nothing happened
relunched Finder
Worked
brew cask install qlstephen
created a test README
test pressing Space
nothing happened
relunched Finder
error about permission show up
authorized in Settings/Security
test pressing Space
nothing happened
relunched Finder
nothing happened
restarted the VM
error about permission show up / clicked open
test pressing Space
this error below show up

`
like...in my real computer, the only thing that it's working is:
qlmarkdown
suspicious-package
provisionql
QuickLookAddict
So....what are we missing?

Hi there,
The box "qlstephen cannot be opened because its from an unidentified developer" with  button "OPEN ANYWAY" wasn't appearing in my Security and privacy.
I managed to make it work in my machine doing this:

brew cask reinstall qlstephen
Relaunch Finder
sudo spctl --master-disable # plug gatekeeper back
ensure that it works by doing a quicklook on a random file
sudo spctl --master-enable # plug gatekeeper back
then opening the "Security and Privacy" did contain the "OPEN ANYWAY" button on the bottom

Cheers,

@jorge-d Doesn't work.

I've been following and attempting most of the suggested solutions without any success... until just now.  I did the following:

open ~/Library/QuickLook/ and removed QLMarkdown.qlgenerator, which I was about to reinstall.  It probably makes sense to delete any non-working .qlgenerator.
ran qlmanage -r
relaunched finder
reinstalled quicklook plugin(s)
ran qlmanage -r + relaunched finder
invoked quicklook on a few files.
NOTE: it didn't immediately seem to work so I repeated the previous step 1-2 times.  After relaunching finder for the 2-3rd time and invoking quicklook it decided to work.

Removing and reinstalling quicklook plugins seemed to make the difference.   That and attempting to reload quicklook + relaunch finder multiple times.  Sorry for the non-specific potential fix but hope it helps someone.  It's been driving me crazy.

no lock from me again.

In the mean time, to get around this, you can go to the folder (⌘⇧G from Finder) ~/Library/Quicklook/QLStephen.qlgenerator/Contents/MacOS/ and right-click QLStephen, selecting Open. This will give you the option to open it anyway, and it should load correctly in the future.

For me this was not enough.  I had to open the binary like this and also open the bundle.  Right-click QLStephen.qlgenerator and open with BBEdit, accept the warning.  Now it works.

In the mean time, to get around this, you can go to the folder (⌘⇧G from Finder) ~/Library/Quicklook/QLStephen.qlgenerator/Contents/MacOS/ and right-click QLStephen, selecting Open. This will give you the option to open it anyway, and it should load correctly in the future.

For me this was not enough. I had to open the binary like this and also open the bundle. Right-click QLStephen.qlgenerator and open with BBEdit, accept the warning. Now it works.

I did that and still doens't work for me.

simple way to fix this warning is to run xattr -d com.apple.quarantine ~/Library/QuickLook/QLStephen.qlgenerator

simple way to fix this warning is to run xattr -d com.apple.quarantine ~/Library/QuickLook/QLStephen.qlgenerator

no success here.

I've been following and attempting most of the suggested solutions without any success... until just now. I did the following:

open ~/Library/QuickLook/ and removed QLMarkdown.qlgenerator, which I was about to reinstall.  It probably makes sense to delete any non-working .qlgenerator.
ran qlmanage -r
relaunched finder
reinstalled quicklook plugin(s)
ran qlmanage -r + relaunched finder
invoked quicklook on a few files.
NOTE: it didn't immediately seem to work so I repeated the previous step 1-2 times.  After relaunching finder for the 2-3rd time and invoking quicklook it decided to work.

Removing and reinstalling quicklook plugins seemed to make the difference. That and attempting to reload quicklook + relaunch finder multiple times. Sorry for the non-specific potential fix but hope it helps someone. It's been driving me crazy.

Hi there,
The box "qlstephen cannot be opened because its from an unidentified developer" with button "OPEN ANYWAY" wasn't appearing in my Security and privacy.
I managed to make it work in my machine doing this:

brew cask reinstall qlstephen
Relaunch Finder
sudo spctl --master-disable # disable gatekeeper
ensure that it works by doing a quicklook on a random file
sudo spctl --master-enable # plug gatekeeper back
then opening the "Security and Privacy" did contain the "OPEN ANYWAY" button on the bottom

Cheers,

After tried those two suggestions, qlstephen seems to works fine. Thank.

I have a feeling two problems are conflated here:

QLStephen not working at all
QLStephen not working for certain file types.

I just did some tinkering and realized that QLStephen will work on non-suffixed files following this suggestion: https://github.com/whomwah/qlstephen/issues/81#issuecomment-552341771
However, QLStephen won’t work for files with arbitrary extensions – .fea in my case.
I tried re-assigning the default opening application – no luck just yet.
I’d be curious to find out how to permanently force QuickLook to use a specific generator for a given file type.

I have been doing some debugging. @frankrolf you are right.
The way QuickLook selects a plugin to generate a preview is by matching the LSItemContentTypes properties in the Info.plist of QLStephen with the kMDItemContentType property of a file, which you can obtain by doing mdls -name kMDItemContentType myFile.
For example, if a file has a value of public.data for the kMDItemContentType property, QLStephen will be used to preview it (because public.data is under the LSItemContentTypes property of the Info.plist).
I noticed that yml files have the property kMDItemContentType set to public.yaml, and thus they are not opened with QLStephen. Also, some files have a dynamic value for kMDItemContentType, as you can read here, and they are not opened with QLStephen.
A solution that works for me is to add some extra values to the Info.plist of QLStephen:
<key>LSItemContentTypes</key>
<array>
	<string>public.data</string>
	<string>public.yaml</string>
	<string>com.apple.xcode.strings-text</string>
	<string>dyn.ah62d4rv4ge81e3pxr70hq3pe</string>
</array>

Find the plugin attached here with those changes:
QLStephen.qlgenerator.zip
Remember that every time that a plugin is changed, Finder has to be restarted.
Also, find here a script to read the kMDItemContentType property of multiple files:
for f in *; do
  type=$(mdls -name kMDItemContentType $f)
  echo "$f -> $type"
done

@samcat116

Notarization does not require the $99/yr subscription. Just needs an Developer Apple ID and Xcode .

You are kidding right? You only get a valid developer id, when you pay $99 for the Apple Developer program.

I have a valid developer id and I didn't have to pay the $99.

(just posted my solution in another issue https://github.com/anthonygelibert/QLColorCode/issues/51#issuecomment-563982425)
Removing the quarantine attribute from all files is another solution, to get Quicklook working. No need to change any code.
List attributes
xattr -r ~/Library/QuickLook/QLColorCode.qlgenerator
Delete attribute com.apple.quarantine
xattr -d -r com.apple.quarantine ~/Library/QuickLook/QLColorCode.qlgenerator

(just posted my solution in another issue anthonygelibert/QLColorCode#51 (comment))
Removing the quarantine attribute from all files is another solution, to get Quicklook working. No need to change any code.
List attributes
xattr -r ~/Library/QuickLook/QLColorCode.qlgenerator
Delete attribute com.apple.quarantine
xattr -d -r com.apple.quarantine ~/Library/QuickLook/QLColorCode.qlgenerator

It doesn't work for me. :(

Hi there,
The box "qlstephen cannot be opened because its from an unidentified developer" with button "OPEN ANYWAY" wasn't appearing in my Security and privacy.
I managed to make it work in my machine doing this:
* `brew cask reinstall qlstephen`

* Relaunch Finder

* `sudo spctl --master-disable` # disable gatekeeper

* ensure that it works by doing a quicklook on a random file

* `sudo spctl --master-enable` # plug gatekeeper back

* then opening the "Security and Privacy" did contain the "OPEN ANYWAY" button on the bottom

Cheers,

Similar to this I did the following to get mine to show the elusive button:
brew cask remove qlstephen && brew cask install qlstephen
Open finder so that the cannot be opened because the developer cannot be verified error
Opened up System Preferences > Security and Privacy > General tab
Then there was a button at the bottom right of that box, next to text of the app which was blocked
(qlstephen).  Clicked allow and it now works fine.
This issue is affecting many applications (including big ones like Terraform).

simple way to fix this warning is to run xattr -d com.apple.quarantine ~/Library/QuickLook/QLStephen.qlgenerator

Works for me! DOn't forget killall Finder in the end!

simple way to fix this warning is to run xattr -d com.apple.quarantine ~/Library/QuickLook/QLStephen.qlgenerator

Works for me! DOn't forget killall Finder in the end!

I tried and it works on Catalina 10.15.1

not on 10.15.2 :-(

@leirissa
is gatekeeper disabled?
sudo spctl --master-disable

I installed QLStephen.qlgenerator via brew in 10.15.2
Gatekeeper is disabled
I clicked a README file (public.data) and pressed space
I cannot view the file in QL
What am I doing wrong?

indeed I am stucked as well,,,,e.g bla.conf files are showing the default app icons ( e.g sublime) but no preview...changing to xml and , bang ,,,ok

not on 10.15.2 :-(

@leirissa
I updated macOS to 10.15.2 and it works.

I did:
brew cask reinstall qlstephen
and re-launched the Finder. No-go!
spctl --status
assessments disabled

I did:
brew cask reinstall qlstephen
and re-launched the Finder. No-go!
spctl --status
assessments disabled

can you send example file with google drive.

compiled quickview that won't load: https://drive.google.com/open?id=1eo6q4JNmLxl_5EdAj3sRU0jtNzRgNj0U

compiled quickview that won't load: https://drive.google.com/open?id=1eo6q4JNmLxl_5EdAj3sRU0jtNzRgNj0U

@ballo sorry I meant the text file without extension. it shows the files without the extension I created myself. maybe there is something different in your file.

mdls -name kMDItemContentType README
kMDItemContentType = "public.data"

mdls -name kMDItemContentType testfile
kMDItemContentType = "public.data"

oke, so how to open a file with .conf ( mapped with sublime and only shows the icon)

mdls -name kMDItemContentType blah.conf
kMDItemContentType = "dyn.ah62d4rv4ge80g55sq2"

qlstephen is for files without extension?

@hazarek Look up "kMDItemContentType"

@hazarek Look up "kMDItemContentType"

so?

It isn't the "extension"

it does not show files with the conf extension because The plugin does not support.

Is there a different app that uses quick look plugins which logs their loading, or is it all done by the system and thus a black box

strange, before catalina this works!

I'm regretting Catalina very day. The 32bit absence has killed a lot of functionality like 32bit mplayer (old codecs) and WINE.
Keep it up Apple; Windows is looking better every 'upgrade'

@ballo https://iina.io/.
why do you use old fashioned mplayer.

@hazarek I use it when old win32 codecs are necessary. There's a compatibility layer.
I guess I should say used since Catalina makes it impossible now. I'll have to use Linux in a virtual machine, or figure out a downgrade method (which may be tricky since I never used Mojave)

Solution
Make sure you follow each step correctly. Please don't leave more unnecessary comments so that new users will see this one.

Install the plugin (brew cask install qlstephen)
Select a file without an extension. macOS will show a warning like this one.

DO NOT CLICK "Move to Trash"
Click "Cancel"

Open System Preferences
Visit Security & Privacy
Ensure you're in the General tab. You should see a notice regarding this plugin at the bottom:

Click "Allow Anyway"

Select another file without extension OR run:
qlmanage -p /path/to/file/without/extension
You should see a warning similar to the first one, but with a new button

Click "Open" 🎉

Enjoy QuickLooking extension less files on Catalina

'Select a file without an extension. macOS will show a warning like this one.
DO NOT CLICK "Move to Trash"'
nope

@ballo if it doesn’t happen, you didn’t install it. you already trashed the file, or some other plugin is displaying the file. Make sure you install it like the instructions say. My instructions are reproducible.

Yeah, maybe on your machine but not mine.

I had no issue with @fregante instructions - worked perfectly

xattr -cr ~/Library/QuickLook/QLStephen.qlgenerator
This worked as for all other apps with same issue

@varyform Can you confirm whether or not you saw the "cannot be opened" error and if your solution is for people who have seen the error?
I have yet to see that error.

1.5.1 should works on macOS 10.6 (Snow Leopard) - 10.15 (Catalina)

I uninstalled via brew, then installed the latest version:

==> Downloading https://github.com/whomwah/qlstephen/releases/download/1.5.1/QLStephen.qlgenerator.1.5.1.zip
Already downloaded: /Users/philfreo/Library/Caches/Homebrew/downloads/a66a639beb4f4dfd883e9b83c9260d66121184a25c59f02ecd2e322b1b75c598--QLStephen.qlgenerator.1.5.1.zip
==> Verifying SHA-256 checksum for Cask 'qlstephen'.
==> Installing Cask qlstephen
==> Moving QuickLook Plugin 'QLStephen.qlgenerator' to '/Users/philfreo/Library/QuickLook/QLStephen.qlgenerator'.
🍺  qlstephen was successfully installed!

Then I got this:

I also noticed this in Preferences:

Even after clicking Allow, the extension is not working for me.

Did you try to reboot your machine? QL cache is very error prone. qlmanage -r should also work, though I had situations where only a reboot help.

Did you try to reboot your machine? QL cache is very error prone. qlmanage -r should also work, though I had situations where only a reboot help.

qlmanage -r helped me to solve the same issue mentioned above

Without paying $99/yr for an Apple dev account I cannot fix this.
I found in testing that even reloading the plugin with qlmanage -r will NOT reload it for the preview in Finder. To do that I have to reload Finder.
Could you try this:

Click the lock to make change.
Click the allow anyway
qlmanage -r
Hold down Option key and Right Click on Finder’s Dock icon, then select “Relaunch” from the menu

Check if it works.

I would like to thank everyone for investigating/posting various solutions!
After applying some of them, the extension works for me on Catalina, but only for files without file extension.
If I am not completely mistaken, this was not the case before 10.15.
I posted about this here https://github.com/whomwah/qlstephen/issues/81#issuecomment-559236552 – does anyone have further insight into this?
Thanks!

Again, the QL caching is very error prone. Restarting Finder might help in most cases but not in all. My full procedure would be:

copy QuickLook plugin to ~/Library/QuickLook
run xattr -cr ~/Library/QuickLook/*.qlgenerator (sudo if needed)
run qlmanage -r
run qlmanage -r cache
reboot

@frankrolf Do you have other plugins that may override specific file types? I'm not sure what the precedence is when multiple plugins claim the same extension. Also the readme states:

If you want to preview some text files that do have extensions (e.g., *.txt), follow these instructions.

I added the steps from @relikd to the README 🙇

The steps as outlined in the Readme, which do not require rebooting the entire computer, do NOT solve the problem for me. Basically so far I tried all those steps, in that order, and I still don't see anything when trying to view a LICENSE file.

Like others this is working for me except for files with an extension. I can QL RELEASE-NOTES but not catalina.out and I completely followed @relikd steps.

FWIW I've tried everything in this thread including removing all qlgenerator bundles except QLStephen.qlgenerator to no avail.
What is the actual process that loads the qlgenerator? Is there a background daemon that needs to be running? mp4s still work, so I can only assume /Library/QuickLook/Video.qlgenerator is being loaded. Maybe I should put my bundles there.

I can QL RELEASE-NOTES but not catalina.out

Check out issue #87 for discussion on file extensions and types and why some files work and some do not.

What is the actual process that loads the qlgenerator?

There is a process called qlmanage which handles deciding which plugin to use for a given file.

Sadly, debugging QL issues got much harder on Catalina. Previously you could run qlmanage -d4 -p MANIFEST.in and Terminal would output what plugins were loaded and what plugin was used for the preview. Now, Catalina complains argument for -d is deprecated, use Console info logs with subsystem com.apple.quicklook, categories Generator and/or Client.
Which means:

Start your Console app
Select Action menu and enable Include Info Messages and Include Debug Messages
Search for com.apple.quicklook and set the type of the search to Subsystem
Clear the log if necessary
Run qlmanage -p README on the file and see the results in Console.app (or -t for thumbnail)
Try to pinpoint the issue in the Console log

Again, sadly the results aren't useful in many cases. Stupid privacy rules hide important information, e.g., there are a couple of entries simply showing:
Registering <private> for <private>
I don't know how this can be useful at all. You don't even know what plugins were loaded. Still it is helpful in some cases where the QL plugin would crash!

@relikd I mentioned you in the comment, but for anyone else finding this thread, please head over to issue #87, this is not specifically a Catalina issue anymore, it has to do with dynamic UTI values. More info can be found in this comment


Disables both vertical and horizontal scroll

I can seem to scroll both vertically and horizontally. It all seems like overflow is set to default

Please provide an example to reproduce your issue, and the expected behavior.


assertThat in an optional of String gives a wrong result.

Summary
I tried to test the equals on a an Optional of String and a string. The result is alwas true.
However while runnning the test in debug mode . The instruction inside parenthesis if evaluate to false,
but the final assertThat evaluation is true.
Example
    @Test
    public void assertOptionalString_is_not_equals_to_string() {
         final String aString="alain";
         final Optional<String> anOptionalOfString =  Optional.of("alain");
         org.assertj.core.api.Assertions.assertThat(anOptionalOfString.equals(aString)); // pass ?
         org.assertj.core.api.Assertions.assertThat(anOptionalOfString.get().equals(aString)); // pass
         Assert.assertTrue(anOptionalOfString.equals(aString)); // fail
    }

you are misusing the API, assertThat(anOptionalOfString.equals(aString)) does nothing, you should do either of these:
assertThat(anOptionalOfString.get()).isEqualTo(aString);
// better
assertThat(anOptionalOfString).contains(aString);

See

http://joel-costigliola.github.io/assertj/assertj-core.html#faq-incorrect-api-usage
http://joel-costigliola.github.io/assertj/core-8/api/org/assertj/core/api/AbstractOptionalAssert.html#contains-VALUE-

Thanks mister.
This will solve a lot of bad assertions i  saw in severals code.
I wondering if it is not possible to not authorize such instructions, or make tests fails ( which a special message ) ,  or throws runtime exceptions while running tests containing such instructions.
regards,
Alain

You can use static code analysis tools like findbugs or error-prone to check for these errors.


Add cleanerupper tool

cleanerupper will clean up all resources in projects, added to prow periodics to cleanup test resources that may get left behind

Why cleanerupper? HGTV?