Login issue

I can't log in, either with the superadmin user, admin or employee.
url : login/Login_Auth
404 Page Not Fount

i try to back settings in the "$config['index_page'] = ''; to default [fill with 'index.php'] it's working fine, except the url that's not contain 'index.php', so i type manually "index.php/" in url.
I prefer url without index.php, so I wish there is a solution to fix this.
I try to replace .htaccess setting as same as user guide, but still not working.


onFail callback does not get called on Android

Describe the bug
If the payment is cancelled by closing the webview, the onFail does not get called on Android.
To Reproduce
Steps to reproduce the behavior:

Open the example app
Refetch payment methods
Start payment with a payment method that opens in a webview (e.g. PayPal or Klarna)
Close the webview
The onFail callback is not called on Android

Expected behavior
The onFail callback should be called so we could update the UI.
Screenshots
iOS - this is working as expected
https://user-images.githubusercontent.com/6534400/195580206-8ddd8040-d1e9-4f45-a86c-b2918f2c0d92.mp4
Android - this is not working
https://user-images.githubusercontent.com/6534400/195580243-2eb5b41f-9423-4699-92ac-21e0fba5bbcb.mp4
Desktop (please complete the following information):

OS: Android
Browser: Chrome
Version: 91.0.4472.114

Smartphone (please complete the following information):

Device:  Pixel 5
OS: API 32
Browser: Chrome
Version: 91.0.4472.114

i think for android your return url is not correct.
returnUrl: 'myapp://', // Custom URL scheme of your iOS app. This value is overridden for Android by AdyenCheckout. Can be send from your backend

@faizantariq1 sorry, I don't quite understand: shouldn't the redirect work in the example app in this repo? I haven't changed any native code.

Hey @kadikraman
Thank you for a feedback!
Indeed, going back on in-browser is buggy.

@kadikraman
I don't think there are any way to fix this (unless in current version of Android SDK).
For Example same issue could be observed on Drop-In or 3DS1 wed redirect 🤔
This is indeed very undesirables behaviour but Is this causing issues to you?

Hi @descorp yes, this issue would be a release blocker for us, because once the user initialises the payment flow we do a bunch of things in the background (we convert a cart into an order, and show a loading state) - if the user cancels we'd need to undo these things in order for the user to be able to try a different payment method. However since we can't tell that the payment has failed, we don't know to trigger the cancel flow and the only way to try a different payment method would be to force close the app and start the checkout flow again.
We've probably found a workaround for now: we use the React Native AppState so that if the app goes from background/inactive to active in the place order screen, we wait 500ms to see if any other callback has handled the request and if not we initiate the cancel flow.

We use something similar on iOS SDK to detect redirect to and external app.
The main problem here, is that unlike DropIn (or ex CardComponent that runs DropIn under the hood) Activity is outside of the control of SDK.
I'll check with Android team today - to my knowledge they are working on a fix.
Will keep you posted.

Hey @kadikraman
Our Android team is working for a solution, but it will be part of v5 of Android SDK, so no immediate solution.
I hope your workaround is sustainable till we can approach this from React Native SDK side..

@descorp I am also facing the same issue. Can you please share the timeline, for when this issue will be fixed? It's a big blocker for me.

@descorp I am also facing the same issue. Can you please share the timeline, for when this issue will be fixed? It's a big blocker for me.

Hey @iranaahsanali
Sorry, there is no timeline as of today. The best I have is mid 2023

Just to share our workaround in case it helps others while the actual fix is being worked on:
🚨 Discalimer: this seems to work, but we currently have another issue on Android that's preventing us from QAing this fully, so it's not yet used in production
We have a ref at the top of the provider to store the SDK state (needs to be a ref because we can't rely on re-renders)
const adyenState = React.useRef<'initial' | 'open' | 'closed'>('initial');

In didSubmit we set the adyenState to 'open':
const handleDidSubmit = async (
  data: AdyenData,
  nativeComponent: AdyenNativeComponent,
) => {
  adyenState.current = 'open';
  ...
}

In all the other callbacks, we set adyenState to 'closed':
// didComplete
const handleDidComplete = (nativeComponent: AdyenNativeComponent) => {
  adyenState.current = 'closed';
  ...
}

// didFail
const handleDidFail = (
  error: Error,
  nativeComponent: AdyenNativeComponent,
) => {
  adyenState.current = 'closed';
  ...
}

// didProvide
const handleDidProvide = async (
  data: AdyenProvideData,
  nativeComponent: AdyenNativeComponent,
) => {
  adyenState.current = 'closed';
  ...
}

Then we use the react native app state goes from 'inactive' or 'background' -> 'active', we wait for 500ms (this is to that if the cancel event was sent, there would be time for it to get handled), and it the adyenState is still 'open' and nothing has handled the SDK event, we init the cancel payment flow.
useAppState({
  onForeground: () => {
    wait(500).then(() => {
      if (adyenState.current === 'open' && Platform.OS === 'android') {
        // init cancel flow here
      }
    });
  },
});

useAppState here is a until function that calls onForeground when AppState goes from  'inactive' or 'background' -> 'active'.

Thanks sharing @kadikraman 💚
In other words - you are assuming that if shopper get back to app after being "redirected" - it is either successful auto-redirect or deliberate decision not to pay.
I see 2 minor faults her:

500ms could be not enough on a older devices
sometimes redirect could be simply broken and shopper decides to go back manually (happens more often on iOS, but still)

What we had in mind as a solution for v5 - to make shopper decide:
Show extra "waiting" screen with a dialog "Are you still paying?" where "NO" -> means Cancel and "YES" - redirects again (payment link could be fetched from action object)

Thanks for the suggestion @descorp! I agree, the timeout is definitely the most uncertain part of the workaround. We'll try using an alert here instead of cancelling silently.

This was fixed by pushing extra "Pending" view on RedirectComponent execution in #55
UI is very simple for now.
Cancel button is localized.

Hey @kadikraman @iranaahsanali
This bug should be fixed in 1.0.0-beta6
Could you verify?

Sure, I will update you soon.

Can confirm, this is working for me not on beta 6 🎉
Just a note - looks like there was a small breaking change where the import for the action handle chenged:
- import com.adyenreactnativesdk.ActionHandler;
+ import com.adyenreactnativesdk.action.ActionHandler;

It might be a good idea to add that in the release notes.

Good point!
We usually avoiding breaking changes 😅
Updated Release Notes
Thanks for feedback, @kadikraman


Incorrect section title "XBOX Video Application Development"

[請在此輸入您的意見]
https://docs.microsoft.com/zh-tw/azure-sphere/
In the left pane, the "XBOX Video Application Development" should be "Application Development".

文件詳細資料
⚠ 請勿編輯此區段。 這是 docs.microsoft.com ➟ GitHub 問題連結的必要項。

ID: a0be310e-4cea-4cb7-3fad-578140c35e0a

Version Independent ID: a61988d8-f1c9-e283-b071-5cc024c42ca1

Content: Azure Sphere 應用程式概觀

Content Source: AzureSphere/articles/app-development/applications-overview.md

Product: azure-sphere

GitHub Login: @pennyo

Microsoft Alias: azurespheredocs

Hello @sha1painkiller , thanks for taking time to share your valuable feedback! We are taking a look into this and will get back to you soon.

Thanks for the feedback! I have assigned the issue to the content author to evaluate and update as appropriate.

@sha1painkiller Thank you for the feedback! This is a translation error; I've forwarded it to the localization team to address.

Closing this issue since pennyo created a new issue in the zh-TW repo.


New Version Master RELEASE? v.75?

New Version Master RELEASE? v.75?
any date ?

https://github.com/oliverw/miningcore/discussions/1687 <= :'(

this is sad

:( so thats it ...:((


feat(leaving-ibm): add shadow parts

ADCMS-5162
Description
All non-slot elements in the shadow DOM should be given a unique "part" name allowing CSS to target and override component default styles. This is for the "leaving-ibm" component.
Changelog
New
Adding the shadow parts for the "leaving-ibm" component

@Valentin-Sorin-Nicolae Looks like the ci-check job caught some issues. Please run yarn format and commit the changes, then run yarn ci-check locally and confirm it passes locally before pushing. Thanks!


Readme format

Pull Request Test Coverage Report for Build 140

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

Totals

Change from base Build 134:
0.0%

Covered Lines:
114

Relevant Lines:
131

💛  - Coveralls


secondary energy carrier disposition is not used

Description of the issue
We defined in issue #575 / PR #633 a secondary energy carrier disposition: Secondary energy carrier disposition is an energy carrier disposition of material entities that are manufactured from primary energy carriers or from a different form of secondary energy carriers.
However not even the examples listed in the example usage (blast furnace gas, coke oven gas, cokes, motor gasoline or electricity have the disposition to be a secondary energy carrier) have this disposition. Thus no energy carrier is inferred as subclass of secondary energy carrier.
Ideas of solution
Add the axiom 'has disposition' some 'secondary energy carrier disposition' to the following classes:

charcoal
synthetic fuel
gas diesel oil
manufactured coal based gas
syngas
gasoline
kerosene

This list is probably not exhaustive. Please add further examples. However, it is not necessary to have a complete list before implementing this as further classes can get this disposition at a later stage.
Workflow checklist

[ ] I discussed the issue with someone else than me before working on a solution
[ ] I already read the latest version of the workflow for this repository
[ ] The goal of this ontology is clear to me

I am aware that

[ ] every entry in the ontology should have a definition
[ ] classes should arise from concepts rather than from words

I think, we should also delete electricity from the list of examples in secondary energy carrier disposition as a) electricity is rather vague and b) we currently do not have a electricity-like energy carrier.

This list is probably not exhaustive. Please add further examples. However, it is not necessary to have a complete list before implementing this as further classes can get this disposition at a later stage.

Maybe add compressed air and steam to the list?
I could implement what's already there for the upcoming release.

Maybe add compressed air and steam to the list?

I agree. It would be nice if this gets implemented before the release.


Noting sshagent

@reviewbybees

:bee:

🐝

This pull request originates from a CloudBees employee. At CloudBees, we require that all pull requests be reviewed by other CloudBees employees before we seek to have the change accepted. If you want to learn more about our process please see this explanation.


Numerical columns should be right aligned

I've done this and just need access to push it.

You can send a pull request.
On Sat, Nov 7, 2020 at 10:22 AM calvinkarpenko<EMAIL_ADDRESS>wrote:

I've done this and just need access to push it.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/alex/nyt-2020-election-scraper/issues/323#issuecomment-723458698,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAAAGBFXMVWV5ZTG4ZRJ4CTSOVQZ7ANCNFSM4TNWDTDA
.

--
All that is necessary for evil to succeed is for good people to do nothing.

Done in #363


The cert for api.unpaywall.org has expired causing DOI service calls to fail

Environment
JHU PROD
Date/time occurred
2024-10-07 8:30PM
Description
Testing with a DOI in PROD, the lookup to get unpaywall manuscripts failed.
Steps to Reproduce
Start a new submission, enter DOI 10.1039/c7an01256j
Go through all steps to File screen
No manuscript appears, it should
Expected Results
Manuscript should appear for DOI on files screen.
Actual Results
Manuscript doesn't appear
Evidence
I went to https://api.unpaywall.org/v2/ and verified the cert expired tonight.
Error from pass-core log:
08-10-2024 00:42:20.754 [qtp1460298405-141] [pass-core, ] ERROR o.e.p.d.s.ExternalDoiServiceConnector.retrieveMetadata - PKIX path validation failed: java.security.cert.CertPathValidatorException: validity check failed
javax.net.ssl.SSLHandshakeException: PKIX path validation failed: java.security.cert.CertPathValidatorException: validity check failed
	at java.base/sun.security.ssl.Alert.createSSLException(Unknown Source)
	at java.base/sun.security.ssl.TransportContext.fatal(Unknown Source)
	at java.base/sun.security.ssl.TransportContext.fatal(Unknown Source)
	at java.base/sun.security.ssl.TransportContext.fatal(Unknown Source)
	at java.base/sun.security.ssl.CertificateMessage$T13CertificateConsumer.checkServerCerts(Unknown Source)
	at java.base/sun.security.ssl.CertificateMessage$T13CertificateConsumer.onConsumeCertificate(Unknown Source)
	at java.base/sun.security.ssl.CertificateMessage$T13CertificateConsumer.consume(Unknown Source)
	at java.base/sun.security.ssl.SSLHandshake.consume(Unknown Source)
	at java.base/sun.security.ssl.HandshakeContext.dispatch(Unknown Source)
	at java.base/sun.security.ssl.HandshakeContext.dispatch(Unknown Source)
	at java.base/sun.security.ssl.TransportContext.dispatch(Unknown Source)
	at java.base/sun.security.ssl.SSLTransport.decode(Unknown Source)
	at java.base/sun.security.ssl.SSLSocketImpl.decode(Unknown Source)
	at java.base/sun.security.ssl.SSLSocketImpl.readHandshakeRecord(Unknown Source)
	at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(Unknown Source)
	at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(Unknown Source)
	at okhttp3.internal.connection.RealConnection.connectTls(RealConnection.kt:379)
	at okhttp3.internal.connection.RealConnection.establishProtocol(RealConnection.kt:337)
	at okhttp3.internal.connection.RealConnection.connect(RealConnection.kt:209)
	at okhttp3.internal.connection.ExchangeFinder.findConnection(ExchangeFinder.kt:226)
	at okhttp3.internal.connection.ExchangeFinder.findHealthyConnection(ExchangeFinder.kt:106)
	at okhttp3.internal.connection.ExchangeFinder.find(ExchangeFinder.kt:74)
	at okhttp3.internal.connection.RealCall.initExchange$okhttp(RealCall.kt:255)
	at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.kt:32)
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
	at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.kt:95)
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
	at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.kt:83)
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
	at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.kt:76)
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
	at okhttp3.internal.connection.RealCall.getResponseWithInterceptorChain$okhttp(RealCall.kt:201)
	at okhttp3.internal.connection.RealCall.execute(RealCall.kt:154)
	at org.eclipse.pass.doi.service.ExternalDoiServiceConnector.retrieveMetadata(ExternalDoiServiceConnector.java:85)
	at org.eclipse.pass.doi.service.PassDoiServiceController.getUnpaywallMetadata(PassDoiServiceController.java:215)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	...
	at java.base/java.lang.Thread.run(Unknown Source)
Caused by: sun.security.validator.ValidatorException: PKIX path validation failed: java.security.cert.CertPathValidatorException: validity check failed
	at java.base/sun.security.validator.PKIXValidator.doValidate(Unknown Source)
	at java.base/sun.security.validator.PKIXValidator.engineValidate(Unknown Source)
	at java.base/sun.security.validator.Validator.validate(Unknown Source)
	at java.base/sun.security.ssl.X509TrustManagerImpl.checkTrusted(Unknown Source)
	at java.base/sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(Unknown Source)
	... 170 common frames omitted
Caused by: java.security.cert.CertPathValidatorException: validity check failed
	at java.base/sun.security.provider.certpath.PKIXMasterCertPathValidator.validate(Unknown Source)
	at java.base/sun.security.provider.certpath.PKIXCertPathValidator.validate(Unknown Source)
	at java.base/sun.security.provider.certpath.PKIXCertPathValidator.validate(Unknown Source)
	at java.base/sun.security.provider.certpath.PKIXCertPathValidator.engineValidate(Unknown Source)
	at java.base/java.security.cert.CertPathValidator.validate(Unknown Source)
	... 175 common frames omitted
Caused by: java.security.cert.CertificateExpiredException: NotAfter: Mon Oct 07 23:08:23 UTC 2024
	at java.base/sun.security.x509.CertificateValidity.valid(Unknown Source)
	at java.base/sun.security.x509.X509CertImpl.checkValidity(Unknown Source)
	at java.base/sun.security.provider.certpath.BasicChecker.verifyValidity(Unknown Source)
	at java.base/sun.security.provider.certpath.BasicChecker.check(Unknown Source)
	... 180 common frames omitted
08-10-2024 00:42:20.760 [qtp1460298405-141] [pass-core, ] WARN  o.e.p.d.s.PassDoiServiceController.getUnpaywallMetadata - There was an error getting the metadata from Unpaywall for 10.1039/c7an01256j

Estimated Severity
Major

Send email to unpaywall.org to inform them that the SSL cert has expired.  Ticket opened with unpaywall.

unpaywall.org updated the cert, the issue is now fixed.  I confirmed I see the manuscript for the DOI in PROD.  I also ran the acceptance tests, and they are now all passing.


Inconsistent behavior of policy matching link-local address of node-local-dns

Is there an existing issue for this?

[X] I have searched the existing issues

What happened?
I tried to modify the pod-to-external-fqdn-allow-google-cnp policy from connectivity-check tests to allow connections to node-local-dns bound to link-local address <IP_ADDRESS>:53 running in the host network namespace.
What I found out is that whether my policy works or not depends on the order in which the pods start:

if the node-local-dns pod starts before the cilium pod, the following policy allowing CIDR <IP_ADDRESS>/16 works,
if the node-local-dns starts after the cilium pod, the following policy does not work. After I restart the cilium pod on the node, it starts working.

Policy:
apiVersion: cilium.io/v2
kind: CiliumNetworkPolicy
metadata:
  name: pod-to-external-fqdn-allow-google-cnp
  labels:
    name: pod-to-external-fqdn-allow-google-cnp
    topology: any
    component: policy-check
    traffic: external
    quarantine: "false"
    type: autocheck
spec:
  endpointSelector:
    matchLabels:
      name: pod-to-external-fqdn-allow-google-cnp
  egress:
  - toFQDNs:
    - matchPattern: '*.google.com'
  - toPorts:
    - ports:
      - port: "53"
        protocol: ANY
      rules:
        dns:
        - matchPattern: '*'
    toCIDR:
    - <IP_ADDRESS>/16
    - fd00::/8

Steps to reproduce:

Deploy a cluster with CIlium CNI, without node-local DNS
AFTER Cilium pods are running, add node-local-dns daemonset that runs in the host network namesapce and binds to <IP_ADDRESS>:53
In this case, the above mentioned policy does not allow connection to the node-local-dns:

# hubble observe --pod cilium-test/pod-to-external-fqdn-allow-google-cnp-5ff4986c89-pm5zj
Jan 27 15:50:12.716: cilium-test/pod-to-external-fqdn-allow-google-cnp-5ff4986c89-pm5zj:38346 <> <IP_ADDRESS>:53 Policy denied DROPPED (UDP)
Jan 27 15:50:12.792: cilium-test/pod-to-external-fqdn-allow-google-cnp-5ff4986c89-pm5zj:39429 <> <IP_ADDRESS>:53 Policy denied DROPPED (UDP)

# cilium monitor --related-to 401
Policy verdict log: flow 0x0 local EP ID 401, remote ID host, proto 17, egress, action deny, match none, <IP_ADDRESS>:59035 -> <IP_ADDRESS>:53 udp
xx drop (Policy denied) flow 0x0 to endpoint 0, , identity 12828->host: <IP_ADDRESS>:59035 -> <IP_ADDRESS>:53 udp
Policy verdict log: flow 0x0 local EP ID 401, remote ID host, proto 17, egress, action deny, match none, <IP_ADDRESS>:59035 -> <IP_ADDRESS>:53 udp
xx drop (Policy denied) flow 0x0 to endpoint 0, , identity 12828->host: <IP_ADDRESS>:59035 -> <IP_ADDRESS>:53 udp
Policy verdict log: flow 0x0 local EP ID 401, remote ID host, proto 17, egress, action deny, match none, <IP_ADDRESS>:53883 -> <IP_ADDRESS>:53 udp
xx drop (Policy denied) flow 0x0 to endpoint 0, , identity 12828->host: <IP_ADDRESS>:53883 -> <IP_ADDRESS>:53 udp
Policy verdict log: flow 0x0 local EP ID 401, remote ID host, proto 17, egress, action deny, match none, <IP_ADDRESS>:53883 -> <IP_ADDRESS>:53 udp
xx drop (Policy denied) flow 0x0 to endpoint 0, , identity 12828->host: <IP_ADDRESS>:53883 -> <IP_ADDRESS>:53 udp

# ip addr
29: nodelocaldns: <BROADCAST,NOARP> mtu 1500 qdisc noop state DOWN group default
    link/ether 3a:d8:82:97:d8:2b brd ff:ff:ff:ff:ff:ff
    inet <IP_ADDRESS>/32 brd <IP_ADDRESS> scope global nodelocaldns
       valid_lft forever preferred_lft forever

Then restart the Cilium pod - without any changes, the policy starts working:
# hubble observe --pod cilium-test/pod-to-external-fqdn-allow-google-cnp-5ff4986c89-pm5zj -f
Jan 27 15:54:30.366: cilium-test/pod-to-external-fqdn-allow-google-cnp-5ff4986c89-pm5zj:54119 -> <IP_ADDRESS>:53 L3-L4 REDIRECTED (UDP)
Jan 27 15:54:30.366: cilium-test/pod-to-external-fqdn-allow-google-cnp-5ff4986c89-pm5zj:54119 -> <IP_ADDRESS>:53 to-proxy FORWARDED (UDP)
Jan 27 15:54:30.367: cilium-test/pod-to-external-fqdn-allow-google-cnp-5ff4986c89-pm5zj:54119 -> <IP_ADDRESS>:53 to-proxy FORWARDED (UDP)
Jan 27 15:54:30.367: cilium-test/pod-to-external-fqdn-allow-google-cnp-5ff4986c89-pm5zj:54119 -> <IP_ADDRESS>:53 dns-request FORWARDED (DNS Query www.google.com.cilium-test.svc.cluster.local. A)
Jan 27 15:54:30.367: cilium-test/pod-to-external-fqdn-allow-google-cnp-5ff4986c89-pm5zj:54119 -> <IP_ADDRESS>:53 dns-request FORWARDED (DNS Query www.google.com.cilium-test.svc.cluster.local. AAAA)
Jan 27 15:54:30.372: cilium-test/pod-to-external-fqdn-allow-google-cnp-5ff4986c89-pm5zj:54119 <- <IP_ADDRESS>:53 dns-response FORWARDED (DNS Answer RCode: Non-Existent Domain TTL:<PHONE_NUMBER> (Proxy www.google.com.cilium-test.svc.cluster.local. AAAA))
Jan 27 15:54:30.372: cilium-test/pod-to-external-fqdn-allow-google-cnp-5ff4986c89-pm5zj:54119 <- <IP_ADDRESS>:53 to-endpoint FORWARDED (UDP)
Jan 27 15:54:30.373: cilium-test/pod-to-external-fqdn-allow-google-cnp-5ff4986c89-pm5zj:54119 <- <IP_ADDRESS>:53 dns-response FORWARDED (DNS Answer RCode: Non-Existent Domain TTL:<PHONE_NUMBER> (Proxy www.google.com.cilium-test.svc.cluster.local. A))

# cilium monitor --related-to 401
Policy verdict log: flow 0x0 local EP ID 401, remote ID 16777217, proto 17, egress, action redirect, match L3-L4, <IP_ADDRESS>:54053 -> <IP_ADDRESS>:53 udp
-> proxy port 37761 flow 0x0 , identity 12828->unknown state new ifindex 0 orig-ip <IP_ADDRESS>: <IP_ADDRESS>:54053 -> <IP_ADDRESS>:53 udp
-> proxy port 37761 flow 0x0 , identity 12828->unknown state established ifindex 0 orig-ip <IP_ADDRESS>: <IP_ADDRESS>:54053 -> <IP_ADDRESS>:53 udp
-> Request dns from 401 ([k8s:io.kubernetes.pod.namespace=cilium-test k8s:name=pod-to-external-fqdn-allow-google-cnp k8s:io.cilium.k8s.namespace.labels.kubernetes.io/metadata.name=cilium-test k8s:io.cilium.k8s.policy.cluster=default k8s:io.cilium.k8s.policy.serviceaccount=default]) to 0 ([reserved:world]), identity 12828->2, verdict Forwarded DNS Query: www.google.com.cilium-test.svc.cluster.local. AAAA
-> Request dns from 401 ([k8s:io.kubernetes.pod.namespace=cilium-test k8s:name=pod-to-external-fqdn-allow-google-cnp k8s:io.cilium.k8s.namespace.labels.kubernetes.io/metadata.name=cilium-test k8s:io.cilium.k8s.policy.cluster=default k8s:io.cilium.k8s.policy.serviceaccount=default]) to 0 ([reserved:world]), identity 12828->2, verdict Forwarded DNS Query: www.google.com.cilium-test.svc.cluster.local. A
-> Response dns to 401 ([k8s:io.cilium.k8s.namespace.labels.kubernetes.io/metadata.name=cilium-test k8s:io.cilium.k8s.policy.cluster=default k8s:io.cilium.k8s.policy.serviceaccount=default k8s:io.kubernetes.pod.namespace=cilium-test k8s:name=pod-to-external-fqdn-allow-google-cnp]) from 0 ([reserved:world]), identity 12828->2, verdict Forwarded DNS Proxy: www.google.com.cilium-test.svc.cluster.local. AAAA TTL:<PHONE_NUMBER> Answer: ''
-> endpoint 401 flow 0x0 , identity 16777217->12828 state reply ifindex lxcc7c4aaa47af9 orig-ip <IP_ADDRESS>: <IP_ADDRESS>:53 -> <IP_ADDRESS>:54053 udp
-> Response dns to 401 ([k8s:io.cilium.k8s.namespace.labels.kubernetes.io/metadata.name=cilium-test k8s:io.cilium.k8s.policy.cluster=default k8s:io.cilium.k8s.policy.serviceaccount=default k8s:io.kubernetes.pod.namespace=cilium-test k8s:name=pod-to-external-fqdn-allow-google-cnp]) from 0 ([reserved:world]), identity 12828->2, verdict Forwarded DNS Proxy: www.google.com.cilium-test.svc.cluster.local. A TTL:<PHONE_NUMBER> Answer: ''

Cilium Version
cilium image (running): v1.11.0
Kernel Version
Linux 5.11.0-1027-aws #30~20.04.1-Ubuntu SMP Thu Jan 13 11:46:53 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
Kubernetes Version
v1.21.8
Sysdump
cilium-sysdump-20220127-165230.zip
Relevant log output
No response
Anything else?
No response
Code of Conduct

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

Some initial observations -

Node-local dns is not deployed using LRP. In case of LRP, there is no binding to 168.254.

if the node-local-dns pod starts before the cilium pod, the following policy allowing CIDR <IP_ADDRESS>/16 works,
if the node-local-dns starts after the cilium pod, the following policy does not work. After I restart the cilium pod on the node, it starts working.

It's not entirely clear to me why the ordering of node-local dns pods matter as they are deployed in the host network namespace, and hence won't be managed by cilium.

if the node-local-dns pod starts before the cilium pod, the following policy allowing CIDR <IP_ADDRESS>/16 works,
if the node-local-dns starts after the cilium pod, the following policy does not work. After I restart the cilium pod on the node, it starts working.

It's not entirely clear to me why the ordering of node-local dns pods matter as they are deployed in the host network namespace, and hence won't be managed by cilium.

Agree. Here's what I would expect: Cilium starts up, it scans all of the devices on the system, and if any IP addresses are assigned to local devices, then it will consider those IPs to be "host", consider them as part of the cluster, exclude them from CIDR policy, and apply policy based on the host for traffic to/from those IP addresses.
If the IPs are not directly attached to devices on the system, I'd expect that Cilium should not consider them as host, so then the CIDR policy should apply.
Here's the relevant code: https://github.com/cilium/cilium/blob/18512750ce0085eaf7c4760e29c6431241e8b517/daemon/cmd/datapath.go#L170-L187

Related to the above, maybe --exclude-local-address should be used when deploying node-local DNS to ensure consistent behaviour?

Could this be related to https://github.com/cilium/cilium/issues/17839?

I encountered the same issue; where deploying node-local-dns with a bind on <IP_ADDRESS> on the hostNetwork would sometimes work, sometimes it wouldn't. I worked around this by deploying node-local-dns with the CiliumLocalRedirectPolicy, as per the docs, and adding a secondary CLRP to forward traffic destined for the legacy address of <IP_ADDRESS> to node-local-dns as well.
---
apiVersion: cilium.io/v2
kind: CiliumLocalRedirectPolicy
metadata:
  name: node-local-dns
  namespace: kube-system
spec:
  redirectFrontend:
    serviceMatcher:
      serviceName: kube-dns
      namespace: kube-system
  redirectBackend:
    localEndpointSelector:
      matchLabels:
        k8s-app: node-local-dns
    toPorts:
      - port: "53"
        name: dns
        protocol: UDP
      - port: "53"
        name: dns-tcp
        protocol: TCP
---
apiVersion: cilium.io/v2
kind: CiliumLocalRedirectPolicy
metadata:
  name: node-local-dns-legacy
  namespace: kube-system
spec:
  redirectFrontend:
    addressMatcher:
      ip: "<IP_ADDRESS>"
      toPorts:
        - port: "53"
          name: dns
          protocol: UDP
        - port: "53"
          name: dns-tcp
          protocol: TCP
  redirectBackend:
    localEndpointSelector:
      matchLabels:
        k8s-app: node-local-dns
    toPorts:
      - port: "53"
        name: dns
        protocol: UDP
      - port: "53"
        name: dns-tcp
        protocol: TCP

OK, so it seems that there are two possible solutions here:

use --exclude-local-address to get consistent behaviour,
use CiliumLocalRedirectPolicy for node-local-dns instead of binding to a link-local address in the host namespace.

The first option seems to be just a workaround to me. I even think that instead of excluding, the link-local address of the node-local-dns should be rather included as a local address.
I am a bit hesitant to use LRP because it is still marked as a beta feature. And since our platform aims to support multiple CNIs, that would mean creating a special-case just for Cilium. But if that is the recommended solution for production use, I am willing to accept that.

Is there any activity on this issue ?
cilium connectivity test fail with node-local-dns and cilium v1.12 - k8s 1.22.11 - kops 1.24.0 + LRP
I'm using kops clusterSpec to set up nodelocaldns
https://github.com/kubernetes/kops/blob/v1.24.0/upup/models/cloudup/resources/addons/nodelocaldns.addons.k8s.io/k8s-1.12.yaml.template#L154-L157
Do we have to enable spec.kubeDNS.nodeLocalDNS.forwardToKubeDNS to true ?
https://kops.sigs.k8s.io/releases/1.22-notes/#breacking-change-in-nodelocaldns
I've also tested this https://docs.cilium.io/en/stable/gettingstarted/local-redirect-policy/#node-local-dns-cache setup with LRP

I've also tested this https://docs.cilium.io/en/stable/gettingstarted/local-redirect-policy/#node-local-dns-cache setup with LRP

  📄 No flows recorded during action http-to-one-one-one-one-0
  📄 No flows recorded during action http-to-one-one-one-one-0
  [.] Action [to-entities-world/pod-to-world/https-to-one-one-one-one-0: cilium-test/client-6488dcf5d4-nctjd (<IP_ADDRESS>) -> one-one-one-one-https (one.one.one.one:443)]
  [.] Action [to-entities-world/pod-to-world/https-to-one-one-one-one-index-0: cilium-test/client-6488dcf5d4-nctjd (<IP_ADDRESS>) -> one-one-one-one-https-index (one.one.one.one:443)]
  [.] Action [to-entities-world/pod-to-world/http-to-one-one-one-one-1: cilium-test/client2-5998d566b4-6n56m (<IP_ADDRESS>) -> one-one-one-one-http (one.one.one.one:80)]
  ❌ command "curl -w %{local_ip}:%{local_port} -> %{remote_ip}:%{remote_port} = %{response_code} --silent --fail --show-error --connect-timeout 5 --output /dev/null http://one.one.one.one:80" failed: command terminated with exit code 28
  ℹ  curl output:
  curl: (28) Resolving timed out after 5000 milliseconds
:0 -> :0 = 000

kubectl -n kube-system exec cilium-wnqqc -- cilium lrp list
Defaulted container "cilium-agent" out of: cilium-agent, cilium-monitor, mount-cgroup (init), apply-sysctl-overwrites (init), mount-bpf-fs (init), clean-cilium-state (init)
LRP namespace   LRP name       FrontendType                Matching Service
kube-system     nodelocaldns   clusterIP + all svc ports   kube-system/kube-dns
                |              <IP_ADDRESS>:53/UDP -> <IP_ADDRESS>:53(kube-system/node-local-dns-hmps7),
                |              <IP_ADDRESS>:53/TCP -> <IP_ADDRESS>:53(kube-system/node-local-dns-hmps7),
                |              <IP_ADDRESS>:9153/TCP ->

Does the connectivity test consistently fail? We've had flakes with the dns test in our CI.

Yes, they fail consistently.

@JBOClara You don't need the hard-coded 169.254 address in node-local-dns.yaml if you are deploying with LRP. I would suggest following these exact instructions - https://docs.cilium.io/en/latest/gettingstarted/local-redirect-policy/#node-local-dns-cache.

But I've got errors too on a test cluster with this installation

I didn't follow - did you follow the LRP guide, and run into errors? What are the errors?

@JBOClara You don't need the hard-coded 169.254 address in node-local-dns.yaml if you are deploying with LRP. I would suggest following these exact instructions - https://docs.cilium.io/en/latest/gettingstarted/local-redirect-policy/#node-local-dns-cache.

But I've got errors too on a test cluster with this installation

I didn't follow - did you follow the LRP guide, and run into errors? What are the errors?

Yes, I tested both. There is error with https://docs.cilium.io/en/latest/gettingstarted/local-redirect-policy/#node-local-dns-cache too.
It seems related to the bug about <IP_ADDRESS> labeled as world as described here https://github.com/cilium/cilium/issues/20055

@JBOClara You don't need the hard-coded 169.254 address in node-local-dns.yaml if you are deploying with LRP. I would suggest following these exact instructions - https://docs.cilium.io/en/latest/gettingstarted/local-redirect-policy/#node-local-dns-cache.

But I've got errors too on a test cluster with this installation

I didn't follow - did you follow the LRP guide, and run into errors? What are the errors?

Yes, I tested both. There is error with https://docs.cilium.io/en/latest/gettingstarted/local-redirect-policy/#node-local-dns-cache too.

For LRP deployment, you need to add k8s-app: node-local-dns to the connectivity test policy endpoint selector label.

I think that it's fair to say that CiliumLocalRedirectPolicy is the intended way to use node-local-dns with Cilium today, so that path is probably the most reliable. I don't recall any known issues with that feature, but if the beta status is an issue then perhaps it's time for the community to revisit that classification and consider whether to promote it to GA.
Another thought, given that the behaviour changes depending on the order of running the hostNetwork pod... I'm assuming that the reason for this is that if you start the hostNetwork pod first, then it creates the virtual device, attaches this IP address, and this is all done in the host netns. Then Cilium starts up, detects the IPs in the host netns (including from this pod), and consider each IP as "host". If the ordering is the other way around, then the address isn't yet assigned when Cilium runs. Cilium doesn't find the address. Then presumably there is no trigger in Cilium to learn about the new address once the pod does eventually start up & assign the address.
So taking this thought further, another option beyond the above two would be to re-trigger the code that I linked above somehow. Perhaps either by subscribing to some Linux notification mechanism that would allow Cilium to learn about newly attached IP addresses, or alternatively perhaps by monitoring for hostNetwork pods deployed on the same node, and then triggering the logic from there just in case the hostNetwork pods do anything special. For the latter idea though, it could be a bit racy - there's no way to know when the node-local-dns pod assigns the address.

I just noticed that when XDP is enabled, Cilium identifies the node-local-dns IP as host. I put some of the resources of Cilium as you see below.
cillum-agent logs
cilium-dglzf cilium-agent level=info msg="  Local IPv4 addresses:" subsys=daemon
cilium-dglzf cilium-agent level=info msg="  - omited" subsys=daemon
cilium-dglzf cilium-agent level=info msg="  - omited" subsys=daemon
cilium-dglzf cilium-agent level=info msg="  - <IP_ADDRESS>" subsys=daemon -> node-local-dns IP

root@benchmark-master:/home/cilium# cilium bpf endpoint list
IP ADDRESS        LOCAL ENDPOINT INFO
*omited-lines*
<IP_ADDRESS>:0   (localhost) -> node-local-dns IP
`
``

node-local-dns endpoint doesn't appear here.

```bash
root@benchmark-master:/home/cilium# cilium endpoint list
ENDPOINT   POLICY (ingress)   POLICY (egress)   IDENTITY   LABELS (source:key[=value])                                                  IPv6   IPv4           STATUS
           ENFORCEMENT        ENFORCEMENT
124        Disabled           Disabled          4323       k8s:io.cilium.k8s.namespace.labels.kubernetes.io/metadata.name=kube-system          <IP_ADDRESS>    ready
                                                           k8s:io.cilium.k8s.policy.cluster=default
                                                           k8s:io.cilium.k8s.policy.serviceaccount=coredns
                                                           k8s:io.kubernetes.pod.namespace=kube-system
                                                           k8s:k8s-app=kube-dns
772        Disabled           Disabled          4          reserved:health                                                                     <IP_ADDRESS>   ready
1519       Disabled           Disabled          16924      k8s:io.cilium.k8s.namespace.labels.kubernetes.io/metadata.name=kube-system          <IP_ADDRESS>   ready
                                                           k8s:io.cilium.k8s.policy.cluster=default
                                                           k8s:io.cilium.k8s.policy.serviceaccount=dns-autoscaler
                                                           k8s:io.kubernetes.pod.namespace=kube-system
                                                           k8s:k8s-app=dns-autoscaler
2107       Disabled           Disabled          1          k8s:node-role.kubernetes.io/control-plane                                                          ready
                                                           k8s:node-role.kubernetes.io/master
                                                           k8s:node.kubernetes.io/exclude-from-external-load-balancers
                                                           reserved:host

when XDP is disabled, node-local-dns IP doesn't appear in any of these sources. For both cases, BPF is enabled.

Connectivity test always fails
Flow Details
Timestamp
2022-11-20T17:22:45.497Z
Verdict
dropped
Drop reason
Policy denied
Traffic direction
egress
Source pod
client-594cbbdf44-b8w6n
Source identity
30407
Source labels
io.cilium.k8s.namespace.labels.kubernetes.io/metadata.name=cilium-test
io.cilium.k8s.policy.cluster=default
io.cilium.k8s.policy.serviceaccount=client
namespace=cilium-test
kind=client
name=client
Source IP
<IP_ADDRESS>
Destination identity
2
Destination labels
reserved:world
Destination IP
<IP_ADDRESS>
Destination port
53

Even with LRP setup https://docs.cilium.io/en/stable/gettingstarted/local-redirect-policy/#node-local-dns-cache
[=] Test [allow-all-except-world]
.......
  ℹ  📜 Applying CiliumNetworkPolicy 'allow-all-except-world' to namespace 'cilium-test'..
  [-] Scenario [allow-all-except-world/pod-to-pod]
  [.] Action [allow-all-except-world/pod-to-pod/curl-0: cilium-test/client-594cbbdf44-b8w6n (<IP_ADDRESS>) -> cilium-test/echo-other-node-79767595bf-hvddd (<IP_ADDRESS>:8080)]
  [.] Action [allow-all-except-world/pod-to-pod/curl-1: cilium-test/client-594cbbdf44-b8w6n (<IP_ADDRESS>) -> cilium-test/echo-same-node-59d8df6bc7-nfzzg (<IP_ADDRESS>:8080)]
  [.] Action [allow-all-except-world/pod-to-pod/curl-2: cilium-test/client2-8484df99d-v6crg (<IP_ADDRESS>) -> cilium-test/echo-other-node-79767595bf-hvddd (<IP_ADDRESS>:8080)]
  [.] Action [allow-all-except-world/pod-to-pod/curl-3: cilium-test/client2-8484df99d-v6crg (<IP_ADDRESS>) -> cilium-test/echo-same-node-59d8df6bc7-nfzzg (<IP_ADDRESS>:8080)]
  [-] Scenario [allow-all-except-world/client-to-client]
  [.] Action [allow-all-except-world/client-to-client/ping-0: cilium-test/client-594cbbdf44-b8w6n (<IP_ADDRESS>) -> cilium-test/client2-8484df99d-v6crg (<IP_ADDRESS>:0)]
  [.] Action [allow-all-except-world/client-to-client/ping-1: cilium-test/client2-8484df99d-v6crg (<IP_ADDRESS>) -> cilium-test/client-594cbbdf44-b8w6n (<IP_ADDRESS>:0)]
  [-] Scenario [allow-all-except-world/pod-to-service]
  [.] Action [allow-all-except-world/pod-to-service/curl-0: cilium-test/client-594cbbdf44-b8w6n (<IP_ADDRESS>) -> cilium-test/echo-other-node (echo-other-node:8080)]
  ❌ command "curl -w %{local_ip}:%{local_port} -> %{remote_ip}:%{remote_port} = %{response_code} --silent --fail --show-error --connect-timeout 5 --output /dev/null http://echo-other-node:8080" failed: command terminated with exit code 28
  ℹ  curl output:
  curl: (28) Resolving timed out after 5000 milliseconds
:0 -> :0 = 000

  📄 No flows recorded during action curl-0
  📄 No flows recorded during action curl-0
  Pausing after action failure, press the Enter key to continue:


Youtube video can not be played

Hi!
I am trying in "myControl.MediaPlayer.Play(new Uri("https://www.youtube.com/watch?v=GMFewiplIbw")), but it doesn't work;", it's strange...anybody can help me?
This is the trace:
libVlc : Debug Name: Becky G, Bad Bunny - Mayores (Official Video) ft. Bad Bunny @ lua
libVlc : Debug meta-URL: https://www.youtube.com/watch?v=GMFewiplIbw @ lua
libVlc : Debug removing module "lua" @ core
libVlc : Debug ArtURL: https://i.ytimg.com/vi/GMFewiplIbw/maxresdefault.jpg @ lua
libVlc : Debug removing module "http" @ core
libVlc : Debug removing module "record" @ core
El subproceso 0xc18 terminó con código 0 (0x0).
El subproceso 0xc9c terminó con código 0 (0x0).
El subproceso 0xd28 terminó con código 0 (0x0).
El subproceso 0xf54 terminó con código 0 (0x0).
Vlc.DotNet version : 2.2.1
Vlc.DotNet project used : WinWpf
libvlc version : x86, 2.2.6 and 3.0.0
.net version : 4.0
Project language : Visual C#
Project build architecture : x86
Operating system : Windows 7 x64
Thanks!

Did you finally get it? I have the same problem :(
Thanks!

There has been work made on the youtube lua script recently, but I don't know if this is related. did you try the latest nightly build?

Please also confirm that your issue don't show up with vlc.exe

With vlc.exe it works fine.
I have tested it with Vlc.DotNet 2.2.1, I'll try it with 2.2.2.
Thanks,

Please also try with vlc-3.0.0 nightly from nightlies.videolan.org

With vlc-3.0.0 nightly from nightlies.videolan.org it works (x86 and x64 are ok).

Hi again,
I've been working on this and It's possible that playing youtube videos is only supported under playlist feature (https://stackoverflow.com/questions/11436864/vlc-python-doesnt-play-youtube-video).
If you look for youtube lua it is under Playlist folder.
I have been looking for playing Playlist with vlcdotnet and I think it is still not possible, isn't it? Does anyone know if it will be developed in the near future?
Thanks,

@ebalmol : Thanks for your finding. Indeed, playlists are not (yet?) supported by Vlc.DotNet. This is tracked by #193 . It is not currently planned to add playlist support in Vlc.DotNet, but I welcome contributions :) If you want to contribute and need help to implement it, feel free to join the gitter discussion.

Can it be a solution?
https://stackoverflow.com/questions/40264207/how-can-i-play-youtube-videos-with-vlc-dotnet-library-in-wpf/40278491#40278491

It might be a solution. I did not test and do not guarantee that this will work.
I think that youtube streaming URL is purposefully opaque so that you use their player or their website. This means that whatever the way you try to reach it, it is a hack and you're not sure it will still work in the future...

I can play youtube video using YouTubeExplode [https://github.com/Tyrrrz/YoutubeExplode]
My code snippet - I am passing a string like https://youtu.be/hI3GaXL96Ws
` private async void PlayYouTubeVideoAsync(string youtubeVidId)
{
var yt = new YoutubeClient();
var video = await yt.GetVideoMediaStreamInfosAsync(youtubeVidId);
var muxed = video.Muxed.WithHighestVideoQuality();
        vlcControl.SetMedia(new Uri(muxed.Url));
        vlcControl.Play();
        vlcControl.Visible = true;
    }`

This looks nice, thanks for sharing your findings @MachDemon ;-)

Since there's no answer from the original poster, I'm going to close that, because several options have been provided.

var url = "https://youtu.be/PbGDH_JOM9w";
var youtubeVidId = YoutubeClient.ParseVideoId(url);
var yt = new YoutubeClient();
var video = await yt.GetVideoMediaStreamInfosAsync(youtubeVidId);
var muxed = video.Muxed.WithHighestVideoQuality();
        vlcControl.SetMedia(new Uri(muxed.Url));
        vlcControl.Play();

Thank you very much.


See if no_login_redirect can take a block

We don't have access to the path helper in the config/initializer but perhaps if this option takes a block then we can use those.

The function returns a block that takes the controller, since the path helpers are accessible through that I'd say this issue should be closed.

Hi @halogenandtoast,
I've been trying to set no_login_redirect via a path helper (sign_up_path) without success. Can you help me with an example?

I'm not sure what you're trying to do so before I answer I'd like to get a better idea. From the way you're describing it, it sounds like you want to pass some argument into sign_up_path that will set the no_login_redirect?

@erikdahlstrand I'm not sure what you're trying to do so before I answer I'd like to get a better idea. From the way you're describing it, it sounds like you want to pass some argument into sign_up_path that will set the no_login_redirect?

Sorry for the weak explanation. I'm using the route_translator gem so I want the user to be redirected to the sign in page for the current locale. Therefore I cannot use the default  { controller: '/sessions', action: 'new' }, I want the path helper to generate the path based on the current locale.  Example /en/login, /sv/logga-in etcetera.
Maybe something like...
Monban.configure do |config|
  config.no_login_redirect = ->(controller) { controller.sign_in_path }
end

I'm passing the locale argument to the helper by default in the Application Controller:
class ApplicationController < ActionController::Base

  private

  def default_url_options(options = {})
    options.merge(locale: I18n.locale)
  end
end

Hmm a couple of things, and I may be wrong, but... I had no problems doing something like this:
https://gist.github.com/halogenandtoast/eff65d5a9df51efadf02fac8ded5a8de
Then if I visited: http://localhost:4040/sv/posts I was redirected to http://localhost:4040/sv/logga-in
But you can't just override I18n.locale and have it go to the correct place in this situation, the route param needs to already be set. If you want it to work with it forcing the locale you can add the following to what I posted above:
https://gist.github.com/halogenandtoast/318126adc179d421e35605db5bcfb663

@erikdahlstrand By this situation above I mean if you got to http://localhost:4040/posts it won't normally send you to http://localhost:4040/sv/logga-in, in order to do that you have to use the second gist I posted.

That makes sense. Actually, I'm overriding I18n.locale by trying to set the locale based on browser HTTP Accept-Language, for first time visitors. I should probably also redirect them to the correct path.
Thank you very much for helping me with this. And thank you for an awesome gem.

@erikdahlstrand no problem!


set_params with unknown key on callback should raise

Previously, this parameter was just set as an attribute. The correct
behavior is to raise a ValueError, as sklearn would.
Addresses #175

Let's put this PR on hold for now. It seems that there was a change in sklearn 0.19 -> 0.19.1 that results in a different output text from the ValueError. I actually prefer the old output text (not sure why that was changed or whether it was on purpose).
Old:
Invalid parameter foo for estimator LogisticRegression. Check the list of available parameters with `estimator.get_params().keys()`.

new
Invalid parameter foo for estimator LogisticRegression(C=1.0, class_weight=None, dual=False, fit_intercept=True,
          intercept_scaling=1, max_iter=100, multi_class='ovr', n_jobs=1,
          penalty='l2', random_state=None, solver='liblinear', tol=0.0001,
          verbose=0, warm_start=False). Check the list of available parameters with `estimator.get_params().keys()`.```

So either we have to live with the new, verbose message or we have to raise our own ValueError and customize the message.

asked amueller about whether this is intended: https://github.com/scikit-learn/scikit-learn/commit/75763cfe7842af6a579bb2f57c5b030d5c529115

superseded by #188


[storybook RemoveUser]

Cute animal pic

Because everyone likes pictures of animals.
Link to Trello card (if applicable)
If this PR relates to a Trello card, don't forget to reference this PR on the card as well.
https://trello.com/c/4haqWUTc/13-metecho-epics-confirmremoveusermodal
Description
The commit messages say what you did; this should explain why and/or how.

[ x] Description is in Trello card

Steps to test/reproduce
Please explain how to best reproduce the issue and/or test the changes locally (including the pages/URLs/views/states to review).
Under the Epics section, see the Docs and Example pages.
Show me
Provide screenshots/animated gifs/videos if necessary.

@jgerigmeyer @duggiemitchell
What am I missing to make the text dynamically say "users" instead of "user" if there are more than one GitHubUsers?

 Metecho epics › confirmRemoveUserModal

What am I missing to make the text dynamically say "users" instead of "user" if there are more than one GitHubUsers?

@dvdherron Hm, probably something related to the i18n translation files. I can take a look today.


Docs 2.13

What did you want to get changed? We generally only update the current documentation.
I didn't find any change in this pull request.


Bug fixes: 1. NPE when model is not found 2. Port is considered 0 when LLMServerPool is not initialized

Also make some fields unexported
Also improves logging.

/hold fixing a test

/unhold

/lgtm
looks ok to me, I will leave the approve to Kellen

/label tide/merge-method-squash

/lgtm
/approve


Ring does not render in storyboard

Bug Report
After updating to version 6.1, I can't set the custom class/module to UICircularProgressRing.  The framework is linked and I am still able to create UICircularProgressRings programmatically and they work correctly when running the app.
This is a pretty great framework and easy to use.  Thanks for any advice/help you can give.
Version
UICircularProgressRing 6.1
Xcode 10.2
Swift 5.0
Overview of what you tried to do
I've cleaned and rebuilt the project.  Restarted Xcode.  Manually enter UICircularProgressRing into the class and module components of Custom Class window in the story board editor.
What is the expected outcome?
UICircularProgressRing should be selectable and the view should reflect these changes and display a customizable UICircularProgressRing in the story board editor.
What is the actual outcome?
View remains an empty UIView
Post sample code or example here
If sample code can't be provided because it's too long, please provide a small example project,
where I can test, if you cannot provide either. There is not much I can do.
https://github.com/thejbix/testCircular
Public project with one view that contains a view.  UICircularProgressRing framework in linked and embedded into the project. Verified the above problem remained after creating this simple project.
Have you tried fixing this yourself?
Yes

Hi, this looks similar to #90.
This again seems like a CocoaPods issue, something I have no control over.
If you don't think these are the same problems, feel free to follow up, otherwise we will have to wait for the CocoaPods people to fix this issue again.

I am using Carthage 0.32

Ah makes more sense, since I remember cocoa pods fixing this bug.
Sadly, Carthage does not support interface builder for their frameworks so there's nothing I can do here either. You can use cocoa pods if you really need the IB functionality.


Can't change placeholder

Please provide us with the following information:

This issue is for a: (mark with an x)
- [ ] bug report -> please search issues before submitting
- [ ] feature request
- [x] documentation issue or request
- [ ] regression (a behavior that used to work and stopped in a new release)

Minimal steps to reproduce

use this github repo with customization

Any log messages given by the failure

n/a

Expected/desired behavior

I would like to change the placeholder text on the "Ask a question" page. I was able to change the placeholder on the chat page. I have changed every part of the code that says "Example: Does my plan cover annual eye exams?". Where could this be coming from? I am a beginner at this, just looking for an explanation of where this could be coming from if it no longer exists anywhere in the code. Already cleared the cache and ran azd up and azd deploy several times. Any advice?

OS and Version?

Windows 11 Pro

azd version?

azd version 1.9.3 (commit e1624330dcc7dde440ecc1eda06aac40e68aa0a3)

Versions

n/a

Mention any other details that might be useful

Thanks! We'll be in touch soon.

It should be here, in Ask.tsx:
                <QuestionInput
                    placeholder="Example: Does my plan cover annual eye exams?"

Sorry it's so difficult, we'll eventually move all strings into JSON files so they can be easily changed and translated.

i already changed that and it hasnt shown up on the site. I cleared my cache and ran azd up and deploy several times since.

do you all have any sort of call support to help me troubleshoot issues? or is there anywhere i can get direct support? thank you

Sorry, we don't have the resources to provide direct support. If you are working with a Customer Solutions Architect at Microsoft, they may be able to help as well.
I would suggest that you test the change locally first, make sure it works, before running azd up. If it works locally, then it should work on production, as long as the deployment succeeds.
This is my general guide on debugging deployments:
https://github.com/Azure-Samples/azure-search-openai-demo/blob/main/docs/appservice.md
And the guide on customization, if you haven't seen it:
https://github.com/Azure-Samples/azure-search-openai-demo/blob/main/docs/customization.md


.elm-spa folder does not exist

Following your tutorial, running npm start yields an error in elm.json for a non-existing folder.
elm-spa 3.0.3
OSX 10.15.2
Node 10.9.0
npm 6.13.4
npm start

><EMAIL_ADDRESS>start /Users/herman/Projects/_playground/elm-spa-dev
> npm install && npm run dev

><EMAIL_ADDRESS>install /Users/herman/Projects/_playground/elm-spa-dev/node_modules/elm
> node install.js

--------------------------------------------------------------------------------

Downloading Elm 0.19.1 from GitHub.

NOTE: You can avoid npm entirely by downloading directly from:
https://github.com/elm/compiler/releases/download/0.19.1/binary-for-mac-64-bit.gz
All this package does is download that file and put it somewhere.

--------------------------------------------------------------------------------

npm WARN<EMAIL_ADDRESS>No repository field.

added 229 packages from 167 contributors and audited 350 packages in 5.29s
found 0 vulnerabilities

><EMAIL_ADDRESS>dev /Users/herman/Projects/_playground/elm-spa-dev
> npm run elm:spa:build && npm run build:watch

><EMAIL_ADDRESS>elm:spa:build /Users/herman/Projects/_playground/elm-spa-dev
> elm-spa build .

{ [Error: ENOENT: no such file or directory, mkdir '/Users/herman/Projects/_playground/elm-spa-dev/elm-stuff/.elm-spa/Generated']
  errno: -2,
  code: 'ENOENT',
  syscall: 'mkdir',
  path:
   '/Users/herman/Projects/_playground/elm-spa-dev/elm-stuff/.elm-spa/Generated' }

><EMAIL_ADDRESS>build:watch /Users/herman/Projects/_playground/elm-spa-dev
> concurrently --raw --kill-others "npm run elm:spa:watch" "npm run elm:live"

><EMAIL_ADDRESS>elm:spa:watch /Users/herman/Projects/_playground/elm-spa-dev
> chokidar src/Pages -c "npm run elm:spa:build"

><EMAIL_ADDRESS>elm:live /Users/herman/Projects/_playground/elm-spa-dev
> elm-live src/Main.elm --dir=public --start-page=index.html --open --pushstate --port=1234 -- --output=public/dist/elm.compiled.js --debug

Watching "src/Pages" ..

elm-live:
  Server has been started! Server details below:
    - Website URL: http://localhost:1234
    - Serving files from: public

elm-live:

-- MISSING SOURCE DIRECTORY --------------- elm.json

I need a valid elm.json file, but the "source-directories" field lists the
following directory:

    elm-stuff/.elm-spa

I cannot find it though. Is it missing? Is there a typo?

npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR<EMAIL_ADDRESS>build:watch: `concurrently --raw --kill-others "npm run elm:spa:watch" "npm run elm:live"`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>build:watch script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR!      /Users/herman/.npm/_logs/2020-01-09T09_12_41_818Z-debug.log
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR<EMAIL_ADDRESS>dev: `npm run elm:spa:build && npm run build:watch`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>dev script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR!      /Users/herman/.npm/_logs/2020-01-09T09_12_41_973Z-debug.log
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR<EMAIL_ADDRESS>start: `npm install && npm run dev`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>start script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR!      /Users/herman/.npm/_logs/2020-01-09T09_12_42_038Z-debug.log

I resolved this
But went on to have another build issue

Same here, and I saw your earlier issue, but as this is not resolved, I created this ticket.

Hey @Hermanverschooten !
Thank you for trying out elm-spa, sorry you're running into problems!
Can you confirm this fails with the latest version of NodeJS (v12.14.1)
Thanks!
Ryan

No errors when running NodeJS v12.14.1
iMac-van-Jr➜  e  asdf local nodejs 12.14.1
iMac-van-Jr➜  e  npm i -g elm-spa@latest
/Users/herman/.asdf/installs/nodejs/12.14.1/.npm/bin/elm-spa -> /Users/herman/.asdf/installs/nodejs/12.14.1/.npm/lib/node_modules/elm-spa/src/index.js

><EMAIL_ADDRESS>postinstall /Users/herman/.asdf/installs/nodejs/12.14.1/.npm/lib/node_modules/elm-spa
> /Users/herman/.asdf/installs/nodejs/12.14.1/.npm/lib/node_modules/.hooks/postinstall
+<EMAIL_ADDRESS>added 1 package from 1 contributor in 0.324s
iMac-van-Jr➜  e  elm-spa init elm-spa-dev

elm-spa created a new project in:

  /Users/herman/Projects/_playground/e/elm-spa-dev

  run these commands to get started:
  cd /Users/herman/Projects/_playground/e/elm-spa-dev
  npm start

iMac-van-Jr➜  e  cd elm-spa-dev
iMac-van-Jr➜  elm-spa-dev  npm start

><EMAIL_ADDRESS>start /Users/herman/Projects/_playground/e/elm-spa-dev
> npm install && npm run dev

><EMAIL_ADDRESS>install /Users/herman/Projects/_playground/e/elm-spa-dev/node_modules/elm
> node install.js

--------------------------------------------------------------------------------

Downloading Elm 0.19.1 from GitHub.

NOTE: You can avoid npm entirely by downloading directly from:
https://github.com/elm/compiler/releases/download/0.19.1/binary-for-mac-64-bit.gz
All this package does is download that file and put it somewhere.

--------------------------------------------------------------------------------

npm WARN<EMAIL_ADDRESS>No repository field.

added 229 packages from 167 contributors and audited 350 packages in 4.744s

1 package is looking for funding
  run `npm fund` for details

found 0 vulnerabilities

><EMAIL_ADDRESS>dev /Users/herman/Projects/_playground/e/elm-spa-dev
> npm run elm:spa:build && npm run build:watch

><EMAIL_ADDRESS>elm:spa:build /Users/herman/Projects/_playground/e/elm-spa-dev
> elm-spa build .

elm-spa created 4 files:

  /Users/herman/Projects/_playground/e/elm-spa-dev/elm-stuff/.elm-spa/Generated/Pages.elm
  /Users/herman/Projects/_playground/e/elm-spa-dev/elm-stuff/.elm-spa/Generated/Params.elm
  /Users/herman/Projects/_playground/e/elm-spa-dev/elm-stuff/.elm-spa/Generated/Route.elm
  /Users/herman/Projects/_playground/e/elm-spa-dev/elm-stuff/.elm-spa/Generated/Routes.elm

><EMAIL_ADDRESS>build:watch /Users/herman/Projects/_playground/e/elm-spa-dev
> concurrently --raw --kill-others "npm run elm:spa:watch" "npm run elm:live"

><EMAIL_ADDRESS>elm:live /Users/herman/Projects/_playground/e/elm-spa-dev
> elm-live src/Main.elm --dir=public --start-page=index.html --open --pushstate --port=1234 -- --output=public/dist/elm.compiled.js --debug

><EMAIL_ADDRESS>elm:spa:watch /Users/herman/Projects/_playground/e/elm-spa-dev
> chokidar src/Pages -c "npm run elm:spa:build"

elm-live:
  Server has been started! Server details below:
    - Website URL: http://localhost:1234
    - Serving files from: public

Watching "src/Pages" ..
elm-live:
  The build has succeeded.

elm-live:
  Watching the following files:
    - src/**/*.elm
    - elm-stuff/.elm-spa/**/*.elm

Great!
I've added a note on the installation page of the guide:
https://www.elm-spa.dev/guide/installation
Thanks for verifying the version update works, @Hermanverschooten ! 💯


Edit README

Small editings, added troubleshooting section

I think @exaexa already made some changes, but on the develop branch. I changed the base of this MR. Can you check?

Conflicts resolved, can be merged


fixes #3 Refactor the PortHook API.

Codecov Report

Merging #32 into master will decrease coverage by 0.45%.
The diff coverage is 63.15%.

@@            Coverage Diff             @@
##           master      #32      +/-   ##
==========================================
- Coverage   56.06%   55.61%   -0.46%
==========================================
  Files          43       43
  Lines        5747     5754       +7
==========================================
- Hits         3222     3200      -22
- Misses       2215     2242      +27
- Partials      310      312       +2

Impacted Files
Coverage Δ

impl/socket.go
66.52% <100%> (+1.38%)
:arrow_up:

message.go
80.55% <100%> (ø)
:arrow_up:

impl/pipe.go
76.31% <12.5%> (-9.4%)
:arrow_down:

protocol/xsurveyor/xsurveyor.go
42.77% <0%> (-6.12%)
:arrow_down:

protocol/xrespondent/xrespondent.go
41.01% <0%> (-4.3%)
:arrow_down:

protocol/xreq/xreq.go
40.78% <0%> (-0.88%)
:arrow_down:

protocol/surveyor/surveyor.go
55.3% <0%> (-0.76%)
:arrow_down:

protocol/xpush/xpush.go
57.06% <0%> (+1.08%)
:arrow_up:

Continue to review full report at Codecov.

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


Yaml support added

I appreciate the package very much.
Unfortunately it does not support the generation of YAML, but we need this.
I have made appropriate additions and would be happy if they could be integrated.

Hi,  Michael
Can you create the PR in dev instead of master please?

Hello Vitaly,
I switched the PR to dev.
BR
Michael

This package is great and the addition of YAML support is a useful feature.
When is the next beta release planned ?


columns are not aligned when content exceeds the defined width

Description
The json output looks ok:
$ ./kubectl-gadget top ebpf -o json
{"node":"aks-agentpool-37135575-vmss000000","progid":168,"pids":[{"pid":1,"comm":"systemd"}],"type":"CGroupSKB"}
{"node":"aks-agentpool-37135575-vmss000000","progid":169,"pids":[{"pid":1,"comm":"systemd"}],"type":"CGroupSKB"}
{"node":"aks-agentpool-37135575-vmss000000","progid":170,"pids":[{"pid":1,"comm":"systemd"}],"type":"CGroupSKB"}
{"node":"aks-agentpool-37135575-vmss000000","progid":171,"pids":[{"pid":1,"comm":"systemd"}],"type":"CGroupSKB"}
{"node":"aks-agentpool-37135575-vmss000000","progid":172,"pids":[{"pid":1,"comm":"systemd"}],"type":"CGroupSKB"}
{"node":"aks-agentpool-37135575-vmss000000","progid":173,"pids":[{"pid":1,"comm":"systemd"}],"type":"CGroupSKB"}

But the column output is not aligned with the header line:
$ ./kubectl-gadget top ebpf
NODE             PROGID   TYPE             NAME             PID     COMM                      RUNTIME   RUNCOUNT
aks-agentpool-37135575-vmss000000 168      CGroupSKB                         1       systemd                        0s          0
aks-agentpool-37135575-vmss000000 169      CGroupSKB                         1       systemd                        0s          0
aks-agentpool-37135575-vmss000000 170      CGroupSKB                         1       systemd                        0s          0
aks-agentpool-37135575-vmss000000 171      CGroupSKB                         1       systemd                        0s          0
aks-agentpool-37135575-vmss000000 172      CGroupSKB                         1       systemd                        0s          0
aks-agentpool-37135575-vmss000000 173      CGroupSKB                         1       systemd                        0s          0
^C
Terminating...

Impact
Difficult to read the output
Environment and steps to reproduce

Set-up: AKS cluster
Task:
Action(s):
a. ./kubectl-gadget top ebpf
Error: see above

Expected behavior
Columns are correctly aligned
Additional information

Most gadgets only reserve 16 characters for the node name, so this issue shouldn't be limited to top ebpf, right?
However, I've got a couple ideas of how to solve this, will present those soon.

Right, it's a generic issue for all gadgets.

For top gadgets, we already know in advance the number of rows we will print (max-rows value), so I was wondering if we could use a tabwriter as we are doing for the snapshot gadgets.

Yes, I expect nobody to be parsing the columns output given that we provide json for that purpose.

It should be fixed once https://github.com/kinvolk/inspektor-gadget/issues/1003 is done.

I'll close it as it's tracked in https://github.com/inspektor-gadget/inspektor-gadget/issues/1003.


Fix broken VnidStartMaster()

@openshift/networking PTAL

Fixes panic: interface conversion: interface is []api.Namespace, not []string

that code hasn't changed since October... why hasn't this been a problem before?

Earlier registry.GetNamespaces() returned []string and as part of this refactor https://github.com/openshift/openshift-sdn/pull/270 we started returning []kapi.Namespace and we missed this change during the refactor.

LGTM. @danwinship any complaints?


Fix RN 0.48+ warning about requiresMainQueueSetup

Warning: Module RNI18n requires main queue setup since it overrides constantsToExport but doesn't implement `requiresMainQueueSetup. In a future release React Native will default to initializing all native modules on a background thread unless explicitly opted-out of.

Thanks!


Withdraw fees not enforced at OpenTrade

I hesitated to open issue here.  I msg kzv in discord, got no response yet. This matter is very important for financial health of the exchange, potentially could be a target from hackers.
It appears that Marycoin withdraw fees were not enforced in openTrade. I was able to withdraw two times from exchange paying no fees.  My exchange account at OpenTrade showed a negative balance after full amount withdraw.
This bugs need to be fixed,  Fees should be deducted so that members should receive only post-fee coins in their wallet.

@bihonglu You should be able to close this issue from your side.


Feature/grpc and rest to use shared service layer

Prepare the code for being able to add audit logic in one place(service layer, rather than grpc and rest):

remove direct dao invocation from grpc
migrate most of GRPC and REST to use an existing service layer
remove a few places with copy-paste and dead code

Also, add an ability to run the server on a specific HOST for security purposes

Pull Request Test Coverage Report for Build 2135

33 of 110 (30.0%)  changed or added relevant lines in 7 files are covered.
1 unchanged line in 1 file lost coverage.
Overall coverage increased (+0.1%) to 67.19%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

core/src/main/java/com/netflix/conductor/service/WorkflowService.java
10
12
83.33%

core/src/main/java/com/netflix/conductor/service/TaskService.java
4
7
57.14%

grpc-server/src/main/java/com/netflix/conductor/grpc/server/service/TaskServiceImpl.java
4
8
50.0%

jersey/src/main/java/com/netflix/conductor/server/resources/WorkflowBulkResource.java
0
7
0.0%

grpc-server/src/main/java/com/netflix/conductor/grpc/server/service/EventServiceImpl.java
3
11
27.27%

grpc-server/src/main/java/com/netflix/conductor/grpc/server/service/WorkflowServiceImpl.java
12
22
54.55%

core/src/main/java/com/netflix/conductor/service/WorkflowBulkService.java
0
43
0.0%

Files with Coverage Reduction
New Missed Lines
%

jersey/src/main/java/com/netflix/conductor/server/resources/WorkflowBulkResource.java
1
0.0%

Totals

Change from base Build 2107:
0.1%

Covered Lines:
8210

Relevant Lines:
12219

💛  - Coveralls


Improve Code Coverage of Client Unit Tests

Business Context:
As we move towards an open-source/easy-deploy setup, we want to make sure our automated tests are thorough and cover most of our code
As an open-source maintainer of police-data-manager
I want the client tests to cover at least 95% of statements and 90% of branches
So that changes to the app do not cause catastrophes that I have to handle
In Scope

Adding client unit tests that up the coverage
Changing the client unit testing script so that it fails if 95% statement coverage or 90% branch coverage isn't met

Out of Scope

Open Questions

Acceptance Criteria

Scenario:
Given
When
Then

Scenario:
Given
When
Then

Mockups
Checklist (should be reviewed before grooming as the BA or Pair are writing the card—NOT reviewed for the first time at grooming)

Discuss the technical implementation of this card.
Discuss how this feature would be included in or affect the Audit Log.
In respect to security, what could go wrong? Brainstorm threats using STRIDE model, especially if this card introduces a new technical architecture or design pattern. (TIMEBOX: 7 mins) https://docs.google.com/document/d/18AFl1d3SRieI4d_8R3GyEazqQOycLNDHGN_vOYIHuiE/edit#heading=h.aio9zb5j63wl
Ensure any open questions have been resolved with stakeholders.
Determine if documentation should be referenced or created.
Ensure to include all necessary mockups to this card.
Discuss what success/failure user feedback messages would be present, if any occur (front end/back end).
Discuss why this feature would not be implemented behind a toggle / what would happen if this card was partially done while a release branch was being cut.
If this card is part of a sequence of cards, discuss if this card should be blocked until the testing of previous  cards in the sequence have been finished.
Have we added edge cases as ACs that we're considered from a QA perspective
Does this card overlap with any entities outlined in API Housekeeping?

Notes:

--coverageThreshold='{\"global\":{\"statements\":\"95\",\"branches\":\"90\"}}'
to set the coverage threshold for just a single test script (it could be set globally in package.json)

yarn test:client:ci will run the client tests like we do in the pipeline (which will show you the coverage percentages)


[SourceKit] When cursor points to an external argument name in a function-like decl, we should return the information about the function-like decl instead of being empty. rdar://32018814

The is revised PR based on @benlangmuir 's comments.

@swift-ci please smoke test

@swift-ci please smoke test

@swift-ci please smoke test


return MatchingFund.expiryDate

Coverage decreased (-0.01%) to 76.059% when pulling f62e3e753b82f0425ce805fec1b6c66f6d6efcec on matchingFund into 2a3e6e7757362b9a11e05d9331da409846db9ca1 on master.


Fix issues with nonequilibrium integrator

We can likely simplify NonequilibriumSwitchingMove once we address the reset() issue in https://github.com/choderalab/openmmtools/pull/274
I'm just creating this issue so I don't forget about it.

I think this has been addressed by @dominicrufa

@dominicrufa : Can you point to your code fix or PR in which this was addressed?
I think we still need to fix the original issue in openmmtools, but it may have been worked around here.

https://github.com/choderalab/perses/blob/352e5cde82b464f8e8847d2f9e42349e58bc600d/perses/dispersed/feptasks.py#L172

This is closed, right?
Can one of you two close if you're happy please?

yep.


Keep the previous certificate in the bundle as well as the new one to prevent periods of service outage

@arkaitzj wrote:

During our tests we discovered that every time the certificates rotated we got a lot of TLS bad certificate errors in our cluster.
2022/06/02 13:46:25 http: TLS handshake error from <IP_ADDRESS>:60186: remote error: tls: bad certificate
When we looked into it we discovered that the refresher sets the secret and the caBundle in the webhooks at the same time.
However, that does not account for the time it takes for a pod to get the secret updated and the operator to refresh the certificate.
During that period of time the control-plane is using the new caBundle and the operator the old one, failing all requests and provoking a service outage since none of the resources created at that time will be serviced by kubemod.
The proposed solution keeps the previous certificate in the bundle along with the new one, so that the operator can work well before and after swapping its own certificate.
This means there are always 2 certificates in the caBundle and each certificate will be valid for 2 cron periods, if this is a concern, halving the cron period should work.

Closed by #14


ntfy: Patch Slack integration to work again.

Motivation for this change
See https://github.com/dschep/ntfy/pull/229
Unfortunately there was no upstream response for a while.
Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
21.11 Release Notes (or backporting 21.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

@ofborg eval

My patch got merged upstream, so good to go here.


[HOLD for payment 2023-10-30] [HOLD for payment 2023-10-27] [$250] Chat -  First row emojis are skipped

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Version Number: <IP_ADDRESS>
Reproducible in staging?: y
Reproducible in production?: n
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Expensify/Expensify Issue URL:
Issue reported by:@s-alves10
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1697753213411739
Action Performed:

Open ND and log in with any account
Open any chat and tap emoji button in the main composer to open EmojiPicker
Type any characters in search input(for example, he)
Press arrow down key several times and try to highlight first row emojis by pressing arrow down or arrow left keys
Verify that first row emojis are skipped

Expected Result:
First row emojis can be highlighted by arrow keys
Actual Result:
First row emojis are skipped
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[ ] Android: Native
[x] Android: mWeb Chrome
[ ] iOS: Native
[x] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[x] MacOS: Desktop

Screenshots/Videos

Android: Native

Android: mWeb Chrome

https://github.com/Expensify/App/assets/93399543/dc25c542-8c6f-4657-a3ce-4bfb9b6e5f53

iOS: Native

iOS: mWeb Safari

https://github.com/Expensify/App/assets/93399543/3761a3b6-799c-4c61-a834-ed003589dd85

MacOS: Chrome / Safari

https://github.com/Expensify/App/assets/93399543/3f547a69-2e5d-4d19-b815-04234655e215
https://github.com/Expensify/App/assets/93399543/c6e8f526-c6bb-48c7-ba6d-7881b5d7adf8

MacOS: Desktop

https://github.com/Expensify/App/assets/93399543/aa52de5f-5931-4bb4-98b1-7171589adff6

View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~01ed51d25e4548ec9f
Upwork Job ID:<PHONE_NUMBER>082848768
Last Price Increase: 2023-10-20
Automatic offers:

fedirjh | Reviewer | 27296434
s-alves10 | Contributor | 27296440

:wave: Friendly reminder that deploy blockers are time-sensitive ⏱ issues! Check out the open StagingDeployCash deploy checklist to see the list of PRs included in this release, then work quickly to do one of the following:

Identify the pull request that introduced this issue and revert it.
Find someone who can quickly fix the issue.
Fix the issue yourself.

Proposal
Please re-state the problem that we are trying to solve in this issue.
Can't highlight first row emojis by arrow keys when searching emojis in Emoji Picker
What is the root cause of that problem?
When moving highlight by arrow keys, we check the bound by the following code
https://github.com/Expensify/App/blob/18acd82f40153fc1e5091aea3217c532142e500e/src/components/EmojiPicker/EmojiPickerMenu/index.js#L257
https://github.com/Expensify/App/blob/18acd82f40153fc1e5091aea3217c532142e500e/src/components/EmojiPicker/EmojiPickerMenu/index.js#L271
When searching emojis, firstNonHeaderIndex.current should be 0 because there are no spaces or headers.
But this value is updated by https://github.com/Expensify/App/blob/18acd82f40153fc1e5091aea3217c532142e500e/src/components/EmojiPicker/EmojiPickerMenu/index.js#L364-L379 every time its dependency changes
https://github.com/Expensify/App/blob/18acd82f40153fc1e5091aea3217c532142e500e/src/components/EmojiPicker/EmojiPickerMenu/index.js#L374
That is, updateFirstNonHeaderIndex function is called with the entire emojis every time highlight index is changed. So the value of firstNonHeaderIndex.current becomes 8
This is the root cause
What changes do you think we should make in order to solve the problem?
updateFirstNonHeaderIndex function should be called with the entire emojis only on mount and when search input is empty.
We do this when search input is empty here
https://github.com/Expensify/App/blob/18acd82f40153fc1e5091aea3217c532142e500e/src/components/EmojiPicker/EmojiPickerMenu/index.js#L180
Remove this line and call the function on mount
    useEffect(() => {
        updateFirstNonHeaderIndex(emojis.current);
    }, []);

This works as expected
What alternative solutions did you explore? (Optional)

Proposal by:@s-alves10
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1697753213411739
Proposal
Please re-state the problem that we are trying to solve in this issue.
Can't highlight first row emojis by arrow keys when searching emojis in Emoji Picker
What is the root cause of that problem?
When moving highlight by arrow keys, we check the bound by the following code
https://github.com/Expensify/App/blob/18acd82f40153fc1e5091aea3217c532142e500e/src/components/EmojiPicker/EmojiPickerMenu/index.js#L257
https://github.com/Expensify/App/blob/18acd82f40153fc1e5091aea3217c532142e500e/src/components/EmojiPicker/EmojiPickerMenu/index.js#L271
When searching emojis, firstNonHeaderIndex.current should be 0 because there are no spaces or headers.
But this value is updated by https://github.com/Expensify/App/blob/18acd82f40153fc1e5091aea3217c532142e500e/src/components/EmojiPicker/EmojiPickerMenu/index.js#L364-L379 every time its dependency changes
https://github.com/Expensify/App/blob/18acd82f40153fc1e5091aea3217c532142e500e/src/components/EmojiPicker/EmojiPickerMenu/index.js#L374
That is, updateFirstNonHeaderIndex function is called with the entire emojis every time highlight index is changed. So the value of firstNonHeaderIndex.current becomes 8
This is the root cause
What changes do you think we should make in order to solve the problem?
updateFirstNonHeaderIndex function should be called with the entire emojis only on mount and when search input is empty.
We do this when search input is empty here
https://github.com/Expensify/App/blob/18acd82f40153fc1e5091aea3217c532142e500e/src/components/EmojiPicker/EmojiPickerMenu/index.js#L180
Remove this line and call the function on mount
    useEffect(() => {
        updateFirstNonHeaderIndex(emojis.current);
    }, []);

This works as expected
What alternative solutions did you explore? (Optional)

Lowering the amount since this is lower value bug and accessibility feature as well which we dont technically support yet

@fedirjh
PR is ready for review https://github.com/Expensify/App/pull/30092

@s-alves10 what's offending PR?

Looks like https://github.com/Expensify/App/pull/29241 is related

@joekaufmanexpensify - Can you pay out? Thanks

Sure!

@s-alves10 $425 sent and contract ended!

@fedirjh $375 sent and contract ended!

Upwork job closed.

Closing as this is all set. Thanks everyone!


core: transition to c++17, deboostification

@PastaPastaPasta, we could remove those two lines from the inter whitelist but they're not there to begin with so there's nothing to remove (which is kinda surprising but not too problematic)
@UdjinM6, #20471 has been updated and linux64_cxx17 has been dropped

(Otherwise everything does good)

CI is broken:

linux32: looks like smth that could be fixed by #4398
linux64: we probably hit some gitlab limit there ERROR: Uploading artifacts as "archive" to coordinator... too large archive

Let's maybe drop 63f0fc4 for now and implement it in a separate PR?

Let's maybe drop 63f0fc4 for now and implement it in a separate PR?

If we drop 63f0fc4, we should drop https://github.com/kittywhiskers/dash/commit/73de8a61994a993477a0f7b73932dac68939686d as well

Updated


SVGR template with TypeScript

I am trying to make my svgr-template.js work as per the requirements, I am trying to add // tslint-disable within the template in order to disable type checking from the generated React component via SVGR.
Following are my code snippets;
svgr-template.js
function template(
  { template },
  opts,
  { imports, componentName, props, jsx, exports }
) {
  const typeScriptTpl = template.smart({ plugins: ['jsx','typescript'] });
  return typeScriptTpl.ast`
    // tslint:disable
    import * as React from 'react';
    const ${componentName} = (props: React.SVGProps<SVGSVGElement>) => ${jsx};
    export default ${componentName};
  `;
}
module.exports = template;

Add.tsx
import * as React from "react";

const SvgAdd = (props: React.SVGProps<SVGSVGElement>) => (
  <svg width="1em" height="1em" viewBox="0 0 39 39" {...props}>
    <path
      fillRule="evenodd"
      clipRule="evenodd"
      d="M20.723 21.397h15.913a1.5 1.5 0 0 0 0-3H20.723V2.484a1.5 1.5 0 0 0-3 0v15.913H1.811a1.5 1.5 0 1 0 0 3h15.912V37.31c0 .414.168.789.44 1.06a1.5 1.5 0 0 0 2.56-1.06V21.397z"
    />
  </svg>
);

export default SvgAdd;

I don't understand why the comment line has been ignored and in the component, "react" has been wrapped within double quotes while the template has single quotes.

I think you should try interpolation block.
return typeScriptTpl.ast`
  ${  // tslint:disable'' }
  import * as React from 'react';
  const ${componentName} = (props: React.SVGProps<SVGSVGElement>) => ${jsx};
  export default ${componentName};
`;

@nutboltu Thank you it worked for me as desired, cheers.


setMaxSupply doesn't work for big numbers

Description
When creating a new FINITE token, and you try to call setMaxSupply, it fails is the number is bigger or equal than 100.000.000,0000.
Even when using BigNumber or Long type, it fails in the same way.
Really urgent bug, it is basically blocking the creation of a finite token.
Steps to reproduce
//Create the transaction and freeze for manual signing
const transaction = await new TokenCreateTransaction()
.setTokenName("Your Token Name")
.setTokenSymbol("F")
.setTreasuryAccountId(treasuryAccountId)
.setSupplyType(FINITE)
.setInitialSupply(5000)
.setMaxSupply(1000000000000)
.setAdminKey(adminPublicKey)
.freezeWith(client);
//Sign the transaction with the token adminKey and the token treasury account private key
const signTx =  await (await transaction.sign(adminKey)).sign(treasuryKey);
//Sign the transaction with the client operator private key and submit to a Hedera network
const txResponse = await signTx.execute(client);
//Get the receipt of the transaction
const receipt = await txResponse.getReceipt(client);
//Get the token ID from the receipt
const tokenId = receipt.tokenId;
console.log("The new token ID is " + tokenId);
//v2.0.5
Additional context
No response
Hedera network
mainnet, testnet
Version
2.6.0
Operating system
macOS

Although this issue happens at a completely different time, I think it's a duplicate of #813


Undocumented settings values on status page

Problem:
There seem to be some undocumented settings values on the status page of a gopro (http://<IP_ADDRESS>/gp/gpControl/status)
In the settings object the following key=value pairs could not be identified (neither with the help of this documentation nor with the information gathered from the gpControl page of a gopro http://<IP_ADDRESS>/gp/gpControl)
Undocumented Key,Value pair: 40 = 0
Undocumented Key,Value pair: 41 = 13
Undocumented Key,Value pair: 42 = 8
Undocumented Key,Value pair: 43 = 0
Undocumented Key,Value pair: 44 = 8
Undocumented Key,Value pair: 45 = 8
Undocumented Key,Value pair: 46 = 0
Undocumented Key,Value pair: 47 = 0
Undocumented Key,Value pair: 48 = 0
Undocumented Key,Value pair: 65 = 0
Undocumented Key,Value pair: 66 = 0
Undocumented Key,Value pair: 67 = 0
Undocumented Key,Value pair: 71 = 0
Any ideas what these could be ?
Details:

GoPro Camera(s): HERO4 Silver
Firmware version: HD<IP_ADDRESS>.00
Steps to reproduce: http://<IP_ADDRESS>/gp/gpControl/status
Happens every time? [Y/N]: Y

What object? settings or status?

settings

I'll see what my HERO4 Session gives, I'll be travelling from the 7th to 20th and the HERO4 Black arrives the 14th so until the 20th for HERO4 Black results

Oh and could you test these URLs with your HERO4 Silver? Fetched from a friend's camera with old firmware so it might not work:

LCD ON: http://<IP_ADDRESS>/gp/gpControl/setting/72/1

LCD OFF: http://<IP_ADDRESS>/gp/gpControl/setting/72/0

LCD Never sleep: http://<IP_ADDRESS>/gp/gpControl/setting/51/0

LCD 1min sleep timeout: http://<IP_ADDRESS>/gp/gpControl/setting/51/1

LCD 2min sleep timeout: http://<IP_ADDRESS>/gp/gpControl/setting/51/2

LCD 3min sleep timeout: http://<IP_ADDRESS>/gp/gpControl/setting/513

All of them work and LCD ON/OFF is already documented.

Just saw something as I was closing tabs: The gopro actually returns an error code when setting the LCD sleep setting, but the value changes in the gopro settings (on the display, aswell as in the settings object).

Value 40 is date time (0 must be set not set from app?), Value 41 is OTA status (I don't know what 13 is supposed to mean here), Value 43 is current mode (see CameraStatus, this was used as a command value in old firmwares), other values seem to be related with internet streaming feature (nor publicly available yet)

Are you sure about this ? Because the meanings/usages you named are for the status object and not for the settings object.

40 seems to accept values [0, 1]
48 seems to accept values [0, 1, 2]
47, 67  seem to accept any values (only tested numeric)
All other (undocumented) settings seem to immutable.

This is from Android app decompilation:
40 - BROADCAST_DEFAULT_SUB_MODE
41 - BROADCAST_RESOLUTION
42 - BROADCAST_FPS
43 - BROADCAST_FOV
44 - BROADCAST_RECORD_RESOLUTION
45 - BROADCAST_RECORD_FPS
46 - BROADCAST_RECORD_FOV
47 - BROADCAST_WINDOW_SIZE
48 - BROADCAST_PRIVACY
65 - BROADCAST_GOP_SIZE
66 - BROADCAST_IDR_INTERVAL
67 - BROADCAST_BIT_RATE
71 - BROADCAST_CURRENT_SUB_MODE
It seems like another recording mode, I'm not sure what it does for now..

@rosek86 I'm guessing that is either an unreleased streaming feature that "accidentally" (as always) made it to production or commands to use with GoPro's HEROCast.


"androidx.media3:lib-decoder-midi:1.2.0-alpha02" is not resolved by gradle

Version
Media3 pre-release (alpha, beta or RC not in this list)
More version details
Version 1.2.0-alpha02
Devices that reproduce the issue
Not applicable
Devices that do not reproduce the issue
No response
Reproducible in the demo app?
Not tested
Reproduction steps
Include the library easy way as mentioned in the README.
Expected result
The midi decoder lib should get resolved as per the claims in README, one should not have to include it locally.
Actual result
The library is not found in any of the repositories. I have google, maven, jitpack all setup.
Media
Not applicable.
Bug Report

[ ] You will email the zip file produced by adb bugreport to<EMAIL_ADDRESS>after filing this issue.

That's a miss and will fix it.


3.9 Pickups

GunDropper.dg
extends Spatial

export(PackedScene) var DropItem

func _ready():
	pass

func drop():
	var drop_item = DropItem.instance()

	var navmap: NavigationMap = get_parent().navmap
	var location = navmap.get_random_empty_coord()
	self.global_transform.origin = Vector3(location.x, self.global_transform.origin.y,location.z)

	self.add_child(drop_item)

Gun.gd
func drop():
	$Mesh.translation = Vector3.ZERO
	$AnimationPlayer.play("DropRotation")

Center weapons on dropped cell
Do this at the end?

[ ] For each gun, move the mesh node to 0
[ ] Then select all the mesh child nodes and center them
[ ] Then move the mesh back out to a good spot.

func drop():
print("Gun dropped")
$Mesh.translation = Vector3.ZERO  <--- cetnered - test
$AnimationPlayer.stop() <---- don't reload

Pick up the drop

[ ] Add a new phsyisc3D layer: Drops
[ ] Reload the scene to get ti to show up
[ ] Put the PickUp Area in the Drops layer, mask with the player layer

signal item_picked_up

....

func _on_PickUpArea_body_entered(body):
	emit_signal("item_picked_up", DropItem)
	print("Picked up a thingy....")

[ ] Connect signal to player

Player script
func _on_Dropper_item_picked_up(ItemScene: PackedScene):
	var item = ItemScene.instance()
	if item is Gun:
		print("player found a gun!")

Equipping the weapon:
func _on_Dropper_item_picked_up(ItemScene: PackedScene):
	var item = ItemScene.instance()

	# Handle different types of pickups:
	if item is Gun:
		print("player found a gun!")
		player.gun_controller.equip_weapon(ItemScene)  <-- function expects a Scene.

[ ]
Also queue free the drop (will need larger scope.

Center weapons on dropped cell
Do this at the end?

[ ] For each gun, move the mesh node to 0
[ ] Then select all the mesh child nodes and center them
[ ] Then move the mesh back out to a good spot.

func drop():
print("Gun dropped")
$Mesh.translation = Vector3.ZERO  <--- cetnered - test
$AnimationPlayer.stop() <---- don't reload

Drop animation:
func drop():
	print("Gun dropped")
#	$AnimationPlayer.stop()
	$Mesh.translation = Vector3.ZERO
	$AnimationPlayer.play("DropAnimation")

How to incorporate it? Waves
Wave.gd:

# Drops
export(PackedScene) var DropItem
export var drop_chance = 1.0
export var drop_when = 1.0   #  0 = beginning of wave, 1.0 = end of wave.

[ ] GeneratedLevels/NavMap1: Wave1 set Rifle, Set num enemies 2, set Drop When 0.5, Drop Chance 1.0

Dropper.gd
var DropItem: PackedScene setget set_DropItem
var drop_item: Node

signal item_picked_up

func set_DropItem(new_DropItem):
	DropItem = new_DropItem

ERRORS!!!

[ ] Because Dropper is overlapping with player, need to turn off monitoring on the Area

func drop():
	$PickUpArea.monitoring = true  <---------------------------------------------------

	drop_item = DropItem.instance()
....

func _on_PickUpArea_body_entered(body):
	emit_signal("item_picked_up", DropItem)
	print("Picked up a thingy....")
	drop_item.queue_free()
	$PickUpArea.monitoring = false <---------------------------------------------------

Spawner
signal drop_item

...

func _on_Enemy_Stats_you_died_signal():
	enemies_killed_this_wave += 1
	print("Enemies killed: ", enemies_killed_this_wave)

	# Check for an item drop:
	if current_wave.should_drop(enemies_killed_this_wave):
		emit_signal("drop_item", current_wave.DropItem)
                print("DROPPING!")

Wave.gd

var rng = RandomNumberGenerator.new()

func _ready():
	rng.randomize()

func should_drop(num_killed):
	var fraction_killed = float(num_killed)/num_enemies
	if fraction_killed >= drop_when:
		if rng.randf() <= drop_chance:
			return true

	return false

Works!   But also after second enemy...
var drop_completed = false        <---------------------------------------------------

func _ready():
	rng.randomize()

func should_drop(num_killed):
	var fraction_killed = float(num_killed)/num_enemies
	if not drop_completed and fraction_killed >= drop_when:        <---------------------------------------------------
		if rng.randf() <= drop_chance:
			drop_completed = true        <---------------------------------------------------
			return true

	return false

Dropper.gd
func _on_Spawner_drop_item(ItemScene):
	print("Dropping Item: ", ItemScene)
	drop(ItemScene)

Test end of level and beginning of level
drop_when = 1.0 doesn't work.  Need to check at begging of wave.
spawner.gd:
func start_next_wave():
	enemies_killed_this_wave = 0
	current_wave_number += 1
	if current_wave_number < waves.size():
		emit_signal("wave_update", current_wave_number)
		current_wave = waves[current_wave_number]
		enemies_remaining_to_spawn = current_wave.num_enemies
		timer.wait_time = current_wave.second_between_spawns
		timer.start()

		if current_wave.should_drop(enemies_killed_this_wave): <---------------------------------------------------
			emit_signal("drop_item", current_wave.DropItem) <---------------------------------------------------

Remove end of wave (instead, do beginning of 1st wave on level)
Remove any untaken pickups at end of level:
game.gd
func new_level():
	current_level += 1
	if current_level < levels.size():
		$HUD.update_level(current_level)
		navmap.queue_free()
		add_navmap()

		# Move the player back to the middle
		player.reset_position()
		# Reset the spawner
		$Dropper.reset()
		$Spawner.reset()


Czech translation

Add Czech translation

Thank you for your contribution but can you look at English translation and use that as a starter?  It looks like you are missing some labels?

We just added new labels for Now and FileSizeTypes if you can update and send another PR?


Unable to upload static file into NewAdvancedSession

When creating a new session onnxruntime_go.NewAdvancedSession("<http://static>", ...) I ran into such a problem that I need to transfer a static http file http://<my_nginx_ip>:9000/static/model/head_searcher.onnx, but as I understood, the NewAdvancedSession function can only accept the path to the file string, but not bytes []byte
At the moment, I'm saving the file locally and specifying the path to it, but I think this is a crutch and you should change the parameter onnxFilePath string to fileContent []byte for a more egile setting

Apologize.
I looked into the code and found out that there is a NewAdvancedSessionWithONNXData that implements exactly what I wanted!


Crl 1698 new version credential dumping

New version of credential dumping analytics story including the following detections:

Access LSASS Memory for Dump Creation
Create Remote Thread into LSASS
Detect Credential Dumping through LSASS access
Unsigned Image Loaded by LSASS
Attempted Credential Dump From Registry via Reg.exe
Detect Mimikatz Using Loaded Images
Attempt To Set Default PowerShell Execution Policy To Unrestricted or Bypass
Creation of Shadow Copy with ntdsutil
Creation of Shadow Copy with vssadmin
Creation of Shadow Copy with wmic and powershell
Creation of Shadow Copy with wmic
Credential Dumping via Copy Command from Shadowcopy
Credential Dumping via Symlink to Shadowcopy

Thank you for your great feedback:

will have a look
in my opinion they were not really helpful. I tried to be more specific to the analytics story.
in my opinion, we can only add it if we have tested it.
will change that
Good idea. Will try to combine them.
thank you. I will rename the macro.
What is the intro macro?
I renamed a few because I was going crazy because I didn't find the searches when the name of the search and the name of the file was completely different. There should be no impact to the customer when the file name changed because it will still generate the same savedsearches.conf
good idea. Will test it.
yes she is doing it.

7 - the macro I'm referring to would be the appropriate version of wineventlog_sysmon for windows events
8 - cool, again, just don't think we've actually done this, so unsure of any potential impacts. Fine with a name tweak in general

I worked on the feedback of Rico:

I totally agree to your feedback
I decided to develop more tailored investigations. I think we have to rethink the investigations once we know how they get executed in Mission Control.
I think that is also a topic, which should be discussed in the team. I'm not happy with releasing something which I was not able to test.
changed. Thanks for the feedback.
Combined three searches to one. Great idea.
renamed to sysmon
introduced macro wineventlog_security for the investigations
already discussed
changed and tested it. This is definitely the better default value.
Working with Brianna on it.


test(attachment) - Adding unit tests for fix done in Attachment PR

Related to the PR:
https://github.com/stardust-ui/react/pull/1452
adding unit tests.
And adding information into changed log as I missed it in previous PR.

Fails

:no_entry_sign:
Invalid entry format in CHANGELOG.md: >+- Fix `Attachment` more option button invoke correctly action on space/enter @kolaps33 ([#1452] (https://github.com/stardust-ui/react/pull/1452))<

  Generated by :no_entry_sign: dangerJS


Many of the options in upper_limit_methods don't work

BINS and countMaxima are never defined so upper limit method 2 and 4 will break. Probably want to either remove or fix those

Plan is to remove these in favour of just a variable choice of percentile


Add Coindata.co.za

I have no clue how to make a pull request.
Can we add their API to the cryptocurrency section?
Auth none
https://coindata.co.za/api.php

closing now. feel free to re-open if needed.


Created MISSING_NUMBER.cpp

Given an array nums containing n distinct numbers in the range [0, n], return the only number in the range that is missing from the array.

Add programming resources not codes like tutorials, courses, roadmaps, etc