Failed to decode Websocket Frame due to size being too big on Java 12+

Expected behavior
Hi, I'm using a Netty-based Websocket Client Catnip, which relies on Vert.x to connect to a WebSocket-based Service Discord.
On Java 11 and before, it connected just fine to the websocket.
Actual behavior
On Java 12 (and also latest 13-ea builds), it errors with the following:
io.netty.handler.codec.DecoderException: javax.net.ssl.SSLException: Fail to unwrap network record
	at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:472)
	at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:278)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:374)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:360)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:352)
	at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1408)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:374)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:360)
	at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:930)
	at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:163)
	at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:682)
	at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:617)
	at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:534)
	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:496)
	at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:906)
	at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
	at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
	at java.base/java.lang.Thread.run(Thread.java:835)
Caused by: javax.net.ssl.SSLException: Fail to unwrap network record
	at java.base/sun.security.ssl.Alert.createSSLException(Alert.java:133)
	at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:320)
	at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:263)
	at java.base/sun.security.ssl.SSLEngineImpl.unwrap(SSLEngineImpl.java:470)
	at java.base/sun.security.ssl.SSLEngineImpl.unwrap(SSLEngineImpl.java:433)
	at java.base/javax.net.ssl.SSLEngine.unwrap(SSLEngine.java:634)
	at io.netty.handler.ssl.SslHandler$SslEngineType$3.unwrap(SslHandler.java:295)
	at io.netty.handler.ssl.SslHandler.unwrap(SslHandler.java:1332)
	at io.netty.handler.ssl.SslHandler.decodeJdkCompatible(SslHandler.java:1227)
	at io.netty.handler.ssl.SslHandler.decode(SslHandler.java:1274)
	at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:502)
	at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:441)
	... 17 common frames omitted
Caused by: java.lang.RuntimeException: javax.crypto.ShortBufferException: Output buffer too small
	at java.base/com.sun.crypto.provider.ChaCha20Cipher.engineDoFinal(ChaCha20Cipher.java:703)
	at java.base/javax.crypto.CipherSpi.bufferCrypt(CipherSpi.java:826)
	at java.base/javax.crypto.CipherSpi.engineDoFinal(CipherSpi.java:730)
	at java.base/javax.crypto.Cipher.doFinal(Cipher.java:2503)
	at java.base/sun.security.ssl.SSLCipher$T12CC20P1305ReadCipherGenerator$CC20P1305ReadCipher.decrypt(SSLCipher.java:2188)
	at java.base/sun.security.ssl.SSLEngineInputRecord.decodeInputRecord(SSLEngineInputRecord.java:240)
	at java.base/sun.security.ssl.SSLEngineInputRecord.decode(SSLEngineInputRecord.java:197)
	at java.base/sun.security.ssl.SSLEngineInputRecord.decode(SSLEngineInputRecord.java:160)
	at java.base/sun.security.ssl.SSLTransport.decode(SSLTransport.java:108)
	at java.base/sun.security.ssl.SSLEngineImpl.decode(SSLEngineImpl.java:681)
	at java.base/sun.security.ssl.SSLEngineImpl.readRecord(SSLEngineImpl.java:636)
	at java.base/sun.security.ssl.SSLEngineImpl.unwrap(SSLEngineImpl.java:454)
	... 25 common frames omitted
Caused by: javax.crypto.ShortBufferException: Output buffer too small
	at java.base/com.sun.crypto.provider.ChaCha20Cipher$EngineAEADDec.doFinal(ChaCha20Cipher.java:1360)
	at java.base/com.sun.crypto.provider.ChaCha20Cipher.engineDoFinal(ChaCha20Cipher.java:701)
	... 36 common frames omitted

The full log is: https://hasteb.in/alubotop.lua
Steps to reproduce
I made a Gradle-based mini test with just the bare minimum required.
This bug was found while trying to connect to a Discord Bot, which requires you to create a account, which is free, and also create an application at https://discordapp.com/developers, which is also free.
The test code requires a bot token as the only parameter of the program.
Discord proxies itself through Cloudflare so there are probably better ways to set-up a way to reproduce, I just doesn't have the tools to do it.
Minimal yet complete reproducer code (or URL to code)
https://github.com/adriantodt/catnip-netty-failtest
Netty version
Tested on Netty 4.1.30.Final and 4.1.36.Final
JVM version (e.g. java -version)
On Linux:
openjdk version "12.0.1" 2019-04-16
OpenJDK Runtime Environment (build 12.0.1+12)
OpenJDK 64-Bit Server VM (build 12.0.1+12, mixed mode)

On Windows:
openjdk version "12.0.1" 2019-04-16
OpenJDK Runtime Environment AdoptOpenJDK (build 12.0.1+12)
OpenJDK 64-Bit Server VM AdoptOpenJDK (build 12.0.1+12, mixed mode, sharing)

OS version (e.g. uname -a)
Linux:
Linux 03f498af05e1 4.15.0-22-generic #24-Ubuntu SMP Wed May 16 12:15:17 UTC 2018 x86_64 Linux
and
Linux aru.pw 4.15.0-22-generic #24-Ubuntu SMP Wed May 16 12:15:17 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

Windows:
Microsoft Windows 10 Pro Version 1803 (OS Build 17134.706)

(Accidentally send an incomplete message, sorry. Filling the rest of it right now.)

This looks like a JDK bug imho...

Tried reproducing with more JDKs available. Got the same exception for ZuluVM and OracleJDK on the same Ubuntu
openjdk version "12.0.1" 2019-04-16
OpenJDK Runtime Environment Zulu12.2+3-CA (build 12.0.1+12)
OpenJDK 64-Bit Server VM Zulu12.2+3-CA (build 12.0.1+12, mixed mode, sharing)

java version "12.0.1" 2019-04-16
Java(TM) SE Runtime Environment (build 12.0.1+12)
Java HotSpot(TM) 64-Bit Server VM (build 12.0.1+12, mixed mode, sharing)

@adriantodt like I said I think it is a JDK bug... could your provide SSL debug logs as requested here:
http://mail.openjdk.java.net/pipermail/security-dev/2019-May/019900.html

@adriantodt like I said I think it is a JDK bug... could your provide SSL debug logs as requested here:
http://mail.openjdk.java.net/pipermail/security-dev/2019-May/019900.html

Executed the code with the debug properties as asked, got this log: https://hasteb.in/ucalevob.makefile

@adriantodt thanks a lot!

I believe I may be running into the same issue with a failing ChaCha cipher. I read through: http://mail.openjdk.java.net/pipermail/security-dev/2019-May/019900.html but does anyone know if a bug report was ever filed? Also, was any workaround ever found such as disabling the use of that cipher?
In my case, I'm using:

OpenJDK 12.0.1
-Djdk.tls.client.protocols=TLSv1,TLSv1.1,TLSv1.2

and seeing the error at the bottom. I have found that removing the param jdk.tls.client.protocols above seems to fix the issue but I've got it in place to workaround another JDK bug with TLS v1.3
EDT|TransportContext.java:312|Fatal (INTERNAL_ERROR): Fail to unwrap network record (
"throwable" : {
  java.lang.RuntimeException: javax.crypto.ShortBufferException: Output buffer too small
    at java.base/com.sun.crypto.provider.ChaCha20Cipher.engineDoFinal(ChaCha20Cipher.java:703)
    at java.base/javax.crypto.CipherSpi.bufferCrypt(CipherSpi.java:826)
    at java.base/javax.crypto.CipherSpi.engineDoFinal(CipherSpi.java:730)
    at java.base/javax.crypto.Cipher.doFinal(Cipher.java:2503)
    at java.base/sun.security.ssl.SSLCipher$T12CC20P1305ReadCipherGenerator$CC20P1305ReadCipher.decrypt(SSLCipher.java:2188)
    at java.base/sun.security.ssl.SSLEngineInputRecord.decodeInputRecord(SSLEngineInputRecord.java:240)
    at java.base/sun.security.ssl.SSLEngineInputRecord.decode(SSLEngineInputRecord.java:197)
    at java.base/sun.security.ssl.SSLEngineInputRecord.decode(SSLEngineInputRecord.java:160)
    at java.base/sun.security.ssl.SSLTransport.decode(SSLTransport.java:108)
    at java.base/sun.security.ssl.SSLEngineImpl.decode(SSLEngineImpl.java:681)
    at java.base/sun.security.ssl.SSLEngineImpl.readRecord(SSLEngineImpl.java:636)
    at java.base/sun.security.ssl.SSLEngineImpl.unwrap(SSLEngineImpl.java:454)
    at java.base/sun.security.ssl.SSLEngineImpl.unwrap(SSLEngineImpl.java:433)
    at java.base/javax.net.ssl.SSLEngine.unwrap(SSLEngine.java:634)
    at org.eclipse.jetty.io.ssl.SslConnection$DecryptedEndPoint.fill(SslConnection.java:681)
    at org.eclipse.jetty.client.http.HttpReceiverOverHTTP.process(HttpReceiverOverHTTP.java:128)
    at org.eclipse.jetty.client.http.HttpReceiverOverHTTP.receive(HttpReceiverOverHTTP.java:73)
    at org.eclipse.jetty.client.http.HttpChannelOverHTTP.receive(HttpChannelOverHTTP.java:133)
    at org.eclipse.jetty.client.http.HttpConnectionOverHTTP.onFillable(HttpConnectionOverHTTP.java:155)
    at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:281)
    at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:102)
    at org.eclipse.jetty.io.ssl.SslConnection.onFillable(SslConnection.java:291)
    at org.eclipse.jetty.io.ssl.SslConnection$3.succeeded(SslConnection.java:151)
    at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:102)
    at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:118)
    at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333)
    at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310)
    at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168)
    at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126)
    at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366)
    at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:760)
    at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:678)
    at java.base/java.lang.Thread.run(Thread.java:835)
  Caused by: javax.crypto.ShortBufferException: Output buffer too small
    at java.base/com.sun.crypto.provider.ChaCha20Cipher$EngineAEADDec.doFinal(ChaCha20Cipher.java:1360)
    at java.base/com.sun.crypto.provider.ChaCha20Cipher.engineDoFinal(ChaCha20Cipher.java:701)
    ... 32 more}

cc http://mail.openjdk.java.net/pipermail/security-dev/2019-May/019956.html

It did help some, yes.  I'm trying to get to a point where I can
reproduce the issue because it isn't immediately clear why that last
record is causing the ShortBufferException.  I'm hoping there's a way to
do that without having to hit that discord server.  Ideally I'd need to
turn this into some kind of regression test that more easily isolates
the issue.
--Jamil
On 5/23/2019 11:24 AM, Norman Maurer wrote:

Hi there,
Did the debug log help at all or should I try to gather more
informations from the user ?
Bye
Norman

Information that might be useful:

I'm getting the ShortBufferException on a websocket connection (that's kinda obvious on the log tho)
the server sends JSON of easily 1 MB in size each
there is a event flowchart for the websocket I'm trying to connect, if that's any useful

Interesting. We're definitely seeing a pretty large response from the server as well in our case.
Is disabling that specific cipher an option for you? We ended supplementing our java.security file with:
jdk.tls.disabledAlgorithms=<other stuff...> CHACHA20-POLY1305

Interesting. We're definitely seeing a pretty large response from the server as well in our case.
Is disabling that specific cipher an option for you? We ended supplementing our java.security file with:
jdk.tls.disabledAlgorithms=<other stuff...> CHACHA20-POLY1305

This worked as a workaround by now. Managed to connect to the websocket and get to working state. Apparently everything boils down to the faulty TLSv1.3 implementation -.-

I will update here once I hear back from OpenJDK folks.

This worked as a workaround by now. Managed to connect to the websocket and get to working state. Apparently everything boils down to the faulty TLSv1.3 implementation -.-

Glad to hear that worked for you. Thanks @timreilly for the suggestion there.

I will update here once I hear back from OpenJDK folks.

Thanks @normanmaurer!

A patch was proposed for OpenJDK that should fix it:
https://mail.openjdk.java.net/pipermail/security-dev/2019-August/020535.html
Will close the issue as it is not a Netty issue but a openJDK one.


Gardening: Make environment.sh executable

Description
Gardening: Make environment.sh executable so it's easy for newcomers to submit debug information.
Detailed Design
chmod +x ./Scripts/environment.sh
Documentation Plan
N/A
Test Plan
N/A, but I did run the script 😄
Source Impact
N/A
Checklist

[x] I've read the Contribution Guidelines

Thanks @iainsmith! 👏


"getQueryParamValue" is case sensitive

Could getQueryParamValue ignore case sensitive?  So these will return the same result:
uri.getQueryParamValue("productId")
uri.getQueryParamValue("ProductId")
uri.getQueryParamValue("productid")
uri.getQueryParamValue("PRODUCTID")

What sort of environment are you working in that has case-insensitive URL params?

This is an issue for me as well... it's not that we have case sensitivity, it's that the library enforces it when searching, is the problem
I have code looking for uri.getQueryParamValue('iscloud')
A switch I have set in code that admins will type in bla?isCloud=true
However, if they typed what I just just wrote above, the code doesn't match it, and returns that the parameter 'iscloud' doesn't exist and returns null

@derek-watson The environment that requires case-insensitive is ANY that is called by a 3rd party. Where they know what query string provide.
jsURI currently forces them to construct their query string with EXACT casing, which is to me, just obviously wrong.

@derek-watson Would you accept pull request for this? I'm thinking adding a boolean argument will make sense.

@alFReD-NSH do you have a fork with the necessary change... I would like to go there.

@derek-watson , I made a pull request #63. I appreciate if you could have a look and tell me what you think.

In my opinion, case insensitivity should be the default. No one uses it on their file system and I cannot imagining a realistic use case for it. That this library has done it by default is a mistake.

#64
And this is pull request - sorry to compete but I have a few less calls to toLowerCase() than #63 as I store the lower case instance of the string and then the == comparison works without calling it explicitly every time

Please ignore my PR #64 - it has a bug in itself. I was over zealous in applying toLowerCase and the results returned are actually converted to all lower case as a result - which is not desirable either.
#63 looks like a good alternative


Restore CloudSdk#validate() and accompanying CloudSdkConfigurationException

This patch restores validate(), which was removed in commit 35581d13bbd03196fd1d2eaffe5032c72c26e4b8.  I didn't touch the messages passed into CloudSdkConfigurationException, though they're not i18n friendly.
Fixes #118

@briandealwis I think we crossed wires... see #119

Closing this one since using AppEngineException should be fine.


Using Different Icons for Light to Dark Theme

I want to change the icons, and UI a bit, and add some transitional animation while toggling from and between dark and light theme to enhance user interactivity.

Hey @sahajoydeep, current icons are fine for now as the design of website will be change after some time. Contribute to other issues.


fix: syntax errors in first example in README.md

SyntaxError: f-string: unmatched '['
and once that was fixed:
SyntaxError: f-string: unmatched ')'

Thanks Tavis!


Token client cache

This PR adds a Cache to the token client. The cache can be configured and disabled for the token service.

One thing I'm missing here, is the check whether the token is expired in the next seconds and in this case not to return the cached one.

Should I add this here or in a new PR?

entweder

One thing I'm missing here, is the check whether the token is expired in the next seconds and in this case not to return the cached one

@nenaraab Should I add those requirements here or in a new PR?

pls add it to this PR or if its easier to PR #281

@hassler-d
please adapt the configuration accordingly:

reduce duration to 10 minutes
increase size to 1000

@hassler-d
please adapt the configuration accordingly:

reduce duration to 10 minutes
increase size to 1000

done!


An HTTPS endpoint within the virtual network

Hi, under the section "Endpoints for connecting to HDInsight" in this article, seems the HTTPS endpoint within the virtual network would not be created by default and need to contact Azure support team to enable it for Azure subscription. Even though, it only works for the new created HDInsight cluster. Clusters created prior to that still can not use the "-int" endpoints.  Please help confirm this, thanks in advance!

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

ID: 5939b0cc-6d94-0a34-81ce-028cf94786cf
Version Independent ID: 4b010267-0f6f-e164-be76-4f71eb4f3dab
Content: Azure HDInsight virtual network architecture
Content Source: articles/hdinsight/hdinsight-virtual-network-architecture.md
Service: hdinsight
GitHub Login: @hrasheed-msft
Microsoft Alias: hrasheed

@Derek1101 Thanks for bringing this to our notice. We are investigating into the issue and will update you shortly.

Hello @Derek1101. The endpoint that you mentioned https://clustername-int.azurehdinsight.net  is created by default for all clusters that are created within a custom VNET. Please create a virtual network and then deploy a new cluster into that VNET. For more information, see Create virtual networks for Azure HDInsight clusters. Thanks.

#please-close


[engsys] Enable linting for PR descriptions

I created a simple GitHub action to check PRs for correctness in a few configurable ways.
This workflow won't block unless we mark it as required in the GitHub repo configuration, so we will have ample opportunity to test it out for false positives.
Currently supported checks:

PR body is not empty
Any markdown sections (denoted by headers) in the PR body are not empty
A customized list of markdown sections are present (currently it's what packages are impacted and what is solved by the PR)
The title starts with a token surrounded by square brackets that is either a package name, service group, or area

action repo: https://github.com/xirzec/pr-lint

Can we build our own thing while we're waiting for the one bot to rule them all to develop a comparable feature that works for all the SDK repos?
We don't currently have uniform PR templates across the SDK either, so I'm guessing it will take a good long while to decide what ruleset should apply to all repos and implement it, and I was personally really hoping we could pursue some mitigation to this on a faster timeline.

Would you be willing to open an issue in the tools repo that describes the type of linting that you're thinking of for PRs and tag it with the "GitHub Event Processor" label for triage?

Certainly! https://github.com/Azure/azure-sdk-tools/issues/6087

We're generally trying to avoid individual repositories creating actions and keep all automation rules centralized in the bot, allowing each repository to opt-in or out.
The problem of low-quality PR descriptions doesn't seem unique to JS and I think worthy of larger discussion. I also believe that keeping the experience as consistent as possible across languages for contributors is something that we should strive for.

Absolutely. I'm not opposed to having a central solution for this, but since I'm not 100% confident in what validations would be useful, it seemed better to iterate on an MVP in one repo before trying to scale it out to all of our repos.
Maybe this isn't true because of the action limits you mentioned, I don't want to spend all of our action quota on an experiment if that's going to prevent us from running the required/necessary checks we have already. I appreciate hearing more about how we can get something working and gather data. 😄

@xirzec and @witemple-msft thank you for opening the issue, I've assigned it to me. There are a couple of problems with what you're doing here, with the experimentation.

This is not going to work as is. If you notice, your pull_request_target event isn't running and that's because that target only runs against files that are checked in.
.github/workflows for all azure-sdk-for- repositories is now like eng/common meaning that its contents are controlled and updated through changes to azure-sdk-tools. Any local check in to these directories would be overwritten or outright removed when changes made in azure-sdk-tools are pushed out.

Thanks Jim for taking a look!

This is not going to work as is. If you notice, your pull_request_target event isn't running and that's because that target only runs against files that are checked in.

I'm confused by this comment. Are you saying that the workflow isn't running on this PR itself or something else?
My understanding is that the workflow wouldn't take effect until it was merged to main. I was able to have a similar configuration in my own repository: https://github.com/xirzec/pr-lint/blob/main/.github/workflows/pr-lint.yaml
And you can see it running and working:
https://github.com/xirzec/pr-lint/pull/1
https://github.com/xirzec/pr-lint/actions/workflows/pr-lint.yaml

.github/workflows for all azure-sdk-for- repositories is now like eng/common meaning that its contents are controlled and updated through changes to azure-sdk-tools. Any local check in to these directories would be overwritten or outright removed when changes made in azure-sdk-tools are pushed out.

This is good to know. Is the idea that repo-specific config would live one level up as in https://github.com/Azure/azure-sdk-for-js/blob/main/.github/event-processor.config ?
Lastly, can you speak to the problem Jesse mentioned about GitHub having limits/quota surrounding actions? Is adding an additional workflow/action a non-starter and we have to bake this into the existing event processor?

@xirzec

I'm confused by this comment. Are you saying that the workflow isn't running on this PR itself or something else?
Yes, the workflow won't run until it's checked into main or if you're running from your user fork, checked into there.

My understanding is that the workflow wouldn't take effect until it was merged to main. I was able to have a similar configuration in my own repository: https://github.com/xirzec/pr-lint/blob/main/.github/workflows/pr-lint.yaml
Yes, this would run against your user fork if you'd enabled actions (that's how I'd started my investigation into actions, running them against my user fork).

Lastly, can you speak to the problem Jesse mentioned about GitHub having limits/quota surrounding actions
Depending on what operations you're performing, actions have rate limits. The github-event-processor prints these out at the start/end of action processing, you can look at any GitHub Event Processor or GitHub Scheduled Event Processor work flow and see this. Pretty much anything that updates/changes/comments github objects counts against this and the rate limits can differ by the type of operation, updating an Issue or PR has a different rate limit than the queries that the scheduled events run. If you're curious we can have a teams chat.

This is good to know. Is the idea that repo-specific config would live one level up as in https://github.com/Azure/azure-sdk-for-js/blob/main/.github/event-processor.config ?

Actions need to live in the .github/workflows, period. This is the only directory GitHub looks at and higher up or subdirectories of .github/workflows wouldn't work.

Actions need to live in the .github/workflows, period. This is the only directory GitHub looks at and higher up or subdirectories of .github/workflows wouldn't work.

Yes, I understand. I was confirming that our strategy was to centrally replicate all workflows but to allow individual repositories to configure said workflows using a file that lived outside of the workflows folder that was not kept in sync. Unless you are saying that all repositories must use exactly the same configuration settings as well?

@JimSuplizio:   My understanding is that the actions in our language repositories were using the same GH identity/token and were, therefore, sharing the same rate limits.   Meaning, that if this action decided to comment on every issue in the repository, it would mean that JimBot could start failing in other repositories.
Am I correct or incorrect there?  If each action has its own unique rate limits, then I don't see a reason to block the experiment that Jeff and team want to run.

Going to close this as an unfortunate casualty of consistency across repos.


Icon conditions on card title

Like the card, it's helping me tidy up by dashboard.  Would to be possible to add state_color to the icon on the title of the card?  For example, highlight icon next to Hall, if the hall light is on?

I was hoping to use the icon to show occupancy :) Possibly add condition to change the icon as well?
type: custom:room-card
title: Office
entity: input_boolean.inoffice
state_color: true
state_show: true
icon:
  conditions:
    - icon: mdi:door-open
      condition: equals
      value: 'off'
    - icon: mdi:door-closed
      condition: equals
      value: 'on'
entities:
  - entity: switch.den_light
    icon: phu:ceiling-round
    name: Light
    tap_action:
      action: toggle
    state_color: true

cheers,
Carl

Hey Carl,
I think you found a bug regarding to the icon. That should be fixed in 1.2.6.
The icon should be highlighted when the entity is active.

That was quick, many thanks :)


[All] Update docker image tag to v1.21.0

What this PR does / why we need it:
Update docker image tag in the manifest files for release v1.21.0
Which issue this PR fixes(if applicable):
fixes #
Special notes for reviewers:

Release note:

NONE

/test cloud-provider-openstack-e2e-test-csi-cinder

/test cloud-provider-openstack-e2e-test-csi-cinder

/retest

/lgtm
just wait for the test result should be fine

job cloud-provider-openstack-multinode-csi-migration-test failed with:
2021-04-29 09:51:04.049622 | k8s-master | + break
2021-04-29 09:51:04.051285 | k8s-master | /bin/bash: line 5: break: only meaningful in a `for', `while', or `until' loop
2021-04-29 09:51:04.051329 | k8s-master | + timeout 300 bash -c '
2021-04-29 09:51:04.051351 | k8s-master |     while :
2021-04-29 09:51:04.051366 | k8s-master |     do
2021-04-29 09:51:04.051380 | k8s-master |        [ -z "$(kubectl get pods -l app=registry --field-selector=status.phase!=Running)" ] && break
2021-04-29 09:51:04.051398 | k8s-master |        sleep 5
2021-04-29 09:51:04.051412 | k8s-master |     done
2021-04-29 09:51:04.051425 | k8s-master |     '
2021-04-29 09:56:04.053939 | k8s-master | + kubectl describe pods -l app=registry
2021-04-29 09:56:04.159535 | k8s-master | + echo 'registry services successful'

/test cloud-provider-openstack-multinode-csi-migration-test
try again.

/retest

The job cloud-provider-openstack-multinode-csi-migration-test failed with the same error as above. @ramineni @chrigl could you please take a look? I will override the job to not block release.
/override openlab/cloud-provider-openstack-multinode-csi-migration-test


cefpython:  bundle-mode: success,  standalone-mode: error

Running this simple Test Example:
https://raw.githubusercontent.com/cztomczak/cefpython/master/examples/snippets/javascript_bindings.py
Everything works great without --standalone,  but when I add --standalone it gives below error:
(venv) psys-MacBook-Pro:ceftester psy$ python --version
Python 3.7.4
(venv) psys-MacBook-Pro:ceftester psy$ python -m nuitka --version
0.6.5
Python: 3.7.4 (default, Sep  7 2019, 18:27:02)
Executable: /Users/psy/1m/apps/ceftester/venv/bin/python
OS: Darwin
Arch: x86_64
(venv) psys-MacBook-Pro:ceftester psy$ ls
blob_storage		main.bin		main.build		main.py			webrtc_event_logs
:::::::WORKING:::::::
(venv) psys-MacBook-Pro:ceftester psy$ python -m nuitka --follow-imports --run main.py
DevTools listening on ws://<IP_ADDRESS>:51397/devtools/browser/332d1e6d-1b37-4d0b-9b9e-7ec16cee00ca
Value sent from Javascript: I am a Javascript string #1
Value sent from Javascript: I am a Javascript string #2
:::::::NOT WORKING::::::   ( same command with --standalone )
(venv) psys-MacBook-Pro:ceftester psy$ python -m nuitka --follow-imports --run --standalone main.py
Traceback (most recent call last):
File "/Users/psy/1m/apps/ceftester/ceftester/main.dist/main.py", line 6, in
File "/Users/psy/1m/apps/ceftester/ceftester/main.dist/cefpython3/init.py", line 62, in
ImportError: dlopen(/Users/psy/1m/apps/ceftester/ceftester/main.dist/cefpython3/cefpython_py37.so, 2): Library not loaded: @rpath/Chromium Embedded Framework.framework/Chromium Embedded Framework
Referenced from: /Users/psy/1m/apps/ceftester/ceftester/main.dist/cefpython3/cefpython_py37.so
Reason: image not found

Very likely this is better on the develop version.

Thanks @kayhayen
I tried dev version and got different error:
ATTEMPT:
(venv) psys-MacBook-Pro:ceftester psy$ python -m nuitka --verbose --follow-imports --standalone --run main.py
...
Nuitka:DEBUG:internal:1 : new_statements : Original parameter variable value parameter variable 'bases' is not released.
Nuitka:DEBUG:internal:1 : new_statements : Original parameter variable value parameter variable 'bases' is not released.
Nuitka:DEBUG:main.py:64 : new_statements : Original parameter variable value parameter variable 'self' is not released.
Nuitka:DEBUG:main.py:64 : new_statements : Original parameter variable value parameter variable 'browser' is not released.
Nuitka:DEBUG:main.py:64 : new_statements : Original parameter variable value parameter variable '' is not released.
Nuitka:DEBUG:main.py:64 : new_statements : Original parameter variable value parameter variable 'self' is not released.
Nuitka:DEBUG:main.py:64 : new_statements : Original parameter variable value parameter variable 'browser' is not released.
Nuitka:DEBUG:main.py:64 : new_statements : Original parameter variable value parameter variable '' is not released.
Nuitka:DEBUG:main.py:64 : new_statements : Removed useless try, all handlers removed.
[0930/194043.584650:ERROR:icu_util.cc(114)] icudtl.dat not found in bundle
[0930/194043.584727:ERROR:icu_util.cc(133)] Invalid file descriptor to ICU data received.
Trace/BPT trap: 5
(venv) psys-MacBook-Pro:ceftester psy$ pip list
Package    Version

cefpython3 66.0
Nuitka     0.6.6rc7
pip        19.0.3
setuptools 40.8.0
You are using pip version 19.0.3, however version 19.2.3 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
(venv) psys-MacBook-Pro:ceftester psy$ python --version
Python 3.7.4

@psytron , you might want to try moving/copying the icu data directly beside the standalone exe.  See https://github.com/Nuitka/Nuitka/issues/521

@jayvdb Thanks for your suggestion. Isn't --standalone flag intended to solve exactly this use case?  so that users of your app can just click without worrying about dependencies ?

@psytron , yes, --standalone should do that, but it doesnt at the moment, and #521 and https://github.com/Nuitka/Nuitka/issues/493 and other issues exist about this.  So after compilation, some fiddling with the artifacts is sometimes necessary, if you want to use Nuitka now without fixing all of those outstanding problems ;-).

Thanks @jaybdb . I see. So if user must fiddle with dependencies after compile that defeats the purpose of using --standalone... Is there a way to pass parameter to Nuitka like --plugin-directory or something so that it will copy and include the dependencies ?

I also noticed that for non-standalone using "--run" works:
( python -m nuitka --verbose --follow-imports --run main.py )
But when I click the main app file it produces same error:
[1002/154238.805393:ERROR:icu_util.cc(114)] icudtl.dat not found in bundle
I am not sure why  '--run' works,  but clicking to run app doesn't work.
Either way  --standalone  is THE killer feature everyone wants. The marvelous ability to create 1 file that just works when users click it :)

@psytron it does create a distribution folder, we need examples with reproducers to enhance it, where it fails. Some of the issues mentioned were fixed in the 0.6.6 release, please retry and provide the output, also, tracing file accesses would be nice, I assume there is an strace on macOS? We would need where the file normally lives, and where it is accessed (and not found).

btw, I wish somebody will create proper macOS apps out of those folders one day, seems to be just some tooling needed?

Closing for lack of feedback, without the traces, we don't know what's going on.


Normalize the vlan and non-vlan test suite

This requires new tests to only be added to one file, rather than two,
helping maintainability.

Review, @teknico ?
Note that this targets the hardened IPv6 reassembly work branch, because that branch added several tests.

LGTM, thank you for simplifying this.


Allow users to separately set the exchange type for groundwater exchange

User story
"I want to schematize a underground stormwater storage facility that is fed from the stormwater system, exchanges with the groundwater, but does not itself directly exchange with the surface"
The image below shows the storage facility in grey and the stormwater system in blue:

Proposed solution

Add a field exchange_type_groundwater to the pipe and connection_node layers (integer Enum)
This field can have the values 1 "Isolated" or 2 "Connected"
In gridbuilder, this will determine whether or not a 1D-Groundwater link is created, independent from the exchange_type. So any combination of surface water exchange type / groundwater exchange type would be possible
In the migration, set exchange_type_groundwater to Isolated if Exchange thickness, Hydraulic conductivity in and Hydraulic conductivity out are all NULL, and to Connected if any of those fields is not NULL

Work in threedi-schema

Add enum ExchangeTypeGroundwater to constants.py with values 1 (ISOLATED) AND 2 (CONNECTED
Add column exchange_type_groundwater to Pipe and ConnectionNode in models.py
Write migration

add column to tables
set column value: Connected if table.exchange_thickness is not None or table.hydraulic_conductivity_in is not None or table.hydraulic_conductivity_out is not None
be aware that both tables have geometries, some magic may be needed to fix that

Work modelchecker

Correct values are automatically covert
@leendertvanwolfswinkel should a not null check be added for exchange_type_groundwater?

Work gridbuilder

Include exchange_type_groundwater in get_pipes and get_connections_nodes in interface/db.py and add to Pipe and ConnectionNode classes
Modify Pipe.has_groundwater_exchange and ConnectionNode.has_groundwater_exchange to use exchange_type_groundwater


Drop support for python 3.7, 8 and add 3.10 - so support is only for 3.9 and 3.10

Issue description / feature objectives
The downloads from PyPI as shown by https://pypistats.org/packages/compliance-trestle show very few downloads for python 3.7 or 3.8
3.9 and 3.10 are popular now, so it seems now is a good time to switch
This would unblock #1258
Caveats / Assumptions
Completion Criteria

Fixed #1533


This site is wasting my storage through big cookies

I've just noticed that this site has 11 GB cookies from my first visit until now. Maybe like 1 month of frequent visit to this site (https://iptv-org.github.io/). Probably the the logo causing it because when i cleared cookies and loaded a country section (like Afghanistan) with many channels, then 100 MB+ cookies will be used up.

I assume you mean cache, not cookies. But thanks anyway for pointing that out. I will try to reduce its size in the next update.

I assume you mean cache, not cookies. But thanks anyway for pointing that out. I will try to reduce its size in the next update.

I mean this:

The thing about cookies is that they can't be bigger than 4Kb in most browsers: https://www.tutorialspoint.com/What-is-the-maximum-size-of-a-web-browser-s-cookies-value
In this case the reason was as you suggested logos that were cached to make the site work in offline mode. I've already updated the code and now the cache size should not exceed 20Mb.
But why the size of the cache is specified in the "Cookie" tab I have no idea.

The thing about cookies is that they can't be bigger than 4Kb in most browsers: https://www.tutorialspoint.com/What-is-the-maximum-size-of-a-web-browser-s-cookies-value
In this case the reason was as you suggested logos that were cached to make the site work in offline mode. I've already updated the code and now the cache size should not exceed 20Mb.
But why the size of the cache is specified in the "Cookie" tab I have no idea.

I have no idea either. However i don't want to make it work offline, but to make its logo cache removal easier.


Added check cache key util

Added cache_key_exist endpoint for debugging purpose and making sure cache keys are being registered properly.
@mistercrunch

LGTM


application build features in manifest mode

Is your feature request related to a problem? Please describe.
vcpkg port manifests can specify various features to toggle build options, which can also selectively pull in dependencies. However, there is no way to use different features of a vcpkg.json manifest file when building an application which uses vcpkg for its dependencies.
Proposed solution
Add parameters to vcpkg install and CMake build options for specifying features to use from a vcpkg.json manifest file.
Describe alternatives you've considered
Use different versions of vcpkg.json in different Git branches instead of different features. However, this is harder to maintain. I want to be able to set up CI jobs for the same Git branch to test different sets of dependencies with the same application code.
Additional context
Mixxx is starting to work towards migrating from Qt5 to Qt6. For a while we will need CI builds for both Qt5 and Qt6. To use vcpkg in manifest mode for this, it would be helpful to select whether to use Qt5 or Qt6 as a dependency. Alternatively, the vcpkg.json manifest file could specify both Qt5 and Qt6 as dependencies and leave it to the application's build system to select between them. The downside to that would be downloading large unnecessary dependencies.

Can you please provide an example?
The manifest mode already provides port feature selection.

I think you want to use the --x-feature= option. E.g. if you have a feature foo in your vcpkg.json file you have to do vcpkg install --x-feature=foo

How would I use a command line argument to the vcpkg executable with the CMake toolchain?

See here

Ah, thanks. That would satisfy my use case. Sorry for the noise.


ruff

Pull Request Test Coverage Report for Build<PHONE_NUMBER>8
Details

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 80.048%

Totals

Change from base Build<PHONE_NUMBER>8:
0.0%

Covered Lines:
1990

Relevant Lines:
2486

💛  - Coveralls


Issue 479 - Filter out Outposts

Addresses #479
I have no way of confirming if 210 and 220 are the only required engineCode to ignore but they seem to reflect Outpost running of MySQL and PostgreSQL
Have built and confirmed this resolves the issues reported there - diff of old and new instances.json makes sense.
(there are plenty of errors reported as in other PRs due to unknown sku)

Thanks for your contribution!

Thanks for the quick merge :)


component-navigation: Refactored google-search and background icons.

This commit brings some major and breaking changes:

The controller (open and close) for the google-search component, is extracted into this component
The icons for the login and search button are now background images
All of the items in the navigation bar are now correctly aligned at the middle

Depends on https://github.com/economist-components/component-google-search/pull/11
and https://github.com/economist-components/component-icon/pull/28

@fabiosantoscode You may want to have a look too :blush:

This needs a rebase, also please look at our commit message format guidelines and please change the commits to reflect this :smile:

@keithamus Uh sorry, I didn't know about it. I'll get it done :blush:

Rebased :blush:

@gcedo I'm happy with merging this - but you've put [DO NOT MERGE] in the title. Can I merge still?

@keithamus I was waiting for https://github.com/economist-components/component-balloon/pull/10 to be merged. Also, I noticed I forgot to update the dependencies for component-google-navigation and component-balloon. I would wait for both packages to be published, update the dependencies and then merge. Or you reckon this can be done now anyway?


validate sns message body

Add validation for message, if not a validate message, we will replace the message with error message
Separate from https://github.com/prometheus/alertmanager/pull/2808

The code could use strings.ToValidUTF8 to eliminate invalid UTF-8 byte sequence rather than dropping everything.

I wonder which will be better in case of user experience. The subject is replaced by some "error" alerting your subject is invalid VS the subject is changed without your notice
On the other hand https://pkg.go.dev/strings#ToValidUTF8 can also return you an empty string as described here: "ToValidUTF8 returns a copy of the string s with each run of invalid UTF-8 byte sequences replaced by the replacement string, which may be empty."

My opinion is dropping everything is safer option because it will be very obvious to the receiver that something is wrong. For example, in the case where message body is a JSON, replacing the whole body would choke the receiver's JSON parser - a very clear signal something is wrong; if we replace invalid character, then the JSON parsing would succeed but the receiver consumes incomplete information (imagine we replace a invalid "0", in someone's bank account).
However, I do think there are cases where replacing invalid character would be the right thing, but by default I feel we should go with the safest behaviour. In the future, we can have configuration options to let users configure different behaviour upon invalid SNS message body.

in prometheus we generally drop when there is an error rather than potentially misleading the users, I think I prefer to have the explicit error as well.

Thanks @roidelapluie for your comments. I wonder if everybody is okay with current approach, can i get approved for this PR?
Thank you so much
Yijie


Acoustics: Associating sensor tag data with a single Event

So our choices for Event to associate sensor tag results (in EMoF) are the receiver deployment Event, as it's that receiver that stores the information, or the tag release Event, that has the calibration and configuration for the instrument that made the measurement.
I think we landed on using the receiver in the workshop, but I see a strong case for having it be associated with the tag, especially if the animal Occurrence is also linked to it, and that Occurrence then provides the location information that we would have relied on the receiver for otherwise.
Any thoughts?

I'm all for keeping the schemas well-aligned between acoustic and GPS datasets. Currently when I'm designing datasets to publish to OBIS they're grouped by tagging effort and external receiver array datasets are included as needed, so this philosophy aligns with my current ideas about publishing datasets to OBIS generally.


feat: add event config

Extracts the upcoming events from the HTML template into a config file.
This is a temporary solution until a proper calendar integration is in place to fully automate event display.

#12 is a better way to implement this on top of the changes made in #10


JRuby support

Jruby 1.6.4 has now added support for the ruby coverage library as seen in this closed issue ( https://jira.codehaus.org/browse/JRUBY-5935 ). When I tried simplecov when running my rspecs, at the end of the run when it is calculating the coverage, I got the following error:
SystemStackError: stack level too deep
eval at org/jruby/RubyKernel.java:1093
result at /home/ray/Perforce/ray_ray-desktop/ThirdParty/jruby/jruby-1.6.4/lib/ruby/1.9/erb.rb:753
formatted_file_list at /home/ray/Perforce/ray_ray-desktop/ThirdParty/jruby/jruby-1.6.4/lib/ruby/gems/1.8/gems/simplecov-html-0.5.3/lib/simplecov-html.rb:53
result at (erb):30
eval at org/jruby/RubyKernel.java:1093
result at /home/ray/Perforce/ray_ray-desktop/ThirdParty/jruby/jruby-1.6.4/lib/ruby/1.9/erb.rb:753
format at /home/ray/Perforce/ray_ray-desktop/ThirdParty/jruby/jruby-1.6.4/lib/ruby/gems/1.8/gems/simplecov-html-0.5.3/lib/simplecov-html.rb:19
open at org/jruby/RubyIO.java:1111
format at /home/ray/Perforce/ray_ray-desktop/ThirdParty/jruby/jruby-1.6.4/lib/ruby/gems/1.8/gems/simplecov-html-0.5.3/lib/simplecov-html.rb:18
format! at /home/ray/Perforce/ray_ray-desktop/ThirdParty/jruby/jruby-1.6.4/lib/ruby/gems/1.8/gems/simplecov-0.5.3/lib/simplecov/result.rb:90
at_exit at /home/ray/Perforce/ray_ray-desktop/ThirdParty/jruby/jruby-1.6.4/lib/ruby/gems/1.8/gems/simplecov-0.5.3/lib/simplecov/configuration.rb:133
call at org/jruby/RubyProc.java:262
(root) at /home/ray/Perforce/ray_ray-desktop/ThirdParty/jruby/jruby-1.6.4/lib/ruby/gems/1.8/gems/simplecov-0.5.3/lib/simplecov/defaults.rb:42
I was able to solve this issue by removing the jruby_float_fix.rb file. After this I am able to run rspec with simplecov and get a coverage report generated. Only problem now is that the coverage report is reporting 100% coverage for everything, and I know that is not true, esp when I run only one of my spec files. I'll gladly work with you to get this working as this is high priority for us, and I cannot find any other coverage tool out there that works for jruby and 1.9. Also one more issues is that for any view that is rendered, I get this error, but only when I start simplecov:
 Failure/Error: Unable to find matching line from backtrace
 ActionView::Template::Error:
   -1
 # org.jruby.ext.coverage.CoverageData$1.eventHandler(CoverageData.java:55)
 # org.jruby.runtime.EventHook.event(EventHook.java:30)
 # org.jruby.Ruby.callEventHooks(Ruby.java:2647)
 # org.jruby.evaluator.ASTInterpreter.callTraceFunction(ASTInterpreter.java:214)
 # org.jruby.ast.NewlineNode.interpret(NewlineNode.java:100)
 # org.jruby.ast.RootNode.interpret(RootNode.java:129)
 # org.jruby.evaluator.ASTInterpreter.INTERPRET_EVAL(ASTInterpreter.java:96)
 # org.jruby.evaluator.ASTInterpreter.evalSimple(ASTInterpreter.java:198)
 # org.jruby.RubyBasicObject.evalUnder(RubyBasicObject.java:1934)
 # org.jruby.RubyBasicObject.specificEval(RubyBasicObject.java:1913)
 # org.jruby.RubyModule.module_eval(RubyModule.java:2233)
 # org.jruby.RubyModule$i$module_eval_DBG.call(RubyModule$i$module_eval_DBG.gen:65535)
 # org.jruby.internal.runtime.methods.JavaMethod$JavaMethodZeroOrOneOrTwoOrThreeOrNBlock.call(JavaMethod.java:300)

.......

Thanks for looking into this! Back when initial 1.9 support arrived in JRuby 1.6 RC1, I had a look into this but then realized the Coverage library was not included yet. I've removed the jruby_float_fix in the new release 0.5.4, so at least this obstacle is out of the way.
I currently don't really have time to dig further into this, but I'd gladly merge any pull requests that lead to JRuby support. From what you've explained it seems to me as if the Coverage library in JRuby needs to be brought to full compatibility with MRI's one. Working around this in SimpleCov might be possible, but I think this is something the Ruby impl needs to supply.

@headius Has recently further investigated this and noted his findings in JRuby's bugtracker. Seems this isn't going to happen any time soon. Keeping this open though as a reminder to follow eventual new developments on that.
See: http://jira.codehaus.org/browse/JRUBY-6106

+1
The "exceeds number of lines" warning is being printed to stdout 3 times per view file.
jruby-1.7.22
rails (<IP_ADDRESS>)
rspec (3.4.0)
simplecov (0.11.2)
ERB, not HAML

@betesh Last comment is from over two years ago. Please open a new issue. In that issue, please mention if you're attended to the JRUBY_OPTS recommendations.

I could open a new issue, but it would just link back to this one, as this one has all the details.  Not sure what the benefit is of opening a new issue for the same problem.  Was this issue partially solved?

please mention if you're attended to the JRUBY_OPTS recommendations.

When I use JRUBY_OPTS=--debug, I do not get the warning warning: tracing (e.g. set_trace_func) will not capture all events without --debug flag warning, but I do get the exceeds number of lines warning 3 times per view file.


Use HashRing in Peerforwarder

Issue #, if available:
Contributes to #200
Description of changes:
Replace consistent hashing algorithm of IP address and traceId in Peerforwarder with HashRing.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

@wrijeff @kowshikn Switched hashing to MD5. Ready for another look.


feat(example): add public wall links retrieve example

Hey Denis,
Thanks a lot for this PR! We still really need some good examples. Let me do a quick code review of your example before it will be merged.


Remove redundant public modifier in Java interfaces

LGTM pending Travis.

Can one of the admins verify this patch?

LGTM


Multipart/form-data not handled

Hi I tried using the pipe file to body but I don't think that does exactly what I need to do. The options for the request that I am trying to test would have to look something like:
{ method: 'POST',
  url: 'http://localhost:9000/Path',
  headers:
   {authorization: 'Basic auth'}
  formData:
   { file:
      { value: 'fs.createReadStream(fileName)' }
   }
 }

@bialesdaniel - how about this:
    Scenario: should successfully pipe form parameters
        Given I set Authorization header to Basic abcd
        And I pipe contents of file ./test/features/fixtures/formparams to body
        When I POST to /post
        Then response code should be 200
        And response body path $.data should be a=a&b=b&c=c

The contents of ./test/features/fixtures/formparams is:
a=a&b=b&c=c

Sure I can try!

@bialesdaniel Any fixes for multipart form data?
I have tried storing the contents of the excel file as form value and calling the api....I get unsupported media type.........Inspite of setting content type header to multipart form data........while calling the api it is taking as applicaiton/json.

@bialesdaniel any update on this?

Sorry I lost track of this. I need to write tests for the code but Here is what I had (it was a long time ago so I can't remember if it was working or not)
Apickli.prototype.setFormData = function (formDataTable) {
  var self = this;
  var formDataObject = {};
  formDataTable.forEach(function (f) {
    var formDataName = self.replaceVariables(f.name);
    var formDataValue = self.replaceVariables(f.value);
    var formDataType = self.replaceVariables(f.type);
    if (formDataType.toLowerCase() === 'file') {
      formDataObject[formDataName] = fs.createReadStream(self.fixturesDirectory + formDataValue);
    } else {
      formDataObject[formDataName] = formDataValue;
    }
  });
  this.formData = formDataObject;
}

Then you just need this.formData ={} in the constructor and add formData:this.formData in the Apickli.prototype.post method. I'll see if I can get back to this in the next week or two.

Is multipart/form-data now being handled?

@bialesdaniel is the above code has been tested?

@sri-asb Sorry I lost the code I was working on. I never created the PR with the code and tests but I was using the code above for a while and it worked

I was able to create the following step definition we use now in our tests:
Given('I set file {string} as multipart form-data with mime-type {string}', function(fileName, mimeType, callback)
{
  this.apickli.addRequestHeader('Content-Type', 'multipart/form-data');
  if (fs.existsSync(fileName))
  {
    const formData = fs.readFileSync(fileName);
    this.apickli.httpRequestOptions.multipart = {
      chunked: false,
      data: [
        {
          body: formData, 'content-type': mimeType
        }]
    };
    callback();
  }
  else
  {
    callback(new Error(`File ${fileName} does not exist`));
  }
});

Hi guys, is there an actual working solution to this issue?


Socket Time Out Read Chroma + Get ALL

Error Socket time out , Socket closed
Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed: tech.amikos.chromadb.handler.ApiException: java.net.SocketTimeoutException: timeout] with root cause java.net.SocketException: Socket closed
my code :
@Override
    public Set<String> getExistingIds() throws ApiException {
        Client client = new Client(System.getenv("CHROMA_URL"));
        String apiKey = System.getenv("OPENAI_API_KEY");

        System.out.println(apiKey + " " + System.getenv("CHROMA_URL"));
        System.out.println(client);
        EmbeddingFunction ef = new OpenAIEmbeddingFunction(apiKey);
        System.out.println(ef);

        Collection collection = client.getCollection(collectionName, ef);
        List<Map<String, Object>> metaData = collection.get().getMetadatas();
        return metaData.stream().map(m -> m.get("id").toString()).collect(Collectors.toSet());
    }

With little data, it runs normally, but with a lot of data, you will encounter the same error

It might be some issue with a large number of results being processed by Okhttp lib. I'll reproduce and address it.

Thank you very much, I will wait

I think adding pagination support can be an excellent approach to this.

@ntd1683, I've added an API timeout which you can set using client.setTimeout(180).

I think it's okay, I'll wait for release new version, thank you very much

ok, I will wait, it will help me a lot

@ntd1683, all done. 0.1.5 is now released.

@ntd1683, did you manage to test this with a high enough timeout that worked?

it helped me a lot thanks


missing documentation for the change in Device class

The Device class documentation has not been updated after the addition of the new argument analytic.

This is specific to the default qubit subclass, isn't it?

Taking it to the new tutorials repository. we can just update the tutorials


Make it possible to test WebRequest

Although it is recommended that new code uses HttpClient instead of WebRequest, there are still some libraries that use WebRequest. It would be nice to be able to have similar functionality as for HttpClient.
A solution might be to use WebRequest.RegisterPrefix to register a TestableWebRequestCreator. This is a static method and there is no way to unregistered the creator, so this needs to be thought out very well.

Since Microsoft doesn't really support WebRequests anymore, and I myself don't really have a need for it anymore, I will not implement this.
If you are in need of this and are willing to provide a PR, I am happy to review it and pull it in. In that case, please reopen the issue.


[src] LibriMix from download

Instantiate LibriMix from download in one line.
Needs review and basic testing but it works on my side.

Looks greats ! You can merge 🚀


Universal Container Padding

Title says it all!

@jehollow Let's meet about this at some point. I'd like to roll all of the standardization of containers, headings, and paragraph tags into the base Bootstrap theme.

This will be closed by the base theme.


Added additional functions to the function picker

Added two new functions to the function picker, latest and median, and placed them within child containers to maintain UI. Also fixed a small typo in an error catch statement in nrdb-query

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

@danielgolden Thanks for the tips - I've updated to reflect your suggestions, and it looks ready to me. Cheers

Looks great, @jrhinehart! Thanks for taking the time to implement a change in an area where you saw in opportunity for improvement. We really appreciate it, man 👍 .

:tada: This PR is included in version 0.3.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


prepare 2.0 release

fix #110
fix #24

@gkorland Can we get this PR merged? If you have development dependencies, the usual approach is to include a second file, requirements-dev.txt, with just those.


CMOR Check error for  soil moisture (mrsos)  standard name in CMIP6 data

Is your feature request related to a problem? Please describe.
The standard name for soil moisture in the upper portion of soil column (mrsos) is defined as mass_content_of_water_in_soil_layer (https://github.com/PCMDI/cmip6-cmor-tables/blob/master/Tables/CMIP6_Lmon.json)  for CMIP6 data. In CMIP5 it is defined as moisture_content_of_water_in_soil_layer (https://github.com/PCMDI/cmip5-cmor-tables/blob/master/Tables/CMIP5_Lmon). The CF conventions table entry uses the former and specifies the latter as a valid alias (http://cfconventions.org/Data/cf-standard-names/66/build/cf-standard-name-table.html)
In the ESMValTool, the CMIP6 standard name produces a CMOR check error when loading this variable because it doesn not recgnize the name. Do we have a standard procedure for dealing with such aliases? I discovered this error when trying to use the UKESM1 data.
Would you be able to help out?
I can help implement the fix if am advised of the procedure to follow.

It looks like this is related to #950

Yes, I believe it is exactly the same issue.

Closing this then.


Strip control codes in error messages.

This is a follow-up to https://github.com/owais/django-webpack-loader/pull/39.
It looks like you were just missing stripAnsi in one location.

While we're there, I find it surprising to depend on a package which only provides a 60-char function and itself depends on another package which only provides an 80-char regex and manages to get it wrong (but not in a way that affects me). You're going through all this just to avoid implementing a one liner:
stripAnsi = message => message.replace(
    new RegExp('(?:\\x1b\\x5b|\\x9b)[\\x30-\\x3f]*[\\x20-\\x2f]*[\\x40-\\x7e]', 'g'), '')

I assume it makes sense from some perspective, but it just sent me on a wrong track for longer than I'm willing to admit :-(
Anyway, the fix above should suffice, so let's leave it there :-)

@aaugustin that's the node way.
If you think that module have a bug, well then open a bug or a PR, we you'll fix it on over a 100 other projects - to me that's way more powerful than an inline regex.

@SBoudrias I get the idea of packaging reusable modules; I was pointing out that there's a point of diminishing returns. In my opinion, packaging each line of code separately (like the ansi-* packages do) takes it too far.


Fixing wrong word spelling in api/client/network.go

There's a word spelling mistake in  api/client/network.go ,i fixed it .
Signed-off-by: Shuwei Hao<EMAIL_ADDRESS>

LGTM, thanks!

LGTM

LGTM :cat:

Thanks @haoshuwei :wink:
LGTM this time :stuck_out_tongue_closed_eyes:

yay LGMT LGTM


Found 0 newly paused isolate(s).

Updating files.
[ +675 ms] DevFS: Sync finished
[  +11 ms] Syncing files to device RMX1911... (completed in ٧٫٢s)
[  +56 ms] Synced 3.6MB.
[ +723 ms] <- accept
[   +5 ms] reloaded 21 of 1423 libraries
[ +406 ms] Reassembling application
[+2006 ms] This is taking a long time; will now check for paused isolates.
[ +998 ms] Found 0 newly paused isolate(s).
[+41574 ms] Ignoring terminal input: "r" because we are busy.

and then never accept any reload or restart command ...
this force me to kill the debug session and re-run the debug again ..
it happens after i updated flutter only yesterday ..

Hi @imeDevelopers
Can you please provide your flutter doctor -v, your flutter run --verbose and a minimal complete reproducible code sample?
Thank you

Without additional information, we are unfortunately not sure how to resolve this issue.
We are therefore reluctantly going to close this bug for now.
Please don't hesitate to comment on the bug if you have any more information for us; we will reopen it right away!
Thanks for your contribution.
Could everyone who still has this problem please file a new issue with the exact description of what happens, logs, and the output of flutter doctor -v.
All system setups can be slightly different, so it's always better to open new issues and reference related issues.


Add an option to stop WSTagsField from becoming scrollable

This is to prevent the WSTagsField from stealing touches from another UIScrollView when it's embedded in a scrollable view, such as a long form.
Apologies if I've missed a reason this wouldn't work.

@bellebethcooper Thank you for your contribution!


Add more descriptive text to assert_true and assert_false

Add a better message for the cmockery functions assert_true and assert_false
This change should make it easier to understand the error message directly from the output instead of having to go to the code to see what was the expected behavior

Thanks for the improvement.

Was there a test added for this change? Looks like the condition should be reversed for _assert_false() because right now, it's identical with _assert_true() but shouldn't they be opposite?
Here's what the code looks like right now:
void _assert_true(const LargestIntegralType result,
                  const char * const expression,
                  const char * const file, const int line) {
    if (!result) {   /* NOTE: same condition as below */
        print_error("%s\n", expression);
        print_error("expected '%s' to be true\n", expression);
        _fail(file, line);
    }
}

void _assert_false(const LargestIntegralType result,
                  const char * const expression,
                  const char * const file, const int line) {
    if (!result) {    /* NOTE: same condition as above */
        print_error("expected '%s' to be false\n", expression);
        _fail(file, line);
    }
}

Note that if result passed into _assert_false() is false, then !result is then true, and the if condition matches, and the test fails, which it should have succeeded.
Thoughts?


Mv3 review pr [do not merge] ⚠

See https://github.com/ipfs/ipfs-companion/issues/666 for context why are forced by Google to do this.

This pr is just so @lidel can do a review of the current state of the mv3 branch.
The current feature set was chosen in order to prove what functionality is possible with mv3 in chrome. It is by no means complete. We have a good baseline for the future.
Features:

notify user to reload page when dnslink or xipfspath header detected on first load
dnslink urls are added to declarativeNetRequest api rules
copy cid and sharable links with notifications
display peer count in popup
open options page from popup (placeholder)
on/off button in popup
dweb.link => localhost replacement rule via declarativeNetRequest (more sophisticated rules will be added eventually, they are a work in progress)

There is a quite a lot of unavoidable boilerplate in this pr, the main action happens in the following files:

.github/workflows/ci-mv3.yml (there was some conflict resolution here, so I apologize if any of your changes were lost here from the last review 😭
mv3/addon/lib/ipfs-companion.ts
mv3/addon/popup/index.tsx

After chatting with @whizzzkid, were going to go add mv3 version in a different way


Feature: complete input modifications

This is just a draft PR tracking progress towards getting input modification (deletion and addition) working. I'm working off head of #12 , and will rebase onto master when it's merged. So far I've just refactored some of the code in parser.rs and added a bit of documentation. Things that still need to be done before this is unmarked as a draft:

[ ] Find the name of the input selected by the user in the outputs function list.
[ ] Delete function name using kill_node_attribute.
[ ] File IO for replacing the current flake file with the dumped modified root node.
[ ] Node creation for input insertion.
[ ] The functions in parser.rs should have tests.

@DieracDelta can you rebase the feature branch against master?

Yup, rebased :+1:

You could also probably replace it with something similiar to the following, to avoid the vec allocation:
   let mut tmp = /* ... iterator stuff before .collect...() */;
   let nidx = tmp.next().expect("inconsistent");
   assert!(tmp.next().is_none(), "inconsistent");

Writing down a couple of thoughts before I forget:

A very messy input deletion (including function arguments) now works on the very very limited flakes I've tried it on.
Tests need to happen. I think property based testing makes a lot of sense, since a lot of this work is being done with trees. Should compound with general input tests. Perhaps https://github.com/BurntSushi/quickcheck, though I haven't looked into the alternatives.
The depth deletion should also delete whitespace, and the amount parameter should be split out into its own function. If rustc can do tail recursion optimizations, kill_node_attribute should be done recursively since it is tail recursive.
Input and Output structs in UserMetaData with impls that fetch the metadata would be cleaner. I'm not sure how best to represent the inputs, though. A hashmap doesn't seem like the best thing for the job.

Rust afaik, doesn't guarantee to eliminate tail calls: https://stackoverflow.com/questions/59257543/when-is-tail-recursion-guaranteed-in-rust
But imo rewriting a want-guaranteed-tail-calls into loop/while-form is rather easy in most cases.

Instead of returning Result<T, String> from functions, return anyhow::Result<T>. You can use the anyhow::bail!(...) macro to imitiate return Err(...) and anyhow::anyhow!() macro to create errors (eg. bail!("test error") will create an error with that message and return). UserAction::Error should also take an anyhow::Error instead of a String.

Ahh gotcha. Thanks, I'll go through and refactor the parser stuff to make use of that :+1:

Okay I've squished the remainder of the bugs. Deletion works and there are some tests for it. There's probably a better abstraction layer over kill_node_attribute, but I haven't figured it out yet. Perhaps we could copy rnix by passing in a filter lambda that decides whether or not the node or token should be deleted.
In any case I've out of scoped input insertion; let's move that to a separate issue. Similarly for property based testing. I'm going to clean up the code (and replace errors with anyhow) and mark this as ready to go.

@yusdacra to be clear, you mean using the UserAction enum's Error field to be Error(anyhow::Error)?

@yusdacra to be clear, you mean changing the UserAction enum's Error field to be Error(anyhow::Error)?

Yes.

Sounds good. This does lose us some of the derivable traits for UserAction (that aren't used anywhere), like Clone, Eq, PartialEq.


Dev env setup notes

If it's useful, I was able to get this running on macOS Monterey (x86) but hit a few issues that made it made it a bit discouraging to get started:

Install rust (maybe this was obvious but I'm new to rust)
Surface this note about installing wasm-pack in the main README.md. Other notes about this:

My machine isn't an M1, so this doesn't seem exclusive to M1s.
I was alternatively able to use npm install -g wasm-pack, and skip setting export MACOSX_DEPLOYMENT_TARGET=10.7. I don't know which is better.

I had some python issues with node-sass 7.0.1. I was able to resolve them by updating node-sass to 8.0.0 in packages/react/package.json, and export PYTHON=/usr/bin/python3. Not sure what the right solution here is.

Some error snippets for searchability by anyone else running into these issues.
Error from rush build when wasm-pack missing.
Error: spawn wasm-pack ENOENT
    at ChildProcess._handle.onexit (node:internal/child_process:283:19)
    at onErrorNT (node:internal/child_process:476:16)
    at process.processTicksAndRejections (node:internal/process/task_queues:82:21)
Emitted 'error' event on ChildProcess instance at:
    at ChildProcess._handle.onexit (node:internal/child_process:289:12)
  ...9 lines omitted...
    '--quiet',
    '--out-name',
    'toolkit',
    '--release',
    '--target',
    'web'
  ]
}

Error from rush install when node-sass has issues with python.
.../node_modules/node-sass postinstall$ node scripts/build.js
│ Building: /usr/local/bin/node<EMAIL_ADDRESS>rebuild --v
│ gyp info it worked if it ends with ok
│ gyp verb cli [
│ gyp verb cli   '/usr/local/bin/node',
│ gyp verb cli<EMAIL_ADDRESS>│ gyp verb cli   'rebuild',
│ gyp verb cli   '--verbose',
│ gyp verb cli   '--libsass_ext=',
│ gyp verb cli   '--libsass_cflags=',
│ gyp verb cli   '--libsass_ldflags=',
│ gyp verb cli   '--libsass_library='
│ gyp verb cli ]
│ gyp info using<EMAIL_ADDRESS>│ gyp info using<EMAIL_ADDRESS>| darwin | x64
│ gyp verb command rebuild []
│ gyp verb command clean []
│ gyp verb clean removing "build" directory
│ gyp verb command configure []
│ gyp verb find Python Python is not set from command line or npm configuration
│ gyp verb find Python Python is not set from environment variable PYTHON
│ gyp verb find Python checking if "python3" can be used
│ gyp verb find Python - executing "python3" to get executable path
│ gyp verb find Python - "python3" is not in PATH or produced an error
│ gyp verb find Python checking if "python" can be used
│ gyp verb find Python - executing "python" to get executable path
│ gyp verb find Python - "python" is not in PATH or produced an error
│ gyp ERR! find Python
│ gyp ERR! find Python Python is not set from command line or npm configuration
│ gyp ERR! find Python Python is not set from environment variable PYTHON
│ gyp ERR! find Python checking if "python3" can be used
│ gyp ERR! find Python - "python3" is not in PATH or produced an error
│ gyp ERR! find Python checking if "python" can be used
│ gyp ERR! find Python - "python" is not in PATH or produced an error
│ gyp ERR! find Python
│ gyp ERR! find Python **********************************************************
│ gyp ERR! find Python You need to install the latest version of Python.
│ gyp ERR! find Python Node-gyp should be able to find and use Python. If not,
│ gyp ERR! find Python you can try one of the following options:
│ gyp ERR! find Python - Use the switch --python="/path/to/pythonexecutable"
│ gyp ERR! find Python   (accepted by both node-gyp and npm)
│ gyp ERR! find Python - Set the environment variable PYTHON
│ gyp ERR! find Python - Set the npm configuration variable python:
│ gyp ERR! find Python   npm config set python "/path/to/pythonexecutable"
│ gyp ERR! find Python For more information consult the documentation at:
│ gyp ERR! find Python https://github.com/nodejs/node-gyp#installation
│ gyp ERR! find Python **********************************************************
│ gyp ERR! find Python
│ gyp ERR! configure error
│ gyp ERR! stack Error: Could not find any Python installation to use
│ gyp ERR! stack     at PythonFinder.fail<EMAIL_ADDRESS>│ gyp ERR! stack     at PythonFinder.runChecks<EMAIL_ADDRESS>│ gyp ERR! stack     at PythonFinder.<anonymous><EMAIL_ADDRESS>│ gyp ERR! stack     at PythonFinder.execFileCallback<EMAIL_ADDRESS>│ gyp ERR! stack     at exithandler (node:child_process:420:5)
│ gyp ERR! stack     at ChildProcess.errorhandler (node:child_process:432:5)
│ gyp ERR! stack     at ChildProcess.emit (node:events:513:28)
│ gyp ERR! stack     at ChildProcess._handle.onexit (node:internal/child_process:289:12)
│ gyp ERR! stack     at onErrorNT (node:internal/child_process:476:16)
│ gyp ERR! stack     at process.processTicksAndRejections (node:internal/process/task_queues:82:21)
│ gyp ERR! System Darwin 21.6.0
│ gyp ERR! command "/usr/local/bin/node"<EMAIL_ADDRESS>│ gyp ERR! cwd<EMAIL_ADDRESS>│ gyp ERR! node -v v18.12.1
│ gyp ERR! node-gyp -v v8.4.1
│ gyp ERR! not ok
│ Build failed with error code: 1
└─ Failed in 507ms at<EMAIL_ADDRESS> ELIFECYCLE  Command failed with exit code 1.

The command failed:
 /Users/ryan/src/c2pa-js/common/temp/pnpm-local/node_modules/.bin/pnpm install --store /Users/ryan/src/c2pa-js/common/temp/pnpm-store --config.cacheDir=/Users/ryan/src/c2pa-js/common/temp/pnpm-store --config.stateDir=/Users/ryan/src/c2pa-js/common/temp/pnpm-store --no-prefer-frozen-lockfile --strict-peer-dependencies --config.ignoreCompatibilityDb --recursive --link-workspace-packages false
ERROR: Error: The command failed with exit code 1

Giving up after 1 attempts

ERROR: The command failed with exit code 1

Thanks @ryprice - we will look into updating the documentation. Also we can see about eliminating node-sass from the dependency tree in React, optimally we don't want something that needs to bring in node-gyp due to complexities such as these.


Landing page - Light and Dark Theme

Anshul Mahajan

Hey, please provide a demo link

oh yeah okay

Here is the link:
http://xino-osm.byethost14.com
(free hosting, sorry)


Changed the navigation bar, aligned contents, added logo, same looks …

…in all sections.
images of previous model

…in all sections.

version after changes

@ParulPrashar pls mention your issue number.

@vivekvardhan2810 issue no. #39

@ParulPrashar pls resolve the conflicts.


Created FileSystemWatcherFactory class to to make it easier to test code...

... that needs to generate file system watchers
Sorry, I realized after I started integrating this into my project that I needed some testable way to generate file system watchers.
Not totally sure the MockFileSystemWatcher is useful, but i needed to create something for the MockFileSystemWatcherFactory to create.

@KallDrexx, we actually have an open issue for this currently (#167) if you have any desire to resolve the conflicts and work towards getting this merged. Otherwise we can try and take it over. Thanks for putting this together!

I just did a rebase and fixed the merge conflicts.  However, that's a lot of history to go through (especially going from a .net framework to dnf + dnc conversion) so I'd double check my work just in case.  All tests did pass for me though.

Woops removed Rider's .idea directory

Thanks for the response, @KallDrexx. Just wanted to pop in real quick to say I'm looking at this.

Sorry I just noticed the merge tool did some funkyness with the whitespace in some of the files.  I can normalize those instances in a few.

Thanks @KallDrexx 🎉

I would like to have a working FileSystemWatcher that reacts to changes made on the MockFileSystem as in SO question here.
/// create mock filesystem
var filesystem = new MockFileSystem();
filesystem.Directory.CreateDirectory(MyFolderPath);

/// create and start file watcher
var watcher = filesystem.FileSystemWatcher.CreateNew();
watcher.Path = MyFolderPath;
watcher.Filter = "*.*";
watcher.NotifyFilter = NotifyFilters.LastWrite | NotifyFilters.FileName;
watcher.Created += new FileSystemEventHandler(OnCreated);
watcher.EnableRaisingEvents = true;

/// create file to raise watcher event
filesystem.File.Create(MyFilepath); // does not raise event, OnCreated() is not called

What do I need to do additionally to make the watcher raise OnCreated? Alternatively, could you please provide a minimal but working FileSystemWatcher on MockFileSystem example?


Add viewConfig to RCTSlider Component, fix #10158

And check componet.viewConfig before call component.setNativeProps method.

cc @janicduplessis

https://github.com/facebook/react-native/issues/10158

@facebook-github-bot shipit


Load additional text preview on scroll

The text preview buffer should grow as the user scrolls to the bottom of the preview.

Closing as duplicate of #13.


Remove all .DS_Store files from every folder in your repo

For instance, https://github.com/dkangsimUA/kangsim_capstone/blob/main/function/.DS_Store

These files are automatically generated when using GitHub Desktop. When I fully transfer the files to PI's repo, I will remove these files as all scripts will be final.


refactor(connector-quorum): common interface invoke-contract

Resolve #610
Signed-off-by: AzaharaC<EMAIL_ADDRESS>

const thePath = path.join(__dirname, "../../../../solidity/hello-world-contract/HelloWorld.json");


Optional translation

Only changed "27 Bowdoin St" to "Calle Bowdoin 27", but it doesn't need it.
Changing the address to Spanish doesn't really make it any clearer and, say, if I were to send something to that address, I would have to do it using the address in the custom of the country to where I'm sending something. Your call!

Okay, if you also don't fancy translating the address, let's scrap it. :-) You can ignore my previous comments; I'll just omit merging in this PR and the previous ones related to postal addresses (56, 57, 60, and 61).
Thank you!

Good!
Note: There are some translated addresses that were merged from the
hacktober batch of PRs.
Question: Won't there be an issue if there's no block with the language id
for Spanish? Does it automatically revert to pulling the information from
the English block? Just curious...
Thanks!
On Mon, Dec 11, 2017 at 8:31 AM, Jan Lenoch<EMAIL_ADDRESS>wrote:

Okay, if you also don't fancy translating the address, let's scrap it. :-)
You can ignore my previous comments; I'll just omit merging in this PR and
the previous ones related to postal addresses (56, 57, 60, and 61).
Thank you!
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/Kentico/cloud-sample-app-react/pull/56#issuecomment-350740278,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AVmnvtBTIbBc7fcj7DKqeGdg9tz5Fi3Zks5s_TzGgaJpZM4Q8Xbs
.

Translation not needed. Closing.


Minor style changes around demo cards.

@eseidelGoogle This seems trivial enough, so I'm merging this, TBR=you, to unblock me.


GraphQL relationship with RDS Aurora

** Which Category is your question related to? **
GraphQL schema
** What AWS Services are you utilizing? **
Appsync
** Provide additional details e.g. code snippets **
What I wanna do is link the type into another type after generate the schema from RDS aurora serverless
Is there any way to do that or I need to create the resolver file by myself ?

@danielphung90 You can modify the annotated graphql schema located in amplify/backend/api<api-name>/schema.graphql to link the types.

Yes I did modify in schema.graphql do I need to manually create the resolver files? For each linkage?

@danielphung90 You can modify the annotated graphql schema located in amplify/backend/api<api-name>/schema.graphql to link the types.

yeah which I did. but my main concern is: is there anyway to generate the resolvers and stacks base on schema.graphql. because after I generate the schema by using amplify api add-graphql-datasource then all the relationship become id: Int! what I want to do is link them without any change at resolver and stack part

Yes I did modify in schema.graphql do I need to manually create the resolver files? For each linkage?

@danielphung90  Currently there is no support for automatic generation of the RDS resolvers after the schema has been edited with relationships (I presume this is what you mean by linking types to one another). You can however manually create your own resolvers to handle relationships.
In the meantime we do recognize the benefits of generating the resolvers to handle relationship and so we will treat this as a feature request.

What is the current status of this request?

@ashwindevendran, I've been scouring the internet looking for details of how to map connections for RDS in GraphQL + AppSync. I've added some [feedback|https://github.com/aws-amplify/docs/issues/2431] for the documentation which does not state that table relationships are not generated by the cli, even though the example includes customers with orders. It is rather confusing, and tbh what's the point in having a relational datastore if the relationships aren't honored in GraphQL! I think it would be AMAZING if the cli handled the relationships out of the box... because it's not clear how to set them up manually.


chore(master): release 1.1.5

:robot: I have created a release beep boop
1.1.5 (2023-06-20)
Miscellaneous

deps: update dependency wayofdev/cs-fixer-config to v1.2.15 (bd73aa4)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/wayofdev/laravel-symfony-serializer/releases/tag/v1.1.5 :sunflower:


SDCICD-1075 Created openshift template for e2e pipeline

What is being added?
Is this a fix for a bug?  What's the bug?  Is this a new feature? Please describe it. Is this just a small typo fix?  That's fine too!
openshift template file for e2e pipeline.
Required to run https://gitlab.cee.redhat.com/service/app-interface/-/merge_requests/79593/diffs#5ecda79722d7db492bbf4c48a3cfe70c6df9c996
Checklist before requesting review

[ ] I have tested this locally
[ ] I have included unit tests
[ ] I have updated any corresponding documentation

Steps To Manually Test
Please provide us steps to reproduce the scenarios needed to test this.  If an integration test is provided, let us know how to run it. If not, enumerate the steps to validate this does what it's supposed to.

Start the operator
Run the thing
Observe X in the spec for the thing
Clean up the thing

Ref   https://issues.redhat.com/browse/SDCICD-1075

Codecov Report

Merging #72 (d7bdfdc) into main (9773e7d) will not change coverage.
The diff coverage is n/a.

Additional details and impacted files

@@           Coverage Diff           @@
##             main      #72   +/-   ##
=======================================
  Coverage   51.83%   51.83%
=======================================
  Files           4        4
  Lines         218      218
=======================================
  Hits          113      113
  Misses         85       85
  Partials       20       20

/lgtm


Bump chart version to get ready for release

Bump the helm chart version

Codecov Report

Merging #23 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master      #23   +/-   ##
=======================================
  Coverage   92.08%   92.08%
=======================================
  Files           7        7
  Lines         139      139
=======================================
  Hits          128      128
  Misses          6        6
  Partials        5        5

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 376fb4a...45a1c3a. Read the comment docs.


Add hotspot metadata in uplinks

We will need to add hotspot name in our uplinks & join accepts so that Chirpstack can display it in LoRaWAN frames & Events.
https://github.com/chirpstack/chirpstack-gateway-bridge/blob/master/internal/backend/semtechudp/packets/push_data.go#L345

Will this mess up other UDP based ingestion if they don't parse for "meta"?

I don't think it should


fix(project): check the config parse error before upgradeWorker

check and throw the parse config errors

Thanks


Why no css file?

I see only a SCSS file - why not generate css ones for your dist folder?

Because CSS spritesheets don't allow customization and are offered by EmojiOne in the first place:
https://github.com/emojione/emojione/tree/2.2.7/assets/css
They come in 32, 128 and 512 sizes.

But not with a spritesheet as far as I understand? emojione-awesome is what I'm looking for, but don't like that each image is downloaded separately...

Sorry, wrong link. Looks like they only have 32px and SVG sprites available:
https://github.com/emojione/emojione/tree/2.2.7/assets/sprites
You can also produce CSS from the Sass mixin provided by this package.

We don't supply a CSS file because we don't make assumptions on how your HTML is organized.
You can generate the CSS file tailored to your needs using our Sass mixin.

We don't supply a CSS file because we don't make assumptions on how your HTML is organized which HTML size (or sizes!) you need, which retina scale factors you want to support and what path you're gonna serve the spritesheets from.
You can generate the CSS file tailored to your needs using our Sass mixin. If you don't use Sass in your webapp/site, you can do it by hand once.
PS Don't forget to star the repo. ;)