In the Compose Preview screenshot tests, rendering fails

When running ScreenshotTests for a Composable function within Compose Preview,
which checks if rendering is happening inside the Preview function, rendering occasionally fails.
I think the issue in the Preview Scanner Screenshot test is due to the LocalInspectionMode value being set to false. I have proposed a fix in the following PR. Please review it.
https://github.com/takahirom/roborazzi/pull/588
For example, in Landscapist, the Boolean value of LocalInspectionMode is used to set a placeholder for Preview.
https://github.com/skydoves/landscapist/blob/2.4.4/glide/src/main/kotlin/com/skydoves/landscapist/glide/GlideImage.kt#L124
I encountered a failed case where, because LocalInspectionMode was set to false, the preview image was not used and an attempt was made to fetch the actual network image, resulting in a failure to render.

close this issue,merging this PR.
https://github.com/takahirom/roborazzi/pull/588


how can i add currency icon after odemeter class. such as $..

See https://github.com/HubSpot/odometer/issues/106


Add an error handling when malloc failed

Hello,
We should exit when malloc failed.
Because if we can't allocate memory, processing thereafter can't continue.
License
I confirm that this contribution is made under an Apache 2.0 license and that I have the authority necessary to make this contribution on behalf of its copyright owner.

A pretty pointless check, if at startup can't malloc memory you are going to have many more issues.  If you are really interested in fixing all the mallocs, should look at using g_malloc which does the check for you (but need to make sure to use g_free)

Oh, I see.
Thank you for your comment.


[Docbug][Payloadformeetingchat]

Added payload for meeting chat. Please review.

Docs Build status updates of commit 6b458fb:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

msteams-platform/messaging-extensions/how-to/action-commands/create-task-module.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel


Document kubectl plugin resolution for non-shadowing subcommands

This PR adds document for the alpha stage of https://github.com/kubernetes/enhancements/issues/3638

/sig cli

I'm closing this PR in favor of https://github.com/kubernetes/website/pull/39969. Because correct target branch is not main, it is dev-1.27.
/close


PEP: pandas/core round 3 (generic, groupby, index)

yapf with manual modifications for error strings and bad yapf formatting.

No github diffs again!
There are some pieces of code that I think can be removed but want to confirm:
index.py i/j are not used anywhere.
groupby.py how can this work?  agg_func is not defined.

index i/j ok to remove

yeh that looks not tested, it for a transform on a Panel or greater. I think just raise NotImplemented (if the ndim >= 3) & remove the 2nd clause (where you noted). If nothing breaks in the test suite then ok!

I assume it should be transform_func(result[:, :, i], chunk, comp_ids, accum)

k, I can do that.

@rockg I would keep style changes and code clean-up (as in removal of unused code) strictly separated (at least in a separate commit). Just to be sure, in case we overlooked something, then it is not burried in a gigantic commit for which you can't see the diff.

The main goal of this exercise is to make flake8 passing and cleanup some style were necessary.  What I cleaned out were unused variables reported by flake8 and, as a result, I don't see a problem including that here.

@rockg I've been putting # noqa on these lines and adding a TODO comment to come back and investigate

This is especially important in unit tests where I suspect that there are some test cases that may have skipped some intended checks

Okay, that seems reasonable.

ok, rebasing core/groupby.py is going to be painful for #11841 but go ahead (my touches are mostly reorg anyhow)

Is this good to merge?

I'll leave this to @jreback with the pending rebase

if u want to remove groupby.py from this would be great (I'll catch that in resample fixes)
otherwise lgtm

thanks! we're almost there =)


Feature/xpub getbalancebylabel fix

A PR that aims to fix a few small errors that would result invalid JSON being returned for getBalanceByLabel calls.
Tested with SDK and seems to resolve previous issues :)

Very nice!  Thanks a lot!  Still a mystery how all those passed previous tests!


Unable to read XHR response for control sap.m.upload.UploadSet

OpenUI5 version: 1.69.0
Browser/version (+device/version): 76.0.3809.132 /Desktop
Any other tested browsers/devices(OK/FAIL):NA
URL (minimal example if possible):
User/password (if required and possible - do not post any confidential information here):
Steps to reproduce the problem:

There is no possible way to read XHR response when using the control sap.m.UploadSet

What is the expected result? Ability to read XHR response
What happens instead?
Any other information? (attach screenshot if possible)

Hi @santhu3004,
Thank you for sharing this finding. I've created an internal incident<PHONE_NUMBER>. The status of the issue will be updated here in GitHub.
Regards,
Nikolay Hristov

Hi @santhu3004 ,
We do not support returning raw XHR object as a response to upload action, but you can easily do it by setting your own uploader. In case you do not set the uploader, the default one is used: sap.m.upload.Uploader.
You can extend this one to return XHR Object or write your own and set it to the aggregations.
Please see the section Aggregations -> uploader.
https://openui5.hana.ondemand.com/#/api/sap.m.upload.UploadSet
Thank you,
Kind Regards,
Antonin

Hello @SanthoshCheekoti ,
Since there is no response for a long time and a proposed solution, I am closing the issue.
Best regards,
Tereza


Issue on gRPC over unix domain socket

Version
tonic v0.6.1
tonic-build v0.6.0
Platform
WSL2
Linux <IP_ADDRESS>-microsoft-standard-WSL2 #1 SMP Wed Aug 25 23:20:18 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
Description
Hi everybody I'm trying to implement a gRPC server over Unix domain socket. Using the uds server example I received an error when I'm trying connection with a grpc client:
the client is implemented in golang using go-rpc library
Error when calling SayHello: rpc error: code = Internal desc = stream terminated by RST_STREAM with error code: PROTOCOL_ERROR
Can I have some help? I'm new of rust development

seems that the issue is related to:
https://github.com/hyperium/tonic/issues/742
https://github.com/hyperium/h2/pull/487


Check whether qualifiers in request are supported

Brings us in line with the spec by checking whether we support the supplied qualifiers before Fetching, returning an appropriate error with details. In order to do this consistently, I've made a "Fetcher" interface around the "remoteasset.FetchServer", which allows us to check for qualifier support. This formalises the close relationship of Fetchers and Qualifiers.
Note that this does mean that if a client Pushes a blob with unsupported qualifiers, we won't be able to get said blob out of the store. I think we should just trust clients to not push stuff with qualifiers that aren't supported for the moment given the lack of data on how these will be used. Perhaps to get around this we could point the Pusher at the top-level fetcher and call CheckQualifiers before pushing?
This is essentially https://github.com/Qinusty/bb-asset-hub/pull/16, only with the commit to make Fetcher.CheckQualifiers return an error over a qualifier.Set dropped. My reason for dropping said commit is that with the approach of using Actions the value of a gRPC proxy fetcher is vastly diminished - generic fetching can be done using remote workers rather than a load of bb-remote-asset instances.
In between my original authoring of these commits and now, I've realised that Blob and Directory may have different Qualifier support (e.g. it makes no sense to request the checksum of a directory), I don't know if we want to separate the CheckQualifiers method into two methods - one for Blob and one for Directory.

Closing as included in #16


Connection to the websocket refused

Hi,
I have a sip.js application here which I want to let connect to a routr instance.
But it fails to connect to the websocket with this message:

WebSocket connection to 'wss://....com:5063/' failed: Error in connection establishment: net::ERR_CONNECTION_REFUSED

I've setup the certificates and have manually entered the wss port in the network settings.
Telnet doesn't work either and a listen -al | grep LISTEN shows that the port 5063 isn't open.
Do you have any clue here?

When you start Routr does it show all the ports initial setup? Like this:

Thanks!
How do I (re)start it? Currently it is running as whatever daemon the Snap installation has setup.

Use rctl system restart

Thx.
This is the from the log, yet I still can't connect to 5063:

[INFO ] 2020-03-26 14:19:54.290 [main] MHBase - Starting Routr
[INFO ] 2020-03-26 14:19:54.346 [main] routr - using Enabled tls auth policy
[WARN ] 2020-03-26 14:19:55.078 [main] routr - using default tls security policy
[INFO ] 2020-03-26 14:19:55.080 [main] routr - javax.net.ssl.trustStorePassword is null, using the password passed through javax.net.ssl.keyStorePassword
[WARN ] 2020-03-26 14:19:55.081 [main] routr - Using default truststore type jks
[INFO ] 2020-03-26 14:19:55.444 [main] MHBase - Listening on <IP_ADDRESS>:5060 [udp]
[INFO ] 2020-03-26 14:19:55.476 [main] MHBase - Listening on <IP_ADDRESS>:5060 [tcp]
[INFO ] 2020-03-26 14:19:55.485 [main] MHBase - Listening on <IP_ADDRESS>:5063 [wss]
[DEBUG] 2020-03-26 14:19:57.238 [main] InternalLoggerFactory - Using Log4J as the default logging framework
[DEBUG] 2020-03-26 14:19:57.243 [main] PlatformDependent0 - -Dio.netty.noUnsafe: false
[DEBUG] 2020-03-26 14:19:57.243 [main] PlatformDependent0 - Java version: 8
[DEBUG] 2020-03-26 14:19:57.244 [main] PlatformDependent0 - sun.misc.Unsafe.theUnsafe: available
[DEBUG] 2020-03-26 14:19:57.245 [main] PlatformDependent0 - sun.misc.Unsafe.copyMemory: available
[DEBUG] 2020-03-26 14:19:57.246 [main] PlatformDependent0 - java.nio.Buffer.address: available
[DEBUG] 2020-03-26 14:19:57.246 [main] PlatformDependent0 - direct buffer constructor: available
[DEBUG] 2020-03-26 14:19:57.247 [main] PlatformDependent0 - java.nio.Bits.unaligned: available, true
[DEBUG] 2020-03-26 14:19:57.247 [main] PlatformDependent0 - jdk.internal.misc.Unsafe.allocateUninitializedArray(int): unavailable prior to Java9
[DEBUG] 2020-03-26 14:19:57.247 [main] PlatformDependent0 - java.nio.DirectByteBuffer.(long, int): available
[DEBUG] 2020-03-26 14:19:57.248 [main] PlatformDependent - sun.misc.Unsafe: available
[DEBUG] 2020-03-26 14:19:57.248 [main] PlatformDependent - -Dio.netty.tmpdir: /tmp (java.io.tmpdir)
[DEBUG] 2020-03-26 14:19:57.248 [main] PlatformDependent - -Dio.netty.bitMode: 64 (sun.arch.data.model)
[DEBUG] 2020-03-26 14:19:57.250 [main] PlatformDependent - -Dio.netty.maxDirectMemory: 245301248 bytes
[DEBUG] 2020-03-26 14:19:57.250 [main] PlatformDependent - -Dio.netty.uninitializedArrayAllocationThreshold: -1
[DEBUG] 2020-03-26 14:19:57.251 [main] CleanerJava6 - java.nio.ByteBuffer.cleaner(): available
[DEBUG] 2020-03-26 14:19:57.251 [main] PlatformDependent - -Dio.netty.noPreferDirect: false
[DEBUG] 2020-03-26 14:19:57.262 [main] MultithreadEventLoopGroup - -Dio.netty.eventLoopThreads: 4
[DEBUG] 2020-03-26 14:19:57.290 [main] NioEventLoop - -Dio.netty.noKeySetOptimization: false
[DEBUG] 2020-03-26 14:19:57.290 [main] NioEventLoop - -Dio.netty.selectorAutoRebuildThreshold: 512
[DEBUG] 2020-03-26 14:19:57.301 [main] PlatformDependent - org.jctools-core.MpscChunkedArrayQueue: available
[INFO ] 2020-03-26 14:19:57.375 [main] MHBase - Starting Restful service (port: 4567, apiPath: /api/v1beta1)

I'm unable to replicate this issue :|

I wonder if it has anything to do with Snap. Are you only having issues with WSS?

Hm, I don't get anything at the moment when executing lsof.
And I can't restart routr anymore?

rctl system restart
Unable to perform request. Ensure server is up!

I gout you. Check the status of the Snap Service and restart in needed.
sudo snap services
sudo snap restart routr-server.routr-server

Any luck with it this?

Hi @psanders ,
I'm afraid not, here is what I did:

ubuntu@ip-172-31-26-131:~$ sudo snap services
Service                            Startup  Current   Notes
amazon-ssm-agent.amazon-ssm-agent  enabled  active    -
routr-server.routr-redis           enabled  active    -
routr-server.routr-server          enabled  inactive  -
ubuntu@ip-172-31-26-131:~$  sudo snap restart routr-server.routr-server
Restarted.
ubuntu@ip-172-31-26-131:~$ sudo snap services
Service                            Startup  Current  Notes
amazon-ssm-agent.amazon-ssm-agent  enabled  active   -
routr-server.routr-redis           enabled  active   -
routr-server.routr-server          enabled  active   -
ubuntu@ip-172-31-26-131:~$ lsof -i :5060
ubuntu@ip-172-31-26-131:~$ lsof -i :5061
ubuntu@ip-172-31-26-131:~$ lsof -i :5063
ubuntu@ip-172-31-26-131:~$ netstat -al | grep LISTEN
tcp        0      0 localhost:domain        <IP_ADDRESS>:*               LISTEN
tcp        0      0 <IP_ADDRESS>:ssh             <IP_ADDRESS>:*               LISTEN
tcp        0      0 <IP_ADDRESS>:8000            <IP_ADDRESS>:*               LISTEN
tcp        0      0 <IP_ADDRESS>:6379            <IP_ADDRESS>:*               LISTEN
tcp6       0      0 [::]:ssh                [::]:*                  LISTEN
tcp6       0      0 [::]:6379               [::]:*                  LISTEN
unix  2      [ ACC ]     SEQPACKET  LISTENING     11921    /run/udev/control
unix  2      [ ACC ]     STREAM     LISTENING     896240   /run/user/1000/systemd/private
unix  2      [ ACC ]     STREAM     LISTENING     896244   /run/user/1000/gnupg/S.gpg-agent
unix  2      [ ACC ]     STREAM     LISTENING     896245   /run/user/1000/snapd-session-agent.socket
unix  2      [ ACC ]     STREAM     LISTENING     896246   /run/user/1000/gnupg/S.gpg-agent.browser
unix  2      [ ACC ]     STREAM     LISTENING     896247   /run/user/1000/gnupg/S.gpg-agent.extra
unix  2      [ ACC ]     STREAM     LISTENING     896248   /run/user/1000/gnupg/S.dirmngr
unix  2      [ ACC ]     STREAM     LISTENING     896249   /run/user/1000/gnupg/S.gpg-agent.ssh
unix  2      [ ACC ]     STREAM     LISTENING     16056    @irqbalance803.sock
unix  2      [ ACC ]     STREAM     LISTENING     16523    /var/lib/lxd/unix.socket
unix  2      [ ACC ]     STREAM     LISTENING     16487    /run/acpid.socket
unix  2      [ ACC ]     STREAM     LISTENING     16496    /run/snapd.socket
unix  2      [ ACC ]     STREAM     LISTENING     16498    /run/snapd-snap.socket
unix  2      [ ACC ]     STREAM     LISTENING     16517    /run/uuidd/request
unix  2      [ ACC ]     STREAM     LISTENING     15947    /var/run/dbus/system_bus_socket
unix  2      [ ACC ]     STREAM     LISTENING     15930    @ISCSIADM_ABSTRACT_NAMESPACE
unix  2      [ ACC ]     STREAM     LISTENING     11754    /run/systemd/private
unix  2      [ ACC ]     STREAM     LISTENING     11759    /run/systemd/journal/stdout
unix  2      [ ACC ]     STREAM     LISTENING     11868    /run/lvm/lvmetad.socket
unix  2      [ ACC ]     STREAM     LISTENING     11916    /run/lvm/lvmpolld.socket

I know is a long shot, but will running sudo lsof -i :5060 yield different results? I cant think on a reason why the server is not listening but is "active."

Can you share your /var/snap/routr-server/current/logs/routr.log restarting?

@psanders
Hi,
thanks for investigating!
This is my log after a sudo snap restart routr-server.routr-server:
[WARN ] 2020-04-01 09:35:13.324 [main] MHBase - java.io.FileNotFoundException: config/stack.properties (No such file or directory)
[INFO ] 2020-04-01 09:35:13.390 [main] MHBase - Starting Routr
[INFO ] 2020-04-01 09:35:13.465 [main] routr - using Enabled tls auth policy
[WARN ] 2020-04-01 09:35:14.274 [main] routr - using default tls security policy
[INFO ] 2020-04-01 09:35:14.286 [main] routr - javax.net.ssl.trustStorePassword is null, using the password passed through javax.net.ssl.keyStorePassword
[WARN ] 2020-04-01 09:35:14.287 [main] routr - Using default truststore type jks
[INFO ] 2020-04-01 09:35:14.628 [main] MHBase - Listening on <IP_ADDRESS>:5060 [udp]
[INFO ] 2020-04-01 09:35:14.656 [main] MHBase - Listening on <IP_ADDRESS>:5060 [tcp]
[INFO ] 2020-04-01 09:35:14.661 [main] MHBase - Listening on <IP_ADDRESS>:5063 [wss]
[DEBUG] 2020-04-01 09:35:16.586 [main] InternalLoggerFactory - Using Log4J as the default logging framework
[DEBUG] 2020-04-01 09:35:16.590 [main] PlatformDependent0 - -Dio.netty.noUnsafe: false
[DEBUG] 2020-04-01 09:35:16.590 [main] PlatformDependent0 - Java version: 8
[DEBUG] 2020-04-01 09:35:16.591 [main] PlatformDependent0 - sun.misc.Unsafe.theUnsafe: available
[DEBUG] 2020-04-01 09:35:16.592 [main] PlatformDependent0 - sun.misc.Unsafe.copyMemory: available
[DEBUG] 2020-04-01 09:35:16.593 [main] PlatformDependent0 - java.nio.Buffer.address: available
[DEBUG] 2020-04-01 09:35:16.593 [main] PlatformDependent0 - direct buffer constructor: available
[DEBUG] 2020-04-01 09:35:16.594 [main] PlatformDependent0 - java.nio.Bits.unaligned: available, true
[DEBUG] 2020-04-01 09:35:16.594 [main] PlatformDependent0 - jdk.internal.misc.Unsafe.allocateUninitializedArray(int): unavailable prior to Java9
[DEBUG] 2020-04-01 09:35:16.594 [main] PlatformDependent0 - java.nio.DirectByteBuffer.<init>(long, int): available
[DEBUG] 2020-04-01 09:35:16.594 [main] PlatformDependent - sun.misc.Unsafe: available
[DEBUG] 2020-04-01 09:35:16.595 [main] PlatformDependent - -Dio.netty.tmpdir: /tmp (java.io.tmpdir)
[DEBUG] 2020-04-01 09:35:16.595 [main] PlatformDependent - -Dio.netty.bitMode: 64 (sun.arch.data.model)
[DEBUG] 2020-04-01 09:35:16.596 [main] PlatformDependent - -Dio.netty.maxDirectMemory: 245301248 bytes
[DEBUG] 2020-04-01 09:35:16.597 [main] PlatformDependent - -Dio.netty.uninitializedArrayAllocationThreshold: -1
[DEBUG] 2020-04-01 09:35:16.598 [main] CleanerJava6 - java.nio.ByteBuffer.cleaner(): available
[DEBUG] 2020-04-01 09:35:16.598 [main] PlatformDependent - -Dio.netty.noPreferDirect: false
[DEBUG] 2020-04-01 09:35:16.609 [main] MultithreadEventLoopGroup - -Dio.netty.eventLoopThreads: 4
[DEBUG] 2020-04-01 09:35:16.634 [main] NioEventLoop - -Dio.netty.noKeySetOptimization: false
[DEBUG] 2020-04-01 09:35:16.635 [main] NioEventLoop - -Dio.netty.selectorAutoRebuildThreshold: 512
[DEBUG] 2020-04-01 09:35:16.643 [main] PlatformDependent - org.jctools-core.MpscChunkedArrayQueue: available
[INFO ] 2020-04-01 09:35:16.696 [main] MHBase - Starting Restful service (port: 4567, apiPath: /api/v1beta1)

Afterwards, sudo lsof -i :5060 still has no output and an exit code of "1".
What I could also offer here, if you are interested (I don't want to steal your time!): If you give me a public key and your (current) IP address, I could give you direct access to the server. You can send this information to me via<EMAIL_ADDRESS>

I published a fix for this in the Edge channel of the Snapstore, as well as in the Docker Hub.
There is another unrelated issue with SIP.js that will affect your deployment. I'm closing this for now, but feel free to reopen if this issue reoccurs.

Awesome, I will give it a try right next week when I'm back to work. Thanks!


[Add new Device] Oittm Smart Aroma Diffuser

@AMoo-Miki First, thanks for your time you are investing and your work sharing with us.
Any chance you could consider to add the "Oittm" Smart Aroma Diffuser to the devices list, work with your plugin? https://amzn.to/2BTUNDG
With basic function "on/off" it was already working with the now deprecated plugin of codetheweb/homebridge-tuya
Thanks again.

If it worked with the old one there isn't a reason why it won't work with this one.  I just made the migration and was able to make all my devices work.

@twistedindustries is correct. You can define it as a SimpleLight and that will give you basic on/off functionality.
{
    ...
    "platforms": [
        ...
        /* The block you need to enable this plugin */
        {
            "platform": "TuyaLan",
            "devices": [
                /* The block you need for each device */
                {
                    "name": "Aroma Diffuser",
                    "type": "SimpleLight",
                    "manufacturer": "Oittm",
                    "model": "Smart Aroma Diffuser ",
                    "id": "011233455677899abbcd",
                    "key": "0123456789abcdef"
                }
                /* End of the device definition block */
            ]
        }
        /* End of the block needed to enable this plugin */
    ]
    ...
}

Lemme know if you have trouble.

@DJay-X, a question just popped into my head. After you add your diffuser as a SimpleLight, see if the signature is anything other than {"1": true/false}. Having any parameter other than "1", it means your diffuser has other functionalities that we might be able to implement. Lemme know what you find.

@AMoo-Miki Sorry for my late reply and thanks for considering to add the device as a typ in your plugin.
I followed your instruction as SimpleLight and the log showed something that could help.
pi@raspberrypi-3BPlus:~ $ sudo journalctl -f -u homebridge
-- Logs begin at Thu 2016-11-03 18:16:42 CET. --
Apr 18 13:10:22 raspberrypi-3BPlus systemd[1]: Started Node.js HomeKit Server.
Apr 18 13:10:41 raspberrypi-3BPlus homebridge[364]: [2019-4-18 13:10:41] Loaded config.json with 57 accessories and 20 platforms.
Apr 18 13:11:38 raspberrypi-3BPlus homebridge[364]: [2019-4-18 13:11:38] Loaded plugin: homebridge-tuya-lan
Apr 18 13:11:38 raspberrypi-3BPlus homebridge[364]: [2019-4-18 13:11:38] Registering platform 'homebridge-tuya-lan.TuyaLan'
Apr 18 13:11:44 raspberrypi-3BPlus homebridge[364]: [2019-4-18 13:11:44] [TuyaLan] Initializing TuyaLan platform...
Apr 18 13:11:46 raspberrypi-3BPlus homebridge[364]: [2019-4-18 13:11:46] [TuyaLan] Starting discovery...
Apr 18 13:11:46 raspberrypi-3BPlus homebridge[364]: [TuyaAccessory] Discovery started.
Apr 18 13:11:50 raspberrypi-3BPlus homebridge[364]: [2019-4-18 13:11:50] [TuyaLan] Discovered Lufterfrischer (xxxxxxxxxxxxxxxxxxxx)
Apr 18 13:11:51 raspberrypi-3BPlus homebridge[364]: [TuyaAccessory] Discovery ended.
Apr 18 13:11:51 raspberrypi-3BPlus homebridge[364]: [2019-4-18 13:11:51] [TuyaLan] Connected to Lufterfrischer
Apr 18 13:11:52 raspberrypi-3BPlus homebridge[364]: [2019-4-18 13:11:52] [TuyaLan] Ready to handle Lufterfrischer with signature {"1":true,"101":"1","102":"1","103":0}
Apr 18 13:12:46 raspberrypi-3BPlus homebridge[364]: [TuyaAccessory] Sending Lufterfrischer {"1":false}
Apr 18 13:12:49 raspberrypi-3BPlus homebridge[364]: [TuyaAccessory] Sending Lufterfrischer {"1":true}

May it is possible to use the typ "Fan"? Because in the Apple Home App then the animated Fan Symbol would also show up.
Thanks again for the time you are investing and for your work.
Product Information here
https://youtu.be/tDCOKcbCd1I?t=111
https://www.oittm.com/blog/Oittm-Smart-Aroma-Diffuser-APP-Manipulation

@AMoo-Miki I noticed today (first use of your plugin with the aroma diffuser), that a bigger Issue so that it makes the plugin nearly not usable.
When the physical device is just plugged off the wall and has no power, because its a small mobile device and not always in use stored away, the plugin is going crazy.
I have endless entries in the log running forever and can't be good for homebridge.
Apr 18 18:22:31 raspberrypi-3BPlus homebridge[427]: [TuyaAccessory] Closed connection with Lufterfrischer
This is running constantly with endless entries.
Even when I plugin the diffuser back to power, entries are still running and device can't be controlled.
I have to stop Homebridge by Terminal sudo systemctl stop homebridge and restart it again.
The device is as Type "Outlet" in the config.json
Hope you can help with this Issue that Homebridge is not going crazy when the device is not on power.
Thanks again.

The plugin doesn't expect for a device to go away and it tries to reconnect rigorously. Can you paste more of the log with timestamps for me to see if there is anything else going on?
Also, make sure you are using the latest version of the plugin by running npm i -g AMoo-Miki/homebridge-tuya-lan.

Thanks @AMoo-Miki
I'm of course using  v1.2.1. Always up-to-date. ;)
Unfortunately the recent issue is a big problem. Homebridge can't handle the constant error messages from tuya-lan, because of the missing device.
But it is, what it is. I don't have the type of this device permanently on power. This device is used occasionally. With "the old" tuya plugin, I never had this issue.
Maybe you will find a solution so I can stay with your plugin.
Thanks again for the time you are investing.
Log_tuya-lan.txt

Did you ever fix this? I am having the exact same issue

npm i -g AMoo-Miki/homebridge-tuya-lan

Which is causing homebridge to crash, I just can't find a solution to this anywhere!

@DJay-X your log indicates that the device was not available at that IP (EHOSTUNREACH). Is the IP correct? Does it use a dynamic IP that changes often? Try assigning it a static IP in your router.
@garygoodger for the closed connection notice and to prevent a crash, I just pushed a commit which is just a patch to prevent the crash. The root cause of the connection closing will need to be identified.


Remove module.name_mapper.extension from docs

I am using flow 0.25 and this does not works as I am getting this error
.flowconfig:20 Unsupported option specified! (module.name_mapper.extension)

Hmm that's odd, this is supposed to work... (See https://github.com/facebook/flow/blob/master/src/common/flowConfig.ml#L455)
Can you post your full .flowconfig so I can try and repro?

Note that I found several comment "on the internet" (github threads, stackoverflow, gist comments) of people reporting this exact same error message with flow 0.22+
But please, don't laugh: I play maybe too long with flow config and I cannot reproduce.
I think I might have removed a global install that was 0.22.
Want I want is simple: I use webpack and so "import" some CSS and png so I tried something like this:
[ignore]
.*/node_modules/.*
.*/lib/.*
.*/.nyc_output/.*
.*/__tests__/.*

[include]
node_modules

[libs]
node_modules/flow-interfaces/interfaces
node_modules/iflow-material-ui/index.js.flow
node_modules/iflow-color/index.js.flow
flow-interfaces

[options]
esproposal.class_instance_fields=enable
esproposal.class_static_fields=enable

module.name_mapper='.*\.css$' -> 'CSSModule'
module.name_mapper='.*\.(svg|png|jpg|gif)$' -> 'string'

The only 2 interesting lines are the last ones.
This does not work as expected as I am getting this kind of errors.
web_modules/Icon/icons/index.js:3
  3:   "circle-in-circle": require("./circle-in-circle.svg"),
                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ./circle-in-circle.svg. Required module not found

web_modules/InputPhone/index.js:6
  6: import "react-intl-tel-input/dist/main.css"
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ react-intl-tel-input/dist/main.css. Required module not found

web_modules/InputText/index.js:7
  7: import styles from "./index.css"
                        ^^^^^^^^^^^^^ ./index.css. Required module not found

I think most people are stuck in this step. You define a mapper rule but it does not (seem to) work.

After some reading some comments everywhere I found this
module.system=haste

Using this, some error are gone (all the one related to .css files).
No idea why it "works" for .css files and not the other. This is another weird behavior.
I read somewhere else (and I think in a previous issue @samwgoldman told me this too) that this is not a good idea to use haste when I should use node (my context is: front end web app built with webpack).
So I removed this line and found module.file_ext.
So I used this
module.file_ext=
module.file_ext=.js
module.file_ext=.json

This is the same thing I am using in my webpack config to allow me to import/require other files extensions like css and svg:
  resolve: {
    extensions: [ "", ".js", ".json" ],
  }

So with this flow config
###
# Webpack config adjustements
###

## allow no extensions
## to be able to import .css,svg,png ...
module.file_ext=
module.file_ext=.js
module.file_ext=.json

## loaders
module.name_mapper='.*\.css$' -> 'CSSModule'
module.name_mapper='.*\.(svg|png|jpg|gif)$' -> 'string'

I still have one issue
web_modules/InputPhone/index.js:6
  6: import "react-intl-tel-input/dist/main.css"
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ react-intl-tel-input/dist/main.css. Required module not found

And only haste seems to help me in my case. This is another weird behavior.
But back to module.name_mapper.extension. I tried this
module.name_mapper.extension='css' -> 'CSSModule'
module.name_mapper.extension='svg' -> 'string'
module.name_mapper.extension='png' -> 'string'

And now it works (EXCEPT the last issue about the css in node_modules folder, but I guess it's a resolution issue, not an issue related to the name_mapper).
So maybe in the first place, my issue were not using the appropriate version (I have ./node_modules/.bin in my PATH, but for some reason, the global installed version (found using which flow) was taking the lead).

PROPOSAL: If my config is correct (the one using an empty module.file_ext=) we should add this the doc near to the name_mapper so people avoid having issue like I did (because I think it's related).
PS: If you have a tip to avoid having the module.system=haste, I will take it :D

I also found something weird: if I remove all the config about name_mapper and only keep the module.file_ext, I got not error (except the one for react-intl-tel-input/dist/main.css). It's really confusing to have some differences between node_modules and local files. Did I messed up something in my config?

Some example of people having issue without haste

https://gist.github.com/lambdahands/d19e0da96285b749f0ef#gistcomment-1766247
https://github.com/facebook/flow/issues/345#issuecomment-209703824

I am closing this PR, but I really thing there is definitely an issue somewhere
https://github.com/facebook/flow/issues/1068#issuecomment-219733933

Wow thanks for such a detailed explanation! Ok, so let me break it down a little bit:

I think most people are stuck in this step. You define a mapper rule but it does not (seem to) work.

Yea, writing raw name_mappers is definitely confusing (mostly because we use OCaml's regexp syntax -- which is a little confusing and easy to mess up). This is why I added the module.name_mapper.extension config option a little while back -- to help ease the pain for the common case (the case where you just want to map files with a certain extension to a "mock" file).

But back to module.name_mapper.extension. I tried this
module.name_mapper.extension='css' -> 'CSSModule'
module.name_mapper.extension='svg' -> 'string'
module.name_mapper.extension='png' -> 'string'
And now it works

Ok, so I expect that what's going on here is that you're mapping to a global module name (not a path to a module -- which is how node module resolution works).
Long Story Short:
So if you want to map all .css files to a module that sits under /path/to/project/root/CSSModule.js, you'd want to do this:
module.name_mapper.extension='css' -> '<PROJECT_ROOT>/CSSModule.js'

You can think of name_mappers as just a raw search/replace in your source code that happens just before Flow reads the code.
So if you were mapping 'css' -> 'CSSModule', that would take code like this:
import "react-intl-tel-input/dist/main.css";

and it would tweak it to this:
import "CSSModule";

The problem is that, in node, "CSSModule" means a package named "CSSModule" (not a file). As such, you probably just need to use the <PROJECT_ROOT> token on the right hand side of the arrow to give an explicit path to the file you're trying to map to.
haste is a weird module system that we use internally at FB that is non-standard (and almost nobody else uses it). It is kinda like the node system, but it has various quirks and rules that probably aren't worth your time trying to battle with. I suspect one of these quirky rules caused the config option to work for you (but likely only out of luck). I would agree with @samwgoldman here and recommend that you avoid the haste system if you can make this work without it.

So I removed this line and found module.file_ext.

This config option just lets you tell Flow to find files with an extension other than .js or .jsx (some people use other extensions like .es/.es6/.mjs/etc). Given your webpack configuration of .js and .json, I think the defaults in Flow will do what you want -- so I don't think these are necessary (though they probably don't hurt anything leaving them there).

Thanks for the explanation I think I get it now.

Now I get it :) https://github.com/facebook/flow/issues/1068#issuecomment-219965719


Make images scale up to fill window in slideshow view

Possible duplicate of #33?

Duplicate of #33


Autoselect

Fixed merge conflicts for #54

Would you mind squashing this? Would be easier to revert if it doesn't work out.

No problem. Do I also need to commit the built/minified sources? Bump the version number?


Add Feature Clean

Add delete message feature and clean messages in chat 😄

I made a small update and added a clearMessage method that deletes a message for yourself. Deleting a message for everyone in the chat is not implemented for the time being, as this takes more time than I currently have :wink:
I hope this helps you

Thank you so much for already .... Good job, your dedication really helps 🙏🙏🙏🙏👍👍👍👍👍👍


DNS request does not go through the socks5 proxy

Electron version: Moun  v2.56.4
Operating system: MacOS

I try to add proxy support for browser-laptop, I use webContents.session.setProxy to set socks5 proxy, the proxy is setup using ssh tunnel. The proxy works as expected to load web pages, but the DNS requests do not get proxied.
I did the same thing with electron v1.4.13, both the web requests and DNS requests are proxied.  Is this a problem with Muon?
The code is as below:
BrowserWindow.getAllWindows().forEach((wnd) =>
wnd.webContents.session.setProxy({proxyRules:"socks5://<IP_ADDRESS>:1080",proxyBypassRules:"localhost"}, function () {
console.log("proxy enabled....");
}))

Anyone can shed some light?  Thanks a lot!

Hey @zhiboli, are you still having this issue?


Add fallback with specified withCountry=false argument

I had problems finding out why localizations didn't work for me. The problem was that resolution() and listResolution has withCountry argument with default true value. In most cases we define languages without specified country so I add additional info to the doc.

And for me there's missing info about why use localeListResolutionCallback rather than localeResolutionCallback

Thanks @sosite for the help and apologies for the delay. Life sometimes has different plans :)


Remove mention of Python 2

Since Py2 support is gone, I figured that we should remove this mention in the book.

Thank you :+1:


can't use custom blocks from MoreMaterials/SpoutPlugin as currency

I tried to use a custom block defined with MoreMaterials as a currency, and strange things happened. Substance D (that's what the block is called) created by MoreMaterials wouldn't stack with Substance D added to my accout balance by Gringotts.
After a few seconds of looking at the MoreMaterials code, I strongly suspect that this is because if SpoutPlugin is present and being used the inventory add() method should be calling new SpoutItemStack() instead of new ItemStack().
I'm going to go ahead and implement this, because I really want it... would you be interested in the patch?

Did you get around to implementing it, or is it not an issue anymore?

No. Life interfered.
Mark Buda<EMAIL_ADDRESS>I get my monkeys for nothing and my chimps for free.

On Apr 22, 2015, at 5:59 PM, Justin Kaeser<EMAIL_ADDRESS>wrote:
Did you get around to implementing it, or is it not an issue anymore?
—
Reply to this email directly or view it on GitHub.

Np, just updating my tickets :)


[action] import_from_git - Add caching support for branch

Checklist

[ ] I've run bundle exec rspec from the root directory to see all new and existing tests pass
[x] I've followed the fastlane code style and run bundle exec rubocop -a to ensure the code style is valid
[x] I've read the Contribution Guidelines
[x] I've updated the documentation if necessary.

I've run bundle exec rspec from the root directory to see all new and existing tests pass

I have seen so many errors on this, but I have run bundle exec rspec ./fastlane/spec/actions_specs/import_from_git_spec.rb to make sure the tests for the change pass.
Motivation and Context

First of all, I referred to [action] import_from_git - Add caching support to better understand the context.
With this in mind, the current caching support for import_from_git is eligible only if the version is specified, but adding caching support for a branch could be useful when you don't manage versions in a remote git repository, but need to points to the latest commit.
As additional benefits,

This also prevents us from cloning the repository every time on subsequent calls. For example, on CI, it's likely that you call multiple different lanes as a different step, which could lead to the fact that it clones the repo again and again.
This makes the usage of import_from_git straightforward in that caching support becomes eligible when cache_path is specified. Currently, we had to specify version to make use of caching support.

Description

Update the repo if it's eligible for caching but the version isn't specified.
Removed This is ignored if version is not specified. from the description.
Added punctuation marks to example code of import_from_git.
Tested this local fastlane code base with my sample project.

Testing Steps

@googlebot I signed it!

@revolter Thank you for the review! I have updated the PR based on your comments. Since it's my first PR for fastlane, any additional suggestions are appreciated😊


Could not type in code in the source code edit pane while using Chrome

it is wired i could not edit the source code in the editor pane, only tabs/arrow/delete keys works, all the other character keys could not type in, i tried on my chromebook/windows desktop/linux laptop/android phone, all chrome has the same issue, if i switched to firefox, everything works well without any issue.

I only test the website with chrome on windows desktop and have never seen this kind issue. Can you try to  click on More -> Reset code and UI layout  -  and see if the problem persists?

Sorry for the late reply, I have tried to reset the layout, no luck, still could not edit the code, my chrome is Version 74.0.3729.159 (Official Build) (64-bit)
following are the error message from chrome console hope it helps
Uncaught TypeError: Cannot read property 'length' of undefined
at Function.e.selectedText (editor.main.js:31)
at f (editor.main.js:31)
at HTMLTextAreaElement. (editor.main.js:31)
at HTMLTextAreaElement.o (helpers.js:69)
breadcrumbs.js:158 POST https://sentry.io/api/102028/store/?sentry_key=8e4614f649ad4e3faf3e7e8827b935f9&sentry_version=7 429 (TOO MANY REQUESTS)

Do you have any Chrome extensions? Can you try this in an "Incognito" window please, and see if the problem continues? Thanks!

As we've not heard back on this, I'm going to close. Thanks for taking the time to report and don't hesitate to reopen or comment if youre still having trouble!


Post preview in Roon theme

Hello.
Is it possible to change the preview in the loop - the number of words, html keep. I tried to change settings in loop.hbs  - tried {{excerpt words="10"}} and {{content words="10"}} but it have no effect - there're always 45 words and no html, pictures.

You'd need to check with the Ghost Theme docs to work out what is going on there. Closing off because I feel it is most likely a mod to the theme that is required, which is not something HubPress is focusing on for users.


Added nuget.exe to .nuget folder

Hi,
thanks for your PR. But its better to enable the nuget.exe download in the existing src/.nuget/NuGet.targets file.


Fix rebase mess

@arcondello

@arcondello travis failure is again the unistall six problem, unrelated to this fix


Little Fixes (Non Tested yet)

Non tested yet so this isnt a real pull request, I`ll start testing when I have a bunch of fixes, but if anyone is interested in accelerate the proccess, just compile my fork and test it. Dont forget feedback.
Here I will update fixes updated in my fork and can discuss about the fixes.
FIXES:
-Allow vendors use layer_special and keep bought items until next restock.
-Prevent horses from being killed while ridden. (z=127)
-Fix and unchain archery butter to be used with any weapon with flag SKF_RANGED at 16 tiles max. (only works at 5-6 or if u are close enought to grab ammo.
-Command "Sleep" will wake up chars who already are sleeping.

Can you change please the max range for archery butter to avoid using "magic numbers" please? You can use some defined macros like UO_MAP_VIEW_SIGHT or UO_MAP_VIEW_SIZE_DEFAULT https://github.com/Sphereserver/Source-X/blob/master/src/game/uo_files/uofiles_macros.h#L19, VisualRange https://github.com/Sphereserver/Source-X/blob/master/src/game/chars/CChar.cpp#L847 or create a new macro/property if it's really needed.
About mounts being killed, how do they get killed? Mounts may die under certain circumstances (eg: poisoned).

I dont know what do u mean with "magic numbers". I dont know how to set macros right now or config options at sphere.ini. Tried but I messed all.
it seems that mounts are affected by area and walls damage. So they can be killed where they stay waiting.
Mounts from stables gets disconnected so dosnt get damage I think.

return true better?  butte will not work until u are at 5 or 6 tiles from for shooting and <=2 tiles for grabbing ammo.

My point regarding "Magic Numbers" is to not have any numbers that doesn't have a name, meaning that "16", you can use instead : return iDist <= UO_MAP_VIEW_SIGHT; <--- this UO_MAP_VIEW_SIGHT is a macro, if you follow it you will se that it's used to set the maximum view range for creatures, which makes more sense to be used since it would make the range for this item equal to the maximum range for almost every other things and prevent having distances above the scope or being to dispairing.
Also, a clan flag was added some time algo to prevent distance checks, so you can add your custom distance in the @DClick: can_i_dcignoredist, isn't it working?

Can use uo_map_view_sight if u prefer.
The change is for two reasons, unblock  throwing weapons on butte, and there is an issue related to this. I think cos typedef is not taken right from duped items.
Can be fixed by Can_i_dcignoredist I think, but this is not about that.
The distance check on canITouch() is not neccesary, cos it is duplicated. Butte behaviour will check distances once again at his turn, and will check as well if weapon is ranged, not only distance. Cheking two times for the same thing is not good done I think. Even there was no problem, range and distance checks should be removed so sphere dont waste resources doing two times same thing.
The best solution would be to remove the entire case and include can_i_cignoresdist in the x-scriptpack. But servers that are already running would need to change scripts to let buttes work.

The horse fix is not acceptable!!

The horse fix is not acceptable!!

Drk, Dont say it is not acceptable without explanation plz. I want to learn.
Why it is not acceptable? Area effect will still affecting mounts even underground? I did not test it yet but could be.
Others fixes are acceptable then? xD
I dont find others options better than this. And it just add a very light line of code... IF works I think it is weird but clever.
Other options may require much more code. Doing the horse invul, stone or disconnected is not fine for me and many others. Mounts should be able to receive damage passing @gethit, and custom timers should work while ridden.
What's left?

Xun suggested something by script on the horse issue. Maybe a combinaison server + script.  On my side I think like dark -127 is not acceptable because it's a not elegent workaround. And sometime it should not work.

I think it is not about elegant it is about performance.
The unmount can be done by @death ?
I will think other light solutions for the damage. But I think z-127 it same acceptable as leaving the mount at the ground....
Nobody gets closes to that z on their maps.

As a general best practice guideline, it's better to send a fix per single pull request, otherwise discussion of a fix blocks also the others.
How would the z trick work? Only getting the mount out of touch? In any case it's a workaround and not the best solution, which may be to block an attack on the HitTry stage if the npc is in a mounted state.
For the archery butte, that fix might work for your shard but isn't a good generalization. Apart from using a constant macro instead of a plain number, i think that the best solution would be to check against the npc range, there should be a method already coded afair

Hi nolok, u are right, one fix one pull. Will be done right next time. But This is not real pullrequest. I just opened this to talk and learn. I recently started to understand source and I want to help with issues.
About horses: Im looking for that hittry stage, but I dont see how it deals with area damage or fire fields. t_fire for example pass damage directly to gethit, I dont find any stage process from t_fire to being damaged.
My sleep fix is for "src.sleep"  or ingame command .sleep for example. Not for sectorsleeping. but I dont find CChar::CanSleep. Only gosleep(), not sure where to add the check or why.
Would this be fine for the archery butte?
case IT_ARCHERY_BUTTE:         {                        const CItem * pWeapon = m_uidWeapon.ItemFind();             if (pWeapon)              {                     return (iDist <= pWeapon->GetRangeH());                     //or                     return (iDist <= GetRangeH() //this better??             }         }
I think someone tested that char dosnt get unmounted if horse dies.

Tried to create a separate pull request but I dont know how and now it is done :/
Added a fix for rideable death horses. I dont know if is fine for sphere standards. Not tested, just waiting feedback about the code.

For different pull request, you must work on different branch.
About the "sleep fix" you want to add a toggle? If you try sleep someone already sleeping it awake him.  What about stone? How doe it work

About the sleep fix, sleep already uses args for other thing, but Im trying to make wake() avaible for be used by script.

So instead .sleep 1 or 0 u could use .sleep or .wake, I think this can replace the first fix.


How to avoid flushing entities in Topics?

I need to update the application data state in database through Doctrine right after the user publish some message into Topic and I wonder what's the best way to delegate such activities somewhere else in aim to avoid blocking things like e.g. entity manager flush method? I want to use the Doctrine in Topics as little as possible.

React child processes is the solution of my problem:
[https://blog.wyrihaximus.net/2015/03/reactphp-child-processes/](ReactPHP: Child Processes)

I wonder what's the best way to get event loop in topic? How to use these child processes in Topics?

You can get the event loop everywhere, she is registered as service, look yml definition; moreover you add a periodic timer dedicated to the topic like following : https://github.com/GeniusesOfSymfony/WebSocketBundle/blob/master/Resources/docs/TopicSetup.md#periodic-timer-topic--connection.
Using ORM in this context is not recommended, but with symfony framework lot of developer coupled their DB persistence to the logic and you can't get out of this with a huge refacto. So if you can't delete doctrine, the best choice is to delegate to another worker.
Choose the best transport layer for your need (I don't no the traffic that you deal) you can use (ipc, file descriptor, tcp, amqp, http whatever). React php child process is one of them (he communicate via file descriptor), but you can choose others also (depend of your need also).
React child process is limited at scale, a lot of memory copy is done during data piping between layer and let a high footprint and php is running a command through another via bash, which is problematic at scale to properly manage processes on host machine (you lost signal between bash and php, unable to retrieve exit code etc .... when unexpected error is coming from somewhere, you know nothing, just restart the command and prey :D)
So react child process is cool for small project or personal project. If it's not I suggest you to use a better transport layer like ipc, tcp, amqp or http with a broker who dispatch to worker, handle network error properly.

Huge thanks for your detailed insight, now it's much easier for me to delve into this subject. I'm going to make some tests and decide which solution should be sufficient for me. Generally I wonder is it a bad idea to prepare some Symfony commands with DB persistence (Doctrine) code, fire these commands through the child process and push the result of command to WS server via zmq pusher? Other thing, in case of use child process, should I use service "gos_web_socket.server.event_loop" to create event loop in such way:

// $loop ---> gos_web_socket.server.event_loop
$loop = $this->gosWebSocketServerEventLoop;
$process = new React\ChildProcess\Process('php some command');

$loop->addTimer(0.001, function($timer) use ($process) {
    $loop = $timer->getLoop();

    $process->on('exit', function($output) use ($loop) {
        $loop->stop();
    });

    $process->start($loop);

    $process->stdout->on('data', function($output) {
        echo $output, PHP_EOL;
    });

    $i = 0;
    $loop->addPeriodicTimer(1, function ($timer) use (&$i, $process) {
        $process->stdin->write($i++);
    });
});

$loop->run();

...or in case of Topics it should work rather like this one:

	/** @var ConnectionPeriodicTimer $timer */
	$timer = $connection->PeriodicTimer;
	$process = new React\ChildProcess\Process('php some command');

	$timer->addPeriodicTimer('someTimerName', 0.01, function($timer) use ($process) {
		/* @var EventLoop\Timer\Timer $timer */
		$process->start($timer->getLoop());

		(...)
	});

Also I have redis in my stack, therefore I'm also really interested in these your words:
In really easy way, if you have redis in your stack, you can use the redis pub/sub mode.

Are there some PHP libraries etc. to make this in such way, or it's rather question of my own implementation of such a functionality? Agan, thank you for your help and insight!

So in the order :

fire these commands through the child process and push the result of command to WS server via zmq pusher?

If you attempt a returned value, yes (It's also called Remote Procedure Call (RPC), lot of broker support that) and use a deferred to handle the response in the future.
@WyriHaximus write a bunch of lib arround child-process with rpc system and (pseudo) threading : https://github.com/WyriHaximus/reactphp-child-process-pool https://github.com/WyriHaximus/php-cpu-core-detector https://github.com/WyriHaximus/reactphp-child-process-promise https://github.com/WyriHaximus/reactphp-child-process-messenger you can also check is blog, he blogged a lot about reactphp -> https://blog.wyrihaximus.net/
Take a look of example folder in repository to have an idea.
To this part of code :
// $loop ---> gos_web_socket.server.event_loop
$loop = $this->gosWebSocketServerEventLoop->create();
$process = new React\ChildProcess\Process('php some command');

$loop->addTimer(0.001, function($timer) use ($process) {
    $loop = $timer->getLoop();

    $process->on('exit', function($output) use ($loop) {
        $loop->stop();
    });

    $process->start($loop);

    $process->stdout->on('data', function($output) {
        echo $output, PHP_EOL;
    });

    $i = 0;
    $loop->addPeriodicTimer(1, function ($timer) use (&$i, $process) {
        $process->stdin->write($i++);
    });
});

$loop->run();

You don't need to reuse to websocket loop service, you should use a loop dedicated to this command. Websocket server register a loop as service to let the user add some binding to the server loop (like timer etc) and this loop is pre configured with ratchet and stuff. So when you are not in websocket server context, you don't need that loop, create one from Factory of reactphp.

For redis in pub/sub mode is so simple (But you don't have any data back)

First of all, it's supported by php client, so you don't need specific lib.
Here an example that I done for real time notification system : https://github.com/GeniusesOfSymfony/NotificationBundle/blob/master/Server/PubSubServer.php#L124
I use async predis client (checkout the composer.json if you want use it). There is a lot of resources on that, for example :
https://xmeng.wordpress.com/2011/11/14/pubsub-in-redis-using-php/
you can type redis pubsub php in google and read about that subject.

Indeed, Redis Pub/Sub (along with ZMQ pusher) server turned out to be absolutely the best solution in this case, your example made for notification system was very inspiring for me - thank you very much for taking the time to explain me all these things :+1:


When someone should use user.name/user.id ?

Context
Related to https://github.com/open-telemetry/semantic-conventions/issues/1142
We're considering adding user.id/user.name under db namespace and not sure which one (neither/both?) to use.
We'd like to stay consistent with root user namespace to leverage embedding mechanism (once it's implemented).
When connecting to the database/messaging system/cloud service/etc it's common to talk about the identity rather than user:
E.g. Azure has several kinds of identities (human, and multiple kinds of machine identities) AWS also has multiple - users, groups, roles.
Problem
The concept of user in the semconv seem to map to the human identity only. It does not seem to apply to a generic  'identity' used to access a resource.
Even within a 'human identity', it's not clear how to use it:

is name unique within the system?
if so, why there is an id? How are they different?
the login terminology does not seem to apply in many cases (authentication could be a broader term). I believe it's related to https://github.com/open-telemetry/semantic-conventions/pull/1146

So, I think we need to decide and document:

what does the user namespace describe? OS user? Human identity? Any identity?
what's the appropriate namespace based on this definition?
what are the right attributes to describe this thing?

cc @open-telemetry/semconv-security-approvers

Based on the SemConv SIG discussion 6/24

user.name is a login/human-readable name, e.g. root or user login, user.id is something else - e.g. an identifier the system uses internally.
user namespace is used for end-user (e.g. website user) or the OS user.
it does not seem to be able to describe generic identity. Also there are multiple identities that act at the same time (end-user, OS user service runs with, client identities used to access resources)

Action items:

@open-telemetry/semconv-security-approvers will discuss

I have some thoughts on what a user should be in semantic-conventions, and how it relates to identities.
Use Cases to Handle
A "user" (or multiple types of user resources) should handle these use cases.

Represent existing well-known usages of 'user' attributes.

many existing concepts/objects have "user" attributes, OTel should be able to generate telemetry with these attributes.

Have a trackable scope/chain for each representation of "user".

For example, the human user “John Smith” logs in to machine “laptop_123” with user account “jsmith”, connects to a kube pod “pod_abc” with user “root” inside the container, and runs a command. The log event for this should have the three different users and the context that each user exists within. There shouldn’t be conflicts that prevent writing all the info into the Otel event.
The Entities WG will work on a way to define relationships between entities. This could be used, if the users are entities.

Accurately handle an IAM system's "user". See below section
Handle OS user accounts.

OS user accounts have a different data model, scope, and functionality than IAM systems, so it might be best to handle them separately from IAM user.

What is an IAM user?
Within IAM systems, a "user" is a type of identity. There are other types of identities such as Role, service account, or user group.
IAM users or managed user accounts are objects within the IAM system. Federated users are users that have existing, external user identities that are connected to the IAM system.
There are some differences in how users are implemented in different IAM systems. In AWS IAM, there is not a traditional "machine user". Instead, roles are typically attached to machine resources. It is possible to create a user that will be used by a workload. In GCP, there are service accounts, which act as machine users.
There are also Customer Identity and Access Management (CIAM) systems, such as AWS Incognito. I'm not sure if there's any difference with CIAM that would impact telemetry.
A user is not a role, or the credentials that identity the user, and care should be taken to not confuse them.
Two concepts of 'user'
A 'user' can be considered two different concepts within OTel; user objects and attributes on non-user objects.
User Objects
Within IAM providers, "user" is a type of identity.
User objects would probably be best implemented as OTel entities rather than resources since they usually have mutable attributes.
Attributes on non-user objects.
There are many existing concepts that are not themselves users, but that have user attributes. Some examples are git commits and OS files/processes.  These are not users, but they do have existing user attributes. Git commits have a user name, email, and signing key. Posix files have a user ID and name. A JWT is a token that can carry information on a user, but it's not a user itself.
With embedded attributes, it should be possible to add attributes from the user attribute registry into resources/entities that have the existing concepts of user attributes.
Right now the attribute registry descriptions can be rigid, and might not fit the existing usage in different concepts. For example, git user.name is the full name, while Linux file user.name is the short account name. So that's something that needs be be considered/handled.
Questions
Generic or IAM-specific resources?
The different cloud IAM providers have different implementations but generally follow the same high-level concepts. Should users/identity resources be generic, with a known mapping for each IAM provider, or separate resources for each IAM provider, and non-IAM users?
e.g. Is there a single "human user" type OR "AWS IAM user", "GCP managed user account", "systemd service user", etc types.
Users in the different IAM systems have different attributes, so I think they might need to be separate resources.
What attributes to add to the user registry?
Should we have all attributes for user, or only a select "most-important" set? Active Directory has about 60 attributes for human users, and since there are many other identity providers, the set could get very large if we try to have all attributes for all IAM providers. It might be better to include the IAM ID/reference, so other attributes can be retrieved from it directly, as well as a smaller set of the most-used or "interesting" attributes.
What are OS users accounts?
OS user accounts often represent human users, but they can also be services or machine accounts. Should user accounts be classified as human or machine users, or does it matter at all?
OS user accounts and IAM system users might be different enough that it wouldn't make sense to try to unify them. Maybe OS user and IAM user should have different concepts in OTel.
Should "Identity" be worked on first?
In IAM systems, "user" is just one part of the data model. It might be better to design the larger "identity" data model, rather than do user first, and try to work identity around it later.

@trisch-me I tried to find but couldn't - should we create a project board for @open-telemetry/semconv-security-approvers and the project in general? I don't see it mentioned in here as well https://github.com/open-telemetry/community/pull/1838/files. Can you please follow up on this, and once in a project we can remove the triage label.

@joaopgrassi done, thanks for the hint

Adding relevant comment from @mjwolf  https://github.com/open-telemetry/semantic-conventions/issues/1104#issuecomment-2258868018

I think user.id needs to be kept for the OS user use case. User ID is a well-defined concept, without any other qualifiers.
For example, from the POSIX specification for getpwuid: https://pubs.opengroup.org/onlinepubs/9699919799/functions/getpwuid.html, this refers to "user id"/uid, many times without any further qualification on user.

For a more concrete example of a security use case, Falco alerts can have a field user.uid, defined as just "user ID". I think it would make sense to map this to user.id in the registry, there's no qualifier or other namespace that would really make sense.

User.id indeed makes a perfect sense for the OS user, but it hard to apply to other areas. E.g. in case of web/client app, there are multiple identifiers.
One solution could be to introduce user.os.id, os_user.id, etc that would be very specific to the OS and would not need to be reused (with detailed explanation) in browser apps.


fix(compiling): map variable without namespace.

It seems that if you don't have xcb-xkb installed, you get a compilation error because cursor.hpp uses map without std:: in front of it. When you install xcb-xkb back, it includes x11/extensions/xkb.hpp which has using std::map.
I can reproduce this error on branch 3.2, too.

@patrick96 Should I send a patch to branch 3.2, too? It has the same issue.

No, we'll add this commit to the next upcomming patch release ourselves.


How can we add pdf as app, in which we can put external pdf link and open the pdf in whiteboard

It is throwing and error scenes not defined

PDF/PPT resources need to be converted first to enable them to be inserted to whiteboard. Static (PDF) resources become images while dynamic (PPT) resources become assets (json, image, audio and video, etc.), so that the corresponding frontend renderers know how to display them.
Once you get the conversion done, you can put the json response of query conversion to this library to insert the document to whiteboard:
fetch(`https://api.netless.link/v5/projector/tasks/${taskUUID}`)
  .then(r => r.ok && r.json())
  .then(response => {
    if (response && response.status == 'Finished')
      fastboard.insertDocs('a.pdf', response)
  })

{
"resp": {
"error": {
"title": "team not registration with uuid: lFsVUHd8EeyRoMGwMgqdqg",
"messages": [],
"requestId": "jMa0_B_S-wwwJw",
"region": "us-sv",
"traceStack": [
"us-sv-shunt-api-65ddd5c87-rt2hn",
"in-mum-shunt-api-7cd74fbc77-fflj4"
]
}
}
}
This is the response I am getting at the time of generating the task uuid
I am using sdk token as req header and {resource and type} as body params
getting 200 as response but in response getting this message

This means that your whiteboard project is not configured to provide conversion service in US. You need to enable them on the console, in Project Config → Service Config → Whiteboard → Services.

Thank you for reponse This is helpful and working fine


Clicking tabs changes active tab on all open character sheets

https://user-images.githubusercontent.com/1915182/226460144-b8c56962-d31e-45ca-b293-23c812916eb0.mp4

Hmmm, I seem to recall fixing this a while back. Can I just check that you're using the latest version?

The video is using the following versions:
BH2e System: v5.5
FoundryVTT: v10.291

Okay, I'll take a deeper look into it.

Alright, I've merged a fix for this into the repository and it will go out as part of the next release.


Is there any documentation how to use rules.js, what benefit it provides ?

I understood how to use config and what is the benefit of it but I don't yet understand the value of rules.

you have mentioned
// A hook for another undocumented feature of atomizer.
      // You can use it to create custom ACSS 'functions'.
      // Calls `acss.addRules(options.addRules)` under the hood.
      // See the tests for an example of how to use this.
      addRules: require('./rules.js')

But I don't see any rules.js file in test folder

It's used to create custom helper functions.  For example, flexBox(column) could translate into D(f) Fd(c).  That's not a very useful example, but you get the idea.  You can make a whole package of acss classes, some of which may take arguments from the parent function.
I haven't used it, so I don't know the syntax.  @AbsentSemicolon sent me a pull request a while back adding the functionality, so I merged it.  Sorry I can't help more.  Maybe he will jump in and explain.
In the mean time, here is an example rules.js:
module.exports = [
  {
    'type': 'helper',
    'id': 'test-helper',
    'name': 'Test Helper',
    'matcher': 'test-helper',
    'noParams': true,
    'styles': {
      'cursor': 'pointer'
    }
  },
  {
    'type': 'pattern',
    'id': 'test-pattern',
    'name': 'Test Pattern',
    'matcher': 'TestPattern',
    'allowParamToValue': false,
    'styles': {
      'background-repeat': '$0'
    },
    'arguments': [{
      'n': 'no-repeat'
    }]
  }
]

And here is a snippet of HTML that uses it

And finally the resulting ACSS:
.test-helper {
  cursor: pointer;
}
.TestPattern\(n\) {
  background-repeat: no-repeat;
}

But I don't see any rules.js file in test folder

I have it inline in the test.js file.  What I just posted is taken directly from the unit tests.  I'll pull it into a separate file to avoid confusing anyone else in the future.


TypeSpec C#: @@include can't override inherited @@internal

We're using the @internal decorator (applied in a client.tsp file via @@) to hide a long-running operation route from the public surface of our client libraries, as we'd like to wrap the presentation of it with custom code.
This works well and produces the desired effect of directing the emission of the C# method and its response model hierarchy to be internal instead of public. It also applies to the options model used for the operation -- and that's the one thing we'd still like to retain in the public surface for reuse.
We tried to use the @include decorator for the options model in conjunction with the @internal used on the route that consumes that options model, but it unfortunately doesn't appear that @include can override the serialization change effected by @internal.
Issue/request: conditionalize model emission visibility to retain public if @include is used, even if the parsing hierarchy has been made @internal.
Example client.tsp body (where @internal works, but @include doesn't take effect in .NET):
// Azure-specific long-running operations should be treated as implementation details
@@internal(Azure.OpenAI.startGenerateImage);

// Some models from client-internal LROs are still desired for custom public surface
@@include(Azure.OpenAI.ImageGenerationOptions)

Hello @trrwilson would you please provide the typespec files you uses and we want to check how you conjunction @include and @internal?
And do you mean that the model will be used in more than one operations, one is decorated with @internal, the other is not?

When a model is internal but include, we should not generate it as internal model.
I think this should be done in TCGC. When doing transitive closure detection for internal models, we should not label one model with internal if it has @include decoration.
@iscai-msft what do you think?


Germplasm Pod Images page

Links point to peanutbase.org, we should move them to dev.peanutbase.org

All images now live under files/. Pages generated automatically since commit 4abdbe5.


Remove mock cohort modules from accelerator console

not needed at this time
also removed other unused mock data

@joshbuchea sorry about this :(


Error parsing Caddy logs with goaccess 1.6.3

I have the error below trying to parse Caddy logs. Among multiple things, I tried the built-in log-format CADDY without any success. It looks like I miss something obvious but I can't find what
The error
tail -f /var/log/caddy/boards-custom.log | goaccess
Cleaning up resources...
==13618== GoAccess - version 1.6.3 - Sep  1 2022 02:54:18
==13618== Config file: /etc/goaccess/goaccess.conf
==13618== https://goaccess.io -<EMAIL_ADDRESS>==13618== Released under the MIT License.
==13618==
==13618== FILE: -
==13618== Parsed 10 lines producing the following errors:
==13618==
==13618== Token 'el":"info","ts":1663245500' doesn't match specifier '%x'
==13618== Token 'el":"info","ts":1663245501' doesn't match specifier '%x'
==13618== Token 'el":"info","ts":1663245501' doesn't match specifier '%x'
==13618== Token 'el":"info","ts":1663245501' doesn't match specifier '%x'
==13618== Token 'el":"info","ts":1663245685' doesn't match specifier '%x'
==13618== Token 'el":"info","ts":1663245685' doesn't match specifier '%x'
==13618== Token 'el":"info","ts":1663245685' doesn't match specifier '%x'
==13618== Token 'el":"info","ts":1663245685' doesn't match specifier '%x'
==13618== Token 'el":"info","ts":1663245685' doesn't match specifier '%x'
==13618== Token 'el":"info","ts":1663245685' doesn't match specifier '%x'
==13618==
==13618== Format Errors - Verify your log/date/time format

My configuration details
Goaccess version:
goaccess --version
GoAccess - 1.6.3.
For more details visit: https://goaccess.io/
Copyright (C) 2009-2022 by Gerardo Orellana

Build configure arguments:
  --enable-utf8
  --enable-geoip=mmdb
  --with-getline
  --with-openssl

Goaccess config:
time-format CADDY
date-format CADDY

# CADDY JSON Structured
log-format {ts:"%x.%^",request:{remote_ip:"%h",proto:"%H",method:"%m",host:"%v",uri:"%U",headers:{"User-Agent":["%u","%^"]},tls:{cipher_suite:"%k",proto:"%K"}},duration:"%T",size:"%b",status:"%s",resp_headers:{"Content-Type":["%M;%^"]}}

Caddy version:
caddy version
v2.4.6 h1:HGkGICFGvyrodcqOOclHKfvJC0qTU7vny/7FhYp9hNw=

Caddy log format:
    log {
        format json
        output file /var/log/caddy/boards-custom.log {
            roll_size 10MiB
            roll_keep 3
            roll_keep_for 48h
        }
    }

One line of the log:
{"level":"info","ts":1663245498.0875106,"logger":"http.log.access.log2","msg":"handled request","request":{"remote_addr":"<IP_ADDRESS>:14061","proto":"HTTP/2.0","method":"GET","host":"jobs.embedsysweekly.com","uri":"/","headers":{"Upgrade-Insecure-Requests":["1"],"Sec-Fetch-Site":["none"],"Sec-Fetch-User":["?1"],"User-Agent":["Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:103.0) Gecko/20100101 Firefox/103.0"],"Accept":["text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8"],"Accept-Language":["en,en-GB;q=0.7,fr;q=0.3"],"Accept-Encoding":["gzip, deflate, br"],"Dnt":["1"],"Te":["trailers"],"Cookie":["_csrf=DkuBL3cTiOeyjj1SwoPKnZGn58CNtLtk; session=MTY2MzIzODc3OHxPZjhTSmFJRmFGcjNtMTVOWjRLOWtEVlY4eDlhT2c4eHItdkRhejdHX3d1azJaOTd8g9Zqexq9bGVJ18-FWPpuYPZc5rya7LlerLL_LhzN9AY=; admin=MTY2MzE3NzYwNHx3Y1RDa1YzSXllMm9QTEhDNHo3b0N5bjFNR2FQLTdWY1Z1NjVYR1ozTmpNcFlBQVY4Q0dqeHdSYnJIbzJ6NW1MRjdKeDZMTWlmVFlhbld0ZXg3dl9kajVzSEJnZ2lCTGswb2lwMkFGeko4T2Njdy1vbGpUQlpPOUpQNDF2bGdRM3h6SFFhZ1FBT2pVMEtEeUNnVmJoZ29uUW44bHpVYV9MT09wOHVpNEhJVzFkR2NKNG1GNjBDdWR4OElRMzhHM2NpTVgzdTRZZ2pySFZrN3ZDZFo2MjB2UmZGNHQ0N3JKNHU5aTRlUzl0cWQ2TVRjRmFBUDFJemNkTmJUaHhjd1oyRzc2aXZ1M2Y4WHAzcm1aeUZHbXpuQVlQQ1pwUEtvMHRUdHc2ZnZ2Y1VUMTJUUVozcXJDWF9pUlBxYW5JMFFDcEx3UHFJZll3VzVRc0RseVhqOW1teG9IUnMzSUZwZ0h2LWNXSUxFN0lZbVR1U24tTDRaaWdkU2NFdlYzeUI2aUhub25xelFGWTNWOF92NnBhak5OVmhHRURQRlpHRHd5cm40b2VtREt6TEJjSUhsTFFvdWI1NUFLRWhtS2RRdXNOfNNpAVFj4OrIHmYXD8C9iknZdiXgxYQbsqSMUJx1Elzo"],"Sec-Fetch-Dest":["document"],"Sec-Fetch-Mode":["navigate"]},"tls":{"resumed":false,"version":772,"cipher_suite":4865,"proto":"h2","proto_mutual":true,"server_name":"jobs.embedsysweekly.com"}},"common_log":"<IP_ADDRESS> - - [15/Sep/2022:12:38:18 +0000] \"GET / HTTP/2.0\" 200 306473","user_id":"","duration":0.333273556,"size":306473,"status":200,"resp_headers":{"Server":["Caddy"],"Date":["Thu, 15 Sep 2022 12:38:17 GMT"],"Access-Control-Allow-Methods":["*"],"Access-Control-Allow-Credentials":["true"],"Content-Type":["text/html; charset=UTF-8"],"Set-Cookie":["_csrf=DkuBL3cTiOeyjj1SwoPKnZGn58CNtLtk; Expires=Fri, 16 Sep 2022 12:38:17 GMT","session=MTY2MzI0NTQ5N3wtcW1IR3YwcUNiV013RlRsdXVjMWFZSjJjRlJaMDZZb3hNNTNSYVhuN05Jd3lQTDB8rZ-GQL9GiHOX2qpb-UHuoHIOJKxznSXjA4-lC-La74U=; Path=/; Expires=Sat, 15 Oct 2022 12:38:17 GMT; Max-Age=2592000; HttpOnly; Secure"],"Vary":["Cookie"],"Access-Control-Allow-Headers":["*"],"Access-Control-Allow-Origin":["*"]}}

Can I ask you to please try only
log-format CADDY

instead of the JSON string you have right now. or just pass it to the CLI, e.g.,
goaccess /var/log/caddy/boards-custom.log --log-format=CADDY

Let me know if that solves the issue on your end.

I get the errror below when I do this
goaccess /var/log/caddy/boards-custom.log --log-format=CADDY
Cleaning up resources...
==13732== GoAccess - version 1.6.3 - Sep  1 2022 02:54:18
==13732== Config file: /etc/goaccess/goaccess.conf
==13732== https://goaccess.io -<EMAIL_ADDRESS>==13732== Released under the MIT License.
==13732==
==13732== FILE: /var/log/caddy/boards-custom.log
==13732== Parsed 10 lines producing the following errors:
==13732==
==13732== IPv4/6 is required.
==13732== IPv4/6 is required.
==13732== IPv4/6 is required.
==13732== IPv4/6 is required.
==13732== IPv4/6 is required.
==13732== IPv4/6 is required.
==13732== IPv4/6 is required.
==13732== IPv4/6 is required.
==13732== IPv4/6 is required.
==13732== IPv4/6 is required.
==13732==
==13732== Format Errors - Verify your log/date/time format

I see, I think you are using an older version of Caddy (<2.5), so this should do it:
goaccess /var/log/caddy/boards-custom.log --log-format='{ "ts": "%x.%^", "request": { "remote_addr": "%h:%^", "proto": "%H", "method": "%m", "host": "%v", "uri": "%U", "headers": { "User-Agent": ["%u"] }, "tls": { "cipher_suite": "%k", "proto": "%K" } }, "duration": "%T", "size": "%b", "status": "%s", "resp_headers": { "Content-Type": ["%M"] } }' --date-format=%s --time-format=%s

Indeed it works! Thank you very much 🙌

Glad that did the job :)

Hey, sorry for re-opening an issue, but I'm still having troubles and I cannot find the root cause.
Please see the logging example below. It's normal caddy logs, in json structured format.
I use caddy version v2.6.1 (the newest).
When I try to parse the logs, then I get this:
goaccess dsmr-access.log --log-format=CADDY

Cleaning up resources...
==604754== GoAccess - Copyright (C) 2009-2020 by Gerardo Orellana
==604754== https://goaccess.io -<EMAIL_ADDRESS>==604754== Released under the MIT License.
==604754==
==604754== FILE: dsmr-access.log
==604754== Parsed 2 lines producing the following errors:
==604754==
==604754== IPv4/6 is required.
==604754== IPv4/6 is required.
==604754==
==604754== Format Errors - Verify your log/date/time format

Example access log:
{"level":"info","ts":1664321642.8666267,"logger":"http.log.access.log4","msg":"handled request","request":{"remote_ip":"<IP_ADDRESS>","remote_port":"56620","proto":"HTTP/2.0","method":"GET","host":"dsmr.mydomain.org","uri":"/","headers":{"User-Agent":["curl/7.74.0"],"Accept":["*/*"]},"tls":{"resumed":false,"version":772,"cipher_suite":4867,"proto":"h2","server_name":"dsmr.mydomain.org"}},"user_id":"","duration":0.031647866,"size":13341,"status":200,"resp_headers":{"Date":["Tue, 27 Sep 2022 23:34:02 GMT"],"Content-Language":["en"],"X-Content-Type-Options":["nosniff"],"Vary":["Accept-Language"],"Alt-Svc":["h3=\":443\"; ma=2592000"],"X-Frame-Options":["DENY"],"Content-Length":["13341"],"Referrer-Policy":["same-origin"],"Content-Type":["text/html; charset=utf-8"],"Server":["Caddy","nginx"]}}
{"level":"info","ts":1664321702.6594148,"logger":"http.log.access.log4","msg":"handled request","request":{"remote_ip":"<IP_ADDRESS>","remote_port":"56634","proto":"HTTP/2.0","method":"GET","host":"dsmr.mydomain.org","uri":"/","headers":{"User-Agent":["curl/7.74.0"],"Accept":["*/*"]},"tls":{"resumed":false,"version":772,"cipher_suite":4867,"proto":"h2","server_name":"dsmr.mydomain.org"}},"user_id":"","duration":0.042757547,"size":13341,"status":200,"resp_headers":{"X-Frame-Options":["DENY"],"Content-Type":["text/html; charset=utf-8"],"Server":["Caddy","nginx"],"Content-Length":["13341"],"Referrer-Policy":["same-origin"],"Vary":["Accept-Language"],"X-Content-Type-Options":["nosniff"],"Content-Language":["en"],"Date":["Tue, 27 Sep 2022 23:35:02 GMT"],"Alt-Svc":["h3=\":443\"; ma=2592000"]}}

To keep things simple, I created a separate issue: https://github.com/allinurl/goaccess/issues/2387


breaking(Form|RatingIcon|Search|SearchResult): Pass props to event handlers

Breaking Changes!
The following components have breaking changes in their event handler props.
Form

Handler
Previous Signature
Current Signature

onClick
(e, formData)
(e, { ...props, formData })

RatingIcon

Handler
Previous Signature
Current Signature

onClick
(e, index)
(e, { ...props, index })

onKeyUp
(e, index)
(e, { ...props, index })

onMouseEnter
(e, index)
(e, { ...props, index })

Search
NOTE: The handler name changed from onChange to onResultSelect. The change was made because:

onChange doesn't really make sense in this context since nothing is really changing.
given the result is being returned, onChange made even less sense.
it maps closer to the SUI-core event (onSelect). The reason to not use onSelect is because that's a built-in html event type for when a user selects text.

Handler
New Name
Previous Signature
Current Signature

onChange
onResultSelect
(e, result)
(e, result) no change

SearchResult

Handler
Previous Signature
Current Signature

onClick
(e, id)
(e, { ...props, id })

Fixes #623
This updates the common tests for event handling to ensure any handlers that we wrap are called with (event, data) as arguments.

@levithomason - thoughts on this approach?
The alternative would be to have a separate common test like:
common.passesPropsWithEvent(Component, 'onClick')

The issue there is that for non-built-in events (e.g. onItemClick) there's no way to reliably trigger the event.
Also I know we try to avoid big refactors, but assuming we go with this approach (updating the 'handles events' spec) I think it makes sense to just fix all of the handlers at once. These files currently have failing specs:
Looks like the following specs are failing that would need to be fixed:

AccordionTitle
BreadcrumbSection
Checkbox
Dropdown Component
Form
MenuItem
Search Component
SearchResult
Select
Step
TableFooter
TableHeaderCell

Current coverage is 100% (diff: 100%)

Merging #951 into master will not change coverage

@@           master   #951   diff @@
====================================
  Files         137    137
  Lines        2279   2269    -10
  Methods         0      0
  Messages        0      0
  Branches        0      0
====================================
- Hits         2279   2269    -10
  Misses          0      0
  Partials        0      0

Powered by Codecov. Last update 55a653f...4e1df95

I like the idea of doing these all at once as it makes for less breaking changes and a clear upgrade path for users.
My idea for solving the handled/unhandled callbacks is precisely what you've done.  Though, I we can't assert the data param is props because sometimes it has other data like state.value in TextArea and Input.  There may be others that have arbitrary data as well.  Instead, we should match against an empty object {} for now.  Any further data specific logic I think should be the responsibility of individual component test.

calledWithMatch is an alias for calledWith(sinon.match(arg1), sinon.match(arg2)) and sinon.match(object) does an incomplete match on objects. So calledWithMatch(event, props) will pass as long as each key/value in props is in the second argument, even if there are additional key/value.

@levithomason - ready for review 👍
One question I had about Dropdown. Currently we pass { ...this.props, value: proposedValue } as the second argument to onChange but only pass the props to the other handlers. Should we also pass the value to the rest of the event handlers? I was thinking something like:
getHandlerProps = () => {
  return { ...this.props, value: this.state.value }
}

onChange = (e, value /* <- proposed value */) => {
  // ...
  props.onChange(e, { ...this.getHandlerProps(), value })
}

onClick = (e) => {
  // ...
  props.onClick(e, this.getHandlerProps())
}

So calledWithMatch(event, props) will pass as long as the second arg is an object that includes each key/value in props, even if there are additional key/value.

This is correct, however, the test would have failed because the value in the data object is overridden as the event value and  props.value != e.target.value.  So, we can not be certain that all the props key/value pairs will appear in data.

Should we also pass the value to the rest of the event handlers?

Initially, I don't think this is necessary in this case.  When the props change the ACC copies those values to state so the props.value will always equal state.value, except in the case of the onChange where we need to communicate the proposed new value.
That aside, it is a good idea IMO to have a SSOT for the handler props so I still like this idea.  It makes testing easier and the component stronger.

For clarity, RatingIcon is internal component and it can't be used outside Rating component. I think it's bad idea to export it.

Doc Examples
I'm guessing there are several doc site examples that need to be updated to reflect the new changes as well.  Would finding handler prop names in the docs, /on[A-Z]\w+=\{/, and updating where necessary.
RatingIcon

For clarity, RatingIcon is internal component and it can't be used outside Rating component. I think it's bad idea to export it.

@layershifter Good call. We should make this a private component in this case.  Simply prefixing its name with _ will make it private.  The common tests will then automatically assert that it is not exposed anywhere in the API.

I started looking into making RatingIcon a private component and I don't really think we should:

There are currently no other private components, the common tests for them don't actually work out of the box.
While RatingIcon it's not usable outside of Rating, neither is Dropdown.Divider usable outside of Dropdown, nor ItemImage outside of Item.
Our goal is to provide a Component API to give someone full control in rendering all SUI components, so we need to export it to allow full control over a Rating.

That logic makes sense to me, thanks @jcarbo.

Released in<EMAIL_ADDRESS>


Please upgade to go 1.20.3 to address high CVE CVE-2023-24537

Is there an existing issue for this?

[X] I have searched the existing issues

Current Behavior
KIC 2.9 is running to 1.20.2
Need to go to 1.20.3 in order to address CVE-2023-24537
Expected Behavior
No High CVEs.
Steps To Reproduce
Scan with Anchore, Twistlock and the like.

Kong Ingress Controller version
2.9

Kubernetes version
not relevant

Anything else?
No response

Please check 2.9.3 that we just released. This should be resolved with that release


Add Client and Keyspace to interesting types

The Client namespace contains metrics for connectedNativeClients
The Keyspace namespace contains aggregated metrics per keyspace
Note: This has only been tested on Cassandra 2.1.9

Sorry, this PR should be for the v2 branch.. closing


Exported role params

Exported role parameters so that they are part of the public facing API

Thanks @boserohan91 !


Player variable: startSeconds not working

Hi, I'm trying to make the video start with a specific second. I read the document
https://developers.google.com/youtube/iframe_api_Vference#loadVideoByUrl and try to add "startSeconds" to the "player-vars" prop but it doesn't seem to work

You can try to use the code below:
computed: {
    ....

    player () {
      return this.$refs.youtube.player
    },

    ....
},

methods: {
    ...

    youtubeSeekTo () {
      this.player.seekTo(10)
    },

    ...
}

.seekTo() isn't quite the same because instead of showing the thumbnail, the youtube player looks like it's stuck in an infinite loading loop until the video is played.

Has anyone gotten this to successfully work?


Add Stylelint 15 support

The significant changes of the v15 release should not affect this plugin.

Thanks!


[Transforms] Optimize frequent paths in visitEachChild.

This change addresses performance issues related to the general behavior of visitEachChild. The current visitEachChild function is highly generic, which make it difficult for hosts to optimize. This change adds individual, more optimized visitEachChildOf* functions for the most common nodes in our current test suite.
Also fixes some issues when compiling processDiagnosticMessages following "jake clean".

CC: @vladima, @yuit, @sandersn

@vladima gave me a thumbs-up offline, but I'll wait till later tonight before merging in case anyone else has comments.

:+1:


Benchmark refactor

Right now, the only way to launch the planning algorithm is through the benchmark script, that is getting quite large.  I moved to other files most of the functionality to launch the VNS planning and to display the results. This way, interface and logic are kept separate.
Merging this PR is required for using SAOP in other contexts than benchmarking. In the near future, we should be able to re-plan and to communicate with a UAV ground control station in order to "close the loop"
Note: The command line interface of benchmark.py is the same as before. This PR only reorders what is inside.

Looks good to me.
Maybe a last thing we could do before (or after) merging is remove all VNS configuration from benchmark.py, and provide a external file with some VNS configurations that would be used by default.

I removed all the VNS confs as you said. I just kept one simple one, called "demo", just to keep benchmark.py able to run by itself.


Add a whiteboard drawing widget

Describe the feature you'd like
The integration of drawio has proven to be extremely valuable for my daily work.
Hope rich text editor includes ability to create hand-drawn style diagrams like drawing on a whiteboard.
Describe the benefits this would bring to existing BookStack users

beautiful & easy to use
freestyle drawing
lots of materials
useful for xxx-storming
supa awesome.

Can the goal of this request already be achieved via other means?
Yes.
Would you consider add this in the editor?
https://github.com/excalidraw/excalidraw
Have you searched for an existing open/closed issue?

[X] I have searched for existing issues and none cover my fundemental request

How long have you been using BookStack?
6 months to 1 year
Additional context
No response

Thanks for the request @Muyv.
I'm going to need to re-ask the what the "benefits this would bring to existing BookStack users" are for this request.
What you have provided in that response seem to be the benefits of a whiteboard application in general.
I instead want to know how a "whiteboard widget" would benefit existing users of BookStack:

What would this allow users to achieve upon the capabilities already provided in BookStack?
What is the importance of those new abilities?

Personally, from the provided information, this would appear to have a lot of overlap with the existing draw.io integration, so I don't really understand the benefits of "whiteboarding" to make it worthwhile implementation.

Thank you for your reply @ssddanbrown .
I can describe my own needs, which may overlap with those of some users.
Bookstack is used as the knowledge base of my team. The built-in drawio of bookstack can be perfectly embedded in the article to display and edit the chart seamlessly. I want to use bookstack to record the process and save the data when I initiate the DDD event storming meeting. Excalidraw can be more Good implementation of whiteboard-style drawing (maybe it's just a difference in experience compared to drawio, but experience is very important at this moment), if it is built into bookstack, it can well achieve my needs.
So far, what I have expressed may only be a supplement to the whiteboard tool in terms of specific UX requirements, or it may be an alternative to drawio in most scenarios, or user demand preferences.
If there is anything more valuable about excalidraw, then I think it is remote real-time collaboration.
Just imagine, I can share an online whiteboard with colleagues thousands of miles away in a meeting, edit it in real time (maybe adding some development complexity), and then save the content in bookstack for review, which is a good extension of bookstack scenes to be used.
(🙃 Not good at English, thanks for Google translate)

Thanks for the further information @Muyv.

If there is anything more valuable about excalidraw, then I think it is remote real-time collaboration.

The reality is that this would introduce a lot more complexity in regards to user management and complexity, since there'd be the expectation of access control aligned with BookStack itself. This would require a lot of specific integration. At that point, I'd rather the platforms are kept completely separate. We don't have real-time collaboration for BookStack content, I don't see it wise to bring that to drawings via an external platform first, I'd want to have real-time collaboration for page content first.

So far, what I have expressed may only be a supplement to the whiteboard tool in terms of specific UX requirements, or it may be an alternative to drawio in most scenarios, or user demand preferences.

Are you aware draw.io (Now called diagrams.net) has a whiteboard mode?: sketch.diagrams.net
I think it would be possible to open the integrated diagrams.net view in that whiteboard mode, would that suit most of your needs?

Okay, thank you @ssddanbrown . reasonable!
The sketch mode of diagrams.net is useful for some case, i would try to use.
BTW: For now...
In app.diagrams.net there is a menu command to change theme

However, it looks embed.diagrams.net inside bookstack has no such menu

So i have to add ui=sketch param to activate

Do i have to upgrade my bookstack(v22.11.1) to newest version for this case?

Hi @Muyv, You could change the URL used to embed diagrams.net, to add the parameter yourself, via the DRAWIO env option as described here.
For example:
DRAWIO=https://embed.diagrams.net/?embed=1&proto=json&spin=1&configure=1&ui=sketch

I'm going to go ahead and close this issue off since, as per my previous messages, I see too much overlap with the current diagrams.net integration, which can be used in a whiteboard mode as per the above setting.

@ssddanbrown OK, that's the best practices so far, thanks for your attention to this matter!

Personally, from the provided information, this would appear to have a lot of overlap with the existing draw.io integration, so I don't really understand the benefits of "whiteboarding" to make it worthwhile implementation.

Because Bookstacks primary target audioence is more mixed environments where ease-of-use and low barrier-to-entry take priority, IMHO Excalidraw suits this better than draw.io. Excalidraw is easier to use, with a fresh modern interface. I don't see Excalidraw as a whiteboard only, but a better alternative to the aged-ui and menu-cluttered draw.io. Excalidraw feels also great on iPad with Pencil, because of minimalist menus.


help

Describe the bug
A clear and concise description of what the bug is.
To Reproduce
Steps to reproduce the behavior:

Go to '...'
Click on '....'
Scroll down to '....'
See error

Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):

OS: [e.g. iOS]
Version [e.g. 22]

Version of Godot:
Which version are you using?
Version of GodotSteam:
Please include the version number and if you are using the module or plug-in.
Additional context
Add any other context about the problem here.

Uh-oh.  Was this an accidental issue?


Comment with a link to the post in the PR

Like @joyeecheung did manually in https://github.com/nodejs/bluesky/pull/8#issuecomment-2513889888

If you mean replying, you can just use the reply action field, see https://github.com/nodejs/bluesky/blob/main/records/new/reply.json.example for an example, and https://github.com/joyeecheung/bluesky-playground/pull/3 to see it in action

Yeah, I mean comment on GitHub so we can click on the link to see the post on bsky.app

The workflow to update to do this is in https://github.com/nodejs/bluesky/blob/main/.github/workflows/process.yml


Reversed sorting of histograms?

It seems that the order of histograms is reversed.
Whenever I provide 2 histograms and they are sorted base on modification date it seems that the newer one is treated as the first one.
Seems that ClassHistogram:273 should beint timestampDiff = Long.signum(getSnapshotTimeMillisFrom() - o.getSnapshotTimeMillisFrom());

Hello piotrkrokowski. Sorry for letting you wait on your comment. For an unknown reason I missed the notification.
IIRC the sorting defines the comparison order for
HistogramAverager.calculateDiff(ClassHistogram ch1, ClassHistogram ch2). Looking at that code it looks like the reasult may actually be unexpected or wrong. If bytes increases, the result may be negative. Is this what you observe?

Fixed by https://github.com/trivago/jcha/pull/4 . Closing manually, as the PR did not auto-close it.


Ability to copy a QT test

As an admin, I need to create multiple versions of the same QT. One for the staff dry run, one for the external dry run and then a version for the final QT. This is quite time consuming and allows for errors to occur.
I would like to be able to copy a QT by simply copying the test from admin staging to admin production.
If the test code is copied over and there is an error, I will need to be notified.

This has been shared with the UTG, feedback to follow.


istioctl: check revision exists before uninstalling

Please provide a description of this PR:
fix: #40598
check revision exists before uninstalling

@zirain: The following test failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

release-notes_istio
1eea0bc5bcb12a95793641586b1af2b489c18e73
link
true
/test release-notes

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

@zirain: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

release-notes_istio
1eea0bc5bcb12a95793641586b1af2b489c18e73
link
true
/test release-notes

lint_istio
1eea0bc5bcb12a95793641586b1af2b489c18e73
link
true
/test lint

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

@zirain: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

release-notes_istio
1eea0bc5bcb12a95793641586b1af2b489c18e73
link
true
/test release-notes

lint_istio
1eea0bc5bcb12a95793641586b1af2b489c18e73
link
true
/test lint

gencheck_istio
1eea0bc5bcb12a95793641586b1af2b489c18e73
link
true
/test gencheck

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

@zirain: The following test failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

integ-pilot-istiodremote_istio
889ba724c6c8f6efcba0463f2213a2dc6a21366c
link
true
/test integ-pilot-istiodremote

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

/test integ-pilot-istiodremote

LGTM, thanks zirain!

Is it possible to add a test for this?

@zirain: The following test failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

analyze-tests_istio
e18f6e5b5b466c7ed1090416a6a6ac6bc9153431
link
true
/test analyze-tests

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

Is it possible to add a test for this?

updated


Update to 3.x driver

MongoDB 4.x requires the nodejs v3.x driver: https://docs.mongodb.com/manual/release-notes/4.0/#drivers
The 3.x driver is also required to access some of the latest mongodb 3.x additions.
Here's the list of breaking changes in the 3.x driver: https://github.com/mongodb/node-mongodb-native/blob/3.0/CHANGES_3.0.0.md
One of the big ones is that the find API has moved the projection parameter into options.projection.
Our code base will also be impacted by the changes in the bulkWrite APIs.  I would categorize these changes as improvements because the error handling in the 2.x bulkWrite APIs is really wonky which required silly tactics like this: https://github.com/digitalbazaar/bedrock-ledger-storage-mongodb/blob/master/lib/LedgerEventStorage.js#L134

Addressed by PR #33, closing.