MSS305 stopped working, updated and still not working.

this error report is not gunna be particularly helpful because i have no idea what is causing this, neither can i seem to get a log of it happening...
my MSS305 switch is unavailble in home assistant.
in the configuration screen, if i try to press the submit button i get the following error.

as i said before, i have tried getting a debug log file but nothing related to the integration shows up.
im quite new to home assistant in general and this is the 3rd time this has happened to me, before i've fixed it simply by updating however this time it hasn't fixed itself.

It's hard to say without any log...
When you hit 'CONFIGURE' in HA UI for the device you could choose the 'Diagnostics' option and enable detailed logs for the entry so to try grab better insights.
Once enabled 'Debug level' log into that form, try to reload the entry with the HA 3-dots menu and/or 'Download diagnostics'.
This issue in communication during configuration is very 'definitive' though: it looks as if the device totally refuses to respond to a basic standard query for abilities which, is supposed to be standard stuff for every kind of device.
This happens either because the host address is wrong (and so you are querying a totally different device) or it could be the 'device key' is wrong and the device totally refuses communication (it would be better if the device could reply a kind of error message stating this but..that's it: in my experience, different devices/firmwares, exposed different behaviors for queries with a wrong key. Also, it looks as if in the latest firmwares the 'Connection reset' is typical behavior for wrong key: a kind of safety measure to prevent brute force attacks or so I guess.

It's hard to say without any log... When you hit 'CONFIGURE' in HA UI for the device you could choose the 'Diagnostics' option and enable detailed logs for the entry so to try grab better insights. Once enabled 'Debug level' log into that form, try to reload the entry with the HA 3-dots menu and/or 'Download diagnostics'.
This issue in communication during configuration is very 'definitive' though: it looks as if the device totally refuses to respond to a basic standard query for abilities which, is supposed to be standard stuff for every kind of device. This happens either because the host address is wrong (and so you are querying a totally different device) or it could be the 'device key' is wrong and the device totally refuses communication (it would be better if the device could reply a kind of error message stating this but..that's it: in my experience, different devices/firmwares, exposed different behaviors for queries with a wrong key. Also, it looks as if in the latest firmwares the 'Connection reset' is typical behavior for wrong key: a kind of safety measure to prevent brute force attacks or so I guess.

I checked the IP address on my router and it agrees with the IP specified in HA, however I have no idea how to manually get the device key, I think it just automatically pulled it from my account. It's very late for me so I'll see if I can get a log file tmrw

No problem, the possible causes anyway might be different from those exposed..they were just hints for something to investigate.
Another hint (but I guess you already did it) is to reboot the device since it also happens, sometimes, the device stack starts to behave erratically with frequent disconnections (likely due to internal fw bugs/instabilities)

No problem, the possible causes anyway might be different from those exposed..they were just hints for something to investigate. Another hint (but I guess you already did it) is to reboot the device since it also happens, sometimes, the device stack starts to behave erratically with frequent disconnections (likely due to internal fw bugs/instabilities)

I finnaly got a log file
error_log.txt
Not really sure what I should try doing, maybe reinstalling the integration?

Hello @hl2jeep,
The log reports exactly the same error on http connection as when you try to reconfigure the device. Not sure if it's related to encryption support for newer devices (#456).
In the weekend I should be able to publish a new release with support for that. In the meantime, if you enable 'beta releases' in HACS for meross_lan you could be able to try/test it yourself (the published beta was reported as working for devices with encryption)

Hello @hl2jeep, The log reports exactly the same error on http connection as when you try to reconfigure the device. Not sure if it's related to encryption support for newer devices (#456).
In the weekend I should be able to publish a new release with support for that. In the meantime, if you enable 'beta releases' in HACS for meross_lan you could be able to try/test it yourself (the published beta was reported as working for devices with encryption)

Tryed it and I get the same exact error, 104 reset by peer

Thanks I'll check it out
On Thu, 20 Jun 2024, 12:35 krahabb, @.***> wrote:

Hello @hl2jeep https://github.com/hl2jeep,
The log reports exactly the same error on http connection as when you try
to reconfigure the device. Not sure if it's related to encryption support
for newer devices (#456 https://github.com/krahabb/meross_lan/issues/456
).
In the weekend I should be able to publish a new release with support for
that. In the meantime, if you enable 'beta releases' in HACS for meross_lan
you could be able to try/test it yourself (the published beta was reported
as working for devices with encryption)
—
Reply to this email directly, view it on GitHub
https://github.com/krahabb/meross_lan/issues/461#issuecomment-2180456651,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AMGUHOMRATBYWQ6BKSUCQGTZIK46NAVCNFSM6AAAAABJMYOXVKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCOBQGQ2TMNRVGE
.
You are receiving this because you were mentioned.Message ID:
@.***>


Peers don't receive votes when using TLS

Trying to run a three node etcd 3.0.3 cluster:

master0: <IP_ADDRESS>
master1: <IP_ADDRESS>
master2: <IP_ADDRESS>

With the following flags (IP_INT is ip above and index is the # after master):
/usr/bin/etcd --name master${INDEX} \
  --data-dir /var/lib/etcd \
  \
  --listen-client-urls "https://${IP_INT}:2379,https://localhost:2379" \
  --advertise-client-urls "https://${IP_INT}:2379" \
  --client-cert-auth \
  --cert-file /etc/ssl/server.pem \
  --key-file /etc/ssl/server-key.pem \
  --trusted-ca-file /etc/ssl/5pi-ca.pem \
  \
  --listen-peer-urls "https://${IP_INT}:2380" \
  --peer-client-cert-auth \
  --peer-cert-file /etc/ssl/server.pem \
  --peer-key-file /etc/ssl/server-key.pem \
  --peer-trusted-ca-file /etc/ssl/5pi-ca.pem \
  --initial-cluster-state new \
  --initial-cluster master2=https://<IP_ADDRESS>:2380,master1=https://<IP_ADDRESS>:2380,master0=https://<IP_ADDRESS>:2380, \
  --initial-advertise-peer-urls https://<IP_ADDRESS>:2380

In the etcd log I see that it starts up as expected (not sure about ca = though):
ul 21 13:52:51 master0 systemd[1]: Starting etcd...
Jul 21 13:52:52 master0 etcd[3064]: etcd Version: 3.0.3
Jul 21 13:52:52 master0 etcd[3064]: Git SHA: 24a90ba
Jul 21 13:52:52 master0 etcd[3064]: Go Version: go1.6.2
Jul 21 13:52:52 master0 etcd[3064]: Go OS/Arch: linux/amd64
Jul 21 13:52:52 master0 etcd[3064]: setting maximum number of CPUs to 1, total number of available CPUs is 1
Jul 21 13:52:52 master0 etcd[3064]: peerTLS: cert = /etc/ssl/server.pem, key = /etc/ssl/server-key.pem, ca = , t
Jul 21 13:52:52 master0 etcd[3064]: listening for peers on https://<IP_ADDRESS>:2380
Jul 21 13:52:52 master0 etcd[3064]: clientTLS: cert = /etc/ssl/server.pem, key = /etc/ssl/server-key.pem, ca = ,
Jul 21 13:52:52 master0 etcd[3064]: listening for client requests on <IP_ADDRESS>:2379
Jul 21 13:52:52 master0 etcd[3064]: listening for client requests on localhost:2379
Jul 21 13:52:52 master0 etcd[3064]: name = master0

But then the nodes start an election and it seems like they can't reach each other:
Jul 21 14:12:43 master0 etcd[3064]: 83a72509fc4c19fc is starting a new election at term 816
Jul 21 14:12:43 master0 etcd[3064]: 83a72509fc4c19fc became candidate at term 817
Jul 21 14:12:43 master0 etcd[3064]: 83a72509fc4c19fc received vote from 83a72509fc4c19fc at term 817
Jul 21 14:12:43 master0 etcd[3064]: 83a72509fc4c19fc [logterm: 1, index: 3] sent vote request to 42c9c3f43d2962e6 at term 817
Jul 21 14:12:43 master0 etcd[3064]: 83a72509fc4c19fc [logterm: 1, index: 3] sent vote request to 8c62c59fae85f284 at term 817
Jul 21 14:12:44 master0 etcd[3064]: 83a72509fc4c19fc is starting a new election at term 817
Jul 21 14:12:44 master0 etcd[3064]: 83a72509fc4c19fc became candidate at term 818
Jul 21 14:12:44 master0 etcd[3064]: 83a72509fc4c19fc received vote from 83a72509fc4c19fc at term 818
Jul 21 14:12:44 master0 etcd[3064]: 83a72509fc4c19fc [logterm: 1, index: 3] sent vote request to 8c62c59fae85f284 at term 818
Jul 21 14:12:44 master0 etcd[3064]: 83a72509fc4c19fc [logterm: 1, index: 3] sent vote request to 42c9c3f43d2962e6 at term 818
Jul 21 14:12:45 master0 etcd[3064]: publish error: etcdserver: request timed out

They only ever get votes from themselves. I can connect to the peers with s_client and client auth, although I get some warnings (same result for other peer):
root@master0:~# openssl s_client -cert /etc/ssl/server.pem -key /etc/ssl/server-key.pem -CAfile /etc/ssl/5pi-ca.pem -connect <IP_ADDRESS>:2380
CONNECTED(00000003)
depth=1 C = DE, ST = Berlin, L = Berlin, CN = 5pi.de CA
verify return:1
depth=0 CN = master1
verify return:1
140592628754072:error:14094412:SSL routines:ssl3_read_bytes:sslv3 alert bad certificate:s3_pkt.c:1472:SSL alert number 42
140592628754072:error:140790E5:SSL routines:ssl23_write:ssl handshake failure:s23_lib.c:177:
---
Certificate chain
 0 s:/CN=master1
   i:/C=DE/ST=Berlin/L=Berlin/CN=5pi.de CA
---
Server certificate
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
subject=/CN=master1
issuer=/C=DE/ST=Berlin/L=Berlin/CN=5pi.de CA
---
Acceptable client certificate CA names
/C=DE/ST=Berlin/L=Berlin/CN=5pi.de CA
Client Certificate Types: RSA sign, ECDSA sign
Requested Signature Algorithms: RSA+SHA256:ECDSA+SHA256:RSA+SHA384:ECDSA+SHA384:RSA+SHA1:ECDSA+SHA1
Shared Requested Signature Algorithms: RSA+SHA256:ECDSA+SHA256:RSA+SHA384:ECDSA+SHA384:RSA+SHA1:ECDSA+SHA1
Peer signing digest: SHA384
Server Temp Key: ECDH, P-256, 256 bits
---
SSL handshake has read 1219 bytes and written 1599 bytes
---
New, TLSv1/SSLv3, Cipher is ECDHE-RSA-AES256-GCM-SHA384
Server public key is 2048 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
SSL-Session:
    Protocol  : TLSv1.2
    Cipher    : ECDHE-RSA-AES256-GCM-SHA384
    Session-ID:
    Session-ID-ctx:
    Master-Key: 204FAD7B7E6FE7295ED353DB3338CBF4EF3A8287B21B4FB8DAC39B9D9691DFB1C6952CDF9C3706E5FBEDC592CC9D06E3
    Key-Arg   : None
    PSK identity: None
    PSK identity hint: None
    SRP username: None
    Start Time:<PHONE_NUMBER>
    Timeout   : 300 (sec)
    Verify return code: 0 (ok)
---

curl, using gnutls, aborts right away:
# curl -v --cert /etc/ssl/server.pem --key /etc/ssl/server-key.pem  https://<IP_ADDRESS>:2380
* Rebuilt URL to: https://<IP_ADDRESS>:2380/
*   Trying <IP_ADDRESS>...
* Connected to <IP_ADDRESS> (<IP_ADDRESS>) port 2380 (#0)
* found 173 certificates in /etc/ssl/certs/ca-certificates.crt
* found 692 certificates in /etc/ssl/certs
* ALPN, offering http/1.1
* gnutls_handshake() failed: Certificate is bad
* Closing connection 0
curl: (35) gnutls_handshake() failed: Certificate is bad

Beside that, I also can't connect to the client port. It's open but not responding. But that might be normal behavior if the cluster isn't there yet..? Not sure.
Now I suspect it's an issue with how I created the keys but I used cfssl pretty much like described here: https://github.com/coreos/docs/blob/master/os/generate-self-signed-certificates.md
More specifically I used this command:
echo '{"CN":"master'$i'","hosts":["<IP_ADDRESS>", "10.130.'$i'.1"],"key":{"algo":"rsa","size":2048}}' \
  | cfssl gencert -ca=config/generated/ca.pem -ca-key=config/generated/ca-key.pem -config=config/ca/ca-config.json -profile=server - \
  | cfssljson -bare "$prefix"

Where $i again is 1..3 for master1..3. The cert looks right to me when inspecting with openssl:
root@master0:~# openssl x509 -text -noout -in /etc/ssl/server.pem
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
            01:4f:97:13:13:a4:a2:a0:ba:3c:cf:2e:bb:7d:49:df:09:ca:75:30
    Signature Algorithm: ecdsa-with-SHA256
        Issuer: C=DE, ST=Berlin, L=Berlin, CN=5pi.de CA
        Validity
            Not Before: Jul 21 17:13:00 2016 GMT
            Not After : Jul 20 17:13:00 2021 GMT
        Subject: CN=master0
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                Public-Key: (2048 bit)
                Modulus:
                    00:d6:9f:d8:6d:44:4c:ee:52:fe:49:7c:5a:c4:70:
                    0d:67:1c:ec:6a:11:95:e3:25:d4:19:69:42:ed:6e:
                    1f:56:86:3f:23:19:04:e5:81:e2:63:e5:01:1f:45:
                    37:2e:70:1a:6a:00:1b:18:ca:35:93:ea:af:4f:09:
                    58:c8:ed:5b:07:52:64:fc:c5:52:e3:5a:e0:65:2b:
                    40:5e:48:1e:7b:61:af:84:b9:2c:f4:76:c8:48:c1:
                    03:e4:26:72:c6:be:e7:a3:56:16:17:c7:c8:55:eb:
                    36:13:21:17:93:c0:bd:61:30:b5:a6:4c:b8:ec:eb:
                    5a:bc:2d:bb:15:30:cb:48:3f:13:c3:35:f9:80:22:
                    9f:c0:da:5f:e4:fa:a0:3c:e2:d7:e2:b0:68:4e:e1:
                    10:dd:11:c7:47:1c:4e:c3:a6:c3:3a:9c:f0:33:66:
                    97:02:8f:02:b2:ab:ef:81:41:8c:48:c1:20:d9:58:
                    d9:f5:d7:72:64:73:d8:20:09:bb:83:dd:df:61:7b:
                    0a:c3:77:c5:41:f5:a9:59:03:bf:8e:54:01:06:ed:
                    55:19:8e:c0:86:60:5d:ab:76:d1:0f:ee:7c:5b:78:
                    3f:03:98:c3:ee:5b:4f:aa:a7:4f:4f:cd:0d:28:23:
                    23:bb:eb:3a:29:69:18:d2:f1:70:69:5f:22:a4:f0:
                    3d:fb
                Exponent: 65537 (0x10001)
        X509v3 extensions:
            X509v3 Key Usage: critical
                Digital Signature, Key Encipherment
            X509v3 Extended Key Usage:
                TLS Web Server Authentication
            X509v3 Basic Constraints: critical
                CA:FALSE
            X509v3 Subject Key Identifier:
                17:CE:6A:76:D8:B5:C8:0E:96:48:55:3A:01:BC:1A:B8:CC:75:90:09
            X509v3 Authority Key Identifier:
                keyid:7B:68:DC:F0:BA:04:6F:D7:42:07:58:9E:55:C3:50:98:99:66:D4:3D

            X509v3 Subject Alternative Name:
                IP Address:<IP_ADDRESS>, IP Address:<IP_ADDRESS>
    Signature Algorithm: ecdsa-with-SHA256
         30:45:02:20:11:d8:b7:6e:40:2b:1d:7a:89:8b:a9:bb:15:8f:
         1d:a0:06:73:91:ed:61:0f:b6:9f:ac:2b:8a:c9:a6:01:76:6e:
         02:21:00:bb:fa:39:4f:19:a1:6e:6f:3a:56:e9:82:a2:0b:24:
         04:13:8a:57:85:49:ef:04:36:7a:9c:c5:fd:02:82:39:0f

although I get some warnings (same result for other peer):

What warnings does etcd print out?

@gyuho They are in the gist. To be fair, I gist'ed a lot :)
Talking about:
verify return:1
140592628754072:error:14094412:SSL routines:ssl3_read_bytes:sslv3 alert bad certificate:s3_pkt.c:1472:SSL alert number 42
140592628754072:error:140790E5:SSL routines:ssl23_write:ssl handshake failure:s23_lib.c:177:

openssl prints that to stderr, but still prints 'Verify ok'

As discussed in IRC, it seem like I used the wrong cfssl profile which generated server-only certificates. I'll verify in a bit if this fixes my problem.
That being said, I'd still consider the lack of a proper error message as a bug.

@discordianfish the error is reported when etcd is started with --debug:
rafthttp: failed to dial d05e7521f6de6bab on stream Message (x509: cannot validate certificate for <IP_ADDRESS> because it doesn't contain any IP SANs)

The messages flood the logs, so I'm not sure if it's a good idea to raise the logging level above debug.

@heyitsanthony Damn, I missed that flag. Still, this kind of error should be probably logged with higher severity.

@discordianfish Do you have the full logging history? I think etcd should complaint about health checking connection issue at default logging error.

@xiang90 I reproduced this configuration-- it doesn't say anything about failure to establish connections, just a publish error and election cycling; the error gets eaten up in rafthttp.peerstatus.deactivate.

@heyitsanthony OK. I will look into this. I think we should make the logging better.

@xiang90 I just ran into this issue with 3.0.15 again (cert valid for my hostname (and some other IP) but not the IP etcd used to connect to it. I can't get the log anymore since I terminated the instances already but it didn't show any certificate error. Instead it only showed how it sends out vote requests and some timeouts. Also etcd member list returned an TLS timeout instead of any certificate warning..
Can you check that the changes from #6072 are still working as intended? If so, I can try to reproduce this again and provide more details.


[BUG] Wrong version number

Describe the bug
The last release on GitHub and Flathub is 45.1.9, but the app reports 45.1.8 for some reason.
To Reproduce
Steps to reproduce the behavior:

Install Errands from flathub
Launch it and go to about

Expected behavior
It should report 45.1.9
Screenshots and screencasts

OS info:

Distro: Fedora 39 workstation edition.
Desktop Environment: GNOME
Using latest version from Flathub: yes, it's installed only for the user.

Additional context
in the screenshot with the terminal output, I included an update attempt to show I'm on the latest release.

Fixed on dev branch.


Fix travis config

Summary
Travis builds are braking with this error:
$ sh -e /etc/init.d/xvfb start
sh: 0: Can't open /etc/init.d/xvfb
The command "sh -e /etc/init.d/xvfb start" failed and exited with 127 during .

It looks like we have an out of date config for xvfb. The latest guidance is to invoke it as a service.
I also cleaned up some of the other config.
/domain @Betterment/test_track_core
/no-platform

<< domain LGTM


Add free text field under Invoices & Receipts setting for hosts

User Story
As a host admin, I want to add text that appears on payment receipts to meet local regulations or my organization's needs. For example, charity entities may need to include specific language or tax ID numbers in order for those receipts to be tax deductible donations to a charity. Or they might just want to put a custom thank you message.
Solution
Add a free text field below the setting for custom title where host admins can add some more info, which is then printed on receipts that go to financial contributors.
Field name: Extra info
Description: Add any other text to appear on payment receipts, such as your organization's tax ID number, info about tax deductibility of contributions, or a custom thank you message.

In the US context, this article outlines what is required in a letter from a 501c nonprofits in order for donations of in excess of $250 to be tax deductible, so it seems to make sense to have the receipts be able to include the relevant language. An article that gives the overview of that requirement is here.

What would be the best spot to display this in the receipt?

Any of those are fine but lets go with Yellow in case someone wants to put a lot of text

Agreed!

A $200 bounty was attached to this issue. Anyone submitting a Pull Request will be rewarded with $200 when the Pull Request is reviewed, accepted and merged. More info
This bounty is currently reserved to participants of the Open Source Festival event. If not completed there, it will be later open to everyone.

Specs
Frontend
On Host > Settings > Invoices & Receipts (components/edit-collective/EditHostInvoice.js) add a new textarea field with the label Extra info and the description:

Add any other text to appear on payment receipts, such as your organization's tax ID number, info about tax deductibility of contributions, or a custom thank you message.

Must save the given extra info in collective.settings.invoice.extraInfo.

Invoices
Service: https://github.com/opencollective/opencollective-invoices
Add the field in the yellow zone mentioned above. Must display multi-line texts properly.

Please follow our code guidelines, especially:

The strings must be internationalized. See /help/developers/translations
Whenever it's possible we must use styled-components to write styles. See OC Styleguide
We're getting rid of Bootstrap. Please don't use it for new developments.
Icons must be imported from the styled-icons library.
Tests written with Cypress must follow our good practices conventions.

hello @znarf  i would liike to work on this issue could you assign it to me

@vinuch You're assigned!

@znarf how do i navigate to the invoice and receipts page ?
i have created a new collective but in the settings the sidebar stops at advanced so i cant navigate to the invoice page and view my changes

@znarf the settings can be found in the Organization that is hosting the Collective, not the Collective itself. You need to create an organization to see that.

alright i have found that i have updated the text area  having trouble saving the value though in the api

hey @znarf  i have done the first part (added the text area and saved its value to (collective.settings.invoice.extraInfo) the last thing is to display that value in the "yellow area " on opencollective-invoices but i cant seem to reference an "extra info" property on the test invoice that displays there, i'd expect that since im just adding the extra info feature but my question is - How can i request a receipt for this organization i created so i can see if it acually displays it
Also ill be sending in my PR to opencollective-frontend and opencollective-invoices respectively and i wont be able to refrence this issue there i hope it wont be a problem.

@vinuch when creating a PR make use of  markdown links with the full url path to this issue

@vinuch You need to donate to a collective hosted by the Organization. So:

Activate the organization as Host (if not already done)
Apply to the Host using a Collective you administrate
Donate to the Collective using any account.
You should get an invoice for the donation

ok thanks ill get on it

@znarf i have donated but when i click download invoice i get "Error: Network request failed"
and this in the console
Access to XMLHttpRequest at 'https://invoices-staging.opencollective.com/transactions/d25ef750-0cd8-4ffd-bf74-d129b8ca979b/invoice.pdf' from origin 'http://localhost:3000' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: The 'Access-Control-Allow-Origin' header has a value 'https://staging.opencollective.com' that is not equal to the supplied origin.
does anyone have an idea what could be causing this ?

@vinuch One solution is to bypass CORS with a browser extension (for development purpose).
The best solution I see is to run the invoice service yourself locally. See: https://github.com/opencollective/opencollective-invoices
Make sure you have the same .env in both frontend and invoices projects:
WEBSITE_URL=http://localhost:3000
INVOICES_URL=http://localhost:3002
API_KEY=09u624Pc9F47zoGLlkg1TBSbOl2ydSAq
API_URL=https://api-staging.opencollective.com

ok i made the .env files the same in both projects but it was still not working so i got a browser extension to bypass CORS and that did the trick
but i have another problem i cant seem to figure out how to pass the value of the input area to opencollective-invoices to print it on the receipt. I tried copying the exact same thing that was done for the title but i think im still missing something because it refuses to reflect on the invoice. I noticed ho it was passed as a prop as settings.invoiceTitle but is accessed in opencollective-Invoice as invoice.title but i really dont get how.
@znarf could you please point me to the pull request where you made the invoiceTitle editable so i can fix it for the text area i cant seem to find it anymore
or maybe you can tell me how to pass the value cos im beat ive been on it all day. Thanks in advance.

@vinuch You can browse past PRs here: https://github.com/opencollective/opencollective-invoices/pulls?utf8=✓&q=is%3Apr+is%3Aclosed+-author%3Aapp%2Fdependabot-preview+

@vinuch any progress?

@znarf here are links to my pull requests
frontend - https://github.com/opencollective/opencollective-frontend/pull/3600
invoices - https://github.com/opencollective/opencollective-invoices/pull/260
api - https://github.com/opencollective/opencollective-api/pull/3431

hello @Betree hope you enjoyed your weekend .
are you done reviewing the PR by chance?

Sorry for the delay @vinuch, we're gonna look closely at it.

@znarf I've given some feedback on the PRs already. The main blocker right now is https://github.com/opencollective/opencollective-api/pull/3431#pullrequestreview-375295952, I haven't tested the code yet but I don't understand how it can work by reading at it.

:trophy: This issue has been completed by @vinuch
To claim the $200 bounty, you can either:

Submit an invoice to https://opencollective.com/engineering/expenses/new (please mention the issue number in the expense's title)
Or ask for an Open Collective gift card of the same value (to donate to other collectives)

Thanks @betree invoice submitted.

Hello @betree @znarf please could one of you look into the invoice I submitted for this issue about a month ago it’s been pending since then it’s invoice #16633 submitted to open collective engineering thank you


Create github template for a commitizen plugin

Goal
Let users create a cz package for their current project.
Description
Let's say users have some different commiting rules (not using conventional-commits). Right now the information in  customization guides the user in the creation of the plugin. We could have a github template that automates this (or a cookiecutter?).
The idea would be to assist in the creation of the folder structure and filling the boring parts.
.
├── cz_jira.py
└── setup.py

A link to this template should be added into our docs.

I've created a template for it.
https://github.com/Lee-W/commitizen_cz_template


[ourlastbesthope] Preview image added

Changes / Comments
Preview image added

Closing this PR since its got all the files. i'll upload the preview.


Exchange assets post update

The exchange_assets post method incorrectly requires apiVersion and main - which are not required for all classifier types i.e. mule-application which I have added to the list of classifier enums
See Anypoint CLI example
https://help.salesforce.com/s/articleView?id=001119648&type=1
https://docs.mulesoft.com/anypoint-cli/latest/exchange-assets#exchange-asset-upload

@soufi do you need anything else to get this incorporated?

Hi @matthewdevenny Thank you for your PR, I will look into this one asap.

@matthewdevenny are you a terraform user ? or go client ?

I am using the go client


Rolling Release Proposal

OUI isn't bound by the same release schedule as OpenSearch core or OpenSearch Dashboards. They follow a paired release schedule so that features come out at the same time. However, OUI doesn't follow that release schedule. I propose that OUI follows a rolling release schedule of 2 weeks.
The idea is that we take a few tasks every 2 weeks (or every sprint), make sure we get something valuable out of those tasks (i.e. something that can go in a release), work on it, and whatever we have new push a release for at the end of the sprint.
If a sprint goes by and we don't have anything worth going into a release, we don't need to cut a release. And we shouldn't be trying to cram bad quality code in just to get a release out.
The idea is to reduce the amount of emotional significance of a release so that we can quickly iterate and push releases that our consumers find valuable, rather than making them wait for a long time until we feel like it's "the right time" to push a release.
There is nothing extremely actionable out of this task, other than maybe updating the RELEASING.md file with this guidance.
I wrote this pretty quickly and sloppily, so feel free to drop any questions or concerns.

+1 this proposal.

This is the dream goal for any software product. But there are many reasons this is hard to realize. I think to seriously discuss this topic we need to have clear answers to some of these questions:

What are all the steps needed to create a release?
How long does it take if i want to release a new version of OUI today and how long does that take till its available to the user to pull and use in their application
How much of this process is automated today
How much do we trust our automation to validate that we release unbroken changes?
If it isnt fully automated, how does the dev team handle the additional burden from releasing every two weeks.
With such frequent releases, how will dependent teams know which release their change will come in (Making good release notes and changelogs)
What about out of cycle releases for urgent bug fixes and changes

These are just what i can think of now, but I also think we are wayy too early in the repositories lifecycle to set such a short release cycle without doing a few releases to know if this is doable and what the cost of doing so is. Since OSD and plugins are the primary dependencies of the OUI repo for now, syncing them to the same cycle makes sense while we get answers to these questions and evaluate the cost of doing rolling releases.

To piggy back on item 6, I think one of the biggest challenges we face as OUI is knowing the "right" timing to release when Dashboards core or a plug-in need to uptake the latest version in order to benefit from specific changes like a prop update or a new component. Having the frequent release cycle helps us plan backwards a bit better against these project coordination issues.


Questions about fonts

Hello, I am using your theme, thank you. I have found some problems in using it, I am a Chinese user and have set my own interface font for Obsidian (PingFang SC), but the Chinese font in the interface is not PingFang SC font, the English font is successfully displayed as PingFang SC, can there be a solution for it, thank you for watching!

Hello! Unfortunately, I don't know a lot of Chinese, so I may not be able to come to a solution.
One thing I know might work is instead of typing 'PingFang SC' , if there is an alternate Chinese name for the font, type that instead. Or, type both the English version of the font and the Chinese version, separated by a comma.
For example, I see some fonts in css files like, font-family: "Microsoft Yahei","微软雅黑", sans-serif. Sometimes the Chinese name is required for the font to work.
If it doesn't work, let me know and I'll see what I can do.


Is it a good choice to use Accuracy in evaluating the hallucination detection/recognition performance?

Hi authors,
It is definitely a great work for our community!
I notice that the accuracy serves as a metric to measure the performance of various models for hallucination recognition, as shown in Table 5.
However, I find that the hallucination cases are significantly imbalanced in many subsets.
For example, for the QA dataset, only 19.5% of instances are hallucinations. Similarly, around 18% of instances from the General dataset are hallucinations.
Thus, the high accuracy achieved by the models cannot demonstrate that the models could well identify the hallucination contents since the model could achieve almost 80% accuracy even if it constantly predicts non-hallucination.
Precision/Recall/F1 scores over the positive samples (the hallucination samples) may be more suitable for this scenario.
Again, this is a great work and thanks for sharing!
Best,
Xuansheng

Thanks for your suggestion. Some reviewers also mentioned that reporting P/R/F1 scores besides accuracy will make our results more convincing. Therefore, we suggest adding P/R/F1 scores when using our benchmark.


RuntimeError when refreshing accounts locally

Details
A RuntimeError is returned when refreshing your accounts is clicked because get_task_data gets task result which results in a RuntimeError saying *** RuntimeError: Cannot retrieve result with task_always_eager enabled
Steps to Reproduce

Setup the project locally

Click on refresh your accounts under the Import a Repository section

I think this is a duplicate of https://github.com/rtfd/readthedocs.org/issues/4077, also, you need to create a social application in your local instance to be able to use that functionality.

@stsewd Okay. Also I was able to reproduce the issue after creating a social application.

Your local instance needs to be visible from the internet to make this work properly, closing in favor of https://github.com/rtfd/readthedocs.org/issues/4077

I use ngrok to test the github integration btw.

Oh okay. Yeah I am familiar with ngrok. I will use it too. Thanks for the help.


Requires wget to build

wget doesn't build yet

branch created, but not yet promoted

wget ported


Memory overflow using dict type features

I am trying to use Word vector features for training my CRF model for Named entity recognition.I am using sklear-crfsuite for training my model which follows the same convention for creating features as this library and is a wrapper around python-crfsuite.
The word vector features result in 300 additional dense features per token in the sequence. Because python-crfsuite uses dictionaries to specify the features, my training data itself ends up taking 6 times more memory compared to that used by CRFsuite native binary with the training data in text files. (35 GB vs 6.5 GB).
Is there a more memory efficient way to specify the features instead of only using dicts. I believe the ItemSequence is a way to pass Sequences instead of using the list of dictionaries. Can I also pass generators for my training features instead of the list of training features, to keep the memory overhead low ?
I know sklearn-crfsuite uses the six.moves.zip function which returns an iterator instead of a list of zipped X,y, so I believe it should be possible.
Can there be an example for using the ItemSequence class for giving the input data?

Hey @napsternxg,
Yes, generators are supported, you don't have to keep all dictionaries in memory at the same time.
It looks like you don't need ItemSequence either - just call Trainer.append in a loop, generating dicts on fly.

Hey @napsternxg
Did you solve your issue? I am also having the same issue, if you have solved it can you please share the code.

@foxinfotech what have you tried? The code should be really straightforward, I'm not sure what the issue is:
data = [...]  # a list with raw examples
y = [...]

def get_X(data):
    for seq in data:
        yield [extract_features(item) for item in seq]

trainer = pycrfsuite.Trainer()

for xseq, yseq in zip(get_X(data), y):
    trainer.append(xseq, yseq)

@kmike :My exact issues is:
I have sentences represented in arrays, where each word is represented in rows (300 dimensions). I need to pre-process the sequence one by one using a neural network node which expands the word vectors to 1000 dimensions.
For each processed sentence by the NN, I am collecting the outputs of neural network in list where each array has words in rows but this time the columns increases from 300 to 1000. this pushes me to memory overflow. I am looking for something which makes the CRF learning online.
I am a Java guy and new to python, please excuse me if you find this question silly.

@foxinfotech aha, I see, so the problem is not with RAM used by dict features, but in that you don't want to load the training set to RAM at once at all.
There are online training algorithms in crfsuite (e.g. SGD), but AFAIK it doesn't expose an interface to train on mini-batches, at least not in C++ API. It should be possible to fix in https://github.com/chokkan/crfsuite library.

@foxinfotech yes I did resolve the issue. I used the following strategy:
def get_line(filename):
    with open(filename, "wb+") as fp:
        seq = []
        for line in fp:
            line = line.strip()
            if not line:
                yield seq
                seq = []
            line = line.split("\t")
            seq.append(line)

def get_features(seq, i):
    /** DEFINE EXTRACTED FEATURES **/
    return features ## a dict

LBL_IDX = -1 ## Index of label
X = ([get_features(seq, i) for i in xrange(len(seq)) for seq in get_line(filename)])
Y = ([seq[i][LBL_IDX] for i in xrange(len(seq)) for seq in get_line(filename)])

trainer = pycrfsuite.Trainer()
trainer.fit(X, Y)

Eventually, the trainer is still going to load the final data into its memory. In my case this was 5-6 GB with 300 dimensional word embedding and 10,000 sequences. if your machine doesn't have the required RAM then CRFSuite will not be able to fit this data.

def get_features(seq, i):
/** DEFINE EXTRACTED FEATURES **/
return features ## a dict
for eg. my sentence is "i ate apple", i have vector representation say 4 dims for each word is available. How should the feature dict for each word look like??
for word 'ate':
{'f1':2.0,'f2':3.0,'f3':2.3,'f4:'2.1 }
Am i right on this?

@foxinfotech yes, exactly.
It may be better to add a direct support for this kind of features, so that you won't have to create these dicts - it should work faster. It can be implemented as an additional input format for ItemSequence (see https://github.com/tpeng/python-crfsuite/blob/720334fc325534e5b56f2b83ed023645ac9bd0d1/pycrfsuite/_pycrfsuite.pyx#L39). I think it may accept dicts with np.array, array.array values or lists of floats;  the API could look like {'f': [2.0, 3.0, 2.3, 2.1]}, which will be expanded to {'f0':2.0, 'f1':3.0, 'f2':2.3, 'f3:'2.1 } internaly.
Pull requests are welcome :)

@kmike and @foxinfotech I have made a pull request with an API change which allows for easy addition of word embedding or other float list features. Do have a look and let me know if this is compatible with the overall API of python-crfsuite.

I have created a separate issue for the word embedding feature at #39. Please continue the discussion on it at that post. I am closing this issue as it is resolved.


Helm3 upgrade cant read the latest data without '--recreate-pods' option

Hi,
Actually i met some problems when using Helm3 to upgrade, and this problem can be solved in Helm2.
Helm2 has '--recreate-pods' option to allow recreate pods, but Helm3 doest has this funtionnally, since 'helm upgrade' will terminating the old pod and create a new one, in fact, i found the new pod will be running state immediately, skip the containercreating state, i suspect the new pod will reuse the old pod configuration or data without '--recreate-pods' option, so sometimes new pod cant read the latest data, but with '--recreate-pods' option always work, so is there any solution for helm3? thanks in advance.
The following is some of my Deployment configuration:
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ .Release.Name }}
labels:
{{- include "test.labels" . | nindent 4 }}
spec:
{{- if .Release.IsInstall }}
replicas: 1
{{- end }}
selector:
matchLabels:
{{- include "test.selectorLabels" . | nindent 6 }}
template:
metadata:
labels:
{{- include "test.selectorLabels" . | nindent 8 }}
spec:
serviceAccountName: {{ include "test.serviceAccountName" . }}
securityContext:
{{- toYaml .Values.podSecurityContext | nindent 8 }}
containers:
- name: {{ .Chart.Name }}
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
imagePullPolicy: {{ .Values.image.pullPolicy }}
lifecycle:
preStop:
exec:
command: ["sh", "-c", "kill -2 cat /redis.pid"]
Since our redis database will not write the data to disk immediately, so need this command to force write, so we need ensure this command work before new pod running.

This is a good question. The --recreate-pods flag requires the chart consumer to do some work rather than adding in logic to the chart to recreate the pods. This can lead to inconsistency. There is a way to add the pod recreation right into the chart. It is documented at https://helm.sh/docs/howto/charts_tips_and_tricks/#automatically-roll-deployments
Does that help?

hi @mattfarina, i've check the document you send and tried the new method in helm3 which instead of '--recreate-pods', but it still cant reach my requirements.
'rollme: {{ randAlphaNum 5 | quote }}' this method not work for my situation, i found that the new method cause the new pod will be running state immediately and the old pod will be Terminating state, they are at the same time.
But if you used '--recreate-pods' options, the new pod will be containercreating state, then running, and old pod will be Terminating state, althrough '--recreate-pods' options has been marked as deprecated in Helm 3, but still can use it in helm3, and it can reach my requirements, but will show a deprecate message and seems not good.

Hi, i also tried the checksum method, but show so many errors, actually i want deployment resource refresh everytime, is there other solution for it?

@zwangsh What errors did the checksum method cause? It should not be causing errors as it is an annotation.


[Test] Mark test/stdlib/Reflection/PartialType.swift unsupported in freestanding builds.

Force merging to fix CI.


Support multiple public nodes in web gateway template

Currently the web_gateway supports only on public node and it installs traefik and coredns on this node.
Modify it to be a list, and install traefik and coredns on all the public nodes.

Tried once again , seems like a zerotier issue but worked well this time.
In [5]: args = {
   ...:     ...:     'nics': [{'name': 'ten', 'type': 'zerotier', 'ztClient':'client3', 'id': 'a0cbf4b62a4b8ea1'}],
   ...:     ...:     'farmerIyoOrg': 'kristof-farm',
   ...:     ...:     'nrEtcds': 3,
   ...:     ...:     'publicNodes': ['ac1f6b457488','ac1f6b457344']
   ...:     ...:     }
   ...:

In [6]: wg = robot.services.create('github.com/threefoldtech/0-templates/web_gateway/0.0.1', 'wgj', data=args)

In [8]: wg.schedule_action('install')
Out[8]: install

In [10]: wg.schedule_action('start')
Out[10]: start


Output from Roslyn Source Generators should be ignored by default

With Source Generators becoming more popular now that Roslyn has direct support for it, StyleCop should be able to directly detect and ignore them without each generated file needing to specify // <auto-generated /> in it. That's putting the burden on the source generator author to know about and get right and hurts users of these analyzers who are "caught in the middle."

StyleCop Analyzers automatically ignores everything that Roslyn says is considered generated code. This should by filed on https://github.com/dotnet/roslyn. I would recommend source generator authors include the // <auto-generated /> comment in the generated code (or name the generated file ending with .g.cs), which is the same requirement that appeared for source generators prior to the ISourceGenerator interface.


Table of contents is not useful

Currently it is displaying the least useful parts of the notebook, e.g., "Future work", and hiding the most useful parts, e.g., "Fastest growing lineages in Canada".  I am proposing the following fixes:

Demote Future Development, Methodology, Data notes by province, List of useful tools, Acknowledgements and sources, and Session info into levels under Appendix
Promote all sections under "SARS-CoV-2 in Canada" to upper levels - remove "SARS-CoV-2 in Canada" as a heading, it should be obvious that this is the topic

Further changes to the TOC:

Promote SARS-COV2 in canada and Selection on Omicron headings.
Selection on omicron isntead of selection trends by variant.
fastest growling lineages > remove canada.

SARS-COV2-2 in canada > introduction and limitations.
Pango lineage table > remove description
Variants over time. > rm description

BA.* sublineages > rm selection.


feat: port RingTheory.WittVector.Isocrystal

I suggest we merge this now, and debug later.
bors merge


Update to 0.5.1

Checklist

[x] Used a personal fork of the feedstock to propose changes
[ ] Bumped the build number (if the version is unchanged)
[x] Reset the build number to 0 (if the version changed)
[x] @conda-forge-admin, please rerender
[x] Ensured the license file is being packaged.

@conda-forge-admin, please rerender

@conda-forge-admin, please rerender
Current Rust needs newer OSX, at least 10.12 now.


AttributeError  in models.py for device_id

I installed this package like yesterday and it worked fine but when I do it again today it throws me an error for device_id field in models.py with UUIDField.
AttributeError: 'module' object has no attribute 'UUIDField'
Well I think the issue is with latest release. FYI
What should I do now?

What version of Django do you run?

1.7

Django 1.8 is required as of 1.3.0. Support for 1.7 is available in 1.2.1.


fix hard unwrap fail on push commits

@benartuso I think the push/pull optimizations you are working on might fix this, but with the current version, I tried to pull to another machine and push up changes and it crashed on push here.
Also I know it's Sunday, feel free to ignore until after the long weekend 😃

@gschoeni Was this on a standard clone or deep? Either way should be fixed by my changes, but doesn't hurt to have in there


MINOR: Upgrade jetty to 9.4.30.v20200611

Recently commit 492306a updated both jetty to version 9.4.27.v20200227 and jersey to version 2.31
However in the latest versions of jetty, the renaming of the method Response#closeOutput to Response#completeOutput has been reverted, with the latest version using again Response#closeOutput.
Jersey has not released a recent version in which Response#closeOutput is called directly. In its latest version 2.31 Response#closeOutput will be called if Response#completeOutput throws a NoSuchMethodError exception, which keeps things functional but inefficient.
Therefore we can choose to merge this PR early, while waiting for a new version of jersey, or we could wait and update both dependencies together again.
Committer Checklist (excluded from commit message)

[ ] Verify design and implementation
[ ] Verify test coverage and CI build status
[ ] Verify documentation (including upgrade notes)

cc @ijuma @rhauch @C0urante

The current use in jersey can be found here

retest this please

2/3 builds are green, while the other one failed with 3 flaky MM2 tests.
Thanks @ijuma


CB-14171: Retry joining IPA if the DNS record is missing

Fix the ipa registration for datalake and datahub nodes sot that
during the initial ipa client registration the operations are retried
if the DNS entry is not added. The existence of a DNS record (any
type of record) is validated. If there isn't a record then the salt
operation fails which will cause it to be retried. On the retry, the
ipa client is uninstalled then reinstalled and then the DNS record is
rechecked.
At a later point, the DNS record will be modified to ensure that the
A record exsits. However the later modification requires the a DNS
record (of any type) to already exist.
This was validated manually on a local deployment of cloudbreak using
a light duty datalake.
See detailed description in the commit message.

I added the DO_NOT_MERGE tag because I specifically want @cegganesh84 to review this before we commit it and it is related to https://github.com/hortonworks/cloudbreak/pull/11077.

I'm not sure this is necessary. The condition to run this state looks like:
    - unless: test -f /var/log/ipa-join-executed && test -f /var/log/dnsrecord-add-executed

So if the DNS add script fails, because it cannot modify the records, when the highstate retries it would be the same effect as now. Am I missing something?

We could remove     - unless: test -f /var/log/ipa-join-executed && test -f /var/log/dnsrecord-add-executed it was there for this reason.
30 seconds is definitely too small for the sandbox tenant which is the only place where it will fail. Instead of doing the whole retry with uninstalling and installing again, we could increase the retries or retry interval. I would suggest an effective wait interval of 3 minutes.

I didn't notice the test -f /var/log/dnsrecord-add-executed part of this check. I agree that this is not the fix we want, but let me think about what to do. I will probably pull down this PR.


Requeue security resource controllers

This fixes #518 #467
Changes:

Add re-queue logic to the controllers of security resource: users, roles, rolemappings, actionsgroups, tenants
Fixed a unit test which was intermittently failing

@swoehrl-mw Could you review this?


ui: icon/button on dashboard project selector not

ISSUE TYPE

Bug Report

COMPONENT NAME

UI

CLOUDSTACK VERSION

4.17.0

CONFIGURATION

N/A
OS / ENVIRONMENT

N/A
SUMMARY

Icon/button in dashboard project selector is not working
On 4.16.1
project-icon-working.webm
On 4.17.0
project-icon-fail.webm
STEPS TO REPRODUCE

Click on the icon/button on the left of the dashboard project selector

EXPECTED RESULTS

Animates, open project dropdown

ACTUAL RESULTS

Does nothing

I think there was some discussions somewhere to remove the project icon.

It seems the behaviour changed due to vue3 changes. Would make sense to remove the custom suffix icon for the select icon.

Fixed with #6671


features not working and config loading crashing game

theres alot of features not working, like no recoil, no spread, xray, instant charge
and when you try to load your saved config the game crashes

please add details and latest log
operating system, cpu model, what features are you using and tge config that crashes

no information provided


handbrakecli: Move handbrakecli to homebrew

related to https://github.com/Homebrew/homebrew-core/pull/8064
@ilovezfs
Please DON'T merge yet as the homebrew version isn't live yet!

:tada:

I'm confused: handbrakecli was removed from casks, but was not added to the Homebrew. (PR Homebrew/homebrew-core#8064 was closed). What is the plan here now?
Thanks.

8064 was merged.

Specifically,
https://github.com/Homebrew/homebrew-core/commit/b69e72e563c9f804474d1e6719918d81dd3d415b
https://github.com/Homebrew/homebrew-core/commit/ebf0526fd808266593f6704b95e7eccb2176d9e0

@ilovezfs thanks -- was still looking for the handbrakecli in homebrew, didn't notice it was named handbrake. :)


[Colors type] theme base's derived colors without type

path: src/theme/base/colors.tsx

const theme = useTheme(), normal colors with type, look this:

but derived colors without type notice, look thes:

and i  use derived colors with index will error:

In fact, it is have value,  because assign normal colors to derived colors:

so i resolved for this PR, only add type: https://github.com/GeekyAnts/NativeBase/pull/4493

@Youngtao1999 Thanks for reporting! We've tried merging your PR, but this caused some other type of issue with the build. We're looking into this.

This issue has been fixed in version 3.3.2 or later.


Add support for flash-attn 3

Description
This PR integrates flash-attn 3 into TE's FlashAttention module. This includes FP16/BF16 fwd+bwd, and FP8 fwd.
As of Aug 22, 2024, FA3 can be installed via the following commands:
1. pip install "git+https://github.com/Dao-AILab/flash-attention.git#egg=flashattn-hopper&subdirectory=hopper"
2. python_path=`python -c "import site; print(site.getsitepackages()[0])"`
3. mkdir -p $python_path/flashattn_hopper
4. wget -P $python_path/flashattn_hopper https://raw.githubusercontent.com/Dao-AILab/flash-attention/main/hopper/flash_attn_interface.py

Unit tests for FA3 can be found in tests/pytorch/fused_attn/test_fused_attn.py. For example, test_dot_product_attention for FP16/BF16, and test_dpa_fp8_vs_f16 and test_mha_fp8_vs_f16 for FP8.
When both FA3 (flashattn-hopper) and FA2 (flash-attn) are present in the environment, FA3 is prioritized - if it supports the specific user input. FA3 currently misses a few features such as ALiBi and sliding window, compared to FA2. To find out which FA version is being used, please run with NVTE_DEBUG=1 NVTE_DEBUG_LEVEL=1. For example,
# if FA3 is being used
[INFO     | DotProductAttention]: Running with FlashAttention backend (version 3.0.0b1)
# if FA2 is being used
[INFO     | DotProductAttention]: Running with FlashAttention backend (version 2.4.2)

Type of change

[ ] Documentation change (change only to the documentation, either a fix or a new content)
[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] Infra/Build change
[ ] Code refractor

Changes
Please list the changes introduced in this PR:

Add support for FA3

Checklist:

[x] I have read and followed the contributing guidelines
[x] The functionality is complete
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have made corresponding changes to the documentation
[x] My changes generate no new warnings
[x] I have added tests that prove my fix is effective or that my feature works
[x] New and existing unit tests pass locally with my changes

If FP8 is supported, does TE still need to be adapted separately?

If FP8 is supported, does TE still need to be adapted separately?

Yes, TE needs to update its FlashAttention module to use FA3's FP8 support.

Pipeline 17767404 with custom FA3 installation.

@cyanguwa Is this ready for merge?

@cyanguwa Is this ready for merge?

Not yet. I'm doing some CI.


Set position sometimes fails

Hello,
While testing a script to change periodically the position inside a region of interest, I have a strange behavior of the Happn API : it accepts the POST request the first time, then rejects the next request, and so on... whatever the delay between the requests (up to 15 minutes)...
The problem occurs with both the "rect bissect" and "rect spiral" algorithms. I could have suspected a fake position detection on the first, but not on the second that moves the position like a real user (no huge jump in a step).
Any idea ?

They're likely rate limiting that endpoint now. I would suggest determining the timeout and only trying to change the position after that timeout. I have a theory though that if you create a new device with the happn id you'll be able to POST a distance under that window. -untested, but it may help

OK, will try to increase again the time between two positions to see if it solves the issue.
What do you mean exactly by "create a new device with the happn id" ? Which "happn id" are you talking about ? User ID, device ID, other ?

Device ID. I think that if you create a new device every time (not implemented in API here) then you may be able to set that new device's location without having to wait for the timeout to complete. I haven't tested it, and I'm not exactly sure what the process for creating a new device is: i'd have to bust out burp suite again to check. Maybe this summer I'll do this.

I'm almost certain it's due to a limitation in the endpoint, most likely to decrease the chance of stalking someone in realtime. The question is if the limitation is bound to the device or the user. If the limitation is bound to the device, changing the device-id like suggested above might help - otherwise you could have several users harvesting data - depending on the setup and purpose of your app.

I ran the script "square-spiral" all the night long, this time with a 30 minutes delay (my previous test was with 15 mins, see above). All the position changes were accepted by Happn :smile: .
There was also the new header "X-Happn-DID" in this latest version of the script (from the php branch), to follow the above suggestions. I cannot say if it had an effect or not (should have decoupled the two changes...).
@springjools also reported a behaviour that could be linked with the real position (Happn could check with the data from GM ?!?). To be checked.

Before the api change at least, the timeout between position changes would only be as high as 10 or 20 minutes if you tried to flood those requests. It was possible to change position every minute or so, and the higher timeout was a penalty if you say so for not complying.

Looks like something changed again recently on server side, because set position fails again after working very well with the same & previous settings in PHP modules...
By the way, I noticed we had a visit from "redmine.happn.com"...

Hi,
Yes, that was the other reason I didn't want to put all code public to
github, but I guess I thought I was being paranoid.
/P
On 02/05/2016 10:21, MFLD wrote:

Looks like something changed again recently on server side, because set position fails again after working very well with the same & previous settings in PHP modules...
By the way, I noticed we had a visit from "redmine.happn.com"...

You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub:
https://github.com/rickhousley/happn/issues/9#issuecomment-216121950

Works mostly here, although I get frequently 504 error (gateway timed out).
To the question whether the position limitation is on device or user: to me it seems that the device is a property of the user object, and maybe you can create more devices to bypass the limit check, but I would like to point out that the position limit is on the server and not client. Meaning that the http query will give you a position and no errors, but sometimes this is an old position. I have noticed by following myself.
It also means that some matches (collisions) that you get are actually not because you were actually close to the other person in real life, but because the positions on the server were. So the whole premise of the app is to have real-time collisions but I don't think it really works that way. Sometimes if you drive a car, your position can be "stuck" under a bridge or something for like 20 hours,and you can query this position accurately from the server, but nonetheless it has little bearing in real life.
Unless there is some other error that I'm missing, like incompatible gps coordinates, geodetic datum or something like this. You know that there are diverging standards for these, not everyone uses WGS84 for example.

I think I understood what happn-ed :smiley:
Result of device list query: GET /api/users/XXXXX/devices/
array(5) { ["success"]=> bool(true) ["status"]=> int(200) ["error"]=> NULL ["data"]=> array(0) { } ["error_code"]=> int(0) }
Looks like Happn forgot my device, or the registered device is deleted after a given time.
As device creation process is not understood yet, solution is to run the official application again.


Logging to track down bad URL for editing user domain

Rationale
A production server is generating URLs for editing the user domain that point to the root container, when /Shared is the right path. I think we're likely resolving the wrong DomainKind but am not sure which one is winning over UsersDomainKind
Changes

Log the domain kind

@labkey-jeckels I don't know which server this is, but was this addressed by my 22.11 fix? https://www.labkey.org/home/Developer/issues/issues-details.view?issueId=46668

Already fixed in 22.11.


[cluster-agent] External metrics example (no metrics returned from external metrics API)

Describe what happened:
I followed the guide for setting up Cluster agent as an External Metrics Provider. However, the HPA isn't working as expected. I'm getting
no metrics returned from external metrics API and am a bit puzzled as to why.  It appears that the metric is present present when I fetch it from the api server via kubectl.  Any ideas or suggestions on debugging would be appreciated.
Additional environment details (Operating System, Cloud provider, etc):
# datadog-cluster-agent status
Getting the status from the agent.
==============================
Datadog Cluster Agent (v1.1.0)
==============================

  Status date: 2019-01-04 22:28:09.581476 UTC
  Pid: 1
  Check Runners: 4
  Log Level: info

  Paths
  =====
    Config File: /etc/datadog-agent/datadog-cluster.yaml
    conf.d: /etc/datadog-agent/conf.d

  Clocks
  ======
    System UTC time: 2019-01-04 22:28:09.581476 UTC

  Hostnames
  =========
    host_aliases: [gke-tierstaging-central-high-mem-2-2dbec7af-9265.shopify-tiers]
    hostname: gke-tierstaging-central-high-mem-2-2dbec7af-9265.c.shopify-tiers.internal
    socket-fqdn: datadog-cluster-agent-7c858cb54f-lpfk2
    socket-hostname: datadog-cluster-agent-7c858cb54f-lpfk2
    hostname provider: gce
    unused hostname providers:
      configuration/environment: hostname is empty

  Leader Election
  ===============
    Leader Election Status:  Running
    Leader Name is: datadog-cluster-agent-7c858cb54f-lpfk2
    Last Acquisition of the lease: Thu, 03 Jan 2019 21:53:34 UTC
    Renewed leadership: Fri, 04 Jan 2019 22:28:05 UTC
    Number of leader transitions: 28 transitions

  Custom Metrics Server
  =====================
    ConfigMap name: cluster-services/datadog-custom-metrics

    External Metrics
    ----------------
      Total: 1
      Valid: 1

      hpa:
      - name: web-hpa
      - namespace: hpa-staging
      - uid: e8b6b960-fa63-11e8-af04-42010a800041
      labels:
      - cluster-name: tierstaging-central
      metricName: Hpa.staging.request_time.median
      ts: 1.54664079e+09
      valid: true
      value: 12

=========
Collector
=========

  Running Checks
  ==============

    kubernetes_apiserver
    --------------------
      Instance ID: kubernetes_apiserver [OK]
      Total Runs: 5,904
      Metric Samples: Last Run: 0, Total: 0
      Events: Last Run: 0, Total: 0
      Service Checks: Last Run: 4, Total: 23,592
      Average Execution Time : 5ms

=========
Forwarder
=========

  Transactions
  ============
    CheckRunsV1: 5,903
    Dropped: 0
    DroppedOnInput: 0
    Events: 0
    HostMetadata: 0
    IntakeV1: 1
    Metadata: 0
    Requeued: 0
    Retried: 0
    RetryQueueSize: 0
    Series: 0
    ServiceChecks: 0
    SketchSeries: 0
    Success: 11,807
    TimeseriesV1: 5,903

  API Keys status
  ===============
    API key ending with xxxxx on endpoint https://app.datadoghq.com: API Key valid

kubectl --context tierstaging-central get --raw  "/apis/external.metrics.k8s.io/v1beta1/namespaces/hpa-staging/Hpa.staging.request_time.median" | jq .

{
  "kind": "ExternalMetricValueList",
  "apiVersion": "external.metrics.k8s.io/v1beta1",
  "metadata": {
    "selfLink": "/apis/external.metrics.k8s.io/v1beta1/namespaces/hpa-staging/Hpa.staging.request_time.median"
  },
  "items": [
    {
      "metricName": "Hpa.staging.request_time.median",
      "metricLabels": {
        "cluster-name": "tierstaging-central"
      },
      "timestamp": "2019-01-04T22:30:01Z",
      "value": "11"
    }
  ]
}

cat hpa.yml.erb
---
apiVersion: autoscaling/v2beta1
kind: HorizontalPodAutoscaler
metadata:
  name: web-hpa
spec:
  minReplicas: 2
  maxReplicas: 4
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: web
  metrics:
  - type: External
    external:
      metricName: Hpa.staging.request_time.median
      metricSelector:
        matchLabels:
          cluster-name: tierstaging-central
      targetAverageValue: 13

kubectl --context tierstaging-central -n hpa-staging get hpa web-hpa -o yaml
apiVersion: autoscaling/v1
kind: HorizontalPodAutoscaler
metadata:
  annotations:
    autoscaling.alpha.kubernetes.io/conditions: '[{"type":"AbleToScale","status":"True","lastTransitionTime":"2018-12-07T21:06:19Z","reason":"SucceededGetScale","message":"the
      HPA controller was able to get the target''s current scale"},{"type":"ScalingActive","status":"False","lastTransitionTime":"2018-12-07T21:06:19Z","reason":"FailedGetExternalMetric","message":"the
      HPA was unable to compute the replica count: unable to get external metric hpa-staging/Hpa.staging.request_time.median/\u0026LabelSelector{MatchLabels:map[string]string{cluster-name:
      tierstaging-central,},MatchExpressions:[],}: no metrics returned from external
      metrics API"}]'
    autoscaling.alpha.kubernetes.io/metrics: '[{"type":"External","external":{"metricName":"Hpa.staging.request_time.median","metricSelector":{"matchLabels":{"cluster-name":"tierstaging-central"}},"targetAverageValue":"13"}}]'
    kubectl.kubernetes.io/last-applied-configuration: |
      {"apiVersion":"autoscaling/v2beta1","kind":"HorizontalPodAutoscaler","metadata":{"annotations":{},"name":"web-hpa","namespace":"hpa-staging"},"spec":{"maxReplicas":4,"metrics":[{"external":{"metricName":"Hpa.staging.request_time.median","metricSelector":{"matchLabels":{"cluster-name":"tierstaging-central"}},"targetAverageValue":13},"type":"External"}],"minReplicas":2,"scaleTargetRef":{"apiVersion":"apps/v1","kind":"Deployment","name":"web"}}}
  creationTimestamp: "2018-12-07T21:06:04Z"
  name: web-hpa
  namespace: hpa-staging
  resourceVersion: "244467318"
  selfLink: /apis/autoscaling/v1/namespaces/hpa-staging/horizontalpodautoscalers/web-hpa
  uid: e8b6b960-fa63-11e8-af04-42010a800041
spec:
  maxReplicas: 4
  minReplicas: 2
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: web
status:
  currentReplicas: 2
  desiredReplicas: 0

k version --context tierstaging-central
Client Version: version.Info{Major:"1", Minor:"13", GitVersion:"v1.13.0", GitCommit:"ddf47ac13c1a9483ea035a79cd7c10005ff21a6d", GitTreeState:"clean", BuildDate:"2018-12-04T07:51:55Z", GoVersion:"go1.11.2", Compiler:"gc", Platform:"darwin/amd64"}
Server Version: version.Info{Major:"1", Minor:"11+", GitVersion:"v1.11.5-gke.4", GitCommit:"0c81dc1e8c26fa2c47e50072dc7f98923cb2109c", GitTreeState:"clean", BuildDate:"2018-12-07T00:22:06Z", GoVersion:"go1.10.3b4", Compiler:"gc", Platform:"linux/amd64"}

Hey @dturn, thanks for opening this - This is strange indeed.
If you can get the value with kubectl get --raw it means that the cluster agent has correctly registered as an APIService/External Metrics Provider.
It also means that the cluster agent has been properly configured to get values from Datadog.

Do you only have one HPA running ?
What is the output of kubectl describe cm datadog-custom-metrics  (in the ns of the cluster agent)?

Would you mind moving to a ticket<EMAIL_ADDRESS>so we can do more back and forth ? We can then post the solution here.
Best,
.C


The code does not show anything

@rangsimanketkaew  it seems that your code has a bug, the example .xyz file shows nothing on the pop-up xterm.

We could not help without providing us with more information. So far the package works perfectly at least for me and everyone else.

Close this issue as there is no response from the issue reporter.


[add] support for relative host directories when using bind mounts

We should get travis set up for this

what do you mean? travis is already set up and passing

Sorry - page hadn't rendered properly

Actually I'm seeing some different behavior locally (OSX and on Centos 7) - mix test fails with the following :
HEAD is now at 70656b5 [add] support for relative host directories when using bind mounts                                    [10/4757]
[vagrant@localhost ex_docker_build]$ mix test
........

  1) test tar archives tar a directory (ExDockerBuild.TarTest)
     test/tar_test.exs:18
     Assertion with == failed
     code:  assert :erl_tar.table(path) == {:ok, ['Dockerfile_bind.dockerfile', 'Dockerfile_erlang.dockerfile', 'Dockerfile_simple.doc
kerfile']}
     left:  {:ok, ['Dockerfile_bind.dockerfile', 'Dockerfile_simple.dockerfile', 'Dockerfile_erlang.dockerfile']}
     right: {:ok, ['Dockerfile_bind.dockerfile', 'Dockerfile_erlang.dockerfile', 'Dockerfile_simple.dockerfile']}
     stacktrace:

If I configure so remove is not executed - like so :
defmodule ExDockerBuild.TarTest do
  use ExUnit.Case, async: true

  alias ExDockerBuild.Tar

  @cwd System.cwd!()
  @fixtures_path Path.join([@cwd, "test", "fixtures"])

  setup do
    on_exit(fn ->
 #     Path.wildcard("*.tar") |> Enum.map(&File.rm!/1)
    end)

This is what's in the tar - perhaps there's a different, or occasionally random sorting applied
[vagrant@localhost ex_docker_build]$ tar tvfp ./fixtures.tar
-rw-rw-r-- 1000/1000       127 2018-10-04 17:49 Dockerfile_bind.dockerfile
-rw-rw-r-- 1000/1000       530 2018-10-04 17:49 Dockerfile_simple.dockerfile
-rw-rw-r-- 1000/1000      2548 2018-10-04 17:49 Dockerfile_erlang.dockerfile

Maybe apply a sort to list on both side of comparison before comparing?

I just push the fix for it, can you try it out?

Works for me . Merging .


dpl: avoid moving legal cell

@luis201420 I thing you're using this function for incremental groute. Does this change make sense with your use case?

My recollection was there was a case where we upsized a cell on the edge of the core area and then the cell then extended outside the core area.  grt couldn't route to those pins and we had an error.  We legalized the cell to avoid such.


[tizen] blank screen on app (certain devices only)

Describe the bug
App is installed on device but blank screen is displayed on device
To Reproduce

Go to template-starter
Do npx rnv run -p tizen -t <ip> on device

NOTE:
Device specs: os version 525 (TV7 label in office)
Expected behavior
App runs and ui is displayed
Screenshots or copy&paste
pauliusguzas@MBP-de-Flexn app-harness % npx rnv run -p tizen -t <IP_ADDRESS>

┌─────────────────────────────────────────────────────────────────┐
│ ██████╗ ███████╗███╗   ██╗ █████╗ ████████╗██╗██╗   ██╗███████╗ │
│ ██╔══██╗██╔════╝████╗  ██║██╔══██╗╚══██╔══╝██║██║   ██║██╔════╝ │
│ ██████╔╝█████╗  ██╔██╗ ██║███████║   ██║   ██║██║   ██║█████╗   │
│ ██╔══██╗██╔══╝  ██║╚██╗██║██╔══██║   ██║   ██║╚██╗ ██╔╝██╔══╝   │
│ ██║  ██║███████╗██║ ╚████║██║  ██║   ██║   ██║ ╚████╔╝ ███████╗ │
│ ╚═╝  ╚═╝╚══════╝╚═╝  ╚═══╝╚═╝  ╚═╝   ╚═╝   ╚═╝  ╚═══╝  ╚══════╝ │
│ 🚀 v:1.0.0 | renative.org | 8/12/2024, 5:40:17 PM               │
│ $ rnv run -p tizen -t <IP_ADDRESS>                              │
└─────────────────────────────────────────────────────────────────┘
info: Current platform: tizen
info: Current engine: @rnv/engine-rn-web (../engine-rn-web)
task: ○ run ↺1
info: Current platform: tizen
task: ○ configure ↺1
task: ○ platform configure ↺1
task: ○ project configure ↺1
task: ○ workspace configure ↺1
task: ✔ workspace configure
task: ○ app configure ↺1
info: Current app config: harness
task: ✔ app configure
info<EMAIL_ADDRESS>overriden by: /@rnv/config-templates/pluginTemplates/<EMAIL_ADDRESS>info<EMAIL_ADDRESS>overriden by: /<EMAIL_ADDRESS>info: ../../node_modules/react-native-tvos/Libraries/Components/ScrollView/ScrollViewNativeComponent.js overriden by<EMAIL_ADDRESS>info: ../../node_modules/react-native-tvos/Libraries/Components/ScrollView/ScrollViewNativeComponent.js overriden by<EMAIL_ADDRESS>info: ../../node_modules/react-native-tvos/Libraries/Components/ScrollView/ScrollViewNativeComponent.js overriden by<EMAIL_ADDRESS>info: ../../node_modules/react-native-photo-editor overriden by: /@rnv/config-templates/pluginTemplates/react-native-photo-editor/overrides
task: ✔ project configure
info: Current Build Scheme: debug
info: Current platform: tizen
task: ○ sdk configure ↺1
task: ✔ sdk configure
task: ✔ platform configure
✔ Executing: "/Users/pauliusguzas/tizen-studio/tools/ide/bin/tizen" security-profiles list -n RNVanillaCert
info: Found custom assetSources at ../../node_modules/@flexn/assets-renative-outline/assets/tizen. Will be used to generate assets.
task: ✔ configure
info: Your tizen devServer at port 8097 is not running. Starting it up for you...
info: Your tizen devServerHost <IP_ADDRESS> at port 8097 is not running. Starting it up for you...
┌─────────────────────────────────────────────────────────────────┐
│ ✔ BUNDLER STARTED | 8/12/2024, 5:40:20 PM |<EMAIL_ADDRESS>         │
│ $ rnv run -p tizen -t <IP_ADDRESS>                              │
├─────────────────────────────────────────────────────────────────┤
│ Project<EMAIL_ADDRESS>                               │
│ Workspace: rnv                                                  │
│ Platform (-p): tizen                                            │
│ Engine: @rnv/engine-rn-web                                      │
│ Template: @rnv/template-starter                                 │
│ App Config (-c): harness                                        │
│ Build Scheme (-s): debug                                        │
│ Target (-t): <IP_ADDRESS>                                       │
│ Supported Platforms: ios, android, androidtv, firetv, androidwear, web, tizen, tvos, webos, macos, tizenwatch, kaios, chromecast, linux, windows
│ Env Info: darwin | x64 | node v18.18.0                          │
│ Executed Time: 0h:0m:3s:331ms                                   │
│ Project location: ./platformBuilds/harness_tizen                │
└─────────────────────────────────────────────────────────────────┘
warn: ○ run: You are missing chii. You can install via npm i -g chii) Trying to use weinre next
warn: ○ run: You are missing weinre. Skipping debug. install via npm i -g weinre
(node:52002) [DEP_WEBPACK_DEV_SERVER_ON_AFTER_SETUP_MIDDLEWARE] DeprecationWarning: 'onAfterSetupMiddleware' option is deprecated. Please use the 'setupMiddlewares' option.
(Use `node --trace-deprecation ...` to show where the warning was created)
(node:52002) [DEP_WEBPACK_DEV_SERVER_ON_BEFORE_SETUP_MIDDLEWARE] DeprecationWarning: 'onBeforeSetupMiddleware' option is deprecated. Please use the 'setupMiddlewares' option.
Starting the development server...

Compiled successfully!

You can now view @rnv/app-harness in the browser.

  Local:            http://localhost:8097
  On Your Network:  http://<IP_ADDRESS>:8097

Note that the development build is not optimized.
To create a production build, use npm run build.

assets by path static/ 3.55 MiB
  asset static/js/bundle.js 3.24 MiB [emitted] (name: main) 1 related asset
  asset static/media/Inter-Light.58a136ec3193fa8a63e5.ttf 303 KiB [emitted] [immutable] [from: appConfigs/base/fonts/Inter-Light.ttf] (auxiliary name: main)
  asset static/media/logo.63d54a55b067ffc3e842.png 12.1 KiB [emitted] [immutable] [from: platformAssets/runtime/logo.png] (auxiliary name: main)
asset index.html 1.77 KiB [emitted]
asset asset-manifest.json 356 bytes [emitted]
runtime modules 28.8 KiB 14 modules
modules by path ../ 882 KiB 451 modules
modules by path ./ 1.85 MiB (javascript) 315 KiB (asset)
  modules by path ./node_modules/react-native-web/dist/ 711 KiB 196 modules
  modules by path ./src/ 45.1 KiB 14 modules
  modules by path ./platformAssets/ 3.31 KiB (javascript) 12.1 KiB (asset)
    javascript modules 3.22 KiB 2 modules
    + 2 modules
  modules by path ./node_modules/react-dom/ 1.07 MiB
    ./node_modules/react-dom/client.js 620 bytes [built] [code generated]
    + 2 modules
  modules by path ./node_modules/scheduler/ 19 KiB
    ./node_modules/scheduler/index.js 197 bytes [built] [code generated]
    ./node_modules/scheduler/cjs/scheduler.development.js 18.8 KiB [built] [code generated]
  + 5 modules
webpack 5.91.0 compiled successfully in 4186 ms
No issues found.
✔ Executing: "/Users/pauliusguzas/tizen-studio/tools/sdb" devices
✔ Executing: "/Users/pauliusguzas/tizen-studio/tools/sdb" -s emulator-26101 shell cat /etc/config/model-config.xml
✔ Executing: "/Users/pauliusguzas/tizen-studio/tools/sdb" -s emulator-26111 shell cat /etc/config/model-config.xml
✔ Executing: "/Users/pauliusguzas/tizen-studio/tools/sdb" devices
✔ Executing: "/Users/pauliusguzas/tizen-studio/tools/ide/bin/tizen" build-web -- "/Users/pauliusguzas/Desktop/renative/renative/packages/app-harness/platformBuilds/harness_tizen" -out "/Users/pauliusguzas/Desktop/renative/renative/packages/app-harness/platformBuilds/harness_tizen/intermediate"
✔ Executing: "/Users/pauliusguzas/tizen-studio/tools/ide/bin/tizen" package -- "/Users/pauliusguzas/Desktop/renative/renative/packages/app-harness/platformBuilds/harness_tizen/intermediate" -s RNVanillaCert -t wgt -o "/Users/pauliusguzas/Desktop/renative/renative/packages/app-harness/platformBuilds/harness_tizen/output"
✔ Executing: "/Users/pauliusguzas/tizen-studio/tools/ide/bin/tizen" uninstall -p NkVRhWHJST.RNVanillaTV -t UE48K5500
✔ Executing: "/Users/pauliusguzas/tizen-studio/tools/ide/bin/tizen" install -- "/Users/pauliusguzas/Desktop/renative/renative/packages/app-harness/platformBuilds/harness_tizen/output" -n RNVanillaTV.wgt -t UE48K5500
✔ Executing: "/Users/pauliusguzas/tizen-studio/tools/ide/bin/tizen" run -p NkVRhWHJST.RNVanillaTV -t UE48K5500

Desktop (please complete the following information):

OS: macOS Ventura
Node Version 18.19.0
RNV Version 1.0.0
template-starter Version 1.0.0

Couldn't connect to tv with tizen studio.
Tried to open dev mode in tv, but app window didn't react to open dev mode command (pressing "12345" on the remote control).
Strangely apps window don't show any app.

Tried to factory reset tv, but it didn't fix this issue.
Internet is connected (Tested by running YouTube).
This TV from 2017 and has tizen tv-3.0 OS.


fix(zod): array min max issues

Status

READY/WIP/HOLD
Description
Fix #933
This YAML
  /list:
    post:
      summary: Add list
      operationId: add-list
      responses:
        '200':
          description: OK
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                list:
                  type: array
                  minItems: 1
                  maxItems: 10
                  items:
                    type: number
                    minimum: 1
                    maximum: 10
              required:
                - list

gets generated properly as this
export const addListBodyListMax2 = 10;
export const addListBodyListMax1 = 10;

export const addListBody = zod.object({
  "list": zod.array(zod.number().min(1).max(addListBodyListMax1)).min(1).max(addListBodyListMax2)
})

Looks like I have a merge conflict to resolve.


Comments in JSON aren't allowed; GitHub Action fails in section 6

In step 6, when setting up the AZURE_CREDENTIALS github secret, a template is given and the user is asked to update the values for subscriptionId, etc:
{
   // replace the cliend id, client secret, subscription id, tenant id
  "clientId": "67b6cf14-0050-419b-a78e-d061e3a1394e",
  "clientSecret": "DTu._pEGE7LeU3ousQTGasSxwdBcxHP0U2-",
  "subscriptionId": "693eabcf-7fb7-4144-8da4-9ef27487ec90",
  "tenantId": "b84b647a-5f02-4f6e-8603-7059fa761d2f",

  "activeDirectoryEndpointUrl": "https://login.microsoftonline.com",
  "resourceManagerEndpointUrl": "https://management.azure.com/",
  "activeDirectoryGraphResourceId": "https://graph.windows.net/",
  "sqlManagementEndpointUrl": "https://management.core.windows.net:8443/",
  "galleryEndpointUrl": "https://gallery.azure.com/",
  "managementEndpointUrl": "https://management.core.windows.net/"
}

Unfortunately the commented-out line starting with // cause the github action to fail as it is not a valid JSON file.
Please remove this comment and put it above the template, so that the user doesn't copy/paste the comment along with the valid JSON.

Updated the lab guide and removed the comment. Added the comment as a Note in the lab guide.


[beginner] Assertion Failed: calling set on destroyed object

Hello,
I have the following error in my acceptance tests : "Assertion Failed: calling set on destroyed object". It doesn't occure everytime, and I don't have any idea about why it happens.
This one occures after a reject callback I call to test an authentication fail in my acceptance test.
Any idea ?

import Ember from 'ember';
import { module, test } from 'qunit';
import startApp from 'xxx/tests/helpers/start-app';

module('Acceptance | login', {
  beforeEach: function() {
    this.application = startApp();
  },

  afterEach: function() {
    Ember.run(this.application, 'destroy');
  }
});

test('trying to connect with wrong ID / Password and fail', function(assert) {
  assert.expect(2);
  visit('/login');
  fillIn("input#input-email", "xxx@xxx.xxx");
  fillIn("input#input-password", "xxx");
  click("button#connect");
  andThen(function() {
    assert.equal(
      find("#error-input-email", ".popin-body").text().trim(), "Identifiants email et/ou mot de passe invalides"  // Mot de passe incorrect
    );
    assert.equal(
      find("#error-input-password", ".popin-body").text().trim(), "Identifiants email et/ou mot de passe invalides"  // Mot de passe incorrect
    );
  });
});

Is this still valid? Can you provide a stack trace if so? Otherwise close this please.

Closing this due to lack of feedback. Please reopen with more feedback if the problem persists.

@marcoow, @pierred69  I have the same problem occurring intermittently. It looks like it's because the sessionDataInvalidated event is getting fired on the Authenticator, after the InternalSession is destroyed. The InternalSession which observes this event then calls this._clear which leads to
    this.setProperties({
      isAuthenticated: false,
      authenticator:   null
    });

which leads to the above error.
I wasn't able to track down the exact sequence of events leading to this, as it happens only occasionally, and I suspect that the sequence of events may be different for me than it is for @pierred69
However, a solution could be to add a willDestroy hook to InternalSession which removes all listeners from the authenticator.

Actually, it may be better to remove the listeners on the destruction of the Authenticator object itself, so we could add a willDestroy hook to the BaseAuthenticator...

However, a solution could be to add a willDestroy hook to InternalSession which removes all listeners from the authenticator.

This seems like a good addition. If you'd like to create a PR that would be awesome.

Actually, it may be better to remove the listeners on the destruction of the Authenticator object itself, so we could add a willDestroy hook to the BaseAuthenticator...

The problem is that the InternalSession is destroyed when the authenticator's event is triggered so the initial suggestion was actually correct.

I'm still bumping into this problem on my login test.
Versions:
Ember: 3.24.0
Ember Data: 3.24.0
jQuery: 3.5.1
Ember Simple Auth: 3.0.1
ember-qunit: 5.1.1
qunit: 2.13.0
qunit-dom: 1.6.0
Here's my authenticate action:
authenticate: async function () {
  let { identification, password } = this;

  try {
    await this.session.authenticate('authenticator:devise', identification, password);
  } catch (error) {
    console.error(error);
  }

  if (this.session.isAuthenticated) {
    console.log('Authenticated!');
  }
}

And my test:
import { module, test } from 'qunit';
import { visit, fillIn, click, currentRouteName } from '@ember/test-helpers';
import { setupApplicationTest } from 'ember-qunit';

module('Acceptance | login', function(hooks) {
  setupApplicationTest(hooks);

  test('Super User login', async function(assert) {
    await visit('/login');

    assert.equal(currentRouteName(), 'login');

    await fillIn('input[type="email"]', 'xxx@xxx.com');
    await fillIn('input[type="password"]', 'password');
    await click('button[type="submit"]');

    assert.equal(currentRouteName(), 'dashboard');
  });
});

Stack trace:
Error: Assertion Failed: calling set on destroyed object: <front-end@session:main::ember238>.isAuthenticated = true
    at assert (index.js:172)
    at set (index.js:1524)
    at index.js:2876
    at changeProperties (index.js:647)
    at setProperties (index.js:2870)
    at Proxy.setProperties (observable.js:192)
    at Proxy._setup (internal-session.js:109)
    at internal-session.js:36
    at invokeCallback (rsvp.js:493)
    at publish (rsvp.js:476)

I'm still bumping into this problem on my login test.
Versions:
Ember: 3.24.0
Ember Data: 3.24.0
jQuery: 3.5.1
Ember Simple Auth: 3.0.1
ember-qunit: 5.1.1
qunit: 2.13.0
qunit-dom: 1.6.0
Here's my authenticate action:
authenticate: async function () {
  let { identification, password } = this;

  try {
    await this.session.authenticate('authenticator:devise', identification, password);
  } catch (error) {
    console.error(error);
  }

  if (this.session.isAuthenticated) {
    console.log('Authenticated!');
  }
}

And my test:
import { module, test } from 'qunit';
import { visit, fillIn, click, currentRouteName } from '@ember/test-helpers';
import { setupApplicationTest } from 'ember-qunit';

module('Acceptance | login', function(hooks) {
  setupApplicationTest(hooks);

  test('Super User login', async function(assert) {
    await visit('/login');

    assert.equal(currentRouteName(), 'login');

    await fillIn('input[type="email"]', 'xxx@xxx.com');
    await fillIn('input[type="password"]', 'password');
    await click('button[type="submit"]');

    assert.equal(currentRouteName(), 'dashboard');
  });
});

Stack trace:
Error: Assertion Failed: calling set on destroyed object: <front-end@session:main::ember238>.isAuthenticated = true
    at assert (index.js:172)
    at set (index.js:1524)
    at index.js:2876
    at changeProperties (index.js:647)
    at setProperties (index.js:2870)
    at Proxy.setProperties (observable.js:192)
    at Proxy._setup (internal-session.js:109)
    at internal-session.js:36
    at invokeCallback (rsvp.js:493)
    at publish (rsvp.js:476)

hello, I've begun to see the above error on a consistent basis and while working locally with ember serve, my app shuts down unexpectedly and I see the error. I'm using fastboot in addition to ember-simple-auth-token.
[UnhandledPromiseRejection: This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). The promise rejected with the reason "Error: Assertion Failed: calling set on destroyed object: <ember-foo@session:main::ember402>.isAuthenticated = true".] {
  code: 'ERR_UNHANDLED_REJECTION'

update: I think I've got past it by updating a few items in simple auth/simple auth token including getting rid of mixins


[TASK] Add security advisories for TYPO3's November 2020 releases

I'm going to merge this one as is. If there is anything to change or tweak, another PR could be submitted.


addressbook: create/delete addresses, logoURI issue, addressbookStyling

Allows creating new active addresses and removing them in address book. Also styles address book elements and fixes logoUri issue that was caused by update to the ne addressmetadata version.

I just glanced over it to make sure that there were no backdoors added. I wonder if we should start getting @0xjimmy and @jubalm to review your PRs as well? I think there is value in everyone looking at everyone else's work, it helps keep people synchronized.

yeah, we could start doing that


Systemd - Add wait for network

Hello,
Would it be possible to add the following to the systemd template?
[Unit]
Description=kafka daemon
Wants=network-online.target
After=network-online.target

To ensure that the network is up and running before kafka attempts to start?
Without this, in the event of a server restart, it's possible that kafka is started before the network is ready (waiting for dhcp address for example). Kafka doesn't seem to handle this very well and crashes with an unable to resolve error (as it tries to connect to the zookeeper cluster).
Thanks!

Yep, seems completely reasonable.

Great, thanks again!

Thanks for reporting it. I'll get it merged later today and cut a new release.


fix: setting default node port to 30373, a valid port number

This fixes issue #46

Great thx Chris. A little late pushing this through but better late than never...


Add {% fullpageurl %} for resolving absolute URLs to pages

Please check the following:

[x] Do the tests still pass?[^1]
[x] Does the code comply with the style guide?

[x] Run make lint from the Wagtail root.

[x] For Python changes: Have you added tests to cover the new/fixed behaviour?
[ ] For front-end changes: Did you test on all of Wagtail’s supported environments?[^2]

[ ] Please list the exact browser and operating system versions you tested:
[ ] Please list which assistive technologies [^3] you tested:

[x] For new features: Has the documentation been updated accordingly?

A pattern I've seen quite a lot is concatenating a site's URL onto {% pageurl page %} - there should be a better way of doing that. This could be even more useful in multi-site environments where the current site may not be the page's site.
As shown in the example, this is mostly useful when interacting with external services where the absolute URL is needed, rather than just the most efficient way to get to a page as {% pageurl %} returns.
I also took the chance to reduce the boilerplate in {% pageurl %}, as much of its functionality was already being handled by get_url, so I just called that directly instead. It doesn't appear to notably improve performance or reduce queries, but less code is more better.
[^1]: Development Testing
[^2]: Browser and device support
[^3]: Accessibility Target

@RealOrangeOne Tests are still failing on CI - please can you investigate? Looks like the offending tests are faking an HttpRequest in a not-very-robust way and could probably be fixed with a RequestFactory - but the fact that it's failing now might be a cause for concern as it implies that the simplified pageurl logic is relying on the request object in ways that the old code didn't.

the simplified pageurl logic is relying on the request object in ways that the old code didn't

Not quite. In the previous code, a vague KeyError was being caught to check if the context had a request. This exception was also masking where SERVER_PORT didn't exist in the meta. As we've removed the exception handling, those errors are coming through to the surface. Whilst previously the result may have been correct, it was being achieved incorrectly.
I'll follow up shortly with a PR to remove all the manual constructions of HttpRequest to something less brittle.

Merged in 6e4c449fdadd05cd3b96d7f95c2bd738a72ad30f


Small GUI fixes

Camera timeline names now displayed properly in CreateDirectorShotModalView
Creating a new project now no longer shows "Edit project..." as title. Awkward class merge?
Starting application when file is missing shows error message only once, now, as the config file is emptied.

Looks good to me

Looks good!


problem installing dependencies and MNE

i am attempting to install dependencies and MNE, but when i type pip install mayavi i get the following error message (see attached).
any help is welcome,
thanks
Yoni

FWIW, I just tried to install according to the docs (Python 2.7, conda 4.4.10), resulting in:
root@jupiter:/home/jussi# /opt/anaconda2/bin/conda install scipy matplotlib scikit-learn mayavi jupyter spyder
Solving environment: failed

UnsatisfiableError: The following specifications were found to be in conflict:
  - anaconda-navigator
  - astropy
  - mayavi

Can you try environment.yml from #5012?

Check this out
http://martinos.org/mne/stable/install_mne_python.html
it is very efficient


Cannot download integration in HACS

HA core version
2024.3.1
Intergration version
0.3.22
Device type and model
Cannot provide
Used App
MSmartHome
The description of problem
HACS cannot download the release. It seems that the url is not correct.
I cannot install the custom integration at all.
The logs
Logger: custom_components.hacs
Source: custom_components/hacs/repositories/base.py:986
integration: HACS (documentation, issues)
First occurred: March 15, 2024 at 8:54:24 AM (9 occurrences)
Last logged: 8:26:10 AM
<Integration georgezhao2010/midea_ac_lan> Failed to download https://github.com/georgezhao2010/midea_ac_lan/releases/download/tags/v0.3.22/mieda_ac_lan.zip

same here

Guessing there's a little typo in hacs.json: _mieda__ac_lan.zip? Going to make a pull request.

I have the same problem

Same problem here

same issue here

Same issue for me

Same problem here

Same issue for me

Same issue here !

same

So, since there's 6 duplicate PRs that, if merged, would fix the issue LOL, here's what I did to get it working (note: I am running Home Assistant OS and executed these commands using the Advanced SSH & Web Terminal add-on):

Navigate to the /homeassistant/custom_components directory
cd /homeassistant/custom_components
Download the midea_ac_lan.zip from the Releases page.
wget https://github.com/georgezhao2010/midea_ac_lan/releases/download/v0.3.22/midea_ac_lan.zip -O midea_ac_lan.zip
Extract the zip folder
unzip -d ./midea_ac_lan/ midea_ac_lan.zip
Clean up the downloaded .zip file
rm midea_ac_lan.zip
Restart Home Assistant!

So, since there's 6 duplicate PRs that, if merged, would fix the issue LOL, here's what I did to get it working (note: I am running Home Assistant OS and executed these commands using the Advanced SSH & Web Terminal add-on):

Navigate to the /homeassistant/custom_components directory
cd /homeassistant/custom_components
Download the midea_ac_lan.zip from the Releases page.
wget https://github.com/georgezhao2010/midea_ac_lan/releases/download/v0.3.22/midea_ac_lan.zip -O midea_ac_lan.zip
Extract the zip folder
unzip -d ./midea_ac_lan/ midea_ac_lan.zip
Clean up the downloaded .zip file
rm midea_ac_lan.zip
Restart Home Assistant!

I did almost the same with the "Advanced SSH & Web Terminal" add-on, with SFTP enabled, you can manually upload the package in "/homeassistant/custom_components/midea_ac_lan", using WinSCP.
Then reboot HA and it'll work fine.
I don't know if auto-updates could work with this kind of installation.

I did almost the same with the "Advanced SSH & Web Terminal" add-on, with SFTP enabled

That's probably way easier lol, good idea!

I don't know if auto-updates could work with this kind of installation.

It might if what HACS does for auto-updates is pull the latest version of the repo upon release. To be safe though, I'd assume it doesn't and be prepared to update it manually.

So, since there's 6 duplicate PRs that, if merged, would fix the issue LOL, here's what I did to get it working (note: I am running Home Assistant OS and executed these commands using the Advanced SSH & Web Terminal add-on):

Navigate to the /homeassistant/custom_components directory
cd /homeassistant/custom_components
Download the midea_ac_lan.zip from the Releases page.
wget https://github.com/georgezhao2010/midea_ac_lan/releases/download/v0.3.22/midea_ac_lan.zip -O midea_ac_lan.zip
Extract the zip folder
unzip -d ./midea_ac_lan/ midea_ac_lan.zip
Clean up the downloaded .zip file
rm midea_ac_lan.zip
Restart Home Assistant!

I also did the same thing. however the problem persists: it is not possible to install it via the HACS interface which is problematic.

@melvinrt when you did download manually and unzip the midea component in the homeassistant/custom_components folder you can now go in integrations configs in home assistant and look for the midea integration to configure it

@melvinrt when you did download manually and unzip the midea component in the homeassistant/custom_components folder you can now go in integrations configs in home assistant and look for the midea integration to configure it

Yes

This could also be fixed by adding a file named mieda_ac_lan.zip to the current release that is a copy of midea_ac_lan.zip
If someone has permissions to do that but not accept the merge request, that could be a potential short term fix.

If it help I just clone this repo and merge all pending PR fixing issues. This is only during the time the maintainer will merge following PR in this repository :

Fixed incorrect filename in config https://github.com/georgezhao2010/midea_ac_lan/pull/465
fix(climate): deprecate aux_heating feature https://github.com/georgezhao2010/midea_ac_lan/pull/486
Replaced deprecated constants and wildcard imports (HA >= 2023.1) https://github.com/georgezhao2010/midea_ac_lan/pull/420

Waiting this time you can re-install the integration using this repository : https://github.com/CyrielRct/midea_ac_lan
To do that go to HACS - Integration - and add the repository.  It will show you version 0.3.24

@CyrielRct Thanks! In case @georgezhao2010 doesn't return in the near future, would you want to take over maintenance of this integration?

I can't sorry I'm not really a developer.
Le sam. 13 avr. 2024, 4 h 32 p.m., skysyk @.***> a
écrit :

@CyrielRct https://github.com/CyrielRct Thanks! In case @georgezhao2010
https://github.com/georgezhao2010 doesn't return in the near future,
would you want to take over maintenance of this integration?
—
Reply to this email directly, view it on GitHub
https://github.com/georgezhao2010/midea_ac_lan/issues/471#issuecomment-2053754866,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AA6Z5DM4X54VOW7KEFXCKGDY5GI4ZAVCNFSM6AAAAABEZDMMISVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDANJTG42TIOBWGY
.
You are receiving this because you were mentioned.Message ID:
@.***>


Fix NPE while unparsing single key DSL output

Fix NPE that can happen if unparsing of a single key DSL fails.

This has been tested using 4,310 table config files used in production at Linkedin, which have been tested for equality between the old and new configuration formats (both before and after merging) to ensure that the code behaves correctly across a large number of varied use cases. For obvious reasons, I'm not checking those in.
The overall code is also exercised as part of #2937.

This will get done once the config format is fully stable.


Is there a playground for websocket routes?

Hi There,
I'm using the following code to run a websocket GraphQL endpoint:
"""Main server application."""

import asyncio

import graphene

from starlette.applications import Starlette
from starlette_graphene3 import GraphQLApp
from starlette.middleware import Middleware
from starlette.middleware.cors import CORSMiddleware

from .schema import schema_basic

middleware = [
    Middleware(
        CORSMiddleware,
        allow_origins=['*'],
        allow_methods=['POST', 'GET'],
        allow_headers=['access-control-allow-origin', 'authorization', 'content-type']
    )
]

app = Starlette(debug=True, middleware=middleware)
gapp = GraphQLApp(schema_basic(), playground=True)
app.add_route("/graphql", gapp)
app.add_websocket_route("/graphql-ws", gapp)

How do I now debug the new websocket route in the playground?

Opening up playground with localhost:5000/graphql-ws doesn't work

Opening up playground with localhost:5000/graphql works but then when running the subcription, it's attempting to connect to the server on the incorrect route (/graphql).

Any thoughts on how to figure out if the websocket endpoint is working?

Hi @Pet3ris,
Which ASGI server are you using?
If you are using Uvicorn, you need to install the websockets or uvicorn[standard] package.
pip3 install websockets

@ciscorn yeah I'm using uvicorn[standard]:
uvicorn = {extras = ["standard"], version = "^0.13.4"}
starlette = "^0.14.2"
starlette-graphene3 = "^0.3.0"

@Pet3ris
I've added playground_options parameter to starlette-graphene3==0.3.2, which allows you to do something like this:
GraphQLApp(schema, playground=True, playground_options={"subscriptionEndpoint": "/graphql-ws"})

Wow that immediately works:

Appreciate the blitz release!