Enquire time not respected?

Hi using 2.3.10
On bind I call   serverSession.setEnquireLinkTimer(30000);
But the client says they get an enquire link every 5 seconds.

The enquire_link can be send from both sides. When you call setEnquireLinkTimer, it controls the timer on your side. It's the remote side, which sends you every 5 seconds a enquire_link PDU. You could ask the remote party to increase this timer. On a reliable connection, I would say that 5 seconds is a little too much. 60 seconds should be fine.
From the SMPP 5 specification:
This PDU can be originated by either the ESME or MC and is used to provide a confidence- check of the communication path between an ESME and a MC. On receipt of this request the receiving party should respond with an enquire_link_resp, thus verifying that the application level connection between the MC and the ESME is functioning. The ESME may also respond by sending any valid SMPP primitive.

Ok well the client side informed me that it's happening every 5 seconds unless they are unaware of a default setting.
Also which setting gets priority if both sides set it?
Let me get back to you.

Ok I looked at the client side. It's Kannel and it has the following setting: enquire-link-interval = 60
Btw I don't see the enquire events on the server side is there a way to log them?

You need to set the log level on the server to debug to see the all messages:
if (logger.isDebugEnabled()) {
logger.debug("Received PDU {}", HexUtil.convertBytesToHexString(pdu, 0, pdu.length));
}
Each side can send enquiry_link requests. Each side has it's on timer. So the sending by the server if independent on the client. I tried with serverSession.setEnquireLinkTimer(60000) on the server and the timing was then 60 seconds as expected.
The enquiry timer is using the underlying socket SoTimeout. On which platform are you using the server ?

Ok going to check this out now.

Ok I have to get back to you. I embedded JSMPP in a http://quarkus.io application and they are using Jboss logging. So I need to see which adapter to use for it to make the JSMPP log4j logs print.

Ok here it is... I'm running in Docker, Java 11 Image is: registry.access.redhat.com/ubi8/ubi-minimal:8.1
I'm looking at the code though I'm confused... How does this tell the enquirer to fire every 60 seconds?
 connection().setSoTimeout(enquireLinkTimer);

2020-11-25 15:04:42,934 INFO  [com.xxx.SmppServerCommand] (main) New state bound: true, Old state bound: false, Source: 7fb64c0b
2020-11-25 15:04:42,935 DEBUG [org.jsm.DefaultPDUSender] (main) Sending SMPP message 00 00 00 1e 80 00 00 09 00 00 00 00 00 00 42 0a 73 6d 70 70 5f 64 65 76 00 02 10 00 01 34
2020-11-25 15:04:42,934 DEBUG [org.jsm.ses.AbstractSession] (EnquireLinkSender-7fb64c0b) Starting EnquireLinkSender for session 7fb64c0b
2020-11-25 15:04:42,939 INFO  [com.xxx.SmppServerCommand] (main) The session is now in state BOUND_TRX
2020-11-25 15:04:46,505 DEBUG [org.jsm.ses.SMPPServerSession] (PDUReaderWorker-ff858e53) No activity notified, sending enquireLink
2020-11-25 15:04:46,510 DEBUG [org.jsm.DefaultPDUSender] (EnquireLinkSender-ff858e53) Sending SMPP message 00 00 00 10 00 00 00 15 00 00 00 00 00 00 00 01
2020-11-25 15:04:46,515 DEBUG [org.jsm.ses.PDUProcessServerTask] (pool-7-thread-2) Received SMPP message PDUHeader(16, 80000015, 00000000, 1) 00 00 00 10 80 00 00 15 00 00 00 00 00 00 00 01
2020-11-25 15:04:46,516 DEBUG [org.jsm.ses.AbstractSession] (EnquireLinkSender-ff858e53) enquire_link response with sequence_number 1 received for session ff858e53
2020-11-25 15:04:47,504 DEBUG [org.jsm.ses.SMPPServerSession] (PDUReaderWorker-7fb64c0b) No activity notified, sending enquireLink
2020-11-25 15:04:47,505 DEBUG [org.jsm.DefaultPDUSender] (EnquireLinkSender-7fb64c0b) Sending SMPP message 00 00 00 10 00 00 00 15 00 00 00 00 00 00 00 01
2020-11-25 15:04:47,509 DEBUG [org.jsm.ses.PDUProcessServerTask] (pool-9-thread-2) Received SMPP message PDUHeader(16, 80000015, 00000000, 1) 00 00 00 10 80 00 00 15 00 00 00 00 00 00 00 01
2020-11-25 15:04:47,510 DEBUG [org.jsm.ses.AbstractSession] (EnquireLinkSender-7fb64c0b) enquire_link response with sequence_number 1 received for session 7fb64c0b
2020-11-25 15:04:51,517 DEBUG [org.jsm.ses.SMPPServerSession] (PDUReaderWorker-ff858e53) No activity notified, sending enquireLink
2020-11-25 15:04:51,518 DEBUG [org.jsm.DefaultPDUSender] (EnquireLinkSender-ff858e53) Sending SMPP message 00 00 00 10 00 00 00 15 00 00 00 00 00 00 00 02
2020-11-25 15:04:51,522 DEBUG [org.jsm.ses.PDUProcessServerTask] (pool-7-thread-3) Received SMPP message PDUHeader(16, 80000015, 00000000, 2) 00 00 00 10 80 00 00 15 00 00 00 00 00 00 00 02
2020-11-25 15:04:51,522 DEBUG [org.jsm.ses.AbstractSession] (EnquireLinkSender-ff858e53) enquire_link response with sequence_number 2 received for session ff858e53
2020-11-25 15:04:52,514 DEBUG [org.jsm.ses.SMPPServerSession] (PDUReaderWorker-7fb64c0b) No activity notified, sending enquireLink
2020-11-25 15:04:52,515 DEBUG [org.jsm.DefaultPDUSender] (EnquireLinkSender-7fb64c0b) Sending SMPP message 00 00 00 10 00 00 00 15 00 00 00 00 00 00 00 02
2020-11-25 15:04:52,519 DEBUG [org.jsm.ses.PDUProcessServerTask] (pool-9-thread-3) Received SMPP message PDUHeader(16, 80000015, 00000000, 2) 00 00 00 10 80 00 00 15 00 00 00 00 00 00 00 02
2020-11-25 15:04:52,520 DEBUG [org.jsm.ses.AbstractSession] (EnquireLinkSender-7fb64c0b) enquire_link response with sequence_number 2 received for session 7fb64c0b
2020-11-25 15:04:56,524 DEBUG [org.jsm.ses.SMPPServerSession] (PDUReaderWorker-ff858e53) No activity notified, sending enquireLink
2020-11-25 15:04:56,525 DEBUG [org.jsm.DefaultPDUSender] (EnquireLinkSender-ff858e53) Sending SMPP message 00 00 00 10 00 00 00 15 00 00 00 00 00 00 00 03
2020-11-25 15:04:56,527 DEBUG [org.jsm.ses.PDUProcessServerTask] (pool-7-thread-1) Received SMPP message PDUHeader(16, 80000015, 00000000, 3) 00 00 00 10 80 00 00 15 00 00 00 00 00 00 00 03
2020-11-25 15:04:56,527 DEBUG [org.jsm.ses.AbstractSession] (EnquireLinkSender-ff858e53) enquire_link response with sequence_number 3 received for session ff858e53

I also see this... Which explains the every 500ms
while (!sendingEnquireLink.compareAndSet(true, false) && !Thread.currentThread().isInterrupted() && isReadPdu()) {
                    synchronized (sendingEnquireLink) {
                        try {
                            sendingEnquireLink.wait(500);
                        } catch (InterruptedException e) {
                            Thread.currentThread().interrupt();
                            break;
                        }
                    }
                }

Not exactly. The log shows a sending every 5 seconds on link 7fb64c0b. The setSoTimeout() is implemented with socket.setSoTimeout(timeout); The underlying socket will notify the OS when no data is read/written for a while (the timeout).
On the SMPP server the socket timeout is first used to get a bind in a certain time:
conn.setSoTimeout(initiationTimer) in SMPPServerSessionListener. Maybe the changing of the socket timeout (for the usage of the enquiry) doesn't work. Could you try to set the initial timer (which default to 5 seconds) to a higher value?
setInitiationTimer(60000) (and use of SMPPServerSessionListener(int port), sessionListener.accept(), etc)
I will try if I can reproduce this behaviour...

Ooops read the time on the logs wrong. Ok let me try.

Ok that seems to work...
SMPPServerSessionListener sessionListener = useSsl ?
    new SMPPServerSessionListener(port, new KeyStoreSSLServerSocketConnectionFactory()) : new SMPPServerSessionListener(port);

LOG.info("Listening on port {}{}", port, useSsl ? " (SSL)" : "");

 sessionListener.setInitiationTimer(60000);

while(true) {
....
}

2020-11-25 17:04:49,708 DEBUG [org.jsm.ses.AbstractSession] (EnquireLinkSender-f0994669) Starting EnquireLinkSender for session f0994669
2020-11-25 17:04:49,709 DEBUG [org.jsm.DefaultPDUSender] (main) Sending SMPP message 00 00 00 1e 80 00 00 09 00 00 00 00 00 00 42 11 73 6d 70 70 5f 64 65 76 00 02 10 00 01 34
2020-11-25 17:04:49,712 INFO  [com.xxx.SmppServerCommand] (main) The session is now in state BOUND_TRX
2020-11-25 17:05:47,509 DEBUG [org.jsm.ses.PDUProcessServerTask] (pool-7-thread-2) Received SMPP message PDUHeader(16, 00000015, 00000000, 16915) 00 00 00 10 00 00 00 15 00 00 00 00 00 00 42 13
2020-11-25 17:05:47,510 DEBUG [org.jsm.ses.SMPPServerSession] (pool-7-thread-2) Sending enquire_link_resp
2020-11-25 17:05:47,511 DEBUG [org.jsm.DefaultPDUSender] (pool-7-thread-2) Sending SMPP message 00 00 00 10 80 00 00 15 00 00 00 00 00 00 42 13
2020-11-25 17:05:47,769 DEBUG [org.jsm.ses.PDUProcessServerTask] (pool-9-thread-2) Received SMPP message PDUHeader(16, 00000015, 00000000, 16914) 00 00 00 10 00 00 00 15 00 00 00 00 00 00 42 12
2020-11-25 17:05:47,773 DEBUG [org.jsm.ses.SMPPServerSession] (pool-9-thread-2) Sending enquire_link_resp
2020-11-25 17:05:47,774 DEBUG [org.jsm.DefaultPDUSender] (pool-9-thread-2) Sending SMPP message 00 00 00 10 80 00 00 15 00 00 00 00 00 00 42 12
2020-11-25 17:06:47,538 DEBUG [org.jsm.ses.PDUProcessServerTask] (pool-7-thread-3) Received SMPP message PDUHeader(16, 00000015, 00000000, 16916) 00 00 00 10 00 00 00 15 00 00 00 00 00 00 42 14
2020-11-25 17:06:47,540 DEBUG [org.jsm.ses.SMPPServerSession] (pool-7-thread-3) Sending enquire_link_resp
2020-11-25 17:06:47,540 DEBUG [org.jsm.DefaultPDUSender] (pool-7-thread-3) Sending SMPP message 00 00 00 10 80 00 00 15 00 00 00 00 00 00 42 14
2020-11-25 17:06:47,803 DEBUG [org.jsm.ses.SMPPServerSession] (PDUReaderWorker-f0994669) No activity notified, sending enquireLink
2020-11-25 17:06:47,807 DEBUG [org.jsm.DefaultPDUSender] (EnquireLinkSender-f0994669) Sending SMPP message 00 00 00 10 00 00 00 15 00 00 00 00 00 00 00 01
2020-11-25 17:06:47,811 DEBUG [org.jsm.ses.PDUProcessServerTask] (pool-9-thread-3) Received SMPP message PDUHeader(16, 00000015, 00000000, 16915) 00 00 00 10 00 00 00 15 00 00 00 00 00 00 42 13
2020-11-25 17:06:47,811 DEBUG [org.jsm.ses.SMPPServerSession] (pool-9-thread-3) Sending enquire_link_resp
2020-11-25 17:06:47,811 DEBUG [org.jsm.DefaultPDUSender] (pool-9-thread-3) Sending SMPP message 00 00 00 10 80 00 00 15 00 00 00 00 00 00 42 13
2020-11-25 17:06:47,813 DEBUG [org.jsm.ses.PDUProcessServerTask] (pool-9-thread-1) Received SMPP message PDUHeader(16, 80000015, 00000000, 1) 00 00 00 10 80 00 00 15 00 00 00 00 00 00 00 01
2020-11-25 17:06:47,814 DEBUG [org.jsm.ses.AbstractSession] (EnquireLinkSender-f0994669) enquire_link response with sequence_number 1 received for session f0994669

I see now where the problem is. When the setEnquiryTimer is set on the server session before the bound took place, the socket SoTimeout was not set. I will make a fix that the socket timeout is also set when the enquiry thread is starting when the bound state took place. In your code, you could set the setEnquireTimer after the bound took place:
In WaitBindTask after the bindRequest.accept(...);
I'll make the fix available in Maven in the coming days.

Ok thanks. Your suggestion of doing after bindRequest.accept(...); works as well.

Release 2.3.11 is now in Maven Central. Can you try if this solves it as well ?

Ok started using it. I let you know...

Ok it doesn't seem to work? I removed the code, so it should default to 60 seconds?
bindRequest.accept(bindRequest.getSystemId(), InterfaceVersion.IF_34);
//serverSession.setEnquireLinkTimer(60000);

2020-12-01 19:24:50,319 DEBUG [org.jsm.DefaultPDUSender] (EnquireLinkSender-2061c3c0) Sending PDU<PHONE_NUMBER>0000150000000000000001
2020-12-01 19:24:50,323 DEBUG [org.jsm.ses.PDUProcessServerTask] (pool-7-thread-2) Received PDU<PHONE_NUMBER>0000150000000000000001
2020-12-01 19:24:50,325 DEBUG [org.jsm.ses.AbstractSession] (EnquireLinkSender-2061c3c0) enquire_link response with sequence_number 1 received for session 2061c3c0
2020-12-01 19:24:53,491 DEBUG [org.jsm.ses.SMPPServerSession] (PDUReaderWorker-f60107ca) No activity notified, sending enquireLink
2020-12-01 19:24:53,493 DEBUG [org.jsm.DefaultPDUSender] (EnquireLinkSender-f60107ca) Sending PDU<PHONE_NUMBER>0000150000000000000001
2020-12-01 19:24:53,502 DEBUG [org.jsm.ses.PDUProcessServerTask] (pool-11-thread-2) Received PDU<PHONE_NUMBER>0000150000000000000001
2020-12-01 19:24:53,504 DEBUG [org.jsm.ses.AbstractSession] (EnquireLinkSender-f60107ca) enquire_link response with sequence_number 1 received for session f60107ca
2020-12-01 19:24:55,329 DEBUG [org.jsm.ses.SMPPServerSession] (PDUReaderWorker-2061c3c0) No activity notified, sending enquireLink
2020-12-01 19:24:55,330 DEBUG [org.jsm.DefaultPDUSender] (EnquireLinkSender-2061c3c0) Sending PDU<PHONE_NUMBER>0000150000000000000002
2020-12-01 19:24:55,333 DEBUG [org.jsm.ses.PDUProcessServerTask] (pool-7-thread-3) Received PDU<PHONE_NUMBER>0000150000000000000002
2020-12-01 19:24:55,334 DEBUG [org.jsm.ses.AbstractSession] (EnquireLinkSender-2061c3c0) enquire_link response with sequence_number 2 received for session 2061c3c0
2020-12-01 19:24:58,507 DEBUG [org.jsm.ses.SMPPServerSession] (PDUReaderWorker-f60107ca) No activity notified, sending enquireLink
2020-12-01 19:24:58,508 DEBUG [org.jsm.DefaultPDUSender] (EnquireLinkSender-f60107ca) Sending PDU<PHONE_NUMBER>0000150000000000000002
2020-12-01 19:24:58,516 DEBUG [org.jsm.ses.PDUProcessServerTask] (pool-11-thread-3) Received PDU<PHONE_NUMBER>0000150000000000000002
2020-12-01 19:24:58,517 DEBUG [org.jsm.ses.AbstractSession] (EnquireLinkSender-f60107ca) enquire_link response with sequence_number 2 received for session f60107ca
2020-12-01 19:25:00,341 DEBUG [org.jsm.ses.SMPPServerSession] (PDUReaderWorker-2061c3c0) No activity notified, sending enquireLink
2020-12-01 19:25:00,343 DEBUG [org.jsm.DefaultPDUSender] (EnquireLinkSender-2061c3c0) Sending PDU<PHONE_NUMBER>0000150000000000000003
2020-12-01 19:25:00,350 DEBUG [org.jsm.ses.PDUProcessServerTask] (pool-7-thread-1) Received PDU<PHONE_NUMBER>0000150000000000000003
2020-12-01 19:25:00,358 DEBUG [org.jsm.ses.AbstractSession] (EnquireLinkSender-2061c3c0) enquire_link response with sequence_number 3 received for session 2061c3c0
2020-12-01 19:25:03,522 DEBUG [org.jsm.ses.SMPPServerSession] (PDUReaderWorker-f60107ca) No activity notified, sending enquireLink
2020-12-01 19:25:03,523 DEBUG [org.jsm.DefaultPDUSender] (EnquireLinkSender-f60107ca) Sending PDU<PHONE_NUMBER>0000150000000000000003
2020-12-01 19:25:03,528 DEBUG [org.jsm.ses.PDUProcessServerTask] (pool-11-thread-1) Received PDU<PHONE_NUMBER>0000150000000000000003
2020-12-01 19:25:03,528 DEBUG [org.jsm.ses.AbstractSession] (EnquireLinkSender-f60107ca) enquire_link response with sequence_number 3 received for session f60107ca
2020-12-01 19:25:05,355 DEBUG [org.jsm.ses.SMPPServerSession] (PDUReaderWorker-2061c3c0) No activity notified, sending enquireLink
2020-12-01 19:25:05,356 DEBUG [org.jsm.DefaultPDUSender] (EnquireLinkSender-2061c3c0) Sending PDU<PHONE_NUMBER>0000150000000000000004
2020-12-01 19:25:05,361 DEBUG [org.jsm.ses.PDUProcessServerTask] (pool-7-thread-2) Received PDU<PHONE_NUMBER>0000150000000000000004
2020-12-01 19:25:05,361 DEBUG [org.jsm.ses.AbstractSession] (EnquireLinkSender-2061c3c0) enquire_link response with sequence_number 4 received for session 2061c3c0
2020-12-01 19:25:08,536 DEBUG [org.jsm.ses.SMPPServerSession] (PDUReaderWorker-f60107ca) No activity notified, sending enquireLink
2020-12-01 19:25:08,537 DEBUG [org.jsm.DefaultPDUSender] (EnquireLinkSender-f60107ca) Sending PDU<PHONE_NUMBER>0000150000000000000004
2020-12-01 19:25:08,539 DEBUG [org.jsm.ses.PDUProcessServerTask] (pool-11-thread-2) Received PDU<PHONE_NUMBER>0000150000000000000004
2020-12-01 19:25:08,539 DEBUG [org.jsm.ses.AbstractSession] (EnquireLinkSender-f60107ca) enquire_link response with sequence_number 4 received for session f60107ca
2020-12-01 19:25:10,369 DEBUG [org.jsm.ses.SMPPServerSession] (PDUReaderWorker-2061c3c0) No activity notified, sending enquireLink
2020-12-01 19:25:10,371 DEBUG [org.jsm.DefaultPDUSender] (EnquireLinkSender-2061c3c0) Sending PDU<PHONE_NUMBER>0000150000000000000005
2020-12-01 19:25:10,373 DEBUG [org.jsm.ses.PDUProcessServerTask] (pool-7-thread-3) Received PDU<PHONE_NUMBER>0000150000000000000005
2020-12-01 19:25:10,373 DEBUG [org.jsm.ses.AbstractSession] (EnquireLinkSender-2061c3c0) enquire_link response with sequence_number 5 received for session 2061c3c0
2020-12-01 19:25:13,544 DEBUG [org.jsm.ses.SMPPServerSession] (PDUReaderWorker-f60107ca) No activity notified, sending enquireLink
2020-12-01 19:25:13,545 DEBUG [org.jsm.DefaultPDUSender] (EnquireLinkSender-f60107ca) Sending PDU<PHONE_NUMBER>0000150000000000000005
2020-12-01 19:25:13,548 DEBUG [org.jsm.ses.PDUProcessServerTask] (pool-11-thread-3) Received PDU<PHONE_NUMBER>0000150000000000000005
2020-12-01 19:25:13,548 DEBUG [org.jsm.ses.AbstractSession] (EnquireLinkSender-f60107ca) enquire_link response with sequence_number 5 received for session f60107ca
2020-12-01 19:25:15,378 DEBUG [org.jsm.ses.SMPPServerSession] (PDUReaderWorker-2061c3c0) No activity notified, sending enquireLink
2020-12-01 19:25:15,379 DEBUG [org.jsm.DefaultPDUSender] (EnquireLinkSender-2061c3c0) Sending PDU<PHONE_NUMBER>0000150000000000000006
2020-12-01 19:25:15,383 DEBUG [org.jsm.ses.PDUProcessServerTask] (pool-7-thread-1) Received PDU<PHONE_NUMBER>0000150000000000000006
2020-12-01 19:25:15,384 DEBUG [org.jsm.ses.AbstractSession] (EnquireLinkSender-2061c3c0) enquire_link response with sequence_number 6 received for session 2061c3c0
2020-12-01 19:25:18,554 DEBUG [org.jsm.ses.SMPPServerSession] (PDUReaderWorker-f60107ca) No activity notified, sending enquireLink
2020-12-01 19:25:18,556 DEBUG [org.jsm.DefaultPDUSender] (EnquireLinkSender-f60107ca) Sending PDU<PHONE_NUMBER>0000150000000000000006
2020-12-01 19:25:18,559 DEBUG [org.jsm.ses.PDUProcessServerTask] (pool-11-thread-1) Received PDU<PHONE_NUMBER>0000150000000000000006
2020-12-01 19:25:18,559 DEBUG [org.jsm.ses.AbstractSession] (EnquireLinkSender-f60107ca) enquire_link response with sequence_number 6 received for session f60107ca
2020-12-01 19:25:20,388 DEBUG [org.jsm.ses.SMPPServerSession] (PDUReaderWorker-2061c3c0) No activity notified, sending enquireLink
2020-12-01 19:25:20,390 DEBUG [org.jsm.DefaultPDUSender] (EnquireLinkSender-2061c3c0) Sending PDU<PHONE_NUMBER>0000150000000000000007
2020-12-01 19:25:20,394 DEBUG [org.jsm.ses.PDUProcessServerTask] (pool-7-thread-2) Received PDU<PHONE_NUMBER>0000150000000000000007
2020-12-01 19:25:20,394 DEBUG [org.jsm.ses.AbstractSession] (EnquireLinkSender-2061c3c0) enquire_link response with sequence_number 7 received for session 2061c3c0
2020-12-01 19:25:23,563 DEBUG [org.jsm.ses.SMPPServerSession] (PDUReaderWorker-f60107ca) No activity notified, sending enquireLink
2020-12-01 19:25:23,564 DEBUG [org.jsm.DefaultPDUSender] (EnquireLinkSender-f60107ca) Sending PDU<PHONE_NUMBER>0000150000000000000007
2020-12-01 19:25:23,567 DEBUG [org.jsm.ses.PDUProcessServerTask] (pool-11-thread-2) Received PDU<PHONE_NUMBER>0000150000000000000007
2020-12-01 19:25:23,567 DEBUG [org.jsm.ses.AbstractSession] (EnquireLinkSender-f60107ca) enquire_link response with sequence_number 7 received for session f60107ca
2020-12-01 19:25:25,398 DEBUG [org.jsm.ses.SMPPServerSession] (PDUReaderWorker-2061c3c0) No activity notified, sending enquireLink
2020-12-01 19:25:25,411 DEBUG [org.jsm.DefaultPDUSender] (EnquireLinkSender-2061c3c0) Sending PDU<PHONE_NUMBER>0000150000000000000008
2020-12-01 19:25:25,413 DEBUG [org.jsm.ses.PDUProcessServerTask] (pool-7-thread-3) Received PDU<PHONE_NUMBER>0000150000000000000008
2020-12-01 19:25:25,413 DEBUG [org.jsm.ses.AbstractSession] (EnquireLinkSender-2061c3c0) enquire_link response with sequence_number 8 received for session 2061c3c0
2020-12-01 19:25:28,570 DEBUG [org.jsm.ses.SMPPServerSession] (PDUReaderWorker-f60107ca) No activity notified, sending enquireLink
2020-12-01 19:25:28,572 DEBUG [org.jsm.DefaultPDUSender] (EnquireLinkSender-f60107ca) Sending PDU<PHONE_NUMBER>0000150000000000000008
2020-12-01 19:25:28,579 DEBUG [org.jsm.ses.PDUProcessServerTask] (pool-11-thread-3) Received PDU<PHONE_NUMBER>0000150000000000000008
2020-12-01 19:25:28,579 DEBUG [org.jsm.ses.AbstractSession] (EnquireLinkSender-f60107ca) enquire_link response with sequence_number 8 received for session f60107ca
2020-12-01 19:25:30,416 DEBUG [org.jsm.ses.SMPPServerSession] (PDUReaderWorker-2061c3c0) No activity notified, sending enquireLink
2020-12-01 19:25:30,417 DEBUG [org.jsm.DefaultPDUSender] (EnquireLinkSender-2061c3c0) Sending PDU<PHONE_NUMBER>0000150000000000000009
2020-12-01 19:25:30,419 DEBUG [org.jsm.ses.PDUProcessServerTask] (pool-7-thread-1) Received PDU<PHONE_NUMBER>0000150000000000000009
2020-12-01 19:25:30,419 DEBUG [org.jsm.ses.AbstractSession] (EnquireLinkSender-2061c3c0) enquire_link response with sequence_number 9 received for session 2061c3c0
2020-12-01 19:25:33,580 DEBUG [org.jsm.ses.SMPPServerSession] (PDUReaderWorker-f60107ca) No activity notified, sending enquireLink
2020-12-01 19:25:33,581 DEBUG [org.jsm.DefaultPDUSender] (EnquireLinkSender-f60107ca) Sending PDU<PHONE_NUMBER>0000150000000000000009
2020-12-01 19:25:33,584 DEBUG [org.jsm.ses.PDUProcessServerTask] (pool-11-thread-1) Received PDU<PHONE_NUMBER>0000150000000000000009
2020-12-01 19:25:33,584 DEBUG [org.jsm.ses.AbstractSession] (EnquireLinkSender-f60107ca) enquire_link response with sequence_number 9 received for session f60107ca
2020-12-01 19:25:35,424 DEBUG [org.jsm.ses.SMPPServerSession] (PDUReaderWorker-2061c3c0) No activity notified, sending enquireLink
2020-12-01 19:25:35,425 DEBUG [org.jsm.DefaultPDUSender] (EnquireLinkSender-2061c3c0) Sending PDU<PHONE_NUMBER>000015000000000000000a
2020-12-01 19:25:35,429 DEBUG [org.jsm.ses.PDUProcessServerTask] (pool-7-thread-2) Received PDU<PHONE_NUMBER>000015000000000000000a
2020-12-01 19:25:35,431 DEBUG [org.jsm.ses.AbstractSession] (EnquireLinkSender-2061c3c0) enquire_link response with sequence_number 10 received for session 2061c3c0
2020-12-01 19:25:38,586 DEBUG [org.jsm.ses.SMPPServerSession] (PDUReaderWorker-f60107ca) No activity notified, sending enquireLink
2020-12-01 19:25:38,589 DEBUG [org.jsm.DefaultPDUSender] (EnquireLinkSender-f60107ca) Sending PDU<PHONE_NUMBER>000015000000000000000a
2020-12-01 19:25:38,595 DEBUG [org.jsm.ses.PDUProcessServerTask] (pool-11-thread-2) Received PDU<PHONE_NUMBER>000015000000000000000a
2020-12-01 19:25:38,595 DEBUG [org.jsm.ses.AbstractSession] (EnquireLinkSender-f60107ca) enquire_link response with sequence_number 10 received for session f60107ca
2020-12-01 19:25:40,435 DEBUG [org.jsm.ses.SMPPServerSession] (PDUReaderWorker-2061c3c0) No activity notified, sending enquireLink
2020-12-01 19:25:40,436 DEBUG [org.jsm.DefaultPDUSender] (EnquireLinkSender-2061c3c0) Sending PDU<PHONE_NUMBER>000015000000000000000b
2020-12-01 19:25:40,440 DEBUG [org.jsm.ses.PDUProcessServerTask] (pool-7-thread-3) Received PDU<PHONE_NUMBER>000015000000000000000b
2020-12-01 19:25:40,440 DEBUG [org.jsm.ses.AbstractSession] (EnquireLinkSender-2061c3c0) enquire_link response with sequence_number 11 received for session 2061c3c0
2020-12-01 19:25:43,600 DEBUG [org.jsm.ses.SMPPServerSession] (PDUReaderWorker-f60107ca) No activity notified, sending enquireLink
2020-12-01 19:25:43,606 DEBUG [org.jsm.DefaultPDUSender] (EnquireLinkSender-f60107ca) Sending PDU<PHONE_NUMBER>000015000000000000000b
2020-12-01 19:25:43,613 DEBUG [org.jsm.ses.PDUProcessServerTask] (pool-11-thread-3) Received PDU<PHONE_NUMBER>000015000000000000000b


lualine 提示 invalid key

Version confirmation

[ ] Confirm

Neovim version
NVIM v0.8.2
Operating system/version
Windows 10
Terminal name/version
Alacritty
$TERM environment variable
No response
Branch info
main (Default/Latest)
Fetch Preferences
HTTPS (use_ssh = false)
How to reproduce the issue
更换lualine主题
Expected behavior
不报错
Actual behavior
更换lualine的主题后（ui/config 249 line）
打开文件提示如下：
packer.nvim: Error running config for lualine.nvim: ......utils/init.lua:62 invalid key
如果把ui/config的 302--307注释掉，就不会报错了

Additional information
No response

This is probably depends on your colorscheme which doesn't have this highlight group. So u can do 2 things to solve it:

use this repo's colorscheme
define the highlight group yourself.

This should be fixed by #405. Which theme did you switch to for lualine?

i set lualine theme to carbonfox

Is this the theme of another colorscheme? Loos like lualine does not have this scheme built in. I tried to search on Google and got EdenEast/lightfox.nvim.

carbonfox is part of https://github.com/EdenEast/nightfox.nvim

Can reproduce. Looks like there's a problem working with linked highlight groups. I will rewrite this function (for merging highlight groups) later. Now you can comment out these lines as a temporary workaround 👍

ok

@nkta3m #409 should be able to address this problem. You can test whether this issue is resolved after the PR is merged.

解决了，效果如下：

非常感谢！

@nkta3m This PR has not been merged yet. If you want to test it now, you can clone my branch:

ssh: git clone git@github.com:Jint-lzxy/nvimdots.git && cd nvimdots && git checkout utils-fix
https: git clone https://github.com/Jint-lzxy/nvimdots.git && cd nvimdots && git checkout utils-fix
github CLI: gh pr checkout 409

@nkta3m This PR has not been merged yet. If you want to test it now, you can clone my branch:

ssh: git clone git@github.com:Jint-lzxy/nvimdots.git && cd nvimdots && git checkout utils-fix
https: git clone https://github.com/Jint-lzxy/nvimdots.git && cd nvimdots && git checkout utils-fix
github CLI: gh pr checkout 409

I did some tests, and there were no errors when using the default nightfox colorscheme

In other way, no need to clone, just add you repo as a remote origin.
git remote add jint git@github.com:Jint-lzxy/nvimdots.git
git fetch jint
git checkout utils-fix

我测试也OK了，没有报错了，👍


[CoinView] Check rewind data store integrity on startup.

https://app.clickup.com/t/n53ez9

Closing as we need to understand what the issue.


feature: skipping to end or increase execution speed

Some examples are quite long (especially "pascal") and it takes a ton of time to get the end result (> 10 min).
So I would kindly ask for some way of speeding, eihter as skipping to end button or e.g. a slider for the execution speed or a working implementation of schnell / langsam
Meanwhile I have to to some other work while waiting for the end result :)
Thanks for tackling this.

I thought about a "skip to end" button before, but that's not feasible to implement as you would need to detect infinite loops which is not possible. Alternatively, you'd need to timeout Angerer x steps/seconds.
On the other hand, a "fast forward" button or slider sounds like a great addition. That's probably the most straight forward solution for this issue.
I am still not sure how the schnell and langsam commands from the original Roboter Karol should really work - also I am not sure how they are working at the moment as I wrote that code a while ago. Should these operations only be active for the current block. Should they propagate down? Should leaving the block get to the previous state or reset to langsam?

A slider would be very nice.
In my understanding, the schnell command will skip output of all code until the next langsam command. Currently, they are doing nothing.

In my understanding, the schnell command will skip output of all code until the next langsam command.

Not 100% sure about that one. Looking at this official example: https://github.com/andipaetzold/robotkarol.dev/blob/d64719ad42afdd9e981dfa09e7a1714bcb80f1d9/public/examples/steinepflastern.kdp#L43-L51
After calling schnell in condition, there is no langsam. I, therefore, assume there is some kind of block-scoping that automatically slows things down again

Currently, they are doing nothing.

I currently parse schnell and langsam and also have some kind of block-scoping around that. The initial idea was to make all steps after schnell instant. But that caused issues with infinite loops. Maybe I can rather make them a very fast speed and not an instant operation. That way the main thread won't get stuck in a loop.

I never read the official docs while implementing. I guess this makes life easier. :laughing:
Ideally this would not even run in the UI thread but a separate worker and you could kill it if it doesn't provide the next update after x steps.


Add an option to disable CORS proxy

Quixe automatically uses a proxy to download the story file if it detects that it's not on the same domain. There are two cases where the proxy makes things worse rather than better:

The file is on a different domain, but the server sets the correct CORS headers so it works without the proxy. The file might be inaccessible to the proxy (localhost, internal network etc.)
The URL is a data URL (data:...)

A workaround is to load the story file manually and pass it to GiLoad.load_run() to start the game.
Arguably case 2 is a bug and it should detect data URLs, but for case 1 we'd need either that setting the proxy URL option to null would disable it altogether, or a separate setting that disables the proxy. Preferably with options auto-detection (current behavior), always enabled or always disabled. HugoJS has this setting:
// use a CORS proxy to load game files?
// "always" (or true), "never" (or false), or "auto".
// The "auto" option uses proxy only if the story URL points to another domain.
use_proxy: "auto"

(For reference, same issue posted to Parchment: https://github.com/curiousdannii/parchment/issues/71)

This makes sense to me. Can you write a PR, or should I try it?

@curiousdannii said he's going to rewrite this part for Parchment, maybe wait for that so we'll get similar interfaces for both interpreters? I can then use it to make a PR for Quixe.


PKCS12 file not specified

I get "PKCS12 file not specified." error when trying to use SSL with my BlueSocket in iOS. Code below fails for me.
    private func setupSSL() throws {
        guard let cPath = certPath, let kPath = keyPath, let socket = listenSocket else {
            return
        }
        let config = SSLService.Configuration(withCACertificateDirectory: nil, usingCertificateFile: cPath, withKeyFile: kPath)
        do {
            socket.delegate = try SSLService(usingConfiguration: config)
        } catch {
            throw error
        }
    }

Please help.

It is showing me error "Certificate chain doesn't exist at specified path." but you can see, I have certificate in the same directory. Can you please help?


ORAS OCI store index race conditions

What happened in your environment?

ORAS referrer store can fail to initialize for external verifiers with error: Original Error: (Original Error: (create store from input config failed with error Original Error: (invalid OCI Image Index: failed to decode index file: EOF), Error: plugin init failure, Code: PLUGIN_INIT_FAILURE, Component Type: referrerStore, Detail: could not create local ORAS cache at path: /home/runner/.ratify/local_oras_cache)
This occurs when multiple external verifiers are executed for the same subject in parallel.
Intermittent issue affecting e2e tests

What did you expect to happen?
No response
What version of Kubernetes are you running?
No response
What version of Ratify are you running?
v1.0.0
Anything else you would like to add?
No response
Are you willing to submit PRs to contribute to this bug fix?

[ ] Yes, I am willing to implement it.

This issue is not high priority and intermittently affects the ratify e2e tests. Here's a sample verifier report with the failures:
{
  "verifierReports": [
    {
      "subject": "localhost:5000/all:v0",
      "isSuccess": true,
      "name": "notation",
      "message": "signature verification success",
      "extensions": {
        "Issuer": "CN=ratify-bats-test,O=Notary,L=Seattle,ST=WA,C=US",
        "SN": "CN=ratify-bats-test,O=Notary,L=Seattle,ST=WA,C=US"
      },
      "artifactType": "application/vnd.cncf.notary.signature"
    },
    {
      "isSuccess": false,
      "name": "cosign",
      "message": "Original Error: (Original Error: (create store from input config failed with error Original Error: (invalid OCI Image Index: failed to decode index file: EOF), Error: plugin init failure, Code: PLUGIN_INIT_FAILURE, Component Type: referrerStore, Detail: could not create local oras cache at path: /home/runner/.ratify/local_oras_cache), Error: verify signature failure, Code: VERIFY_SIGNATURE_FAILURE, Plugin Name: cosign, Component Type: verifier), Error: verify reference failure, Code: VERIFY_REFERENCE_FAILURE, Plugin Name: cosign, Component Type: verifier",
      "artifactType": "application/vnd.dev.cosign.artifact.sig.v1+json"
    },
    {
      "subject": "localhost:5000/all:v0",
      "isSuccess": true,
      "name": "licensechecker",
      "message": "License Check: SUCCESS. All packages have allowed licenses",
      "artifactType": "application/vnd.ratify.spdx.v0"
    },
    {
      "subject": "localhost:5000/all:v0",
      "isSuccess": true,
      "name": "schemavalidator",
      "message": "schema validation passed for configured media types",
      "artifactType": "vnd.aquasecurity.trivy.report.sarif.v1"
    },
    {
      "isSuccess": false,
      "name": "sbom",
      "message": "Original Error: (Original Error: (create store from input config failed with error Original Error: (invalid OCI Image Index: failed to decode index file: EOF), Error: plugin init failure, Code: PLUGIN_INIT_FAILURE, Component Type: referrerStore, Detail: could not create local oras cache at path: /home/runner/.ratify/local_oras_cache), Error: verify signature failure, Code: VERIFY_SIGNATURE_FAILURE, Plugin Name: sbom, Component Type: verifier), Error: verify reference failure, Code: VERIFY_REFERENCE_FAILURE, Plugin Name: sbom, Component Type: verifier",
      "nestedResults": [
        {
          "subject": "localhost:5000/all@sha256:b71c1f874fbc92173278bcb7bb44c785b167f7efa3c44b52eb48e20d540741b5",
          "isSuccess": true,
          "name": "notation",
          "message": "signature verification success",
          "extensions": {
            "Issuer": "CN=ratify-bats-test,O=Notary,L=Seattle,ST=WA,C=US",
            "SN": "CN=ratify-bats-test,O=Notary,L=Seattle,ST=WA,C=US"
          },
          "artifactType": "application/vnd.cncf.notary.signature"
        }
      ],
      "artifactType": "org.example.sbom.v0"
    }
  ]
}

Investigation notes:

The real error is the EOF error returned by the ORAS OCI store's New method. The oras-go implementation attempts to load the index.json file. When Ratify is initialized and the ORAS Referrer store is first created, the index.json file does not exist and is thus created and populated with an empty OCI Index manifest json. On verification start, each verifier spawns a separate routine. And each routine invokes the registered verifier. Each verifier is running in parallel.
Each external verifier invokes a SEPERATE process which creates a new OCI store instance. index.json already exists so the loadIndex functionality in oras-go will attempt to decode the file contents as json. This decoding is what is throwing the EOF errors.
ORAS OCI store is not process safe and https://github.com/oras-project/oras-go/issues/286 acknowledges this gap
Current hypothesis is that the concurrent file writing/reading by different processes is leading to EOF errors.


Error while decoding stream #0:0: Resource temporarily unavailable

First, thank you very much for your work on Viseron
When I try to put my camera (RTSP) on viseron, I have an infinite loading with this error message:
viseron  | [s6-init] making user provided files available at /var/run/s6/etc...exited 0.
viseron  | [s6-init] ensuring user provided files have correct perms...exited 0.
viseron  | [fix-attrs.d] applying ownership & permissions fixes...
viseron  | [fix-attrs.d] done.
viseron  | [cont-init.d] executing container initialization scripts...
viseron  | [cont-init.d] 10-adduser: executing...
viseron  | ************************ UID/GID *************************
viseron  | User uid:    0
viseron  | User gid:    0
viseron  | ************************** Done **************************
viseron  | [cont-init.d] 10-adduser: exited 0.
viseron  | [cont-init.d] 20-gid-video-device: executing...
viseron  | [cont-init.d] 20-gid-video-device: exited 0.
viseron  | [cont-init.d] 30-edgetpu-permission: executing...
viseron  | ************** Setting EdgeTPU permissions ***************
viseron  | Coral Vendor IDs:
viseron  | "1a6e"
viseron  | "18d1"
viseron  | No EdgeTPU USB device was found
viseron  | ************************** Done **************************
viseron  | [cont-init.d] 30-edgetpu-permission: exited 0.
viseron  | [cont-init.d] 40-set-env-vars: executing...
viseron  | ****** Checking for hardware acceleration platforms ******
viseron  | OpenCL cannot be used
viseron  | VA-API cannot be used
viseron  | CUDA cannot be used
viseron  | *********************** Done *****************************
viseron  | [cont-init.d] 40-set-env-vars: exited 0.
viseron  | [cont-init.d] 50-check-if-rpi: executing...
viseron  | ********** Checking if we are running on an RPi **********
viseron  | Running on an RPi4
viseron  | *********************** Done *****************************
viseron  | [cont-init.d] 50-check-if-rpi: exited 0.
viseron  | [cont-init.d] 55-check-if-jetson: executing...
viseron  | ****** Checking if we are running on a Jetson Board ******
viseron  | Not running on any supported Jetson board
viseron  | *********************** Done *****************************
viseron  | [cont-init.d] 55-check-if-jetson: exited 0.
viseron  | [cont-init.d] 60-ffmpeg-path: executing...
viseron  | ****************** Getting FFmpeg path *******************
viseron  | FFmpeg path: /home/abc/bin/ffmpeg
viseron  | *********************** Done *****************************
viseron  | [cont-init.d] 60-ffmpeg-path: exited 0.
viseron  | [cont-init.d] 70-gstreamer-path: executing...
viseron  | ***************** Getting GStreamer path *****************
viseron  | GStreamer path: /usr/bin/gst-launch-1.0
viseron  | *********************** Done *****************************
viseron  | [cont-init.d] 70-gstreamer-path: exited 0.
viseron  | [cont-init.d] done.
viseron  | [services.d] starting services
viseron  | [services.d] done.
viseron  | [2023-01-31 07:03:10] [INFO    ] [viseron.core] - -------------------------------------------
viseron  | [2023-01-31 07:03:10] [INFO    ] [viseron.core] - Initializing Viseron
viseron  | [2023-01-31 07:03:11] [INFO    ] [viseron.components] - Setting up component data_stream
viseron  | [2023-01-31 07:03:11] [INFO    ] [viseron.components] - Setup of component data_stream took 0.0 seconds
viseron  | [2023-01-31 07:03:11] [INFO    ] [viseron.components] - Setting up component webserver
viseron  | [2023-01-31 07:03:11] [INFO    ] [viseron.components] - Setup of component webserver took 0.0 seconds
viseron  | [2023-01-31 07:03:11] [INFO    ] [viseron.components] - Setting up component nvr
viseron  | [2023-01-31 07:03:11] [INFO    ] [viseron.components] - Setting up component mqtt
viseron  | [2023-01-31 07:03:11] [INFO    ] [viseron.components] - Setup of component nvr took 0.0 seconds
viseron  | [2023-01-31 07:03:11] [INFO    ] [viseron.components] - Setting up component ffmpeg
viseron  | [2023-01-31 07:03:11] [INFO    ] [viseron.components] - Setup of component ffmpeg took 0.0 seconds
viseron  | [2023-01-31 07:03:11] [INFO    ] [viseron.components] - Setting up component mog2
viseron  | [2023-01-31 07:03:11] [INFO    ] [viseron.components] - Setup of component mog2 took 0.0 seconds
viseron  | [2023-01-31 07:03:11] [INFO    ] [viseron.components] - Setup of component mqtt took 0.0 seconds
viseron  | [2023-01-31 07:03:11] [INFO    ] [viseron.components] - Setting up domain camera for component ffmpeg with identifier garage
viseron  | [2023-01-31 07:03:11] [INFO    ] [viseron.components] - Setting up domain motion_detector for component mog2 with identifier garage
viseron  | [2023-01-31 07:03:11] [INFO    ] [viseron.components] - Setting up domain nvr for component nvr with identifier garage
viseron  | [2023-01-31 07:03:14] [WARNING ] [viseron.components.ffmpeg.stream.garage] - Container mp4 does not support pcm_alaw audio codec, using mkv instead. Consider changing extension in your config.
viseron  | [2023-01-31 07:03:14] [INFO    ] [viseron.components] - Setup of domain camera for component ffmpeg with identifier garage took 2.5 seconds
viseron  | [2023-01-31 07:03:14] [INFO    ] [viseron.components] - Setup of domain motion_detector for component mog2 with identifier garage took 0.0 seconds
viseron  | [2023-01-31 07:03:14] [INFO    ] [viseron.components.nvr.nvr.garage] - Object detector is disabled
viseron  | [2023-01-31 07:03:14] [INFO    ] [viseron.components.nvr.nvr.garage] - NVR for camera Garage initialized
viseron  | [2023-01-31 07:03:14] [INFO    ] [viseron.components] - Setup of domain nvr for component nvr with identifier garage took 0.0 seconds
viseron  | [2023-01-31 07:03:14] [INFO    ] [viseron.core] - Viseron initialized in 3.8 seconds
viseron  | [2023-01-31 07:03:25] [ERROR   ] [viseron.components.ffmpeg.stream.garage] - Error while decoding stream #0:0: Resource temporarily unavailable

Here is my config :
ffmpeg:
  camera:
    garage:
      name: Garage
      host: <IP_ADDRESS>
      port: 554
      path: /stream1
      username: *****
      password: *****
      width: 1920
      height: 1080

mqtt:
  broker: localhost
  port: 1883
  username: *****
  password: *****
  home_assistant:

nvr:
  garage:

and my docker compose file :
version: "2.4"
services:
  viseron:
    image: roflcoopter/viseron:latest
    container_name: viseron
    network_mode: host
    volumes:
      - ./data/recordings:/recordings
      - ./data/config:/config
      - /etc/localtime:/etc/localtime:ro
    devices:
      - /dev/video10:/dev/video10
      - /dev/video11:/dev/video11
      - /dev/video12:/dev/video12
      - /dev/bus/usb:/dev/bus/usb
    ports:
      - 8888:8888
    privileged: true

I think it's a problem of viseron and not of my camera because it works perfectly on frigate with this config:
mqtt:
  host: localhost
  port: 1883
  user: *****
  password: *****

cameras:
  garage:
    ffmpeg:
      inputs:
        - path: rtsp://*****:*****@<IP_ADDRESS>:554/stream1
    rtmp:
      enabled: True
    detect:
      width: 1920
      height: 1080

Thanks for the detailed report!
Could you enabled debug logging, restart and attach the logs here?

Thanks for your quick response!
Here are the logs in debug mode:
viseron  | [s6-init] making user provided files available at /var/run/s6/etc...exited 0.
viseron  | [s6-init] ensuring user provided files have correct perms...exited 0.
viseron  | [fix-attrs.d] applying ownership & permissions fixes...
viseron  | [fix-attrs.d] done.
viseron  | [cont-init.d] executing container initialization scripts...
viseron  | [cont-init.d] 10-adduser: executing...
viseron  | ************************ UID/GID *************************
viseron  | User uid:    0
viseron  | User gid:    0
viseron  | ************************** Done **************************
viseron  | [cont-init.d] 10-adduser: exited 0.
viseron  | [cont-init.d] 20-gid-video-device: executing...
viseron  | [cont-init.d] 20-gid-video-device: exited 0.
viseron  | [cont-init.d] 30-edgetpu-permission: executing...
viseron  | ************** Setting EdgeTPU permissions ***************
viseron  | Coral Vendor IDs:
viseron  | "1a6e"
viseron  | "18d1"
viseron  | No EdgeTPU USB device was found
viseron  | ************************** Done **************************
viseron  | [cont-init.d] 30-edgetpu-permission: exited 0.
viseron  | [cont-init.d] 40-set-env-vars: executing...
viseron  | ****** Checking for hardware acceleration platforms ******
viseron  | OpenCL cannot be used
viseron  | VA-API cannot be used
viseron  | CUDA cannot be used
viseron  | *********************** Done *****************************
viseron  | [cont-init.d] 40-set-env-vars: exited 0.
viseron  | [cont-init.d] 50-check-if-rpi: executing...
viseron  | ********** Checking if we are running on an RPi **********
viseron  | Running on an RPi4
viseron  | *********************** Done *****************************
viseron  | [cont-init.d] 50-check-if-rpi: exited 0.
viseron  | [cont-init.d] 55-check-if-jetson: executing...
viseron  | ****** Checking if we are running on a Jetson Board ******
viseron  | Not running on any supported Jetson board
viseron  | *********************** Done *****************************
viseron  | [cont-init.d] 55-check-if-jetson: exited 0.
viseron  | [cont-init.d] 60-ffmpeg-path: executing...
viseron  | ****************** Getting FFmpeg path *******************
viseron  | FFmpeg path: /home/abc/bin/ffmpeg
viseron  | *********************** Done *****************************
viseron  | [cont-init.d] 60-ffmpeg-path: exited 0.
viseron  | [cont-init.d] 70-gstreamer-path: executing...
viseron  | ***************** Getting GStreamer path *****************
viseron  | GStreamer path: /usr/bin/gst-launch-1.0
viseron  | *********************** Done *****************************
viseron  | [cont-init.d] 70-gstreamer-path: exited 0.
viseron  | [cont-init.d] done.
viseron  | [services.d] starting services
viseron  | [services.d] done.
viseron  | [2023-01-31 11:12:20] [INFO    ] [viseron.core] - -------------------------------------------
viseron  | [2023-01-31 11:12:20] [INFO    ] [viseron.core] - Initializing Viseron
viseron  | [2023-01-31 11:12:20] [INFO    ] [viseron.components] - Setting up component logger
viseron  | [2023-01-31 11:12:20] [INFO    ] [viseron.components] - Setup of component logger took 0.0 seconds
viseron  | [2023-01-31 11:12:20] [INFO    ] [viseron.components] - Setting up component data_stream
viseron  | [2023-01-31 11:12:20] [DEBUG   ] [viseron.watchdog] - Registering <RestartableThread(data_stream, initial daemon)> in the watchdog
viseron  | [2023-01-31 11:12:20] [INFO    ] [viseron.components] - Setup of component data_stream took 0.0 seconds
viseron  | [2023-01-31 11:12:20] [INFO    ] [viseron.components] - Setting up component webserver
viseron  | [2023-01-31 11:12:20] [DEBUG   ] [asyncio] - Using selector: EpollSelector
viseron  | [2023-01-31 11:12:20] [DEBUG   ] [viseron.components.data_stream] - Subscribing to data topic event/domain/registered/camera, <bound method WebServer.camera_registered of <WebServer(Tornado WebServer, initial daemon)>>
viseron  | [2023-01-31 11:12:20] [DEBUG   ] [viseron.components.data_stream] - Subscribing to data topic viseron/signal/shutdown, <bound method WebServer.stop of <WebServer(Tornado WebServer, initial daemon)>>
viseron  | [2023-01-31 11:12:20] [INFO    ] [viseron.components] - Setup of component webserver took 0.0 seconds
viseron  | [2023-01-31 11:12:20] [INFO    ] [viseron.components] - Setting up component nvr
viseron  | [2023-01-31 11:12:20] [INFO    ] [viseron.components] - Setting up component ffmpeg
viseron  | [2023-01-31 11:12:20] [INFO    ] [viseron.components] - Setting up component mqtt
viseron  | [2023-01-31 11:12:20] [INFO    ] [viseron.components] - Setup of component nvr took 0.0 seconds
viseron  | [2023-01-31 11:12:20] [INFO    ] [viseron.components] - Setting up component mog2
viseron  | [2023-01-31 11:12:20] [INFO    ] [viseron.components] - Setup of component ffmpeg took 0.0 seconds
viseron  | [2023-01-31 11:12:20] [INFO    ] [viseron.components] - Setup of component mog2 took 0.0 seconds
viseron  | [2023-01-31 11:12:20] [DEBUG   ] [viseron.watchdog] - Registering <RestartableThread(viseron.components.mqtt.publisher, initial daemon)> in the watchdog
viseron  | [2023-01-31 11:12:20] [DEBUG   ] [viseron.components.data_stream] - Subscribing to data topic viseron/signal/shutdown, <bound method MQTT.stop of <viseron.components.mqtt.MQTT object at 0x7fa1516850>>
viseron  | [2023-01-31 11:12:20] [DEBUG   ] [viseron.components.data_stream] - Subscribing to data topic event/mqtt/entity_added, <bound method HassMQTTInterface.entity_added of <viseron.components.mqtt.homeassistant.HassMQTTInterface object at 0x7fa0489eb0>>
viseron  | [2023-01-31 11:12:20] [INFO    ] [viseron.components] - Setup of component mqtt took 0.0 seconds
viseron  | [2023-01-31 11:12:20] [DEBUG   ] [viseron.components.mqtt] - MQTT connected with returncode 0
viseron  | [2023-01-31 11:12:20] [DEBUG   ] [viseron.components.data_stream] - Subscribing to data topic event/entity_added, <bound method MQTT.entity_added of <viseron.components.mqtt.MQTT object at 0x7fa1516850>>
viseron  | [2023-01-31 11:12:20] [DEBUG   ] [viseron.components.data_stream] - Subscribing to data topic event/state_changed, <bound method MQTT.state_changed of <viseron.components.mqtt.MQTT object at 0x7fa1516850>>
viseron  | [2023-01-31 11:12:21] [INFO    ] [viseron.components] - Setting up domain camera for component ffmpeg with identifier garage
viseron  | [2023-01-31 11:12:21] [INFO    ] [viseron.components] - Setting up domain motion_detector for component mog2 with identifier garage
viseron  | [2023-01-31 11:12:21] [DEBUG   ] [viseron.components] - Domain motion_detector for component mog2 with identifier garage will wait for dependencies ['domain: camera, identifier: garage']
viseron  | [2023-01-31 11:12:21] [INFO    ] [viseron.components] - Setting up domain nvr for component nvr with identifier garage
viseron  | [2023-01-31 11:12:21] [DEBUG   ] [viseron.components] - Domain nvr for component nvr with identifier garage will wait for dependencies ['domain: camera, identifier: garage']
viseron  | [2023-01-31 11:12:21] [DEBUG   ] [viseron.components] - Domain nvr for component nvr with identifier garage will wait for optional dependencies ['domain: motion_detector, identifier: garage']
viseron  | [2023-01-31 11:12:21] [DEBUG   ] [viseron.states] - Adding entity Garage Connected from component ffmpeg
viseron  | [2023-01-31 11:12:21] [DEBUG   ] [viseron.components.data_stream] - Subscribing to data topic event/garage/camera/status, <bound method ConnectionStatusBinarySensor.handle_event of <viseron.domains.camera.entity.binary_sensor.ConnectionStatusBinarySensor object at 0x7fa0338f10>>
viseron  | [2023-01-31 11:12:21] [DEBUG   ] [viseron.states] - Setting state of binary_sensor.garage_connected to state: off, attributes {'name': 'Garage Connected', 'domain': 'binary_sensor'}
viseron  | [2023-01-31 11:12:21] [DEBUG   ] [viseron.states] - Adding entity Garage Connection from component ffmpeg
viseron  | [2023-01-31 11:12:21] [DEBUG   ] [viseron.components.data_stream] - Subscribing to data topic event/garage/camera/start, <bound method CameraConnectionToggle.handle_start_event of <viseron.domains.camera.entity.toggle.CameraConnectionToggle object at 0x7fa0338850>>
viseron  | [2023-01-31 11:12:21] [DEBUG   ] [viseron.components.data_stream] - Subscribing to data topic event/garage/camera/stop, <bound method CameraConnectionToggle.handle_stop_event of <viseron.domains.camera.entity.toggle.CameraConnectionToggle object at 0x7fa0338850>>
viseron  | [2023-01-31 11:12:21] [DEBUG   ] [viseron.components.data_stream] - Subscribing to data topic event/garage/camera/started, <bound method CameraConnectionToggle.handle_started_stopped_event of <viseron.domains.camera.entity.toggle.CameraConnectionToggle object at 0x7fa0338850>>
viseron  | [2023-01-31 11:12:21] [DEBUG   ] [viseron.components.data_stream] - Subscribing to data topic event/garage/camera/stopped, <bound method CameraConnectionToggle.handle_started_stopped_event of <viseron.domains.camera.entity.toggle.CameraConnectionToggle object at 0x7fa0338850>>
viseron  | [2023-01-31 11:12:21] [DEBUG   ] [viseron.states] - Setting state of toggle.garage_connection to state: off, attributes {'name': 'Garage Connection', 'domain': 'toggle'}
viseron  | [2023-01-31 11:12:21] [DEBUG   ] [viseron.components.mqtt] - Subscribing to topic viseron/toggle/garage_connection/command
viseron  | [2023-01-31 11:12:21] [DEBUG   ] [viseron.components.ffmpeg.recorder.garage] - Running cleanup
viseron  | [2023-01-31 11:12:21] [DEBUG   ] [viseron.states] - Adding entity Garage Recorder from component ffmpeg
viseron  | [2023-01-31 11:12:21] [DEBUG   ] [viseron.components.data_stream] - Subscribing to data topic event/garage/recorder/start, <bound method RecorderBinarySensor.handle_start_event of <viseron.domains.camera.entity.binary_sensor.RecorderBinarySensor object at 0x7fa0357e20>>
viseron  | [2023-01-31 11:12:21] [DEBUG   ] [viseron.components.data_stream] - Subscribing to data topic event/garage/recorder/stop, <bound method RecorderBinarySensor.handle_stop_event of <viseron.domains.camera.entity.binary_sensor.RecorderBinarySensor object at 0x7fa0357e20>>
viseron  | [2023-01-31 11:12:21] [DEBUG   ] [viseron.states] - Setting state of binary_sensor.garage_recorder to state: off, attributes {'name': 'Garage Recorder', 'domain': 'binary_sensor'}
viseron  | [2023-01-31 11:12:21] [DEBUG   ] [viseron.states] - Adding entity Garage Latest Thumbnail from component ffmpeg
viseron  | [2023-01-31 11:12:21] [DEBUG   ] [viseron.components.data_stream] - Subscribing to data topic event/garage/recorder/start, <bound method ThumbnailImage.handle_event of <viseron.domains.camera.entity.image.ThumbnailImage object at 0x7fa0364310>>
viseron  | [2023-01-31 11:12:21] [DEBUG   ] [viseron.states] - Setting state of image.garage_latest_thumbnail to state: unknown, attributes {'name': 'Garage Latest Thumbnail', 'domain': 'image', 'start_time': None, 'path': None, 'thumbnail_path': None}
viseron  | [2023-01-31 11:12:21] [DEBUG   ] [viseron.components.ffmpeg.recorder.garage] - Initializing recorder
viseron  | [2023-01-31 11:12:21] [DEBUG   ] [viseron.helpers] - Creating folder /segments/garage
viseron  | [2023-01-31 11:12:21] [DEBUG   ] [viseron.components.data_stream] - Subscribing to data topic viseron/signal/shutdown, <bound method SegmentCleanup.shutdown of <viseron.components.ffmpeg.segments.SegmentCleanup object at 0x7fa0340880>>
viseron  | [2023-01-31 11:12:21] [DEBUG   ] [viseron.components.ffmpeg.camera.garage] - Initializing camera Garage
viseron  | [2023-01-31 11:12:21] [DEBUG   ] [viseron.components.ffmpeg.stream.garage] - Getting stream information for rtsp://*****:*****@<IP_ADDRESS>:554/stream1
viseron  | [2023-01-31 11:12:21] [DEBUG   ] [viseron.components.ffmpeg.stream.garage] - FFprobe command: ffprobe -hide_banner -loglevel error -print_format json -show_error -show_streams rtsp://*****:*****@<IP_ADDRESS>:554/stream1
viseron  | [2023-01-31 11:12:25] [DEBUG   ] [viseron.components.ffmpeg.stream.garage] - Stream information from FFprobe: Width: 1920 Height: 1080 FPS: 15.0 Video Codec: h264 Audio Codec: pcm_alaw
viseron  | [2023-01-31 11:12:25] [WARNING ] [viseron.components.ffmpeg.stream.garage] - Container mp4 does not support pcm_alaw audio codec, using mkv instead. Consider changing extension in your config.
viseron  | [2023-01-31 11:12:25] [DEBUG   ] [viseron.components.ffmpeg.camera.garage] - Resolution: 1920x1080 @ 15.0 FPS
viseron  | [2023-01-31 11:12:25] [DEBUG   ] [viseron.components.ffmpeg.camera.garage] - Camera Garage initialized
viseron  | [2023-01-31 11:12:25] [DEBUG   ] [viseron.core] - Registering domain camera with identifier garage
viseron  | [2023-01-31 11:12:25] [INFO    ] [viseron.components] - Setup of domain camera for component ffmpeg with identifier garage took 3.7 seconds
viseron  | [2023-01-31 11:12:25] [DEBUG   ] [viseron.states] - Adding entity Garage Motion Detected from component mog2
viseron  | [2023-01-31 11:12:25] [DEBUG   ] [viseron.components.data_stream] - Subscribing to data topic event/garage/motion_detected, <bound method MotionDetectionBinarySensor.handle_event of <viseron.domains.motion_detector.binary_sensor.MotionDetectionBinarySensor object at 0x7fa0338ac0>>
viseron  | [2023-01-31 11:12:25] [DEBUG   ] [viseron.states] - Setting state of binary_sensor.garage_motion_detected to state: off, attributes {'name': 'Garage Motion Detected', 'domain': 'binary_sensor'}
viseron  | [2023-01-31 11:12:25] [DEBUG   ] [viseron.watchdog] - Registering <RestartableThread(garage.motion_detection, initial daemon)> in the watchdog
viseron  | [2023-01-31 11:12:25] [DEBUG   ] [viseron.components.data_stream] - Subscribing to data topic motion_detector/garage/scan, <queue.Queue object at 0x7fa0364130>
viseron  | [2023-01-31 11:12:25] [DEBUG   ] [viseron.components.data_stream] - Subscribing to data topic event/garage/nvr/motion_detector/scan, <bound method AbstractMotionDetectorScanner.handle_stop_scan of <viseron.components.mog2.motion_detector.MotionDetector object at 0x7fa0357f10>>
viseron  | [2023-01-31 11:12:25] [DEBUG   ] [viseron.components.data_stream] - Subscribing to data topic viseron/signal/shutdown, <bound method AbstractMotionDetectorScanner.stop of <viseron.components.mog2.motion_detector.MotionDetector object at 0x7fa0357f10>>
viseron  | [2023-01-31 11:12:25] [DEBUG   ] [viseron.core] - Registering domain motion_detector with identifier garage
viseron  | [2023-01-31 11:12:25] [INFO    ] [viseron.components] - Setup of domain motion_detector for component mog2 with identifier garage took 0.0 seconds
viseron  | [2023-01-31 11:12:25] [DEBUG   ] [viseron.components.nvr.nvr.garage] - Initializing NVR for camera Garage
viseron  | [2023-01-31 11:12:25] [DEBUG   ] [viseron.components.data_stream] - Subscribing to data topic motion_detector/garage/result, <queue.Queue object at 0x7fa0491970>
viseron  | [2023-01-31 11:12:25] [INFO    ] [viseron.components.nvr.nvr.garage] - Object detector is disabled
viseron  | [2023-01-31 11:12:25] [DEBUG   ] [viseron.components.data_stream] - Subscribing to data topic garage/camera/frame_bytes, <queue.Queue object at 0x7fa0338d00>
viseron  | [2023-01-31 11:12:25] [DEBUG   ] [viseron.watchdog] - Registering <RestartableThread(<viseron.components.nvr.nvr.NVR object at 0x7fa1531bb0>, initial)> in the watchdog
viseron  | [2023-01-31 11:12:25] [DEBUG   ] [viseron.components.nvr.nvr.garage] - Waiting for first frame
viseron  | [2023-01-31 11:12:25] [DEBUG   ] [viseron.states] - Adding entity Garage Operation State from component nvr
viseron  | [2023-01-31 11:12:25] [DEBUG   ] [viseron.components.data_stream] - Subscribing to data topic event/garage/nvr/operation_state, <bound method OperationStateSensor.handle_event of <viseron.components.nvr.sensor.OperationStateSensor object at 0x7fa0369a60>>
viseron  | [2023-01-31 11:12:25] [DEBUG   ] [viseron.states] - Setting state of sensor.garage_operation_state to state: unknown, attributes {'name': 'Garage Operation State', 'domain': 'sensor'}
viseron  | [2023-01-31 11:12:25] [DEBUG   ] [viseron.components.data_stream] - Subscribing to data topic viseron/signal/shutdown, <bound method NVR.stop of <viseron.components.nvr.nvr.NVR object at 0x7fa1531bb0>>
viseron  | [2023-01-31 11:12:25] [DEBUG   ] [viseron.components.ffmpeg.camera.garage] - Starting capture thread
viseron  | [2023-01-31 11:12:25] [DEBUG   ] [viseron.watchdog] - Registering <RestartableThread(viseron.camera.garage, initial daemon)> in the watchdog
viseron  | [2023-01-31 11:12:25] [DEBUG   ] [viseron.components.ffmpeg.stream.garage] - FFmpeg decoder command: ffmpeg_garage -hide_banner -loglevel error -avoid_negative_ts make_zero -fflags nobuffer -flags low_delay -strict experimental -fflags +genpts -use_wallclock_as_timestamps 1 -vsync 0 -stimeout 5000000 -c:v h264_v4l2m2m -rtsp_transport tcp -i rtsp://*****:*****@<IP_ADDRESS>:554/stream1 -f segment -segment_time 5 -reset_timestamps 1 -strftime 1 -c:v copy -c:a copy /segments/garage/%Y%m%d%H%M%S.mkv -vf fps=1.0 -f rawvideo -pix_fmt nv12 pipe:1
viseron  | [2023-01-31 11:12:25] [INFO    ] [viseron.components.nvr.nvr.garage] - NVR for camera Garage initialized
viseron  | [2023-01-31 11:12:25] [DEBUG   ] [viseron.states] - Setting state of toggle.garage_connection to state: on, attributes {'name': 'Garage Connection', 'domain': 'toggle'}
viseron  | [2023-01-31 11:12:25] [INFO    ] [viseron.components] - Setup of domain nvr for component nvr with identifier garage took 0.1 seconds
viseron  | [2023-01-31 11:12:25] [INFO    ] [viseron.core] - Viseron initialized in 4.9 seconds
viseron  | [2023-01-31 11:12:25] [DEBUG   ] [viseron.components.webserver.websocket_api] - WebSocket opened <viseron.components.webserver.websocket_api.WebSocketHandler object at 0x7fa1531ac0>
viseron  | [2023-01-31 11:12:25] [DEBUG   ] [viseron.components.webserver.websocket_api] - Received {"type":"get_cameras","command_id":1}
viseron  | [2023-01-31 11:12:25] [DEBUG   ] [viseron.components.webserver.websocket_api] - Received {"type":"subscribe_event","event":"domain/registered/camera","command_id":2}
viseron  | [2023-01-31 11:12:25] [DEBUG   ] [viseron.components.webserver.websocket_api] - Received {"type":"subscribe_event","event":"*/recorder/complete","command_id":3}
viseron  | [2023-01-31 11:12:25] [DEBUG   ] [viseron.components.data_stream] - Subscribing to data topic event/domain/registered/camera, <function subscribe_event.<locals>.forward_event at 0x7fa048fa60>
viseron  | [2023-01-31 11:12:25] [DEBUG   ] [viseron.components.data_stream] - Subscribing to data topic event/*/recorder/complete, <function subscribe_event.<locals>.forward_event at 0x7fa035daf0>
viseron  | [2023-01-31 11:12:26] [DEBUG   ] [viseron.states] - Setting state of sensor.garage_operation_state to state: scanning_for_motion, attributes {'name': 'Garage Operation State', 'domain': 'sensor'}
viseron  | [2023-01-31 11:12:28] [DEBUG   ] [viseron.components.webserver.api] - Routing to CameraAPIHandler.get_snapshot(*args=[], **kwargs={'camera_identifier': b'garage'})
viseron  | [2023-01-31 11:12:28] [WARNING ] [tornado.access] - 404 GET /api/v1/camera/garage/snapshot?rand=pbdf3&width=613 (<IP_ADDRESS>) 24.70ms
viseron  | [2023-01-31 11:12:36] [ERROR   ] [viseron.components.ffmpeg.stream.garage] - Error while decoding stream #0:0: Resource temporarily unavailable
viseron  | [2023-01-31 11:12:38] [DEBUG   ] [viseron.components.webserver.api] - Routing to CameraAPIHandler.get_snapshot(*args=[], **kwargs={'camera_identifier': b'garage'})
viseron  | [2023-01-31 11:12:38] [WARNING ] [tornado.access] - 404 GET /api/v1/camera/garage/snapshot?rand=d6rsq&width=613 (<IP_ADDRESS>) 2.37ms
viseron  | [2023-01-31 11:12:47] [DEBUG   ] [viseron.components.webserver.websocket_api] - WebSocket closed
viseron  | [2023-01-31 11:12:47] [DEBUG   ] [viseron.components.data_stream] - Unsubscribing from data topic event/domain/registered/camera, d66977d3-e4cf-4b7e-91f1-ae7711a8c12f
viseron  | [2023-01-31 11:12:47] [DEBUG   ] [viseron.components.data_stream] - Unsubscribing from data topic event/*/recorder/complete, ddd5e392-1811-4393-ab55-7d8263f073f2
viseron  | [2023-01-31 11:12:47] [DEBUG   ] [viseron.components.webserver.websocket_api] - Exiting WebSocket message writer
viseron  | [2023-01-31 11:12:48] [DEBUG   ] [viseron.components.webserver.websocket_api] - WebSocket opened <viseron.components.webserver.websocket_api.WebSocketHandler object at 0x7fa04a84c0>
viseron  | [2023-01-31 11:12:48] [DEBUG   ] [viseron.components.webserver.websocket_api] - Received {"type":"get_cameras","command_id":1}
viseron  | [2023-01-31 11:12:48] [DEBUG   ] [viseron.components.webserver.websocket_api] - Received {"type":"subscribe_event","event":"domain/registered/camera","command_id":2}
viseron  | [2023-01-31 11:12:48] [DEBUG   ] [viseron.components.webserver.websocket_api] - Received {"type":"subscribe_event","event":"*/recorder/complete","command_id":3}
viseron  | [2023-01-31 11:12:48] [DEBUG   ] [viseron.components.data_stream] - Subscribing to data topic event/domain/registered/camera, <function subscribe_event.<locals>.forward_event at 0x7fa035daf0>
viseron  | [2023-01-31 11:12:48] [DEBUG   ] [viseron.components.data_stream] - Subscribing to data topic event/*/recorder/complete, <function subscribe_event.<locals>.forward_event at 0x7fb5d6d9d0>
viseron  | [2023-01-31 11:12:48] [DEBUG   ] [viseron.components.webserver.api] - Routing to CameraAPIHandler.get_snapshot(*args=[], **kwargs={'camera_identifier': b'garage'})
viseron  | [2023-01-31 11:12:48] [WARNING ] [tornado.access] - 404 GET /api/v1/camera/garage/snapshot?rand=058na&width=613 (<IP_ADDRESS>) 2.78ms
viseron  | [2023-01-31 11:12:58] [DEBUG   ] [viseron.components.webserver.api] - Routing to CameraAPIHandler.get_snapshot(*args=[], **kwargs={'camera_identifier': b'garage'})
viseron  | [2023-01-31 11:12:58] [WARNING ] [tornado.access] - 404 GET /api/v1/camera/garage/snapshot?rand=z429hl&width=613 (<IP_ADDRESS>) 2.72ms

Are you running on an rpi4?
Seems to be an issue with the hardware acceleration. Does it work if you set codec: h264 for the camera?

I upgraded ffmpeg to 5.1.2 which potentially fixes this issue.
It is now built into the dev tag, do you have the time to try if that works for you without setting the codec in your config?


Support setting of Saucelabs session name

I've got protractor up and running with Saucelabs using the following config:
var config = {
  sauceUser: process.env.SAUCELABS_USER,
  sauceKey: process.env.SAUCELABS_KEY
};

This is all working fine but the query I have is I don't appear to be able to set the name of the Saucelabs session hence we end up with the following:

Would it be possible to add support for this, maybe via a sauceSession config parameter?
Something like the following would work nicely for us:
var pkg = require('./package');
var config = {
  sauceSession: pkg.name + '@' + pkg.version
};

Thanks :smile:

Hi @joshhornby , did you find a way to send the name of the test to Saucelabs? I am looking for a similar thing.


Developer portal access with private endpoint.

WE tested this scenario out and one thing we noticed was that the developer portal is still available from the public IP , even after disabling the Public IP. is this expected behavior?  any options to disable the public access and only have the developer portal available internally?
Thanks?

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

ID: c325024b-11a3-3d9f-59d6-f30c847f8d62
Version Independent ID: 979a8487-b62a-2ada-4714-1686fd77e0f9
Content: Set up private endpoint for Azure API Management Preview
Content Source: articles/api-management/private-endpoint.md
Service: api-management
GitHub Login: @dlepow
Microsoft Alias: danlep

@RavSalgado That is expected behavior. private endpoint is only available for gateway endpoint. Dev-portal will be on public IP.
We will now proceed to close this thread. If there are further questions regarding this matter, please reopen it and we will gladly continue the discussion.


Created consolidated third party config file

While looking into upgrading the Facebook SDK I noticed that some of our third-party configs were in code - I consolidated them into a separate file

Whoops, wrong repo :)


removing etag and adjusting cache-control headers

Fixes #708, fixes #699
Had to reorder mw a little to ensure that things were applied in the proper order. Additionally, I removed the Expires header, as without ETag, it shouldn't be necessary any more.

It seems the static files still have ETag set.

Also, I do believe we should set Expires too along with Last-Modified (lastModified expressjs option) for HTML.

I added a couple more patches @jmervine. Ideally I guess I should make a new PR, but you know :p

So from my suggestions above, only Last-Modified is left for HTML to add.

I wonder if we could just use https://github.com/h5bp/server-configs-node.

I left the Etag on the static assets because they're not served through the cdn. Not while we're using s3.

These all look good. I think Travis is failing because of bootlint minify changes. Merge that and rebase and it should be good.


Upgrade pycharm to 5.0

Caveats section removed since this version bundles its jdk.

Thank you for the contribution. It was merged directly as 66121c291f86466d3b80b8a8aa6d0b2e67229c7a to keep commit history cleaner. Your contribution is still credited to you.


Make testapp default style to latest

Not ready for review yet

/azp run

/azp run

Is there any documentation on how to switch the styles when developing? I wasn't able to find anything in the docs folder.

Is there any documentation on how to switch the styles when developing? I wasn't able to find anything in the docs folder.

Is there any documentation on how to switch the styles when developing? I wasn't able to find anything in the docs folder.

I change a line of code in two files, I have no idea if its the correct way.
I would assume WinUI 2.5 would be branched off and use the older styles, and newer builds using Latest

Is there any documentation on how to switch the styles when developing? I wasn't able to find anything in the docs folder.

I change a line of code in two files, I have no idea if its the correct way.
I would assume WinUI 2.5 would be branched off and use the older styles, and newer builds using Latest

I change a line of code in two files, I have no idea if its the correct way.

I had to search for the correct files too and changed it in weird places but not sure if that was the best way either.

I would assume WinUI 2.5 would be branched off and use the older styles, and newer builds using Latest

Isn't the idea that we have those two styles side by side in one branch with separate files?

I change a line of code in two files, I have no idea if its the correct way.

I had to search for the correct files too and changed it in weird places but not sure if that was the best way either.

I would assume WinUI 2.5 would be branched off and use the older styles, and newer builds using Latest

Isn't the idea that we have those two styles side by side in one branch with separate files?

/azp run

/azp run

/azp run

/azp run

Is there any documentation on how to switch the styles when developing? I wasn't able to find anything in the docs folder.

I change a line of code in two files, I have no idea if its the correct way.
I would assume WinUI 2.5 would be branched off and use the older styles, and newer builds using Latest

<XamlControlsResources Version="Latest" /> should give you the new set of styles. Note that this is still very much work in progress.

Is there any documentation on how to switch the styles when developing? I wasn't able to find anything in the docs folder.

I change a line of code in two files, I have no idea if its the correct way.
I would assume WinUI 2.5 would be branched off and use the older styles, and newer builds using Latest

<XamlControlsResources Version="Latest" /> should give you the new set of styles. Note that this is still very much work in progress.


Test code validations

Depends on #446
The new file in this PR is __tests__/code_validations.test.js All others are from #446.
Tests

Can't generate a code without selecting a diagnosis type
Can't input dates more than 14 days in the past or in the future
Clicking the  "Generate Code" button calls the correct function in the backend

To fix the “An update to wrappedComponent...” Warning, see Line 36 of reset-password.test.js from the reset password test PR. That resolved this warning in other tests, I forgot to add it here.  The other warnings I’ve seen as well and not sure how to resolve so we can look into it!


The meaning of turk_label?

Hi,
Thanks for releasing the code!
I have a question about the meaning of turk_label in eQASC. For example, in explore_data.ipynb, there are a few different values for turk_label:

{"label": "yes"}
{"label": "no"}
{"label": "?"}
{"label": "fact1"}

If I understand correctly, "yes" and "no" just mean whether the reasoning step is valid. But what do "?" and "fact1" mean? Thank you!

'fact1' or 'fact2' means that only fact alone can explain the answer.
'?' implies that the annotators disagreed (we treat such chains as a 'no' in the experiments).


fix: 简单变量绑定面板位置超出修复

定位结束后判断是否展示超出可视区，进行调整。

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.lizhi.lzp seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.


Multibrowser live preview not updating

When I click on the live preview button it just stays on half lighting bolt and opens Firefox, but when I type nothing happens.

Developer console content
I'm Using Ubuntu 12.04 32bit.

@thediex09  Can you try Debug > Reload without extensions to rule out any extension related issues.


Use Debian LTS Packages in Stretch (suggestion)

Wouldn't it be best to automatically include the LTS repository for Debian Stretch (found here) in the /etc/apt/sources.list for the security updates?

Ooh yeah, looks like the logic for including the updates and security repos for debian hasn't been updated since jessie.


[DC-206] Add utility to help expose test flakiness

This PR does two things

Creates a utility to help determine whether a test has flakiness

The utility will run the tests n number of times with  i tests being run in parallel.
The results of each test is recorded
If any test fails, the test will fail
This utility is meant to be used as a dev tool only - not run with automated tests

Corrects an issue with an existing test that was identified as flaky by circle ci

The utility was used to definitively identify where the flake occurred in the run-catalog-filter test
I have run this against a few other tests and have identified some other areas of flakiness around workspace creation and deletion.
This is in an effort to correct for the fact that there have been flaky tests running in this system for years

Could you add a note on how to run this in the readme?

Added ticket: DC-209 to improve the logging output as a next step

It'd be very helpful to also log how many times a particular error signature is encountered, not necessarily as part of this PR.

@petesantos  Pete THANKS so much for adding this utility. We should publicize it on terra UI champions channel.


Dev Gene page is broken as the table does not render

The table shown on the page https://dev--genetics-app.netlify.com/gene/ENSG00000204084 does not render. The API call works as follow
query asdf {
  studiesForGene(geneId:"ENSG00000204084") {
    study {
      studyId
      traitReported
      traitEfos
      pmid
      pubDate
      pubJournal
      pubTitle
      pubAuthor
      ancestryInitial
      ancestryReplication
      nInitial
      nReplication
      nCases
      traitCategory
      numAssocLoci
    }
  }
}

latest dev API endpoint

This is failing because the search query doesn't recognise ENSG00000204084, which happens before the studiesForGene query is called. @mkarmona, can you check why search isn't working for this gene?

oohh! thanks! I know search isn't working for dev env but I thought it would work partially. Don't worry about it I will be fixing the search soon.

@peatroot can we close this as resolved?

Yes.


Any Plan to add Web Series?

hello bro,
Any idea in scrapping this to create an addon for stremio?
https://tamilblade.com/
TIA

This is a nice site. But this is HTTP streams. Unlike torrents, there might be restrictions. We'll see later.


elm/browser upgrade

Jus a small PR to upgrade elm/browser to its latest version, which has the new Elm debugger :)

Hey @bigardone ! 👋
I plan to use the latest browser version for the next release.
I appreciate the PR, and would merge it, but I've done a bit of refactoring, so it's easier just to bump it myself.
I look forward to having the newer debugger in elm-spa
Thanks again,
Ryan

@ryannhg no problem! Looking forward to the new release 👏


Evaluate usage of publish-please

We decided to use publish-pleasebased on experience with it at the time this project was created. As the NPM ecosystem has matured in that time, it seems sensible to (re)evaluate the use of publish-please over just using yarn publish.

Using yarn instead of NPM is already defined in #4 and may have an impact on whether publish-please is still necessary.

The investigation into using GH Actions for publishing (#6) may preclude the usage of publish-please in the future.

The change to GH Actions does mean that publish-please is no longer needed. Additionally, yarn provides its own publish commands. I'll remove publish-please.

Closed in #14


Enabling monitoring didn't install the plugin on the nodes

I am using the 2.3.1 version of the operator after upgrading from 2.2.1 (had to do 2.3.0 in the middle to get it to work right)
I followed the instructions at the bottom of the readme to setup the monitoring for the cluster.
It says
"If enabled the operator will install the aiven plugin into the opensearch pods and generate a Prometheus ServiceMonitor object to configure the plugin for scraping."
The service monitor is there.  The config on the opensearch operator has the monitoring section as expected and all that.
But the plugin is not on the nodes.  (not in the plugins dir on the nodes, and the nodes say there is no handler for /_prometheus/metrics).
I tried to read through the PR that added this feature, and I didn't see anything that would seem like it would trigger an install, but I don't know much go, so I could easily have miss it.
Is it expected to update an existing cluster? Or only for a new nodes?

Hi @RandellP. The monitoring feature should also work for existing clusters. My expectation is that the operator performs a rolling restart of all nodes to apply the new config and install the plugin. The trigger happens generically by the operator updating the StatefulSet and then detecting that the pods are not up-to-date.
Can you please check the statefulsets of the nodepool and verify the following?:

is the prometheus plugin part of the opensearch container command?
is status.updatedReplicas equal to the configured number of replicas?
Is the Opensearch version the expected one?

Also can you please check the operator logs for any errors and the opensearchcluster custom object status if a rollingRestart is in progress?

@swoehrl-mw   This is interesting.  The statefulset just runs an sh script that looks like it must be built into the image.  And that script sets up the security plugin and a performance analyzer.  I don't see anything that would dynamically pull in a plugin either.
And more importantly, the SS age is 6days while I did the changes yesterday.  So I don't think it got the update.
opensearch:
    Image:       docker.io/opensearchproject/opensearch:2.5.0
    Ports:       9200/TCP, 9300/TCP
    Host Ports:  0/TCP, 0/TCP
    Command:
      /bin/bash
      -c
      ./opensearch-docker-entrypoint.sh

The status.updateReplicas does match the number of data nodes.
The opensearch version hasn't changed as part of this upgrade, and it is what is expected to be.
The operator logs show no issues and in fact report that "resource is in sync" for the stateful set.  The logs did find a diff on the deployment for the dashboard and reported it being updated and now being in sync.
And the image for the operator is 2.3.1 so it got updated.
So looking at the stateful set, I am not sure what update the operator should be doing.  The sh script doesn't appear to take any arguments, and the image seems tied to the database version.
Is it that the db version of 2.5.0 has to be updated as well as the operator version to support the monitoring?

Hi @RandellP. Found the problem. There was a bug in the initial implementation of the monitoring feature that lead to the plugin not being installed on the nodes. The fix is already on main but not yet in a release (issue #487, PR #490).

Great, thanks for finding and fixing it.  I will do a manual install of the plugin and work form that until the release.

@swoehrl-mw So I got sidetracked and the release came out before I manually installed the plugins.  So I updated the operator to the new release.  Then applied the change to enable monitoring.  This time it detected a diff in the deployment for the dashboard and updated that.  But nothing for the nodes.  And looking in the plugins dir on the nodes, I don't see anything that looks like monitoring.

This fix is part of release 2.4.0 in case someone was waiting for this like me.


failed to build an environment to run the geoformer model

Regarding this version combination,  it can't be installed, is there a better one for installing?

Hi LengyanReader,
These are the official installation instructions for PyTorch. If you encounter any issues, it might be worth checking whether your GPU supports the version of CUDA you're trying to use. Additionally, I recommend trying out mamba for installation, as it can often provide a smoother and faster installation experience.
Best regards,
Yusong


How to customize drawer button in routerFlux 4.0

I open new issue related with  #1078
but in the routerFlux 4.0
In Drawer component:
componentDidMount() { Actions.refresh({key: 'drawer', ref: this.refs.navigation}); }
In Button component:
onPress={() => {Actions.get('drawer').ref.toggle()}}
i can't use this :|
get this error:
_reactNativeRouterFlux.Actions.get is not a function
"react": "16.0.0-beta.5",
"react-native": "0.49.1",
"react-native-router-flux": "^4.0.0-beta.21"

In the version 4 you don't actually need to do it. You can actually just call actions Actions.drawerOpen or Actions.drawerClose.

Thank you for the answer
it works fine @daviscabral

hey @daviscabral can you help me?
I can add this line in Button componenet
const sidebarButton = () => {
    return (
      <TouchableHighlight
        onPress={() => { Actions.drawerOpen(); }} underlayColor="black"
      >
          <Image
          style={styles.menuIconStyle}
          source={
            require('./Menu/menu.png')}
          />
       </TouchableHighlight>
    );
};

but it is not work for me. Menu is not open. I add NavigationDrawer componenet.
How can I fix it?
class NavigationDrawer extends React.Component {
  componentDidMount() {
    Actions.refresh({ key: 'test', ref: this.refs.navigation });
  }

  render() {
    const state = this.props.navigationState;
    const children = state.children;
    return (
      <Drawer
        ref="navigation"
        type="displace"
        onOpen={() => Actions.refresh({ key: state.key, open: true })}
        onClose={() => Actions.refresh({ key: state.key, open: false })}
        content={<MenuItems />}
        tapToClose
        openDrawerOffset={0.4}
        // panCloseMask={0}
        // negotiatePan
        tweenHandler={(ratio) => ({
          main: { opacity: Math.max(0.54, 1 - ratio), transforMatrix: 0.5 },
        })}
      >
        <DefaultRenderer navigationState={children[0]} onNavigate={this.props.onNavigate} />
      </Drawer>
    );
  }
}

@yasinugrl can you put your router here and say react-native version ?

"react-native": "0.49.3",
const RouterComponent = () => {
  return (
    <Router
        navigationBarStyle={styles.navBar}
        titleStyle={styles.navTitle}
        createReducer={reducerCreate}
    >
          <Scene key="Main" component={NavigationDrawer}>
            <Scene
                sceneStyle={styles.mainScreen}
                key="MainTap"
                component={Home}
                renderLeftButton={sidebarButton}
                renderRightButton={rightButton}
                renderTitle={() => { return <AppLogo />; }}
                inital
                type="replace"
                // title="Öğrenci Listesi"
            />

          </Scene>
  </Router>
    );
};

I also new in router-flux but why your router not have key = "root"
Could this be the source of the problem?
"react": "16.0.0-beta.5",
"react-native": "0.49.1",
"react-native-router-flux": "^4.0.0-beta.21"

can you share with me your Router file for drawer button?

`
<Drawer
    key="drawer"
    contentComponent={MenuPage}
  >
    <Overlay>
      <Modal hideNavBar>

        <Lightbox>
          <Stack hideNavBar >
            <Scene key="firstLoad" component={FirstLoad} title="Please Login" initial />
            <Scene key="startApp" component={StartApp} title="Start app" panHandlers={null}/>
            <Scene key="signUp" component={SignUp} title="Please Sign up" panHandlers={null}/>
            <Scene key="login" component={Login} title="Please Login" panHandlers={null}/>
            <Scene key="forgetPassword" component={ForgetPassword} title="Forget password" panHandlers={null}/>

          </Stack>
        </Lightbox>

        <Stack hideNavBar >
          <Scene key="testPage" component={TestPage} title="Species List" />
          <Scene key="observationNewRoot" component={ObservationNewRoot} title=" Observation Root" panHandlers={null}/>

        </Stack>
      </Modal>
    </Overlay>
  </Drawer>
</Router>`

and this is my button for open Drawer
`<TouchableOpacity onPress={()=>{Actions.drawerOpen()}}>
        </TouchableOpacity>`

Actually this is very different my code. Can you share router.js file for me. I dont know Drawer Modal Lightbox Stack Component import where?

Hey guys, sorry - I was a bit busy lately. You should import those components from RNRF, so you can use them the way @bkniya used.
It seems you cannot open your drawer, cause it is not being loaded in the right way. Instead, use the Drawer one.
By the way, are you using v3 or v4? This way that you are using, makes me think that you are mixing v3 and v4.

Hi everyone,
Can you know that how to set openDrawerOffset with


Bond Market Capacity in table should show remaining market capacity not max payout

Currently we show max payout in the bond table, not remaining capacity on that specific bond market. This change moves the table view to showing remaining market capacity, as the column is labeled.
Max Payout is still displayed on the individual bond modals.
I think we should either make this proposed change, or change the column label from 'Capacity' to 'Max Payout' to bring clarity to the value displayed here.
Before:

After:

Reverted previous change and switched column label from 'capacity' to 'max payout'


Not showing any errors or warning in scala code

Hi,
I've installed Ale on neovim, it shows linting and syntax problems in both Haskell, and PHP, but for Scala, it doesn't seem to do anything, even though I have both scalac (2.12.3) and scalastyle (1.0.0) installed.
Bellow is the output of :ALEInfoToClipboard
 Current Filetype: scala
Available Linters: ['scalac', 'scalastyle']
  Enabled Linters: ['scalac', 'scalastyle']
 Linter Variables:

let g:ale_scala_scalastyle_options = ''
 Global Variables:

let g:ale_echo_cursor = 1
let g:ale_echo_msg_error_str = 'Error'
let g:ale_echo_msg_format = '%s'
let g:ale_echo_msg_warning_str = 'Warning'
let g:ale_enabled = 1
let g:ale_fix_on_save = 0
let g:ale_fixers = {}
let g:ale_keep_list_window_open = 0
let g:ale_lint_delay = 200
let g:ale_lint_on_enter = 1
let g:ale_lint_on_save = 1
let g:ale_lint_on_text_changed = 'always'
let g:ale_linter_aliases = {}
let g:ale_linters = {'scala': ['scalac', 'scalastyle']}
let g:ale_open_list = 0
let g:ale_set_highlights = 1
let g:ale_set_loclist = 1
let g:ale_set_quickfix = 0
let g:ale_set_signs = 1
let g:ale_sign_column_always = 0
let g:ale_sign_error = '>>'
let g:ale_sign_offset = 1000000
let g:ale_sign_warning = '--'
let g:ale_statusline_format = ['%d error(s)', '%d warning(s)', 'OK']
let g:ale_warn_about_trailing_whitespace = 1
  Command History:

(executable check - success) scalac
(started) ['/bin/bash', '-c', '''scalac'' -Ystop-after:parser ''/tmp/nvimqMf0jQ/2/Config.scala''']
(executable check - success) scalastyle
(started) ['/bin/bash', '-c', 'scalastyle ''/tmp/nvimqMf0jQ/4/Config.scala''']
(finished - exit code 0) ['/bin/bash', '-c', '''scalac'' -Ystop-after:parser ''/tmp/nvimqMf0jQ/7/Config.scala''']

<<<NO OUTPUT RETURNED>>>

(finished - exit code 1) ['/bin/bash', '-c', 'scalastyle ''/tmp/nvimqMf0jQ/8/Config.scala''']

<<<OUTPUT STARTS>>>
scalastyle 1.0.0
Usage: scalastyle [options] <source directory>
 -c, --config FILE               configuration file (required)
 -v, --verbose true|false        verbose output
 -q, --quiet true|false          be quiet
     --xmlOutput FILE            write checkstyle format output to this file
     --xmlEncoding STRING        encoding to use for the xml file
     --inputEncoding STRING      encoding for the source files
 -w, --warnings true|false       fail if there are warnings
 -e, --externalJar FILE          jar containing custom rules
 -x, --excludedFiles STRING      regular expressions to exclude file paths (delimitted by semicolons)
<<<OUTPUT ENDS>>>

 -c, --config FILE               configuration file (required)
scalastyle prints that, so I guess it's required.

See :help ale-scala-options. It looks like scalastyle requires you to define a configuration file. Maybe someone could make the scalastyle show an error when no configuration file was found.

For scalac, it looks like it ran and returned no output. Maybe try creating a syntax error, and see if it says anything.

Thanks, it's working now. I'll document here what happened to me in case someone else comes across the same situation:
ok, so there were a few things that confused me a bit here. Initially I had no configurations for which linters would be used, I thought they would be defined by default. I think at that point I actually had no linters running, so it didn't catch syntax errors.
Maybe this happened not because there are no default linters but because I had to specify custom linters for haskell, as ale was trying to use ghc,  which was reporting all dependencies as missing always (I'm on arch and the arch haskell packages got massively broken recently). To solve this I had did this:
let g:ale_linters = {'haskell': ['stack-ghc', 'ghc-mod', 'hlint', 'hdevtools']}
which might have undefined all the other linters for other languages.
Just before I posted the problem here, I tried changing my configuration to the following:
let g:ale_linters.haskell = ['stack-ghc', 'ghc-mod', 'hlint', 'hdevtools']
I also did something similar for scala, which I expect, now that I seem to understand a bit better what's going on, I probably don't really need:
let g:ale_linters.scala = ['scalac', 'scalastyle']
After this I experimented again, but this time I actually just did something that would get scalastyle to complain, but not scalac. And that's when I submitted the above log.
The default comment on the issue submission actually got me on track to the solution, by mentioning :ALEInfo, so I started looking about to see why scalastyle was failing, and figured that it was missing some required parameters, and the obvious suspect was the configuration file. But I don't control which parameters ale calls scalastyle with so I got a bit stuck on that one.
Then I got a scalastyle sample configuration from the official website, and put it in the the project root with the name scalastyle_config.xml and ale picked up on that file and started calling scalastyle with the -c parameter which solved the problem.

Actually, as I was writing this and thinking about making a PR updating the documentation, I found that this is actually already documented in here: https://github.com/w0rp/ale/blob/master/doc/ale-scala-scalastyle.txt

Thank you for your notes. I'll make a note to update whatever parts of the documentation appropriately later.

I made some changes so ALE will report a problem at line 1 when no configuration file is found for scalastyle. The message will direct you to documentation which will tell you how to either disable the scalastyle linter, or how to set a configuration file.


Downgrade github.com/urfave/cli to v1

Fixes #1285.
In #1233 we upgraded github.com/urfave/cli from v1 to v2. There was no functional need for the upgrade, it was just about bumping our dependencies and continuing to slowly adopt go modules.
However, I overlooked that v2 changed some rules for ordering of flags and arguments. From the upgrade guide:

In v2 flags must come before args. This is more POSIX-compliant. You may need to update scripts, user documentation, etc.
This will work:
cli hello --shout rick

This will not:
cli hello rick --shout

We're not keen on breaking our users scripts, so let's rollback to v1. There's an open issue upstream about the new ordering rules. We'll keep an eye on that, and maybe re-try the upgrade if it becomes possible to do so in a non-breaking way
This is mostly a revert of PR #1233, but with a few extra changes to things that happened after that PR (like adding the artifact search subcommand).

It's possible to upgrade to the latest v1 release, which uses go modules. I've held off on that fro now though, and stuck with a pure rollback.
Here's what that upgrade would look like.
$ go get github.com/urfave/cli
go: github.com/urfave/cli upgrade => v1.22.4
[jh@tak agent (rollback-ufave-cli-upgrade)]$ git diff
diff --git a/go.mod b/go.mod
index ff1dfbb3..6af3a340 100644
--- a/go.mod
+++ b/go.mod
@@ -26,7 +26,7 @@ require (
        github.com/qri-io/jsonschema v0.0.0-20180607150648-d0d3b10ec792
        github.com/sergi/go-diff v1.0.0 // indirect
        github.com/stretchr/testify v1.5.1
-       github.com/urfave/cli v0.0.0-20180226030253-8e01ec4cd3e2
+       github.com/urfave/cli v1.22.4
        golang.org/x/crypto v0.0.0-20200302210943-78000ba7a073
        golang.org/x/oauth2 v0.0.0-20181003184128-c57b0facaced
        golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f // indirect

https://github.com/buildkite/agent/releases/tag/v3.23.1


Make module configurations loosely coupled

Problem or enhancement idea
Hinode supports various modules to enhance its functionality. These modules include core functionality, such as core Bootstrap ](https://getbootstrap.com/) , FlexSearch , and Font Awesome. Other modules such as Leaflet and KaTeX can be included on a page-by-page basis.
The module configuration is defined in the site's parameters. It consists of a mix of general parameters and module-specific parameters. The current configuration is not fully modular. For example, the disableTemplate setting is an array of one or more values that need to be refined for each module that is added or removed from the module configuration.
Proposed solution
The module configuration should be shifted to the configuration of the individual modules. You would only have to modify [[module.imports]], as the reference module would include sensible default values. You could still override these default settings in the site's settings.
For example, the current module configuration of KaTeX is the following:
[modules]
    core = ["bootstrap", "flexsearch", "fontawesome"]
    optional = ["leaflet", "katex", "lottie"]
    excludeSCSS = ["bootstrap"]
    disableTemplate = ["katex"]
    [modules.katex]
        state = "defer"

The values core, optional, excludeSCSS, and disableTemplate would be shifted to the individual modules. The new configuration would be the following:
[modules]
    [modules.katex]
        integration = 'optional' // 'core' | 'critical' | 'optional'
        disableTemplate = true
        state = "defer"
    [...]

Alternatives
N/A
Additional context
See https://github.com/gethinode/hinode/discussions/944#discussioncomment-9532406 for more background.

👍

@peters-r the feature has been released in v0.24.0-beta2. I'm doing some final integration tests, but so far, so good.

Released in v0.24.0


Fix TileMap layer loading

Fixes #53098

Unfortunately this does not work. If you add any tiles, this is spammed in the console:
ERROR: Condition "p_elem->_root != this" is true.
   at: SelfList<struct TileMapQuadrant>::List::remove (C:\godot_source\core/templates/self_list.h:80)

Putting as draft for now.

Thanks!


Adding la Cite Collegiale Domain

Please add La Cite Collegiale - the French College in Ottawa Ontario

the web site domain is : https://www.collegelacite.ca/
but the used domain for emails (lacitec.on.ca) is : https://ecite.lacitec.on.ca/d2l/home
as a proof in the link bellow you can notice at the bottom of the page the registration email with the new domain<EMAIL_ADDRESS>https://www.collegelacite.ca/inscription.htm?utm_campaign=rev5159&utm_medium=menu&utm_source=internal

@BELAGGOUN Pull request merged. Thank you!


fix: screen transition not fading when transitioning from sign up to login

The type of this PR is: Bugfix

Description

Fix screen transition not fading when transitioning from Sign up to login
Clear timeout when the user immediately navigates back to the welcome screen after they navigate to the login screen

PR Checklist (tick all before merging)

[x] I have included screenshots or videos to illustrate my changes, or I have not changed anything that impacts the UI.
[x] I have added tests for my changes, or my changes don't require testing, or I have included a link to a separate Jira ticket covering the tests.
[x] I have documented any follow-up work that this PR will require, or it does not require any.
[x] I have added an app state migration, or my changes do not require one. (What are migrations?)
[x] I have added a CHANGELOG.yml entry or my changes do not require one.

LGTM 🚢
Shall we add a changelog entry?

oh sure!