HOTFIX: log level should be ERROR for conflicting metric names

Call for review @guozhangwang @ijuma (nor sure if this should go to 0.11, too)

Is this really an error? Would this happen if there are multiple apps in the same process?

For Streams, it would be an error. We use unique IDs for all clients -- a naming conflict would prohibit correct metric reports and should never happen.

Is this really an error? Would this happen if there are multiple apps in the same process?

I think a more general question is that, would we require a different app info for different client / broker-id. If we assume broker-id / client-id should be unique, then such error should never happen since otherwise some clients will not be able to register this app information.

If this is truly an error, then why are we just logging instead of throwing the error back to the user?

Yeah I think throwing the exception is preferable if we have agreed that this should really be a fatal error.

@guozhangwang @ijuma Any conclusion about this? I can also just close the PR as we leave as-is. Or should we log as error and rethrow? From a user point of view, do people want to fail for this case?

I can see both pros and cons for re-throwing v.s. logging-as-error, depending on whether users would treat two clients sharing the same client id and hence some of them may not register this information as FATAL or not. I think we did not carefully discuss about this when adding this class originally.
I'd vote for catching-and re-throwing since we are doing this in JMXReporter as well, so it seems like we are treating it as a fatal error:
private void reregister(KafkaMbean mbean) {
        unregister(mbean);
        try {
            ManagementFactory.getPlatformMBeanServer().registerMBean(mbean, mbean.name());
        } catch (JMException e) {
            throw new KafkaException("Error registering mbean " + mbean.name(), e);
        }
    }

If we change the behavior to throw, do we need a proper JIRA?

Yeah we can create a JIRA for it.
On Wed, Jul 5, 2017 at 5:42 PM, Matthias J. Sax<EMAIL_ADDRESS>wrote:

If we change the behavior to throw, do we need a proper JIRA?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/apache/kafka/pull/3328#issuecomment-313264221, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AKO4fUGpBKqtp2wxoLUlGU3aUldKzsPFks5sLC1sgaJpZM4N5L2K
.

--
-- Guozhang

Created JIRA, updated PR title, and PR itself

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/kafka-pr-jdk7-scala2.11/5908/
Test FAILed (JDK 7 and Scala 2.11).

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/kafka-pr-jdk8-scala2.12/5893/
Test FAILed (JDK 8 and Scala 2.12).

Unit test failures are relevant. cc @mjsax

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/kafka-pr-jdk7-scala2.11/5916/
Test FAILed (JDK 7 and Scala 2.11).

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/kafka-pr-jdk8-scala2.12/5901/
Test FAILed (JDK 8 and Scala 2.12).

Retest this please.

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/kafka-pr-jdk7-scala2.11/5979/
Test FAILed (JDK 7 and Scala 2.11).

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/kafka-pr-jdk8-scala2.12/5964/
Test FAILed (JDK 8 and Scala 2.12).

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/kafka-pr-jdk7-scala2.11/5998/
Test FAILed (JDK 7 and Scala 2.11).

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/kafka-pr-jdk8-scala2.12/5983/
Test FAILed (JDK 8 and Scala 2.12).

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/kafka-pr-jdk7-scala2.11/6000/
Test FAILed (JDK 7 and Scala 2.11).

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/kafka-pr-jdk8-scala2.12/5985/
Test FAILed (JDK 8 and Scala 2.12).

Updated this. Call for review @guozhangwang @dguy @ijuma

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/kafka-pr-jdk7-scala2.11/6020/
Test FAILed (JDK 7 and Scala 2.11).

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/kafka-pr-jdk8-scala2.12/6005/
Test FAILed (JDK 8 and Scala 2.12).

Are the failures related?

I doubt it. It's weird error message to begin with. Not idea what it actually means... Have see it once before on this PR. Any insights from anybody?

Retest this please.

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/kafka-pr-jdk7-scala2.11/6030/
Test PASSed (JDK 7 and Scala 2.11).

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/kafka-pr-jdk8-scala2.12/6015/
Test PASSed (JDK 8 and Scala 2.12).

Tests passed. Should we run system test for this?

@mjsax yeah let's do that just in case there are some "illegal" client ids in the system tests.

Test triggered: https://jenkins.confluent.io/job/system-test-kafka-branch-builder/972/

System tests passed. Call for review and merging @guozhangwang @ijuma

Updated (removed the non-intended comments).

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/kafka-pr-jdk7-scala2.11/6127/
Test PASSed (JDK 7 and Scala 2.11).

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/kafka-pr-jdk8-scala2.12/6112/
Test FAILed (JDK 8 and Scala 2.12).

If we go with throwing exception solution how do we deal with quota as it is based on client.id? It is likely for users to have multiple threads running in the same JVM sharing the same client.id

This PR is blocked by https://issues.apache.org/jira/browse/KAFKA-5603 now.
DO NOT MERGE
@xiaotao183 Thanks for your comment. I understand your concern. Maybe, quotas need to be revised for this case to allow a more flexible quota assignment to multiple clients as a group (but I am not familiar with the details.) @guozhangwang @ijuma Can you comment on this?

@ijuma Hmm.. I think even with the current JMXReporter behavior having multiple clients within the same JVM will not be a recommended way, since the
    reregister(KafkaMbean mbean) {
        unregister(mbean);
        try {
            ManagementFactory.getPlatformMBeanServer().registerMBean(mbean, mbean.name());
        } catch (JMException e) {
            throw new KafkaException("Error registering mbean " + mbean.name(), e);
        }
    }

pattern is still bad if there are indeed two clients starting at the same time within the JVM, as one client will eventually "win over" the other to register its metrics and the other client will not be able to register any. This is not a desired result.
As for this PR, we can make its behavior similar to JmxReporter with a unregister-reregister pattern but like I said, in general we should not recommend users to use multiple client objects with the same id within JVM.
@xiaotao183 having multiple threads running in the same JVM sharing a single client object with the client id is OK (note that for supporting quotas on client.id users can always use the same id for client processes across different JVM / even machines); BUT sharing multiple client objects (the scenarios that are happening in some of the unit tests we are fixing here) with the same client id is never an recommended manner as it have multiple issues: besides the metrics mess-up mentioned above, broker also rely on the client-ids in its request log for uniquely identifying who send me what request at which time for trouble shooting, and if multiple clients within the same JVM use the same id that would be a debug nightmare if there are any operation issues.

@guozhangwang Your suggestion makes perfect sense to me but due to the thread safety nature of KafkaConsumer we cannot have more than one thread sharing the same consumer object. Instead, we need to create different instances in the same JVM. This is the same pattern adopted by most of the streaming framework, like Storm and Flink. Even though they may be end up in different JVMs when running in cluster mode but at lease this is not the case for local mini cluster mode

@guozhangwang, to be clear, I didn't take a stand on whether we recommend multiple clients with the same client id in the same JVM. I was simply pointing out that we are making a backwards incompatible change in this PR and that would require a KIP.
With regards to the JmxReporter, you will have the metrics for a single client, but that may not matter for people who use custom metric reporters.
With regards to the broker logging, it's not clear to me that there's any difference between multiple clients with the same client id in the same JVM versus different JVMs in the same machine. In both cases, the client port will differ and the rest will be the same. What am I missing?

@xiaotao183 I understand that since KafkaConsumer is not thread safe, and just as we suggested in the javadocs users can do either One Consumer Per Thread or Decouple Consumption and Processing. However, with the one consumer per thread case, it is still not a recommended pattern to make different consumer instances sharing the same clientId due to the reasons I mentioned above. In fact, in KIP-55 we have worked on using a "user id" to extend the client id for quotas (i.e. quotas can be set at <user, client-id>, user or client-id levels, though the latter cases are for compatibility mainly and the recommended way is to use user principal).
@ijuma Regarding if the KIP is needed or not, here is my reasoning: if we change this PR to be the same behavior of the JmxReporter, i.e. unregsiter-reregister, then from user's pov it is the same as the current behavior of log-error-and-giveup, since in either case only one of the clients having the same clientid will succeed in registering its app info. With this regard, I think we do not need a KIP.
Regarding the client-id conflicts, yes I'm only talking about the issue for JmxReporter, but even for user customized metrics reporter with the same client-id it will be hard if not impossible to try to distinguish these two client metrics since all the information we have are the common configs which only include client-id=[clientId], metric group name=producer and there are no additional tags.
And what I meant regarding the broker-side logs: I think we have three scenarios 1) if there are clients with the same id residing in different JVM from different host, then they are still distinguishable from host:port, 2) clients with the id residing in different JVM but on the same host, from broker logs they are from same host different port but since port is just a random number it is still hard to distinguish, but hopefully on client-side logs these two JVMs will write to different log4j files so by looking at different file's entry timestamp we may still have a clue; 3) clients with the same id sitting in the same JVM, it is basically impossible to distinguish them. Overall like I mentioned before letting different client instances to share the same client id should not be a recommended operation in any patterns,

@guozhangwang sure, if you change the PR so that it no longer throws then no KIP is needed.
Regarding scenario 3, it's straightforward to configure a separate logger per client and the ports will be different, so it's just like scenario 2.

I should replace "straightforward" with "possible" in my previous sentence. It would probably require the usage of classloaders.


Cannot uninstall extension on WSL

Type: Bug
I cannot not uninstall extensions in WSL. The uninstalled extension comes back after reloading the window. There are two cases.
The extension is not deprecated
By following the steps below, I can uninstall the extension.

Click uninstall on the extension's page.
DO NOT reload the window.
Click install to re-install the extension.
Click uninstall again.
The extension uninstalls sucessfuly.

The second step is important. The extension will not be uninstalled successfully if I reload the windows before reinstall the extension.
The extension is deprecated
Because we cannot install deprecated extension, there is no workaround to uninstall the extension.
Other information
There is the same problem on Stackoverflow: Completely uninstall VS Code extensions in WSL. The person who asked the question removed the extension from the folder storing the extension to uninstall the extension.

F1 > Set Log Level... > Trace
Uninstall the extension
Share the log - F1 > Open View... > Remote Server

Here is the output.
2023-01-03 20:54:32.549 [trace] ExtensionManagementService#uninstall slevesque.vscode-hexdump
2023-01-03 20:54:32.551 [info] Uninstalling extension from the profile<EMAIL_ADDRESS>file:///home/Ivana/.vscode-server/data/User/extensions.json
2023-01-03 20:54:32.552 [trace] Started scanning user extensions {"$mid":1,"fsPath":"/home/Ivana/.vscode-server/data/User/extensions.json","external":"file:///home/Ivana/.vscode-server/data/User/extensions.json","path":"/home/Ivana/.vscode-server/data/User/extensions.json","scheme":"file"}
2023-01-03 20:54:32.708 [trace] Scanned user extensions: 46
2023-01-03 20:54:32.740 [trace] [File Watcher (node.js)] [raw] ["change"] extensions.json
2023-01-03 20:54:32.740 [trace] [File Watcher (node.js)] [CHANGED] /home/Ivana/.vscode-server/data/User/extensions.json
2023-01-03 20:54:32.740 [trace] [File Watcher (node.js)] [raw] ["change"] extensions.json
2023-01-03 20:54:32.741 [trace] [File Watcher (node.js)] [CHANGED] /home/Ivana/.vscode-server/data/User/extensions.json
2023-01-03 20:54:32.742 [trace] [File Watcher (node.js)] [raw] ["change"] extensions.json
2023-01-03 20:54:32.742 [trace] [File Watcher (node.js)] [CHANGED] /home/Ivana/.vscode-server/data/User/extensions.json
2023-01-03 20:54:32.742 [trace] [File Watcher (node.js)] [raw] ["change"] extensions.json
2023-01-03 20:54:32.742 [trace] [File Watcher (node.js)] [CHANGED] /home/Ivana/.vscode-server/data/User/extensions.json
2023-01-03 20:54:32.757 [debug] Writing language packs {"zh-tw":{"hash":"9e0b6b6ee0edfeeacf3daa2296bae40a","extensions":[{"extensionIdentifier":{"id":"ms-ceintl.vscode-language-pack-zh-hant","uuid":"64d05954-748a-433f-ba3e-edba0227e28e"},"version":"1.74.12140936"}],"translations":{"vscode":"/home/Ivana/.vscode-server/extensions/ms-ceintl.vscode-language-pack-zh-hant-1.74.12140936/translations/main.i18n.json","ms-vscode.js-debug":"/home/Ivana/.vscode-server/extensions/ms-ceintl.vscode-language-pack-zh-hant-1.74.12140936/translations/extensions/ms-vscode.js-debug.i18n.json","vscode.bat":"/home/Ivana/.vscode-server/extensions/ms-ceintl.vscode-language-pack-zh-hant-1.74.12140936/translations/extensions/vscode.bat.i18n.json","vscode.builtin-notebook-renderers":"/home/Ivana/.vscode-server/extensions/ms-ceintl.vscode-language-pack-zh-hant-1.74.12140936/translations/extensions/vscode.builtin-notebook-renderers.i18n.json","vscode.clojure":"/home/Ivana/.vscode-server/extensions/ms-ceintl.vscode-language-pack-zh-hant-1.74.12140936/translations/extensions/vscode.clojure.i18n.json","vscode.coffeescript":"/home/Ivana/.vscode-server/extensions/ms-ceintl.vscode-language-pack-zh-hant-1.74.12140936/translations/extensions/vscode.coffeescript.i18n.json","vscode.configuration-editing":"/home/Ivana/.vscode-server/extensions/ms-ceintl.vscode-language-pack-zh-hant-1.74.12140936/translations/extensions/vscode.configuration-editing.i18n.json","vscode.cpp":"/home/Ivana/.vscode-server/extensions/ms-ceintl.vscode-language-pack-zh-hant-1.74.12140936/translations/extensions/vscode.cpp.i18n.json","vscode.csharp":"/home/Ivana/.vscode-server/extensions/ms-ceintl.vscode-language-pack-zh-hant-1.74.12140936/translations/extensions/vscode.csharp.i18n.json","vscode.css-language-features":"/home/Ivana/.vscode-server/extensions/ms-ceintl.vscode-language-pack-zh-hant-1.74.12140936/translations/extensions/vscode.css-language-features.i18n.json","vscode.css":"/home/Ivana/.vscode-server/extensions/ms-ceintl.vscode-language-pack-zh-hant-1.74.12140936/translations/extensions/vscode.css.i18n.json","vscode.dart":"/home/Ivana/.vscode-server/extensions/ms-ceintl.vscode-language-pack-zh-hant-1.74.12140936/translations/extensions/vscode.dart.i18n.json","vscode.debug-auto-launch":"/home/Ivana/.vscode-server/extensions/ms-ceintl.vscode-language-pack-zh-hant-1.74.12140936/translations/extensions/vscode.debug-auto-launch.i18n.json","vscode.debug-server-ready":"/home/Ivana/.vscode-server/extensions/ms-ceintl.vscode-language-pack-zh-hant-1.74.12140936/translations/extensions/vscode.debug-server-ready.i18n.json","vscode.diff":"/home/Ivana/.vscode-server/extensions/ms-ceintl.vscode-language-pack-zh-hant-1.74.12140936/translations/extensions/vscode.diff.i18n.json","vscode.docker":"/home/Ivana/.vscode-server/extensions/ms-ceintl.vscode-language-pack-zh-hant-1.74.12140936/translations/extensions/vscode.docker.i18n.json","vscode.emmet":"/home/Ivana/.vscode-server/extensions/ms-ceintl.vscode-language-pack-zh-hant-1.74.12140936/translations/extensions/vscode.emmet.i18n.json","vscode.extension-editing":"/home/Ivana/.vscode-server/extensions/ms-ceintl.vscode-language-pack-zh-hant-1.74.12140936/translations/extensions/vscode.extension-editing.i18n.json","vscode.fsharp":"/home/Ivana/.vscode-server/extensions/ms-ceintl.vscode-language-pack-zh-hant-1.74.12140936/translations/extensions/vscode.fsharp.i18n.json","vscode.git-base":"/home/Ivana/.vscode-server/extensions/ms-ceintl.vscode-language-pack-zh-hant-1.74.12140936/translations/extensions/vscode.git-base.i18n.json","vscode.git":"/home/Ivana/.vscode-server/extensions/ms-ceintl.vscode-language-pack-zh-hant-1.74.12140936/translations/extensions/vscode.git.i18n.json","vscode.github-authentication":"/home/Ivana/.vscode-server/extensions/ms-ceintl.vscode-language-pack-zh-hant-1.74.12140936/translations/extensions/vscode.github-authentication.i18n.json","vscode.github":"/home/Ivana/.vscode-server/extensions/ms-ceintl.vscode-language-pack-zh-hant-1.74.12140936/translations/extensions/vscode.github.i18n.json","vscode.go":"/home/Ivana/.vscode-server/extensions/ms-ceintl.vscode-language-pack-zh-hant-1.74.12140936/translations/extensions/vscode.go.i18n.json","vscode.groovy":"/home/Ivana/.vscode-server/extensions/ms-ceintl.vscode-language-pack-zh-hant-1.74.12140936/translations/extensions/vscode.groovy.i18n.json","vscode.grunt":"/home/Ivana/.vscode-server/extensions/ms-ceintl.vscode-language-pack-zh-hant-1.74.12140936/translations/extensions/vscode.grunt.i18n.json","vscode.gulp":"/home/Ivana/.vscode-server/extensions/ms-ceintl.vscode-language-pack-zh-hant-1.74.12140936/translations/extensions/vscode.gulp.i18n.json","vscode.handlebars":"/home/Ivana/.vscode-server/extensions/ms-ceintl.vscode-language-pack-zh-hant-1.74.12140936/translations/extensions/vscode.handlebars.i18n.json","vscode.hlsl":"/home/Ivana/.vscode-server/extensions/ms-ceintl.vscode-language-pack-zh-hant-1.74.12140936/translations/extensions/vscode.hlsl.i18n.json","vscode.html-language-features":"/home/Ivana/.vscode-server/extensions/ms-ceintl.vscode-language-pack-zh-hant-1.74.12140936/translations/extensions/vscode.html-language-features.i18n.json","vscode.html":"/home/Ivana/.vscode-server/extensions/ms-ceintl.vscode-language-pack-zh-hant-1.74.12140936/translations/extensions/vscode.html.i18n.json","vscode.ini":"/home/Ivana/.vscode-server/extensions/ms-ceintl.vscode-language-pack-zh-hant-1.74.12140936/translations/extensions/vscode.ini.i18n.json","vscode.ipynb":"/home/Ivana/.vscode-server/extensions/ms-ceintl.vscode-language-pack-zh-hant-1.74.12140936/translations/extensions/vscode.ipynb.i18n.json","vscode.jake":"/home/Ivana/.vscode-server/extensions/ms-ceintl.vscode-language-pack-zh-hant-1.74.12140936/translations/extensions/vscode.jake.i18n.json","vscode.java":"/home/Ivana/.vscode-server/extensions/ms-ceintl.vscode-language-pack-zh-hant-1.74.12140936/translations/extensions/vscode.java.i18n.json","vscode.javascript":"/home/Ivana/.vscode-server/extensions/ms-ceintl.vscode-language-pack-zh-hant-1.74.12140936/translations/extensions/vscode.javascript.i18n.json","vscode.json-language-features":"/home/Ivana/.vscode-server/extensions/ms-ceintl.vscode-language-pack-zh-hant-1.74.12140936/translations/extensions/vscode.json-language-features.i18n.json","vscode.json":"/home/Ivana/.vscode-server/extensions/ms-ceintl.vscode-language-pack-zh-hant-1.74.12140936/translations/extensions/vscode.json.i18n.json","vscode.julia":"/home/Ivana/.vscode-server/extensions/ms-ceintl.vscode-language-pack-zh-hant-1.74.12140936/translations/extensions/vscode.julia.i18n.json","vscode.latex":"/home/Ivana/.vscode-server/extensions/ms-ceintl.vscode-language-pack-zh-hant-1.74.12140936/translations/extensions/vscode.latex.i18n.json","vscode.less":"/home/Ivana/.vscode-server/extensions/ms-ceintl.vscode-language-pack-zh-hant-1.74.12140936/translations/extensions/vscode.less.i18n.json","vscode.log":"/home/Ivana/.vscode-server/extensions/ms-ceintl.vscode-language-pack-zh-hant-1.74.12140936/translations/extensions/vscode.log.i18n.json","vscode.lua":"/home/Ivana/.vscode-server/extensions/ms-ceintl.vscode-language-pack-zh-hant-1.74.12140936/translations/extensions/vscode.lua.i18n.json","vscode.make":"/home/Ivana/.vscode-server/extensions/ms-ceintl.vscode-language-pack-zh-hant-1.74.12140936/translations/extensions/vscode.make.i18n.json","vscode.markdown-language-features":"/home/Ivana/.vscode-server/extensions/ms-ceintl.vscode-language-pack-zh-hant-1.74.12140936/translations/extensions/vscode.markdown-language-features.i18n.json","vscode.markdown-math":"/home/Ivana/.vscode-server/extensions/ms-ceintl.vscode-language-pack-zh-hant-1.74.12140936/translations/extensions/vscode.markdown-math.i18n.json","vscode.markdown":"/home/Ivana/.vscode-server/extensions/ms-ceintl.vscode-language-pack-zh-hant-1.74.12140936/translations/extensions/vscode.markdown.i18n.json","vscode.media-preview":"/home/Ivana/.vscode-server/extensions/ms-ceintl.vscode-language-pack-zh-hant-1.74.12140936/translations/extensions/vscode.media-preview.i18n.json","vscode.merge-conflict":"/home/Ivana/.vscode-server/extensions/ms-ceintl.vscode-language-pack-zh-hant-1.74.12140936/translations/extensions/vscode.merge-conflict.i18n.json","vscode.microsoft-authentication":"/home/Ivana/.vscode-server/extensions/ms-ceintl.vscode-language-pack-zh-hant-1.74.12140936/translations/extensions/vscode.microsoft-authentication.i18n.json","vscode.npm":"/home/Ivana/.vscode-server/extensions/ms-ceintl.vscode-language-pack-zh-hant-1.74.12140936/translations/extensions/vscode.npm.i18n.json","vscode.objective-c":"/home/Ivana/.vscode-server/extensions/ms-ceintl.vscode-language-pack-zh-hant-1.74.12140936/translations/extensions/vscode.objective-c.i18n.json","vscode.perl":"/home/Ivana/.vscode-server/extensions/ms-ceintl.vscode-language-pack-zh-hant-1.74.12140936/translations/extensions/vscode.perl.i18n.json","vscode.php-language-features":"/home/Ivana/.vscode-server/extensions/ms-ceintl.vscode-language-pack-zh-hant-1.74.12140936/translations/extensions/vscode.php-language-features.i18n.json","vscode.php":"/home/Ivana/.vscode-server/extensions/ms-ceintl.vscode-language-pack-zh-hant-1.74.12140936/translations/extensions/vscode.php.i18n.json","vscode.powershell":"/home/Ivana/.vscode-server/extensions/ms-ceintl.vscode-language-pack-zh-hant-1.74.12140936/translations/extensions/vscode.powershell.i18n.json","vscode.pug":"/home/Ivana/.vscode-server/extensions/ms-ceintl.vscode-language-pack-zh-hant-1.74.12140936/translations/extensions/vscode.pug.i18n.json","vscode.python":"/home/Ivana/.vscode-server/extensions/ms-ceintl.vscode-language-pack-zh-hant-1.74.12140936/translations/extensions/vscode.python.i18n.json","vscode.r":"/home/Ivana/.vscode-server/extensions/ms-ceintl.vscode-language-pack-zh-hant-1.74.12140936/translations/extensions/vscode.r.i18n.json","vscode.razor":"/home/Ivana/.vscode-server/extensions/ms-ceintl.vscode-language-pack-zh-hant-1.74.12140936/translations/extensions/vscode.razor.i18n.json","vscode.references-view":"/home/Ivana/.vscode-server/extensions/ms-ceintl.vscode-language-pack-zh-hant-1.74.12140936/translations/extensions/vscode.references-view.i18n.json","vscode.restructuredtext":"/home/Ivana/.vscode-server/extensions/ms-ceintl.vscode-language-pack-zh-hant-1.74.12140936/translations/extensions/vscode.restructuredtext.i18n.json","vscode.ruby":"/home/Ivana/.vscode-server/extensions/ms-ceintl.vscode-language-pack-zh-hant-1.74.12140936/translations/extensions/vscode.ruby.i18n.json","vscode.rust":"/home/Ivana/.vscode-server/extensions/ms-ceintl.vscode-language-pack-zh-hant-1.74.12140936/translations/extensions/vscode.rust.i18n.json","vscode.scss":"/home/Ivana/.vscode-server/extensions/ms-ceintl.vscode-language-pack-zh-hant-1.74.12140936/translations/extensions/vscode.scss.i18n.json","vscode.search-result":"/home/Ivana/.vscode-server/extensions/ms-ceintl.vscode-language-pack-zh-hant-1.74.12140936/translations/extensions/vscode.search-result.i18n.json","vscode.shaderlab":"/home/Ivana/.vscode-server/extensions/ms-ceintl.vscode-language-pack-zh-hant-1.74.12140936/translations/extensions/vscode.shaderlab.i18n.json","vscode.shellscript":"/home/Ivana/.vscode-server/extensions/ms-ceintl.vscode-language-pack-zh-hant-1.74.12140936/translations/extensions/vscode.shellscript.i18n.json","vscode.simple-browser":"/home/Ivana/.vscode-server/extensions/ms-ceintl.vscode-language-pack-zh-hant-1.74.12140936/translations/extensions/vscode.simple-browser.i18n.json","vscode.sql":"/home/Ivana/.vscode-server/extensions/ms-ceintl.vscode-language-pack-zh-hant-1.74.12140936/translations/extensions/vscode.sql.i18n.json","vscode.swift":"/home/Ivana/.vscode-server/extensions/ms-ceintl.vscode-language-pack-zh-hant-1.74.12140936/translations/extensions/vscode.swift.i18n.json","vscode.theme-abyss":"/home/Ivana/.vscode-server/extensions/ms-ceintl.vscode-language-pack-zh-hant-1.74.12140936/translations/extensions/vscode.theme-abyss.i18n.json","vscode.theme-defaults":"/home/Ivana/.vscode-server/extensions/ms-ceintl.vscode-language-pack-zh-hant-1.74.12140936/translations/extensions/vscode.theme-defaults.i18n.json","vscode.theme-kimbie-dark":"/home/Ivana/.vscode-server/extensions/ms-ceintl.vscode-language-pack-zh-hant-1.74.12140936/translations/extensions/vscode.theme-kimbie-dark.i18n.json","vscode.theme-monokai-dimmed":"/home/Ivana/.vscode-server/extensions/ms-ceintl.vscode-language-pack-zh-hant-1.74.12140936/translations/extensions/vscode.theme-monokai-dimmed.i18n.json","vscode.theme-monokai":"/home/Ivana/.vscode-server/extensions/ms-ceintl.vscode-language-pack-zh-hant-1.74.12140936/translations/extensions/vscode.theme-monokai.i18n.json","vscode.theme-quietlight":"/home/Ivana/.vscode-server/extensions/ms-ceintl.vscode-language-pack-zh-hant-1.74.12140936/translations/extensions/vscode.theme-quietlight.i18n.json","vscode.theme-red":"/home/Ivana/.vscode-server/extensions/ms-ceintl.vscode-language-pack-zh-hant-1.74.12140936/translations/extensions/vscode.theme-red.i18n.json","vscode.theme-solarized-dark":"/home/Ivana/.vscode-server/extensions/ms-ceintl.vscode-language-pack-zh-hant-1.74.12140936/translations/extensions/vscode.theme-solarized-dark.i18n.json","vscode.theme-solarized-light":"/home/Ivana/.vscode-server/extensions/ms-ceintl.vscode-language-pack-zh-hant-1.74.12140936/translations/extensions/vscode.theme-solarized-light.i18n.json","vscode.theme-tomorrow-night-blue":"/home/Ivana/.vscode-server/extensions/ms-ceintl.vscode-language-pack-zh-hant-1.74.12140936/translations/extensions/vscode.theme-tomorrow-night-blue.i18n.json","vscode.typescript-language-features":"/home/Ivana/.vscode-server/extensions/ms-ceintl.vscode-language-pack-zh-hant-1.74.12140936/translations/extensions/vscode.typescript-language-features.i18n.json","vscode.typescript":"/home/Ivana/.vscode-server/extensions/ms-ceintl.vscode-language-pack-zh-hant-1.74.12140936/translations/extensions/vscode.typescript.i18n.json","vscode.vb":"/home/Ivana/.vscode-server/extensions/ms-ceintl.vscode-language-pack-zh-hant-1.74.12140936/translations/extensions/vscode.vb.i18n.json","vscode.vscode-theme-seti":"/home/Ivana/.vscode-server/extensions/ms-ceintl.vscode-language-pack-zh-hant-1.74.12140936/translations/extensions/vscode.vscode-theme-seti.i18n.json","vscode.xml":"/home/Ivana/.vscode-server/extensions/ms-ceintl.vscode-language-pack-zh-hant-1.74.12140936/translations/extensions/vscode.xml.i18n.json","vscode.yaml":"/home/Ivana/.vscode-server/extensions/ms-ceintl.vscode-language-pack-zh-hant-1.74.12140936/translations/extensions/vscode.yaml.i18n.json"},"label":"中文(繁體)"}}
2023-01-03 20:54:32.764 [trace] RequestService#request (node) - begin https://marketplace.visualstudio.com/_apis/public/gallery/publishers/slevesque/extensions/vscode-hexdump/1.8.1/stats?statType=uninstall
2023-01-03 20:54:32.764 [trace] resolveShellEnv(): running (macOS/Linux)
2023-01-03 20:54:32.793 [trace] [File Watcher (node.js)] >> normalized [CHANGED] /home/Ivana/.vscode-server/data/User/extensions.json
2023-01-03 20:54:32.795 [trace] [File Watcher (node.js)] >> normalized [CHANGED] /home/Ivana/.vscode-server/data/User/extensions.json
2023-01-03 20:54:33.008 [trace] RequestService#request (node) - success https://marketplace.visualstudio.com/_apis/public/gallery/publishers/slevesque/extensions/vscode-hexdump/1.8.1/stats?statType=uninstall
2023-01-03 20:54:33.008 [info] Successfully uninstalled extension from the profile<EMAIL_ADDRESS>file:///home/Ivana/.vscode-server/data/User/extensions.json

After uninstalling the extension, can you please check what are the content of this file file:///home/Ivana/.vscode-server/data/User/extensions.json ?

Nothing changed.

I met same problem (wsl2 ubuntu + vscode)
I found things in ~/.vscode-server/extensions do not change at all. So when you reload it all came back.
At now you may remove extension folder and reinstall. (the Python extension install too much sh*t)

@IvanaGyro I just tried and it works for me. Can you please try following steps and retry?

Quit VS Code
Delete the file .init-default-profile-extensions in the folder file:///home/Ivana/.vscode-server/extensions/
Delete the file file:///home/Ivana/.vscode-server/data/User/extensions.json
Open VS Code

@sandy081
After deleting the two files and reopening VS Code, the two files were automatically generated back. The two generated files are identical to the original ones. .init-default-profile-extensions was blank, and extensions.json listed my extensions.
I tried to uninstall a deprecated extension and a non-deprecated extension. Both were removed from extensions.json after uninstalling them and reloading VS Code. However, both extensions still showed in the installed extension list (the primary sidebar of extension)!

After deleting the two files and reopening VS Code, the two files were automatically generated back. The two generated files are identical to the original ones. .init-default-profile-extensions was blank, and extensions.json listed my extensions.

This is expected.

I tried to uninstall a deprecated extension and a non-deprecated extension. Both were removed from extensions.json after uninstalling them and reloading VS Code. However, both extensions still showed in the installed extension list (the primary sidebar of extensions)!

Can you please share a gif/video of what you are seeing?

This issue has been closed automatically because it needs more information and has not had recent activity. See also our issue reporting guidelines.
Happy Coding!

The situation is a little different from the situation two weeks ago.  I can uninstall non-deprecated extensions now, but not deprecated extensions. Both kinds of extensions will not show in extensions.json after uninstalling, but the deprecated extensions will be kept in the sidebar.
In the video below, I uninstalled two extensions, one is deprecated and the other is not.
https://user-images.githubusercontent.com/11438642/215795704-af52d7ef-cd75-48fe-b0e1-25382891c8c2.mp4
After uninstalling, I reopened VS Code. The deprecated extension showed in the sidebar again. Below is the recording after reloading.
https://user-images.githubusercontent.com/11438642/215797553-1f4f3a6a-298c-4d2f-a736-30ff00e1bc57.mp4

Can we reopen this issue? Last week was the Chinese new year holiday, so I didn't have time to update this issue. If it cannot be opened again, do I have to create another issue to trace this problem?

Can you please share the contents of file:///home/Ivana/.vscode-server/data/User/extensions.json file before and after uninstalling. And also after reloading the window.

GitHub does not let us upload .json file, so I add .txt after the filename.
Below is the original one. (I removed .init-default-profile-extensions and extensions.json and reload to generate this original extensions.json)
extensions-origin.json.txt
And I uninstalled justusadam.language-haskell and slevesque.vscode-hexdump. Only justusadam.language-haskell is removed. The result is the same as this comment, but is not the same as the earlier comments on 2023 Jan 3 and 2023 Jan 19
extensions-uninstalled.json.txt
Compared to extensions.json after uninstalling, it didn't change after reloading.
extensions-reload.json.txt

It seems slevesque.vscode-hexdump does not exist in the extensions.json file after uninstalling and also after reloading. I wonder what could be going wrong.
Can you please try with our latest insiders and see if you can repro the issue - https://code.visualstudio.com/insiders/

I installed the insider version. However, I cannot reproduce the problem because the deprecated extension can not be installed anymore. It will be ignored when synchronizing my settings. I can not get the deprecated extension on my host VS Code (Windows 11) and on my WSL VS Code.

You can install the deprecated extension by downloading it manually from VS Marketplace

Open the extension in VS Marketplace
Download the extension
Drag and Drop the extension into VS Code Insiders UI

I can uninstall the deprecated extension with insider version without problems.

Ok, good to know. Can you please update to the latest stable version 1.75.0 and check if you can still repro the issue?


android.os.TransactionTooLargeException

platform Android 10,level 29
api:
CropImage.activity(uri)
.setGuidelines(CropImageView.Guidelines.ON)
.setAspectRatio(1, 1)
.start(activity);
the same issue I find which is submit about 2018, and you says it resolved, but now, I get the same
issues, I do not thnow why? please help!

note:  api 'com.theartofdev.edmodo:android-image-cropper:2.8.+'

Hey!
I start a new project to handover this library
https://github.com/CanHub/Android-Image-Cropper
The ideia is that we keep improving because this project don’t have updates since 2018
Hope I can count with your help.
Open to contribute, next pieces of work will be Android 11 permissions, refactor into Kotlin and ActivityContract


When image_size is resized to [300, 300], where is corresponding bbox coordinates changing respectively in the code?

First, thanks very much for this implementation.
When we read the data from dataset, it comes with an image and its annotation (bbox). If used SSD300, the image size is resized to [300, 300]:
# taken from augmentations.py
class Resize(object):
    def __init__(self, size=300):
        self.size = size

    def __call__(self, image, boxes=None, labels=None):
        image = cv2.resize(image, (self.size,
                                 self.size))
        return image, boxes, labels

However, why boxes NOT changed accordingly?
Could you help me with this please?

The boxes are not changed accordingly because we are trying to learn to scale the boxes we predict to their actual dimensions.  You can see in the demo notebook that the predicted boxes are displayed on top of the original size image (not one that is scaled to 300x300).

@amdegroot I am sorry, still not get the idea. In my mind, during training you estimate the bbox and compare with ground truth. During testing, however, you estimate the bbox with the trained model, and scale it according to image size to get actual bbox.  You do not do such scaling during training to match with ground truth, dont you? any help really appreciated. Thanks.

Maybe I know what you mean.
Actually, once you got the relative bbox (values are between 0 and 1), you can keep the relative values fixed. When you need the actual bbox at some moments, just change them according to the image size at the same moment.
i,e.   when you change the actual image size, the relative bbox values don't change.  You can have try it.

@amdegroot I am sorry, still not get the idea. In my mind, during training you estimate the bbox and compare with ground truth. During testing, however, you estimate the bbox with the trained model, and scale it according to image size to get actual bbox. You do not do such scaling during training to match with ground truth, dont you? any help really appreciated. Thanks.

see https://github.com/amdegroot/ssd.pytorch/issues/61


Sharable rune primitives

Describe the feature in detail (code, mocks, or screenshots encouraged)
This is exactly the kind of library svelte needs right now. Especially with the introduction of the new runes API.
As the current utilities are already loosely based on vue primitives, are you planning to introduce base primitives that make it easier to sharing state between componentes and hooks / composables?
I am thinking about equivalents for ref and reactive (maybe computed) in the vue reactivity system.
What type of pull request would this be?
Enhancement
Provide relevant links or additional information.
https://vuejs.org/api/reactivity-core#ref
https://vuejs.org/api/reactivity-core#reactive
https://vuejs.org/api/reactivity-core#computed

We did have these before, but don't think they're needed. Check our internals to see how we make do without refs, reactive or computed :)


Allow custom host image

In this PR I added the ability to use a custom image to run the instance.
The main module now exports 3 more optional variables to configure:
host_os_image_project - The project of the image to run on the instance.
host_os_image_family - The image family of the container-optimized images to run on the instance.
host_os_image_name - The name of the container-optimized image to run on the instance.

@YegorUdovchenko PTAL.

I'm closing this PR because it turned out that there is no sense to do it right now. The reason is that custom images, unlike the cos images provided by Google, cannot automatically download containers from the private google container registry. Also, custom images don't start the containers automatically. So for customizing the image of the Liquor server, there should be a more complex solution.


[FEATURE] More Message Customization

Please add the config options to alter the help menu and the prefix seen before each message.

Prefix will be configurable in a future release

Another option is custom /help <plugin> instead of changing /<plugin> help


PP save

Not clear if there is serious work left here, after other factors are fixed (e.g. fill_value / mdi)
Otherwise, may be no direct dependency on lazy data implementation
Review later...
Acceptance:
See if there is anything to do here, and estimate
If there is work to do, the work itself will need estimating as a separate subsequent task

Tests skipped:
?

lib/iris/tests/test_cdm.py TestMaskedData.test_save_and_merge
Is still failing, which proves that this hasn't been done already

We expect to spend more time working on pp saving at a later stage:
Part of this work will need to address:
PR2453-comment

I'm now combining this with #2507 ...


how to play with websocket source?

I have a stream source in format "ws://cdn1-xxxxxxxx".
Can you tell me how to play this source using this player?

ReactPlayer just renders a <video> for playing files and stream URLs. If the browser doesn't natively support playing a websocket URL in a <video>, it won't play.
This looks like an interesting read: https://phoboslab.org/log/2013/09/html5-live-video-streaming-via-websockets


[5.2] migrate expired delayed jobs but not expired reserved jobs when expire is null

migrateAllExpiredJobs() can get deprecated.

Issue: #12595

Double check with a test.

Having the following configuration for Redis queue, no delayed job will ever get extracted from the delayed queue:
        'redis' => [
            'driver'     => 'redis',
            'connection' => 'default',
            'queue'      => 'default',
            'expire'     => null,
        ],

Should this be reopened?


Update build-tools compilation and minor changes

Signed-off-by: Shubham Sharma<EMAIL_ADDRESS>Description
While running e2e tests, we set up GOOS and GOARCH locally to match linux/amd64. This interferes with build tools compilation that just runs a go run .. I am on darwin/arm64 and I see the following:
fork/exec /var/folders/g0/3c007k8s5577w7csd7j2trcw0000gn/T/go-build3790960422/b001/exe/build-tools: exec format error

This change prefixes the go run command with the local GOOS and GOARCH, so that build-tools always builds in context of the local system.
Also a few minor changes 💄
Issue reference
None
Checklist
Please make sure you've  completed the relevant tasks for this PR, out of the following list:

[ ] Code compiles correctly
[ ] Created/updated tests
[ ] Unit tests passing
[ ] End-to-end tests passing
[ ] Extended the documentation / Created issue in the https://github.com/dapr/docs/ repo: dapr/docs#[issue number]
[ ] Specification has been updated / Created issue in the https://github.com/dapr/docs/ repo: dapr/docs#[issue number]
[ ] Provided sample for the feature / Created issue in the https://github.com/dapr/docs/ repo: dapr/docs#[issue number]

Thanks for catching this. My work environment was primarily Linux/amd64 and didn't think about this. There's a lot of work we need to do really allow users on ARM64 to run our E2E tests, but this is a good start.


Doing something like echo {} >> files doesn't work

It just prints out <file> >> files for each selected <file>, where you would expect the names would all be appended to a file.

Hopefully it fixes the issue.


Publisher-Electron-Release-Server: Asset Upload fails with 400 Bad Request (file size seems to be missing)

Preflight Checklist

[x] I have read the contribution documentation for this project.
[x] I agree to follow the code of conduct that this project follows, as appropriate.
[x] I have searched the issue tracker for a bug that matches the one I want to file, without success.

Issue Details

Electron Forge Version:

6.0.0-beta.54

Electron Version:

10.1.0

Operating System:

Arch Linux

Last Known Working Electron Forge version::

N/A

Expected Behavior
I setup an electron release server using the docker image from docker hub https://hub.docker.com/r/eoskin/electron-release-server. Now I tried publishing packages using the built-in electron-forge publisher.
I would expect that the upload works out of the box.
Actual Behavior
The server is throwing a 400 Bad Request when uploading the assets.
The server side validation fails because the file size is missing. I dug into the packages used on the server side quite a bit but I could not find an issue. Also the upload in the web interface works as expected.
According to the form-data library that is used in the electron forge publisher, it seems to be required that the file size is set explicitly using knownLength. They have a note in their readme saying: "getLengthSync() method DOESN'T calculate length for streams, use knownLength options as workaround." There is also an issue that seems to be related: https://github.com/form-data/form-data/issues/426
This is currently not done in the Publisher-Electron-Release-Server package.
To Reproduce
Setup an electron-release-server using the docker image and try publishing packages using electron-forge (I guess it should happen independent of the platform, etc., though I only tested it for linux zips right now.)
Additional Information
I'm actually a little puzzled that there is no issue created regarding that yet, since I cannot imagine that I am the only one having this problem. Sorry if I just overlooked something.
Nevertheless, I will submit a PR containing a workaround using the knownLength option, since this seems to be the way to go for now according to the form-data package. I also tested this out right now and it indeed fixes the issue for me.

The missing knownLength option may also affect other publishers as well but I did not check that.

Valid fix here #2088 but in conflict, if someone rebases it can land

Will do in the next days, thx @MarshallOfSound :)

Merged - thanks again for the bug report and fix, @monsterkrampe! 🙇♀

You're very welcome :)


1589 refactor all api calls where pagination is needed

Looking into a way to make this not needed

Not needed after removing global pagination with drf


Why can't the Windows Terminal tabs in elevated season drag and drop

The Question
Why can't the Windows Terminal tabs in elevated season drag and drop?

Thanks for the question! Please make sure to search for duplicates when filing new issues. This is already being tracked by another issue on our repo - please refer to #6661 for more discussion.
/dup #6661

Can anybody label this as 'Issue-Question'?


Delete image created as side effect to the bake and deploy test.

Adds mechanism to cleanup from tests.
Some lint fixes.
@lwander

LGTM


$data props is no longer available in created step in 1.0.18

In version 1.0.17, I've got some code where the child component accesses a prop passed down from the parent component during created. In 1.0.18, it no longer works. What happened? Is this a bug? Is this a bug fix?

new Vue
  el: "#parent"
  data: -> {value: 1}
  components:
    child:
      props: ['myProp']
      created: ->
        console.log @$data.myProp

This is an unintentional breaking change, you can read more here: https://github.com/vuejs/vue/issues/2520#issuecomment-199082346
Note that you can access props and data without $data. This should work in your case:
new Vue
  el: "#parent"
  data: -> {value: 1}
  components:
    child:
      props: ['myProp']
      created: ->
        console.log @myProp

Thanks @simplesmiler


Abstraction layer between trail and device

It would be very nice if we could configure and prepare a device completely without having to know on which trail it will be mounted.
To reach that goal we need to create an abstraction layer between the device id and the trail. (Currently the device id indicates the corresponding trail)
Such a logic could be implemented with the following structure:

every device has a unique id (this is already the case)
we create a table to specify all the trails
we create a connection table that describes which devices were mounted on which trail in a specific time range.

That would allow us to simplify the maintenance process by just replacing the old device with a new one and insert a new entry into the timelineConfig table.
Sorry 😅 I know it's not a relational database but this was the easiest way for me to describe what kind of behavior I would suggest.
Probably easier solution:
Another possibility would be to stamp the trail info into the dataset on the db when the data arrives. With that method we only need one lookup table to get the current "device->trail" association and the query could filter directly on the dataset and does not need to join different information.
I think I would prefer this method but it just came to my mind while I was writing this issue so I'll leave the original idea at the top.

We agreed on the simpler solution.

Done in #98


feat: add hello world in rust language

Thanks! Make sure to give the repository a star and share about it as well! You can tweet about the repository as well using the tweet badge on the Readme file or website!


Fix #3269 by logging detail when Service Manager can't find a bean

Fixes https://github.com/DSpace/DSpace/issues/3269 by raising the log level to WARN, including the BeanException as the cause, and raising the minimum log level for the servicemanager package to WARN rather than ERROR.

Thanks @cwilper ! Looks good to me too...merging.


bubble:0.2.1

I am submitting

[ ] a new package
[x] an update for a package

Description: Simple template, this update fixes a missing variable issue

[x] ensured that my package is licensed such that users can use and distribute the contents of its template directory without restriction, after modifying them through normal use.

Thanks!


[HIP][doc] Populate README.md with the supported CUDA APIs links

Just a gentle reminder.

@emankov Shall we redirect the links to respective github repos as well?

Shall we redirect the links to respective github repos - APIs other than plain HIP, such as hipBlas etc. ?

Do you mean redirect for review?

Ping


Add return to scroll depth

Please add scroll return function to return the user to their previous scroll depth when navigating back.
On page unload: if depth is greater than 500: save scroll position in local storage or cookie.
var scrollPos = document.getElementById('someDiv').scrollTop(); If(scrollPos > 500){ localStorage.setItem("scrollPos", scrollPos); }
On page load: scroll to position.
if(localStorage.scrollPos){ document.getElementById('someDiv').scrollTop(localStorage.scrollPos); }

I think this issue can be closed after a solution has been found


[google_maps_flutter] Avoid calling onMapCreated when already disposed

Fixes https://github.com/flutter/flutter/issues/73876
The following assertion fails if onMapCreated is called when a GoogleMap widget has already been disposed.
(from framework.dart)
bool _debugCheckStateIsActiveForAncestorLookup() {
  assert(() {
    if (_debugLifecycleState != _ElementLifecycle.active) {
      throw FlutterError.fromParts(<DiagnosticsNode>[
        ErrorSummary("Looking up a deactivated widget's ancestor is unsafe."),
        ErrorDescription(
          "At this point the state of the widget's element tree is no longer "
          'stable.'
        ),
        ErrorHint(
          "To safely refer to a widget's ancestor in its dispose() method, "
          'save a reference to the ancestor by calling dependOnInheritedWidgetOfExactType() '
          "in the widget's didChangeDependencies() method."
        ),
      ]);
    }
    return true;
  }());
  return true;
}

I tried to create a test, but I can't find how to test when a widget has been disposed. The best I could come up with was:
testWidgets('onMapCreated not called if disposed',
    (WidgetTester tester) async {
  var completer1 = Completer<GoogleMapController>();
  var completer2 = Completer<GoogleMapController>();

  final map1 = GoogleMap(
    initialCameraPosition: CameraPosition(target: LatLng(10.0, 15.0)),
    onMapCreated: (controller) => completer1.complete(controller),
  );

  var container = Directionality(
    textDirection: TextDirection.ltr,
    child: map1,
  );

  await tester.pumpWidget(
    container,
    null,
    EnginePhase.build,
  );

  container = Directionality(
    textDirection: TextDirection.ltr,
    child: GoogleMap(
      initialCameraPosition: CameraPosition(target: LatLng(10.0, 15.0)),
      onMapCreated: (controller) => completer2.complete(controller),
    ),
  );

  await tester.pumpWidget(container);
  await tester.pumpWidget(map1);

  expect(completer1.isCompleted, false);
  expect(completer2.isCompleted, true);
});

Pre-launch Checklist

[x] The title of the PR starts with the name of the plugin surrounded by square brackets, e.g. [shared_preferences]
[x] I read the Contributor Guide and followed the process outlined there for submitting PRs.
[x] I read the Tree Hygiene wiki page, which explains my responsibilities.
[x] I read and followed the Flutter Style Guide and the C++, Objective-C, Java style guides.
[x] I listed at least one issue that this PR fixes in the description above.
[ ] I added new tests to check the change I am making or feature I am adding, or Hixie said the PR is test exempt.
[x] I updated pubspec.yaml with an appropriate new version according to the pub versioning philosophy.
[x] I updated CHANGELOG.md to add a description of the change.
[x] I updated/added relevant documentation (doc comments with ///).
[x] I signed the CLA.
[x] All existing and new tests are passing.

If you need help, consider asking for advice on the #hackers-new channel on Discord.

Thanks for the submission! As explained in the contributing guide, all behavioral changes need tests. Please let us know when you’ve updated the PR with tests and we can take a look.
We apologize for the long delay in triaging this PR. We’re in the process of overhauling our PR triage system to respond much more quickly, as well as working through the backlog.

Thank you for your contribution. I'm going to close this PR for now since there are outstanding comments, just to get this off our PR review queue. Please don't hesitate to submit a new PR if you have the time to address the review comments. Thanks!


[Feature]: ADD DYNAMIC DAY/NIGHT THEME FOR DEVICE NAV BAR 💡

Description

The new feature is about adding theme colors for the navigational bars of devices (browser's theme are overriden)
The usage of providing a theme color in the meta tag for HTML allows you to define the color that will be used as the browser's theme color when a user visits your website. The theme color is displayed in the browser's UI elements such as the address bar, tabs, and task switcher.
Branding: You can use your brand's primary color or a color that aligns with your website's design to reinforce your brand identity. This can create a consistent and recognizable experience for users across different platforms.
User experience: By setting a theme color that matches your website's design, you can provide a cohesive and immersive user experience. The theme color can seamlessly integrate the browser UI with your website's color scheme, enhancing visual continuity.
Visual appeal: A well-chosen theme color can make your website stand out and make a positive impression on users. It adds a touch of personalization and professionalism to the browsing experience.
Accessibility: The theme color can also contribute to accessibility considerations. By selecting a color with sufficient contrast against the browser UI elements, you can improve readability and ensure that the UI remains legible for users with visual impairments.
The primary theme color of this site is two colors

#EFF6FF
#001229

The colors can be switched on the nav-bar like the body when switching the mode to light and dark

Screenshots (For example)

Checklist

[X] I have checked the existing issues
[X] I have read the [Contributing Guidelines]
[X] I have read the discussion tab thoroughly and got the project idea
[X] I am willing to work on this issue (optional)
[X] I am a GSSoC'23 contributor

Hey there @rohansx, @SiddhantPawar03. 👋🏻
Please make sure to assign this issue to me as soon possible so that i can make the work done!
Thank you.

Hey @Shikhar9425, who are you ?
Who gaved you the permission to proceed regarding this issue to make a PR ?
This is created by me for adding the theme for informatician site, But you're just adding a file regarding android.
You don't even what's the thing is mentioned in this issue, you're just creating random PR and referencing this issue.
Please close your PR as soon as possible, otherwise it will be closed by higher authorities!!

@Killer2-O Bro what are you saying ?
Then what i can ask to a person who creates a random PR which is not even related to this issue and referencing this issue to get closed and merged.
So that i asked 'Who are you', is asking this is harsh ?, to be honest asking who are you is harsh bro.
I'm not used any bad or irrelevant words here.
If anyone finds it harsh, I'm saying Sorry for them.


Web - Fix Remaining Follower/Following Related Issues

[x] Fix the styling of the follower and following modals
[x] Add the modals to the profile page.

We started making corrections to the followers and following models with @EgemenKaplan .
He dedicated valuable time to me and contributed to clarifying things in my mind.
Done:

The follower and following models were hard-coded due to my lack of experience.
I made efforts to correct them and implement more practical solutions.
I presented users in a list format.


Case insensitive LIKE operator in FilterConfig

Hi,
Is it possible to add a case insensitive LIKE operator to the Grid's filtering system? I noticed there is support for the standard operators, but there's no support for PostgreSQL's ILIKE operator.
I know it's a proprietary operator. In my case it wouldn't be a problem because I'm not planning to move away from PostgreSQL (and moving away in any case is not a simple thing). But if portability is an issue, is there a way to add custom operators to a filter, so the programmer can just specify whatever he would like?
I could do this:
$filter = new FilterConfig();
$filter->setOperator("ilike");
...

But the value itself won't get wrapped in % signs, so it wouldn't work like the LIKE operator.
Any thoughts?

Small workaround, though case insensitivity is so common it'd still be nice to have this, or a similar approach, in the code base.
This will return a ILIKE filter for the specified field:
function getFilterILike($name) {
  $filter = new FilterConfig();
  $filter->setName($name);
  $filter->setFilteringFunc(function($value, $dataProvider) use ($name) {
    if(!is_null($value) && !empty($value)) {
      $value = addcslashes($value, '_%\\');
      $value = "%$value%";
      $dataProvider->filter($name, "ilike", $value);
    }
  });
  return $filter;
}

(Note that the issue described in #94 is already fixed here)

Hi!
Thanx for reporting this issue.
It's possible to implement case insensitive like without usage of proprietary ILIKE:
WHERE LOWER(some_field_selector) LIKE LOWER('%value%')

Currently I'm not implementing new features in this repository, development moved to:
https://github.com/presentation-framework/presentation-framework
https://github.com/presentation-framework/grids
Also I created issue: https://github.com/presentation-framework/presentation-framework/issues/16
Currently you can continue using Filter::setFilteringFunc()  or implement your components with support of 'ilike'.
If you want to contribute, you are welcome, I will accept pull-request with approach that doesn't uses proprietary 'ilike' (as I described in SQL snippet above) in this repository or https://github.com/presentation-framework/presentation-framework (it's actually in pre-alpha state).

Thanks!
Ok for my current project I think I will continue to use setFilteringFunc. But I set the "watch" option to your new repo so I can track it for future projects. Maybe I can contribute there.


how to train

Hi, this repository is in progress. After finishing, I will make the README.
Thanks.


Don't use : to join host and port, use net.JoinHostAndPort, cause IPv6

What happen?

Relevant log output?
No response
What you expected to happen?
No response
How to reproduce it (as minimally and precisely as possible)?
No response
Anything else we need to know?
No response
What is the version of Sealer you using?
No response
What is your OS environment?
No response
What is the Kernel version?
No response
Other environment you want to tell us?

Cloud provider or hardware configuration:
Install tools:
Others:

https://github.com/sealerio/sealer/pull/1924 fixed this issue


Loading custom JavaScript files

Hi,
I'm trying to find if there is a way to load a custom JavaScript file in the head tag of the rails admin pages - I'm using Webpacker.
Thank you!

If you use webpacker, you should have app/javascript/packs/rails_admin.js in your app. You can add any scripts you want there.


Add Ruby 2.7 to build matrix

Also, use latest Ruby patch versions
Spec failure is fixed in https://github.com/rspec/rspec-rails/pull/2270

Grepped the following from https://travis-ci.org/rspec/rspec-rails/jobs/641857791 mostly.

Those commits were made before <IP_ADDRESS> was released, and are on master, but are not part of <IP_ADDRESS>:
https://github.com/rails/rails/commit/6d68bb5f695414b1801c1c3952ef955a5b0b6c6a
https://github.com/rails/rails/commit/2c66870726ce0f644a14f369b2b1bae78bd366e8
https://github.com/rails/rails/commit/352560308bc13b881efd6d062134a9a67102b204
https://github.com/rails/rails/commit/a9ac7a8ab8fcf965080bad3eb01254c42a4c27a0
https://github.com/rails/rails/commit/e1e7fd6c445774815a83d9e4981772f6ab859643
https://github.com/rails/rails/commit/f42f2862bb6a05a39e410349ae6ec7e069442e15
It makes sense to remind releasers to include it to the next release.

There's a hanging pull request here https://github.com/rails/rails-controller-testing/pull/50

actionpack/lib/action_dispatch/middleware/stack.rb needs to be fixed.
I have a rather radical WIP patch:

@@ -6,12 +6,13 @@
 module ActionDispatch
   class MiddlewareStack
     class Middleware
-      attr_reader :args, :block, :klass
+      attr_reader :args, :kwargs, :block, :klass

-      def initialize(klass, args, block)
-        @klass = klass
-        @args  = args
-        @block = block
+      def initialize(klass, *args, **kwargs, block)
+        @klass  = klass
+        @args   = args
+        @kwargs = kwargs
+        @block  = block
       end

       def name; klass.name; end
@@ -34,7 +35,7 @@ def inspect
       end

       def build(app)
-        klass.new(app, *args, &block)
+        klass.new(app, *args, **kwargs, &block)
       end

       def build_instrumented(app)
@@ -67,7 +68,7 @@ def call(env)

     attr_accessor :middlewares

-    def initialize(*args)
+    def initialize
       @middlewares = []
       yield(self) if block_given?
     end
@@ -88,8 +89,8 @@ def [](i)
       middlewares[i]
     end

-    def unshift(klass, *args, &block)
-      middlewares.unshift(build_middleware(klass, args, block))
+    def unshift(klass, *args, **kwargs, &block)
+      middlewares.unshift(Middleware.new(klass, *args, **kwargs, block))
     end
     ruby2_keywords(:unshift) if respond_to?(:ruby2_keywords, true)

@@ -99,7 +100,7 @@ def initialize_copy(other)

     def insert(index, klass, *args, &block)
       index = assert_index(index, :before)
-      middlewares.insert(index, build_middleware(klass, args, block))
+      middlewares.insert(index, Middleware.new(klass, *args, **kwargs, block))
     end
     ruby2_keywords(:insert) if respond_to?(:ruby2_keywords, true)

@@ -141,7 +142,7 @@ def move_after(target, source)
     end

     def use(klass, *args, &block)
-      middlewares.push(build_middleware(klass, args, block))
+      middlewares.push(Middleware.new(klass, *args, **kwargs, block))
     end
     ruby2_keywords(:use) if respond_to?(:ruby2_keywords, true)

@@ -162,9 +163,5 @@ def assert_index(index, where)
         raise "No such middleware to insert #{where}: #{index.inspect}" unless i
         i
       end
-
-      def build_middleware(klass, args, block)
-        Middleware.new(klass, args, block)
-      end
   end
 end

Hey @pirj do you feel like updating this?

On it 👍

You could add this https://github.com/rspec/rspec-rails/pull/2332/commits/28f9597fe9ab3ff52b7708643e00df4901bd8b12

Feel free to cherry-pick 1f723f5 from #2332 into this if it gets Ruby 2.7 on the matrix, we'll have to address it seperately I feel


Train copy of non binary sequence

I would like to train a copy task for a non binary sequence. For example, for a sequence containing random numbers between [0, 1]. What loss function would you suggest? MSE? Iterations and lr should also be adjusted, right?

So you'll just have an input of size 1 and output of size 1 as well and both are real numbers? I believe MSE would be the choice here, and you'll need to remove the sigmoidal squashing of the output . However, and I can't put this into concrete reasons as I didn't think thoroughly about, but mostly due to precision problems I would be surprised if your model converged.


Add tests for new Rational

This closes #4315. In particular, the following tests (all adapted from our work at MLabs) provide the following:

Regression tests for AST sizes for all updated functionality in Rational (PR #4284);
Comparison tests for sizes of negate, abs and scale versus generic implementations or implementations using other primitives, as appropriate;
Checks of common laws for Plutus type classes (such as Eq, Ord, AdditiveSemigroup etc) for Rational;
Property tests for all Rational-specific functionality.

We also provide some helper functionality to deal with possible coverage issues, as well as enabling function property tests for functions on Rational. These are currently localized to the tests which use them, but could be made more generally available if needs be.

Wonderful, thanks! I'll take a look later.

You'll need to run updateMaterialized at some point to make the CI happy, since you've added some modules and components.

I'll take a closer look at this early tomorrow; after a quick glance it looks very good though!

One extra comment: it's an important invariant of the implementation that the results of all the operations have a positive denominator and coprime numerator and denominator. You have a standalone test for the former but not the latter. Could you do something along the lines of building checks of the invariants into ===? That would give you thousands of invariant checks quite cheaply.

This is a valid point. I don't use === only for comparing Rationals, so I'd need both a specialized function (for Rationals) and ===, but it's a good strategy.

More generally, this is all testing the Haskell implementation of the operations, and I wonder if we should also test the compiled Plutus versions, although that would be more a test of the compiler than the library. We do have some tests that Plutus Core code does the same as the Haskell it's compiled from, but maybe we should test library functions more aggressively. I'm definitely not suggesting that you should do this! Maybe it's something that we at IOHK should think about though.

This is... notably more difficult. I'm certainly not against this (I'm pretty much the biggest stickler for testing you'll ever find), but I would need @michaelpj to approve this, and it would definitely need to be a separate PR to this one. FWIW, the tests you link to are very much of the 'unit test' stripe, which I have little confidence in: I would much prefer something like a property-based approach, but this would require more work.

This is... notably more difficult. I'm certainly not against this (I'm pretty much the biggest stickler for testing you'll ever find), but I would need @michaelpj to approve this, and it would definitely need to be a separate PR to this one. FWIW, the tests you link to are very much of the 'unit test' stripe, which I have little confidence in: I would much prefer something like a property-based approach, but this would require more work.

It's just something that occurred to me as I was looking at this; as I say, I'm not suggesting that it's something you should tackle.  I can open a ticket to remind us to think about this when/if we have some spare time.  I agree that property-based tests would be better.  In fact I don't think we've ever actually had any problems in the plugin that didn't show up very quickly with our current tests, but more tests are always reassuring.  Anyway, just ignore the comment above.

I tried to do updateMaterialized, but now the MinGW builds are blowing up.

@kwxm My latest commit increases the test count for any tests involving cover to 8000. This means that, even if I run 2000 tests, I don't see any failures. Feel free to test this locally to be sure. This doesn't increase test time much (overall, the tests from laws take about 1.5 seconds on my machine), so if you're happy, I guess we can consider this solved?

@kwxm My latest commit increases the test count for any tests involving cover to 8000. This means that, even if I run 2000 tests, I don't see any failures. Feel free to test this locally to be sure. This doesn't increase test time much (overall, the tests from laws take about 1.5 seconds on my machine), so if you're happy, I guess we can consider this solved?

Yep.  I ran the tests 1000 times with no coverage failures, so that seems to have sorted it out.  Thanks! I think I'd be happy to merge this now, although there's a mystery build failure that I don't recall having seen before.

You need to delete the unused plutus-tx-plugin dep from the size test suite, and then rerun updateMaterialized. I'd be happy to do this for you, but you would need to tick the "allow edits from maintainers" box on the PR so I have push access to the PR branch on your fork.

@kwxm @michaelpj The latest commit should address all outstanding issues. In particular, I have put the laws tests into separate suites, and merged them into the test suite for plutus-tx.
@michaelpj I tried following your suggestion for deleting the unused dep and rerunning updateMaterialized, but then the size tests no longer compile.

Thanks! I don't want to put you through another roundtrip of fixing this stuff, so I'm just going to fix it myself for you and push that up.

Merged in https://github.com/input-output-hk/plutus/pull/4340. Thanks again!


Handling input/output waveguide in view

I have now implemented a basis for containing twophoton states in input and output waveguides. The new data structure can be viewed via the function:
https://github.com/mabuni1998/CavityWaveguide/blob/36d18ef36dc229c49a820f470cea5ed4aa910097/src/view.jl#L120-L140
Here, the argument type determines which part of the state you view. For example, type=:input returns a view of the two-photon input state. Likewise, type=:output returns a view of the two-photon output state, and type=:inputoutput gives the one-photon in input one photon in output state. type=:singlewaveguide is the standard used when you have only a single waveguide. I know that I could define TwoPhotonView{type} and then have a specialized function for each of the scenarios but for now, I'm just using the if statements here. I'm working on documentation, and the purpose of this issue is not to discuss the rest of the implementation but to discuss specifically how the view is made more friendly to use (if possible). For an example where I use the view, see:
https://github.com/mabuni1998/CavityWaveguide/blob/36d18ef36dc229c49a820f470cea5ed4aa910097/Examples/lodahl_fig2 IO.jl#L49
Is this the typical way of having options in a function? Sometimes in python you would use string names instead so that the type would be: type="input" and you would dispatch from here. Is there a typical way of doing it in Julia other than the way I did it @Krastanov ?

Using symbols instead of strings is already much better than what python does.
But you might be able to simplify even more:
Is there something in the Ket type that tells you which view should be created?  Is the basis always of a certain type. Maybe something that would help me answer the question is to show a couple of examples of when each one of these is used (and the exact typeof(...) for the ket argument).
Unrelated: We might need to worry about type stability here. This function is not type stable. If it is used often in inner loops, that can be a problem. One way to solve this, completely unrelated to the rest of your code, is to use Val types. E.g. Val{:output}() instead of :output.

But the short answer is, unless there is something in the type of the ψ input argument that you can use (or property of the instance even), then yes, your approach is great (unless type stability is a worry).

Ahhh, this is great! I was just about to write an issue about how to handle the type of some specific operator which is closely related to how we would do it for a Ket. The problem is unrelated to here, and for the most part, we can't dispatch on the type of Ket. The idea of the type argument is for the user to choose what type of excitation they want. Do they want two photons in the left or the right waveguide (input or output), or do they want an "entangled" state with one photon in the left or one photon in the right? In all of these cases,  typeof(Ket) is something long and complicated where on of the bases is InputOutputWaveguideBasis .
This brings us to the question about which I was about to make an issue.  I want a specialized expect(operator,psi) function that, when it gets an operator which has a WaveguideOperator in it, loops over all times. This is easy to do if the input operator is just of type WaveguideOperator; then we could do something like:
function expect(operator::WaveguideOperator,psi::Ket)
    **DO LOOP**
end

But often, the operator is of type LazyTensor since we might have another quantum system. As an example, consider a waveguide with a cavity, and we are interested in the total population of the waveguide:
times = 0.0:0.1:10
bw = WaveguideBasis(2,times)
bc = FockBasis(2)
wd = create(bw) ⊗ identityoperator(bc)
w = destroy(bw) ⊗  identityoperator(bc)
nw = LazyProduct(wd,w)

Now typeof(w) gives:
LazyTensor{CompositeBasis{Vector{Int64}, Tuple{WaveguideBasis{2}, FockBasis{Int64}}}, CompositeBasis{Vector{Int64}, Tuple{WaveguideBasis{2}, FockBasis{Int64}}}, ComplexF64, Vector{Int64}, Tuple{WaveguideDestroy{WaveguideBasis{2}, WaveguideBasis{2}, 2}, Operator{FockBasis{Int64}, FockBasis{Int64}, SparseArrays.SparseMatrixCSC{ComplexF64, Int64}}}}

It's clear that if we somehow can do a specialized function where it dispatches based on whether the basis of the operator includes a WaveguideBasis, then we would be good. My question is how? How do we pick out the part of CompositeBasis{Vector{Int64}, Tuple{WaveguideBasis{2}, FockBasis{Int64}}} where it says Tuple{WaveguideBasis{2}, FockBasis{Int64}}} and ask "if this tuple includes WaveguideBasis then do this"?
Btw, in the end I want to do something similar with nw which has the type:
LazyProduct{CompositeBasis{Vector{Int64}, Tuple{WaveguideBasis{2}, FockBasis{Int64}}}, CompositeBasis{Vector{Int64}, Tuple{WaveguideBasis{2}, FockBasis{Int64}}}, Int64, Tuple{LazyTensor{CompositeBasis{Vector{Int64}, Tuple{WaveguideBasis{2}, FockBasis{Int64}}}, CompositeBasis{Vector{Int64}, Tuple{WaveguideBasis{2}, FockBasis{Int64}}}, ComplexF64, Vector{Int64}, Tuple{WaveguideCreate{WaveguideBasis{2}, WaveguideBasis{2}, 2}, Operator{FockBasis{Int64}, FockBasis{Int64}, SparseArrays.SparseMatrixCSC{ComplexF64, Int64}}}}, LazyTensor{CompositeBasis{Vector{Int64}, Tuple{WaveguideBasis{2}, FockBasis{Int64}}}, CompositeBasis{Vector{Int64}, Tuple{WaveguideBasis{2}, FockBasis{Int64}}}, ComplexF64, Vector{Int64}, Tuple{WaveguideDestroy{WaveguideBasis{2}, WaveguideBasis{2}, 2}, Operator{FockBasis{Int64}, FockBasis{Int64}, SparseArrays.SparseMatrixCSC{ComplexF64, Int64}}}}}, Tuple{Ket{CompositeBasis{Vector{Int64}, Tuple{WaveguideBasis{2}, FockBasis{Int64}}}, Vector{ComplexF64}}}, Tuple{Bra{CompositeBasis{Vector{Int64}, Tuple{WaveguideBasis{2}, FockBasis{Int64}}}, Vector{ComplexF64}}}}

Again we should be able to just specialize on the CompositeBasis{Vector{Int64}, Tuple{WaveguideBasis{2}, FockBasis{Int64}}} part.
I hope my question makes sense.


Extensions .lighten(), .darken() not work

Extensions .lighten(), .darken() not work

But, work Color.toHct().withTone(newTone: Double).toColor()  :)

From the KDoc:
@return [Color] The lightened color or the original color if the lightened color is not valid.

Can you verify the value returned? The code comes straight from the MCU.

returned original color


Enable Gnosis chain

Enable Gnosis chain

Codecov Report
Attention: 5 lines in your changes are missing coverage. Please review.

Comparison is base (343484e) 16.83% compared to head (fcbd3f8) 16.81%.

Files
Patch %
Lines

blockchain/known_networks.go
0.00%
5 Missing :warning:

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #830      +/-   ##
==========================================
- Coverage   16.83%   16.81%   -0.02%
==========================================
  Files          36       36
  Lines        4395     4400       +5
==========================================
  Hits          740      740
- Misses       3576     3581       +5
  Partials       79       79

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


JSON Output handled by Function

It would be great if we could create a function to handle output of the software.
It would be great to define a function that takes all of our values (tone, sentiment, lexical signature, date, title, etc...) and handles formatting for us using json_dumps. We could pretty print to a file.

in process of being completed in #10 will be closed when branch finished

#15


Mobile Keyboard moves Dialog

hi,
showing a dialog with form content shows a virtual keyboard on mobile devices when a form control (textfield) is activated. as a consequence my dialog shrinks to a very small size. the first problem here is, that the textfield with the focus (which i want to enter) is now cut-off and invisible. i have to scroll to see it.
the second problem is: when i click the keyboard "away" the dialog will grow, but it's position is now "too deep" and a part of the dialog is cut off by the bottom of the display.

do i have any chance to show (=scroll to visible) the current focused element when the keyboard is shown?
any chances to set the dialog to correct position after keyboard disappears?

/usc

+1

Facing exactly the same issue...did you find any solution for this?

no

Why was this closed? Is there a solution to this?

I'd also like to throw in my support for a fix for this. Why was it closed?

Any Update or suggestion ?

Experiencing this issue as well.
Any suggestions to the cause of it and to work around it would be much appreciated.

Just stumbled into the same problem. Any solution?

Have the same problem.

Having this issue

Try adding "maximum-scale=1" to the meta viewport tag


Use "v$major.$minor" for consistency

@rossabaker Had this as WIP before I got sidetracked by the wonky site publish from release-0.15.x.  Feel free to decline.

Critically, also includes the string interpolator.


Verify bugs are not attached to multiple advisories

We can have a case where a non flaw bug can be attached to multiple advisories
curl -sSL --negotiate --user : https://errata.devel.redhat.com/jira_issues/OCPBUGS-35
71/advisories.json | jq -r '.[].advisory_name'

Verify that's not the case. Placeholder bugs are excluded so they are not included in this check,
so you won't see the above bug as a complain, but this should catch any other bugs.
Test

elliott -g openshift-4.11 verify-attached-bugs 105365 --no-verify-blocking-bugs

/lgtm

do we need to add a limit to the length of bug list?

Don't think we need a limit, I'm testing it on the GA advisories and it's working as expected.