Unable to expose sociable dependencies with string / symbol based tokens

Is there an existing issue for this?

#457
[X] I have searched the existing issues

Current behavior
I have the same issues as #457, but that issue is currently closed, so I want to add my 2 cents here and offer a possible solution.
When using Inversify with token-based injection (I'm using Symbols, specifically), and trying to expose a class for a .sociable() test, I get a warning, and my class does not appear to be exposed :
Suites Warning: Unreachable Exposed Dependency Detected.

I am not trying to retrieve it from unitRef
I have tried the suggested workaround of using myIdentifier as never to workaround the Type type error
I have tried an explicit generic in the expose method with .expose<MyTargetClass>(...), implied in the same workaround comment, but this does not compile for me because expose is not actually a generic method

After looking around the Suites implementation, I don't see how this could even be possible, at the moment.
The this.classesToExpose check in the dependency-resolver.ts filters on identifier values with typeof identifier === "function".
Event if it didn't, I don't quite understand how Suites would be able to figure out what the exposed/concrete implementation should be when using token based injection. When using classes as tokens, like NestJS, it's 1-1 and the concrete implementation is the same as the identifier.
But with a symbol or string token, what is Suites supposed to perform a lookup against? The application-level container(s) aren't part of the TestBed.
Minimum reproduction code
https://github.com/craig0990/suites-sociable-inversify
Steps to reproduce
No response
Expected behavior
I'd like to suggest that the expose() method should accept a second parameter when the identifier is a string or symbol token, to use as a concrete implementation of the dependency:
// @suites/types.di
type InjectableIdentifier<TClass = unknown> = Type<TClass> | string | symbol;

// @suites/core.unit
expose(dependency: InjectableIdentifier, concreteImplementation?: Type) {
  if (typeof dependency == "function") {
    // Use dependency as normal
  }

  // Else, use concreteImplementation as the dependency
}

I've taken a fork to see what it would take to implement this, and have a possible solution in #465. I understand this PR will be proposing changes out of the blue, but if nothing else it could provide some options.
Suites version
3.0.0
Node.js version
21.3.0
In which operating systems have you tested?

[ ] macOS
[ ] Windows
[X] Linux

Other
No response

I see, this is an interesting edge-case.
I can think of 2 ways of solving this:

The way you propose it
Give Suites an instance of the DI container (after https://github.com/craig0990/suites-sociable-inversify/blob/7e4a281fbeb0ece34e4c7146f636a72e33923b36/src/container.ts#L7-L10 is run)

@omermorad what are the pros/cons of each? What values should we look at for comparison?

Thinking just a bit more, I see a concern about the exposed concrete dependencies potentially drifting from the unit under test after changes/refactors. I haven't immediately checked, but I assume the Suites Warning: Unreachable Exposed Dependency Detected warning wouldn't catch that, because it's based on the identifier, not the concrete implementation.
I'm 50/50 myself - I like the zero-setup simplicity of Suites, and manually applying exposed dependencies for tokens feels like the simplest extension of that (and hopefully, real-world scenarios only have a "few" exposed dependencies, rather than dozens).
Exposing an instance of the DI container feels safer; but I'm unsure about the complexity it brings in - different container interfaces, composed container modules, etc.
Tricky one, perhaps 🥲

@craig0990 ,
I’ve spent quite a bit of time reflecting on your feedback and the ideas we discussed during our video call, and it really helped me gain clarity on how I envision Suites' API and testing philosophy.
On Token-Based Injection and Sociable Tests
The feedback you provided about using tokens in .expose() sparked a deeper reflection on what Suites is trying to achieve, especially when it comes to sociable unit tests. I’ve come to realize that the solution here isn’t so much about adding more functionality, but rather about clarifying the intended approach and refining the documentation to guide developers in the right direction.
1. Why I Think We Should Avoid Token-Based in .expose()
Allowing tokens within .expose() could inadvertently encourage patterns that blend dependency injection (DI) and dependency inversion (DIP) without developers being fully aware of the implications. This blurring of lines runs counter to the simplicity and clarity we want to maintain within Suites.
The core idea behind sociable unit tests is to expose real classes and verify their interactions. Using class-based injection in .expose() keeps the test context straightforward and aligned with the framework's intended purpose. Tokens are great when genuine inversion of control is needed, but for those cases, I’m advocating the use of .mock().impl() or .mock().final() (and test the concrete implementations using .solitary() approach).
2. Differentiating Between Dependency Injection and Dependency Inversion
This distinction is crucial. Here’s what I’ve landed on:

DI without Tokens: When the goal is to test real class interactions without entering the realm of inversion, concrete class injection in .expose() is the way to go. It maintains simplicity and ensures a clear testing context.

DIP with Tokens: If you’re abstracting behavior or decoupling implementations using tokens, this is where dependency inversion principles come in. In such cases, solitary unit tests should be employed to verify different concrete implementations. For sociable tests, I suggest using .mock().impl() or .mock().final() to simulate real behavior without exposing tokens directly.

3. The Proposal on .exposeContainer() and Token-Based Exposure
I believe introducing those functionalities would deviate from the core goal of keeping Suites clear. Instead, I’m leaning towards doubling down on the education and documentation side. I think we should add more detailed guidelines and explanations to the docs, covering:

The intended use of .expose() and its limitations regarding tokens.
Why class-based injection is the recommended approach for sociable unit tests.
Using .mock().final() and .mock().impl() in cases of dependency inversion.
Practical examples and guidance for InversifyJS and other DI frameworks, showing how to achieve the desired testing behavior while sticking to Suites' philosophy.

To summer up, I feel the solution is more about establishing clear rules and documentation around the product. This way, developers can adhere to a consistent testing philosophy that promotes better, more maintainable tests.
What do you think? @soryy708 I would love to here your opinion as well :)

Allowing tokens within .expose() could inadvertently encourage patterns that blend dependency injection (DI) and dependency inversion (DIP)

I don't follow. Can you provide a concrete example?

I feel the solution is more about establishing clear rules and documentation around the product

If that's the direction you want to take, then I propose adding a check inside Suites for whether the DI container contains tokens that weren't .mock().impl()ed, and log it as a warning.

I think I understand the argument from @omermorad. If I tried to summarize it (probably poorly) for myself from the Inversify perspective I started with:

DI with classes-as-identifiers are more obviously bound to some default concrete implementation
DIP with symbols sort of separates between the identifier (symbol | string) vs. the interface. And providing some bound implementation in the TestBed in that case is ... questionable, since it implies/creates some coupling between concrete implementations that the general point of DIP is to avoid and genericize

In my scenario (e.g., classes using mediators or caches, which might benefit from sociable testing), this setup might require more boilerplate to establish explicit mocks instead of reusing existing concrete implementations. But if I genuinely need to verify interactions between two implementations, it might be better to avoid symbol|string identifiers in the first place as it implies a separation that my tests aren't really enforcing.
I can understand that Suites would prefer to keep those concepts very clear, so no complaints from me to close this @omermorad.

The main point of DIP is to enable shifting what we depend on from volatile things to stable ones.
So instead of something that doesn't change much depending on something we want to be able to change often (and therefore making it harder to change), we can invert the dependency so that the thing that changes often depends on the thing that doesn't.
We have 3 domains we're looking at: The tests suite, the system under test, and the DI framework/container.
What's stable and what's volatile? Who should depend on who?


Provide Keyboard Shortcut for Save As

From<EMAIL_ADDRESS>on 2014-11-13T04:52:39Z
It would be great if there was a keyboard shortcut for File -> Save As, which you could customize.
At the current state, I don't see a way to customize a keyboard shortcut which is not available by default.
Spyder Version:  2.3.1
Python Version:  2.7.8
Qt Version    :  4.8.6, PyQt4 (API v2) 4.11.2 on Darwin
pyflakes >=0.5.0:  0.8.1 (OK)
pep8 >=0.6      :  1.5.7 (OK)
IPython >=0.13  :  2.3.0 (OK)
pygments >=1.6  :  1.6 (OK)
pandas >=0.13.1 :  0.14.0 (OK)
sphinx >=0.6.6  :  1.2.3 (OK)
psutil >=0.3    :  0.4.1 (OK)
rope >=0.9.2    :  0.9.4 (OK)
matplotlib >=1.0:  1.4.2 (OK)
sympy >=0.7.0   :  0.7.5 (OK)
pylint >=0.25   :  1.2.0 (OK)
Original issue: http://code.google.com/p/spyderlib/issues/detail?id=2047

From ccordoba12 on 2014-11-15T09:29:25Z
Thanks for your suggestion. We'll implement it in our next big release (i.e. 2.4).
Status: Accepted
Labels: MS-v2.4


Question regarding Account Activation

More of a question than a issue. I'm new to development and have used Devise for logins on a few projects now (thank you!).
I am just reading a tutorial about Account Activation (sending an email to confirm the user owns that email address). Will it be possible for me to build in this functionality to Devise or am I missing the point of the simplicity of Devise?
Thanks - and thanks for creating and maintaining such a great gem!

 Thanks for the nice words!
Could you  Please use the mailing list or StackOverflow for questions/help, where a wider community will be able to help you. We reserve the issues tracker for issues only.

No problem @josevalim. Thank you for directing me.


Fix #93 add filename to output

Resolving issue --output to provide alternate for --filename #93
adds $f as a special variable, and fills it from $filename
Includes related unit-test, REALEASE-NOTE.md and Manual doc patches

ah, i see you added /o , nice.
I could make a new PR with the /o if it's not trivial to merge ?

will re push clean ...


rocket.chat will not properly close when closing through the window manager on linux mint 20 ulyana mate

Somewhere in the last few months on all our rocket.chat systems, rocket.chat will stay running in the background when telling the mate windows manager to close rocket.chat (red cross window), however rocket.chat will close properly when going to the menu and then choosing close. The rocket.chat windows will go away but the progress stays running in the background and the users can not restart rocket.chat to get the main window back. We have to kill the rocket.chat process and then you can start the application again to get the main window.
A workaround is "isTrayIconEnabled": true, when closing the rocket.chat window it will disappear and in the tray icon you can get the application back...
I have tested the latest few release in the hopes the issue would go away, but it persists, so I am writing this bug report now.
# dpkg -l rocketchat
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name           Version      Architecture Description
+++-==============-============-============-=================================
ii  rocketchat     3.7.8        amd64

# cat /etc/lsb-release
DISTRIB_ID=LinuxMint
DISTRIB_RELEASE=20
DISTRIB_CODENAME=ulyana
DISTRIB_DESCRIPTION="Linux Mint 20 Ulyana"
MATE

Thanks for notifying us about it. I think that the problem is the way we handle closing it on Linux. On Windows and Mac Os works differently.
I will create a Linux Mint machine to reproduce this.

Not specific to Mint. Same on Ubuntu. ps still lists PIDs after closing the client application window.


Complete type annotations

Closes #214
This changeset adds a bunch of missing annotations and other fixes/workarounds to get routee-compass to a complete set of annotations (i.e. mypy --strict can be run over the whole wrapper with no errors). This also updates and re-enables the type-checking step of the test workflow (and adds the necessary type stubs to the [dev] extra)

Thanks for adding all of these in! We made a couple of changes when sprinting today that will cause a couple merge conflicts here (sorry!)
We also decided to make the geospatial-like dependencies optional and then just rely on the TYPE_CHECKING parameter and en-quoting the optional types.

No trouble at all on the merge conflicts, I'll sort them out. Guarding/quoting the geospatial stuff sounds pretty straightforward to take care of.
It turned out that I didn't have much time today, but I did get a few moments to look at the problems with the annotation of the agg parameter. The core problem is I believe the conflict between Union[VeryLongCallableT, overloaded function] and Optional[VeryLongCallableT], but I'm not entirely sure what the overloaded bit is about.


Remove slash from prefix

The prefix breaks the request for the Oauth token, just leave it empty and all is fine.

Nice catch!

Merged and published as v1.11.0

Thanks!


Support field width with alignment in YScopeFormatter.

Request
In log formatting, consistent and readable output is critical for debugging and analysis. Fields like log levels (INFO, WARNING) often have variable lengths, making the output misaligned. A field width with alignment formatter ensures that fields occupy consistent space in the output, improving readability and enabling proper alignment.
Use Case Analysis: Example Logs
Input Example:
2023-03-21 23:45:49 I [conn11] Slow query
2023-03-21 23:45:49 D3 [conn11] WT begin_transaction

Problem:
The log levels (I, D3) have variable lengths:

I is 1 character.
D3 is 2 characters.
Without padding, the alignment of subsequent fields (e.g., [conn11]) shifts, making the logs harder to read at a glance.

Solution:
Using a field width formatter, the log levels can be aligned to a fixed width (e.g., 2 characters) by padding shorter levels and ensuring uniform spacing.
Desired output:
2023-03-21 23:45:49  I [conn11] Slow query
2023-03-21 23:45:49 D3 [conn11] WT begin_transaction

Key Features

Minimum width of the field:

If the content is shorter than the width, padding is added.
If the content is longer, it is not truncated.

Alignment:

Left: Content is aligned to the left (padding added on the right).
Right: Content is aligned to the right (padding added on the left).
Center: Content is centered (padding added on both sides).

Padding (Filling) Character:

allow specifying a character to use for padding (default is a space).

Possible implementation
Field width formatter syntax
Field formatter name: field_width
Options string syntax: <width>[[;<left, center, right>];<delimiter>]
Reference
Inspired by:

https://docs.python.org/3/library/string.html#formatstrings
Cpp:

https://cplusplus.com/reference/ios/ios_base/width/
https://cplusplus.com/reference/ios/ios_base/setf/

@davemarco / @kirkrodrigues please help review

The proposal makes sense, but now I'm wondering how this works for fields of different types and whether that might be confusing to users.
For instance, we could allow using this formatter on all field types, and then we simply pad the stringified version of the field. This would work in most cases, but for a negative float field where the user wants to 0-pad it on the left, this formatter wouldn't work (since the 0 padding would be placed left of the negative sign, e.g., "000-5.5"). So in this case, we'd probably need a numeric padding formatter, right? That's also doable, but I have a feeling that a padding formatter could handle both if we made the syntax more advanced somehow. But then again, I haven't thought it through and there might be limitations to trying to handle both.


[spam]

This is the log https://paste.md-5.net/umefinifop.md a have a problem i wanted to make a new world for the lobby to teleport
with the star but then i reloaded the serwer and the plugin dindt work

Bro what spam?

Nice support man no spam

Very good support :)

@MigraalPL i have no idea what deluxehub is, and your link has minecraft output, none of which is relevant to this repo.

https://github.com/nodejs/help/issues/4369 is spam also. file an issue on minecraft, not node.


CI: K8sDatapathConfig Check BPF masquerading with ip-masq-agent DirectRouting: Failed to add ip route: RTNETLINK answers: File exists

K8sDatapathConfig Check BPF masquerading with ip-masq-agent DirectRouting
https://jenkins.cilium.io/job/Cilium-PR-K8s-1.16-net-next/2056/testReport/junit/Suite-k8s-1/16/K8sDatapathConfig_Check_BPF_masquerading_with_ip_masq_agent_DirectRouting/
Found in PR #17992, but that only changes some makefiles for bpf_mock so the failure must be unrelated.
Stacktrace
/home/jenkins/workspace/Cilium-PR-K8s-1.16-net-next/src/github.com/cilium/cilium/test/ginkgo-ext/scopes.go:527
Failed to add ip route
Expected command: kubectl exec -n kube-system log-gatherer-qcc6z -- ip route add <IP_ADDRESS> via <IP_ADDRESS>
To succeed, but it failed:
Exitcode: 2
Err: exit status 2
Stdout:

Stderr:
 	 RTNETLINK answers: File exists
	 command terminated with exit code 2

/home/jenkins/workspace/Cilium-PR-K8s-1.16-net-next/src/github.com/cilium/cilium/test/k8sT/DatapathConfiguration.go:1119

Standard Output
Number of "context deadline exceeded" in logs: 0
Number of "level=error" in logs: 0
Number of "level=warning" in logs: 0
Number of "Cilium API handler panicked" in logs: 0
Number of "Goroutine took lock for more than" in logs: 0
No errors/warnings found in logs
Number of "context deadline exceeded" in logs: 0
Number of "level=error" in logs: 0
Number of "level=warning" in logs: 0
Number of "Cilium API handler panicked" in logs: 0
Number of "Goroutine took lock for more than" in logs: 0
No errors/warnings found in logs
Number of "context deadline exceeded" in logs: 0
Number of "level=error" in logs: 0
Number of "level=warning" in logs: 0
Number of "Cilium API handler panicked" in logs: 0
Number of "Goroutine took lock for more than" in logs: 0
No errors/warnings found in logs
Cilium pods: [cilium-bpbbx cilium-cvs5v]
Netpols loaded:
CiliumNetworkPolicies loaded:<PHONE_NUMBER>13k8sdatapathconfigcheckbpfmasqueradingwithip-masq-ag::l3-policy-demo
Endpoint Policy Enforcement:
Pod                          Ingress   Egress
testclient-r6plb
testds-ks5nf
testds-w8q69
grafana-7fd557d749-29627
prometheus-d87f8f984-c9nlr
coredns-5fc58db489-mq9ht
test-k8s2-5b756fd6c5-jck5q
testclient-g57pm
Cilium agent 'cilium-bpbbx': Status: Ok  Health: Ok Nodes "" ContinerRuntime:  Kubernetes: Ok KVstore: Ok Controllers: Total 39 Failed 0
Cilium agent 'cilium-cvs5v': Status: Ok  Health: Ok Nodes "" ContinerRuntime:  Kubernetes: Ok KVstore: Ok Controllers: Total 38 Failed 0

Standard Error
16:12:18 STEP: Running BeforeAll block for EntireTestsuite K8sDatapathConfig Check BPF masquerading with ip-masq-agent
16:12:19 STEP: WaitforPods(namespace="default", filter="-l name=echoserver-hostnetns")
16:12:20 STEP: WaitforPods(namespace="default", filter="-l name=echoserver-hostnetns") => <nil>
16:12:20 STEP: Installing Cilium
16:12:22 STEP: Waiting for Cilium to become ready
16:13:14 STEP: Validating if Kubernetes DNS is deployed
16:13:14 STEP: Checking if deployment is ready
16:13:14 STEP: Checking if kube-dns service is plumbed correctly
16:13:14 STEP: Checking if DNS can resolve
16:13:14 STEP: Checking if pods have identity
16:13:15 STEP: Kubernetes DNS is up and operational
16:13:15 STEP: Validating Cilium Installation
16:13:15 STEP: Performing Cilium controllers preflight check
16:13:15 STEP: Performing Cilium status preflight check
16:13:15 STEP: Performing Cilium health check
16:13:16 STEP: Performing Cilium service preflight check
16:13:16 STEP: Performing K8s service preflight check
16:13:17 STEP: Waiting for cilium-operator to be ready
16:13:17 STEP: WaitforPods(namespace="kube-system", filter="-l name=cilium-operator")
16:13:17 STEP: WaitforPods(namespace="kube-system", filter="-l name=cilium-operator") => <nil>
16:13:17 STEP: Making sure all endpoints are in ready state
16:13:19 STEP: Creating namespace<PHONE_NUMBER>13k8sdatapathconfigcheckbpfmasqueradingwithip-masq-ag
16:13:19 STEP: Deploying demo_ds.yaml in namespace<PHONE_NUMBER>13k8sdatapathconfigcheckbpfmasqueradingwithip-masq-ag
16:13:19 STEP: Applying policy /home/jenkins/workspace/Cilium-PR-K8s-1.16-net-next/src/github.com/cilium/cilium/test/k8sT/manifests/l3-policy-demo.yaml
16:13:23 STEP: Waiting for 4m0s for 5 pods of deployment demo_ds.yaml to become ready
16:13:23 STEP: WaitforNPods(namespace="202111251613k8sdatapathconfigcheckbpfmasqueradingwithip-masq-ag", filter="")
16:13:33 STEP: WaitforNPods(namespace="202111251613k8sdatapathconfigcheckbpfmasqueradingwithip-masq-ag", filter="") => <nil>
16:13:33 STEP: Making ten curl requests from "testclient-g57pm" to "http://<IP_ADDRESS>:80"
16:13:34 STEP: Making ten curl requests from "testclient-r6plb" to "http://<IP_ADDRESS>:80"
16:15:06 STEP: Applying policy /home/jenkins/workspace/Cilium-PR-K8s-1.16-net-next/src/github.com/cilium/cilium/test/k8sT/manifests/l3-policy-demo.yaml
16:15:06 STEP: Waiting for 4m0s for 5 pods of deployment demo_ds.yaml to become ready
16:15:06 STEP: WaitforNPods(namespace="202111251613k8sdatapathconfigcheckbpfmasqueradingwithip-masq-ag", filter="")
16:15:06 STEP: WaitforNPods(namespace="202111251613k8sdatapathconfigcheckbpfmasqueradingwithip-masq-ag", filter="") => <nil>
16:15:07 STEP: Making ten curl requests from "testclient-g57pm" to "http://<IP_ADDRESS>:80"
16:15:08 STEP: Making ten curl requests from "testclient-r6plb" to "http://<IP_ADDRESS>:80"
FAIL: Failed to add ip route
Expected command: kubectl exec -n kube-system log-gatherer-qcc6z -- ip route add <IP_ADDRESS> via <IP_ADDRESS>
To succeed, but it failed:
Exitcode: 2
Err: exit status 2
Stdout:

Stderr:
 	 RTNETLINK answers: File exists
	 command terminated with exit code 2

=== Test Finished at 2021-11-25T16:15:08Z====
16:15:08 STEP: Running JustAfterEach block for EntireTestsuite K8sDatapathConfig
===================== TEST FAILED =====================
16:15:09 STEP: Running AfterFailed block for EntireTestsuite K8sDatapathConfig
cmd: kubectl get pods -o wide --all-namespaces
Exitcode: 0
Stdout:
 	 NAMESPACE                                                         NAME                               READY   STATUS    RESTARTS   AGE     IP              NODE   NOMINATED NODE   READINESS GATES
<PHONE_NUMBER>13k8sdatapathconfigcheckbpfmasqueradingwithip-masq-ag   test-k8s2-5b756fd6c5-jck5q         2/2     Running   0          113s    <IP_ADDRESS>      k8s2   <none>           <none>
<PHONE_NUMBER>13k8sdatapathconfigcheckbpfmasqueradingwithip-masq-ag   testclient-g57pm                   1/1     Running   0          113s    <IP_ADDRESS>       k8s2   <none>           <none>
<PHONE_NUMBER>13k8sdatapathconfigcheckbpfmasqueradingwithip-masq-ag   testclient-r6plb                   1/1     Running   0          113s    <IP_ADDRESS>      k8s1   <none>           <none>
<PHONE_NUMBER>13k8sdatapathconfigcheckbpfmasqueradingwithip-masq-ag   testds-ks5nf                       2/2     Running   0          113s    <IP_ADDRESS>       k8s2   <none>           <none>
<PHONE_NUMBER>13k8sdatapathconfigcheckbpfmasqueradingwithip-masq-ag   testds-w8q69                       2/2     Running   0          113s    <IP_ADDRESS>       k8s1   <none>           <none>
	 cilium-monitoring                                                 grafana-7fd557d749-29627           1/1     Running   0          92m     <IP_ADDRESS>       k8s1   <none>           <none>
	 cilium-monitoring                                                 prometheus-d87f8f984-c9nlr         1/1     Running   0          92m     <IP_ADDRESS>       k8s1   <none>           <none>
	 default                                                           echoserver-6knhk                   1/1     Running   0          2m53s   <IP_ADDRESS>   k8s3   <none>           <none>
	 kube-system                                                       cilium-bpbbx                       1/1     Running   0          2m50s   <IP_ADDRESS>   k8s1   <none>           <none>
	 kube-system                                                       cilium-cvs5v                       1/1     Running   0          2m50s   <IP_ADDRESS>   k8s2   <none>           <none>
	 kube-system                                                       cilium-operator-6cfb57b878-29xmz   1/1     Running   0          2m50s   <IP_ADDRESS>   k8s2   <none>           <none>
	 kube-system                                                       cilium-operator-6cfb57b878-lt5cj   1/1     Running   0          2m50s   <IP_ADDRESS>   k8s3   <none>           <none>
	 kube-system                                                       coredns-5fc58db489-mq9ht           1/1     Running   0          3m48s   <IP_ADDRESS>       k8s2   <none>           <none>
	 kube-system                                                       etcd-k8s1                          1/1     Running   0          96m     <IP_ADDRESS>   k8s1   <none>           <none>
	 kube-system                                                       kube-apiserver-k8s1                1/1     Running   0          96m     <IP_ADDRESS>   k8s1   <none>           <none>
	 kube-system                                                       kube-controller-manager-k8s1       1/1     Running   0          96m     <IP_ADDRESS>   k8s1   <none>           <none>
	 kube-system                                                       kube-scheduler-k8s1                1/1     Running   0          96m     <IP_ADDRESS>   k8s1   <none>           <none>
	 kube-system                                                       log-gatherer-bvlfq                 1/1     Running   0          92m     <IP_ADDRESS>   k8s2   <none>           <none>
	 kube-system                                                       log-gatherer-qcc6z                 1/1     Running   0          92m     <IP_ADDRESS>   k8s3   <none>           <none>
	 kube-system                                                       log-gatherer-sgzx8                 1/1     Running   0          92m     <IP_ADDRESS>   k8s1   <none>           <none>
	 kube-system                                                       registry-adder-6xpx8               1/1     Running   0          93m     <IP_ADDRESS>   k8s2   <none>           <none>
	 kube-system                                                       registry-adder-d89fp               1/1     Running   0          93m     <IP_ADDRESS>   k8s3   <none>           <none>
	 kube-system                                                       registry-adder-tlpw8               1/1     Running   0          93m     <IP_ADDRESS>   k8s1   <none>           <none>

Stderr:

Fetching command output from pods [cilium-bpbbx cilium-cvs5v]
cmd: kubectl exec -n kube-system cilium-bpbbx -c cilium-agent -- cilium status
Exitcode: 0
Stdout:
 	 KVStore:                Ok   Disabled
	 Kubernetes:             Ok   1.16 (v1.16.15) [linux/amd64]
	 Kubernetes APIs:        ["cilium/v2::CiliumClusterwideNetworkPolicy", "cilium/v2::CiliumEndpoint", "cilium/v2::CiliumNetworkPolicy", "cilium/v2::CiliumNode", "core/v1::Endpoint", "core/v1::Namespace", "core/v1::Node", "core/v1::Pods", "core/v1::Service", "networking.k8s.io/v1::NetworkPolicy"]
	 KubeProxyReplacement:   Strict   [enp0s3 <IP_ADDRESS> fd04::11, enp0s8 <IP_ADDRESS> fd04::11 (Direct Routing)]
	 Host firewall:          Disabled
	 Cilium:                 Ok   1.11.90 (v1.11.90-873b70a)
	 NodeMonitor:            Listening for events on 3 CPUs with 64x4096 of shared memory
	 Cilium health daemon:   Ok
	 IPAM:                   IPv4: 6/254 allocated from <IP_ADDRESS>/24, IPv6: 6/254 allocated from fd02::/120
	 BandwidthManager:       Disabled
	 Host Routing:           BPF
	 Masquerading:           BPF (ip-masq-agent)   [enp0s3, enp0s8]   <IP_ADDRESS>/8 [IPv4: Enabled, IPv6: Disabled]
	 Controller Status:      39/39 healthy
	 Proxy Status:           OK, ip <IP_ADDRESS>, 0 redirects active on ports 10000-20000
	 Hubble:                 Ok   Current/Max Flows: 876/4095 (21.39%), Flows/s: 4.33   Metrics: Disabled
	 Encryption:             Disabled
	 Cluster health:         2/2 reachable   (2021-11-25T16:14:57Z)

Stderr:

cmd: kubectl exec -n kube-system cilium-bpbbx -c cilium-agent -- cilium endpoint list
Exitcode: 0
Stdout:
 	 ENDPOINT   POLICY (ingress)   POLICY (egress)   IDENTITY   LABELS (source:key[=value])                                                                       IPv6       IPv4         STATUS
	            ENFORCEMENT        ENFORCEMENT
	 428        Disabled           Disabled          4          reserved:health                                                                                fd02::2f   <IP_ADDRESS>   ready
	 1395       Enabled            Disabled          43837      k8s:io.cilium.k8s.policy.cluster=default                                                          fd02::f1   <IP_ADDRESS>    ready
	                                                            k8s:io.cilium.k8s.policy.serviceaccount=default
	                                                            k8s:io.kubernetes.pod.namespace=202111251613k8sdatapathconfigcheckbpfmasqueradingwithip-masq-ag
	                                                            k8s:zgroup=testDS
	 1599       Disabled           Disabled          1          k8s:cilium.io/ci-node=k8s1                                                                                ready
	                                                            k8s:node-role.kubernetes.io/master
	                                                            reserved:host
	 1896       Disabled           Disabled          56526      k8s:app=prometheus                                                                                fd02::9f   <IP_ADDRESS>    ready
	                                                            k8s:io.cilium.k8s.policy.cluster=default
	                                                            k8s:io.cilium.k8s.policy.serviceaccount=prometheus-k8s
	                                                            k8s:io.kubernetes.pod.namespace=cilium-monitoring
	 1972       Disabled           Disabled          11341      k8s:app=grafana                                                                                fd02::40   <IP_ADDRESS>    ready
	                                                            k8s:io.cilium.k8s.policy.cluster=default
	                                                            k8s:io.cilium.k8s.policy.serviceaccount=default
	                                                            k8s:io.kubernetes.pod.namespace=cilium-monitoring
	 3517       Disabled           Disabled          8607       k8s:io.cilium.k8s.policy.cluster=default                                                          fd02::72   <IP_ADDRESS>   ready
	                                                            k8s:io.cilium.k8s.policy.serviceaccount=default
	                                                            k8s:io.kubernetes.pod.namespace=202111251613k8sdatapathconfigcheckbpfmasqueradingwithip-masq-ag
	                                                            k8s:zgroup=testDSClient

Stderr:

cmd: kubectl exec -n kube-system cilium-cvs5v -c cilium-agent -- cilium status
Exitcode: 0
Stdout:
 	 KVStore:                Ok   Disabled
	 Kubernetes:             Ok   1.16 (v1.16.15) [linux/amd64]
	 Kubernetes APIs:        ["cilium/v2::CiliumClusterwideNetworkPolicy", "cilium/v2::CiliumEndpoint", "cilium/v2::CiliumNetworkPolicy", "cilium/v2::CiliumNode", "core/v1::Endpoint", "core/v1::Namespace", "core/v1::Node", "core/v1::Pods", "core/v1::Service", "networking.k8s.io/v1::NetworkPolicy"]
	 KubeProxyReplacement:   Strict   [enp0s3 <IP_ADDRESS> fd04::12, enp0s8 <IP_ADDRESS> fd04::12 (Direct Routing)]
	 Host firewall:          Disabled
	 Cilium:                 Ok   1.11.90 (v1.11.90-873b70a)
	 NodeMonitor:            Listening for events on 3 CPUs with 64x4096 of shared memory
	 Cilium health daemon:   Ok
	 IPAM:                   IPv4: 6/254 allocated from <IP_ADDRESS>/24, IPv6: 6/254 allocated from fd02::100/120
	 BandwidthManager:       Disabled
	 Host Routing:           BPF
	 Masquerading:           BPF (ip-masq-agent)   [enp0s3, enp0s8]   <IP_ADDRESS>/8 [IPv4: Enabled, IPv6: Disabled]
	 Controller Status:      38/38 healthy
	 Proxy Status:           OK, ip <IP_ADDRESS>, 0 redirects active on ports 10000-20000
	 Hubble:                 Ok   Current/Max Flows: 1080/4095 (26.37%), Flows/s: 5.19   Metrics: Disabled
	 Encryption:             Disabled
	 Cluster health:         2/2 reachable   (2021-11-25T16:13:52Z)

Stderr:

cmd: kubectl exec -n kube-system cilium-cvs5v -c cilium-agent -- cilium endpoint list
Exitcode: 0
Stdout:
 	 ENDPOINT   POLICY (ingress)   POLICY (egress)   IDENTITY   LABELS (source:key[=value])                                                                       IPv6        IPv4         STATUS
	            ENFORCEMENT        ENFORCEMENT
	 657        Disabled           Disabled          4          reserved:health                                                                                fd02::14a   <IP_ADDRESS>    ready
	 805        Disabled           Disabled          6653       k8s:io.cilium.k8s.policy.cluster=default                                                          fd02::126   <IP_ADDRESS>    ready
	                                                            k8s:io.cilium.k8s.policy.serviceaccount=coredns
	                                                            k8s:io.kubernetes.pod.namespace=kube-system
	                                                            k8s:k8s-app=kube-dns
	 2304       Enabled            Disabled          43837      k8s:io.cilium.k8s.policy.cluster=default                                                          fd02::109   <IP_ADDRESS>    ready
	                                                            k8s:io.cilium.k8s.policy.serviceaccount=default
	                                                            k8s:io.kubernetes.pod.namespace=202111251613k8sdatapathconfigcheckbpfmasqueradingwithip-masq-ag
	                                                            k8s:zgroup=testDS
	 2930       Disabled           Disabled          1          k8s:cilium.io/ci-node=k8s2                                                                                ready
	                                                            reserved:host
	 3019       Disabled           Disabled          8607       k8s:io.cilium.k8s.policy.cluster=default                                                          fd02::1d9   <IP_ADDRESS>    ready
	                                                            k8s:io.cilium.k8s.policy.serviceaccount=default
	                                                            k8s:io.kubernetes.pod.namespace=202111251613k8sdatapathconfigcheckbpfmasqueradingwithip-masq-ag
	                                                            k8s:zgroup=testDSClient
	 3376       Disabled           Disabled          4788       k8s:io.cilium.k8s.policy.cluster=default                                                          fd02::1ab   <IP_ADDRESS>   ready
	                                                            k8s:io.cilium.k8s.policy.serviceaccount=default
	                                                            k8s:io.kubernetes.pod.namespace=202111251613k8sdatapathconfigcheckbpfmasqueradingwithip-masq-ag
	                                                            k8s:zgroup=test-k8s2

Stderr:

===================== Exiting AfterFailed =====================
16:15:29 STEP: Running AfterEach for block EntireTestsuite K8sDatapathConfig Check BPF masquerading with ip-masq-agent
16:15:30 STEP: Running AfterEach for block EntireTestsuite K8sDatapathConfig
16:15:30 STEP: Deleting deployment demo_ds.yaml
16:15:30 STEP: Deleting namespace<PHONE_NUMBER>13k8sdatapathconfigcheckbpfmasqueradingwithip-masq-ag
16:15:44 STEP: Running AfterEach for block EntireTestsuite

This is the route we regularly add on the third node (k8s3) to make cluster pods reachable from k8s3. All routes added as part of the test function should be removed when the function exits: https://github.com/cilium/cilium/blob/bc301988888bb56c493987b4a428d3947100101c/test/k8sT/DatapathConfiguration.go#L1116-L1124
In the logs, we can see:
16:13:33  16:13:33 STEP: Making ten curl requests from "testclient-g57pm" to "http://<IP_ADDRESS>:80"
16:13:34  16:13:34 STEP: Making ten curl requests from "testclient-r6plb" to "http://<IP_ADDRESS>:80"
16:15:15  16:15:06 STEP: Applying policy /home/jenkins/workspace/Cilium-PR-K8s-1.16-net-next/src/github.com/cilium/cilium/test/k8sT/manifests/l3-policy-demo.yaml
16:15:15  16:15:06 STEP: Waiting for 4m0s for 5 pods of deployment demo_ds.yaml to become ready
16:15:15  16:15:06 STEP: WaitforNPods(namespace="202111251613k8sdatapathconfigcheckbpfmasqueradingwithip-masq-ag", filter="")
16:15:15  16:15:06 STEP: WaitforNPods(namespace="202111251613k8sdatapathconfigcheckbpfmasqueradingwithip-masq-ag", filter="") => <nil>
16:15:15  16:15:07 STEP: Making ten curl requests from "testclient-g57pm" to "http://<IP_ADDRESS>:80"
16:15:15  16:15:08 STEP: Making ten curl requests from "testclient-r6plb" to "http://<IP_ADDRESS>:80"
16:15:15  FAIL: Failed to add ip route

So the route was probably not properly deleted during the first run of this function, when first making a request from testclient-r6plb. However, the failure to remove the previous route should have failed the test.
Could it be that ExpectSuccess is ineffective in defers?
/cc @brb

Could it be that ExpectSuccess is ineffective in defers?

I've tried the following, and it is effective:
var _ = Describe("Foo", func() {
	Describe("Bar", func() {
		Context("Quux", func() {
			It("it", func() {
				defer Expect(false).To(Equal(true))
			})
		})
	})
})

Then maybe we should just ignore when the route already exists? That is, always use ip replace instead of ip add.

Aye, ip replace is a good idea!

Read the test code again, and I cannot find why the route could have existed before.

So the route was probably not properly deleted during the first run of this function, when first making a request from testclient-r6plb. However, the failure to remove the previous route should have failed the test.

The firt run didn't install the routes, as it expected the requests to be SNAT-ed (thus no route is needed).
I am reluctant to use replace instead of add, as it hides the problem. Instead, I will add more debug information if adding route fails.

Haven't seen the failure in awhile. Closing.


Update legend to use internal values

Rather than current form which relies on external values for ranges and intervals

Nope, can't do that as rendering of the legend then takes way too long. This could only be done if the whole maps page was rewritten to first load the map data, and then pass that as a prop to all other routines. No real need to do that at present, so closing.


--language support

would it be possible to also add the --language option?
I work with a language that uses c++ syntax but the files don't end on cpp so cppcheck thinks they are c files and even though i specified --std with just c++11 it still tries to check with c syntax settings (e.g. doesn't recognize class keyword).
calling the same command with --language=c++ works fine and provides the correct output.

Added to version 0.1.1.

perfect, many thanks, you're awesome!


*: move all metrics registration to the store level

At component instantiation time (e.g. db, wal, table), existing metrics are
provided to the components with the correct variable label set. This moves the
metric registration lifecycle to the store level and avoids duplicate
registration panics when e.g. reopening a closed db.

Tested on local cloud and prometheus and verified some metrics are exported with the correct names and labels.


date_select??

Hi!
When i try to use a f.date_select i get an "can't convert Symbol into String". What gives?

 I can't reproduce the problem.

Yep. By the way, the following doesn't work either:
= f.collection_select :client_id, Contact.is_client.order_by(:last_name.asc, :first_name.asc), :id, :name

Here is your backtrace for the first problem:
ActionView::Template::Error (can't convert Symbol into String):
1: = twitter_bootstrap_form_for(@track) do |f|
2:   = f.hidden_field :user_id, :value => current_user.id
3:   = f.inputs "Eintrag" do
4:     = f.date_select :starts_at, "Anfang"
5:     = f.text_field :ends_at, "Ende"
6:   = f.actions do
7:     =f.submit "erstellen"
app/views/timetrackings/_form.slim:4:in block (2 levels) in _app_views_timetrackings__form_slim__2940875084335130739_70259333716820'   app/views/timetrackings/_form.slim:3:in block in _app_views_timetrackings__form_slim__2940875084335130739_70259333716820'
app/views/timetrackings/_form.slim:1:in _app_views_timetrackings__form_slim__2940875084335130739_70259333716820'   app/views/timetrackings/index.html.slim:6:in _app_views_timetrackings_index_html_slim__234356866407762948_70259308334340'

You may need to dig in and provide me more information; for instance, the parameters being sent to the real

Okay :) As follows:
the form is called with a new instance of the following model:
class Timetracking
include Mongoid::Document
include Mongoid::MultiParameterAttributes
field :starts_at, :type => DateTime
field :ends_at, :type => DateTime
belongs_to :user
belongs_to :client, :class_name => 'Contact'
scope :for_user, lambda{|user_id| where(:user_id => user_id)}
scope :for_today, where(:starts_at.gte => Date.today.beginning_of_day.utc, :ends_at.lte => Date.today.end_of_day.utc)
scope :for, ->(date) { where(:starts_at.gte => date.beginning_of_day.utc, :ends_at.lte => date.end_of_day.utc)}
def duration
Time.at(self.ends_at.to_time - self.starts_at.to_time).gmtime.strftime('%R')
end
end
The given date is: 2011-11-13T13:15:00+00:00

Check the above comment. I submitted too early, then dug deeper and reedited it. I don''t think this is being caused by my gem, but instead is from a misconfiguration on your translation stack.

I suspect if you use a date_select inside a standard form_for, you will have this problem as well.

I'll look at it and inform you about my findings. Thanks!

Yep. It seems i've got a misconfiguration in my locale... Damn. Thanks!


Add command, press enter to skip optional fields

@jaxony
Could we make it that we can skip optional fields such as email and address. Pressing enter will simply fill in the field as the default field ie. filling

Email.DEFAULT_EMAIL
Address.DEFAULT_ADDRESS
Price.DEFAULT_PRICE
Rating.DEFAULT.RATING

resolved via #157


cellular_modem: Pinnacle 100 does not work with CONFIG_UART_INTERRUPT_DRIVEN

Describe the bug
When running samples/net/cellular_modem with board pinnacle_100_dvk and option CONFIG_UART_INTERRUPT_DRIVEN, the sample hangs.
To Reproduce
Steps to reproduce the behavior:

cd samples/net/cellular_modem
change boards/pinnacle_100_dvk.conf to enable CONFIG_UART_INTERRUPT_DRIVEN instead of CONFIG_UART_ASYNC_API
west build -p -b pinnacle_100_dvk
west flash

Expected behavior
Pinnacle 100 DVK should be able to run that sample with both UART APIs.
Impact
This is an annoyance at this point.
Logs and console output
Sample hangs at this point:
*** Booting Zephyr OS build v3.6.0-1209-g95040f35a779 ***
Powering on modem
Bring up network interface
Waiting for L4 connected
[00:00:10.352,447] <dbg> modem_chat: modem_chat_script_start: running script: swir_hl7800_init_chat_script
[00:00:10.352,478] <dbg> modem_chat: modem_chat_script_next: swir_hl7800_init_chat_script: step: 0
[00:00:10.352,508] <dbg> modem_chat: modem_chat_script_next: sending: AT
[00:00:10.372,558] <dbg> modem_chat: modem_chat_on_unknown_command_received: KSUP: 0
[00:00:10.372,589] <dbg> modem_chat: modem_chat_on_unknown_command_received: OK
[00:00:10.452,697] <dbg> modem_chat: modem_chat_script_next: swir_hl7800_init_chat_script: step: 1
[00:00:10.452,728] <dbg> modem_chat: modem_chat_script_next: sending: AT
[00:00:10.474,029] <dbg> modem_chat: modem_chat_on_unknown_command_received: OK
[00:00:10.552,886] <dbg> modem_chat: modem_chat_script_next: swir_hl7800_init_chat_script: step: 2
[00:00:10.552,917] <dbg> modem_chat: modem_chat_script_next: sending: AT
[00:00:10.574,218] <dbg> modem_chat: modem_chat_on_unknown_command_received: OK
[00:00:10.653,045] <dbg> modem_chat: modem_chat_script_next: swir_hl7800_init_chat_script: step: 3
[00:00:10.653,076] <dbg> modem_chat: modem_chat_script_next: sending: AT
[00:00:10.674,285] <dbg> modem_chat: modem_chat_on_unknown_command_received: OK
[00:00:10.753,234] <dbg> modem_chat: modem_chat_script_next: swir_hl7800_init_chat_script: step: 4
[00:00:10.753,265] <dbg> modem_chat: modem_chat_script_next: sending: ATE0
[00:00:10.776,153] <dbg> modem_chat: modem_chat_log_received_command: OK
[00:00:10.776,184] <dbg> modem_chat: modem_chat_script_next: swir_hl7800_init_chat_script: step: 5
[00:00:10.776,214] <dbg> modem_chat: modem_chat_script_next: sending: AT+CFUN=1
[00:00:11.223,632] <dbg> modem_chat: modem_chat_log_received_command: OK
[00:00:11.223,663] <dbg> modem_chat: modem_chat_script_next: swir_hl7800_init_chat_script: step: 6
[00:00:11.223,693] <dbg> modem_chat: modem_chat_script_next: sending: AT+CGACT=0
[00:00:11.223,785] <dbg> modem_chat: modem_chat_log_received_command: +CEREG:  2
[00:00:11.247,528] <dbg> modem_chat: modem_chat_log_received_command: OK
[00:00:11.247,558] <dbg> modem_chat: modem_chat_script_next: swir_hl7800_init_chat_script: step: 7
[00:00:11.247,589] <dbg> modem_chat: modem_chat_script_next: sending: AT+CFUN=4
[00:00:11.738,128] <dbg> modem_chat: modem_chat_log_received_command: OK
[00:00:11.738,189] <dbg> modem_chat: modem_chat_script_next: swir_hl7800_init_chat_script: step: 8
[00:00:11.738,220] <dbg> modem_chat: modem_chat_script_next: sending: AT+CMEE=1
[00:00:11.738,311] <dbg> modem_chat: modem_chat_log_received_command: +CEREG:  0
[00:00:11.762,939] <dbg> modem_chat: modem_chat_log_received_command: OK
[00:00:11.762,969] <dbg> modem_chat: modem_chat_script_next: swir_hl7800_init_chat_script: step: 9
[00:00:11.763,000] <dbg> modem_chat: modem_chat_script_next: sending: AT+CREG=1
[00:00:11.786,590] <dbg> modem_chat: modem_chat_log_received_command: OK
[00:00:11.786,621] <dbg> modem_chat: modem_chat_script_next: swir_hl7800_init_chat_script: step: 10
[00:00:11.786,651] <dbg> modem_chat: modem_chat_script_next: sending: AT+CEREG=1
[00:00:11.810,455] <dbg> modem_chat: modem_chat_log_received_command: OK
[00:00:11.810,485] <dbg> modem_chat: modem_chat_script_next: swir_hl7800_init_chat_script: step: 11
[00:00:11.810,516] <dbg> modem_chat: modem_chat_script_next: sending: AT+CREG?
[00:00:11.833,099] <dbg> modem_chat: modem_chat_log_received_command: +CREG:  1 0
[00:00:11.833,160] <dbg> modem_chat: modem_chat_log_received_command: OK
[00:00:11.833,190] <dbg> modem_chat: modem_chat_script_next: swir_hl7800_init_chat_script: step: 12
[00:00:11.833,221] <dbg> modem_chat: modem_chat_script_next: sending: AT+CEREG?
[00:00:11.855,468] <dbg> modem_chat: modem_chat_log_received_command: +CEREG:  1 0
[00:00:11.855,529] <dbg> modem_chat: modem_chat_log_received_command: OK
[00:00:11.855,560] <dbg> modem_chat: modem_chat_script_next: swir_hl7800_init_chat_script: step: 13
[00:00:11.855,590] <dbg> modem_chat: modem_chat_script_next: sending: AT+CGSN
[00:00:11.877,380] <dbg> modem_chat: modem_chat_log_received_command:<PHONE_NUMBER>99517
[00:00:11.877,410] <dbg> modem_chat: modem_chat_script_next: swir_hl7800_init_chat_script: step: 14
[00:00:11.877,471] <dbg> modem_chat: modem_chat_log_received_command: OK
[00:00:11.877,502] <dbg> modem_chat: modem_chat_script_next: swir_hl7800_init_chat_script: step: 15
[00:00:11.877,532] <dbg> modem_chat: modem_chat_script_next: sending: AT+CGMM
[00:00:11.899,871] <dbg> modem_chat: modem_chat_log_received_command:  HL7800
[00:00:11.899,902] <dbg> modem_chat: modem_chat_script_next: swir_hl7800_init_chat_script: step: 16
[00:00:11.899,932] <dbg> modem_chat: modem_chat_log_received_command: OK
[00:00:11.899,963] <dbg> modem_chat: modem_chat_script_next: swir_hl7800_init_chat_script: step: 17
[00:00:11.899,993] <dbg> modem_chat: modem_chat_script_next: sending: AT+CGMI
[00:00:11.922,302] <dbg> modem_chat: modem_chat_log_received_command:  Sierra Wireless
[00:00:11.922,332] <dbg> modem_chat: modem_chat_script_next: swir_hl7800_init_chat_script: step: 18
[00:00:11.922,393] <dbg> modem_chat: modem_chat_log_received_command: OK
[00:00:11.922,424] <dbg> modem_chat: modem_chat_script_next: swir_hl7800_init_chat_script: step: 19
[00:00:11.922,454] <dbg> modem_chat: modem_chat_script_next: sending: AT+CGMR
[00:00:11.944,213] <dbg> modem_chat: modem_chat_log_received_command:  HL78<IP_ADDRESS>.0
[00:00:11.944,244] <dbg> modem_chat: modem_chat_script_next: swir_hl7800_init_chat_script: step: 20
[00:00:11.944,305] <dbg> modem_chat: modem_chat_log_received_command: OK
[00:00:11.944,335] <dbg> modem_chat: modem_chat_script_next: swir_hl7800_init_chat_script: step: 21
[00:00:11.944,366] <dbg> modem_chat: modem_chat_script_next: sending: AT+CIMI
[00:00:11.966,125] <dbg> modem_chat: modem_chat_log_received_command:<PHONE_NUMBER>56789
[00:00:11.966,156] <dbg> modem_chat: modem_chat_script_next: swir_hl7800_init_chat_script: step: 22
[00:00:11.966,217] <dbg> modem_chat: modem_chat_log_received_command: OK
[00:00:11.966,247] <dbg> modem_chat: modem_chat_script_next: swir_hl7800_init_chat_script: step: 23
[00:00:11.966,278] <dbg> modem_chat: modem_chat_script_next: sending: AT+CMUX=0,0,5,127
[00:00:11.966,339] <dbg> modem_chat: modem_chat_script_stop: swir_hl7800_init_chat_script: complete

Could you enable CONFIG_MODEM_LOG_LEVEL_DBG=y and run the sample? I would like to know what state the modem driver is in :)


[victorops] Google Play Store signature invalid

Hi @mar-v-in,
I'm using Victorops (current version: 6.1.118) as a pager application on Omnirom <IP_ADDRESS>51103 with gmscore 8.1.15 (microG v0.01) and blankstore 0.7.4 and no google apps at all.
GCM is not working properly (even if the app was installed after gmscore.)
I'm getting this when I launch the app.
W/GooglePlayServicesUtil(31124): Google Play Store signature invalid.
E/GooglePlayServicesUtil(31124): Google Play services is invalid. Cannot recover.

I'm getting the same when I hit the button reset push notification ID inside the app.
Let me know if you need more information.
Thanks
J.
PS: GCM generally works on my phone. Tested with "Push Notification Tester".

I guess I have seen something similar like that before with another app. When I read this log, I installed the fakeGapps xposed package (despite I'm also running omnirom) and that log disappeared. But still it was not working for me. Have you tried using fakeGapps additionally?

Did you enable signature spoofing in your phone's developer settings?

Well, I was not aware of this setting and I thought it was activated by default.
Thanks to both of you! It works. Closing.


Missing Some Introductory Documentation for Noobs in Theme_Guide.md

I recently discovered the Style Settings plugin and played around with snippets and CSS customization. When I stumbled upon the documentation/Theme_Guide.md I tried to enable most of the stuff the activated Sanctum theme but it doesn't work.
Maybe I just misunderstood what I am reading in the Theme Guide. Can you add a short explanation, if it is showcasing the options you have for customizing the theme through the Style Settings plugin or if it's listing the default benefits of the Sanctum theme.

Hej, no I am currently on 0.15.9 (installer version 0.14.15). But originally the purpose of the documentation was for showcasing the options you have for customizing the theme through the Style Settings plugin?
 Sanctum has been the theme I have been using for most of the time. Today I have found Primary and will use it for some time, but I still love Sanctum and will go back to it from time to time :)

The documentation was originally created in order to showcase some of the theme's features that weren't easily discoverable. I believe there's an outdated list of Style Settings in the README. For 0.16, there will be a lot more SS options, so besides finally updating said list, I think I'll have to include at least some in the documentation.

Still looking to figure things out. How do you achive the highlighting that just underlines the highlight, till you hover it, seen in https://github.com/jdanielmourao/obsidian-sanctum/blob/main/documentation/Theme_Guide.md

Still looking to figure things out. How do you achive the highlighting that just underlines the highlight, till you hover it, seen in https://github.com/jdanielmourao/obsidian-sanctum/blob/main/documentation/Theme_Guide.md

That effect has been deprecated for the time being. I might add it as a Style Settings option later on though.

Would love to see that. Your spin on the whole styling was freaking amazing!


Create compile.bat

Checks to see if Python is in %PATH%
Installs pyinstaller & requirements
Copies cacert.pem and config.ini to the dist folder

Also update requests to 2.22.0


unable to reject source suggestion

In the source suggestion queue, It appears "as a curator" as though I can not reject a suggestion. hovering over the reject button produces the stop sign and the button's alpha is lighter. I can actually click and reject, refreshing the page it seems to work so this is probably just an aesthetic issue.

Actually correction, I am unable to reject at all. logging out and back in does nothing. Is this perhaps just an editor privelege?

Yeah currently that button will only be enabled for Editors.


Fix bug in Shapley estimator

Before, the early stopping did not stop even if the threshold was reached.

Is there some failing test?

Is there some failing test?

No, it is only reflecting on the runtime. The "early stopping" should stop before we reach something like max_runs, but it currently doesn't and performs all max_runs many iterations.

Doing this through a timeout is one way to do it. And it probably works most of the time. However, you could get flakes when your system is under heavy load due to arbitrary reasons. I'm wondering if you could simply return the number of iterations as meta result and assert on that. Would this make sense?

I see the issue with the dependency on the system performance, would it make sense to set the timeout threshold higher then? It is currently setup in a way that it would end up in an endless loop if there is a bug (until the threshold is reached). I am not sure if a meta-information is interesting beyond this unit test, i.e., we would probably just throw it away in all the methods using it. This is probably not worth it.


⚠ Bofrost.lu has degraded performance

In a834fb2, Bofrost.lu (https://www.bofrost.lu) experienced degraded performance:

HTTP code: 200
Response time: 919 ms

Resolved: Bofrost.lu performance has improved in 589b302 after 6 minutes.


Remove the fallback when creating Python virtual env

Testing for now
See https://github.com/grpc/grpc/issues/15253 for more context. The
original behavior when running Python tests is to try to create a
virtual env with the specifed Python version. If there is an issue
with that, fallback to the system's default Python version. This leads to
misleading test results, so removing the fallback and failing the test
when virtual env fails to instantiate the specified Python version is
the new behavior.

****************************************************************

libgrpc.so

     VM SIZE        FILE SIZE
 ++++++++++++++  ++++++++++++++

  [ = ]       0        0  [ = ]

****************************************************************

libgrpc++.so

     VM SIZE        FILE SIZE
 ++++++++++++++  ++++++++++++++

  [ = ]       0        0  [ = ]

[trickle] No significant performance differences

[microbenchmarks] No significant performance differences

****************************************************************

libgrpc.so

     VM SIZE        FILE SIZE
 ++++++++++++++  ++++++++++++++

  [ = ]       0        0  [ = ]

****************************************************************

libgrpc++.so

     VM SIZE        FILE SIZE
 ++++++++++++++  ++++++++++++++

  [ = ]       0        0  [ = ]

[trickle] No significant performance differences

[microbenchmarks] No significant performance differences

[trickle] No significant performance differences

[microbenchmarks] No significant performance differences

Interop failures: #15289


Create submodule branch for easier reviews

This was pinned to jito-solana master but is just a series of dangling commits, makes it hard to do reviews in this repo. Named submodule to match jito-programs, we can assume submodule HEAD is always pinned with jito-solana master

No need to merge on master, just opened review for visibility


Transpile to .js

Currently the file extensions from src are being preserved, which means that the transpiled files hae the .jsx extension.  This makes it semi-painful to consume lib because the module bundler must be configured to recognize .jsx.
In the long run I think we should probably rename .jsx files in src to .js

Current coverage is 95.47%

Merging #439 into master will not affect coverage as of 714d2c3

@@            master    #439   diff @@
======================================
  Files            9       9
  Stmts          221     221
  Branches        44      44
  Methods         90      90
======================================
  Hit            211     211
  Partial          2       2
  Missed           8       8

Review entire Coverage Diff as of 714d2c3

Powered by Codecov. Updated on successful CI builds.

@dmnd, does this sound good to you?

Absolutely 👍
Thanks for asking!

Awesome!

Nice work!
On Sun, Apr 3, 2016 at 5:13 PM Rafee Memon<EMAIL_ADDRESS>wrote:

Merged #439 https://github.com/Hacker0x01/react-datepicker/pull/439.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub
https://github.com/Hacker0x01/react-datepicker/pull/439#event-612737868


function: tweak description of S.flip

Closes #235
Does this change look good to you, @kedashoe?

:+1:


Allow listing resources per namespace

frontend: Allow using a namespace in KubeObject's useList and useApiList
frontend: Support multiple namespaces in KubeObject's use(Api)List

fixes #450

Sure. Thanks.

The examples given useList('default') and useList(['default', 'kube-system']) don't seem to match the argument signature. I think they should be: useList({namespace: 'default'}).

Looking through it, I see it makes multiple API calls and gathers the results. So now it will call the callback multiple times. I think this would work ok most of the time, and only be a problem if there is a slow or errored response(s) for some reason - in this case it will probably display incorrectly without the user being aware. Could be fixed in another iteration I guess... up to you. Or maybe it's more desirable to show the results as they come in as is.

The examples given useList('default') and useList(['default', 'kube-system']) don't seem to match the argument signature. I think they should be: useList({namespace: 'default'}).

Sorry, I have just updated it.


Update Azure built-in roles with Microsoft Sentinel Playbook Operator role

Hi,
is it possible to update this page with Microsoft Sentinel Playbook Operator role?
https://learn.microsoft.com/en-us/azure/role-based-access-control/built-in-roles
Here are permissions and details:
{
"id": "/providers/Microsoft.Authorization/roleDefinitions/51d6186e-6489-4900-b93f-92e23144cca5",
"properties": {
"roleName": "Microsoft Sentinel Playbook Operator",
"description": "Microsoft Sentinel Playbook Operator",
"assignableScopes": [
"/"
],
"permissions": [
{
"actions": [
"Microsoft.Logic/workflows/read",
"Microsoft.Logic/workflows/triggers/listCallbackUrl/action",
"Microsoft.Web/sites/hostruntime/webhooks/api/workflows/triggers/listCallbackUrl/action",
"Microsoft.Web/sites/read"
],
"notActions": [],
"dataActions": [],
"notDataActions": []
}
]
}
}

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

ID: 99581afb-7950-6daa-7227-055d04446b7e
Version Independent ID: f1a5bf89-9e54-aede-3a9a-70788a95927b
Content: Azure built-in roles - Azure RBAC
Content Source: articles/role-based-access-control/built-in-roles.md
Service: role-based-access-control
GitHub Login: @rolyon
Microsoft Alias: rolyon

@BenjiSec
Thanks for your feedback! We will investigate and update as appropriate.

Hi @BenjiSec
Thanks for your feedback. We've added this role.
https://learn.microsoft.com/en-us/azure/role-based-access-control/built-in-roles#microsoft-sentinel-playbook-operator
Let us know if you have additional feedback.
thanks

#please-close


Add support for new products endpoint

We're introducing a new feature for merchants, to provide the ability to sort a subset of products at the top of the collection as detailed here.
In support of these changes, we are making modifications to the SmartCollection API. Specifically, the behaviour of the order endpoint will change as detailed in the updated API docs. Additionally, we are adding a new products endpoint, to provide the ability to retrieve products in the collection, filtered by manually sorted or automatically sorted.
This PR adds support to the Shopify API gem for the new products endpoint. Since ShopifyAPI already has SmartCollection.products defined to so a search for products on collections, this will be a two step process:
1 - Add support for existing SmartCollection.products to call the new products endpoint. Prior to the new manual sort feature being on all shops, we will only use the endpoint when only_sorted is provided as a filter.
2 - Once the new manual sort feature is available on all shops, change products to always use the products endpoint on the controller. This will change the sort order of the products, but I think that will be ok. Also for the test/example we can add the new column for manually sorted to the results to provide a better example.
WHAT TO FOCUS ON

Are there any risks with reusing the products method? Should we give a different name to our new endpoint? We know that the sort order will change from find, to our new endpoint. Could this be a risk to API clients using this gem?
I still need to decide if I should bump the version now, or only after the entire change. Opinions?

For more context, see https://github.com/Shopify/core/issues/1509

Out of curiosity, will this be supported in the CollectionListings controller as well?

Ready for 👀 again.

Loading products more consistently using Product.find
Added "manually_sorted" to the products for my new fake fixtures
Addressed 👮


[Style] Enhance the home page

What's the style idea?
We need to enhance the web page background by giving it a more modern and refreshing look. Bright and pastel colors can infuse the web page with vibrancy and evoke a sense of liveliness. Additionally, they can create a visually appealing and cheerful ambiance that engages users and leaves a lasting impression. I believe that this update will enhance the overall user experience and make our website more visually appealing. Changing the font type of the website and updating the icon designs for Instagram, Twitter, etc., will enhance the overall visual appeal. Additionally, we need to create a little more space between these icons (i.e. insta, twitter,github) and "created by Rakesh" line to avoid a congested appearance.

Checklist

[X] I have checked the existing issues.
[X] I follow Contributing Guidelines of this project.
[X] I am a GSSOC'24 contributor.
[ ] I am a IWOC'24 contributor.
[ ] I am a JWOC'24 contributor.
[ ] I am a SWOC'24 contributor.

Code of Conduct

[X] I agree to follow this project's "Code of Conduct".

Hi Arushi, Sorry for the late response. But, it is still not clear that what UI changes you want to make. If possible, provide me the example screenshot of how the website will look after your changes. Make sure to check the current website and the latest repo @Arushi009

Hello Rakesh,
This is what I wanted to convey to you -

We need to enhance the web page background by giving it a more modern
and refreshing look. Bright and pastel colors can infuse the web page with
vibrancy and evoke a sense of liveliness. Additionally, they can create a
visually appealing and cheerful ambiance that engages users and leaves a
lasting impression
Change the blobs in the background in Image 1
https://drive.google.com/file/d/1iaCl1wksiuBpIwpvNqoeDFNpwRlQToBN/view?usp=drive_link
into 3d meta blobs to make it realistic.
Improve the visual appeal by changing the font type and color of the
button options in Image 2
https://drive.google.com/file/d/1kWvv9KP3M_Y-OcaknPcTAcbi1Hhnoey_/view?usp=drive_link
.
We need to create more space between these icons (i.e. Instagram,
Twitter, GitHub) and the "created by Rakesh" line to avoid a cluttered
appearance. I have made the necessary adjustments in Image 3
https://drive.google.com/file/d/1sca0sU3bKvJkzzklGdJ-Y4kEJBFV-Gud/view?usp=drive_link
to
create Image 4
https://drive.google.com/file/d/1bA5VyLxFUdLhpRychOhXDNog1DERa5_E/view?usp=drive_link
to
make it simple and ensuring that there is sufficient space between them.

Yours sincerely
Arushi Mahapatra
GSSoc Contributor 2024
On Tue, Jul 16, 2024 at 10:58 AM Rakesh Roshan @.***>
wrote:

Hi Arushi, Sorry for the late response. But, it is still not clear that
what UI changes you want to make. If possible, provide me the example
screenshot of how the website will look after your changes. Make sure to
check the current website and the latest repo @Arushi009
https://github.com/Arushi009
—
Reply to this email directly, view it on GitHub
https://github.com/Rakesh9100/Beautiify/issues/973#issuecomment-2230053775,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/BEESRDSJLUCWXBD5AEARPQ3ZMSVQDAVCNFSM6AAAAABJFVSPQKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDEMZQGA2TGNZXGU
.
You are receiving this because you were mentioned.Message ID:
@.***>

Since this is my first and also my last project and I haven't gotten any
projects in gssoc ,kindly allow me to showcase my skills here as gssoc is
nearing its end.
On Sat, Jul 20, 2024 at 12:34 PM Arushi Mahapatra @.***>
wrote:

Hello Rakesh,
This is what I wanted to convey to you -

We need to enhance the web page background by giving it a more
modern and refreshing look. Bright and pastel colors can infuse the web
page with vibrancy and evoke a sense of liveliness. Additionally, they can
create a visually appealing and cheerful ambiance that engages users and
leaves a lasting impression
Change the blobs in the background in Image 1
https://drive.google.com/file/d/1iaCl1wksiuBpIwpvNqoeDFNpwRlQToBN/view?usp=drive_link
into 3d meta blobs to make it realistic.
Improve the visual appeal by changing the font type and color of
the button options in Image 2
https://drive.google.com/file/d/1kWvv9KP3M_Y-OcaknPcTAcbi1Hhnoey_/view?usp=drive_link
.
We need to create more space between these icons (i.e. Instagram,
Twitter, GitHub) and the "created by Rakesh" line to avoid a cluttered
appearance. I have made the necessary adjustments in Image 3
https://drive.google.com/file/d/1sca0sU3bKvJkzzklGdJ-Y4kEJBFV-Gud/view?usp=drive_link to
create Image 4
https://drive.google.com/file/d/1bA5VyLxFUdLhpRychOhXDNog1DERa5_E/view?usp=drive_link to
make it simple and ensuring that there is sufficient space between them.

Yours sincerely
Arushi Mahapatra
GSSoc Contributor 2024
On Tue, Jul 16, 2024 at 10:58 AM Rakesh Roshan @.***>
wrote:

Hi Arushi, Sorry for the late response. But, it is still not clear that
what UI changes you want to make. If possible, provide me the example
screenshot of how the website will look after your changes. Make sure to
check the current website and the latest repo @Arushi009
https://github.com/Arushi009
—
Reply to this email directly, view it on GitHub
https://github.com/Rakesh9100/Beautiify/issues/973#issuecomment-2230053775,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/BEESRDSJLUCWXBD5AEARPQ3ZMSVQDAVCNFSM6AAAAABJFVSPQKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDEMZQGA2TGNZXGU
.
You are receiving this because you were mentioned.Message ID:
@.***>

The drive link is showing me no access, can you provide the access to my email to view your drive files @Arushi009

Can you try it now sir?
On Fri, 2 Aug, 2024, 23:53 Rakesh Roshan, @.***> wrote:

The drive link is showing me no access, can you provide the access to my
email to view your drive files @Arushi009 https://github.com/Arushi009
—
Reply to this email directly, view it on GitHub
https://github.com/Rakesh9100/Beautiify/issues/973#issuecomment-2265918399,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/BEESRDWNXSEAIQWQDDWU4C3ZPPFB3AVCNFSM6AAAAABJFVSPQKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDENRVHEYTQMZZHE
.
You are receiving this because you were mentioned.Message ID:
@.***>

Pls check the present website as many new changes has been added, and then if you want to make any proper modifications, let me know @Arushi009

Sir,Can you please send me the link to the modified website
On Sat, 3 Aug, 2024, 00:02 Rakesh Roshan, @.***> wrote:

Pls check the present website as many new changes has been added, and then
if you want to make any proper modifications, let me know @Arushi009
https://github.com/Arushi009
—
Reply to this email directly, view it on GitHub
https://github.com/Rakesh9100/Beautiify/issues/973#issuecomment-2265931926,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/BEESRDWRMVPCCXOI3BL3JJLZPPGEJAVCNFSM6AAAAABJFVSPQKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDENRVHEZTCOJSGY
.
You are receiving this because you were mentioned.Message ID:
@.***>

Check here @Arushi009

Check here!!
And pls don't say to make changes to the footer as issue is already open for that @Arushi009

Hello Rakesh,
This is what I wanted to convey to you -

We need to enhance the web page background by giving it a more modern
and refreshing look. Bright and pastel colors can infuse the web page with
vibrancy and evoke a sense of liveliness. Additionally, they can create a
visually appealing and cheerful ambiance that engages users and leaves a
lasting impression
Improve the visual appeal by changing the font type and color of the
button options in Image 2
https://drive.google.com/file/d/1kWvv9KP3M_Y-OcaknPcTAcbi1Hhnoey_/view?usp=drive_link
.

Thanks
Arushi
On Sat, 3 Aug, 2024, 00:02 Rakesh Roshan, @.***> wrote:

Pls check the present website as many new changes has been added, and then
if you want to make any proper modifications, let me know @Arushi009
https://github.com/Arushi009
—
Reply to this email directly, view it on GitHub
https://github.com/Rakesh9100/Beautiify/issues/973#issuecomment-2265931926,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/BEESRDWRMVPCCXOI3BL3JJLZPPGEJAVCNFSM6AAAAABJFVSPQKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDENRVHEZTCOJSGY
.
You are receiving this because you were mentioned.Message ID:
@.***>

Hello Rakesh,
Could you kindly reply back so that i can work on it?
Thanks
Arushi
On Tue, 6 Aug 2024 at 7:44 AM, Arushi Mahapatra @.***>
wrote:

Hello Rakesh,
This is what I wanted to convey to you -

We need to enhance the web page background by giving it a more
modern and refreshing look. Bright and pastel colors can infuse the web
page with vibrancy and evoke a sense of liveliness. Additionally, they can
create a visually appealing and cheerful ambiance that engages users and
leaves a lasting impression
Improve the visual appeal by changing the font type and color of
the button options in Image 2
https://drive.google.com/file/d/1kWvv9KP3M_Y-OcaknPcTAcbi1Hhnoey_/view?usp=drive_link
.

Thanks
Arushi
On Sat, 3 Aug, 2024, 00:02 Rakesh Roshan, @.***>
wrote:

Pls check the present website as many new changes has been added, and
then if you want to make any proper modifications, let me know @Arushi009
https://github.com/Arushi009
—
Reply to this email directly, view it on GitHub
https://github.com/Rakesh9100/Beautiify/issues/973#issuecomment-2265931926,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/BEESRDWRMVPCCXOI3BL3JJLZPPGEJAVCNFSM6AAAAABJFVSPQKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDENRVHEZTCOJSGY
.
You are receiving this because you were mentioned.Message ID:
@.***>

Hi Arushi,
You can go ahead and start your work. Make sure to update your forked repo
with the latest updates to avoid merge conflicts.
Regards
Rakesh
On Tue, Aug 6, 2024, 11:49 AM Arushi009 @.***> wrote:

Hello Rakesh,
Could you kindly reply back so that i can work on it?
Thanks
Arushi
On Tue, 6 Aug 2024 at 7:44 AM, Arushi Mahapatra @.***>
wrote:

Hello Rakesh,
This is what I wanted to convey to you -

We need to enhance the web page background by giving it a more
modern and refreshing look. Bright and pastel colors can infuse the web
page with vibrancy and evoke a sense of liveliness. Additionally, they
can
create a visually appealing and cheerful ambiance that engages users and
leaves a lasting impression
Improve the visual appeal by changing the font type and color of
the button options in Image 2
<
https://drive.google.com/file/d/1kWvv9KP3M_Y-OcaknPcTAcbi1Hhnoey_/view?usp=drive_link>

.
Thanks
Arushi
On Sat, 3 Aug, 2024, 00:02 Rakesh Roshan, @.***>
wrote:

Pls check the present website as many new changes has been added, and
then if you want to make any proper modifications, let me know
@Arushi009
https://github.com/Arushi009
—
Reply to this email directly, view it on GitHub
<
https://github.com/Rakesh9100/Beautiify/issues/973#issuecomment-2265931926>,

or unsubscribe
<
https://github.com/notifications/unsubscribe-auth/BEESRDWRMVPCCXOI3BL3JJLZPPGEJAVCNFSM6AAAAABJFVSPQKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDENRVHEZTCOJSGY>

.
You are receiving this because you were mentioned.Message ID:
@.***>

—
Reply to this email directly, view it on GitHub
https://github.com/Rakesh9100/Beautiify/issues/973#issuecomment-2270471146,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ARUQ4L6U5ZLU2WDO6QUIEHDZQBTFXAVCNFSM6AAAAABJFVSPQKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDENZQGQ3TCMJUGY
.
You are receiving this because you commented.Message ID:
@.***>

please assign the gssoc label to me.

Level label will be added after PR is merged successfully @Arushi009

Hello sir,
Today is the last day of gssoc so could kindly merge my pr
On Thu, Aug 8, 2024 at 4:02 PM Rakesh Roshan @.***>
wrote:

Assigned #973 https://github.com/Rakesh9100/Beautiify/issues/973 to
@Arushi009 https://github.com/Arushi009.
—
Reply to this email directly, view it on GitHub
https://github.com/Rakesh9100/Beautiify/issues/973#event-13804736908,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/BEESRDVOY7SCG65NCS7TPITZQNCNFAVCNFSM6AAAAABJFVSPQKVHI2DSMVQWIX3LMV45UABCJFZXG5LFIV3GK3TUJZXXI2LGNFRWC5DJN5XDWMJTHAYDINZTGY4TAOA
.
You are receiving this because you were assigned.Message ID:
@.***>


enhanced address is being used from node to local pods unexpectedlly

Bug Report
Type: bug report
What happened

Enhanced address is being used, when we want to ping local pods from node. This will cause the ICMP reply will never come back.
What you expected to happen
How to reproduce it (as minimally and precisely as possible)
Anything else we need to know?
Environment

hybridnet version: 3.2.0
OS (e.g. cat /etc/os-release):
Kernel (e.g. uname -a):
Kubernetes version:
Install tools:
Others:

Related to #31

Actually, the problem is that the "enhanced address" used for vlan arp enhancement will be selected as source address for host traffic sometimes. But we just need it to be the source address for pod traffic.
We need to find a way to prevent enhanced addresses from source address selection for the host traffic.


How to simultaneously maintain multiple build variants?

Hi,
Can I simultaneously maintain multiple build variants with py-build-cmake? By build variants, I mean different options passed to CMake, in addition to multiple architectures. For example, PyTorch release one variant for each CUDA version, like torch==2.0.0+cu118 or torch==2.0.0+cu117. Do I have to provide a different toml file for each variant, and override the default one by py-build-cmake --local manually?

I see --local can be specified for multiple times, so the options can be combined.


Add link to index types in CREATE INDEX doc

Add link to index types in CREATE INDEX doc

Thanks!


network analyzer docs out of date...

Hi,
Something for an overhaul at some point: the out-of-box network analyzer code from the documentation page does not work:

I'm digging in the unit tests now to find what the correct usage is, I'll post here a simple example when I work it out

(I'm currently working on the python3_only branch)

(I'm currently working on the python3_only branch)

an update:
I am guessing that na.curve() has been replaced with na.single()?
This code runs:
t0 = time.time()
# shortcut for na
na = p.networkanalyzer
na.iq_name = 'iq1'

# setup network analyzer with the right parameters
na.setup(start=1e3,stop=62.5e6,points=1001,rbw=1000,
         amplitude=0.2,input='iq1',output_direct='off',
         acbandwidth=0)

#take transfer functions. first: iq1 -> iq1, second iq1->out1->(your cable)->adc1
data1 = na.single()
na.setup(input='in1', output_direct='out1')
data2 = na.single()

# get x-axis for plotting
f = na.frequencies
print("Time: %.2f" % (time.time()-t0))

plt.plot(f,np.abs(data1))
plt.plot(f,np.abs(data2))

But I do have a few observations:
(1) I've run this with an 8 inch SMA cable (rated to 18 GHz) from output to the input, with a tee and a 50 ohm terminator at the input, this is what I see:

The peak around 20% of the way up seems strange? Also, the frequency axis seems very off? I think that na.frequencies is not working properly?
(2) It is very slow (48 seconds, 24 seconds per trace...). If I look at an RBW of 1000 Hz (1 ms), and assume we allow for a settling time of 10 $\tau$ for the output filter, I would expect something more like 1001 ms = 1 second, but the actual acquisition seems to take 50 times longer?
Cheers,
Gary

an update:
I am guessing that na.curve() has been replaced with na.single()?
This code runs:
t0 = time.time()
# shortcut for na
na = p.networkanalyzer
na.iq_name = 'iq1'

# setup network analyzer with the right parameters
na.setup(start=1e3,stop=62.5e6,points=1001,rbw=1000,
         amplitude=0.2,input='iq1',output_direct='off',
         acbandwidth=0)

#take transfer functions. first: iq1 -> iq1, second iq1->out1->(your cable)->adc1
data1 = na.single()
na.setup(input='in1', output_direct='out1')
data2 = na.single()

# get x-axis for plotting
f = na.frequencies
print("Time: %.2f" % (time.time()-t0))

plt.plot(f,np.abs(data1))
plt.plot(f,np.abs(data2))

But I do have a few observations:
(1) I've run this with an 8 inch SMA cable (rated to 18 GHz) from output to the input, with a tee and a 50 ohm terminator at the input, this is what I see:

The peak around 20% of the way up seems strange? Also, the frequency axis seems very off? I think that na.frequencies is not working properly?
(2) It is very slow (48 seconds, 24 seconds per trace...). If I look at an RBW of 1000 Hz (1 ms), and assume we allow for a settling time of 10 $\tau$ for the output filter, I would expect something more like 1001 ms = 1 second, but the actual acquisition seems to take 50 times longer?
Cheers,
Gary

I noticed a mistake in my calculation: 1001110 = 10 seconds, so the factor is only 5...I'll dig a bit in the code to try to understand better how it works.

I noticed a mistake in my calculation: 1001110 = 10 seconds, so the factor is only 5...I'll dig a bit in the code to try to understand better how it works.

I'm still having trouble interpreting any of the results from the NA code
I've cross checked it with the bode analyzer from the RP, and this works fine (aside from some electrical resonances probably due to the RP port impedances), but the PYRPL NA seems to give something that makes no sense?
This is a 25 MHz HP filter measured using the PYRPL NA code (same as above, with HP filter in series

whereas this is exactly the same device measured using the Bode analyser:

I'm still having trouble interpreting any of the results from the NA code
I've cross checked it with the bode analyzer from the RP, and this works fine (aside from some electrical resonances probably due to the RP port impedances), but the PYRPL NA seems to give something that makes no sense?
This is a 25 MHz HP filter measured using the PYRPL NA code (same as above, with HP filter in series

whereas this is exactly the same device measured using the Bode analyser:

Have you checked if nothing was preventing the output to work correctly ? A frequent pitfall with Pyrpl is the saturation of the output, since the output_direct from all modules are sumed before being outputed to out1 or out2. Can you check with the scope during the NA scan, that the signal of output1 looks like what you would expect ? (I would recommend using the gui for that)
Did you find where the bug with the frequency axis was coming from in the mean time ?

Have you checked if nothing was preventing the output to work correctly ? A frequent pitfall with Pyrpl is the saturation of the output, since the output_direct from all modules are sumed before being outputed to out1 or out2. Can you check with the scope during the NA scan, that the signal of output1 looks like what you would expect ? (I would recommend using the gui for that)
Did you find where the bug with the frequency axis was coming from in the mean time ?

I broke down and finally tried out the GUI (stubborn :))
Things look pretty good, these are my LPF and HPF in the GUI:

Will see if I can get this going in the notebook too. The GUI took me a bit of getting used to but it is a good interactive interface I must say :)

I broke down and finally tried out the GUI (stubborn :))
Things look pretty good, these are my LPF and HPF in the GUI:

Will see if I can get this going in the notebook too. The GUI took me a bit of getting used to but it is a good interactive interface I must say :)

the feature around 12 MHz btw seems to be an impedance issue of RP...the real HPF is very flat on my VNA:

the feature around 12 MHz btw seems to be an impedance issue of RP...the real HPF is very flat on my VNA:

Did this measurement use a 50-Ohm terminator both at the RP output and input?

Did this measurement use a 50-Ohm terminator both at the RP output and input?


Ring a bell if search hit top/bottom and is continuing

Also add 'bo' option value: topbot, which removes the bell.

The default should be for the bell to NOT ring.  Please don't make everyone tweak their vimrc just to get the behavior that's always been there.
Also, according to the docs (at :h belloff, after the list), normal mode bells are all governed by error.  But a search hitting top/bottom is a normal mode event.

Most users don't like adding a bell, even a visual one.  Let's not do this.

Please reconsider. The "search hit bottom, continuing at top" is very easy to miss. Setting "nowrapscan" is too drastic. As far as I know it's not possible for Vim to act like most other programs with search support, which will reach the bottom and ASK whether to continue searching at the top.

On Do, 25 Aug 2016, fritzophrenic wrote:

Please reconsider. The "search hit bottom, continuing at top" is very
easy to miss. Setting "nowrapscan" is too drastic. As far as I know
it's not possible for Vim to act like most other programs with search
support, which will reach the bottom and ASK whether to continue
searching at the top.

Then, perhaps don't ring the bell, but do something other?
Best,
Christian
Die höchste Form der Eitelkeit ist die Ruhmesliebe.
-- George de Santayana

On Thu, Aug 25, 2016 at 9:56 AM, Christian Brabandt <
<EMAIL_ADDRESS>wrote:

On Do, 25 Aug 2016, fritzophrenic wrote:

Please reconsider. The "search hit bottom, continuing at top" is very
easy to miss. Setting "nowrapscan" is too drastic. As far as I know
it's not possible for Vim to act like most other programs with search
support, which will reach the bottom and ASK whether to continue
searching at the top.

Then, perhaps don't ring the bell, but do something other?

A different solution to the problem would be acceptable. But it needs to be
attention-grabbing. :-)
At one point there was a proposal for an autocmd event which could trigger
on errors. That would probably have allowed setting nowrapscan, catching
the error for no more matches, and starting over again from the top. But
that proposal got rejected IIRC.

I've been using this patch for some time.  I don't like a bell, but this
was the easiest solution that grabs attention and it works well for me
(I use the bell only for this purpose).
Another thing I can think of is to flash the screen, this can seem
drastic but the background color for that could be configurable - while
the bell is not and it might not work well you're listening to music.
Another idea would be to just change flash the status line.  All of them
could be implemented if vim had an autocommand group for this case.
Cheers,
Marcin
On 08:00 Thu 25 Aug     , fritzophrenic wrote:

On Thu, Aug 25, 2016 at 9:56 AM, Christian Brabandt <
<EMAIL_ADDRESS>wrote:

On Do, 25 Aug 2016, fritzophrenic wrote:

Please reconsider. The "search hit bottom, continuing at top" is very
easy to miss. Setting "nowrapscan" is too drastic. As far as I know
it's not possible for Vim to act like most other programs with search
support, which will reach the bottom and ASK whether to continue
searching at the top.

Then, perhaps don't ring the bell, but do something other?

A different solution to the problem would be acceptable. But it needs to be
attention-grabbing. :-)
At one point there was a proposal for an autocmd event which could trigger
on errors. That would probably have allowed setting nowrapscan, catching
the error for no more matches, and starting over again from the top. But
that proposal got rejected IIRC.
--
You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub:
https://github.com/vim/vim/pull/695#issuecomment-242419751

Maybe wen can borrow the idea from emacs: Only show an warnning message
at the first time; Do wrapscan at the second time.

Looks like pull request #1009 was added as an alternate way to get the user's attention in a user-configurable manner, by adding an autocmd event to let the user specify an action.


External api endpoint install failure

I'm creating a new cluster with api endpoint as by the docs.
Setup gives the error:
SocketError : Failed to open TCP connection to xxx.xxxx.xxx:6443
Documentation gaves no clue if I have to setup this endpoint to masters before running the installation.
Cluster is up with no nodes.
I was expecting this to be just a external nickname pointing to the masters (loadbalancer or dns) not something used internally, specially the setup itself.

The api.endpoint is also used for all kube API requests by the pharos-cluster CLI itself, once all the master hosts have been configured - in addition to being a subjectAltName on the master kube API certificates.
It should point to a LB/DNS that is provisioned at the same time as the machines themselves - this should be clarified in the docs.

Can be list?
The docs in: https://kubernetes.io/docs/concepts/cluster-administration/certificates
say is a list of alternative names.
My use case is that all traffic is internal in a  VPN network but only ports 6443, http and https is acessible by external traffic. I plan to use one local dns and one external pointing to different ips.

Interesting, first I setup with the api it gives the error, then I run again without it, cluster has been setup.
Then I create a /etc/hosts in the machine running pharos cli to bypass the setup and run again with api.
Cluster is now unstable and I'm not able to create pods.
Investigation leads to:
`
kubectl -n kube-system describe pod pharos-proxy-k8s-worker0
Warning  FailedMount  3h (x2 over 3h)  kubelet, k8s-master0  MountVolume.SetUp failed for volume "kube-proxy" : Get https://localhost:6443/api/v1/namespaces/kube-system/configmaps/kube-proxy: net/http: TLS handshake timeout
`
Which means certs are wrong.
Also:
`
kubectl -n kube-system get pods
NAME                                      READY     STATUS              RESTARTS   AGE
etcd-k8s-master-ams0                      0/1       CrashLoopBackOff    33         13m
etcd-k8s-master0                          1/1       Running             12         5h
etcd-k8s-master1                          1/1       Running             9          5h
heapster-558c7ddb57-s5658                 0/1       ContainerCreating   0          4h
kube-apiserver-k8s-master-ams0            1/1       Running             45         13m
kube-apiserver-k8s-master0                1/1       Running             6          3h
kube-apiserver-k8s-master1                1/1       Running             1          3h
kube-controller-manager-k8s-master-ams0   1/1       Running             0          13m
kube-controller-manager-k8s-master0       1/1       Running             9          3h
kube-controller-manager-k8s-master1       1/1       Running             12         3h
kube-dns-6475cffd7f-4gv4v                 3/3       Running             0          2h
kube-dns-6475cffd7f-8zxbm                 0/3       CrashLoopBackOff    239        4h
kube-proxy-54pqq                          1/1       Running             0          5h
kube-proxy-7mgbz                          1/1       Running             0          5h
kube-proxy-cct6n                          1/1       Running             0          5h
kube-proxy-dp47c                          0/1       CrashLoopBackOff    58         4h
kube-proxy-tb68k                          0/1       CrashLoopBackOff    59         4h
kube-scheduler-k8s-master-ams0            1/1       Running             0          13m
kube-scheduler-k8s-master0                1/1       Running             15         5h
kube-scheduler-k8s-master1                1/1       Running             18         5h
pharos-proxy-k8s-worker0                  1/1       Running             0          4h
pharos-proxy-k8s-worker1                  1/1       Running             0          4h
weave-net-44hvp                           0/2       CrashLoopBackOff    112        4h
weave-net-qn4qv                           2/2       Running             0          4h
weave-net-rng6s                           2/2       Running             0          4h
weave-net-spl4x                           2/2       Running             0          4h
weave-net-zlfxd                           0/2       CrashLoopBackOff    110        4h
`
Crucial system pods are crashed.
I will complete rebuild cluster (easier for me)

I'm having some problems with pharos installation and this config.
When I try to create a cluster with external API it crash after installation, cluster is slow and buggy, kube-proxy and etcd loop crash. Even with DNS records.
If I install without it, everything works fine. Problem is I can't use kubectl outside the private network x509 certificate do not allow access thought api, which makes the cluster kind of useless.
First I thought it was a firewall issue, I try with firewall disabled.
The final thing I will try is to use the external ip address for systems, but that means all nodes need a dedicated IP, and HA access to kubeapi will be trick (need to point to ip address not DNS or loadbalancer).
What I'm trying to achieve is cluster isolated in internal network, while kubeapi is external . I don't have a IP loadbalancer, but even with it, I don't think it will make a difference in this problem.

@giovannicandido could you paste an example cluster.yml that describes your setup?

hosts:
  - address: "<IP_ADDRESS>"
    private_interface: zt5u4y6ejv
    user: root
    role: master
  - address: "<IP_ADDRESS>"
    private_interface: zt5u4y6ejv
    user: root
    role: master
  - address: "<IP_ADDRESS>"
    private_interface: zt5u4y6ejv
    user: root
    role: master
  - address: "<IP_ADDRESS>"
    role: worker
    private_interface: zt5u4y6ejv
    user: root
  - address: "<IP_ADDRESS>"
    role: worker
    private_interface: zt5u4y6ejv
    user: root
network:
  provider: weave
  service_cidr: <IP_ADDRESS>/16
  pod_network_cidr: <IP_ADDRESS>/16
  weave:
    trusted_subnets:
      - "<IP_ADDRESS>/16"
api:
  endpoint: k8s.xxx.xxx

k8s.xxx.xxx points to masters valid ip address.
Each system has a invalid ip address in eth0 and a vpn interface zt5u4y6ejv. The valid ip address is a Transparent (all ports redirection) NAT

https://www.zerotier.com/

Not sure why would you need an additional p2p mesh network (weave is already a p2p mesh network)?  This probably causes slowness & random network failures because you have two mesh network layers and weave probably also tries to create ipsec tunnels between peers.
Is zerotier mandatory here or would plain weave network be enough?

Using trusted_subnets, if is passed to weave, should not re-encrypt traffic.
The cloud provider doesn't have a SDN network, and shares the private ip space with other customers.
Zerotier is not mandatory, but high compelling. It acts like a VPN where clients (admins) could connect to the same network as if is local (OpenVPN like) without a single point of failure and with good performance (no central routing).
It also can provide datacenter agnostic migration, the ip address can be just migrated to another datacenter without downtime.
I will experiment other approaches but, it works well.
I will comment the results.

In this (kinda exotic) case you probably need to define zerotier network as a "trusted subnet". Otherwise weave will encrypt traffic within zerotier using IPSEC. Other option is to use calico with zerotier.. but that limits your hardware options to amd64.

I think I found the real source of problem: NAT
As I said each system is behind a traversal NAT and doens't have real IP attached.
The DNS record needs to point to valid ip address. But looks like (I'm guessing here) the certificates are bound to the name + ip. Since ip in network card is not the same as DNS that is the source of problem.
I came to that conclusion after successfully creating a cluster with exact same configuration, but in a different provider. The new systems has IP attached.
That case is not so exotic if you think on enterprises building clusters in house. IPV4 is gone for good and unfortunately NAT is one of the tools to overcome the short offer, when the API server needs to be exposed for remote access, the only alternative is to use VPN and reference the private IP.
The other limitation is that fully HA is trick because the client will only connect to a specific ip (loadbalancer will no work here kubectl client will refuse connections)
The good news is that this limitation is bound only to the master nodes. Since 3 - 5 nodes are enough for the vast majority of needs the number of ip address in this case is manageable.  We also have the alternative to lock down access exclusive thought the VPN and expose only ingress or other traffic, which is not bad.
What I will do: Change provider from scaleway to hetzner cloud.
That decision is not only because of the problem, but hetzner is on the same price range with some features I appreciate (ceph storage for HA, snapshots)
Let me know if you guys need more information in order to document that behavior, or if you decide to improve something about the cert generation (or other cause I'm not seeing)
Thank you all for the support here ;-)