Issues on compilation

Hello
First of all, I really appreciate your efforts to maintain this nice repo!
I am seeing an issue while compiling the code:
root@d6aed4c55c15:/workspace# catkin_make -DCMAKE_BUILD_TYPE=Release
Base path: /workspace
Source space: /workspace/src
Build space: /workspace/build
Devel space: /workspace/devel
Install space: /workspace/install
####
#### Running command: "cmake /workspace/src -DCMAKE_BUILD_TYPE=Release -DCATKIN_DEVEL_PREFIX=/workspace/devel -DCMAKE_INSTALL_PREFIX=/workspace/install -G Unix Makefiles" in "/workspace/build"
####
-- Using CATKIN_DEVEL_PREFIX: /workspace/devel
-- Using CMAKE_PREFIX_PATH: /opt/ros/melodic
-- This workspace overlays: /opt/ros/melodic
-- Found PythonInterp: /usr/bin/python2 (found suitable version "2.7.17", minimum required is "2")
-- Using PYTHON_EXECUTABLE: /usr/bin/python2
-- Using Debian Python package layout
-- Using empy: /usr/bin/empy
^L-- Using CATKIN_ENABLE_TESTING: ON
-- Call enable_testing()
-- Using CATKIN_TEST_RESULTS_DIR: /workspace/build/test_results
-- Found gtest sources under '/usr/src/googletest': gtests will be built
-- Found gmock sources under '/usr/src/googletest': gmock will be built
-- Found PythonInterp: /usr/bin/python2 (found version "2.7.17")
-- Using Python nosetests: /usr/bin/nosetests-2.7
-- catkin 0.7.29
-- BUILD_SHARED_LIBS is on
-- BUILD_SHARED_LIBS is on
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- ~~  traversing 10 packages in topological order:
-- ~~  - mpi_cmake_modules (plain cmake)
-- ~~  - pinocchio_bullet (unknown)
CMake Warning at /opt/ros/melodic/share/catkin/cmake/catkin_workspace.cmake:89 (message):
  Unknown build type 'ament_python' for package 'pinocchio_bullet'
Call Stack (most recent call first):
  CMakeLists.txt:69 (catkin_workspace)

-- ~~  - pybind11_vendor (plain cmake)
-- ~~  - solver
-- ~~  - solver_lqr
-- ~~  - momentumopt
-- ~~  - robot_properties_bolt (unknown)
CMake Warning at /opt/ros/melodic/share/catkin/cmake/catkin_workspace.cmake:89 (message):
  Unknown build type 'ament_python' for package 'robot_properties_bolt'
Call Stack (most recent call first):
  CMakeLists.txt:69 (catkin_workspace)

-- ~~  - robot_properties_solo (unknown)
CMake Warning at /opt/ros/melodic/share/catkin/cmake/catkin_workspace.cmake:89 (message):
  Unknown build type 'ament_python' for package 'robot_properties_solo'
Call Stack (most recent call first):
  CMakeLists.txt:69 (catkin_workspace)

-- ~~  - robot_properties_teststand (unknown)
CMake Warning at /opt/ros/melodic/share/catkin/cmake/catkin_workspace.cmake:89 (message):
  Unknown build type 'ament_python' for package 'robot_properties_teststand'
Call Stack (most recent call first):
  CMakeLists.txt:69 (catkin_workspace)

-- ~~  - yaml_utils (plain cmake)
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CMake Error at /opt/ros/melodic/share/catkin/cmake/catkin_workspace.cmake:100 (message):
  This workspace contains non-catkin packages in it, and catkin cannot build
  a non-homogeneous workspace without isolation.  Try the
  'catkin_make_isolated' command instead.
Call Stack (most recent call first):
  CMakeLists.txt:69 (catkin_workspace)

-- Configuring incomplete, errors occurred!
See also "/workspace/build/CMakeFiles/CMakeOutput.log".
See also "/workspace/build/CMakeFiles/CMakeError.log".
Invoking "cmake" failed

I've also tried with catkin_make_isolated but didn't work.
I am testing this with this docker image.
Any helps would be appreciated.
Thanks!

Hi @junhyeokahn , we are currently in the process of switching to ROS2. This package is not converted to ROS2 yet, but our other packages are. That's why you are running in these issues.
Work for converting the package to ROS2 is on the way and hopefully be done soon (see issue #34 ).


Failed to connect with Vernemq Container through mqttnet client

Hi,
I'm new to vernemq, facing issue to connect with vernemq running container inside ubuntu 18.04
Environment
VerneMQ Version: 1.10.3
-Created the Vernemq container using : docker run -it -p 1886:1883 -v shared:/mnt -d --name vernemq1 -e "DOCKER_VERNEMQ_ACCEPT_EULA=yes" vernemq/vernemq
The container is up and running
-Configuration Changes are as follow:
accept_eula=yes
allow_anonymous = off
listener.ssl.cafile = ./etc/cacerts.pem
listener.ssl.certfile =./etc/cert.pem
listener.ssl.keyfile = ./etc/key.pem
listener.ssl.require_certificate = on
listener.ssl.use_identity_as_username = on
listener.ssl.tls_version = tlsv1.2
plugins.vmq_passwd = off
plugins.vmq_acl = on
plugins.vmq_diversity = off
I have deployed a dotnet code (core 3.1) inside ubuntu machine which uses mqttnet library. Its working fine with allow_anonymous=on for connecting without any authentication.
But when tried to connect with authorization and authentication with above mentioned configuration its giving the error like this: "Authentication failed because the remote party has closed the transport stream." when tried to catch exception. Generated the certificates using openssl.
And i have tried to connect to port using curl as well - curl -vvv https://localhost:1886 got the error as:
Rebuilt URL to: https://localhost:1886/
Trying <IP_ADDRESS>...
TCP_NODELAY set
Connected to localhost (<IP_ADDRESS>) port 1886 (#0)
ALPN, offering h2
ALPN, offering http/1.1
successfully set certificate verify locations:
CAfile: /etc/ssl/certs/ca-certificates.crt
CApath: /etc/ssl/certs
TLSv1.3 (OUT), TLS handshake, Client hello (1):
OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to localhost:1886
stopped the pause stream!
Closing connection 0
curl: (35) OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to localhost:1886
i have used TLS 1.2.
This is mqttnet client code:
using MQTTnet;
using MQTTnet.Client;
using MQTTnet.Client.Options;
using System;
using System.Collections.Generic;
using System.IO;
using System.Security.Cryptography;
using System.Security.Cryptography.X509Certificates;
using System.Security.Authentication;
namespace WithCertificate
{
class Program
{
public static void Main(string[] args)
{
var factory = new MqttFactory();
var mqttClient = factory.CreateMqttClient();
    X509Certificate caCert = new X509Certificate(new X509Certificate(@"./ca.crt").Export(X509ContentType.SerializedCert));
    X509Certificate clientCert = client.GetCertificate(File.ReadAllText(@"./client.crt"),

File.ReadAllText(@"./client.key"));
    X509Certificate clientCert_Key = new X509Certificate(clientCert.Export(X509ContentType.Pfx));

    List<X509Certificate> lstcertificate = new List<X509Certificate>() { caCert, clientCert_Key };

   var url = "XXXXXX";
    var port = 1883;
    TimeSpan time = TimeSpan.FromMinutes(60);
    var options = new MqttClientOptionsBuilder()
        .WithClientId(Guid.NewGuid().ToString())
        .WithTcpServer(url, port)
        .WithCommunicationTimeout(time)
        .WithTls(new MqttClientOptionsBuilderTlsParameters()
        {
            AllowUntrustedCertificates = false,
            UseTls = true,
            SslProtocol = SslProtocols.Tls12,
            Certificates = lstcertificate,
            CertificateValidationHandler = delegate { return true; },
            IgnoreCertificateChainErrors = false,
            IgnoreCertificateRevocationErrors = false
        })
        .WithCleanSession()
        .WithProtocolVersion(MQTTnet.Formatter.MqttProtocolVersion.V311)
        .Build();

    try
    {

        await mqttClient.ConnectAsync(options);
        Console.WriteLine("Connected to broker with certificate authentication");
    }
    catch(Exception ex)
    {
        Console.WriteLine("Could not connect to broker:" + ex.Message);
    }
    if (mqttClient.IsConnected)
    {
        var message = new MqttApplicationMessageBuilder()
                .WithTopic("house")
                .WithPayload("Hello")
                .WithExactlyOnceQoS()
                .WithRetainFlag()
                .Build();
        try
        {
            await mqttClient.PublishAsync(message);
            Console.WriteLine("Message Published");
            Console.ReadLine();
        }
        catch(Exception ex)
        {
            Console.WriteLine("Could not Publish the message: " + ex.Message);
        }
    }
}

public X509Certificate2 GetCertificate(string publicCertificate, string privateKey)
{
X509Certificate2 certificate = new X509Certificate2(GetBytes(publicCertificate, StringType.Certificate));
var privateKeyBytes = GetBytes(privateKey, StringType.RsaPrivateKey);
using var rsa = RSA.Create();
rsa.ImportRSAPrivateKey(privateKeyBytes, out _);
X509Certificate2 certificateWithKey = certificate.CopyWithPrivateKey(rsa);
return certificateWithKey;
}
private static byte[] GetBytes(string _String, StringType type)
{
string header, footer;
    switch (type)
    {
        case StringType.Certificate:
            header = "-----BEGIN CERTIFICATE-----";
            footer = "-----END CERTIFICATE-----";
            break;
        case StringType.RsaPrivateKey:
            header = "-----BEGIN RSA PRIVATE KEY-----";
            footer = "-----END RSA PRIVATE KEY-----";
            break;
        default:
            return null;
    }

    int start = _String.IndexOf(header) + header.Length;
    int end = _String.IndexOf(footer, start) - start;
    return Convert.FromBase64String(_String.Substring(start, end));
}

private enum StringType
{
    Certificate,
    RsaPrivateKey
}

}
}
Same client code is working with mosquitto broker.
Should i add anything else in vernemq configuration ?
Please help me out in solving this ASAP.

Anything logged in Verne logs for that connection attempt?

yes i have captured the logs.
docker logs vernemq :
config is OK
-config /vernemq/data/generated.configs/app.2<IP_ADDRESS>.57.14.config -args_file /vernemq/bin/../etc/vm.args -vm_args /vernemq/bin/../etc/vm.args
Exec:  /vernemq/bin/../erts-10.7/bin/erlexec -boot /vernemq/bin/../releases/1.10.3/vernemq               -config /vernemq/data/generated.configs/app.2<IP_ADDRESS>.57.14.config -args_file /vernemq/bin/../etc/vm.args -vm_args /vernemq/bin/../etc/vm.args              -pa /vernemq/bin/../lib/erlio-patches -- console -noshell -noinput
Root: /vernemq/bin/..
02:57:16.550 [info] read state from file {[{[{actor,<<83,179,196,138,176,104,146,29,124,53,117,149,210,49,70,4,93,82,60,8>>}],1}],{dict,1,16,16,8,80,48,{[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]},{{[],[],[['VerneMQ@<IP_ADDRESS>',{[{actor,<<83,179,196,138,176,104,146,29,124,53,117,149,210,49,70,4,93,82,60,8>>}],1}]],[],[],[],[],[],[],[],[],[],[],[],[],[]}}},{dict,0,16,16,8,80,48,{[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]},{{[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]}}}}
02:57:16.551 [info] writing state {[{[{actor,<<83,179,196,138,176,104,146,29,124,53,117,149,210,49,70,4,93,82,60,8>>}],1}],{dict,1,16,16,8,80,48,{[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]},{{[],[],[['VerneMQ@<IP_ADDRESS>',{[{actor,<<83,179,196,138,176,104,146,29,124,53,117,149,210,49,70,4,93,82,60,8>>}],1}]],[],[],[],[],[],[],[],[],[],[],[],[],[]}}},{dict,0,16,16,8,80,48,{[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]},{{[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]}}}} to disk <<75,2,131,80,0,0,0,248,120,1,203,96,206,97,96,96,96,204,96,130,82,41,12,172,137,201,37,249,69,185,64,81,145,224,205,71,186,54,100,76,146,173,49,45,157,122,201,208,141,37,54,200,134,35,43,145,49,43,131,51,133,129,37,37,51,185,36,145,49,81,0,8,57,18,3,18,13,50,4,178,208,64,6,35,72,12,108,48,136,96,74,97,16,10,75,45,202,75,245,13,116,48,52,55,210,51,52,215,51,208,51,34,205,102,84,27,16,238,96,32,236,14,84,173,0,148,71,74,31>>
02:57:16.567 [info] Datadir ./data/meta/meta/0 options for LevelDB: [{open,[{block_cache_threshold,33554432},{block_restart_interval,16},{block_size_steps,16},{compression,true},{create_if_missing,true},{delete_threshold,1000},{eleveldb_threads,71},{fadvise_willneed,false},{limited_developer_mem,false},{sst_block_size,4096},{tiered_slow_level,0},{total_leveldb_mem_percent,6},{use_bloomfilter,true},{write_buffer_size,45029325}]},{read,[{verify_checksums,true}]},{write,[{sync,false}]},{fold,[{verify_checksums,true},{fill_cache,false}]}]
02:57:16.619 [info] Datadir ./data/meta/meta/1 options for LevelDB: [{open,[{block_cache_threshold,33554432},{block_restart_interval,16},{block_size_steps,16},{compression,true},{create_if_missing,true},{delete_threshold,1000},{eleveldb_threads,71},{fadvise_willneed,false},{limited_developer_mem,false},{sst_block_size,4096},{tiered_slow_level,0},{total_leveldb_mem_percent,6},{use_bloomfilter,true},{write_buffer_size,36991159}]},{read,[{verify_checksums,true}]},{write,[{sync,false}]},{fold,[{verify_checksums,true},{fill_cache,false}]}]
02:57:16.649 [info] Datadir ./data/meta/meta/2 options for LevelDB: [{open,[{block_cache_threshold,33554432},{block_restart_interval,16},{block_size_steps,16},{compression,true},{create_if_missing,true},{delete_threshold,1000},{eleveldb_threads,71},{fadvise_willneed,false},{limited_developer_mem,false},{sst_block_size,4096},{tiered_slow_level,0},{total_leveldb_mem_percent,6},{use_bloomfilter,true},{write_buffer_size,53009182}]},{read,[{verify_checksums,true}]},{write,[{sync,false}]},{fold,[{verify_checksums,true},{fill_cache,false}]}]
02:57:16.673 [info] Datadir ./data/meta/meta/3 options for LevelDB: [{open,[{block_cache_threshold,33554432},{block_restart_interval,16},{block_size_steps,16},{compression,true},{create_if_missing,true},{delete_threshold,1000},{eleveldb_threads,71},{fadvise_willneed,false},{limited_developer_mem,false},{sst_block_size,4096},{tiered_slow_level,0},{total_leveldb_mem_percent,6},{use_bloomfilter,true},{write_buffer_size,54087000}]},{read,[{verify_checksums,true}]},{write,[{sync,false}]},{fold,[{verify_checksums,true},{fill_cache,false}]}]
02:57:16.700 [info] Datadir ./data/meta/meta/4 options for LevelDB: [{open,[{block_cache_threshold,33554432},{block_restart_interval,16},{block_size_steps,16},{compression,true},{create_if_missing,true},{delete_threshold,1000},{eleveldb_threads,71},{fadvise_willneed,false},{limited_developer_mem,false},{sst_block_size,4096},{tiered_slow_level,0},{total_leveldb_mem_percent,6},{use_bloomfilter,true},{write_buffer_size,55692286}]},{read,[{verify_checksums,true}]},{write,[{sync,false}]},{fold,[{verify_checksums,true},{fill_cache,false}]}]
02:57:16.724 [info] Datadir ./data/meta/meta/5 options for LevelDB: [{open,[{block_cache_threshold,33554432},{block_restart_interval,16},{block_size_steps,16},{compression,true},{create_if_missing,true},{delete_threshold,1000},{eleveldb_threads,71},{fadvise_willneed,false},{limited_developer_mem,false},{sst_block_size,4096},{tiered_slow_level,0},{total_leveldb_mem_percent,6},{use_bloomfilter,true},{write_buffer_size,38925745}]},{read,[{verify_checksums,true}]},{write,[{sync,false}]},{fold,[{verify_checksums,true},{fill_cache,false}]}]
02:57:16.754 [info] Datadir ./data/meta/meta/6 options for LevelDB: [{open,[{block_cache_threshold,33554432},{block_restart_interval,16},{block_size_steps,16},{compression,true},{create_if_missing,true},{delete_threshold,1000},{eleveldb_threads,71},{fadvise_willneed,false},{limited_developer_mem,false},{sst_block_size,4096},{tiered_slow_level,0},{total_leveldb_mem_percent,6},{use_bloomfilter,true},{write_buffer_size,34273253}]},{read,[{verify_checksums,true}]},{write,[{sync,false}]},{fold,[{verify_checksums,true},{fill_cache,false}]}]
02:57:16.778 [info] Datadir ./data/meta/meta/7 options for LevelDB: [{open,[{block_cache_threshold,33554432},{block_restart_interval,16},{block_size_steps,16},{compression,true},{create_if_missing,true},{delete_threshold,1000},{eleveldb_threads,71},{fadvise_willneed,false},{limited_developer_mem,false},{sst_block_size,4096},{tiered_slow_level,0},{total_leveldb_mem_percent,6},{use_bloomfilter,true},{write_buffer_size,48339156}]},{read,[{verify_checksums,true}]},{write,[{sync,false}]},{fold,[{verify_checksums,true},{fill_cache,false}]}]
02:57:16.801 [info] Datadir ./data/meta/meta/8 options for LevelDB: [{open,[{block_cache_threshold,33554432},{block_restart_interval,16},{block_size_steps,16},{compression,true},{create_if_missing,true},{delete_threshold,1000},{eleveldb_threads,71},{fadvise_willneed,false},{limited_developer_mem,false},{sst_block_size,4096},{tiered_slow_level,0},{total_leveldb_mem_percent,6},{use_bloomfilter,true},{write_buffer_size,49414363}]},{read,[{verify_checksums,true}]},{write,[{sync,false}]},{fold,[{verify_checksums,true},{fill_cache,false}]}]
02:57:16.825 [info] Datadir ./data/meta/meta/9 options for LevelDB: [{open,[{block_cache_threshold,33554432},{block_restart_interval,16},{block_size_steps,16},{compression,true},{create_if_missing,true},{delete_threshold,1000},{eleveldb_threads,71},{fadvise_willneed,false},{limited_developer_mem,false},{sst_block_size,4096},{tiered_slow_level,0},{total_leveldb_mem_percent,6},{use_bloomfilter,true},{write_buffer_size,50559476}]},{read,[{verify_checksums,true}]},{write,[{sync,false}]},{fold,[{verify_checksums,true},{fill_cache,false}]}]
02:57:16.850 [info] Datadir ./data/meta/meta/10 options for LevelDB: [{open,[{block_cache_threshold,33554432},{block_restart_interval,16},{block_size_steps,16},{compression,true},{create_if_missing,true},{delete_threshold,1000},{eleveldb_threads,71},{fadvise_willneed,false},{limited_developer_mem,false},{sst_block_size,4096},{tiered_slow_level,0},{total_leveldb_mem_percent,6},{use_bloomfilter,true},{write_buffer_size,40087608}]},{read,[{verify_checksums,true}]},{write,[{sync,false}]},{fold,[{verify_checksums,true},{fill_cache,false}]}]
02:57:16.871 [info] Datadir ./data/meta/meta/11 options for LevelDB: [{open,[{block_cache_threshold,33554432},{block_restart_interval,16},{block_size_steps,16},{compression,true},{create_if_missing,true},{delete_threshold,1000},{eleveldb_threads,71},{fadvise_willneed,false},{limited_developer_mem,false},{sst_block_size,4096},{tiered_slow_level,0},{total_leveldb_mem_percent,6},{use_bloomfilter,true},{write_buffer_size,55226426}]},{read,[{verify_checksums,true}]},{write,[{sync,false}]},{fold,[{verify_checksums,true},{fill_cache,false}]}]
02:57:17.022 [info] Try to start vmq_plumtree: ok
02:57:17.389 [info] Try to start vmq_generic_msg_store: ok
02:57:17.479 [info] loaded 0 subscriptions into vmq_reg_trie
02:57:17.484 [info] cluster event handler 'vmq_cluster' registered
02:57:25.876 [warning] can't authenticate client {[],<<"Client 1">>} from <IP_ADDRESS>:55996 due to plugin_chain_exhausted
02:57:30.876 [warning] can't authenticate client {[],<<"Client 1">>} from <IP_ADDRESS>:56008 due to plugin_chain_exhausted
02:57:35.881 [warning] can't authenticate client {[],<<"Client 1">>} from <IP_ADDRESS>:56020 due to plugin_chain_exhausted
02:57:40.886 [warning] can't authenticate client {[],<<"Client 1">>} from <IP_ADDRESS>:56032 due to plugin_chain_exhausted
02:57:45.891 [warning] can't authenticate client {[],<<"Client 1">>} from <IP_ADDRESS>:56044 due to plugin_chain_exhausted
02:57:50.900 [warning] can't authenticate client {[],<<"Client 1">>} from <IP_ADDRESS>:56048 due to plugin_chain_exhausted
02:57:55.906 [warning] can't authenticate client {[],<<"Client 1">>} from <IP_ADDRESS>:56070 due to plugin_chain_exhausted
02:58:00.912 [warning] can't authenticate client {[],<<"Client 1">>} from <IP_ADDRESS>:56082 due to plugin_chain_exhausted
02:58:05.918 [warning] can't authenticate client {[],<<"Client 1">>} from <IP_ADDRESS>:56094 due to plugin_chain_exhausted
02:58:10.921 [warning] can't authenticate client {[],<<"Client 1">>} from <IP_ADDRESS>:56108 due to plugin_chain_exhausted
02:58:15.925 [warning] can't authenticate client {[],<<"Client 1">>} from <IP_ADDRESS>:56116 due to plugin_chain_exhausted
02:58:20.934 [warning] can't authenticate client {[],<<"Client 1">>} from <IP_ADDRESS>:56126 due to plugin_chain_exhausted
02:58:25.939 [warning] can't authenticate client {[],<<"Client 1">>} from <IP_ADDRESS>:56138 due to plugin_chain_exhausted
02:58:30.947 [warning] can't authenticate client {[],<<"Client 1">>} from <IP_ADDRESS>:56150 due to plugin_chain_exhausted
02:58:35.950 [warning] can't authenticate client {[],<<"Client 1">>} from <IP_ADDRESS>:56162 due to plugin_chain_exhausted
02:58:40.963 [warning] can't authenticate client {[],<<"Client 1">>} from <IP_ADDRESS>:56180 due to plugin_chain_exhausted
02:58:45.964 [warning] can't authenticate client {[],<<"Client 1">>} from <IP_ADDRESS>:56184 due to plugin_chain_exhausted
02:58:50.968 [warning] can't authenticate client {[],<<"Client 1">>} from <IP_ADDRESS>:56210 due to plugin_chain_exhausted
02:58:55.973 [warning] can't authenticate client {[],<<"Client 1">>} from <IP_ADDRESS>:56232 due to plugin_chain_exhausted
02:58:57.038 [warning] session stopped abnormally due to '{cant_parse_connect_fixed_header,<<22,3,1,1,52,1,0,1,48,3,3,251,35,131,213,241,236,136,246,184,152,174,25,70,124,14,169,26,16,16,158,168,34,24,143,55,239,241,96,152,63,121,249,32,201,24,74,120,93,198,246,139,105,63,212,14,66,68,54,125,135,37,197,119,2,64,109,230,109,99,72,6,132,79,214,137,0,62,19,2,19,3,19,1,192,44,192,48,0,159,204,169,204,168,204,170,192,43,192,47,0,158,192,36,192,40,0,107,192,35,192,39,0,103,192,10,192,20,0,57,192,9,192,19,0,51,0,157,0,156,0,61,0,60,0,53,0,47,0,255,1,0,0,169,0,0,0,16,0,14,0,0,11,49,48,46,50,51,46,49,53,51,46,52,0,11,0,4,3,0,1,2,0,10,0,12,0,10,0,29,0,23,0,30,0,25,0,24,0,35,0,0,0,22,0,0,0,23,0,0,0,13,0,48,0,46,4,3,5,3,6,3,8,7,8,8,8,9,8,10,8,11,8,4,8,5,8,6,4,1,5,1,6,1,3,3,2,3,3,1,2,1,3,2,2,2,4,2,5,2,6,2,0,43,0,9,8,3,4,3,3,3,2,3,1,0,45,0,2,1,1,0,51,0,38,0,36,0,29,0,32,65,219,119,103,127,148,136,58,153,234,220,202,109,186,44,203,166,224,226,174,128,137,156,99,127,226,180,185,94,83,30,53>>}'
02:59:00.974 [warning] can't authenticate client {[],<<"Client 1">>} from <IP_ADDRESS>:56248 due to plugin_chain_exhausted
02:59:05.978 [warning] can't authenticate client {[],<<"Client 1">>} from <IP_ADDRESS>:56260 due to plugin_chain_exhausted
02:59:10.982 [warning] can't authenticate client {[],<<"Client 1">>} from <IP_ADDRESS>:56274 due to plugin_chain_exhausted
02:59:15.986 [warning] can't authenticate client {[],<<"Client 1">>} from <IP_ADDRESS>:56278 due to plugin_chain_exhausted
02:59:20.990 [warning] can't authenticate client {[],<<"Client 1">>} from <IP_ADDRESS>:56292 due to plugin_chain_exhausted
02:59:25.994 [warning] can't authenticate client {[],<<"Client 1">>} from <IP_ADDRESS>:56304 due to plugin_chain_exhausted
02:59:30.999 [warning] can't authenticate client {[],<<"Client 1">>} from <IP_ADDRESS>:56316 due to plugin_chain_exhausted
02:59:36.002 [warning] can't authenticate client {[],<<"Client 1">>} from <IP_ADDRESS>:56328 due to plugin_chain_exhausted
02:59:41.008 [warning] can't authenticate client {[],<<"Client 1">>} from <IP_ADDRESS>:56340 due to plugin_chain_exhausted
02:59:46.011 [warning] can't authenticate client {[],<<"Client 1">>} from <IP_ADDRESS>:56344 due to plugin_chain_exhausted
02:59:51.014 [warning] can't authenticate client {[],<<"Client 1">>} from <IP_ADDRESS>:56358 due to plugin_chain_exhausted
02:59:56.017 [warning] can't authenticate client {[],<<"Client 1">>} from <IP_ADDRESS>:56384 due to plugin_chain_exhausted
03:00:01.020 [warning] can't authenticate client {[],<<"Client 1">>} from <IP_ADDRESS>:56396 due to plugin_chain_exhausted
03:00:06.023 [warning] can't authenticate client {[],<<"Client 1">>} from <IP_ADDRESS>:56408 due to plugin_chain_exhausted
03:00:11.026 [warning] can't authenticate client {[],<<"Client 1">>} from <IP_ADDRESS>:56422 due to plugin_chain_exhausted
03:00:16.028 [warning] can't authenticate client {[],<<"Client 1">>} from <IP_ADDRESS>:56426 due to plugin_chain_exhausted
03:00:21.031 [warning] can't authenticate client {[],<<"Client 1">>} from <IP_ADDRESS>:56440 due to plugin_chain_exhausted
03:00:26.034 [warning] can't authenticate client {[],<<"Client 1">>} from <IP_ADDRESS>:56460 due to plugin_chain_exhausted
03:00:26.407 [warning] session stopped abnormally due to '{cant_parse_connect_fixed_header,<<22,3,1,1,52,1,0,1,48,3,3,116,126,26,60,18,134,179,230,229,112,212,132,115,28,204,171,75,242,18,61,246,45,53,58,96,101,190,18,194,233,71,195,32,111,201,92,102,207,157,247,250,92,138,244,70,109,123,190,225,55,228,176,155,137,101,131,3,181,67,167,20,173,248,40,149,0,62,19,2,19,3,19,1,192,44,192,48,0,159,204,169,204,168,204,170,192,43,192,47,0,158,192,36,192,40,0,107,192,35,192,39,0,103,192,10,192,20,0,57,192,9,192,19,0,51,0,157,0,156,0,61,0,60,0,53,0,47,0,255,1,0,0,169,0,0,0,16,0,14,0,0,11,49,48,46,50,51,46,49,53,51,46,52,0,11,0,4,3,0,1,2,0,10,0,12,0,10,0,29,0,23,0,30,0,25,0,24,0,35,0,0,0,22,0,0,0,23,0,0,0,13,0,48,0,46,4,3,5,3,6,3,8,7,8,8,8,9,8,10,8,11,8,4,8,5,8,6,4,1,5,1,6,1,3,3,2,3,3,1,2,1,3,2,2,2,4,2,5,2,6,2,0,43,0,9,8,3,4,3,3,3,2,3,1,0,45,0,2,1,1,0,51,0,38,0,36,0,29,0,32,158,197,221,193,77,101,82,201,171,121,102,124,29,223,138,107,90,37,163,186,88,121,71,45,126,9,62,75,186,226,242,108>>}'
03:00:31.037 [warning] can't authenticate client {[],<<"Client 1">>} from <IP_ADDRESS>:56476 due to plugin_chain_exhausted
03:00:36.040 [warning] can't authenticate client {[],<<"Client 1">>} from <IP_ADDRESS>:56488 due to plugin_chain_exhausted
03:00:41.041 [warning] can't authenticate client {[],<<"Client 1">>} from <IP_ADDRESS>:56500 due to plugin_chain_exhausted
03:00:46.044 [warning] can't authenticate client {[],<<"Client 1">>} from <IP_ADDRESS>:56504 due to plugin_chain_exhausted
03:00:51.046 [warning] can't authenticate client {[],<<"Client 1">>} from <IP_ADDRESS>:56516 due to plugin_chain_exhausted
03:00:56.049 [warning] can't authenticate client {[],<<"Client 1">>} from <IP_ADDRESS>:56538 due to plugin_chain_exhausted
03:01:01.052 [warning] can't authenticate client {[],<<"Client 1">>} from <IP_ADDRESS>:56550 due to plugin_chain_exhausted
03:01:06.055 [warning] can't authenticate client {[],<<"Client 1">>} from <IP_ADDRESS>:56562 due to plugin_chain_exhausted
03:01:11.057 [warning] can't authenticate client {[],<<"Client 1">>} from <IP_ADDRESS>:56576 due to plugin_chain_exhausted
03:01:16.060 [warning] can't authenticate client {[],<<"Client 1">>} from <IP_ADDRESS>:56580 due to plugin_chain_exhausted
03:01:21.063 [warning] can't authenticate client {[],<<"Client 1">>} from <IP_ADDRESS>:56594 due to plugin_chain_exhausted
03:01:26.066 [warning] can't authenticate client {[],<<"Client 1">>} from <IP_ADDRESS>:56606 due to plugin_chain_exhausted
03:01:31.068 [warning] can't authenticate client {[],<<"Client 1">>} from <IP_ADDRESS>:56618 due to plugin_chain_exhausted
03:01:36.070 [warning] can't authenticate client {[],<<"Client 1">>} from <IP_ADDRESS>:56630 due to plugin_chain_exhausted
03:01:41.073 [warning] can't authenticate client {[],<<"Client 1">>} from <IP_ADDRESS>:56642 due to plugin_chain_exhausted
03:01:46.076 [warning] can't authenticate client {[],<<"Client 1">>} from <IP_ADDRESS>:56646 due to plugin_chain_exhausted
03:01:51.080 [warning] can't authenticate client {[],<<"Client 1">>} from <IP_ADDRESS>:56658 due to plugin_chain_exhausted
03:01:56.083 [warning] can't authenticate client {[],<<"Client 1">>} from <IP_ADDRESS>:56680 due to plugin_chain_exhausted
03:02:01.086 [warning] can't authenticate client {[],<<"Client 1">>} from <IP_ADDRESS>:56692 due to plugin_chain_exhausted
03:02:06.088 [warning] can't authenticate client {[],<<"Client 1">>} from <IP_ADDRESS>:56704 due to plugin_chain_exhausted
03:02:11.091 [warning] can't authenticate client {[],<<"Client 1">>} from <IP_ADDRESS>:56708 due to plugin_chain_exhausted
03:02:16.093 [warning] can't authenticate client {[],<<"Client 1">>} from <IP_ADDRESS>:56722 due to plugin_chain_exhausted
03:02:21.096 [warning] can't authenticate client {[],<<"Client 1">>} from <IP_ADDRESS>:56736 due to plugin_chain_exhausted
03:02:26.096 [warning] can't authenticate client {[],<<"Client 1">>} from <IP_ADDRESS>:56748 due to plugin_chain_exhausted
03:02:31.099 [warning] can't authenticate client {[],<<"Client 1">>} from <IP_ADDRESS>:56760 due to plugin_chain_exhausted
03:02:36.102 [warning] can't authenticate client {[],<<"Client 1">>} from <IP_ADDRESS>:56772 due to plugin_chain_exhausted
03:02:41.104 [warning] can't authenticate client {[],<<"Client 1">>} from <IP_ADDRESS>:56776 due to plugin_chain_exhausted
03:02:46.107 [warning] can't authenticate client {[],<<"Client 1">>} from <IP_ADDRESS>:56788 due to plugin_chain_exhausted
03:02:51.109 [warning] can't authenticate client {[],<<"Client 1">>} from <IP_ADDRESS>:56800 due to plugin_chain_exhausted
03:02:56.111 [warning] can't authenticate client {[],<<"Client 1">>} from <IP_ADDRESS>:56824 due to plugin_chain_exhausted
03:03:01.113 [warning] can't authenticate client {[],<<"Client 1">>} from <IP_ADDRESS>:56836 due to plugin_chain_exhausted
03:03:06.116 [warning] can't authenticate client {[],<<"Client 1">>} from <IP_ADDRESS>:56848 due to plugin_chain_exhausted
03:03:11.118 [warning] can't authenticate client {[],<<"Client 1">>} from <IP_ADDRESS>:56852 due to plugin_chain_exhausted
03:03:16.121 [warning] can't authenticate client {[],<<"Client 1">>} from <IP_ADDRESS>:56866 due to plugin_chain_exhausted
03:03:21.124 [warning] can't authenticate client {[],<<"Client 1">>} from <IP_ADDRESS>:56880 due to plugin_chain_exhausted
03:03:26.127 [warning] can't authenticate client {[],<<"Client 1">>} from <IP_ADDRESS>:56892 due to plugin_chain_exhausted
03:03:31.131 [warning] can't authenticate client {[],<<"Client 1">>} from <IP_ADDRESS>:56904 due to plugin_chain_exhausted
03:03:36.134 [warning] can't authenticate client {[],<<"Client 1">>} from <IP_ADDRESS>:56916 due to plugin_chain_exhausted
03:03:41.136 [warning] can't authenticate client {[],<<"Client 1">>} from <IP_ADDRESS>:56920 due to plugin_chain_exhausted
03:03:46.139 [warning] can't authenticate client {[],<<"Client 1">>} from <IP_ADDRESS>:56932 due to plugin_chain_exhausted
03:03:51.141 [warning] can't authenticate client {[],<<"Client 1">>} from <IP_ADDRESS>:56944 due to plugin_chain_exhausted
03:03:56.144 [warning] can't authenticate client {[],<<"Client 1">>} from <IP_ADDRESS>:56966 due to plugin_chain_exhausted
03:04:01.146 [warning] can't authenticate client {[],<<"Client 1">>} from <IP_ADDRESS>:56978 due to plugin_chain_exhausted
03:04:06.149 [warning] can't authenticate client {[],<<"Client 1">>} from <IP_ADDRESS>:56990 due to plugin_chain_exhausted
03:04:11.152 [warning] can't authenticate client {[],<<"Client 1">>} from <IP_ADDRESS>:56994 due to plugin_chain_exhausted
03:04:16.154 [warning] can't authenticate client {[],<<"Client 1">>} from <IP_ADDRESS>:57008 due to plugin_chain_exhausted
03:04:21.156 [warning] can't authenticate client {[],<<"Client 1">>} from <IP_ADDRESS>:57022 due to plugin_chain_exhausted
03:04:26.159 [warning] can't authenticate client {[],<<"Client 1">>} from <IP_ADDRESS>:57034 due to plugin_chain_exhausted
03:04:31.161 [warning] can't authenticate client {[],<<"Client 1">>} from <IP_ADDRESS>:57046 due to plugin_chain_exhausted
03:04:36.163 [warning] can't authenticate client {[],<<"Client 1">>} from <IP_ADDRESS>:57058 due to plugin_chain_exhausted
03:04:41.166 [warning] can't authenticate client {[],<<"Client 1">>} from <IP_ADDRESS>:57062 due to plugin_chain_exhausted
03:04:46.168 [warning] can't authenticate client {[],<<"Client 1">>} from <IP_ADDRESS>:57074 due to plugin_chain_exhausted
03:04:51.171 [warning] can't authenticate client {[],<<"Client 1">>} from <IP_ADDRESS>:57088 due to plugin_chain_exhausted
03:04:56.174 [warning] can't authenticate client {[],<<"Client 1">>} from <IP_ADDRESS>:57114 due to plugin_chain_exhausted
03:05:01.174 [warning] can't authenticate client {[],<<"Client 1">>} from <IP_ADDRESS>:57126 due to plugin_chain_exhausted
03:05:06.177 [warning] can't authenticate client {[],<<"Client 1">>} from <IP_ADDRESS>:57138 due to plugin_chain_exhausted
03:05:11.179 [warning] can't authenticate client {[],<<"Client 1">>} from <IP_ADDRESS>:57142 due to plugin_chain_exhausted
03:05:16.183 [warning] can't authenticate client {[],<<"Client 1">>} from <IP_ADDRESS>:57156 due to plugin_chain_exhausted
03:05:21.185 [warning] can't authenticate client {[],<<"Client 1">>} from <IP_ADDRESS>:57170 due to plugin_chain_exhausted
03:05:26.187 [warning] can't authenticate client {[],<<"Client 1">>} from <IP_ADDRESS>:57182 due to plugin_chain_exhausted
03:05:31.189 [warning] can't authenticate client {[],<<"Client 1">>} from <IP_ADDRESS>:57194 due to plugin_chain_exhausted
03:05:36.192 [warning] can't authenticate client {[],<<"Client 1">>} from <IP_ADDRESS>:57198 due to plugin_chain_exhausted
03:05:41.195 [warning] can't authenticate client {[],<<"Client 1">>} from <IP_ADDRESS>:57210 due to plugin_chain_exhausted
03:05:42.983 [warning] session stopped abnormally due to '{cant_parse_connect_fixed_header,<<22,3,1,1,52,1,0,1,48,3,3,75,47,168,133,254,119,187,164,152,199,169,30,178,5,249,66,36,73,211,196,11,43,185,183,50,41,44,246,149,207,0,14,32,174,180,170,27,107,246,151,24,63,134,60,32,231,134,110,254,182,75,11,108,33,136,215,73,13,10,243,206,4,200,0,103,0,62,19,2,19,3,19,1,192,44,192,48,0,159,204,169,204,168,204,170,192,43,192,47,0,158,192,36,192,40,0,107,192,35,192,39,0,103,192,10,192,20,0,57,192,9,192,19,0,51,0,157,0,156,0,61,0,60,0,53,0,47,0,255,1,0,0,169,0,0,0,16,0,14,0,0,11,49,48,46,50,51,46,49,53,51,46,52,0,11,0,4,3,0,1,2,0,10,0,12,0,10,0,29,0,23,0,30,0,25,0,24,0,35,0,0,0,22,0,0,0,23,0,0,0,13,0,48,0,46,4,3,5,3,6,3,8,7,8,8,8,9,8,10,8,11,8,4,8,5,8,6,4,1,5,1,6,1,3,3,2,3,3,1,2,1,3,2,2,2,4,2,5,2,6,2,0,43,0,9,8,3,4,3,3,3,2,3,1,0,45,0,2,1,1,0,51,0,38,0,36,0,29,0,32,229,111,189,154,13,220,130,90,227,115,194,49,213,142,193,11,174,105,235,180,87,253,161,40,168,65,18,169,2,59,142,6>>}'
03:05:46.199 [warning] can't authenticate client {[],<<"Client 1">>} from <IP_ADDRESS>:57228 due to plugin_chain_exhausted
03:05:51.202 [warning] can't authenticate client {[],<<"Client 1">>} from <IP_ADDRESS>:57240 due to plugin_chain_exhausted
03:05:56.205 [warning] can't authenticate client {[],<<"Client 1">>} from <IP_ADDRESS>:57262 due to plugin_chain_exhausted
03:06:01.205 [warning] can't authenticate client {[],<<"Client 1">>} from <IP_ADDRESS>:57274 due to plugin_chain_exhausted
03:06:06.205 [warning] can't authenticate client {[],<<"Client 1">>} from <IP_ADDRESS>:57278 due to plugin_chain_exhausted
03:06:11.208 [warning] can't authenticate client {[],<<"Client 1">>} from <IP_ADDRESS>:57290 due to plugin_chain_exhausted
03:06:16.211 [warning] can't authenticate client {[],<<"Client 1">>} from <IP_ADDRESS>:57304 due to plugin_chain_exhausted
03:06:21.215 [warning] can't authenticate client {[],<<"Client 1">>} from <IP_ADDRESS>:57318 due to plugin_chain_exhausted
03:06:26.218 [warning] can't authenticate client {[],<<"Client 1">>} from <IP_ADDRESS>:57330 due to plugin_chain_exhausted
03:06:31.221 [warning] can't authenticate client {[],<<"Client 1">>} from <IP_ADDRESS>:57342 due to plugin_chain_exhausted
03:06:36.220 [warning] can't authenticate client {[],<<"Client 1">>} from <IP_ADDRESS>:57346 due to plugin_chain_exhausted
03:06:41.223 [warning] can't authenticate client {[],<<"Client 1">>} from <IP_ADDRESS>:57358 due to plugin_chain_exhausted
03:06:46.225 [warning] can't authenticate client {[],<<"Client 1">>} from <IP_ADDRESS>:57370 due to plugin_chain_exhausted
03:06:51.228 [warning] can't authenticate client {[],<<"Client 1">>} from <IP_ADDRESS>:57382 due to plugin_chain_exhausted
03:06:56.230 [warning] can't authenticate client {[],<<"Client 1">>} from <IP_ADDRESS>:57404 due to plugin_chain_exhausted
03:07:01.231 [warning] can't authenticate client {[],<<"Client 1">>} from <IP_ADDRESS>:57416 due to plugin_chain_exhausted
03:15:02.776 [warning] session stopped abnormally due to '{cant_parse_connect_fixed_header,<<22,3,1,1,52,1,0,1,48,3,3,35,143,115,133,10,138,226,119,109,175,24,90,96,151,59,16,163,249,29,212,155,133,199,216,98,29,60,243,162,39,175,52,32,234,38,25,208,65,140,32,241,51,38,28,151,18,155,126,58,185,56,186,110,60,127,95,45,248,51,92,47,67,167,217,149,0,62,19,2,19,3,19,1,192,44,192,48,0,159,204,169,204,168,204,170,192,43,192,47,0,158,192,36,192,40,0,107,192,35,192,39,0,103,192,10,192,20,0,57,192,9,192,19,0,51,0,157,0,156,0,61,0,60,0,53,0,47,0,255,1,0,0,169,0,0,0,16,0,14,0,0,11,49,48,46,50,51,46,49,53,51,46,52,0,11,0,4,3,0,1,2,0,10,0,12,0,10,0,29,0,23,0,30,0,25,0,24,0,35,0,0,0,22,0,0,0,23,0,0,0,13,0,48,0,46,4,3,5,3,6,3,8,7,8,8,8,9,8,10,8,11,8,4,8,5,8,6,4,1,5,1,6,1,3,3,2,3,3,1,2,1,3,2,2,2,4,2,5,2,6,2,0,43,0,9,8,3,4,3,3,3,2,3,1,0,45,0,2,1,1,0,51,0,38,0,36,0,29,0,32,191,193,137,105,45,87,63,92,149,7,164,185,65,168,231,77,191,107,237,42,132,16,27,167,83,83,35,25,253,131,118,36>>}'
03:15:06.435 [warning] can't authenticate client {[],<<"Client 1">>} from <IP_ADDRESS>:58580 due to plugin_chain_exhausted
these are the logs i'm getting.

Logs tell you 2 things: that "Client1" cannot be authenticated, that is there's no auth plugin found that could identify this client.
Check what auth plugins/config you use.
It also tells you (for another session, I suppose), that Verne cannot parse the fixed header in your client CONNECT packet (which is strange).
http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/errata01/os/mqtt-v3.1.1-errata01-os-complete.html#_Toc442180842


mvnd help:evaluate regression

mvnd help:evaluate doesn't print anything anymore since 1.0-m7-m39
To reproduce, setup a basic project:
mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DarchetypeVersion=1.4 -DinteractiveMode=false
cd my-app
mkdir .mvn

then run mvnd help:evaluate -Dexpression=project.version -q -DforceStdout
using SDKMAN, it looks like it was broken in 1.0-m7-m39:
~ sdk use mvnd 1.0-m6-m40

Using mvnd version 1.0-m6-m40 in this shell.
~ mvnd help:evaluate -Dexpression=project.version -q -DforceStdout
[INFO] [stdout] 1.0-SNAPSHOT
~ sdk use mvnd 1.0-m7-m39

Using mvnd version 1.0-m7-m39 in this shell.
~ mvnd help:evaluate -Dexpression=project.version -q -DforceStdout

any update on this?
1.0-m8 darwin-aarch64  seems affected as well


Separate vote generation process

This patch decouples vote generation from quorum solicitation. Previously both were done in one large announce loop which on average would delay vote generation by 1/2 the announcement interval.
Now we announce votes as soon as a local decision is made i.e. a block is inserted in to the ledger.

I wouldn't remove the announcements in rai::active_transactions::announce_votes.

Why?

We could ignore them for the first interval, but I think they're important for ensuring confirmation.

Not having received quorum doesn’t imply our created vote was missed. If our vote was missed someone would solicit it with confirm_req, receive the reply, then relay it out to the network.

If a lot of other peoples' votes are missing, most likely it's due to network congestion, which means that our votes are likely missing too.


Change how we handle index routes with nested components

Currently we support this syntax:
<Route path="foo" component={A}>
  <Route component={B}>
    <Route component={C}>
      <IndexRoute component={D}>
    </Route>
  </Route>
</Route>

This is a little bit awkward and only works for sync child routes (i.e. it won't work if these child routes were declared via getChildRoutes).
I'd like to propose changing this API up a bit. A few options:
// Nest <IndexRoute> instead of pathless <Route>.
<Route path="foo" component={A}>
  <IndexRoute component={B}>
    <IndexRoute component={C}>
      <IndexRoute component={D}>
    </IndexRoute>
  </IndexRoute>
</IndexRoute>

// Add a nest() or compose() helper, or document it.
<Route path="foo" component={A}>
  <IndexRoute component={nest(B, C, D)} />
</Route>

// Add first-class support for array route components, with above semantics.
<Route path="foo" component={A}>
  <IndexRoute components={[B, C, D]} />
</Route>

If we take out nested routes with absolute path support, this would remove the only other inconsistency to my knowledge between the sync and async child route cases.

Looks, good, lets hold off on any sort of utils to make the nesting easier.

If we take out nested routes with absolute path support, this would remove the only other inconsistency to my knowledge between the sync and async child route cases.

This is the nail in coffin for me and nested absolute routes.

Should we add support for nesting <IndexRoute> like in the first example? We don't currently support it, but it should be easy to add.

cc @danieljuhl, who added this feature in https://github.com/reactjs/react-router/pull/2330.

What does this become?
<Router history={ history }>
      <Route path='/' component={ App }>
        <Route path='signup' component={ Signup } />
        <Route path='login' component={ Login } />
        <Route component={ ListPage }>
          <Route path='search' component={ Search } />
          <IndexRoute component={ Home } />
        </Route>
        <Route path='*' name='not-found' component={ NotFound } />
      </Route>
    </Router>

Maybe:
<Router history={ history }>
  <Route path='/' component={ App }>
    <IndexRoute component={ ListPage }>
      <IndexRoute component={ Home } />
    </IndexRoute>
    <Route path='signup' component={ Signup } />
    <Route path='login' component={ Login } />
    <Route component={ ListPage }>
      <Route path='search' component={ Search } />
    </Route>
    <Route path='*' name='not-found' component={ NotFound } />
  </Route>
</Router>

There's some duplication, but maybe it's more clear?
This might be a bit of a harebrained idea on my part.

Is this really such a problem? Wouldn't it be easier to just use the route components for composition, instead of the router? const A = (props) => (<B {...props}><C {...props}>{props.children}</C></B>)

Yeah exactly, that's what I was thinking when I saw the nest thing.

@taurose That's what I was thinking with nest() or compose(), but it's a little bit different when using async-props or react-router-relay or anything where the container wants to look at the route and inject stuff into the route components.

I think @taurose code would still do that, no?

Doesn't async-props work via a static loadProps method on the component? You couldn't necessarily merge two loadProps static methods without semantic knowledge.

Given the tepid response here, and that this does legitimately make cases like https://github.com/reactjs/react-router/issues/3326#issuecomment-210712055 harder, I'm going to close this out for now. The sync/async mismatch may be a non-issue once we resolve https://github.com/reactjs/react-router/issues/3232 and put async child routes before the code split, anyway.


Unable to enroll back the child project to CLA Group after unenrolling it.

Steps:

Have a project group with project level CLA Group created.
On the CLA overview page, unenroll the project from CLA group and try to enroll back.

Actual Result: It throws error:
error:"{"Code":"500","Message":"EasyCLA - 500 Internal server error - error = cla_group project association already exist","x-request-id":"11bb8ee0-3fbf-11eb-ab11-47e2c5c93588"}"
errorLoggedTime:"Wed, Dec 16th 2020, 10:22:25 pm IST"
Expected Result: Enrollment should work fine.

Here is the screen shot:

Related to updating repo count - creates a partial record...

Created PR: https://github.com/communitybridge/easycla/pull/2341

@dealako tested on Stage and it works fine. There is an additional issue observed related to enrollment and unenrollment and is reported as https://app.zenhub.com/workspaces/easycla-5ed619832c71a855a76ef404/issues/communitybridge/easycla/2346

Asha updated that she has verified the ticket & working fine. So, moving this ticket to QA Done.

Resolved - closing ticket.


Signature only

Refactoring attributes to avoid introducing a 3rd attribute.

[NativeFunction(NativeFunctionOptions.SignatureOnly)] can now be used in cases where you want to manually provide the native function body

As an example,
// Generated by UnityEmbedHost.Generator - Commit these changes
extern "C" EXPORT_API MonoObject* EXPORT_CC mono_type_get_object(MonoDomain* domain, MonoType* type)
{
    return g_HostStruct->type_get_object(domain, type);
}

You are in control of what is between { and }.


Failed to switch model - Failed to enable custom CUDA kernel, ninja is required to load C++ extensions.

I receive this error whenever I try to load model using the new strategy CUDA-Beta in version 1.4.4
"Failed to switch model - Failed to enable custom CUDA kernel, ninja is required to load C++ extensions. You may be using the CPU version of PyTorch, please reinstall PyTorch with CUDA. Or if you are using a custom Python interpreter, you must compile the CUDA kernel by yourself or disable Custom CUDA kernel acceleration."
and In console:
--- 0.5215103626251221 seconds --- ←[32mINFO←[0m:     Started server process [←[36m10124←[0m] ←[32mINFO←[0m:     Waiting for application startup. torch found: E:\Others\Native\TextGeneration\RWKV Runner\py310\Lib\site-packages\torch\lib torch set ←[32mINFO←[0m:     Application startup complete. ←[32mINFO←[0m:     Uvicorn running on ←[1mhttp://<IP_ADDRESS>:8000←[0m (Press CTRL+C to quit) ←[32mINFO←[0m:     <IP_ADDRESS>:53592 - "←[1mOPTIONS /update-config HTTP/1.1←[0m" ←[32m200 OK←[0m max_tokens=4100 temperature=1.0 top_p=0.3 presence_penalty=0.0 frequency_penalty=1.0 ←[32mINFO←[0m:     <IP_ADDRESS>:53592 - "←[1mPOST /update-config HTTP/1.1←[0m" ←[32m200 OK←[0m ←[32mINFO←[0m:     <IP_ADDRESS>:53592 - "←[1mGET / HTTP/1.1←[0m" ←[32m200 OK←[0m ←[32mINFO←[0m:     <IP_ADDRESS>:53592 - "←[1mGET /status HTTP/1.1←[0m" ←[32m200 OK←[0m max_tokens=4100 temperature=1.0 top_p=0.3 presence_penalty=0.0 frequency_penalty=1.0 ←[32mINFO←[0m:     <IP_ADDRESS>:53592 - "←[1mPOST /update-config HTTP/1.1←[0m" ←[32m200 OK←[0m ←[32mINFO←[0m:     <IP_ADDRESS>:53592 - "←[1mOPTIONS /switch-model HTTP/1.1←[0m" ←[32m200 OK←[0m E:\Others\Native\TextGeneration\RWKV Runner\py310\Lib\site-packages\_distutils_hack\__init__.py:18: UserWarning: Distutils was imported before Setuptools, but importing Setuptools also replaces the distutilsmodule insys.modules. This may lead to undesirable behaviors or errors. To avoid these issues, avoid using distutils directly, ensure that setuptools is installed in the traditional way (e.g. not an editable install), and/or make sure that setuptools is always imported before distutils.   warnings.warn( E:\Others\Native\TextGeneration\RWKV Runner\py310\Lib\site-packages\_distutils_hack\__init__.py:33: UserWarning: Setuptools is replacing distutils.   warnings.warn("Setuptools is replacing distutils.") Using E:\Others\Native\TextGeneration\RWKV Runner\backend-python as PyTorch extensions root... Ninja is required to load C++ extensions INFO:     <IP_ADDRESS>:53592 - "POST /switch-model HTTP/1.1" 500 Internal Server Error
I have installed PyTorch 1.13.1+cu117 and ninja and VS2022 and C++ Build Tools
the GPU is RTX 3060 12GB

Currently, you need to compile CUDA-Beta yourself. I haven't included the compilation files as it's only successfully compiled on linux.

So it's not tested yet on windows ? is there's any tutorial I can follow to compile ? didn't interacted with CUDA yet

https://github.com/BlinkDL/RWKV-CUDA 👀

I compiled it for windows. It works (without many boost?) and I'll put it into another issue.
It may a good option for embed that kernel into windows binary?

The latest version has resolved this issue.


Does not work with mysql?

🐛 Summary
Does not work with mysql
To reproduce
change database = archive_mysql under [wx_binding] with requisite configuration for mysql as below:
[DataBindings]

    [[wx_binding]]
        # The database must match one of the sections in [Databases].
        # This is likely to be the only option you would want to change.
        database = archive_mysql
        # The name of the table within the database
        table_name = archive
        # The manager handles aggregation of data for historical summaries
        manager = weewx.manager.DaySummaryManager
        # The schema defines the structure of the database.
        # It is *only* used when the database is created.
        schema = schemas.wview_extended.schema

##############################################################################

#   This section defines various databases.

[Databases]

    # A SQLite database is simply a single file
    [[archive_sqlite]]
        database_name = weewx.sdb
        database_type = SQLite

    # MySQL
    [[archive_mysql]]
        database_name = weewx_new
        database_type = MySQL

##############################################################################

#   This section defines defaults for the different types of databases.

[DatabaseTypes]

    # Defaults for SQLite databases
    [[SQLite]]
        driver = weedb.sqlite
        # Directory in which the database files are located
        SQLITE_ROOT = /var/lib/weewx

    # Defaults for MySQL databases
    [[MySQL]]
        driver = weedb.mysql
        # The host where the database is located
        host = <IP_ADDRESS>
		port = 3307
        # The user name for logging in to the host
        user = xxxxxx
        # The password (use quotes to guard against parsing errors)
        password = xxxxxx

Expected behavior
Should connect to mysql db.
Any helpful log output or screenshots
****  ModuleNotFoundError: No module named 'pymysql'
ModuleNotFoundError: No module named 'MySQLdb'

Full log output.
weewx-2.pdf

I created a new docker image based off felddy/weewx.  Working now.  Thanks
FROM felddy/weewx
RUN pip install PyMySQL

I'm glad you got it working.  Cheers.


Fix MeshBuilder.CreatePlane when position is at origin

See https://github.com/BabylonJS/Babylon.js/pull/5500#issuecomment-439420992

I also factored out a transformNode.setDirection function from transformNode.lookAt which makes it optimal for CreatePlane.

Some checks are failing

Fixed!


Create loot-splitter

Plugin to display how many items/GP value to split when bossing!

You should convert your Sysout and info logs into debug logs. And FWIW, you can use regex to parse the text instead of what you are doing.

I just fixed those, and changed the commit number inside the plugins folder, do I need to create a new pull request now, or can I keep this one. lol regex seems like a way simpler solution, I'll implement it a bit later :)

No, if you push the new commit hash--the bot will update it's comment.

Awesome, thank you!!

I wanted the runner to execute but I don't think my status counts. You need a license file too.

I think it has a license already, does this look correct?
https://github.com/LanaDelSlay/LootSplit/blob/main/LICENSE

That's good yes, I missed it on my files.


sigproxy exits, but is not removed.

root@dessalines011:~# docker ps -a | grep Exited | grep weave | wc -l
528

This is the one which died most recently:
6ac56dbbb744        weaveworks/weaveexec:1.5.1         "/home/weave/sigproxy"   24 minutes ago      Exited (0) 24 minutes ago                          fervent_euler

They have accumulated over 11 days since the last time I piped that output through | xargs docker rm.

I think this is unavoidable; In docker run --rm ..., the removal is done by the docker client, so if, for whatever reason, the client dies or loses connectivity before the container has terminated then the container will be left around.

If my theory is correct then it would be worth investigating why the docker client is dying. Is this at all reproducible by hand, i.e. by running some weave command or some docker command via the proxy?

reproduced after an upgrade to 1.5.2:
10cefe98f712        weaveworks/weaveexec:1.5.2   "/home/weave/sigproxy"   2 hours ago         Exited (0) 2 hours ago                             big_williams

as to how the network is initiated, this is the meat of the code which does the deed:
function main() {
  NETWORK=$(get_network)
  PEERS=$(get_peers)
  WEAVE_IP=$(get_weave_ip)

  /bin/echo "remove weave interfaces and network"
  remove_vethwe_interfaces_from_docker_host
  remove_weave_network

  /bin/echo "$WEAVE reset"
  $WEAVE reset

  ver=$(weave version)
  if [ $(echo $ver | grep -q weave && echo $?) -eq 0 ];
  then
    /bin/echo "$WEAVE launch --ipalloc-range $WEAVE_SEGMENT --ipalloc-default-subnet $IPAM_SEGMENT $PEERS"
    $WEAVE launch --ipalloc-range $WEAVE_SEGMENT --ipalloc-default-subnet $IPAM_SEGMENT $PEERS
  else
    /bin/echo "$WEAVE launch $PEERS"
    $WEAVE launch $PEERS
  fi

  # http://sttts.github.io/docker/weave/mesos/2015/01/22/weave.html
  # weave create-bridge
  docker network create --driver=weavemesh --ipam-driver=weavemesh --subnet $WEAVE_SEGMENT $NETWORK_NAME
  echo "ip addr add dev weave $NETWORK "
  ip addr add dev weave $NETWORK

}

Are you saying that if you run the above code in a loop then the problem arises?
From the above, it looks like you are not using the proxy, but are using the docker network plugin. Is that correct?

I do not run that code in a loop.  That is the main() function of a procedural bash script which I use to reset the weave network.  It tears it down and then recreates it.  That function runs once then the script exits.  It is my intention to use the plugin.  I am not sure what the proxy does for me exactly, have no intention of using it.  Still, weave status provides output like:
root@dessalines011:~# weave status

        Version: 1.5.2 (up to date; next check at 2016/06/11 08:55:37)

        Service: router
       Protocol: weave 1..2
           Name: 3e:71:3f:a9:6c:4a(dessalines011)
     Encryption: disabled
  PeerDiscovery: enabled
        Targets: 6
    Connections: 6 (3 established, 3 failed)
          Peers: 4 (with 12 established connections)
 TrustedSubnets: none

        Service: ipam
         Status: ready
          Range: <IP_ADDRESS>-<IP_ADDRESS>
  DefaultSubnet: <IP_ADDRESS>/24

        Service: dns
         Domain: weave.local.
       Upstream: <IP_ADDRESS>, <IP_ADDRESS>
            TTL: 1
        Entries: 0

        Service: proxy
        Address: unix:///var/run/weave/weave.sock

        Service: plugin
     DriverName: weave

When do you see the stale sigproxy containers appearing? After the execution of the main() function? Or some other action? Any suggestions for how I should attempt to reproduce this problem?


Implement NIP-27 Text Note References

Also implement NIP-08

Issue https://github.com/nostr-sdk/nostr-sdk-ios/issues/116 has now been created for NIP-08 (legacy mentions) support.

I think this ticket can be closed now. I moved NIP-08 support to a different ticket, and since NIP-27 contains recommendations for how information is displayed, I think it can be left up to the implementing application. Agree @tyiu or @joelklabo?

I think this ticket can be closed now. I moved NIP-08 support to a different ticket, and since NIP-27 contains recommendations for how information is displayed, I think it can be left up to the implementing application. Agree @tyiu or @joelklabo?

Agreed.


proposal: x/net: Accept client-provided logger for http2 debug logs in addition to GODEBUG=http2debug=1,2

This allows me to get HTTP/2 debug logs: https://github.com/golang/net/blob/290c469a71a567d354e4abd335577aba44c4bde4/http2/http2.go#L41-L50
...But unlike the gRPC package, I can't specify my own logger. I also can't change the log level at runtime (I can toggle VerboseLogs since that's exported, but not logFrameWrites and logFrameReads).
For logging format consistency and runtime configuration of log levels it would be great to provide my own logger. I suppose this would also require a switch to level-based logging instead of e.g. log.Printf(); I don't know if the structure of logs is covered by the Go compatibility guarantee and if so this would need to be done in a way that doesn't break it (maybe all debug level with no formatting change in the default logger implementation?)
Thanks for considering this!

CC @neild @bradfitz
Do you have a suggested API?  Thanks.

This proposal has been added to the active column of the proposals project
and will now be reviewed at the weekly proposal review meetings.
— rsc for the proposal review group

Getting useful log information and directing it to a desired location are reasonable desires, but I don't think slapping an additional public API on the http2 package's existing logs is the right thing to do. What about net/http and HTTP/1 logs? TLS? Are there other standard library packages that should have logging? What kinds of events should we be logging in all of these?
The http2 package has the ability to emit debug logs, but they're extremely ad hoc and there pretty much only for debugging the HTTP/2 implementation.

What about *log.Logger instead (from the standard log package)? Or just an io.Writer?

An interface would be better than *log.Logger IMO. io.Writer would be totally fine! Let me know if you want me to come up with a more complete proposal based on that.

What about net/http and HTTP/1 logs? TLS?

Well, as someone who works on those at the protocol level I'd say yes (if it's a cheap language addition) but I recognize that's relatively niche.

The http2 package has the ability to emit debug logs, but they're extremely ad hoc and there pretty much only for debugging the HTTP/2 implementation.

Just to provide a counter example, I got to this point because I was debugging random stalls over a high-throughput gRPC connection and it turned out the HTTP/2 debug logs held the key to the fix:
2022/05/06 18:45:48 http2: Framer 0xc0000f0c40: wrote WINDOW_UPDATE len=4 (conn) incr=4107

Seeing a flood of these told me I needed to increase initial connection window sizes on both ends; I think the only way I could have tackled this problem without logs was to start trying knobs until something panned out.

Placed on hold.
— rsc for the proposal review group


LEGO: Pull request from lego/hb_04604851-bac4-4681-9f74-73de611d6e48_20210324033348910 to main

LEGO: Pull request from lego/hb_04604851-bac4-4681-9f74-73de611d6e48_20210324033348910 to main with localized lcls

Pull Request Test Coverage Report for Build 681763648

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.001%) to 43.272%

Totals

Change from base Build 681189491:
-0.001%

Covered Lines:
25464

Relevant Lines:
53684

💛  - Coveralls


HDDS-11546. Add regex operation to filter option of ldb scan command

What changes were proposed in this pull request?
Currently, ozone debug ldb scan command has a --filter option supporting the following operations for the records stored in the rocksDB: EQUALS, LESSER, GREATER.
Adding support for matching with regex will be useful while debugging as any pattern of keys can be found with it.
For example, if a value has many fields like [name, location->[address, DN, IP], version, lastUpdateTime], using the option --filter={name:regex:^a.*} will display records with name that start with the letter 'a'
A fields along with the regex that should be used to is given to the command, and only those records passing the condition it will be shown.
eg.) ozone debug ldb --db=/data/metadata/om.db scan --cf=volumeTable --filter="usedNamespace:greater:2,adminName:regex:^a.*a$"
--> Will show only the records having usedNamespace>2 and adminName starting and ending with the letter 'a'.
What is the link to the Apache JIRA
https://issues.apache.org/jira/browse/HDDS-11546
How was this patch tested?
Added unit tests in TestLDBCli.java and added robot test in ozone-debug-ldb.robot.
Also tested locally in a db:
$ ozone debug ldb --db=ZDump/bigDB/omMBdb/om.db scan --cf=keyTable  -l=3  --fields="objectID,volumeName,bucketName,keyName,dataSize,creationTime" --filter="acls.name:equals:systest,creationTime:regex:^172[0-9]*237$"

{ "/55406660-10tb/ozone-legacy-ec-1st-bucket-55406660/10T-1-terasort-input/_SUCCESS": {
  "bucketName" : "ozone-legacy-ec-1st-bucket-55406660",
  "creationTime" :<PHONE_NUMBER>237,
  "volumeName" : "55406660-10tb",
  "keyName" : "10T-1-terasort-input/_SUCCESS",
  "dataSize" : 0,
  "objectID" : -9223372036249583104
}
 }

$ ozone debug ldb --db=ZDump/bigDB/om.db scan --cf=volumeTable  --fields=volume,usedNamespace,adminName  --filter="usedNamespace:equals:2,adminName:regex:^i.*"

{ "/cai": {
  "volume" : "cai",
  "adminName" : "impala",
  "usedNamespace" : 2
}
 }

Thanks @Tejaskriya for the patch & @sumitagrawl for the review.


Secret access data managers should trim whitespaces, also comparison should be case insensitive.

Secret access data managers should trim whitespaces, also comparison should be case insensitive.

Web client should not allow secret submission if form data is not correct:
Looks like it is possible on secret edit, when we add a user email with space in the beginning.
This should not be allowed.


Incompatibility with Dart 3.4 Due to Removal of waitFor

I'm experiencing a build error when using arb_utils 0.8.0 and Dart 3.4 in a Flutter project.
We are not using the library as a dependency of the project, instead, we are installing it on the CI running a step with the following command:
dart pub global activate arb_utils
This is the specific error message I encountered while trying to install it:
Failed to build arb_utils:arb_utils:
../../../.pub-cache/hosted/pub.dev/dcli-3.4.0/lib/src/util/wait_for_ex.dart:38:17: Error: Method not found: 'waitFor'.
    value = cli.waitFor<T>(wrapped);

The error comes from the arb_utils dependency on an outdated version of dcli. In dcli 4.0.0, the waitFor method has been completely removed because it is no longer supported in Dart 3.4. As a result, projects using Dart 3.4 and arb_utils face compatibility issues. Could you please update the dependency to align with the latest dcli version? Thanks.

Sure, @nicolantean. Just make the PR and I publish it this very night.

Hi @Rodsevich, #29 , please publish this pr
Thanks

Done! Thanks a lot, guys.


Threaded Binary Tree code added.

Have you read the Contributing Guidelines on Pull Requests?
Yes.
Description
I have contributed the code for threaded binary tree which is used to make faster inorder traversal without using stack or recursion.
It stores the inorder successor, if the right node is empty.
And stores the inorder predecessor if left node is empty.

There are functions to add, delete and search for an element.
Also the inorder for the tree.

Checklist

[x] I've read the contribution guidelines.
[x] I've checked the issue list before deciding what to submit.
[x] I've edited the README.md and link to my code.

Related Issues or Pull Requests
This is in relation to issue #1809

Format the Code as well using a Code Formatter.

Used techie delight for this. Please do check and let me know if there are any other changes.

Format the Code as well using a Code Formatter.

Used techie delight for this. Please do check and let me know if there are any other changes.

@HarshCasper  @shraddhavp  Could you add the level tag for this PR to count towards DWOC?

@HarshCasper  @shraddhavp  Could you add the level tag for this PR to count towards DWOC?

done @vaishnavirshah

done @vaishnavirshah


Coordinate Conversion addin gives "please enter a valid coordinate" for table of valid coordinates

Using the Released version (Sept 2018) as well as the latest build of CC on Pro 2.2, I'm seeing an issue on import of a particular CSV table not working. When I browse to the table and specify the "Coordinate" field (contains values like "36.662872 -121.609567") and run the import process results in "please enter a valid coordinate" message,
NewExportTest.zip
If I import the MGRS coordinate it works fine.
The table looks like this:
Coordinate,MGRS
36.662872 -121.609567,10S FF 24262 58375
36.682064 -121.764953,10S FF 10347 60314
36.65265 -121.798825,10S FF 07362 57012
36.582895 -121.880858,10S FF 00119 49185
36.597818 -121.873599,10S FF 00750 50849
36.587394 -121.841267,10S FF 03655 49727
36.604657 -121.911156,10S EF 97382 51568
36.615057 -121.899023,10S EF 98453 52735
36.603516 -121.955828,10S EF 93387 51398
36.615887 -121.941907,10S EF 94617 52783
36.57764 -121.670331,10S FF 18962 48842

I could not repro this issue release several different combinations of input/output coordinate display settings and map projections. The issue seems similar to #551 but the issue was reopened after that fix was #554 merged.
Recommend closing again until we have a consistent set of repro steps.
Tested on Pro 2.3 (final) and January, 2018 release


WIP: Motion sensor interface, and MPU9250 driver

The PR adds an interface for different motion sensors, and an implementation based on the MPU9250. The MPU9250 driver supports both SPI and I2C interfaces. The MPU9250 interface depends on a separate register crate, which exposes all register addresses and fields.

TODO:

[ ] Finish the SPI interface. AK8963 doesn't seem to return magnetometer readings at the moment.
[ ] The entire I2C interface.


Samples collected LOV showing Repository numbers

What should this point to in order to add a new sample?

@LeannePyle  - The repository numbers are what we all decided on for the display value for fossil samples. If you want to create a new sample from one of the other resources (eg publication or collection event) start a search and then type in a character string that doesn't exist (eg asdfasdf) and the "Create new Fossil Sample" option should appear.


Interactive bst operations fail with open workspaces

See original issue on GitLab
In GitLab by [Gitlab user @cs-shadow] on Oct 18, 2019, 17:46
Summary
When doing any bst operations involving an element with open workspace, BuildStream throws an AssertionError. Interestingly, this only happens when running bst interactively (i.e. when attached to a tty).
This is probably a regression introduced by the "Workspaces via CAS" effort.
Steps to reproduce
# Clone https://gitlab.com/BuildStream/buildstream and cd into it
#
cd tests/frontend/project
bst workspace open import-bin.bst --directory dir
bst show import-bin.bst
# Watch bst throw an assertion error
# Included stack trace at the bottom

# Funnily enough, the following command succeeds
bst show imort-bin.bst | tee
# All good!

What is the current bug behavior?
bst throws assertion errors when running any commands on a workspaced element.
What is the expected correct behavior?
We don't get an assertion error and the command succeeds.
Relevant logs and/or screenshots
# Bad
/src/tests/frontend/project> bst show import-bin.bst
[--:--:--][        ][    main:core activity                 ] START   Loading elements
[00:00:00][        ][    main:core activity                 ] SUCCESS Loading elements
[--:--:--][        ][    main:core activity                 ] START   Resolving elements
[00:00:00][        ][    main:core activity                 ] SUCCESS Resolving elements
[--:--:--][        ][    main:core activity                 ] START   Resolving cached state
[--:--:--][        ][    main:core activity                 ] BUG

    Traceback (most recent call last):
      File "/usr/local/bin/bst", line 8, in <module>
        sys.exit(cli())
      File "/usr/local/lib/python3.7/site-packages/click/core.py", line 764, in __call__
        return self.main(*args, **kwargs)
      File "/src/src/buildstream/_frontend/cli.py", line 244, in override_main
        standalone_mode=standalone_mode, **extra)
      File "/usr/local/lib/python3.7/site-packages/click/core.py", line 717, in main
        rv = self.invoke(ctx)
      File "/usr/local/lib/python3.7/site-packages/click/core.py", line 1137, in invoke
        return _process_result(sub_ctx.command.invoke(sub_ctx))
      File "/usr/local/lib/python3.7/site-packages/click/core.py", line 956, in invoke
        return ctx.invoke(self.callback, **ctx.params)
      File "/usr/local/lib/python3.7/site-packages/click/core.py", line 555, in invoke
        return callback(*args, **kwargs)
      File "/usr/local/lib/python3.7/site-packages/click/decorators.py", line 27, in new_func
        return f(get_current_context().obj, *args, **kwargs)
      File "/src/src/buildstream/_frontend/cli.py", line 537, in show
        except_targets=except_)
      File "/src/src/buildstream/_stream.py", line 151, in load_selection
        load_refs=load_refs)
      File "/src/src/buildstream/_stream.py", line 1283, in _load
        self._pipeline.resolve_elements(self.targets)
      File "/src/src/buildstream/_pipeline.py", line 163, in resolve_elements
        task.add_current_progress()
      File "/src/src/buildstream/_state.py", line 407, in add_current_progress
        self.set_current_progress(new_progress)
      File "/src/src/buildstream/_state.py", line 392, in set_current_progress
        self._render_cb()
      File "/src/src/buildstream/_messenger.py", line 424, in _render_status
        self._render_status_cb()
      File "/src/src/buildstream/_frontend/app.py", line 503, in _maybe_render_status
        self._status.render()
      File "/src/src/buildstream/_frontend/status.py", line 141, in render
        text = self._header.render(self._term_width, elapsed)
      File "/src/src/buildstream/_frontend/status.py", line 422, in render
        usage = cas.get_cache_usage()
      File "/src/src/buildstream/_cas/cascache.py", line 1049, in get_cache_usage
        self._cache_usage_monitor = _CASCacheUsageMonitor(self)
      File "/src/src/buildstream/_cas/cascache.py", line 1112, in __init__
        assert utils._is_single_threaded() and not cas.has_open_grpc_channels()
    AssertionError

# Good
/src/tests/frontend/project> bst show import-bin.bst | tee
[--:--:--][        ][    main:core activity                 ] START   Loading elements
[00:00:00][        ][    main:core activity                 ] SUCCESS Loading elements
[--:--:--][        ][    main:core activity                 ] START   Resolving elements
[00:00:00][        ][    main:core activity                 ] SUCCESS Resolving elements
[--:--:--][        ][    main:core activity                 ] START   Resolving cached state
[00:00:01][        ][    main:core activity                 ] SUCCESS Resolving cached state
      cached 6c44373cb1ad54802520e6dbea14bedaa2f52f1db33cda96598cadd901d191a2 import-bin.bst Workspace: /src/tests/frontend/project/dir

In GitLab by [Gitlab user @traveltissues] on Oct 21, 2019, 09:55
assigned to [Gitlab user @traveltissues]

In GitLab by [Gitlab user @traveltissues] on Oct 21, 2019, 09:55
assigned to [Gitlab user @traveltissues]

In GitLab by [Gitlab user @traveltissues] on Oct 21, 2019, 10:56
mentioned in merge request !1659

In GitLab by [Gitlab user @traveltissues] on Oct 21, 2019, 10:56
mentioned in merge request !1659

In GitLab by [Gitlab user @marge-bot123] on Oct 22, 2019, 12:17
closed via merge request !1659

In GitLab by [Gitlab user @marge-bot123] on Oct 22, 2019, 12:17
closed via merge request !1659

In GitLab by [Gitlab user @marge-bot123] on Oct 22, 2019, 12:17
mentioned in commit 735b005f62f3083f46d6cdba837aa0e320856ea3

In GitLab by [Gitlab user @marge-bot123] on Oct 22, 2019, 12:17
mentioned in commit 735b005f62f3083f46d6cdba837aa0e320856ea3


Add a projector observable to QiskitDevice

Context:
Adding a projector observable to QiskitDevice.
Description of the Change:
Adding Projector to the list of observables compatible with QiskitDevice in qiskit_device.py.
Related GitHub PR:
Work coherently with PR #1356

@josh146 , I added docstrings here because I saw CodeFactor in the github workflow was complaining about not having docstrings under the functions. I'm not sure why the docstrings weren't inherited from the parent class, and I'm not familiar enough with Sphinx to understand why. The flagged issues can be found here.
Could you give me a bit of help here?

I saw CodeFactor in the github workflow was complaining about not having docstrings under the functions

Thanks for flagging this @wongwsvincent --- it appears that Codefactor is incorrect here, and these particular methods do not need docstrings.
Feel free to remove them, even if codefactor complains about the missing docstrings, I will be able to overwrite those :)

Thanks for clarifying, @josh146 ! I have removed the docstrings.


Update apple touch icons and gov.uk_logotype_crown_invert image

What

Update the Apple touch icons included in static
Replace gov.uk_logotype_crown_invert.png with new logo

Why

Apple touch icons need to be updated with the new Tudor crown versions - Trello card
The gov.uk_logotype_crown_invert.png is used in the travel advice publisher application for print previews and needs to be updated with the new Tudor crown - Trello card

Visual Changes
Apple touch icons
The before and after images can be previewed on this commit - https://github.com/alphagov/static/pull/3224/commits/069accde18b963c30ab6533449b89a4100958c00
Travel advice publisher - print preview
This version of the logo is included in the print view template.
An example of where this is used is in the Travel Advice Publisher application when printing an historical_edition

Before
After

This looks like it should work 👍 Although as discussed with Martin, I'm still seeing the old icon when testing this via Browserstack with "Add to home screen" in iOS Safari. But it's possible that the old asset is being cached. We're going to test this again when it goes on integration which should be a more reliable indicator.

@hannalaakso just wanted to confirm that we are now seeing the apple touch icons on Integration, I've included some screenshots from Browserstack below:

Device
Before
After

iOS

Android

However, the reason we are now seeing the icons on Integration is that we are currently using the test branch of the publishing components gem which includes 4.8 of the Design System, which is where the new icons are coming from.
The apple touch icons included in static appear to be used as a fallback to help avoid 404 errors for the favicon asset itself. I created a new Trello card to look at this further in the future, to review if the icons and routes are still required - https://trello.com/c/AqCgrXqK/42-review-and-improve-apple-touch-icon-redirects-used-in-static


Pop key "segment" from list "data_dict"

It seems like the key segment is popped from a list data_dict -should be a dict- containing multiple dicts which do have the key segment in them.
(https://github.com/Pointcept/Pointcept/blob/df36980119f4636beb2d02d04ef3b2fec0fddfba/pointcept/datasets/defaults.py#L101)
As this is the default file for several datasets, it seems to me I'm causing this error myself. To give context: I altered the nuScenes preprossessing file to be able to preprocess, train and test on nuScenes-mini dataset:

The preprocessing does succesfully generate the Pickle files. In addition, the train script does seem to run but the test script does nost. Do you have any clue on what might cause this issue? Please find the complete Traceback below
(pointcept) root@docker-desktop:/PointTransformerV3/Pointcept# sh scripts/test.sh -g 0 -d nuscenes -c nuscenes-semseg-pt-v3m1-0-base_config -n semseg-pt-v3m1-0-base
Experiment name: semseg-pt-v3m1-0-base
Python interpreter dir: python
Dataset: nuscenes
GPU Num: 0
Loading config in: configs/nuscenes/nuscenes-semseg-pt-v3m1-0-base_config.py
Running code in: exp/nuscenes/semseg-pt-v3m1-0-base/code
 =========> RUN TASK <=========
[2024-04-24 20:21:08,283 INFO test.py line 41 88861] => Loading config ...
[2024-04-24 20:21:08,283 INFO test.py line 48 88861] => Building model ...
[2024-04-24 20:21:08,693 INFO test.py line 61 88861] Num params: 46159312
[2024-04-24 20:21:09,036 INFO test.py line 68 88861] Loading weight at: exp/nuscenes/semseg-pt-v3m1-0-base/model/model_best.pth
[2024-04-24 20:21:10,268 INFO test.py line 80 88861] => Loaded weight 'exp/nuscenes/semseg-pt-v3m1-0-base/model/model_best.pth' (epoch 48)
[2024-04-24 20:21:10,271 INFO test.py line 53 88861] => Building test dataset & dataloader ...
[2024-04-24 20:21:10,282 INFO defaults.py line 58 88861] Totally 81 x 1 samples in test set.
[2024-04-24 20:21:10,283 INFO test.py line 119 88861] >>>>>>>>>>>>>>>> Start Evaluation >>>>>>>>>>>>>>>>
1 <class 'dict'>
966 data par list
2 <class 'list'>
3 966
Traceback (most recent call last):
  File "tools/test.py", line 38, in <module>
    main()
  File "tools/test.py", line 27, in main
    launch(
  File "/PointTransformerV3/Pointcept/pointcept/engines/launch.py", line 89, in launch
    main_func(*cfg)
  File "tools/test.py", line 20, in main_worker
    tester.test()
  File "/PointTransformerV3/Pointcept/pointcept/engines/test.py", line 160, in test
    for idx, data_dict in enumerate(self.test_loader):
  File "/root/miniconda3/envs/pointcept/lib/python3.8/site-packages/torch/utils/data/dataloader.py", line 630, in __next__
1 <class 'dict'>
    data = self._next_data()
  File "/root/miniconda3/envs/pointcept/lib/python3.8/site-packages/torch/utils/data/dataloader.py", line 1345, in _next_data
    return self._process_data(data)
  File "/root/miniconda3/envs/pointcept/lib/python3.8/site-packages/torch/utils/data/dataloader.py", line 1371, in _process_data
    data.reraise()
  File "/root/miniconda3/envs/pointcept/lib/python3.8/site-packages/torch/_utils.py", line 694, in reraise
    raise exception
TypeError: Caught TypeError in DataLoader worker process 0.
Original Traceback (most recent call last):
  File "/root/miniconda3/envs/pointcept/lib/python3.8/site-packages/torch/utils/data/_utils/worker.py", line 308, in _worker_loop
    data = fetcher.fetch(index)
  File "/root/miniconda3/envs/pointcept/lib/python3.8/site-packages/torch/utils/data/_utils/fetch.py", line 51, in fetch
    data = [self.dataset[idx] for idx in possibly_batched_index]
  File "/root/miniconda3/envs/pointcept/lib/python3.8/site-packages/torch/utils/data/_utils/fetch.py", line 51, in <listcomp>
    data = [self.dataset[idx] for idx in possibly_batched_index]
  File "/PointTransformerV3/Pointcept/pointcept/datasets/defaults.py", line 138, in __getitem__
    return self.prepare_test_data(idx)
  File "/PointTransformerV3/Pointcept/pointcept/datasets/defaults.py", line 106, in prepare_test_data
    segment=data_dict.pop("segment"), name=self.get_data_name(idx)
TypeError: 'str' object cannot be interpreted as an integer

@LiuStan99

GirdSample in PTv3 config file
https://github.com/Pointcept/Pointcept/blob/c759914eb3ab8255455c80c00472ab0bc664a20c/configs/nuscenes/semseg-pt-v3m1-0-base.py#L161
will return a list as defined:
https://github.com/Pointcept/Pointcept/blob/c759914eb3ab8255455c80c00472ab0bc664a20c/pointcept/datasets/transform.py#L881

I think the problem here is that when the GridSample is called in test mode, it returns a list. But the test dataset preparation function, as @dninfa suggested, expects a dictionary from which it can pop the 'segment'

As most of the config for test dataset, GirdSampling in the test.transform is not test mode. https://github.com/Pointcept/Pointcept/blob/main/configs/nuscenes/semseg-pt-v3m1-0-base.py#L164


resolving crash on voting and repoting

https://openedx.atlassian.net/browse/MA-2126

@aleffert please review

Current coverage is 48.01%

Merging #678 into master will decrease coverage by -0.02% as of cb4783d

@@            master    #678   diff @@
======================================
  Files          424     424
  Stmts        28108   28125    +17
  Branches         0       0
  Methods          0       0
======================================
  Hit          13503   13503
  Partial          0       0
- Missed       14605   14622    +17

Review entire Coverage Diff as of cb4783d

Powered by Codecov. Updated on successful CI builds.

Factor those repetitive methods and the change looks good. But again, our goal is to get test coverage to go up on every PR. And in particular, for bug fixes (especially crashes!), we should add a regression test for that bug. If you need help figuring that out, let me know. The high level idea is going to be to trigger a voting action on the controller. When you're writing a test, it often helps to write it against the old code so you're sure that the test actually catches the issue. Then you change the code so the bug is gone and the test passes.

@aleffert this test testScreenAnalyticsEmitted is passing on my machine but its failing on git.
I added test cases for new changes but coverage is still down

@aleffert please review

:+1:


Update locales: de_DE, de_AT and es_ES

Thanks! For US, is it intentional that you're not having clocks to use am/pm at all? For 12 hour times it means there is no way to tell if the time is morning or evening...

I didn't change anything on the en_US locale. I only changed de_DE, de_AT and es_ES.
Or am i getting your comment wrong?

Ahh, sorry!  The lack of am/pm was for "de_AT" - and I see it's been done for some other German language stuff too

The lack of "ampm" caused a parsing error in the web interface when opening the custom dialog for the languages app for me. Therefore I added it for de_AT.


Use classes instead of objects and arrays

Because my coding partner has opted out of the program. I have been given permission to continue in this Block solo. If you have any questions please reach out to Marco at Student Success<EMAIL_ADDRESS>

What I have worked on in this Pull Request

[ ] Used JavaScript classes instead of objects and arrays.
[ ] Maintained all of the original functionality of the application.
[ ] Added CSS styles to the application to make it match the wireframe.

Hi @BenMukebo, this error is because in books.js file, while importing the two modules, book and localStorage eslint does not want me to add file extension .js to the file. When I add id it returns an eslint error, how would you advise me to go about it?


"behavior.avoid_block" missing docs on "target_selection_method" supported values

minecraft:behavior.avoid_block is missing documentation on "target_selection_method" supported values like the only one that seems to be shown is "nearest", with no others listed?

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

ID: c33eb1af-5377-48b1-c769-e4f4b9a45e0c
Version Independent ID: c33eb1af-5377-48b1-c769-e4f4b9a45e0c
Content: Entity Documentation - minecraft:behavior.avoid_block
Content Source: creator/Reference/Content/EntityReference/Examples/EntityGoals/minecraftBehavior_avoid_block.md
Product: gaming
GitHub Login: @mammerla
Microsoft Alias: v-jillheaden

It looks like you're right. Every mob example that uses "avoid_block" uses "nearest."
When bees use a similar behavior, move_to_block, which also uses target_selection_method, the default is "random" - but that wouldn't make sense for a mob to avoid random blocks.


phpExtensions.ftp: enable FTPS support

Motivation for this change
Enable FTPS support.
cc @NixOS/php
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[ ] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 105808 run on x86_64-linux 1

2 packages marked as broken and skipped:

hhvm
php73Packages.phpmd

13 packages failed to build:

drush
php73
php73Extensions.ftp
php73Packages.box
php73Packages.composer
php73Packages.composer2
php73Packages.php-cs-fixer
php73Packages.php-parallel-lint
php73Packages.phpcbf
php73Packages.phpcs
php73Packages.phpstan
php73Packages.psalm
php73Packages.psysh

43 packages built:

adminer
arcanist
icingaweb2
libsForQt5.kcachegrind (kdeApplications.kcachegrind ,libsForQt515.kcachegrind)
libsForQt512.kcachegrind
libsForQt514.kcachegrind
lsp-plugins
matomo
matomo-beta
nagios
nextcloud-news-updater
phoronix-test-suite
php (php74)
phpExtensions.ftp (php74Extensions.ftp)
phpPackages.box (php74Packages.box)
phpPackages.composer (php74Packages.composer)
phpPackages.composer2 (php74Packages.composer2)
phpPackages.php-cs-fixer (php74Packages.php-cs-fixer)
phpPackages.php-parallel-lint (php74Packages.php-parallel-lint)
phpPackages.phpcbf (php74Packages.phpcbf)
phpPackages.phpcs (php74Packages.phpcs)
phpPackages.phpmd (php74Packages.phpmd)
phpPackages.phpstan (php74Packages.phpstan)
phpPackages.psalm (php74Packages.psalm)
phpPackages.psysh (php74Packages.psysh)
php80
php80Extensions.ftp
php80Packages.box
php80Packages.composer
php80Packages.composer2
php80Packages.php-cs-fixer
php80Packages.php-parallel-lint
php80Packages.phpcbf
php80Packages.phpcs
php80Packages.phpmd
php80Packages.phpstan
php80Packages.psalm
php80Packages.psysh
pulseeffects
qcachegrind
unit
wp-cli
yle-dl

  configure: error: Cannot find OpenSSL's <evp.h>

Result of nixpkgs-review pr 105808 run on x86_64-darwin 1

1 package marked as broken and skipped:

php80

2 packages failed to build:

drush
php73

11 packages built:

adminer
arcanist
icingaweb2
matomo
matomo-beta
nextcloud-news-updater
phoronix-test-suite
php (php74)
qcachegrind
wp-cli
yle-dl

php errrors with
configure: error: Cannot find OpenSSL's <evp.h>

Will the issues mentioned here be addressed? If it is, it can be rebased, have the conflicts fixed and then the issues fixed and re-opened.


auro-hyperlink: Feature Request - 'fluid' attribute for CTA buttons

Is your feature request related to a problem? Please describe.
<auro-button> has a fluid attribute (docs) which alters the width of the button to fill the full width of its parent container. The CTA button variant of <auro-hyperlink> does not currently support this.
Describe the solution you'd like
I would like the CTA buttons to support a fluid attribute, just like <auro-button>.
Describe alternatives you've considered
We considered using <auro-button> instead, but it would not be appropriate or accessible since we are linking out to a different URL.
Additional context
This is the Figma we are trying to implement. (Screenshot also posted below.) The "Continue to check in" CTA button at the bottom would link to the check-in page. (AB#756550)

@leeejune please reach out to the designer of this UI. There is an incorrect assumption of use with the Button UI over a hyperlink.
The use case here is that the designer wanted to use a Button UI, but this action is actually a hyperlink to a new page. @MattSidor reached out for updates to the CTA version of the hyperlink, but we need to review/discuss what that means.


Incompatibility in 'tf.GradientTape.watch' of TensorFlow 2.15 in Keras 3.0

I have a scalar-valued model and I want to extract the gradient of it with respect to one tensor of the set of variables. Since I want to avoid constructing the full graph, I want the 'tape' of TensorFlow to only watch some specific variables. However, I obtain an incompatibility error.
My setup is the following:
Python 3.11.5
Keras 3.0
Tensorflow 2.15
Below you can find a toy model problem:
import os
import numpy as np
import tensorflow as tf

os.environ["KERAS_BACKEND"] = "tensorflow"
import keras as keras

keras.utils.set_random_seed(1234)

class toy_model(keras.Model):
    def __init__(self, **kwargs):
        super(toy_model, self).__init__()

        self.layers_list = []
        self.layers_list.append(keras.layers.Dense(units=100,
                                                   activation="tanh",
                                                   use_bias=True))
        self.layers_list.append(keras.layers.Dense(units=1000,
                                                   activation="tanh",
                                                   use_bias=True))
        self.layers_list.append(keras.layers.Dense(units=10,
                                                   activation="tanh",
                                                   use_bias=True))
        self.layers_list.append(keras.layers.Dense(units=1,
                                                   activation=None,
                                                   use_bias=False))

    def call(self, inputs):
        x = inputs
        for layer in self.layers_list:
            x = layer(x)
        return x

model = toy_model() # Initialize the model

x = np.expand_dims(np.linspace(0, 10, num=20), axis=1) # Create an input data

model(x) # Feed the model to build the architecture and initialize the weights

with tf.GradientTape(watch_accessed_variables=False) as tape:
    tape.watch(model.weights[-1])
    out = model(x)
dout = tape.gradient(out,model.weights[-1])

The delivered error is the following:
ValueError: Passed in object <KerasVariable shape=(10, 1), dtype=float32, path=toy_model_1/dense_8/kernel> of type 'Variable', not tf.Tensor or tf.Variable or ExtensionType.
``

Hi,
The issue can be resolved if you replace model.weights[-1] to model.weights[-1].value since it involves KerasTensor.
Here is the working Gist for reference

Thank you, @sachinprasadhs !

Thank you for the support!

I am trying to perform gradient descent on the model.trainable variables, but the following errors appear:
Tensorflow version is 2.17.0
keras version is 3.4.1

def get_grad(model, X_train, data_train):
with tf.GradientTape(persistent=True) as tape:
    # This tape is for derivatives with
    # respect to trainable variables
    tape.watch(model.trainable_variables.value) #############################
    loss = compute_loss(model, X_train, data_train)

g = tape.gradient(loss, model.trainable_variables.value) #
del tape

return loss, g

Error:
AttributeError: in user code:
File "<ipython-input-13-fc15d0ce6166>", line 7, in train_step  *
    loss, grad_theta = get_grad(model, X_train, data_train)
File "<ipython-input-11-cca40e4543b3>", line 6, in get_grad  *
    tape.watch(model.trainable_variables.value)

AttributeError: 'list' object has no attribute 'value'


feat: #49/shipping billing

Closes #49
Description

Saving and loading shipping and billing data works, now I have to also fetch the shipping methods.
EDIT: Fetching Shipping Methods work but now I also have to figure out how to update the cart object.
EDIT: Everything works
https://user-images.githubusercontent.com/37120330/130353860-e74341da-f1d9-4b5d-8672-bcce858b2126.mov
Related Issue

Motivation and Context

How Has This Been Tested?

Screenshots (if appropriate):
Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

[ ] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[ ] I have read the CONTRIBUTING document.
[ ] I have added tests to cover my changes.
[ ] All new and existing tests passed.

@michaelbromley If you could take a look at GraphQL queries, mutations and fragments and @Mateuszpietrusinski if you could do a general check of this feature that would be great. I can offer a cute cat picture in return:

The queries & fragments look fine to me.
One thing I was wondering about: I could not see whether you are handling the ErrorResult cases for the various mutations. Very possibly I just was unable to locate this code given my unfamiliarity with the patterns.

For now I was just passing the basic ErrorResult fragment from the query/mutation. The error will be available in the error property of certain factory (like useShippingFactory) and can be accessible in the theme (frontend of the frontend ;)) but I also do not wanted to add to much complexity into one PR. I will create an issue to add other errors as framgents and error handling


Add MyXplor to company list

Please review our Contribution Guidelines to ensure your changes abides by it.
Review your changes and complete the checklist below.

[X] Company name
[X] Company description
[X] Company location
[X] GitHub link
[X] How Elixir is used

Thank you and welcome @GuyBransgrove 😁


XMLParser handles XML Declaration node incorrectly.

Godot version
4.0.beta16
System information
Linux 5.15.89-1 x86_64 (Manjaro XFCE)
Issue description
Take the following XML as an example:
<?xml version="1.0" encoding="utf-8"?>
<library>
    <book name="Pirates" genre="sci-fi" author="pew;" />
    <bookseries book_count="2">
        <book name="ABC" genre="education" author="also pew;" />
        <book name="DEF" genre="education" author="also pew;" />
    </bookseries>
</library>

According to the spec, XML files begin with an XML declaration. When trying to parse it, Godot fails and gives NodeType.NODE_UNKNOWN, making a lot of the functions on XMLParser return invalid data. The core problem might be the nonexistence of something like NodeType.NODE_XMLDECL, but doesn't matter in most cases; an acceptable and convenient solution would be XMLParser treating XML declaration as an empty element, but a separate node type would be nice too.
Steps to reproduce
Try to parse the above XML and print() a few properties for the xml declaration node: you'll see a lot of weird and incorrect stuff, for example, XMLParser.get_node_name() returning "?xml version="1.0" ...".
Minimal reproduction project
XMLParserIssue.zip

Related to https://github.com/godotengine/godot/issues/28768.

It's intended that the declaration is ignored and marked as NODE_UNKNOWN (as there is no suitable category for it).
https://github.com/godotengine/godot/blob/0a9e6e478e3183d7bf3c5cb895c706bc6275d3ea/core/io/xml_parser.cpp#L322-L324
https://github.com/godotengine/godot/blob/0a9e6e478e3183d7bf3c5cb895c706bc6275d3ea/core/io/xml_parser.cpp#L92-L105
The unwanted function behavior is documented. e.g. get_node_name() only makes sense when the current node is an element node. But it's indeed wrong that the function did not print an error when you try to call it.
https://github.com/godotengine/godot/blob/0a9e6e478e3183d7bf3c5cb895c706bc6275d3ea/doc/classes/XMLParser.xml#L58-L63

It's intended that the declaration is ignored and marked as NODE_UNKNOWN (as there is no suitable category for it).
https://github.com/godotengine/godot/blob/0a9e6e478e3183d7bf3c5cb895c706bc6275d3ea/core/io/xml_parser.cpp#L322-L324
https://github.com/godotengine/godot/blob/0a9e6e478e3183d7bf3c5cb895c706bc6275d3ea/core/io/xml_parser.cpp#L92-L105
The unwanted function behavior is documented. e.g. get_node_name() only makes sense when the current node is an element node. But it's indeed wrong that the function did not print an error when you try to call it.
https://github.com/godotengine/godot/blob/0a9e6e478e3183d7bf3c5cb895c706bc6275d3ea/doc/classes/XMLParser.xml#L58-L63

I believe there should at least be a workaround for getting xmldecl's attributes (some may want to check for version or encoding or whatever defined there). Replacing ?s with "" and  / before parsing is not really reliable.

@ItsAleph What's your use case for obtaining XML version and/or encoding?
XMLParser is not a full-featured parser. It won't do anything according to these information. e.g. It assumes the input is UTF-8 encoded. So you won't be able to handle a misencoded document with XMLParser even if you get the right encoding from XML declaration.

Bumped on this in Godot 4.0.3.
I assumed the expected behavior was as the code expects in doctool, which I was following as an example:
https://github.com/godotengine/godot/blob/329652b6feac2114c4e30062f18ece36d4e3addc/editor/doc_tools.cpp#L1176
But instead I get NODE_UNKNOWN and get_node_name() returns ?xml version="1.0" encoding="UTF-8" ?> without the opening <.
doctool gets away with it because later it has a fallback for NODE_UNKNOWN, so wasn't noticeable.


Group invitation notifications

FYI there are some PEP8 errors in the PR

Please close the two bugs in the commit msg.

Also you need to link the notification in the Resend button in the group_edit_invitation.html template.

Coverage increased (+0.1%) to 91.998% when pulling 085d76ddd934bf8dff54c19c3f3b194e1e3f9092 on johngian:1247222-group-notifications into 299700c64eadcbbcdf736bdcfdd5cc827795b70f on mozilla:master.

When listing the invites in the group_invitation_edit, please change the query to filter out the ones that have been accepted.

Looks good! Tested locally the basic functionality and everything seems to be working fine. r+wc :hamburger:

Coverage increased (+0.1%) to 91.995% when pulling f48c299d7395042707fd210bb0851c7dc114815c on johngian:1247222-group-notifications into 66bfb4fa0a43d38c78a8fdecde2fe1806721beeb on mozilla:master.

Coverage increased (+0.1%) to 91.986% when pulling<PHONE_NUMBER>9976afcf32b7e60f952627c148be2d on johngian:1247222-group-notifications into 44b3561ee457fc79456c2415818aefa9ac483db4 on mozilla:master.

Coverage increased (+0.1%) to 91.986% when pulling<PHONE_NUMBER>9976afcf32b7e60f952627c148be2d on johngian:1247222-group-notifications into 44b3561ee457fc79456c2415818aefa9ac483db4 on mozilla:master.

Coverage increased (+0.1%) to 91.986% when pulling 1a300a956bc0751c641876cc6d4732a6a24b24fc on johngian:1247222-group-notifications into 44b3561ee457fc79456c2415818aefa9ac483db4 on mozilla:master.