Errors from Cs Circles

List of errors from http://daveagp.github.io/errors/python.txt (see https://arxiv.org/pdf/1509.07238.pdf)

[ ] SyntaxError: invalid syntax
[ ] NameError: name '' is not defined
[ ] EOFError: EOF when reading a line
[ ] SyntaxError: unexpected EOF while parsing
[ ] IndentationError: unindent does not match any outer indentation level
[ ] SyntaxError: EOL while scanning string literal
[ ] IndentationError: unexpected indent
[ ] TabError: inconsistent use of tabs and spaces in indentation
[ ] IndentationError: expected an indented block
[ ] ValueError: invalid literal for func() with base #: ''
[ ] TypeError: '' object is not iterable
[ ] TypeError: '' object is not callable
[ ] TypeError: can't multiply sequence by non-int of type ''
[ ] TypeError: unsupported operand type(s) for +: '' and ''
[ ] NameError: global name '' is not defined
[ ] TypeError: unsupported operand type(s) for -: '' and ''
[ ] IndexError: string index out of range
[ ] SyntaxError: unexpected character after line continuation character
[ ] TypeError: Can't convert '' object to str implicitly
[ ] TypeError: unsupported operand type(s) for //: '' and ''
[ ] AttributeError: '' object has no attribute ''
[ ] TypeError: '' object is not subscriptable
[ ] TypeError: string indices must be integers
[ ] IndexError: list index out of range
[ ] SyntaxError: can't assign to function call
[ ] UnboundLocalError: local variable '' referenced before assignment
[ ] SyntaxError: can't assign to operator
[ ] ValueError: could not convert string to float: ''
[ ] TypeError: unorderable types: func() > func()
[ ] TypeError: not all arguments converted during string formatting
[ ] TypeError: object of type '' has no func()
[ ] TypeError: '' object cannot be interpreted as an integer
[ ] TypeError: list indices must be integers, not
[ ] TypeError: an integer is required
[ ] TypeError: unsupported operand type(s) for /: '' and ''
[ ] TypeError: func() expected string of length #, but  found
[ ] RuntimeError: maximum recursion depth exceeded while calling a Python object
[ ] TypeError: unsupported operand type(s) for ** or func(): '' and ''
[ ] IndexError: list assignment index out of range
[ ] TypeError: slice indices must be integers or None or have an index method
[ ] TypeError: unsupported operand type(s) for *: '' and ''
[ ] SyntaxError: break outside loop
[ ] TypeError: func() expected a character, but string of length # found
[ ] SyntaxError: return outside function
[ ] SyntaxError: can't assign to literal
[ ] TypeError: unorderable types: func() < func()
[ ] ValueError: ? is not in list
[ ] TypeError: func() argument must be a string or a number, not ''
[ ] TypeError: can only concatenate list (not "") to list
[ ] TypeError: '' object does not support item assignment
[ ] ValueError: math domain error
[ ] SyntaxError: invalid token
[ ] TypeError: func() takes exactly # arguments (# given)
[ ] RuntimeError: maximum recursion depth exceeded in comparison
[ ] TypeError: '' is an invalid keyword argument for this function
[ ] TypeError: unorderable types: func() >= func()
[ ] SyntaxError: invalid character in identifier
[ ] TypeError: func() missing # required positional arguments: ''
[ ] MemoryError
[ ] TypeError: bad operand type for unary +: ''
[ ] ZeroDivisionError: integer division or modulo by zero
[ ] SyntaxError: continue not properly in loop
[ ] TypeError: unsupported operand type(s) for ^: '' and ''
[ ] TypeError: func() takes at least # arguments (# given)
[ ] TypeError: bad operand type for unary -: ''
[ ] SyntaxError: keyword can't be an expression
[ ] RuntimeError: maximum recursion depth exceeded
[ ] TypeError: descriptor '' requires a '' object but received a ''
[ ] TypeError: func() takes no arguments (# given)
[ ] ValueError: list.remove(x): x not in list
[ ] ZeroDivisionError: division by zero
[ ] TypeError: a float is required
[ ] TypeError: func() argument must be a string or a number
[ ] SyntaxError: can use starred expression only as assignment target
[ ] TypeError: unorderable types: func() <= func()
[ ] PermissionError: [Errno #] Permission denied: ''
[ ] TypeError: func() takes # positional arguments but # were given
[ ] TypeError: can only concatenate tuple (not "") to tuple
[ ] TypeError: argument of type '' is not iterable
[ ] ImportError: No module named ''
[ ] TypeError: unsupported operand type(s) for %: '' and ''
[ ] SyntaxError: non-keyword arg after keyword arg
[ ] TypeError: func() argument after * must be a sequence, not
[ ] TypeError: unsupported operand type(s) for +=: '' and ''
[ ] TypeError: func() takes no keyword arguments
[ ] SyntaxError: EOF while scanning triple-quoted string literal
[ ] ValueError: substring not found
[ ] TypeError: func() expected # arguments, got #
[ ] ZeroDivisionError: float division by zero
[ ] AttributeError: type object '' has no attribute ''
[ ] IndexError: pop index out of range
[ ] TypeError: func() takes at most # arguments (# given)
[ ] ValueError: func() arg is an empty sequence
[ ] TypeError: func() expected at most # arguments, got #
[ ] ValueError: func() arg not in range(Ox#)
[ ] TypeError: unsupported operand type(s) for &: '' and ''
[ ] IndexError: tuple index out of range
[ ] TypeError: func() can't convert non-string with explicit base
[ ] SyntaxWarning: name '' is assigned to before global declaration
[ ] BlockingIOError: [Errno #] Resource temporarily unavailable
[ ] FileNotFoundError: [Errno #] No such file or directory: ''
[ ] ValueError: could not convert string to float:
[ ] TypeError: descriptor '' of '' object needs an argument
[ ] ValueError: too many values to unpack (expected #)
[ ] TypeError: '' requires string as left operand, not
[ ] SyntaxError: can't delete function call
[ ] SyntaxError: name '' is parameter and global
[ ] TypeError: integer argument expected, got float
[ ] TypeError: func() first arg must be str or a tuple of str, not
[ ] TypeError: int object argument after * must be a sequence, not
[ ] TypeError: func() argument # must be str, not
[ ] ValueError: empty separator
[ ] SyntaxError: can't assign to comparison
[ ] TypeError: func() arg # must be a type or tuple of types
[ ] ValueError: slice step cannot be zero
[ ] AttributeError: '' object attribute '' is read-only
[ ] KeyError: ?
[ ] TypeError: '' object doesn't support item deletion
[ ] ImportError: No module named ''; math is not a package
[ ] OverflowError: (#, 'Numerical result out of range')
[ ] PermissionError: [Errno #] Operation not permitted
[ ] ValueError: not allowed to raise maximum limit
[ ] ValueError: need more than # value to unpack
[ ] socket.gaierror: [Errno -#] Name or service not known
[ ] TypeError: func() takes # or # arguments
[ ] ValueError: func() arg # must be >= # and <= #
[ ] TypeError: '' object does not support item deletion
[ ] TypeError: decoding str is not supported
[ ] UnicodeEncodeError: '' codec can't encode character '' in position #: surrogates not allowed
[ ] TypeError: source code string cannot contain null bytes
[ ] TypeError: func() got an unexpected keyword argument
[ ] SyntaxError: assignment to keyword
[ ] TypeError: func() does not take keyword arguments
[ ] TypeError: sequence item #: expected str instance,  found
[ ] SyntaxError: only named arguments may follow *expression
[ ] ValueError: attempt to assign sequence of size # to extended slice of size #
[ ] TypeError: bad operand type for func(): ''
[ ] SyntaxError: duplicate argument '' in function definition
[ ] TypeError: (Raised by CS Circles) func() can only be applied to numbers
[ ] TypeError: not enough arguments for format string
[ ] TypeError: unsupported operand type(s) for |: '' and ''
[ ] ValueError: func() arg # must not be zero
[ ] ValueError: need more than # values to unpack
[ ] ZeroDivisionError: float modulo
[ ] TypeError: func() expected at least # arguments, got #
[ ] TypeError: unhashable type: ''
[ ] TypeError: unsupported operand type(s) for -=: '' and ''
[ ] TypeError: must assign iterable to extended slice
[ ] TypeError: Required argument '' (pos #) not found
[ ] StderrExample
[ ] SyntaxError: keyword argument repeated
[ ] TypeError: can only assign an iterable
[ ] TypeError: must use keyword argument for key function
[ ] TypeError: '' object does not support indexing
[ ] TypeError: func() arg must be None or str
[ ] ValueError: unsupported format character '' () at index #
[ ] ImportError: cannot import name ?
[ ] IndexError: range object index out of range
[ ] SyntaxError: (unicode error) '' codec can't decode bytes in position #-#: truncated \xXX escape
[ ] SyntaxError: can't delete literal
[ ] TypeError: coercing to str: need bytes, bytearray or buffer-like object,  found
[ ] ZeroDivisionError: float func()
[ ] NotADirectoryError: [Errno #] Not a directory: ''
[ ] SyntaxError: illegal expression for augmented assignment
[ ] SyntaxError: yield outside function
[ ] TypeError: %d format: a number is required, not
[ ] TypeError: str returned non-string (type )
[ ] TypeError: end must be None or a string, not
[ ] TypeError: func() arg # must be a string, bytes or code object
[ ] TypeError: type  doesn't define ? method
[ ] TypeError: can't set attributes of built-in/extension type ''
[ ] TypeError: string argument expected, got ''
[ ] ZeroDivisionError: #.# cannot be raised to a negative power
[ ] AssertionError
[ ] SyntaxError: (unicode error) '' codec can't decode bytes in position #-#: truncated \uXXXX escape
[ ] SyntaxWarning: name '' is used prior to global declaration
[ ] AttributeError: exit
[ ] SyntaxError: can't assign to conditional expression
[ ] TypeError: (Raised by CS Circles) func() can only be applied to non-negative integers
[ ] TypeError: NoneType object argument after * must be a sequence, not
[ ] TypeError: float object argument after * must be a sequence, not
[ ] TypeError: unsupported operand type(s) for <<: '' and ''
[ ] OSError: [Errno #] File too large
[ ] SyntaxError: starred assignment target must be in a list or tuple
[ ] TypeError: str object argument after * must be a sequence, not
[ ] ValueError: Unknown format code '' for object of type ''
[ ] PermissionError: [Errno #] Permission denied
[ ] TypeError: The fill character cannot be converted to Unicode
[ ] TypeError: expected # arguments, got #
[ ] TypeError: type object argument after * must be a sequence, not
[ ] ValueError: incomplete format
[ ] socket.gaierror: [Errno -#] No address associated with hostname
[ ] IndexError: pop from empty list
[ ] OverflowError: long int too large to convert to float
[ ] RuntimeError: maximum recursion depth exceeded while getting the repr of a list
[ ] SyntaxError: (unicode error) '' codec can't decode bytes in position #-#: end of string in escape sequence
[ ] SyntaxError: can't assign to ()
[ ] TypeError
[ ] TypeError: can't convert complex to float
[ ] TypeError: can't take floor of complex number.
[ ] TypeError: must be bytes, not
[ ] TypeError: unsupported operand type(s) for >>: '' and ''
[ ] TypeError: unsupported operand type(s) for func(): '' and ''
[ ] ValueError: Invalid format specifier
[ ] ValueError: tuple.index(x): x not in tuple
[ ] IndentationError: unexpected unindent
[ ] IsADirectoryError: [Errno #] Is a directory: ''
[ ] OSError: [Errno #] Function not implemented
[ ] OverflowError: signed integer is greater than maximum
[ ] SyntaxError: (unicode error) '' codec can't decode bytes in position #-#: truncated \UXXXXXXXX escape
[ ] SyntaxError: Generator expression must be parenthesized if not sole argument
[ ] SyntaxError: can't delete ()
[ ] SyntaxError: cannot mix bytes and nonbytes literals
[ ] TypeError: %i format: a number is required, not
[ ] TypeError: '' does not support the buffer interface
[ ] TypeError: '' object is not an iterator
[ ] TypeError: The fill character must be exactly one character long
[ ] TypeError: can't convert complex to int
[ ] TypeError: format requires a mapping
[ ] TypeError: func() argument after ** must be a mapping, not
[ ] TypeError: func() got an unexpected keyword argument ''
[ ] TypeError: sep must be None or a string, not
[ ] ValueError: could not convert string to float: ""
[ ] main.BailOut
[ ] NameError: free variable '' referenced before assignment in enclosing scope
[ ] OverflowError: cannot fit '' into an index-sized integer
[ ] OverflowError: math range error
[ ] RuntimeError: can't start new thread
[ ] RuntimeError: maximum recursion depth exceeded while getting the repr of a tuple
[ ] StopIteration
[ ] SyntaxError: (unicode error) '' codec can't decode bytes in position #-#: malformed \N character escape
[ ] SyntaxError: (unicode error) '' codec can't decode bytes in position #-#: unknown Unicode character name
[ ] SyntaxError: no binding for nonlocal '' found
[ ] TypeError: bad operand type for unary ~: ''
[ ] TypeError: func() can't sum strings [use ''.join(seq) instead]
[ ] TypeError: object does not provide dir
[ ] TypeError: tuple indices must be integers, not
[ ] UnicodeEncodeError: '' codec can't encode characters in position #-#: ordinal not in range(#)
[ ] ValueError: Unknown conversion specifier b
[ ] ValueError: func() only accepts integral values
[ ] urllib.error.URLError: <urlopen error [Errno -#] Name or service not known>
[ ] AssertionError: You are mathing wrong
[ ] FAILED (errors=#)
[ ] FileNotFoundError: [Errno #] No such file or directory
[ ] ImportError: No module named ''; datetime is not a package
[ ] ImportError: No module named ''; random is not a package
[ ] OSError: [Errno #] Address already in use
[ ] OSError: out of pty devices
[ ] ProcessLookupError: [Errno #] No such process
[ ] RuntimeError: dictionary changed size during iteration
[ ] SyntaxError: can't assign to Ellipsis
[ ] SyntaxError: can't delete operator
[ ] SyntaxError: from future imports must occur at the beginning of the file
[ ] TypeError: Input must be an integer.
[ ] TypeError: Tuple or struct_time argument required
[ ] TypeError: argument # must have a "" method
[ ] TypeError: argument to func() must be a sequence
[ ] TypeError: array item must be unicode character
[ ] TypeError: bytes expected instead of str instance
[ ] TypeError: cannot convert dictionary update sequence element ## to a sequence
[ ] TypeError: expected string or buffer
[ ] TypeError: func() argument # must be tuple, not
[ ] TypeError: func() must have at least two arguments.
[ ] TypeError: must be a unicode character, not
[ ] TypeError: must be str, not
[ ] TypeError: range indices must be integers or slices, not
[ ] TypeError: str object argument after ** must be a mapping, not
[ ] TypeError: string argument without an encoding
[ ] TypeError: unsupported operand type(s) for *=: '' and ''
[ ] TypeError: unsupported type for timedelta days component: str
[ ] TypeError: zip argument ## must support iteration
[ ] UnicodeDecodeError: '' codec can't decode byte Ox# in position #: invalid start byte
[ ] ValueError: Format specifier missing precision
[ ] ValueError: Nothing to see here!
[ ] ValueError: Precision not allowed in integer format specifier
[ ] ValueError: Sign not allowed in string format specifier
[ ] ValueError: Single '' encountered in format string
[ ] ValueError: dictionary update sequence element ## has length #; # is required
[ ] ValueError: empty range for func() (#,#, -#)
[ ] ValueError: func() not defined for negative values
[ ] ValueError: unmatched '' in format
[ ] mainfile: error: must provide name of pdb file
[ ] sre_constants.error: redefinition of group name '' as group #; was group #

Looks like you need a space after the dash.

You are right; it's fixed now.

Migrated to new repo.


delay, missing states, button press info

I connected the nuki hub to my home assistant, and the basic functionality is working.
now i have a couple of questions:

Time from a HA command  (e.g. unlock the door) until unlocking starts: about 1.0 sec.
That's fast enough.
Time from a lock action until MQTT sees the new Status: 3.5 sec.
That's too long for my usecase.
i want to unarm my alarm system as soon as the lock gets unlocked.
And when i open the door the alarm system must have been unarmed, else it will fire an alarm...
is there any chance to get quicker status updates from the lock in HA?

For the lock/hastate topic, your documentation says, possible values are:
locking, locked, unlocking, unlocked, jammed.
i subscribed to lock/hastate, to get early status updates, especially unlocking and locking,
but i never see those states. States are updated only after lock has finished it's action, so
i only see the states locked and unlocked.
i really like to see unlocking und locking, because then the system could react a few seconds earlier.
how can i get early states unlocking and lockin?

i have to know when a user presses the nuki button, and i must know if he pressed once or twice,
or, as an alternative, what action (e.g. lock 'n' go) got triggered.
i need that to arm my alarm system, but only if the lock was locked by lock'n' go.
how do i do that?
My configuration:
Nuki Hub firmware V8.34 on a M5Stack ATOM Lite ESP32 & PoE Base W5500, no WiFi, only Ethernet.
Nuki SL4P with FW 4.3.4 (beta)

The ESP has to communicate with the lock to update the status, this takes times, sometimes a few seconds. There's little that can be done to change that. That's also the reason why you don't see states like locking and unlocking, they are done before they can be communicated to the ESP.
There's nothing in the bluetooth API that communicates if the user has pressed the button or not, you only see the result of that press when the configured action has finished. You can then read the "lock/trigger" node, if it reports "button", you know the last action has been triggered by someone pressing the button.
If you need faster updates, you have the option to buy a Pro lock with built-in Wifi. Since the Wifi is built-in, it will skip the step of communicating via bluetooth, and allows to much faster publish state updates.

@technyon: Was thinking of the exact same solution. I'm also working on better lock n go detection (the oldest outstanding issue on GH right now). I can probably incorporate this there.
@ManniTom: Since you apparently have control of your alarm through your smart home can't you just delay the alarm detection/firing with a couple of seconds to allow for the Nuki status to update?

@ManniTom Could you give us feedback if that would be useful for you?

@ManniTom: Since you apparently have control of your alarm through your smart home can't you just delay the alarm detection/firing with a couple of seconds to allow for the Nuki status to update?

No i cannot. the alarm system has it's own small doorlock pin, which is used to prevent that the door is openend while the alarm system is still armed. This is not a burglar secure lock, but only to remind the user, that the alarm system is still armed when he tries to open the door, but forgot to unarm.
the alam system has to be unarmed quick, so that the alarm systems doorlock pin get recessed before the nukis unlatch operation ends. i dont want to lengthen the unlatch time to more than 5 seconds for other reasons.
my other problem is that nuki hub will not inform me about presses of the nuki button used to starti a lockNgo process.
i need this info to check if the door was closed after lock'n'go, only then should the  alarm system be armed. this is to avoid false alarms, when someone played around with the button, activates lock'nGo but never leaves the house.

@iranl I just checked the code, this should already be available under "/lock/statusUpdated", isn't it?

Yes, added as part of #365.
Will start working on more options to speed up Nuki Hub soon. I have a feeling the auth log is bogging down my setup more and more to (not sure if this is Nuki Lock 4.0 only or all version). Need to debug this.

@ManniTom: I'm currently wrapping up a PR that will allow Nuki Hub to work in conjunction with the official MQTT implementation over WiFi/Thread. This should allow your SL4(P) to give you very vast updates and intermediate states in HA. Nuki Hub will manage the integration of the official implementation and Nuki Hub functionality that will allow fast updates with all the added functions of Nuki Hub. This should give you the functionality from your first 2 questions.
The Nuki Hub auth log implementation should allow for the functionality of question 3.

Sounds very good!
Right now i test the Nuki MQTT over WiFi interface of the SL4P, but it's not stable, and so it's unusable. Nuki seems to have great difficulties to get it stable, i don't expect that to be working within the next months.
Nuki Hub as an working and fast alternative would be highly appreciated, but i'm not sure how you will connect Nuki Hub to the SL4P by other means than Bluetooth. As far as i know SL4P offers MQTT only over WiFi. You don't want to use that, it's not stable, and there is already an HA integration for that. The other Interface of the SL4P is Matter over Thread, and i don't think that there is MQTT available. Correct me if i'm wrong....
I don't undersstand what you mean with "nuki hub will manage the integration of the official implementation". Could you please explain?
Maybe a bit longer explanation would help me understand... :)

Both SL4P and SL4 support MQTT over Thread. I have this running on my SL4 right now, will probably switch mu SL4P over when I'm done with the hybrid functionality. Thread MQTT is free on both the SL4 and the SL4P, they only charge for their remote access over Thread on the SL4.. No stability issues as of yet (weeks testing).
You can't run the official MQTT while you have a (Nuki Hub/official) bridge connected.
The idea of combining Nuki Hub and the official MQTT implementation is:

Setup Matter over Thread on your SL4(P)with a border router that supports NAT64 (Apple device or Home Assistant)
Pair Nuki Hub as an app with your SL4(P)
Set intervals to check for changes over BLE to really high numbers
Let Nuki Hub monitor the official MQTT topics for state change
In case of state changes publish as much information as possible from the official MQTT topics to Nuki Hub topics (faster)
Request the rest of the usual Nuki Hub information over BLE
When you tell Nuki Hub to execute an action (lock/unlock) optionally sent this lockaction over MQTT to the official MQTT lockaction topic instead of over BLE (faster)
All Nuki hub functions that are not supported in official MQTT remain available (e.g. config, keypad, auth log, time control, acl etc.) over BLE
Fallback to BLE when official MQTT is not connected
Your smarthome appliance (e.g. Home Assistant) remains connected to only Nuki Hub

Hopefully will bring the best of both worlds in speed, functionality, battery life and reliability.

Both SL4P and SL4 support MQTT over Thread. I have this running on my SL4 right now, will probably switch mu SL4P over when I'm done with the hybrid functionality. Thread MQTT is free on both the SL4 and the SL4P, they only charge for their remote access over Thread on the SL4.. No stability issues as of yet (weeks testing).
-> Great!
You can't run the official MQTT while you have a (Nuki Hub/official) bridge connected.
-> What exactly do you mean by official MQTT?
The idea of combining Nuki Hub and the official MQTT implementation is:
•	Setup Matter over Thread on your SL4(P)with a border router that supports NAT64 (Apple device or Home Assistant)
•	Pair Nuki Hub as an app with your SL4(P)
-> Does this mean you will emulate the Nuki Smartphone App? Will the smartphone App still be usable?
•	Set intervals to check for changes over BLE to really high numbers
•	Let Nuki Hub monitor the official MQTT topics for state change
•	In case of state changes publish as much information as possible from the official MQTT topics to Nuki Hub topics (faster)
•	Request the rest of the usual Nuki Hub information over BLE
•	When you tell Nuki Hub to execute an action (lock/unlock) optionally sent this lockaction over MQTT to the official MQTT lockaction topic instead of over BLE (faster)
•	All Nuki hub functions that are not supported in official MQTT remain available (e.g. config, keypad, auth log, time control, acl etc.) over BLE
•	Fallback to BLE when official MQTT is not connected
•	Your smarthome appliance (e.g. Home Assistant) remains connected to only Nuki Hub
-> by the means of the e.g. mosqitto MQTT broker and the MQTT HA integration?
Hopefully will bring the best of both worlds in speed, functionality, battery life and reliability.
—
Thankfully i already testet matter over Thread, and i still have the necessary hardware. i uninstalled it though, because of the extremely limited functionality the matter integration of nuki offered.
looking forward to test it again, though, with nuki hub, once you release a matter/thread MQTT version!
:)

@ManniTom Nuki has added support for their own MQTT API with a recent FW update for the SL3P via WiFi (and apparently this API is also supported via Thread on the SL4* models, but I don't know anything about that).

As @mundschenk-at said Nuki has added MQTT to all their devices that have their own network access.
This means the SL3P (Wifi), SL4 (Thread) and SL4P (Wifi or Thread).
This allows you to get the state of the device and send lock actions without a bridge or any cloud based Nuki services. You just connect the Nuki lock directly to a MQTT broker.
I agree that Matter over Thread is pretty bare bones/useless. But in my plan Matter is only used to connect the Nuki over Thread to a border router that gives the Nuki device network access. MQTT on the Nuki device can then be enabled, but only if no bridge is connected. The Nuki MQTT implementation is also pretty bare bones, but it is alot faster than BLE in notifying Nuki Hub of state changes. Nuki Hub will subscribe to the messages sent by the official MQTT and directly republish some of these messages to the Nuki Hub topics and use these messages to detect when to do updates over BLE.

That plan sounds fantastic (and could be a reason to upgrade to finally try out WiFi).

Great plan!
i could add my thread hardware again, it's a sonoff radio module with a Silicon Labs EFR32MG21 Radio, together with home assistant AddOns it builds the border router, which i had been running already.
So i could test everything and give feedback.
Are you sure that nuki, on the SL4P, has enabled MQTT over Thread? i've heard something that it's only enabled over WiFi...

I'm using the same Thread chip (Sonoff-E) with HASS.io running as a VM (couldn't get NAT64 working on HA/Matter/OTBR in docker, going the HASS route with addons is currently highly recommend)
See the Nuki article on MQTT over Wifi and Thread:
https://support.nuki.io/hc/en-us/articles/14052016143249-Activate-MQTT-via-the-Nuki-app
I'm almost done with a version that can be tested, have it running stable on my SL4 since yesterday, but it still needs some final adjustments. You can prepare for this release by setting up Thread on your SL4P and testing if you can get the official MQTT implementation running. Note that you do need to remove the Nuki Hub bridge connection to the SL4P to connect to MQTT over Thread.


get/set/hasContext doesn't work in production code outside a component

Describe the bug
I'm trying to use the context functions in library code. They work when using both vite dev and vite preview when linking to the library directly. But when publishing to npm and including the library from there, an exception is thrown (see the logs).
Reproduction

Create a new sveltekit todo app
Add this code to +layout.svelte:

import { Flash } from "sveltekit-flash-message/client"
import { page } from '$app/stores'

const flash = new Flash(page)
const message = flash.message

Explanation
new Flash(page) calls hasContext in its constructor, throwing the error since hasContext cannot find current_component at that point. Code:
https://github.com/ciscoheat/sveltekit-flash-message/blob/c5198a35b724d53e0eab780e16d09c7c5c1499fb/src/lib/client.ts#L61-L66
Stackblitz reproduction
https://stackblitz.com/edit/sveltejs-kit-template-default-ask2u7?file=src%2Froutes%2F%2Blayout.svelte&terminal=dev
Logs
Error: Function called outside component initialization
    at get_current_component (file:///E:/Projects/TEST/svelte-next/node_modules/.pnpm/svelte@3.49.0/node_modules/svelte/internal/index.mjs:953:15)
    at hasContext (file:///E:/Projects/TEST/svelte-next/node_modules/.pnpm/svelte@3.49.0/node_modules/svelte/internal/index.mjs:995:12)
    at debugflash (file:///E:/Projects/TEST/svelte-next/node_modules/.pnpm/sveltekit-flash-message@0.6.6/node_modules/sveltekit-flash-message/client.js:52:7)
    at file:///E:/Projects/TEST/svelte-next/.svelte-kit/output/server/entries/pages/_layout.svelte.js:16:3
    at Object.$$render (file:///E:/Projects/TEST/svelte-next/.svelte-kit/output/server/chunks/index.js:89:18)
    at file:///E:/Projects/TEST/svelte-next/.svelte-kit/output/server/index.js:36:97
    at $$render (file:///E:/Projects/TEST/svelte-next/.svelte-kit/output/server/chunks/index.js:89:18)
    at Object.render (file:///E:/Projects/TEST/svelte-next/.svelte-kit/output/server/chunks/index.js:97:20)
    at render_response (file:///E:/Projects/TEST/svelte-next/.svelte-kit/output/server/index.js:938:29)
    at processTicksAndRejections (node:internal/process/task_queues:96:5)

System Info
System:
    OS: Windows 10 10.0.19043
    CPU: (16) x64 Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz
    Memory: 43.25 GB / 63.93 GB
  Binaries:
    Node: 16.16.0 - C:\Program Files\nodejs\node.EXE
    npm: 8.11.0 - C:\Program Files\nodejs\npm.CMD
  Browsers:
    Edge: Spartan (44.19041.1266.0), Chromium (104.0.1293.70)
    Internet Explorer: 11.0.19041.1566
  npmPackages:
    @sveltejs/adapter-auto: next => 1.0.0-next.71
    @sveltejs/kit: next => 1.0.0-next.460
    svelte: ^3.49.0 => 3.49.0
    vite: ^3.1.0-beta.1 => 3.1.0-beta.1

Severity
blocking all usage of SvelteKit
Additional Information
No response

This sounds like Vite does somehow create a separate Svelte runtime instance for the library. Your package is using @sveltejs/package which rules one source of errors out, which is good. I wonder if it's because your package doesn't contain Svelte components, yet it uses functions from it, so vite-plugin-svelte doesn't detect it's related to Svelte and doesn't handle it specifically or something. cc @dominikg @bluwy

If you need more information, or can point me in some direction for testing this in more depth, let me know!

I thought this was already fixed via https://github.com/sveltejs/vite-plugin-svelte/issues/360. A workaround for now is to add this in vite.config.js:
	ssr: {
		noExternal: ['sveltekit-flash-message']
	}

Tested right away, confirmed that it works with that addition! Can this be fixed, so I don't have to ask library users to add this to their config, thereby increasing the friction?

It should be added automatically but it's not, which sounds like a bug. I'll transfer this over to vite-plugin-svelte to track there onwards.


Fix: YNAB certificate error on new UI

Fixes #481
The problem reported on Mac, and reproduced only there, with the React UI.
Based on this example and others, as we know this API is allowed, we can approve the certificate.
I wanted to verify the certification with more fields, but I can't debug it in my Windows.

The user said that the problem was reproduced with this version.
I think we should wait for better logs to analyze this problem: https://github.com/brafdlog/caspion/issues/428.


Using strict flag with rerun doesn't prevent the undefined steps from passing

Given I have an undefined step and run:
bin/behat --tags="my_feature" --colors --format=progress -n --strict

if all is passing besides the undefined step, the execution doesn't pass (exit code 1), then I run the command with --rerun:

bin/behat --tags="my_feature" --colors --format=progress -n --strict --rerun

which produces the same output, so in this case --strict does work

if some test fails, the execution of course doesn't pass (exit code 1), but running --rerun makes it pass (it ignores the undefined step)

Here is what I use if it makes any difference:
"require-dev": {
        "behat/behat": "^3.2",
        "behat/mink": "^1.7",
        "behat/mink-browserkit-driver": "^1.3",
        "behat/mink-extension": "^2.2",
        "behat/mink-selenium2-driver": "^1.3",
        "friends-of-behat/context-service-extension": "^0.3",
        "friends-of-behat/cross-container-extension": "^0.3.0",
        "friends-of-behat/performance-extension": "^1.0",
        "friends-of-behat/service-container-extension": "^0.3",
        "friends-of-behat/suite-settings-extension": "^1.0",
        "friends-of-behat/symfony-extension": "^0.2.1",
        "friends-of-behat/variadic-extension": "^0.1",
        //...
},

It seems to be that this is expected behaviour.
If I understand correctly this would require a  feature with at least two scenarios: the first contains a failure and the second has an undefined step.
Using the --rerun switch, only the scenario that failed is run, and if it gets fixed and now passes, the result is success (exit code 0), because that single scenario passes.

This is still counter-intuitive behaviour


C library 'SDL2' not found while cross compiling

Greetings, I have an issue while trying to cross compile for windows.
I used sudo make -f Makefile.CrossWindows build-win64 and sudo ./release.sh with no results.
I always get app/meson.build:45:4: ERROR: C library 'SDL2' not found when I try to compile
and Makefile.CrossWindows:78: recipe for target 'build-win64' failed
make: *** [build-win64] Error 1.
I downloaded SDL2-2.0.10 and I unzipped it on prebuilt-deps folder because it was failing to find it.
This is the meson log:

Build started at 2019-09-14T11:35:17.902871
Main binary: /usr/bin/python3
Python system: Linux
The Meson build system
Version: 0.45.1
Source dir: /home/erisa/scrcpy
Build dir: /home/erisa/scrcpy/build-win64
Build type: cross build
Project name: scrcpy
Sanity testing C compiler: cc
Is cross compiler: False.
Sanity check compiler command line: cc /home/erisa/scrcpy/build-win64/meson-private/sanitycheckc.c -o /home/erisa/scrcpy/build-win64/meson-private/sanitycheckc.exe
Sanity check compile stdout:

Sanity check compile stderr:

Running test binary command: /home/erisa/scrcpy/build-win64/meson-private/sanitycheckc.exe
Sanity testing C compiler: /usr/bin/x86_64-w64-mingw32-gcc
Is cross compiler: True.
Sanity check compiler command line: /usr/bin/x86_64-w64-mingw32-gcc -c /home/erisa/scrcpy/build-win64/meson-private/sanitycheckc.c -o /home/erisa/scrcpy/build-win64/meson-private/sanitycheckc_cross.exe
Sanity check compile stdout:

Sanity check compile stderr:

Native C compiler: cc (gcc 7.4.0 "cc (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0")
Cross C compiler: /usr/bin/x86_64-w64-mingw32-gcc (gcc 7.3.0)
Host machine cpu family: x86
Host machine cpu: x86_64
Target machine cpu family: x86
Target machine cpu: x86_64
Build machine cpu family: x86_64
Build machine cpu: x86_64
app/meson.build:45:4: ERROR: C library 'SDL2' not found

sudo ./release.sh with no results.

And without sudo? You must not be root to build.

Thank you for your reply.
I tried without sudo but it still fails. I tried ./release.sh but I get permission denied

With makefile for win64

With makefile for win32

The "permission denied" is because you first call it with sudo. Remove all your build folders with sudo (sudo rm -rf build_test) then release without sudo.

I deleted the directories and tried release without  sudo.

Ok, this is a gradle issue now. Try switching to Java 8.
https://stackoverflow.com/a/53272420/1987178
Please copy-paste the text instead of screenshot, so that errors can be indexed by search engines.

I edited the comments.
I think I fixed the issue with gradle. There was a .gradle directory created as root and it was set on read only. I deleted the directory and launched ./release.sh so it built a new directory. I also downgraded openjdk from 11 to 8.
I still get the same issue about SDL2.

erisa@Kazuki:~/scrcpy$ ./release.sh
The Meson build system
Version: 0.45.1
Source dir: /home/erisa/scrcpy
Build dir: /home/erisa/scrcpy/build_test
Build type: native build
Project name: scrcpy
Native C compiler: cc (gcc 7.4.0 "cc (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0")
Build machine cpu family: x86_64
Build machine cpu: x86_64
Found pkg-config: /usr/bin/pkg-config (0.29.1)
Native dependency libavformat found: YES 57.83.100
Native dependency libavcodec found: YES 57.107.100
Native dependency libavutil found: YES 55.78.100
Native dependency sdl2 found: YES 2.0.10
Configuring config.h using configuration
Program ./scripts/build-wrapper.sh found: YES (/home/erisa/scrcpy/server/./scripts/build-wrapper.sh)
server/meson.build:5: WARNING: Passed invalid keyword argument "console".
WARNING: This will become a hard error in the future.
WARNING: Unknown keyword arguments in target scrcpy-server: console
Build targets in project: 8
Found ninja-1.8.2 at /usr/bin/ninja
ninja: Entering directory `build_test'
[39/40] Generating scrcpy-server with a custom command.

Task :server:preBuild UP-TO-DATE
Task :server:preDebugBuild
Task :server:compileDebugAidl
Task :server:compileDebugRenderscript NO-SOURCE
Task :server:checkDebugManifest
Task :server:generateDebugBuildConfig
Task :server:prepareLintJar UP-TO-DATE
Task :server:generateDebugSources
Task :server:javaPreCompileDebug
Task :server:mainApkListPersistenceDebug
Task :server:generateDebugResValues
Task :server:generateDebugResources
Task :server:mergeDebugResources
Task :server:createDebugCompatibleScreenManifests
Task :server:processDebugManifest
Task :server:processDebugResources
Task :server:compileDebugJavaWithJavac
Task :server:compileDebugSources
Task :server:mergeDebugShaders
Task :server:compileDebugShaders
Task :server:generateDebugAssets
Task :server:mergeDebugAssets
Task :server:checkDebugDuplicateClasses
Task :server:mergeExtDexDebug
Task :server:mergeLibDexDebug
Task :server:transformClassesWithDexBuilderForDebug
Task :server:mergeProjectDexDebug
Task :server:validateSigningDebug
Task :server:signingConfigWriterDebug
Task :server:mergeDebugJniLibFolders
Task :server:transformNativeLibsWithMergeJniLibsForDebug
Task :server:transformNativeLibsWithStripDebugSymbolForDebug
Task :server:processDebugJavaRes NO-SOURCE
Task :server:transformResourcesWithMergeJavaResForDebug
Task :server:packageDebug
Task :server:assembleDebug

Deprecated Gradle features were used in this build, making it incompatible with Gradle 6.0.
Use '--warning-mode all' to show the individual deprecation warnings.
See https://docs.gradle.org/5.5.1/userguide/command_line_interface.html#sec:command_line_warnings
BUILD SUCCESSFUL in 3s
28 actionable tasks: 27 executed, 1 up-to-date
[39/40] Running all tests.
1/5 test_cbuf                               OK       0.08 s
2/5 test_control_event_serialize            OK       0.09 s
3/5 test_device_event_deserialize           OK       0.10 s
4/5 test_queue                              OK       0.07 s
5/5 test_strutil                            OK       0.02 s
OK:         5
FAIL:       0
SKIP:       0
TIMEOUT:    0
Full log written to /home/erisa/scrcpy/build_test/meson-logs/testlog.txt

Task :server:lint
Ran lint on variant release: 0 issues found
Ran lint on variant debug: 0 issues found

Deprecated Gradle features were used in this build, making it incompatible with Gradle 6.0.
Use '--warning-mode all' to show the individual deprecation warnings.
See https://docs.gradle.org/5.5.1/userguide/command_line_interface.html#sec:command_line_warnings
BUILD SUCCESSFUL in 8s
33 actionable tasks: 8 executed, 25 up-to-date
The Meson build system
Version: 0.45.1
Source dir: /home/erisa/scrcpy
Build dir: /home/erisa/scrcpy/build_release
Build type: native build
Project name: scrcpy
Native C compiler: cc (gcc 7.4.0 "cc (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0")
Build machine cpu family: x86_64
Build machine cpu: x86_64
Found pkg-config: /usr/bin/pkg-config (0.29.1)
Native dependency libavformat found: YES 57.83.100
Native dependency libavcodec found: YES 57.107.100
Native dependency libavutil found: YES 55.78.100
Native dependency sdl2 found: YES 2.0.10
Configuring config.h using configuration
Program ./scripts/build-wrapper.sh found: YES (/home/erisa/scrcpy/server/./scripts/build-wrapper.sh)
server/meson.build:5: WARNING: Passed invalid keyword argument "console".
WARNING: This will become a hard error in the future.
WARNING: Unknown keyword arguments in target scrcpy-server: console
Build targets in project: 8
Found ninja-1.8.2 at /usr/bin/ninja
[39/39] Generating scrcpy-server with a custom command.

Task :server:preBuild UP-TO-DATE
Task :server:preReleaseBuild UP-TO-DATE
Task :server:compileReleaseAidl UP-TO-DATE
Task :server:compileReleaseRenderscript NO-SOURCE
Task :server:checkReleaseManifest UP-TO-DATE
Task :server:generateReleaseBuildConfig UP-TO-DATE
Task :server:prepareLintJar UP-TO-DATE
Task :server:generateReleaseSources UP-TO-DATE
Task :server:javaPreCompileRelease UP-TO-DATE
Task :server:mainApkListPersistenceRelease UP-TO-DATE
Task :server:generateReleaseResValues UP-TO-DATE
Task :server:generateReleaseResources UP-TO-DATE
Task :server:mergeReleaseResources UP-TO-DATE
Task :server:createReleaseCompatibleScreenManifests UP-TO-DATE
Task :server:processReleaseManifest UP-TO-DATE
Task :server:processReleaseResources UP-TO-DATE
Task :server:compileReleaseJavaWithJavac UP-TO-DATE
Task :server:compileReleaseSources UP-TO-DATE
Task :server:lintVitalRelease
Task :server:checkReleaseDuplicateClasses UP-TO-DATE
Task :server:mergeExtDexRelease UP-TO-DATE
Task :server:transformClassesWithDexBuilderForRelease UP-TO-DATE
Task :server:mergeDexRelease UP-TO-DATE
Task :server:mergeReleaseShaders UP-TO-DATE
Task :server:compileReleaseShaders UP-TO-DATE
Task :server:generateReleaseAssets UP-TO-DATE
Task :server:mergeReleaseAssets UP-TO-DATE
Task :server:signingConfigWriterRelease UP-TO-DATE
Task :server:mergeReleaseJniLibFolders UP-TO-DATE
Task :server:transformNativeLibsWithMergeJniLibsForRelease UP-TO-DATE
Task :server:transformNativeLibsWithStripDebugSymbolForRelease UP-TO-DATE
Task :server:processReleaseJavaRes NO-SOURCE
Task :server:transformResourcesWithMergeJavaResForRelease UP-TO-DATE
Task :server:packageRelease UP-TO-DATE
Task :server:assembleRelease

Deprecated Gradle features were used in this build, making it incompatible with Gradle 6.0.
Use '--warning-mode all' to show the individual deprecation warnings.
See https://docs.gradle.org/5.5.1/userguide/command_line_interface.html#sec:command_line_warnings
BUILD SUCCESSFUL in 2s
27 actionable tasks: 1 executed, 26 up-to-date
/home/erisa/scrcpy
./gradlew clean
BUILD SUCCESSFUL in 878ms
2 actionable tasks: 2 executed
rm -rf "build-server" "build-win32" "build-win64"
"build-win32-noconsole" "build-win64-noconsole" "dist"
[ -d "build-server" ] || ( mkdir "build-server" &&
meson "build-server"
--buildtype release -Dcompile_app=false )
The Meson build system
Version: 0.45.1
Source dir: /home/erisa/scrcpy
Build dir: /home/erisa/scrcpy/build-server
Build type: native build
Project name: scrcpy
Native C compiler: cc (gcc 7.4.0 "cc (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0")
Build machine cpu family: x86_64
Build machine cpu: x86_64
Program ./scripts/build-wrapper.sh found: YES (/home/erisa/scrcpy/server/./scripts/build-wrapper.sh)
server/meson.build:5: WARNING: Passed invalid keyword argument "console".
WARNING: This will become a hard error in the future.
WARNING: Unknown keyword arguments in target scrcpy-server: console
Build targets in project: 2
Found ninja-1.8.2 at /usr/bin/ninja
ninja -C "build-server"
ninja: Entering directory `build-server'
[1/1] Generating scrcpy-server with a custom command.

Task :server:preBuild UP-TO-DATE
Task :server:preReleaseBuild
Task :server:compileReleaseAidl
Task :server:compileReleaseRenderscript NO-SOURCE
Task :server:checkReleaseManifest
Task :server:generateReleaseBuildConfig
Task :server:prepareLintJar UP-TO-DATE
Task :server:generateReleaseSources
Task :server:javaPreCompileRelease
Task :server:mainApkListPersistenceRelease
Task :server:generateReleaseResValues
Task :server:generateReleaseResources
Task :server:mergeReleaseResources
Task :server:createReleaseCompatibleScreenManifests
Task :server:processReleaseManifest
Task :server:processReleaseResources
Task :server:compileReleaseJavaWithJavac
Task :server:compileReleaseSources
Task :server:lintVitalRelease
Task :server:checkReleaseDuplicateClasses
Task :server:mergeExtDexRelease
Task :server:transformClassesWithDexBuilderForRelease
Task :server:mergeDexRelease
Task :server:mergeReleaseShaders
Task :server:compileReleaseShaders
Task :server:generateReleaseAssets
Task :server:mergeReleaseAssets
Task :server:signingConfigWriterRelease
Task :server:mergeReleaseJniLibFolders
Task :server:transformNativeLibsWithMergeJniLibsForRelease
Task :server:transformNativeLibsWithStripDebugSymbolForRelease
Task :server:processReleaseJavaRes NO-SOURCE
Task :server:transformResourcesWithMergeJavaResForRelease
Task :server:packageRelease
Task :server:assembleRelease

Deprecated Gradle features were used in this build, making it incompatible with Gradle 6.0.
Use '--warning-mode all' to show the individual deprecation warnings.
See https://docs.gradle.org/5.5.1/userguide/command_line_interface.html#sec:command_line_warnings
BUILD SUCCESSFUL in 4s
27 actionable tasks: 26 executed, 1 up-to-date
make -C prebuilt-deps prepare-win32
make[1]: Entering directory '/home/erisa/scrcpy/prebuilt-deps'
SDL2-2.0.10: found
ffmpeg-4.1.4-win32-shared: found
ffmpeg-4.1.4-win32-dev: found
platform-tools: found
make[1]: Leaving directory '/home/erisa/scrcpy/prebuilt-deps'
[ -d "build-win32" ] || ( mkdir "build-win32" &&
meson "build-win32"
--cross-file cross_win32.txt
--buildtype release --strip -Db_lto=true
-Dcrossbuild_windows=true
-Dcompile_server=false
-Dportable=true )
The Meson build system
Version: 0.45.1
Source dir: /home/erisa/scrcpy
Build dir: /home/erisa/scrcpy/build-win32
Build type: cross build
Project name: scrcpy
Native C compiler: cc (gcc 7.4.0 "cc (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0")
Cross C compiler: /usr/bin/i686-w64-mingw32-gcc (gcc 7.3.0)
Host machine cpu family: x86
Host machine cpu: i686
Target machine cpu family: x86
Target machine cpu: i686
Build machine cpu family: x86_64
Build machine cpu: x86_64
app/meson.build:45:4: ERROR: C library 'SDL2' not found
A full log can be found at /home/erisa/scrcpy/build-win32/meson-logs/meson-log.txt
Makefile.CrossWindows:54: recipe for target 'build-win32' failed
make: *** [build-win32] Error 1

sha256sum prebuilt-deps/SDL2-devel-2.0.10-mingw.tar.gz
find prebuilt-deps/SDL2-2.0.10/

?

I deleted the sdl2 dev zip file at first because there was a checksum mismatch and it was a zero byte file, then I added the sdl2 file I downloaded from libsdl website and well, it seems since it was not the dev version, it caused some issues, then the gradle issue and running with sudo worsened it.
I deleted the sdl2 folder and upon launching ./release.sh it downloaded the sdl2 dev zip file again and the checksum matched, finally.
Sorry for all the bother and thank you for your patience.

No problem, building on Windows is quite a mess, and the scripts I wrote are a bit hacky, so if everything is ok they work, but otherwise everything may happen :)


Static build

Instead of creating a library, consider to statically link to an app.

Instead of creating a library, consider to statically link to an app.

By adding QtAVPlayer in a subdirectory of the App and integrate it's .pro as a .pri file?
This works fine with for example QtSingleApplication/SingleApplication https://github.com/itay-grudev/SingleApplication - so yes, why not for QtAVPlayer?

Instead of creating a library, consider to statically link to an app.

By adding QtAVPlayer in a subdirectory of the App and integrate it's .pro as a .pri file?

I tested that, and the proof of concept works. The app is compiled for MacOS with Qt 6.5.2 qmake. QtAVPlayer is not installed to Qt 6.5.2, but the /src/QtAVPlayer folder is copied to a subdirectory of the App and it's .pro integrated as a .pri file (plus a few other adjustments).
If that is what you meant with "to statically link to an app", then yes, it works.
I will test in the next days with iOS and Android and Qt 6.5.2 too.

https://github.com/valbok/QtAVPlayer/pull/389 CMake support for now is completely removed since not widely used. Might be added later. But for now QtAVPlayer is not a module anymore and not a separate lib. It should be bundled directly to an app.

@geminixdev would it be possible for your to try https://github.com/valbok/QtAVPlayer/pull/389 ? and see if works fine for you? just need to modify your pro file and include(QtAVPlayer.pri)


[MWPW-116984] Split marquee variants

Added the following variants to the split mode of the Marquee block

1/3 (split, one-third)
3/4 (split, three-quarter)

Resolves: MWPW-116984
Test URLs:

Before: https://main--milo--adobecom.hlx.page/drafts/ebartholomew/split-marquee?martech=off
After: https://split-marquee--milo--adobecom.hlx.page/drafts/ebartholomew/split-marquee?martech=off

adding the do not merge tag until after design review


[sample~]

rewrite it and change it according to the new [buffer~] object

also... https://github.com/porres/pd-else/issues/2018

[ ] "open" is like "replace", and you can use args (and creation args) to define things if you want.
[ ] A new "load" message is like "open"


Merge Editor: add explicit action to "Keep Base" in result pane?

Testing #161833
I like how the result panel says "No Changes Accepted" but I wasn't sure how I can mark the conflict as handled with the intention of keeping base.

We could add an explicit action in addition to the helpful label. Something like...

...and maybe a reset option to get back to it's original untouched state? Not sure what the best way to phrase this would be:

I think "Base" is quite technical, maybe "Common ancestor" is better.

I do wonder what the best term is here. Incoming and Current are git-specific terms, correct? Is there a similarly common term git uses for this?
Base is used with "Compare with Base" so I feel we should be consistent regardless of what terminology we land on.

Implemented by #162656


Error in connection establishment

Followed the in-browser usage and got the following error on localhost.

BrowserClient.js:68 WebSocket connection to 'wss://...' failed: Error in connection establishment: net::ERR_CERT_REVOKED

My dev app server is behind an Nginx web server with a self-signed SSL certificate. I'm suspecting this is the reason why it failed to connect, but how do I fix it?
I'm new to the whole message broker, web socket, SSL stuff. Any help is appreciated

Update: followed this guide  and made a ca-signed SSL certificate. Used localhost as the FQDN. Still getting the same error.
The following are the steps that I took to make the certificates:
# Create root CA
# Create private key for generating root certificate
openssl genrsa -out /etc/ssl/private/dev_root_ca.key 2048

# Create root certificate
openssl req -x509 -new -nodes -key /etc/ssl/private/dev_root_ca.key -sha256 -days 1024 \
-out /etc/ssl/certs/dev_root_ca.pem

# Register CA certificate with AWS IoT
# Get a registration code from AWS IoT
aws iot get-registration-code

# Generate a key pair for the private key verification certificate
openssl genrsa -out /etc/ssl/private/aws_verification.key 2048

# Create a CSR for the private key verification certificate.
# Common Name (e.g. server FQDN or YOUR name) []: MY_REGISTRATION_CODE
openssl req -new -key /etc/ssl/private/aws_verification.key -out /etc/ssl/csr/aws_verification.csr

# Use the CSR to create a private key verification certificate
openssl x509 -req -in /etc/ssl/csr/aws_verification.csr -CA /etc/ssl/certs/dev_root_ca.pem \
-CAkey /etc/ssl/private/dev_root_ca.key -CAcreateserial -out /etc/ssl/certs/aws_verification.pem \
-days 1024 -sha256

# Register the CA certificate with AWS IoT
aws iot register-ca-certificate --ca-certificate file:///etc/ssl/certs/dev_root_ca.pem \
--verification-cert file:///etc/ssl/certs/aws_verification.pem

# Use the update-certificate CLI command to activate the CA certificate
aws iot update-ca-certificate --certificate-id xxxxxxxxxxx --new-status ACTIVE

# Create dev site ssl
# Create private key for generating certificate for dev site
openssl genrsa -out /etc/ssl/private/dev_nginx.key 2048

# Create a CSR Certificate Signing Request
openssl req -new -key /etc/ssl/private/dev_nginx.key -out /etc/ssl/csr/dev_nginx.csr

# Create SAN ext config file
# /etc/ssl/ext/dev_san.ext
# authorityKeyIdentifier=keyid,issuer
# basicConstraints=CA:FALSE
# keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
# subjectAltName = @alt_names
# [alt_names]
# DNS.1 = localhost

# Create certificate for dev site
openssl x509 -req -in /etc/ssl/csr/dev_nginx.csr -CA /etc/ssl/certs/dev_root_ca.pem \
-CAkey /etc/ssl/private/dev_root_ca.key -CAcreateserial -out /etc/ssl/certs/dev_nginx.crt \
-days 1024 -sha256 \
-extfile /etc/ssl/ext/dev_san.ext

# Register the dev site certificate with AWS IoT
# Register a device certificate
aws iot register-certificate --certificate-pem file:///etc/ssl/certs/dev_nginx.crt \
--ca-certificate-pem file:///etc/ssl/certs/dev_root_ca.pem

# Use the update-certificate CLI command to activate the device certificate
aws iot update-certificate --certificate-id xxxxxxxxxxx --new-status ACTIVE


[sailfish-secrets] Improve application id determination. Contributes to JB#42038

Attempt to read application identifier from cgroup, then from exe link,
then fall back to cmdline parsing.
Contributes to JB#42038

WIP, readlink will fail unless the user+group of the calling application is the same as the daemon, presumably because sysctl -w fs.protected_symlinks=1 is set for the procfs...

It should not be forgotten that booster cgroup should be mount at startup by separate unit file or by other means. Now there is no such mechanism.

Updated and tested, so it should work now (for cases where the name=booster cgroup is present...)
Regarding your comment above about mounting booster cgroup at startup by separate unit file, where does that change need to be made?


Add Close Docs item in script editor context menu

Fixes https://github.com/godotengine/godot/issues/76083
Added the "Close Docs" item in the script editor context menu.
Screenshot when there is document open:

Screenshot when there is no document open:

The issue is reported on 3.6 branch, as per guidelines targeting this request for master branch.

Bugsquad edit: This closes https://github.com/godotengine/godot-proposals/issues/311.

Thanks!


voms-admin-client role

This role will handle the installation and configuration of voms-admin-client tool. This tool will be used for the interaction with voms server.

Closing since we are moving away from this implementation approach


Update index.md

T

Why:
Closes [issue link]

What's being changed:

Check off the following:

[ ] I have reviewed my changes in staging (look for the deploy-to-heroku link in your pull request, then click View deployment).
[ ] For content changes, I have completed the self-review checklist.

Writer impact (This section is for GitHub staff members only):

[ ] This pull request impacts the contribution experience

[ ] I have added the 'writer impact' label
[ ] I have added a description and/or a video demo of the changes below (e.g. a "before and after video")

Give me support
Pada tanggal Rab, 9 Jun 2021 17.22, FloweringPhoenix <
@.***> menulis:

T
Why:
Closes [issue link]
What's being changed: Check off the following:

I have reviewed my changes in staging (look for the
deploy-to-heroku link in your pull request, then click View
deployment).
For content changes, I have completed the self-review checklist
https://github.com/github/docs/blob/main/CONTRIBUTING.md#self-review.

Writer impact (This section is for GitHub staff members only):

This pull request impacts the contribution experience

I have added the 'writer impact' label
I have added a description and/or a video demo of the changes
below (e.g. a "before and after video")

You can view, comment on, or merge this pull request online at:
https://github.com/github/docs/pull/7213
Commit Summary

Update index.md

File Changes

M content/graphql/overview/index.md
https://github.com/github/docs/pull/7213/files#diff-da480b7075b4a676dd5fc28b8db6bedb930e9d8841a232fac7b10ac28530aac5
(1)

Patch Links:

https://github.com/github/docs/pull/7213.patch
https://github.com/github/docs/pull/7213.diff

—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/github/docs/pull/7213, or unsubscribe
https://github.com/notifications/unsubscribe-auth/ATDLDQDZDHLRTSKTNLDB44DTR46IBANCNFSM46LXRVWQ
.


[Issue-3252] Fix XCM version error on Pioneer

🚀 Deployed on https://pr-3351--sw-web-runner.netlify.app


Add support for cmake find_package

Enables find_package() from other nix-installed packages by adding cmake/includeos-config.cmake.in template, which is then installed to cmake/includeos-config.cmake with the correct paths filled in. This avoids the cmake flags that previously had to be set manually. Updates example.nix to use the new method.

Right, so this produces the following:
$ cat $(nix-build ~/IncludeOS)/cmake/includeos-config.cmake
# Config file to be picked up by find_package()

####### Expanded from @PACKAGE_INIT@ by configure_package_config_file() #######
####### Any changes to this file will be overwritten by the next CMake run ####
####### The input file was includeos-config.cmake.in                            ########

get_filename_component(PACKAGE_PREFIX_DIR "${CMAKE_CURRENT_LIST_DIR}/../../" ABSOLUTE)

macro(set_and_check _var _file)
  set(${_var} "${_file}")
  if(NOT EXISTS "${_file}")
    message(FATAL_ERROR "File or directory ${_file} referenced by variable ${_var} does not exist !")
  endif()
endmacro()

macro(check_required_components _NAME)
  foreach(comp ${${_NAME}_FIND_COMPONENTS})
    if(NOT ${_NAME}_${comp}_FOUND)
      if(${_NAME}_FIND_REQUIRED_${comp})
        set(${_NAME}_FOUND FALSE)
      endif()
    endif()
  endforeach()
endmacro()

####################################################################################
set(ARCH "x86_64")
set(INCLUDEOS_PACKAGE /nix/store/3r5nc4b2rirhzqmhmjx0mwjc4v0f3wj2-includeos-static-x86_64-unknown-linux-musl-dev)
set(CMAKE_MODULE_PATH /nix/store/3r5nc4b2rirhzqmhmjx0mwjc4v0f3wj2-includeos-static-x86_64-unknown-linux-musl-dev/cmake)

So 3r5nc4b2rirhzqmhmjx0mwjc4v0f3wj2 is the hash for my IncludeOS package and if I add IncludeOS as a nix dependency it will hook in the path for that to find_package via CMAKE_PREFIX_PATH. We can verify this by going into the nix shell for the example and inspecting its environment:
$ nix-shell example.nix
$ [nix-shell:~/IncludeOS]$ env | grep 3r5nc4b2rirhzqmhmjx0mwjc4v0f3wj2
CMAKE_INCLUDE_PATH=... :/nix/store/q3g3nixd69jvrwcz9qd60xmm5f8wq1ig-gtest-static-x86_64-unknown-linux-musl-1.14.0:/nix/store/3r5nc4b2rirhzqmhmjx0mwjc4v0f3wj2-includeos-static-x86_64-unknown-linux-musl-dev...
...
CMAKE_PREFIX_PATH=/nix/store/ag0fwkx5sirdlyx0maz55i636rh5lhxm-libcxx-static-x86_64-unknown-linux-musl-18.1.6-dev: ... :/nix/store/3r5nc4b2rirhzqmhmjx0mwjc4v0f3wj2-includeos-static-x86_64-unknown-linux-musl-dev

So we should be able to make a locally built package and instead of exporting INCLUDEOS_PACKAGE pointing to it, we  to add it to CMAKE_PREFIX_PATH or install it to a location already known to cmake.
Nice!


Adding tests for MSFT_xWebsite

This test shows that using "Personal" as a cert store for SSL binding doesn't work.

Hi @arkasha, I'm your friendly neighborhood Microsoft Pull Request Bot (You can call me MSBOT). Thanks for your contribution!

It looks like you're a Microsoft contributor (Paul Wiens). If you're full-time, we DON'T require a Contribution License Agreement. If you are a vendor, please DO sign the electronic Contribution License Agreement. It will take 2 minutes and there's no faxing! https://cla.microsoft.com.

TTYL, MSBOT;


Using CheckpointReader from another language

@asimshankar Is the checkpoint reader class (checkpoint_reader.h) currently exposed through any dynamic library?

I do not believe it is (and it isn't even C, it's C++ :).
What exactly do you want to do? As in, we could consider a pure-C API for reading checkpoints, but the SaveV2 and RestoreV2 operations deal with checkpoints - so presumably those could be used without needing to expose a lower level API?

@asimshankar Actually never mind. @allenlavoie pointed me to the libtensorflow_framework.so binary yesterday, and I was able to build the bindings I needed using that (here is a one example). It's actually great because with this binary I can now implement an interface to the server code for distributed training, add while loop backprop support, etc. :)
This also resolves #13345 and so I'll go ahead and close it.


Check for Administrator Rights before attempting update

Tell us about your request
Before downloading and prompting for the installation of, or attempting the installation of an update to Docker Desktop for Mac, the software should verify that the current user is an Administrator on the machine as these rights are required for installation.
Which service(s) is this request for?
Docker Desktop for Mac
Tell us about the problem you're trying to solve. What are you trying to do, and why is it hard?
If the user is not an administrator, they will be unable to complete the installation of any update, so the download is an unnecessary use of bandwidth.
The prompt and/or attempted installation can cause confusion to the user, making them think they cannot continue to use Docker Desktop until an administrative user intervenes.
Are you currently working around the issue?
Currently, I am advising users without access to an Administrator account to stay on Docker Desktop v2.5.1, which avoids the issue but has the side effect of causing additional version fragmentation, which I understand that the auto-update feature was added to prevent.
Additional context
This request stems from the discussion in docker/roadmap#183, as one part of a potential resolution for the issues discussed there.

This is required on Docker Desktop for Windows users as well.

Let's roll this discussion into #183 rather than fragmenting different aspects of it.


(doc) No auto login from x86 PS on x64 OS

Description Of Changes
Note that auto login does not work when running from a 32-bit PowerShell session on an x64 operating system.
Another PR was raised to cover changes to the PowerShell function help.
Motivation and Context
This was noted in this issue https://github.com/chocolatey/boxstarter/issues/1
Change Types Made

[ ] Minor documentation fix (typos etc.).
[x] Major documentation change (refactoring, reformatting or adding documentation to existing page).
[ ] New documentation page added.
[ ] The change I have made should have a video added, and I have raised an issue for this.

Change Checklist

[ ] Requires a change to menu structure (top or left hand side)/
[ ] Menu structure has been updated

Related Issue
N/A

@pauby thanks for fixing this up!


rustup v1.15 does not show up on Windows

As a result using rustup component add clippy and rustfmt as outlined in Rust 1.31 release don't work and "-preview" components have to be used.

Head up, still having the issue with rustup v1.16.0
C:\Users\Ash> rustup self update
info: checking for self-updates
info: downloading self-update
info: rustup updated successfully to 1.16.0
C:\Users\Ash> rustup component add clippy
error: toolchain 'stable-x86_64-pc-windows-msvc' does not contain component 'clippy' for target 'x86_64-pc-windows-msvc'

Cross ref: https://github.com/rust-lang/rust-clippy/issues/3503

Yeah, it's still missing for me too.

This is fixed now, so let's continue discussion of clippy on https://github.com/rust-lang/rust-clippy/issues/3503


Improve the support for Swift Package Manager

Better support for SPM

Hi @mackoj thanks for this! 👍
All it needs is succeeding CI now. 🙂

@regexident Done 🚀

Thanks for the great work, @mackoj!


Add button "use app" to Commons:Upload and/or main page

I think it's time to add link to our app to Wikimedia Commons main page and/or to the default Upload Wizard.
What do you think? Ideas on how to make this happen?
An even more radical solution would be to detect visitors coming to Wikimedia Commons page from a mobile device and suggesting them to download the app. But that is maybe still premature.

That would be wonderful! Unfortunately, I have no idea how to make it happen, lol. There are a few other upload tools out there as well, although as far as I'm aware, we appear to be the only one specializing in a platform where the upload wizard cannot be used (AFAIK they have disabled mobile web uploads?).

Just thought about this a bit more. I guess if we were to try approaching the Commons website maintainers about this, our best bet would be for a group of users not officially on our team (i.e. others from WMCZ?) to do it. It makes more sense to put us up because users asked for it, not so much if the team ourselves asked.

I tried the Commons website from Firefox Focus on Android and saw links to the app (but I had to log in to see this):

Since these existing links won't go away (at least not yet for me), we should not try over-exposing it - more than one instance of the same Play Store link on one page would seem a bit excessive.

as far as I'm aware, we appear to be the only one specializing in a platform where the upload wizard cannot be used (AFAIK they have disabled mobile web uploads?).

Can you provide more details? It indeed appears that the mobile main page lacks an "upload" link on Android, but it may be a bug.

Interesting! I recall having a few conversations with people about how WMF had to disable mobile web uploads due to the "selfie-pocalypse" generated by them, but I can't seem to find the links now. I tried it on my browser, and while the layout isn't ideal, it works for me.

So rather than showing the download link, if they webpage is rendered for mobile, just have the download link on rendering (device/ browser agnostic)?
Chris


Black Marble texture does not wrap around the earth completely

It cat be seen here http://cesiumjs.org/releases/1.23/Apps/CesiumViewer/index.html
Screenshot for reference

Please advise on if there any turnaround exist

Thanks @andreyvarganov! I'm not sure if this is a problem with the imagery or a problem with how we add it to he globe.  It looks like it's been this way for a while though.
@mramato do you know what the problem might be?

This appears to be a problem with the data itself and has been there for at least a year (I tried 1.10 and it had the same issue).  I have a different version of the tiled imagery and it works fine. So this is a problem with sample data on the website and not Cesium itself.
The sample Black Marble is out of date for other reasons as well, we will probably take care of this as part of a larger data migration when all hosted sample data gets reorganized as part of our cesiumjs.com work.

Closing this because iit is an issue with the data, not a problem with Cesium


Start in fullscreen mode

Hello,
I am planning to use scrappy as part of a kiosk system where the scrcpy should appear in fullscreen mode. The computer should boot up automatically and scrcpy should start in fullscreen mode. I did find the option to hit ctrl-f to enter fullscreen while running, but is there also a way to already start in fullscreen mode? I did not find a respective command-line option. AM I missing something here? I am using a windows 10 system.
Best,
Philipp

There is currently no command-line option.

I have opened a pull request #252


Required URLs for Government

Hi there! Please include the required URLs for government customers, or link to a page with this information available.
I believe this is the correct list.
www.msftncsi.com
*.Microsoft.com
*.WindowsAzure.us
*.microsoftonline.us
*.windows.net
*.usgovcloudapi.net

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

ID: b566a3bb-80d9-151e-cc27-7bc94d48f363
Version Independent ID: 0f8ca0eb-0153-13b6-5929-0e5996eb418e
Content: Support matrix for the MARS agent - Azure Backup
Content Source: articles/backup/backup-support-matrix-mars-agent.md
Service: backup
GitHub Login: @v-amallick
Microsoft Alias: v-amallick

@rharper82 Thanks for the feedback.
Assigning @v-amallick for visibility, review and document enhancement consideration as appropriate.

@KrishnaG-MSFT
Thank you for adding me here. I will check this and get back.

@mepand
Request you to please look into the issue.

#reassign:mepand

Acknowledged @v-amallick . Will check and update.

Hi @rharper82
We have updated the following section with your suggestion. Thank you.
https://docs.microsoft.com/en-us/azure/backup/backup-support-matrix-mars-agent#networking-and-access-support

#please-close


Freeze keys; link picker disable external links

This PR introduces support for Freeze Keys, a new feature for Koji backends.
Freeze Keys are a way to cache and purge content in Koji's CDN, dramatically improving speed and reliability of GETs to backends. When you set a freeze key on a response from a backend, subsequent requests to that resource will return the frozen data from the CDN, instead of making a request to your backend. When you use another route to update data that has been frozen, simply call await utilities.unfreeze('keyName'), and the next request to the GET will hit your backend and update the data.
For example, assume you have a backend that stores a leaderboard for a game. It contains two methods: GET /leaderboard and POST /saveLeaderboard.
GET /leaderboard might look like:
app.get('/leaderboard', async (req, res, next) => {
  try {
    // Load the scores from the database
    const database = new KojiBackend.Database({ res });
    const rawPlayers = await database.get('players');
    const players = rawPlayers.sort((a, b) => b.score - a.score);

    // Use the `x-koji-freeze-key` header to freeze the leaderboard under the key name "leaderboard"
    res.setHeader('x-koji-freeze-key', 'leaderboard');
    res.status(200).json({
      success: true,
      players,
    });
  } catch (err) {
    res.status(200).json({
      success: false,
      players: [],
    });
  }
});

POST /saveLeaderboard might look like:
app.post('/saveLeaderboard', async (req, res, next) => {
  try {
    const database = new KojiBackend.Database({ res });
    const {
      userId,
      name,
    } = req.body;

    await database.set('players', userId, {
      name,
      score,
    });

    // Unfreeze the leaderboard data
    const utilities = await new KojiBackend.Utilities({ res });
    await utilities.unfreeze('leaderboard');

    res.status(200).json({
      success,
    });
  } catch (err) {
    console.log(err);
    res.status(500);
  }
});

This PR also introduces a disableExternalLinks option on the Link picker. If true, the link picker will only let users choose from Kojis as their links.
(internal)
https://github.com/madewithkoji/koji-proxy/pull/84
https://github.com/madewithkoji/koji-api/pull/561
https://github.com/madewithkoji/koji-frontend/pull/1031

Thanks! Closing in lieu of #33 to clean up dist/bump version


[Enhancement] Method concatenates the result of a toString() call [CCSubClient]

Search before asking

[X] I had searched in the issues and found no similar issues.

Enhancement Request

located at:
src/test/java/org/apache/eventmesh/runtime/demo/CCSubClient.java line 47
analysis and explanation:
This method concatenates the output of a toString() call into a StringBuffer or StringBuilder. It is simpler just to pass the object you want to append to the append call, as that form does not suffer the potential for NullPointerExceptions, and is easier to read.
Describe the solution you'd like
reference:

Are you willing to submit PR?

[ ] Yes I am willing to submit a PR!

Hi, I am willing to solve this issue and submit a PR

Hi, I am willing to solve this issue and submit a PR

@momoxiaohaiya welcome～


Add favicon.ico to base template

Is there a favicon that goes along with this?

Yeah. It's in
hotline/static/img/favicon.ico

Whoops. I was looking in the wrong place.


Misleading message when calling inactive service

    let result = client
        .call_service::<(), rosapi::GetTimeResponse>("/not_real_service", ())
        .await
        .expect("Error while calling get_time service");

This will panic with the following error instead of gracefully failing:

thread 'main' panicked at 'Error while calling get_time service: InvalidMessage(Error("invalid type: string "Service /not_real_service does not exist", expected struct GetTimeResponse", line: 0, column: 0))'

Luckily, a ROS message can't be "just a string" in JSON, it has to be a object containing a field which is a string.
I'm fairly certain that rosbridge_server returns a string when it encounters any error, so we should be able to make a stronger fallback case for "ServerReportedError"
Something like try_parse to expected type, if that fails, try_parse to string, if that succeeds report "ServerReportedError({msg})".
Unfortunately, I don't think we can safely try to parse the error past that to a specific ServiceDoesNotExist error. I think if someone wanted to do that specifically, I would encourage them to use rosapi to check if the service existed ahead of calling...


Automate staging nightly deploys to Stripe

What does this PR do?
Currently @leeavital manually creates a staging docker image and deploys it to stripe every morning. This is being done by the container integrations team with the below job, so we can automate Lee's process by adding stripe to the list below. The "experimental" filter can be removed as the cluster names are unique.

Motivation

Additional Notes

Possible Drawbacks / Trade-offs

Describe how to test/QA your changes

Reviewer's Checklist

[ ] If known, an appropriate milestone has been selected; otherwise the Triage milestone is set.
[ ] Use the major_change label if your change either has a major impact on the code base, is impacting multiple teams or is changing important well-established internals of the Agent. This label will be use during QA to make sure each team pay extra attention to the changed behavior. For any customer facing change use a releasenote.
[ ] A release note has been added or the changelog/no-changelog label has been applied.
[ ] Changed code has automated tests for its functionality.
[ ] Adequate QA/testing plan information is provided if the qa/skip-qa label is not applied.
[ ] At least one team/.. label has been applied, indicating the team(s) that should QA this change.
[ ] If applicable, docs team has been notified or an issue has been opened on the documentation repo.
[ ] If applicable, the need-change/operator and need-change/helm labels have been applied.
[ ] If applicable, the k8s/<min-version> label, indicating the lowest Kubernetes version compatible with this feature.
[ ] If applicable, the config template has been updated.

Note that it runs when the pipeline is green and e2e tests are green, which is not as nightly as we'd like currently.

correct, I think it could be worth exploring retrying this if it fails. Although obviously there will be some cases where the pipeline will be broken

close in favor of https://github.com/DataDog/datadog-agent/pull/18500


Reduce memory usage on Blob.Data

First step to fixing issue #2669

@mrexodia this should be submitted as PR to go-gitea/git repository


Fix up bad enum-value link targets from Doxygen

Fix #70

Is there anything in particular that's holding up this fix?

Good question. @madmongo1 ? Does this fix the enums?

In the documentation of doc/html/beast/ref/boost__beast__http__message/result/overload1.html the status::unknown does not link to anything (it is not emitted as a hyperlink).
However, tracking through to the base class documentation at doc/html/beast/ref/boost__beast__http__header/result/overload1.html, status::unknown is emitted as a hyperlink to doc/html/beast/ref/boost__beast__http__status.html (which seems correct).
Is this the intended behaviour?
@evanlenz

@madmongo1 it looks like you don't have the boost docbook templates installed

It seems like it used to work and now it doesn't?

@madmongo1 it looks like you don't have the boost docbook templates installed

I take it that this is the reason for the lack of formatting?
I've often wondered about that.

It seems like it used to work and now it doesn't?

That is indeed what it seems. But I will try to reproduce. It should produce a link (the right one!).

@madmongo1 It works for me. When I switch docca to branch issue70-link-to-wrong-enum-page and run b2 clean followed by b2 in the libs/beast/doc directory, it produces the result I expect:

The "status::unknown" link takes me to this page: file:///C:/cygwin64/home/evanl/boost/libs/beast/doc/html/beast/ref/boost__beast__http__status.html

I rebased develop onto the pr branch before running the test. I wonder if that’s relevant.
In any case, will retest.

It might be! The link might be getting disappeared somehow from the more recent fix. I'm just speculating though.
This is a case where the XSLT visualization/debug option would come in very handy! :-) @grisumbras

I tried rebasing develop onto the pr branch as well just now, and it didn't make a difference (still works for me).

Ok great. Will clean and rebuild

Confirmed correct on second attempt.

rebased to develop


upload-symbols executable is not uploading dSYMs

Step 1: Describe your environment

Xcode version: 13.4
Firebase SDK version: 9.1.0
Installation method: CocoaPods
Firebase Component: Crashlytics
Target platform(s): iOS

Step 2: Describe the problem
Steps to reproduce:
We recently noticed Firebase Crashlytics is missing dSYMs for all our builds. It looks like upload-symbols executable is failing.
Command:
./Pods/FirebaseCrashlytics/upload-symbols -d -gsp /path/to/GoogleService-Info.plist -p ios /path/to/AppName.app.dSYM.zip

Result:
upload-symbols 3.12 build 31

Arguments:
Debug mode enabled
Google App ID: 1:258136459025:ios:bc77ceb0ee2d56db2b6eb0
Platform: ios
DSYM Paths: ["/Users/username/Developer/appname-ios/build/AppName.app.dSYM.zip"]

Inspecting next path: /Users/username/Developer/appname-ios/build/AppName.app.dSYM.zip
Found archive at path: /Users/username/Developer/appname-ios/build/AppName.app.dSYM.zip
Inspecting next path: /var/folders/5s/5zdwf6jj5ln3l7wvdngd32b00000gn/T///Users/username/Developer/appname-ios/build/AppName.app.dSYM.zip.unzipped/AppName.app.dSYM
Found dSYM at path: /var/folders/5s/5zdwf6jj5ln3l7wvdngd32b00000gn/T///Users/username/Developer/appname-ios/build/AppName.app.dSYM.zip.unzipped/AppName.app.dSYM
Begin processing dSYM at /var/folders/5s/5zdwf6jj5ln3l7wvdngd32b00000gn/T///Users/username/Developer/appname-ios/build/AppName.app.dSYM.zip.unzipped/AppName.app.dSYM
Zipping csym for uuid b1216f2668e53431872b0e514f0dca40, architecture: arm64
Zipping csym succeeded for uuid b1216f2668e53431872b0e514f0dca40, architecture arm64... getting compressed data
Deleting file at path: /var/folders/5s/5zdwf6jj5ln3l7wvdngd32b00000gn/T/Users/username/Developer/appname-ios/build/AppName.app.dSYM.zip.unzipped/arm64-b1216f2668e53431872b0e514f0dca40.csym
Deleted file at path /var/folders/5s/5zdwf6jj5ln3l7wvdngd32b00000gn/T/Users/username/Developer/appname-ios/build/AppName.app.dSYM.zip.unzipped/arm64-b1216f2668e53431872b0e514f0dca40.csym
Deleting file at path: /var/folders/5s/5zdwf6jj5ln3l7wvdngd32b00000gn/T/1B663236-3930-4048-A736-1CA98AB688AA-17203-0000018E953ED25F.zip
Deleted file at path /var/folders/5s/5zdwf6jj5ln3l7wvdngd32b00000gn/T/1B663236-3930-4048-A736-1CA98AB688AA-17203-0000018E953ED25F.zip
Uploading cSYM to https://firebasecrashlyticssymbols.googleapis.com/v1/project/-/app/1:258136459025:ios:bc77ceb0ee2d56db2b6eb0/upload/native/b1216f2668e53431872b0e514f0dca40
Uploading cSYM for uuid b1216f2668e53431872b0e514f0dca40, architecture arm64
error: Failed uploading cSYMs due to error: Error Domain=com.google.firebase.crashlytics.FIRCLSCompoundOperation.error Code=4294967293 "(null)" UserInfo={com.google.firebase.crashlytics.FIRCLSCompoundOperation.error.user-info-key.underlying-errors=(
    "Error Domain=com.crashlytics.mac.error-domain.submit-csym Code=0 \"Failed to submit cSYM for architecture arm64 with uuid b1216f2668e53431872b0e514f0dca40 in dSYM: /var/folders/5s/5zdwf6jj5ln3l7wvdngd32b00000gn/T///Users/username/Developer/appname-ios/build/AppName.app.dSYM.zip.unzipped/AppName.app.dSYM\" UserInfo={NSLocalizedFailureReason=Failed to submit cSYM for architecture arm64 with uuid b1216f2668e53431872b0e514f0dca40 in dSYM: /var/folders/5s/5zdwf6jj5ln3l7wvdngd32b00000gn/T///Users/username/Developer/appname-ios/build/AppName.app.dSYM.zip.unzipped/AppName.app.dSYM, NSUnderlyingError=0x60000803c990 {Error Domain=NSPOSIXErrorDomain Code=40 \"Message too long\" UserInfo={_NSURLErrorFailingURLSessionTaskErrorKey=LocalDataTask <241496FF-2AB5-4324-8169-0E34DA56FF44>.<1>, _kCFStreamErrorDomainKey=1, NSErrorPeerAddressKey=<CFData 0x600003720de0 [0x1f159c000]>{length = 28, capacity = 28, bytes = 0x1c1e01bb000000002a0014504014080b ... 0000200a00000000}, _kCFStreamErrorCodeKey=40, _NSURLErrorRelatedURLSessionTaskErrorKey=(\n    \"LocalDataTask <241496FF-2AB5-4324-8169-0E34DA56FF44>.<1>\"\n)}}}"
)}
error: Could not complete submission of dSYM at /var/folders/5s/5zdwf6jj5ln3l7wvdngd32b00000gn/T///Users/username/Developer/appname-ios/build/AppName.app.dSYM.zip.unzipped/AppName.app.dSYM: Error Domain=com.google.firebase.crashlytics.FIRCLSCompoundOperation.error Code=4294967293 "(null)" UserInfo={com.google.firebase.crashlytics.FIRCLSCompoundOperation.error.user-info-key.underlying-errors=(
    "Error Domain=com.crashlytics.mac.error-domain.submit-csym Code=0 \"Failed to submit cSYM for architecture arm64 with uuid b1216f2668e53431872b0e514f0dca40 in dSYM: /var/folders/5s/5zdwf6jj5ln3l7wvdngd32b00000gn/T///Users/username/Developer/appname-ios/build/AppName.app.dSYM.zip.unzipped/AppName.app.dSYM\" UserInfo={NSLocalizedFailureReason=Failed to submit cSYM for architecture arm64 with uuid b1216f2668e53431872b0e514f0dca40 in dSYM: /var/folders/5s/5zdwf6jj5ln3l7wvdngd32b00000gn/T///Users/username/Developer/appname-ios/build/AppName.app.dSYM.zip.unzipped/AppName.app.dSYM, NSUnderlyingError=0x60000803c990 {Error Domain=NSPOSIXErrorDomain Code=40 \"Message too long\" UserInfo={_NSURLErrorFailingURLSessionTaskErrorKey=LocalDataTask <241496FF-2AB5-4324-8169-0E34DA56FF44>.<1>, _kCFStreamErrorDomainKey=1, NSErrorPeerAddressKey=<CFData 0x600003720de0 [0x1f159c000]>{length = 28, capacity = 28, bytes = 0x1c1e01bb000000002a0014504014080b ... 0000200a00000000}, _kCFStreamErrorCodeKey=40, _NSURLErrorRelatedURLSessionTaskErrorKey=(\n    \"LocalDataTask <241496FF-2AB5-4324-8169-0E34DA56FF44>.<1>\"\n)}}}"
)}

Any idea what can be wrong?

Hi @machl, just want to confirm if you have tried unzipping the dSYM file and removing the icon file as mentioned here?

@rizafran Yes unziping helps. There was no icon inside zip. Isn't the script supposed to work also with .zip and not just unziped .dSYM files? Because Uploading the same zip manually in the Firebase console website works well.

The original issue disappeared after a day. It look like there was some outage on backend side for several days.

Just to let you know that it is working randomly. My network connection seems to be fine. I suspect there is an issue with the Crashlytics backend service.

Hi @mihaicris-adoreme, could you provide the following details:

SDK version used
Installation method used
Confirmation if you have followed the step 4 here

SDK: 9.2.0
Swift Package Manager
I have a custom setup which worked fine until recently.

I have 2 Run Script Phases:

Name: Firebase-Crashlytics

"$SRCROOT"/Scripts/firebase-Crashlytics.sh

script which contains following content:
"${BUILD_DIR%Build/*}SourcePackages/checkouts/firebase-ios-sdk/Crashlytics/run"

Phase with name: Firebase-Crashlytics-Upload-Symbols (this is for install builds only) I want to run this script for upload symbols only when I create archive builds).

"$SRCROOT"/Scripts/firebase-Crashlytics-Upload-Symbols.sh

script which contains following content:
if [ $CONFIGURATION = "Debug" ]; then
    GSP=Sources/AdoreMe/Resources/Google/GoogleService-Sandbox-Info.plist
else
    GSP=Sources/AdoreMe/Resources/Google/GoogleService-Info.plist
fi

find ${DWARF_DSYM_FOLDER_PATH} -maxdepth 1 -name "*.dSYM" | xargs -I \{\} "${BUILD_DIR%Build/*}SourcePackages/checkouts/firebase-ios-sdk/Crashlytics/upload-symbols" -gsp $GSP -p ios \{\}

This setup worked fine until recently.
The error "Message is too long" , what it means? Is this related with parameter list which is passed to upload-symbols tool?
Last question : should I open a different github issue?
Thank you for you assistance!

Thanks for sharing the info, @mihaicris-adoreme. Sure, you can file a new GitHub issue with the relevant information since the issue here has been fixed, and I'll close this ticket again.


Mixed casing in address hex text

Rendered derived addresses seem to contain both uppercase and lowercase hex letters. This makes it hard to search a set of them because a correct hex match will fail a text search simply because a case differs in one of the letters. The public and private keys in the list are fine, they are always generated with lowercase hex letters.
Example:

It is a feature, not a bug. Many wallets and other software around ETH encode a checksum into the casing of the address digits that are letters.
https://eips.ethereum.org/EIPS/eip-55


Hermit fails to detect environment correctly

I found this issue working with Hermit in VS Code. When we launch VS Code from a hermit-activated environment/shell, it fails to set the PATH correctly for the underlying terminal:
source ./bin/activate-hermit
echo $HERMIT_ENV                       # /path/to/my/repo
which python3                          # /path/to/my/repo/bin/python3

Which tells me that the environment is activated successfully, however, if I open a VS Code instance from that terminal:
code /path/to/my/repo

And try to use the integrated terminal:
echo $HERMIT_ENV                       # /path/to/my/repo
which python3                          # /usr/bin/python3

Which means that HERMIT_ENV is propagated, but PATH is not propagated correctly.
To fix this, I have to activate it again from the integrated terminal, even though it is using zsh, which has the right hermit shell-hooks in .zshrc:
source ./bin/activate-hermit

This Hermit environment has already been activated. Skipping

I then get this confusing message, however, the shell is configured correctly now:
which python3                          # /path/to/my/repo/bin/python3

I wonder if there is a better way to detect this better than using HERMIT_ENV. We can either:

fix this for integrated terminals, so that PATH is propagated correctly.
Detect that the shell is not truly configured, and update error message accourdingly.

I would imagine that VSCode is overwriting your PATH, there's not much we can do about that IMO, unless you have any suggestions.

TBH I think ideally there would be a VSCode Hermit plugin.

https://github.com/microsoft/vscode/blob/97d358236cd332ea6d2308c32dd44d39fc07a9b5/src/vs/platform/terminal/common/terminal.ts#L468-L474

Nice find! We should add that to the docs.

It looks like VSCode is messing with the PATH. With that setting I get the following:
/Users/aat/bin:/opt/homebrew/bin:/opt/homebrew/bin:/opt/homebrew/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/local/bin:/usr/local/munki:/Users/aat/Development/orc/bin:/Users/aat/Development/orc/build:/Users/aat/Development/orc/scripts:/Users/aat/Development/orc/node_modules/.bin:/Users/aat/Development/orc/.hermit/node/bin:/Users/aat/Development/orc/.hermit/go/bin:/Users/aat/bin:/opt/homebrew/bin:/opt/homebrew/sbin:/Applications/kitty.app/Contents/MacOS:/opt/homebrew/opt/fzf/bin

So it's moving the system PATH entries before my custom ones, which makes little sense to me TBH. Anyway, unless there's something straightforward, I don't think we should expend significant time on fixing what IMO is a misfeature of VSCode. Suggestions welcome though.

BTW I fired up Sublime and it actually exhibits the same behaviour. Also in VSCode the shell hooks are disabled.

Some more data. It looks like --login does not bring in the shell hooks (cc @jvmakine)
🐚 ~/Development/orc $ zsh -l
~/Development/orc $ cd
~ $ cd -
~/Development/orc
~/Development/orc $

So, I think there are a couple of different issues that are mentioned here:

Hermit's inability to detect whether the shell is truly deactivated or not (which is different than if the environment variables are set). I can use type deactivate-hermit to detect that, which should evaluate to false if the shell is not set correctly. However, it is useless if hermit itself is not doing that, as it will still error out with:

This Hermit environment has already been activated. Skipping

Should it detect the shell activation using something like this instead of relying on environment variables? In my understanding, they are separate things (you can have hermit binaries in your PATH, without ever using shell hooks).

VS Code inability to detect hermit tools, which should be fixed by doing a proper Hermit VS Code extension (and probably using an EnvironmentVariableMutator). I've experience with the VS Code APIs, and happy to have a discussion around that later, but I think this is a much bigger work item than the issue above.

I don't think this is true:

Hermit's inability to detect whether the shell is truly deactivated or not

In my example above, the environment is set - all of Hermit's envar changes are active - but something is reordering the $PATH. I suspect your original issue is the same, that you have python3 installed on your system and this path reordering is causing that to be used. The PATH reordering is the real issue that needs to be solved.

I see. I will dig deeper then. Thanks for the tip.

I think something like the following would be a good workaround for vs code at least.
# Workaround for Visual Studio Code integrated terminal
if [[ -v ACTIVE_HERMIT && -v VSCODE_GIT_IPC_HANDLE ]]; then
    unset ACTIVE_HERMIT
    source bin/activate-hermit > /dev/null
fi

Alternatively we can have the ./bin/activate-hermit script still activate the shell commands if it detects they are missing.

Moving my earlier comment here:
@damienrj @alecthomas I think a good fix for the error message (and the activation error) is to just refactor activate-hermit, by just moving this method to the top of file. The bug is that it is called before it is defined, which causes a runtime error:
https://github.com/cashapp/hermit/blob/5aaecb9837a7ad664856c79798ba6979e734a128/shell/files/activate.tmpl.sh#L43
The fix is relatively simple/safe to do, but I didn't get time to write a shellspec full integration test for it.
This won't fix the PATH issue (so you still need to activate again inside the terminal), but I argue that it would be a minor inconvenience at this point, and the rest should be working.

@OmarTawfik https://github.com/cashapp/hermit/pull/268 let's get it going!

The reason deactivate-hermit is called before being defined is for backwards compatibility. Because of continuous upgrades, Hermit has to basically support a form of "schema evolution".
In this case that means that if a new version of Hermit is installed that modifies how deactivate-hermit operates, we want the previous logic to be applied, not the new logic.

We could instead check if it's defined before calling it.

Yeah that seems reasonable to me.


Updated the raven module to use the recent @sentry/node

Updated the raven module to use the recent @sentry/node
During object initialization :
Added extra tags / user / context  to the scope using Sentry.configureScope
Added a default environment (by default) tag (process.env.NODE_ENV)
During Event handling
Added extra data to the specific scope using Sentry.withScope
Added some 'unit tests'
TBD :
Update documentation

up ?

up ?


[Feature Request]: Support for laravel 9

Describe the feature you'd like
Laravel 9 and php 8 is available now. I would like to use upgrade and use them.
Describe the benefits this feature would bring to BookStack users
users will be able to use laravel 9 on bookstack with php 8.0
Additional context
No response

Hi @chyeteck,
We have had support for PHP8.0 for a while now, and support for PHP8.1 since release v21.11.
Is there any reason why upgrading to Laravel 9 would bring any significant benefit for us at this stage?
I'd generally be planning to upgrade quite late in the Laravel 8 lifecycle to manage lower-end PHP version requirement changes.

Will therefore close this off since there is no clear benefit of this request at this time.

I realise this is closed due to no response from the original poster. The benefits I can see to upgrading to Laravel 9 would be:

Its the new LTS and is supported until Feb 2025
Fulltext indexes and where clauses
New scout database engine for Eloquent models

Thanks @Cave-Johnson,
Yeah, so there's no significant need to upgrade at this time as we're not in current demand of any of those features.
Note, Laravel 9 is no longer LTS and has a lesser support lifetime. Again, we will upgrade to this but at a time that fits into the project.


CompatHelper v3.0.0 - GitHub action fail with ERROR: Private key is not in the correct format.

Hi,
I'm new to both Julia and GitHub actions. So I'll try to describe the issue. I've a few private repo that are Julia package created by PkgTemplate. The only workflow I've got is the default one for CompatHelper. The first step is julia -e 'using Pkg; Pkg.add("CompatHelper")'.

On some of my repo, this installs v2.1.1 and all is fine. All daily runs install the v2.1.1 including the one of today (about 10 hours ago)
On some other repo, since about 4 ou 5 days ago, this installs v3.0.0. I do not know why some job resolve to this new major version and some others don't... Anyway, in all cases where the first step install v3.0.0, the second part of the job with the following error.

[ Info: EnvVar `COMPATHELPER_PRIV` is defined, nonempty, and not `false`
[ Info: This doesn't look like a raw SSH private key. I will assume that it is a Base64-encoded SSH private key. I will now try to Base64-decode it.
ERROR: Private key is not in the correct format. It must be a private key in PEM format. You should use the OpenSSH `ssh-keygen` command to generate the private key. You should pass the `-m PEM` option to ensure that the private key is in PEM format.

Stacktrace:
  [1] decode_ssh_private_key(content::String)
    @ CompatHelper ~/.julia/packages/CompatHelper/6Gctp/src/utilities/ssh.jl:29
  [2] macro expansion
    @ ~/.julia/packages/Mocking/GhDrf/src/mock.jl:29 [inlined]

Seems very related to #380 ?
Or maybe I should change my workflow file as in PR #379 ?
I've no idea what I'm doing, sorry 😄
The default workflow file I've got is:
name: CompatHelper
on:
  schedule:
    - cron: 0 0 * * *
  workflow_dispatch:
jobs:
  CompatHelper:
    runs-on: ubuntu-latest
    steps:
      - name: Pkg.add("CompatHelper")
        run: julia -e 'using Pkg; Pkg.add("CompatHelper")'
      - name: CompatHelper.main()
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          COMPATHELPER_PRIV: ${{ secrets.DOCUMENTER_KEY }}
        run: julia -e 'using CompatHelper; CompatHelper.main()'

+1, I am experiencing identical behavior using default CompatHelper settings per the documentation.

I just saw this on the Julia Slack as it was brought up. I'll take a look into this and will be implementing #380. It's a bit tricky to debug here since you cannot safely see what the DOCUMENTER_KEY value is without exposing it to everyone. But there definitely is something missing here for using the secret.
Fix should be up within an hour or so, just in some meetings currently. Appreciate the issue being opened up! And thanks for your patience :)


refactor(KONFLUX-3773): Fork repositories sequentially

GitHub does not allow forking more than 3 at a time anyway. If 3 are forking already, it returns 403 for more forking requests and as we are retrying after 2 seconds, we soon used whole rate_limit.
With parralel forking it also often happened that process was stuck in loop with 403 and only think that helped was cleaning all 10 temporary repos like "<source_repo>-1".
Anyway, fingers crossed, this will be slower but more stable.

LGTM

/lgtm