MoP Proxy, keep alive is not managed correctly causes connection to fail

Describe the bug
MQTT keep alive is initiated by the client, however per the MQTT spec keep alive only sends a PINGREQ control message if the keep alive time has been reached without any other MQTT message being sent and acknowledged by the broker. This means that if you are constantly interacting with a say topic-1 which is served by one broker, and you have inactive subscriptions on another broker, the client won't send PINGREQ, and therefore only the broker serving topic-1 is actually active, and the channel to the broker handling inactive subscriptions is not receiving any traffic causing the either IdleStateHandler (which is set to 30sec) to fail or keep alive interval to be exceeded. This ultimately causes the connection to the proxy to fail routinely, creating very instable connections. Also with the PINGREQ forwarding strategy used, you are getting a PINGREQ forwarded per topic you are subscribed to or previously published to, not per broker you are being forward to, meaning if you have 30 subscriptions and only 3 brokers, you end up getting 30 PINGRESP for every PINGREQ instead of just 3.
Ultimately the MoP Proxy is very broken for standard use cases. If the client is interacting with more than 1 topic, and either of those topics aren't seeing regular activity, the client connection can just fail suddenly. This ping forwarding strategy is ultimately flawed by the fact that PINGREQs aren't sent by clients who are actively interacting back and forth with the broker. I expect simply use cases where devices that connect only really interact with one topic are not impacted by this bug, but anything that might be subscribing on one topic and publishing on another is very likely to be impacted, which is an incredibly common use case.
To Reproduce
Steps to reproduce the behavior:

Setup a cluster of 3 brokers with MoP proxy enabled.
Connect an MQTT client with a 5 second keep alive.
Subscribe 3 topics where each topic is handled by a different broker.
Publish to one of those topics every second.
Observe the connection fail keep alive is exceeded.
MQTT socket will drop, client receives no disconnect message.

Expected behavior
Each PINGREQ receives one response under normal conditions, technically this doesn't break the client but it creates unnecessary traffic for a protocol designed to handle devices on low bandwidth networks. Inactivity on subscribed topics, and thus inactivity between proxy and broker, should not cause the connection between client and proxy to fail, nor should it cause the connection between proxy and broker to fail.

PR submitted for fix. We are still doing more testing on this, but it's greatly improved connection reliability for us so far.

I'm abandoning this effort. This patch has improved connection stability, and keep alive semantics between the client and the proxy. Previously I'd get a PINGRESP for every topic the client interacted with, this does not do that. I'm unsure how the MoP proxy has ever worked outside of maybe the most basic use cases.
Other issues I've noticed. AdapterChannel attempts reconnect, this reconnect NEVER sends an MQTT connect message. This means the reconnect fails, this failure causes a stack overflow because of unbound recursive retry. Even if you send a MQTT connection message this makes session state mismatch between brokers, because if you have cleanSession set to true, you end up with a cleanSession after reconnect with that broker but not other brokers. Really the only logical thing to do here is fail the entire proxy connection if any of the adapterChannels fail. You could try to build a more robust session state manager which you can somehow coordinate between brokers.
So far connections fail and seem to have trouble reconnecting with or without this change. With this change the connections seem to last several hours, but without the change and a keep alive of 3 seconds and constant stream of publishes, the client would fail in a matter of seconds. The current keep alive mechanism does not work, nor does it meet spec.
I honestly do not know how MoP proxy has ever worked in recent iterations. I'm fairly certain this isn't a matter of configuration after spending nearly a month troubleshooting several issues related to the proxy. The proxy is inherently complicated, and doesn't really seem to pose any tangible benefits. We are deciding to roll out own solution at this point as we believe the architecture of MoP is too complicated, redundant, and does not comply with MQTT spec.

This is a pretty major bug. It'd be nice to get a response to this given the MoP proxy, and therefore clustered Pulsar running MoP, are completely non-functional based on our evaluation.

I have tried to reproduce following the steps you described, but the client doesn't receive disconnect . Please add the reproduced test for this issue.

It's very difficult to add tests, because this failure happens as a result of clustered pulsar, and the adapter channels that connect the MoP proxy to the various brokers. You need at least 2 brokers to reproduce the disconnection issue. In order to reproduce in tests I'd either have to make a lot of test doubles, or create a very complicated integration test suite from the ground up. I can make a repository that can run through minikube or kind with a MQTT client that reproduces the issue. I mean, you can also audit the source code related to this and quickly conclude that it does not conform to the MQTT spec, or packet sniff a client connection to a MoP proxy connection and observe that you get multiple PINGRESP to each PINGREQ, this logic is made exceedingly clear in the source code also. It's very obvious to me you're skirting this issue.

Here are full steps to reproduce including a minikube setup with an example Java program. I recommend you observe everything in wireshark to see why it fails. https://github.com/TTCColorado/mop-proxy-bug-reproduction

Here are full steps to reproduce including a minikube setup with an example Java program. I recommend you observe everything in wireshark to see why it fails. https://github.com/TTCColorado/mop-proxy-bug-reproduction
I don't believe I'm misconfiguring anything, but feel free to check that and make sure things are in order. I recommend you observe the client's packets in wireshark with the provided command (in the README) to understand why things are failing. I use Paho because it is the most common Java MQTT client, and it's the one we are using where we've seen this failure occur.
I'm able to reliably reproduce this issue with this setup. I can also see all the behavior I've outlined above when observing this example.
Furthermore, I've work on other MQTT brokers I'm very familiar with the speicifcation, but also the project we are running on MoP has used 3 different MQTT implementations Mosquito, VerneMQ, and RabbitMQ's MQTT plugin. We've not had an issue running these same projects on any of these respective platforms. In fact, we do not see these same issues when running MoP in standalone without the MoP Proxy. However when running Pulsar in a cluster you are required to use MoP proxy. In the case where we run MoP Proxy on cluster Pulsar we see connections failing very frequently, within a couple seconds of startup. The provided link reproduces this issue reliably, and confirms the issue not only exists, but behaves in the way I have documented in great detail.

https://github.com/TTCColorado/mop-proxy-bug-reproduction/blob/5f8b78e6c00570a324be4c1da54acc3dc2b7f322/test-client/untitled/src/main/java/org/example/Main.java#L36
why do you connect the mop URL and not the proxy URL?

@Technoboy- Per the readme I'm forwarding the port from K8s like so kubectl port-forward pod/pulsar-broker-1 1883:5682. So I'm connecting to the 5682 proxy port, I'm just forwarding it to 1883. This makes it easier to filter and analyze MQTT packets in Wireshark.

Put the test in the package below and run the result.

package io.streamnative.pulsar.handlers.mqtt.mqtt5.hivemq.proxy;

import com.hivemq.client.mqtt.MqttGlobalPublishFilter;
import com.hivemq.client.mqtt.datatypes.MqttQos;
import com.hivemq.client.mqtt.mqtt5.Mqtt5BlockingClient;
import com.hivemq.client.mqtt.mqtt5.message.publish.Mqtt5Publish;
import io.streamnative.pulsar.handlers.mqtt.MQTTCommonConfiguration;
import io.streamnative.pulsar.handlers.mqtt.base.MQTTTestBase;
import io.streamnative.pulsar.handlers.mqtt.mqtt5.hivemq.base.MQTT5ClientUtils;
import lombok.extern.slf4j.Slf4j;
import org.testng.Assert;
import org.testng.annotations.Test;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Optional;
import java.util.Random;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicInteger;

/**
 * Default there will start 3 brokers
 */
@Slf4j
public class ProxyIntegrationTest extends MQTTTestBase {
    private final Random random = new Random();

    @Override
    public MQTTCommonConfiguration initConfig() throws Exception {
        MQTTCommonConfiguration conf = super.initConfig();
        conf.setMqttProxyEnabled(true);
        conf.getProperties().setProperty("systemEventEnabled", "false");
        conf.setSystemTopicEnabled(false);
        return conf;
    }

    @Test
    public void testProxyKeepAlive() throws Exception {
        String topicPrefix = "topic";
        Set<String> brokers = new HashSet<>();
        Set<String> topics = new HashSet<>();
        for (int i = 1; i <= 2000; i ++) {
            String topic = topicPrefix + i;
            final String ownedBroker = admin.lookups().lookupTopic(topic);
            boolean added = brokers.add(ownedBroker);
            if (added) {
                topics.add(topic);
                if (brokers.size() == 3) {
                    break;
                }
            }
        }
        // keep there are 3 topics in different brokers
        Assert.assertEquals(brokers.size(), 3);
        Assert.assertEquals(topics.size(), 3);

        ConcurrentMap<String, List<String>> sentMsg = new ConcurrentHashMap<>();
        ConcurrentMap<String, List<String>> receivedMsgs = new ConcurrentHashMap<>();

        CountDownLatch latch = new CountDownLatch(6);
        // start 3 consumers and 3 producers
        for (String topic : topics) {

            new Thread(new Runnable() {

                @Override
                public void run() {
                    try {
                        Mqtt5BlockingClient consumer = MQTT5ClientUtils.createMqtt5ProxyClient(
                                getMqttProxyPortList().get(random.nextInt(mqttProxyPortList.size())));
                        consumer.connectWith().keepAlive(5).send();
                        consumer.subscribeWith()
                                .topicFilter(topic)
                                .qos(MqttQos.AT_LEAST_ONCE)
                                .send();
                        Mqtt5BlockingClient.Mqtt5Publishes publishes = consumer.publishes(MqttGlobalPublishFilter.ALL);
                        while(true) {
                            final Optional<Mqtt5Publish> receive = publishes.receive(20, TimeUnit.SECONDS);
                            if (receive.isEmpty()) {
                                break;
                            }
                            final Mqtt5Publish msg = receive.get();
                            final List<String> datas = receivedMsgs.getOrDefault(topic, new ArrayList<>());
                            datas.add(new String(msg.getPayloadAsBytes()));
                            receivedMsgs.put(topic, datas);
                            log.info("received : {}", msg);
                        }
                        latch.countDown();
                    } catch (Exception e) {
                        log.error("consumer for topic : {} error", topic);
                        Thread.currentThread().interrupt();
                        throw new RuntimeException(e);
                    }
                }
            }).start();

            Thread.sleep(2000);

            new Thread(new Runnable() {
                @Override
                public void run() {
                    try {
                        Mqtt5BlockingClient producer = MQTT5ClientUtils.createMqtt5ProxyClient(
                                getMqttProxyPortList().get(random.nextInt(mqttProxyPortList.size())));
                        producer.connectWith().keepAlive(5).send();
                        AtomicInteger index = new AtomicInteger(1);
                        while (!Thread.interrupted() && index.get() <= 100) {
                            String msg = (topic + "-" + index.getAndIncrement());
                            producer.publishWith()
                                    .topic(topic)
                                    .qos(MqttQos.AT_LEAST_ONCE)
                                    .payload(msg.getBytes(StandardCharsets.UTF_8))
                                    .send();
                            final List<String> sents = sentMsg.getOrDefault(topic, new ArrayList<>());
                            sents.add(msg);
                            sentMsg.put(topic, sents);
                            Thread.sleep(1000);
                        }
                        latch.countDown();
                    } catch (Exception e) {
                        log.error("producer for topic : {} error", topic);
                        Thread.currentThread().interrupt();
                        throw new RuntimeException(e);
                    }
                }
            }).start();
        }

        latch.await();
        // check the result
        for (String topic : topics) {
            Assert.assertEquals(sentMsg.get(topic), receivedMsgs.get(topic));
        }
        // also you can search the logs if there are `disconnect` command in the console
    }

}

@Technoboy- This isn't really reproducing the same case, at least it doesn't seem to when I skim through it. The problem occurs when you have interacted with a number of topics across different brokers, but are only actively communicating on one topic. This means the client will not send keep alive since other control messages are being transmitted in the keep alive period. The failure happens because the other adapter channels become idle for a duration longer than the keep alive. Also it's very obvious in the code that PINGREQs are sent per entry in  the topicBroker map, and PINGRESP from the brokers are just sent back to the client. The source code make it very clear that PINGREQs get multiple responses, and my reproduced case shows exactly this behavior. That behavior is not correct.
Also not all client's implement keep alive the same. We use the Java Paho MQTT client, because it's the most popular. I'm not sure if HiveMQ supresses PINGREQ when other control messages are being sent. Depending on the behavior of this specific client you may not be able to reproduce the bug.
I can try to adapt this test case to reproduce the issue.

The problem in your test is that you are constantly keeping communication with all brokers. In my example I am communicating  continuously with only one broker after communicating with both. This means the proxy create adapter channels to all brokers, but then I only use one of those adapter channels continuously, meaning that the other adapter channel that is going unused for that duration. Also in your code you are creating a connection per consumer and producer, meaning each client will only communicate with one broker. I urge you to just simply audit the keep alive forwarding mechanism it's forwarding PINGREQ to every topicBroker the proxy session has cached, which means you get as many PINGRESP as you have topics interacted with. There is no possible way this is working correctly, and I've reproduced it several ways now as well as observed the very clear behavior of the source code.
If I move my example into this integration tests it fails. The client disconnects and publishing eventually fails. Don't really even need assertions, because publish will throw an exception when publish is attempted while the client is not connected.
package io.streamnative.pulsar.handlers.mqtt.mqtt5.hivemq.proxy;

import io.streamnative.pulsar.handlers.mqtt.MQTTCommonConfiguration;
import io.streamnative.pulsar.handlers.mqtt.base.MQTTTestBase;
import lombok.extern.slf4j.Slf4j;
import org.eclipse.paho.client.mqttv3.*;
import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence;
import org.testng.annotations.Test;

import java.util.Random;

/**
 * Default there will start 3 brokers
 */
@Slf4j
public class ProxyIntegrationTest extends MQTTTestBase {
    private static class Callback implements MqttCallback
    {

        @Override
        public void connectionLost( java.lang.Throwable throwable )
        {
            throw new RuntimeException("MQTT Client connection died");
        }

        @Override
        public void messageArrived( java.lang.String s, MqttMessage mqttMessage ) throws Exception
        {
            System.out.println( "Message arrived" );
        }

        @Override
        public void deliveryComplete( IMqttDeliveryToken iMqttDeliveryToken )
        {
        }
    }

    private final Random random = new Random();

    @Override
    public MQTTCommonConfiguration initConfig() throws Exception {
        MQTTCommonConfiguration conf = super.initConfig();
        conf.setMqttProxyEnabled(true);
        conf.getProperties().setProperty("systemEventEnabled", "false");
        conf.setSystemTopicEnabled(false);
        return conf;
    }

    @Test
    public void testProxyKeepAlivePaho() throws Exception {
        String serverUri = String.format( "tcp://<IP_ADDRESS>:%d", getMqttProxyPortList().get(random.nextInt(mqttProxyPortList.size())) );
        MqttAsyncClient client = new MqttAsyncClient(  serverUri, "test", new MemoryPersistence() );
        MqttConnectOptions connectOptions = new MqttConnectOptions();
        connectOptions.setCleanSession( true );
        connectOptions.setKeepAliveInterval(5);
        System.out.println( "connecting..." );
        client.connect( connectOptions ).waitForCompletion();
        System.out.println( "connected" );

        // Another bug, you need to make a connection before the MoP proxy will even respond to pings, because you don't
        // have any adapter channels open to forward PINGREQ messages to.
        client.subscribe( "testsub1", 1 ).waitForCompletion();

        // sleep the keep alive period to show that PING will happen in abscence of other messages.
        Thread.sleep( 6000 );

        // make more subscriptions to connect to multiple brokers.
        client.subscribe( "testsub2", 1 ).waitForCompletion();
        client.subscribe( "testsub3", 1 ).waitForCompletion();

        // publish QoS 1 message to prevent the need for PINGREQ. Keep alive only sends ping in abscence of other
        // messages. Refer to section <IP_ADDRESS> of the MQTT 3.1.1 specification.
        int i = 0;
        while (i < 20) {
            System.out.println( "Publishing message..." );
            client.publish( "test1", "test".getBytes(), 1, false ).waitForCompletion();
            Thread.sleep( 1000 );
            i++;
        }
        // MoP keep alive is 1.5 * keep alive, so 7.5 seconds in this case. After 7.5 seconds from the last PINGREQ
        // the connection will die.
    }
}

Add this to your pom dependencies:
       <dependency>
            <groupId>org.eclipse.paho</groupId>
            <artifactId>org.eclipse.paho.client.mqttv3</artifactId>
            <version>1.2.5</version>
            <scope>test</scope>
        </dependency>

@Technoboy- any news on this? Are you able to confirm what I've reported?

@Technoboy- I'm fine helping to work towards a solution, but I think the fix for this is going to be very involving, and will likely involve some major changes.


[FLINK-14175] [flink-connector-kinesis] Update KPL version to 0.13.1

This fixes https://github.com/awslabs/amazon-kinesis-producer/issues/224.

JIRA - https://issues.apache.org/jira/browse/FLINK-14175
mvn clean package succeeds after this change
The version upgrade has already been performed (hence tested) in Flink 1.10.0 as part of FLINK-12847.

What is the purpose of the change
This pull request upgrades the KPL version in flink-kinesis-connector to fix thread leak mentioned in ttps://github.com/awslabs/amazon-kinesis-producer/issues/224.
Brief change log
Update the KPL version from 0.12.9 to 0.13.1
Verifying this change
This change is a trivial rework / code cleanup without any test coverage.
Does this pull request potentially affect one of the following parts:

Dependencies (does it add or upgrade a dependency): (yes)
The public API, i.e., is any changed class annotated with @Public(Evolving): (no)
The serializers: (no)
The runtime per-record code paths (performance sensitive): (no)
Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Yarn/Mesos, ZooKeeper: no)
The S3 file system connector: (no)

Documentation

Does this pull request introduce a new feature? (no)
If yes, how is the feature documented? (not applicable)

Related: https://github.com/apache/flink/pull/9939

@flinkbot approve all

Hi,
I am upgrading kpl from 0.12.9 to 0.13.1.... but the service is not booting up.... Can you please once again verify the fix.


Linux VDI

Initial pull request for the Linux VDI Article

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

contributing-to/templates/azure-citrix-sample-diagram.png
:white_check_mark:Succeeded

contributing-to/templates/linux-vdi-citrix.md
:white_check_mark:Succeeded

contributing-to/templates/sample-solution.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

You'll need to move these files under /docs/example-scenario/[something]
Also please don't delete contributing-to/templates/sample-solution.md 😺

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs/example-scenario/infrastructure/linux-vdi-citrix.md
:white_check_mark:Succeeded
View

docs/example-scenario/infrastructure/media/azure-citrix-sample-diagram.png
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs/example-scenario/infrastructure/linux-vdi-citrix.md
:white_check_mark:Succeeded
View

docs/example-scenario/infrastructure/media/azure-citrix-sample-diagram.png
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Thermostat turns heater on and off as if set temp is higher than current temp, but it isn't

Please read carefuly this instructions and fill this form before writing an issue. It helps me to help you.

Version of the custom_component
6.6.0
Configuration
My VTherm attributes are the following:
hvac_modes:
  - hhvac_modes:
  - heat
  - "off"
min_temp: 7
max_temp: 30
target_temp_step: 0.5
preset_modes:
  - none
  - frost
  - eco
  - comfort
  - boost
current_temperature: 17.9
temperature: 16.5
hvac_action: heating
preset_mode: none
is_on: true
hvac_mode: heat
type: null
is_controlled_by_central_mode: true
last_central_mode: Auto
frost_temp: 16
eco_temp: 19
boost_temp: 23
comfort_temp: 21
frost_away_temp: 0
eco_away_temp: 0
boost_away_temp: 0
comfort_away_temp: 0
power_temp: null
target_temperature_step: 0.5
ext_current_temperature: 4.9
ac_mode: false
current_power: null
current_power_max: null
saved_preset_mode: none
saved_target_temp: 16.5
saved_hvac_mode: null
motion_sensor_entity_id: null
motion_state: null
power_sensor_entity_id: null
max_power_sensor_entity_id: null
overpowering_state: null
presence_sensor_entity_id: null
presence_state: null
window_state: "off"
window_auto_state: "off"
window_bypass_state: false
window_sensor_entity_id: null
window_delay_sec: null
window_auto_enabled: false
window_auto_open_threshold: null
window_auto_close_threshold: null
window_auto_max_duration: null
window_action: window_turn_off
security_delay_min: 60
security_min_on_percent: 0.5
security_default_on_percent: 0.1
last_temperature_datetime: "2024-11-09T06:26:01.750534+11:00"
last_ext_temperature_datetime: "2024-11-09T06:38:07.316543+11:00"
security_state: false
minimal_activation_delay_sec: 10
device_power: 2
mean_cycle_power: 0.64
total_energy: 723.03
last_update_datetime: "2024-11-09T06:44:31.867615+11:00"
timezone: Australia/Sydney
temperature_unit: °C
is_device_active: true
ema_temp: 17.9
is_used_by_central_boiler: false
temperature_slope: -0.2
hvac_off_reason: null
is_over_switch: true
is_inversed: false
keep_alive_sec: 0
underlying_entities:
  - switch.jeremy_s_heater_switch
on_percent: 0.32
power_percent: 32
on_time_sec: 96
off_time_sec: 203
cycle_min: 5
function: tpi
tpi_coef_int: 0.6
tpi_coef_ext: 0.1
friendly_name: Jeremy's Thermostat
supported_features: 401

If it is releveant to regulation performance or optimisation some curves are needed
To have a great curves demonstrating what you think is a problem, please install and configure what is described here: Even better with Plotly to tune your Thermostat
Describe the bug
The set temp is 16.5, the current temp is 17.9, so the heater shouldn't be turning on. But it is going through the on/off heading cycle. This started this morning a few hours ago.

I'm trying to:
have my heater no longer warm when the room is already warm enough
And I expect:
the heater to stay off when the room is warmer than the set temperature
But I observe this ....
Heater turns on/off in heating cycle of approximately 5 minutes
I read the documentation on the README.md file and I don't find any relevant information about this issue.
Debug log
2024-11-09 06:56:30.293 DEBUG (MainThread) [custom_components.versatile_thermostat.base_thermostat] VersatileThermostat-Jeremy's Thermostat - Checking new cycle. hvac_mode=heat, security_state=False, preset_mode=none
2024-11-09 06:56:30.293 DEBUG (MainThread) [custom_components.versatile_thermostat.base_thermostat] VersatileThermostat-Jeremy's Thermostat - Window auto is on, check the alert. last slope is -0.230
2024-11-09 06:56:30.293 DEBUG (MainThread) [custom_components.versatile_thermostat.base_thermostat] VersatileThermostat-Jeremy's Thermostat - Window auto event is ignored because bypass is ON or window auto detection is disabled
2024-11-09 06:56:30.293 DEBUG (MainThread) [custom_components.versatile_thermostat.base_thermostat] VersatileThermostat-Jeremy's Thermostat - power not configured. check_overpowering not available
2024-11-09 06:56:30.293 DEBUG (MainThread) [custom_components.versatile_thermostat.base_thermostat] VersatileThermostat-Jeremy's Thermostat - checking security delta_temp=0.0 delta_ext_temp=8.4 mod_cond=True temp_cond=False climate_cond=False switch_cond=False
2024-11-09 06:56:30.293 DEBUG (MainThread) [custom_components.versatile_thermostat.underlyings] VersatileThermostat-Jeremy's Thermostat-switch.jeremy_s_heater_switch - Starting new cycle hvac_mode=heat on_time_sec=81 off_time_sec=218 force=False
2024-11-09 06:56:30.293 DEBUG (MainThread) [custom_components.versatile_thermostat.underlyings] VersatileThermostat-Jeremy's Thermostat-switch.jeremy_s_heater_switch - A previous cycle is alredy running and no force -> waits for its end
2024-11-09 06:56:30.294 DEBUG (MainThread) [custom_components.versatile_thermostat.underlyings] VersatileThermostat-Jeremy's Thermostat-switch.jeremy_s_heater_switch - End of cycle (2)
2024-11-09 06:56:30.295 DEBUG (MainThread) [custom_components.versatile_thermostat.thermostat_switch] VersatileThermostat-Jeremy's Thermostat - Calling update_custom_attributes: {'is_on': True, 'hvac_action': <HVACAction.IDLE: 'idle'>, 'hvac_mode': <HVACMode.HEAT: 'heat'>,

error_log.bin.txt

Thankyou. You are correct. I'm so sorry to have troubled you with this.
I don't remember changing the coef_ext, but I must have done so. Perhaps one day I experimented and later I reverted it by re-typing but missed the zero.

There is a bug in the UI which prevent to type: 0.01. You have to copy/past the value


Support multiple identical patterns

Related to https://github.com/aurelia/router/issues/433.

@gheoan Is this a placeholder? I don't see any commits.

@EisenbergEffect There are 2 commit but the PR is not ready to be merged. I'm still thinking on how to normalize the url provided by the user.

It's been quite some time and the branch has conflicts, so closing for now. Please submit a new PR if there's interest to continue working on this.


Add missing get_serialized_message_size method.

Signed-off-by: Michael Carroll<EMAIL_ADDRESS>

Linux
Linux-aarch64
macOS
Windows

Please add a description to the ticket what problem it fixes and what the symptom is / how to reproduce the fixed problem.

Linux
Linux-aarch64
macOS
Windows

macOS CI errors are related to: https://github.com/ros2/build_cop/issues/199


Question: Controlling animation state within a button

First of all, THANK YOU for creating this :) Super easy to plug into my react app and get lottie-ing :)
Just wondering how best to implement a clickable 'like' button like the twitter example. Most things I see are all loops and i'm unsure how to get the animation to pause/stop.
I thought what i could do was start with loop: false, autoplay: false and my initial state isStopped: true. Then onClick: basically just set isStopped to false as well, so that way the heart would go from grey to pink, then stop.
The tricky bit next was how to either a) 'reset' it back to frame 1 or b) reverse the direction of the animation and play in reverse til it hits frame 1.
Any ideas?
Secondly, the documentation on the bodymovin repo for direction is a little vague, but from looking at your source code am i correct in assuming that -1 is reverse?
I have a rough sketch here,
export default class LottieControl extends React.Component {
    constructor(props) {
        super(props);
        this.state = { isPaused: true, isLiked: false };
    }

    handleClick = () => {
        const { isLiked } = this.state;
        if (!isLiked) {
            this.setState({ direction: 1, isPaused: false, isLiked: true });
        } else {
            this.setState({ direction: -1, isPaused: false, isLiked: false });
        }
    };

    render() {
        const buttonStyle = {
            display: 'block',
        };

        const defaultOptions = {
            loop: false,
            autoplay: false,
            animationData: animationData,
            direction: this.state.direction || 1,
        };

        return (
            <div>
                <button style={buttonStyle} onClick={this.handleClick}>
                    <Lottie
                        options={defaultOptions}
                        height={100}
                        width={100}
                        isPaused={this.state.isPaused}
                    />
                </button>
            </div>
        );
    }
}

Just adding to this.... I have noticed that in order to 'reset' the animation i can set isStopped: true which seems to reset it back to the initial frame. And I just removed isPaused altogether.
That seems to do the trick, however I think it might still be cool if you could play back in reverse and stop at frame 1?

I need to clarify your requirement, do you want to toggle your like button like this?

gray unlike -> click -> pink like -> click -> gray unlike

If so, I suggest you to use direction toggle with setting loop & autoplay to false.
onClick={() => this.setState({direction: this.state.direction * -1})}

Here is a toggle like example :)

@chenqingspring oh excellent, thank you! I think it's great having this example in storybook now too. :)

you're welcome ：）

@chenqingspring
How can I see the code behind the toggle example?
The link show me only the animation.


Compatibility Issues between Powershell Modules

I made a fresh install of the necessary Powershell Modules. With the latest Exchange Online Management Module (3.5.0) installed I got an Error when the Script tries "Connect-MgGraph". The Error was like "Dependency not found".
After installing the prior EXO Module 3.4.0 it works as expected.

Hi there @mihanf,
Thank you for reporting this issue. Unfortunately, this is an issue with the Microsoft.Identity.Client dependency in both the Exchange PowerShell module and Microsoft Graph PowerShell modules and appears to be a recurring problem with updates to either or both modules.
Previous example:
Connect-MgGraph Interactive not working if connected at first to Exchange Online PS


Installs are Partially Broken

We are currently tracking down an issue with some python dependencies not being installable. This mostly affects python2 but does affect python3.
You'll see something like salt was installed but with some failures, around ~50 or so. Watch for this issue to be closed.

If this build is broken, which previous release should I use in its place? Thanks!

None at the moment, we are working on a fix. Something changed with apt packages that are conflicting with python stuff and it's a deep nested problem that's not readily identifiable.

Builds should be working again.

Still getting errors. After the sudo cast install, it reports 3 failed states.
Running sift creates an erro, and says to: sudo apt install python3-guiqwt
I install that, an try sift again. This time, it asks for salt-master
I try sudo apt install salt-master, and it can't find it.


[WIP]Migrate tenant controller to kubebuilder v2

Signed-off-by: Fan Shang Xiang<EMAIL_ADDRESS>

/assign @fei-guo

/ok-to-test

@MartinForReal Thanks for working on this! Since this change completely restructure the entire tenant repo, you'd better add a reasonable change description to explain what you have done. Also please edit the README.md to list the proper steps to install/uninstall the tenant crd/controllers with kubebuilder 2.0 architecture. Please also add your testing results in your change description (can be manual tests for webhooks) to verify the existing webhook functionalities are not broken.
Again, thanks for your great effort of doing this. Let us just follow some great K8s coding conventions to make a change as clearly as possible.

Sure, I will work on this. Thanks for the instructions.
/unassign @Fei-Guo
/assign

Can we close this?

/close
We probably will revisit this later.


Request to Make Options to pass SHA/Ref

Is it possible to have this extended to pass in a SHA or Ref instead of defaulting to the default branch? I would like to use this to make a commit not to my master, but to a designated branch so that I can generate a PR into my master branch.
Please suggest if this is already possible.

I added ref input parameter.
@Emily-Thomas

Thank you so much, I will test this out and let you know.

@jaywcjlove I am trying to use this but am getting the error [PATH] does not match [REF] after modifyPathContents Body: runs

Here is a copy of my setup.
    - name: New Branch       uses<EMAIL_ADDRESS>     env:         GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}       with:         branch: 'bossaccess-${{ steps.date.outputs.date }}'         sha: '${{ github.event.pull_request.head.sha }}'     - uses: actions/checkout@v3       with:         ref: 'bossaccess-${{ steps.date.outputs.date }}'     - name: Modify Conf       uses: jaywcjlove/github-action-modify-file-content@main       with:         path: conf/environments/prod/boss.conf         body: ${{ steps.getdata.outputs.data }}         ref: 'bossaccess-${{ steps.date.outputs.date }}'

If I had to guess the error is getting thrown here https://github.com/jaywcjlove/github-action-modify-file-content/blob/cf1ca3c2d93367421f510349ae2e75b2ddb46cb8/src/index.ts#L44

@Emily-Thomas
specify branch changes
- name: Modify test test/overwrite.file.md
  uses: github-action-modify-file-content@main
  with:
    branch: test
    path: test/overwrite.file.md
    body: "{{date:YYYY-MM-DD HH:mm:ss}}"
    overwrite: 'true'

https://github.com/jaywcjlove/github-action-modify-file-content/blob/58e4b5581d8e3b61025c4e8b09888ae516a256aa/.github/workflows/ci.yml#L28-L35

Okay, I updated to use that format. Now the logging is correct in the action workflow, but the commit that is made is an empty commit. I've tried a few combinations of using path + ref, only path, only ref, using overwrite/not using overwrite and the result is the same, an empty commit. However when I go through the logging of the function, it is grabbing the right tag in the file and replacing it - just not saving or commiting those changes. @jaywcjlove - I appreciate the timely help and changes here.

Your latest changes work for me. Thanks for being so responsive to my issues. I was able to implement this action into my codebase successfully.


CASSANDRA-18584 NOT Operator - part 1

Thanks for sending a pull request! Here are some tips if you're new here:

Ensure you have added or run the appropriate tests for your PR.
Be sure to keep the PR description updated to reflect all changes.
Write your PR title to summarize what this PR proposes.
If possible, provide a concise example to reproduce the issue for a faster review.
Read our contributor guidelines
If you're making a documentation change, see our guide to documentation contribution

Commit messages should follow the following format:
<One sentence description, usually Jira title or CHANGES.txt summary>

<Optional lengthier description (context on patch)>

patch by <Authors>; reviewed by <Reviewers> for CASSANDRA-#####

Co-authored-by: Name1 <email1>
Co-authored-by: Name2 <email2>

The Cassandra Jira

I think we need to update the doc to include the new operators. I've found these places in a quick scan:

https://github.com/apache/cassandra/blob/trunk/doc/modules/cassandra/examples/BNF/select_statement.bnf#L19
https://github.com/apache/cassandra/blob/trunk/doc/cql3/CQL.textile?plain=1#L932
https://github.com/apache/cassandra/blob/trunk/doc/cql3/CQL.textile?plain=1#L1003
https://github.com/apache/cassandra/blob/trunk/doc/cql3/CQL.textile?plain=1#L1123
https://github.com/apache/cassandra/blob/trunk/doc/modules/cassandra/partials/sai/supported-query-operators-list.adoc
https://github.com/apache/cassandra/blob/trunk/doc/modules/cassandra/pages/developing/cql/cql_singlefile.adoc?plain=1#L1689

We do not add NOT to SAI.
https://github.com/apache/cassandra/blob/trunk/doc/modules/cassandra/partials/sai/supported-query-operators-list.adoc - this one is overall inaccurate, it should be corrected in CASSANDRA-19829
I will take care of the others, thanks! Good call!

Sorry for the last bunch of comments after having approved the PR. While looking at the last doc changes I found some minor issues with autocompletion, and a bug in queries of the form SELECT * FROM t WHERE TOKEN(k) != 1.

This is the latest rebased branch with all the changes requested and not squashed so things shifted can be easily identified, and we have the PR branch as a backup (when I force push things get lost often, so I prefer the new branch)
https://github.com/ekaterinadimitrova2/cassandra/tree/C18584-final-not-squashed
This is the clean CI run:
https://app.circleci.com/pipelines/github/ekaterinadimitrova2/cassandra/2729/workflows/cdf57ccd-b1c2-4eff-a20d-ef9b35701e6b
Clean CI:
https://app.circleci.com/pipelines/github/ekaterinadimitrova2/cassandra/2730/workflows/9da99499-9514-46ab-84b2-9038e9dfafde


How can I get the new Angular template without Visual Studio?

Description
Could there please be instructions for Visual Studio code or how to do things through the command line?
Page URL
https://learn.microsoft.com/en-us/aspnet/core/client-side/spa/angular?view=aspnetcore-8.0&source=recommendations&tabs=visual-studio
Content source URL
https://github.com/dotnet/AspNetCore.Docs/blob/main/aspnetcore/client-side/spa/angular.md
Document ID
c58d57e5-a0c2-201d-f6dd-076ad5971fcb
Article author
@SteveSandersonMS

Associated WorkItem - 280320

dotnet new angular

@Rick-Anderson That doesn't seem to work. I am on 8.0.301. Is the one you are thinking of discontinued this release: https://learn.microsoft.com/en-us/dotnet/core/tools/dotnet-new-sdk-templates#spa ?

What doesn't work?
c:\tmp>dotnet new angular
The template "ASP.NET Core with Angular" was created successfully.

Processing post-creation actions...
Restoring c:\tmp\tmp.csproj:
Restore succeeded.

@Rick-Anderson Yes, can there be support for non-VS folks?
These SPA templates sometimes feel over engineered, but at least I should try to study it and adjust it to what I think would be best for me

@Rick-Anderson Is it ok if this kindly remains open so it's visible and someone can pick it up?

@Donistivanov in the mean time have you looked at Blazor? Although Angular is still support, most of the development effort is around Blazor.

@Rick-Anderson I can take a look at the tutorial for a little bit and report back. I'm pretty happy with Angular though.
But that's what I am saying. They are trying to make it so running the server app runs the client app across different frameworks, but that just makes it confusing. The SPA story needs to be, run any front end separate during dev and have ASP.NET Core sit in front and be the proxy + easy publish front end files in wwwroot. Then it shouldn't matter that Blazor is the focus. In other words, the SPA story is not the Blazor story

@Rick-Anderson Ok, I wanted to say I did the smaller tutorials in the docs.

@Rick-Anderson I can take a look at the tutorial for a little bit and report back. I'm pretty happy with Angular though.

I don't blame you for that. If you have experience with Angular, that won't help much with C#/.net Blazor.

the SPA story is not the Blazor story

Yup.
cc @guardrex

We've created an internal work item to track the work to make the new templates accessible from the CLI dotnet new. If you'd like there to be a public request on file, the best place for that is a suggestion on the Visual Studio Developer Community, since those templates are now a Visual Studio feature.

@tdykstra Thank you, don't forget the docs, too!


High codespace CPU utilization detected

When running this study in a Codespace, the Codespace reports:

High codespace CPU (100%) utilization detected. Consider stopping some processes for the best experience.

Team REX will investigate.

It would be worth trying to recreate this in a codespace in Andrea's repo, to see if we get the same error when using run_all.
This error isn't necessarily a problem, as we expect some scripts to be CPU intensive and the Codespace isn't used for anything else. Howeve,r it would be worth us being aware of the issue and possibly documenting it.

I was able to reproduce it on commit 54ec249c227a51907c7bf2b5592029499ff2b061 which was the current main branch at that time.

Nonetheless, the OpenSAFELY project ran without error.
I can't find any obvious way of disabling the notification otherwise. (I tried looking under Settings for github.codespaces which has some options, but not one for this notification.)

Thanks for investigating Steve. I'm going to close the ticket, since I don't think we should do any more work on it for now.
We talked briefly about adding in some documentation, but I don't think that's necessary right now. If this happens again, then the process is for someone to contact our team and we can investigate/get back to them. If it keeps happening, then we should look at making some changes, but by then we'll also have more information about where we should make those changes.


Connecting a TDJson client causes ton of warnings/errors

Hello,
We have a python service which connects to Telegram accounts via TDJson.
Our steps for connecting clients:

Create a TDJson client
Send setTdlibParameters
Send checkDatabaseEncryptionKey
Subscribe to updates via TDJson's client.receive.

Everything seems to be working, however recently we've been seeing a constant stream of these two messages:
[1;31m[ 1][t12][1663294821.963675260][Session.cpp:400][#3][!Session:1:main]	BindKey failed: [Error : 400 : ENCRYPTED_MESSAGE_INVALID]
[1;33m[ 2][t16][1663292782.381464004][Session.cpp:367][#4][!Session:1:main]	Do not drop main key, because it was created too recently

Seems like these might be warnings, but I'm curious why they started and if we can resolve them. The only change that occured on our end was that some clients were attempted to be created without sessions. However, this issue was fixed, but we're still getting these errors.
Could someone advise? Thanks!

The messages usually means that the client is already logged out by the server with an "AUTH_KEY_DROP_*" service notification. This happens when you manually copy td.binlog and try to use it simultaneously from different places. Is it the case?


Return items

Bag of Ryobi stuff has been borrowed containing:

impact driver
vacuum cleaner
drill
88-32-61-20
31-43-85-19
Bosch drill bits

These should be returned unmolested or replaced if molested

To clarify, I am the one doing the borrowing.

These items have now been returned, although apparently one of the key features of the drill is its aesthetic quality and this was not adequately preserved. Aesthetic qualities of tools will be preserved should borrowing occur in future, but it is requested that if any other non-functional qualities of tools are particularly important (e.g. should I orient them facing north upon their return, should they be magnetic, are any voodoo rituals necessary, etc.) that this be explicitly stated somewhere.


2.0.0

New Release Candidate: 2.0.0 🎉
Features :
1.) Supports Minimum Node version >=7.0.0 ( not backward compatible )
2.) Support for HTTP methods for API calls other than GET
3.) Enhanced Code Coverage
4.) ES Lint issues fixed.
Issues Fixed :

Does this library support any HTTP methods for API calls other than GET
Improve code coverage
Fix ESLint Issues
ngrok current version doesn't work

🚀 PR was released in v2.0.0  hacktoberfest


Creating Network instance from road shapefile fails; ValueError: list.remove(x): x not in list

From @hasecbinusr on April 18, 2017 14:28
This is partially a bug report and partially a discussion.  First part first, here's my environment:
Platform information: Win 7 64bit (nt win32)
Python version: 3.6.1 | packaged by conda-forge | (default, Mar 24 2017, 01:02:36) [MSC v.1900 64 bit (AMD64)]
SciPy version: 0.19.0
NumPy version: 1.11.3
I already stripped rings out of my shapefile because that broke NetworkX, so I assumed it would break PySAL as reported in #655.  The issue is that I'm still receiving the exact same error as in #655 at line 200 of network.py where it is attempting to remove bridges.
        bridges = []
        for s in segment_nodes:
            bridge = [s]
            neighbors = self._yieldneighbor(s, segment_nodes, bridge)
            while neighbors:
                cnode = neighbors.pop()
                segment_nodes.remove(cnode) # This line is the problem child for my shapefile
                bridge.append(cnode)
                newneighbors = self._yieldneighbor(cnode, segment_nodes, bridge)
                neighbors += newneighbors
            bridges.append(bridge)

What is the theory behind removing bridges?  I am trying to imagine a case where this would be useful or necessary, but I can't find one.  For example, if a polyline with n vertices is converted to a network, it would become a series of n nodes connected by edges.  Every node except the endpoints would have a cardinality of 2, or in the lines of network.py:
        for k, v in self.adjacencylist.iteritems():
            #len(v) == 1 #cul-de-sac
            #len(v) == 2 #bridge segment
            #len(v) > 2 #intersection

If I am understanding this logic correctly, endpoints would evaluate as cul-de-sacs and every other node would evaluate to bridge segments, excepting those instances where another line intersects and causes an intersection (presumably only at an intersection delineated by a vertex and not just a spatial intersect?).
It would seem that this portion of code would strip all of the intermediate nodes from a road and leave only intersections and endpoints.
The error that is being generated, ValueError:  list.remove(x): x not in list, is occurring for the following geometry:

And here's the subset of my data that's failing:
Roads_PySAL_Network_Fail.zip
The node that is failing is an endpoint for either the red segment or the green segment (not sure which).  Both have endpoints which occupy the same x,y coordinates.
Any ideas about why this is failing?
Copied from original issue: pysal/pysal#935

From @sjsrey on April 18, 2017 15:34
Thanks for raising this issue. We have started a new project focusing on spatial networks and I think moving this discussion to that project might be the way to go. We can always back port any changes that result from this discussion back to this code base.
The new repos is at pysal/spaghetti.
@hasecbinusr are you ok with moving this?

Works for me. I'll move it.

@hasecbinusr Thanks for raising this issue again. It has been on the back burner for several years and hopefully we can get it worked out this time around. I will be pretty swamped over the next several weeks, but will try to devote some attention to it then. Possibly @dfolch or @ljwolf can give some direction?
As for the justification for having both a simplified graph representation and a network representation, the comments by @ljwolf and @jlaura in pysal.pysal #655 sum it up well. Using  a simplified graph derived from a full network may be desired when a highly detailed model is not necessary or when data storage becomes an issue (in the case of an extremely large network).

@jGaboardi I concur that a simplified graph representation is good, especially for extremely large and complex network.  I am unclear why the function is failing to simplify the geometry in the example I provided. Shouldn't it essentially convert the green line to two nodes and one edge and the red line to four nodes and three edges?
I would be happy to assist as I can with this project as network-constrained analysis is extremely important to my routine workflow.

@hasecbinusr any contribution is greatly appreciated and we welcome your input!  The error is most probably the same as in 933 where the graph is "too simplified" and we are losing edge IDs due to the current data structure.
I was able to reproduce your error, then I digitized up a similar network that didn't error out. Check out this Gist I made that shows the workflow of plotting the network and simplified graph together with networkx.  You can see what the simplified graph from your shapefile will look like (once we fix the bug) and sample plots in geopandas. Here is the .shp I created, as well. hasecbinusr_case.zip

I haven't had time yet to work on this, but I'm wondering if it would be better to leverage NetworkX to build the network object and go from there.  OSMnx is a handy library for obtaining a NetworkX network from OpenStreetMap data for a given location, and it would be extremely useful when performing network-constrained spatial analysis of events on and along a roadway.  NetworkX hasn't fixed this issue yet either, as evidenced in the open ticket I referenced in my initial post.  Thoughts?

@hasecbinusr, I was familiar with Geoff Boeing's work, but had no idea about OSMnx... That is some pretty amazing stuff, though, and we should consider it going forward.
@ljwolf had actually proposed adopting the NetworkX model several weeks ago via our gitter chat room. Feel free to join! pysal/Spaghetti

network ring bug pysal/pysal 655 also is due to this issue.


What is mean by res5c_relu

Please tell me what is mean by res5c_relu? and why
Estimates for a single full pass of model at input size 224 x 224 takes 8GFLOPs
while, res5c_relu features with the network 224 x 224 input sizes using a batch size of 128 takes 974 GFLOPs?

Hi @eng100200, it refers to a certain feature map - the one produced by the relu following block 5c (this is in the fifth stage of the network using the resnet naming scheme)

@albanie It would really useful if you wrote down your exact formula for calculating 974 GigaFLOPs. Actually if the README could have detail the command line invocations to reproduce your reports that would be really useful.

Hi @CMCDragonkai
The number of flops is computed here - the code comments also mention some of the approximations and assumptions.  In practice, for most architectures, almost all of the flops will come from the convolutions/deconvolutions (so those are the key layers from a flop perspective).  Writing down a formula would be a little tricky, since it would essentially be a big switch statement.
The tool is written in MATLAB, so the invocation to generate the reports is just to run the burden() function.  If you prefer PyTorch, there is a tool which can be called from the command line here (although I haven’t used it personally): https://github.com/Swall0w/torchstat


Feature/viper config

This PR relates to: https://github.com/apigee-labs/transicator/issues/19
Adds support for spf13/viper while maintaining backwards compatibility with the existing flags options.
Examples
$ ./changeserver
port => -1

$ ./changeserver -p 1234
port => 1234

You can now create either a .json, .yaml, .toml etc file (anything supported by Viper) called changeserver in either /etc/transicator, ~/.transicator or ./
$ vi /etc/transicator/changeserver.json
{
  "port": 11223
}
$ ./changeserver -C
port => 11223

Or set an Environment Variable prefixed with TCS_ to override all of the above
$ TCS_PORT=33221 ./changeserver -p 1234
port => 33221

Thanks for this -- it'll be nice although I still wish Viper weren't so big.
I merged the changes (there were some conflicts), updated Glide and the LICENSE file, and checked in the vendor dependencies (I'm doing this for this project because glide is too flaky to ensure a repeatable build.)
I'm having two problems. Could you work on fixing them in the updated branch below (you should be able to pull and fork that, if not then there must be some other git thing that we can do)?
https://github.com/apigee-labs/transicator/tree/seatme-viper_config
Two issues:
First, "make dockerTests" doesn't pass. That's because the command-line options have changed. I don't have a problem with the changes (they're more in line with the standard) but I'd like the dockerTests to pass before we ship. (And to run those tests, you need docker...)
Second, in trying to fix the tests, I found that the "usage" output, as well as the output from the "-h" command, don't match what the options seem to be. I think that Viper must have nice ways to fix that.
So can you take a look at those two in the branch referenced above and change this PR? Thanks!

@gbrail FYI: @davent is on UK time and is off for the weekend. I would expect a response early next week.


Manual time not getting on restart

While restarting app, whatever it set the time in input field, after restart timer is not calculating from the previous time, it's taking default time as a 08:00:00 o'clock.

Updated latest patch


Unity: native crash at tile (19296,24630:0320101101320220)

Looks like the problem with building which has parts - commenting the following rule helps:
area,relation|z16[building:part]

this is the problematic object: http://www.openstreetmap.org/way/288877797


Error messages are unreadable

In its current state, the library produces rather unreadable error messages and can spawn several hundreds of lines of cryptic error messages for a simple missing const without a single hint to what may be wrong. Honestly, this is a major drawback and the crazy amount of SFINAE insanity doesn't help.
We can't realistically put static assertions all over the place because many mechanisms in the library rely on SFINAE. There may be other ways to handle errors.

Some elements of answer:

[x] Use strong typedefs via inheritance to define sorters instead of templates aliases.
[ ] Concepts will probably help to reduce the error madness, but we have to wait for C++17 at least.
[x] If the DR allowing to write using Sorters::operator()...; makes its way to C++17, it might remove some annoying errors dues to recursion.
[x] Static assertions could be used after in the sorters' operator() to ensure that the iterator category of the parameter is correct. By the time the operator is called, all of the SFINAE checks should already have passed and the only remaining thing before the actual sort is an eventual tag dispatch. Unfortunately, I doubt that it is possible to automate this mechanism.
[ ] Give a default template parameter to hybrid_adapter which would act as a fallback if none of the sorters are picked and trigger an explicit error. Getting the mechanism to work with nested hybrid_adapter seems crazy hard though.
[x] Update the tutorials to stress out the importance of errors to potential sorter writers.
[x] More static assertions for sorters that only accept copyable types. The error messages when trying to feed a collection of move-only types to a sorter that needs to copy them are not really readable (solved by #15, all sorters now work with move-only types).
[ ] Moving the SFINAE condition of type-specific sorters to a dedicated trait may allow to add more static_assert to the sorter in the simplest case in order to reduce the amount of SFINAE logs (see #113).

To be honest the errors occuring when a const is missing are the worst kind. There might be ways to require less const everywhere while still providing it when needed.

(unreadable*. here, did that help?)

@vendethiel Haha, it was more along the lines of « we want readable error messages », but you're right, I will change the title :p

:D sorry, I'm terrible at C++. Just ask my coworkers ;)

Apparently, some tricks exist to display better error messages upon SFINAE failure. I can probably check whether some of them could be used to improve cpp-sort's error messages too.

have you looked at the sqlpp guy's talk?

Yes I have (well, I have read the slides). The « strong typedef via inheritance » as well as the mention of concepts come from here. It's even possible that I opened this issue because of the talk actually.

that makes sense 👍

Yet another article that gives ideas to get better error messages with SFINAE.

Two small changes that could reduce the compiler call stack in error messages:

Replace use of std::distance(it1, it2) and std::advance(it, n) with (it2 - it1) and it += n when the algorithm is known to deal with random-access iterators.
Don't use std::begin and std::end when the type of the container is known and unlikely to change.

Those little functions are used everywhere in the code base, don't offer much outside of sufficiently generic contexts and make can make calls stacks grow. Moreover it's easier to track the origin of a problem directly when (it2 - it1) appears directly in the algorithm rather than in the implementation of std::distance.


How to calculate the sensitivity of aerodynamic power and thrust to the rotor speed using OpenFAST linearization

Dear @jjonkman ,
I tried to obtain the sensitivity of aerodynamic power and thrust to the rotor speed using OpenFAST linearization. But the states only contain the 'ED First time derivative of Variable speed generator DOF (internal DOF index = DOF_GeAz), rad/s' and 'ED First time derivative of Drivetrain rotational-flexibility DOF (internal DOF index = DOF_DrTr), rad/s'. Then I can only get the sensitivity of aerodynamic power and thrust to the generator speed. I am not sure whether the sensitivity to rotor speed = the sensitivity to generator speed * gearbox ratio.
With best regards,
liangwen qi

Dear @ietqlw,
Actually, the degree of freedom (DOF) in ElastoDyn (ED) referred to as the "generator DOF (internal DOF index = DOF_GeAz)" is expressed relative to the low speed shaft, not the high-speed shaft.  We refer to this DOF with the word "generator" because it is on the generator side of the drivetrain torsional spring-damper.  But the speed of the generator is the gearbox ratio (GBRatio) times the first derivative of this DOF.   So, the aerodynamic linearization with respect to this DOF is already relative to the low-speed shaft speed, so, there is no reason to multiply by GBRatio.
Best regards,

Dear @jjonkman,
Thank you very much for your kind and clear answer.
With best regards,
liangwen qi


[DRAFT] Added "Toolset" API and moved exporters.

What does this PR do?
Adds a toolset API, moves exporters from modules to modules/exporters.
Also adds a quick fix appending .exe to all gmake binaries.
How does this PR change Premake's behavior?
No breaking changes.
Anything else we should know?
Added unit tests file for toolset API. Currently does nothing.
Did you check all the boxes?

[ ] Focus on a single fix or feature; remove any unrelated formatting or code changes
[ ] Add unit tests showing fix or feature works; all tests pass
[ ] Mention any related issues (put closes #XXXX in comment to auto-close issue when PR is merged)
[ ] Follow our coding conventions
[ ] Minimize the number of commits
[ ] Align documentation to your changes

You can now support Premake on our OpenCollective. Your contributions help us spend more time responding to requests like these!

going to rework this. closing the PR and gonna rebranch.


Where have you been for the last 40 years ?

Chris,
Drop me a line<EMAIL_ADDRESS>

I saw your email


Re-use the Client for the web server

Hey,
I have been playing around with the framework over the weekend and I want to implement a bot that listens to chat but also has some webhooks (i.e. hook it up to GitHub to react to events that happen with our pull-requests). I set it up like you did in the tutorial and everything worked when I stayed within the Slack world ...
But when I wanted to send something to the chat room from the web server I ran into an issue. The client property on the SlackMathbot::Bot is private and I cannot access it from the sinatra app. In #20 and #31 you basically suggest to use Slack::Web::Client.new directly... But since my bot already has a connection to the server open, I don't really see why it should be needed to create another connection to the Slack server.
Am I just missing a way to access the client directly?

In theory I think there's no harm exposing client, outside of the bot, you might want to test it with .send(:client) and if that works feel free to PR a change. You might want to reach into client.web_client if you need the web one that was used to open the connection in the first place.
Also, generally, I'm interested in expanding slack-ruby-bot with support for web hooks and such, maybe merging parts or all of https://github.com/dblock/slack-bot-server or turning the latter into a framework (see https://github.com/dblock/slack-bot-server/issues/3).

Ok, good, I thought I was really missing something when looking at the code. The "hack" with send(:client) is what I ended up doing, but it felt so ugly that I had to wash my hands after writing this code :joy:
I'll take a look at the referenced issues. I think there's something missing between "Running a bot that only replies to chat" and "Running a full slack integration available to others" ;)

@klaustopher I think https://github.com/dblock/slack-ruby-bot-server is the beginning of the answer for the missing link.

@dblock Thanks, this looks good. I'll definitely take a look ;)

This is related to https://github.com/dblock/slack-ruby-bot-server/issues/6.
I think we should either expose client as is, or delegate calls to it. Thoughts? PRs?

Has there been any progress on exposing client? I have a bot running very nicely, but I'd like the ability to have the bot message users after a specific rails api call too. I'm not familiar with the send(:client) hack mentioned above, could someone elaborate a bit?

This issue seems to revolve around the same discussion as supporting slash commands and webhooks.
I'm also extremely interested in this and I ran into the same issues as @klaustopher. I was previously using Lita, which includes a built-in web server, but this library is much nicer for working with Slack so it would be nice if it could also include a web server.
I'm not a Ruby expert. @dblock do you think it makes more sense to look into slack-ruby-bot-server or to try the hacky .send(:client)? @klaustopher do you have any sample code you could share for your .send(:client) solution?

See my comment above for client, but generally I would like native webhook support in slack-ruby-bot-server.

Slash commands and webhooks require a web server. I've released https://github.com/slack-ruby/slack-ruby-bot-server-events that has full support for those.


Changes to Blueprints application breaks multiply applied routes!!!

Consider the following pattern:
@app.get("/url1")
@app.get("/url2")
async def handle_multiple(request):
     return text("some response")

The recent change in #1690 breaks that pattern.
It's a common pattern to use multiple @blueprint.get(...) and @app.get(...) to handle routes that have common behavior with slight variations, like a login process.
The only alternative I can think of is splitting out each of these routes into distinct rump functions that literally forward onto a common function, which inflates from one line declarations to three lines plus the constant common route handler.

@benjolitz
The original change in #1690 was done in order to account for an old standing open issue that actually needed fixing. I missed this case when implementing the change that seems to have broken the case of multiple routes being bound to the same handler method.
Let me see what can be done to address this while still being able to handle the original request from #37

@harshanarayana okay. wrong username for me btw. ;)

@autumnjolitz oh. Sorry. That explains why the auto complete wasn't working last night. 😂 sorry about the mistake

Hi @autumnjolitz
Until we get a proper fix for this, can you try this workaround?
async def handle_multiple(request):
     return text("some response")
names1, handler1 = app.get("url1")(handle_multiple)
names2, handler2 = app.get("url1")(handle_multiple)

Thank you @ashleysommer !


Video guides

Topic suggestions

Attributes
"Describe" button in "Add files"

Topics
-[ ] Data Editor

Overview video guide for creating a new submission in Editor

Retaining this pre our conversation about a primer for the Center and recent screencast tutorial activities.

@aebudden @mbjones - let me know if you have any additions to this list, or any topics that should switch categories.
Suggested topics for videos:

[ ] Demo of how to use the catalog - video

Suggested topics for written explanation:

[ ] Special requirements of social science data / qualitative data
[ ] Data science 101 - do these resources already exist? Tend to be long resources. Can we find a self paced course like Interact?
[ ] Decision tree with aggregated resources like what the SS workshop wanted as a product. Think of the different starting places people are in and suggest resources based on that.
[ ] What we offer (tools, support, training)
[ ] Best practices for data and metadata + Data citation (to the dataONE skillbuilding hub)

Demo script for the catalog video demo has been written and passed to Sarah for her to screencast: https://docs.google.com/document/d/15svgeG01SZDP0JA-HiAlEmIXmLhLr3RMaOuqed2MbB8/edit
@aebudden / @mbjones add any feedback to that document so we can lock down the script before she records everything! :)

@smerickson1 test

https://drive.google.com/file/d/1Jroky9DxxbxY73ASGZPfrKY8ujID3aP4/view - version 2 feedback sent

This version has been through 4 rounds of feedback by me - @aebudden / @mbjones time for you to weigh in!
Video
Feedback doc

I added feedback to the doc. Nicely done @smerickson1 and @erinlynmclean!

@aebudden your turn! :)
Video
Feedback doc

@smerickson1 when you've added the new edits, let us know!


Help needed to compile with jdk17

Hi team i need help to compil;e this with jdk17
Failed to execute goal on project sundr-adapter-api: Could not resolve dependencies for project io.sundr:sundr-adapter-api:jar:999-SNAPSHOT: The following artifacts could not be resolved: io.sundr:sundr-model:jar:999-SNAPSHOT, io.sundr:sundr-model-utils:jar:999-SNAPSHOT: Could not find artifact io.sundr:sundr-model:jar:999-SNAPSHOT -> [Help 1]
added tools jar manually, and got this error
[ERROR] Failed to execute goal net.revelc.code:impsort-maven-plugin:1.4.1:sort (default) on project sundr-core: Execution default of goal net.revelc.code:impsort-maven-plugin:1.4.1:sort failed: A required class was missing while executing net.revelc.code:impsort-maven-plugin:1.4.1:sort: org/codehaus/plexus/util/DirectoryScanner [ERROR] ----------------------------------------------------- [ERROR] realm =    plugin>net.revelc.code:impsort-maven-plugin:1.4.1 [ERROR] strategy = org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy [ERROR] urls[0] = file:/Users/rashiq_ahmd/.m2/repository/net/revelc/code/impsort-maven-plugin/1.4.1/impsort-maven-plugin-1.4.1.jar [ERROR] urls[1] = file:/Users/rashiq_ahmd/.m2/repository/com/github/javaparser/javaparser-core/3.15.21/javaparser-core-3.15.21.jar [ERROR] Number of foreign imports: 1 [ERROR] import: Entry[import  from realm ClassRealm[maven.api, parent: null]]

@rashiq-ahmd: It seems like you are trying to build the project from source, yet you haven't build some of the modules (e.g. sundr-model). An mvn clean install should work fine. Are you trying something different?
Check our CI jobs, they are building the project using jdk versions 8,11,17 and 21. AFAIR tools.jar is only needed for 8.

i'm getting this error while building
Failed to execute goal on project sundr-adapter-api: Could not resolve dependencies for project io.sundr:sundr-adapter-api:jar:999-SNAPSHOT: The following artifacts could not be resolved: io.sundr:sundr-model:jar:999-SNAPSHOT, io.sundr:sundr-model-utils:jar:999-SNAPSHOT: Could not find artifact io.sundr:sundr-model:jar:999-SNAPSHOT -> [Help 1]

@iocanel , Can you please share me the details About the CI jobs that build using jdk17 ?

This should be it:
https://github.com/sundrio/sundrio/blob/main/.github%2Fworkflows%2Fbuild.yml#L32

Worked, thanks You


Add override for /app/installations/ response

Add override for /app/installations/ response for account property to be an allOf list instead of anyOf

Resolves https://github.com/octokit/openapi-types.ts/issues/305

Before the change?

The response for /app/installations returned an array of objects who's account property was an intersection of the simple-user & enterprise schemas.  This hides all of the non-intersecting properties making them inaccessible.
See https://github.com/github/rest-api-description/issues/2497 for more details.

After the change?

Add an override which changes the anyOf descriptor to allOf for the account property.
See https://github.com/github/rest-api-description/issues/2497 for more details.

Pull request checklist

[ n/a ] Tests for the changes have been added (for bug fixes / features)
[ n/a ] Docs have been reviewed and added / updated if needed (for bug fixes / features)

Does this introduce a breaking change?

Please see our docs on breaking changes to help!

[ ] Yes
[ ] No
[x] Maybe? - The override technically changes the type of the response's account property but the existing type is broken as it does not include all of the necessary fields.

I think the Dry-run is failing due to the build script not handling parsing the version from the filename correctly.  I think the regex currently only supports a single digit for the two parts of the version and the download script has downloaded a file for v3.10.  Version 3.10 is also not included in the SUPPORTED_GHES_OPERATIONS constant.
Should I include fixes to those issue in this PR?

@Jman420 unfortunately that's affecting all the PRs at the moment. If you do fix that, would you mind using a separate PR?


defaults in gitup.conf and gitup.conf.sample

With a fresh installation:

stable/12 by default
stable/13 might be better.

Side note: https://forums.freebsd.org/posts/559707

By the way, a freshly upgraded stable/13 system now labels itself 13.1-STABLE.

I just sent an email to the port maintainer asking if the code in net/svnup that automatically updates the config file's default OS version to match the computer's OS version can be copied over to net/gitup.  Thanks!

Thanks.
https://github.com/johnmehr/gitup/commit/25198561b67b14b3b6b16b4cc82e0d0635a882d2#diff-39bd767a59a3138594332fbe99b51c0e531831ee92817e389b3435e1dd1474f9R51

was for stable/12

https://github.com/johnmehr/gitup/commit/25198561b67b14b3b6b16b4cc82e0d0635a882d2#diff-39bd767a59a3138594332fbe99b51c0e531831ee92817e389b3435e1dd1474f9R36

was for releng/11.4

– the configuration file(s) can be updated to releng/13.1, soon.
https://www.freebsd.org/releases/13.1R/schedule/

net/svnup uses a reinplace command to automate stable and releng in config file but it fails when user is using CURRENT because it gives stable/14 and releng/14.0. I really like this automation but it must be fixed to CURRENT to avoid results like:
[release]
branch=base/releng/14.0
target=/usr/src
...
[stable]
branch=base/stable/14
target=/usr/src
IMO gitup config should always be an example and then user should track whatever he wants, stable or release or current.
My question is, what results should gitup.conf for CURRENT users?
[release]
branch=NULL
target=/usr/src
...
[stable]
branch=NULL
target=/usr/src

Automation will be nice, but for now (without too much delay), can the port be updated in a simple way?
For gitup.conf to have, at least, 13.1 in lieu of 11.4 for release.
Thanks

I updated it to 12.3 but it looks like I neglected to commit it.  :(
Until the automation is implemented, I'd like to use the oldest supported version, assuming it has the largest number of deployed instances.  Do you know of any stats out there that show the percentage breakdown of the currently supported versions deployed in the world?
@nunotexbsd, do you know if there has been any progress in reusing the code that Jason implemented for svnup?  Thanks!

Hello,
The problem is that svnup automation doesn't work correctly on CURRENT
svnup.conf:
`[release]
branch=base/releng/14.0 [1]
target=/usr/src
[ports]
branch=ports/head
target=/usr/ports
[stable]
branch=base/stable/14 [2]
target=/usr/src`
[1][2] neither releng 14.0 or stable 14 exists
I've talked with Jason about doing some adjustments but still nothing

Hello,
Commit done.
I've done interactive poudriere tests with 12.3 and 13.1 with success, automation works accordingly with those versions.
I'm thinking in a 'if ${OSREL}' condition == 14.0 to give a solution for CURRENT, well it's easy to implement but I don't know what to put into 'releng' and 'stable' :)
Cheers

This should be implemented now.  Thank you!


Ignored subdivision

I have set up google cartographer many times for 2d and 3d. But now I wanted to use a rgbd camera for 2d mapping. In order to do this I converted the point cloud to laserscan, with this package: http://wiki.ros.org/pointcloud_to_laserscan
I use a pico monstar.
When I launch google cartographer with the pc_to_laserscan I get this warning:
[ WARN] [1560845643.823460226]: W0618 10:14:03.000000 18489 sensor_bridge.cc:200] Ignored subdivision of a LaserScan message from sensor scan because previous subdivision time<PHONE_NUMBER>37691470 is not before current subdivision time<PHONE_NUMBER>37691470
This is the header of /scan:
  seq: 100
  stamp:
    secs:<PHONE_NUMBER>
    nsecs: 155853000
  frame_id: "royale_camera_optical_frame"
angle_min: -3.1400001049
angle_max: 3.1400001049
angle_increment: 0.00870000012219
time_increment: 0.0
scan_time: 0.333299994469
range_min: 0.449999988079
range_max: 10.0
ranges: [inf, inf, inf, 0.45439407229423523, 0.45167145133018494, inf, inf,

@MrGitGo I met the same problem with you ,have you solved it out?

I also have the same problem, any idea?

I never got a satisfactory result. Try it with laser sensors instead

I was using laser scan. I think this problem is caused by the stamp part of the message

This can happen sometimes during scan unskewing. If it doesn't affect SLAM performance, you can usually ignore sporadic warnings. Besides that, it can also indicate timing issues.

The problem is: time_increment: 0.0. This needs to be set to the correct value, otherwise Cartographer's scan unskewing doesn't work correctly. See also http://docs.ros.org/en/api/sensor_msgs/html/msg/LaserScan.html

我已经为 2d 和 3d 多次设置了 google cartographer。但现在我想使用 rgbd 相机进行 2d 映射。为了做到这一点，我将点云转换为laserscan，使用这个包：http ://wiki.ros.org/pointcloud_to_laserscan
我用的是pico monstar。
当我使用 pc_to_laserscan 启动 google cartographer 时，我收到以下警告：
[ WARN] [1560845643.823460226]: W0618 10:14:03.000000 18489 sensor_bridge.cc:200] Ignored subdivision of a LaserScan message from sensor scan because previous subdivision time<PHONE_NUMBER>37691470 is not before current subdivision time<PHONE_NUMBER>37691470
这是 /scan 的标题：
  seq: 100
  stamp:
    secs:<PHONE_NUMBER>
    nsecs: 155853000
  frame_id: "royale_camera_optical_frame"
angle_min: -3.1400001049
angle_max: 3.1400001049
angle_increment: 0.00870000012219
time_increment: 0.0
scan_time: 0.333299994469
range_min: 0.449999988079
range_max: 10.0
ranges: [inf, inf, inf, 0.45439407229423523, 0.45167145133018494, inf, inf,

I met the same problem with you ,have you solved it out?


Running Thread for Heat Data/Tools/Resources

Hi All,
Just wanted to follow up on the board's earlier conversations about adding more heat-related resources to the repo.  I need to go through my saved content and pull up what I have but for now, I'm opening an issue for it so we can aggregate and discuss before a commit/merge
-Li

Added them in from your last pull request. Had to fix some duplicates, but identified another issue so thanks!


removal of anonymity period (#108)

In light of the ACL Anonymity Policy change, I've drafted a blog post and new language for the CFP, author/reviewer pages, and review form for consideration by ARR policymakers. I figure time is of the essence because the anonymity period for the next cycle would start on Jan. 15 if it hadn't been for the policy change.

Thanks for putting this together!


Is there a migration guide to v7?

Thank you for creating a great product.
What are the steps to reproduce this issue?
migrating orval v6 to v7
What happens?
Is there a migration document somewhere to get orval from v6 to v7?
In my development environment, when I generate from the same openapi.yaml, I get a build error because the generated file contains variables that cannot be referenced in v7.
What were you expecting to happen?
generated/example.ts

v6

foo: faker.helpers.arrayElement([
        faker.helpers.arrayElement(Object.values(BarCode)),
      ]),

v7

foo: faker.helpers.arrayElement([
        faker.helpers.arrayElement(Object.values(bar.Code)), <= bar is not found
      ]),

Hmm no migration guide that looks like a bug. I think it was just fixed: https://github.com/orval-labs/orval/issues/1620
It will be in next release.


#438: Creation of Mobile Navigation Menu

WIP - Initial Design

Oops.... there are many problems with lint. It seems there is a conflict with mobile-nav.component as well. Please, review them.


Facing issue while installation of ETCD cluster on kuberenetes over GCP

I would need suggestion/help to sort out issue while installation of ETCD cluster on kuberenetes over GCP environment.
Below are the steps which I have done so far.
•	created etcd operator on kubernetes
•	set up basic RBAC rules for etcd operator
•	While creating etcd-cluster on kubernetes I am getting exception.
Exception :
#error: unable to recognize "example-etcd-cluster.yaml": no matches for etcd.database.coreos.com/, Kind=EtcdCluster
#Though yaml file is present at the particular location.
Moreover while going through etcd-operator logs  there is an exception regarding TPR initialization failed.
Exception :
time="2018-03-09T06:20:15Z" level=error msg="initialization failed: fail to create TPR: the server could not find the requested resource" pkg=controller
time="2018-03-09T06:20:15Z" level=info msg="retry in 30s..." pkg=controller
time="2018-03-09T06:20:45Z" level=error msg="initialization failed: fail to create TPR: the server could not find the requested resource" pkg=controller
time="2018-03-09T06:20:45Z" level=info msg="retry in 30s..." pkg=controller
Link Referred :
https://coreos.com/blog/introducing-the-etcd-operator.html
https://github.com/coreos/etcd-operator
Kubernetes version of master :
v1.8.7-gke.1
I would be happy to provide any further information if required.
Thanks in Advance !!

@anshultayal2009 Can you please specify the etcd-operator version that you are using.
From the etcd-operator logs it seems you are using a very old version that uses Third Party Resources(TPR) instead of Custom Resource Definitions(CRD). The switch from TPR to CRD was made in v0.5.0.
Can you try again with the latest v0.9.1 release.

Thanks @hasbro17 for the response,
Post applying new etcd-operator version, images was unstable and started to crash.


Error 12: Preset not found

Can you help me with this erorr. Everything works. I Flashed soundreactive version on SP511E, and used your guide for doing that. I'm also using 38 IR remote with your config. Everything works but i have error when i open web or android version of Wled. Still i can do everything but this bothers me.
Is there something that i need to create specific preset that is called from ir.json ? I cant figure out when error apears, i just shows itselft.

Yea, sorry, that seems to help. I create 4 default presets with default options, and now error is gone. Maybe you should update tutorial for SP511E then with this information.


Add docs and scripts to bring up a local cluster.

@sougou @alainjobart

lgtm
Very nice. Coincidentally, I'm working on a test/demo.py that brings up a local cluster, but it's more for my demo. Your steps explain more clearly what each command means.

Coverage remained the same when pulling 7626a30892a12ea0b94fd3fcf1b4585f71cd40d1 on local-setup into 246dd60101b1e92269669025813f10294a2f00a8 on master.

Very cool.
On Sun, Jan 18, 2015 at 12:26 AM, Anthony Yeh<EMAIL_ADDRESS>wrote:

Merged #319 https://github.com/youtube/vitess/pull/319.
—
Reply to this email directly or view it on GitHub
https://github.com/youtube/vitess/pull/319#event-220611498.


Notifications on Linux

Operating system: Linux (Fedora 24)
Messenger for Desktop version: v2.0.9-stable

Not sure if it's a bug or feature request but currently on the Linux app there are no notifications for when you receive a new message. The indicator (icon in tray) turns blue which is good, but I think notifications would be really useful. I'm running GNOME as my desktop environment.

Try going to Messenger's settings and turning on desktop notifications. They're handled by libnotify through notify-send so when the website sends a notification, they should display natively.

Whoops forgot to check settings, notifications work for me too :)


Adding Source Code for Footer

Folders Modified:

Layouts/index.html
Styles/style.css

Full screen ViewPort (1366 X 768)

Small Screen ViewPort (414 X 736)

Maintained a z-index value for footer so that it doesn't glitch with the navbar on Small Screen ViewPort


Automation

Automatically move your cards to the right place based on the status and activity of your issues and pull requests.

#5
Duplicate of #


meta: Who uses Cucumber?

We have no idea who is using Cucumber, really, because you all just download it from the various package repositories! We'd love to have a list of projects or companies using Cucumber, for the website and just for general affirmation and encouragement for all the people who work on it.
Let us know if your project/company uses Cucumber and wouldn't mind being mentioned on the website. Include a logo with a link to the project if you have one. A short description on how you use Cucumber and how it has helped you would also be lovely.
Thanks!

We use Cucumber at Pendo for our end-to-end and functional testing.
It helps us cover mobile and web coverage in a human-readable fashion so that anyone can see what's being tested (even if it's not in their usual code-base). It has also allowed us to build an abstracted framework underneath that allows us to switch out drivers quickly and easily.

Here an explanation of we use Cypress and Cucumber in our web development workflow at INIT Group (https://theinit.com).
https://medium.com/@itortv/how-to-integrate-cypress-and-cucumber-in-your-development-flow-in-just-a-few-weeks-96a46ac9165a

I wrote a testimonial. Just waiting for legal to clear it for publishing.

We use Cucumber at bol.com - will check if we can add a testimonial also.

I use cucumber in my framework: https://github.com/larryg01/klassi-js, in turn the framework is being used in many projects worldwide. also i use another cucumber related project for reporting cucumber-html-reporter

We use Cucumber at SDKMAN to engage with our open source community. I've found it a great way to reach consensus among our users about new features prior to developing them. I'm proud to say that we've been following this approach since day one.

We use cucumber extensively at https://www.assertthat.com/ for testing our product, which is ... a BDD collaboration and test reporting tool itself -  AssertThat BDD & Test Management in Jira :)

We use SpecFlow and Cucumber at Trov for extensive automated testing of our apis.
Every new server feature has automated acceptance tests written in sprint.
A set of critical path tests are run as a required status check on every PR.
Full regression is run with every merge to master.
Results are automatically reported to TestRail via their api for historical tracking and to Slack for quick feedback.
We ❤ Cucumber!!

I'm trying my best to use SpecFlow in our client projects at MarkedsPartner. We're on .net Framework, so it's a bit hard to to full stack right. However, it serves us well in the cases where we want to go above Unit Test level. I love the cucumber school material. :)
As a sidenote, I trained 40-50 students at college university in BDD with Cucumber loosely based on the cucumber school material two days ago, so hopefully the next generation is more eager. :)

We use Cucumber at https://www.financeit.io/. It reduces the amount of manual testing needed, and helps us document a complex system handling over $3 billion of loan applications in Canada.

Brightcove uses Cucumber in various forms across multiple teams and projects to ensure that our code and products behave as expected. We primarily use the Ruby flavor of Cucumber however we have also adopted the Go version: godog. Our use of Cucumber ranges from an E2E fashion against deployed services, to lower level, local integration tests, and more.

Xunit.Gherkin.Quick (BDD test framework for .NET Core and .NET) depends on Gherkin to parse AST and run Xunit tests afterward (similar to what SpecFlow does but lighter weight - without auto-generation and no NUnit support).
Great work you all, the framework is very useful!

We are using cucumber-jvm at albelli (GitHub) for integration testing. I may not be the best person to ask for details as I am only helping the QA team at the moment. All I know is that they love it. Isn't it right @DenUlyanov and @Chrysomall? :)
Also, we are building a JUnit runner to run cucumber tests in parallel using AWS CodeBuild: Synnefo. You are welcome to check it out. (Work in progress, so it may be not very pretty)

We use Cucumber-jvm and Cucumber Eclipse Plugin at Salto Consulting.

The famous Xray Test Management app for Jira supports Cucumber for more than 5 years, allowing teams worldwide to specify Scenarios/Outlines and Backgrounds. We have thousands of customers potentially using Cucumber (all sorts of variants) and also SpecFlow.

We are using Cucumber-JVM at FITYMI AB (Fake it till you make it) when building a tool targeting reporting in health care.

We are using Cucumber-jvm on top of Selenium for the past 7 years at SproutSocial. Our framework also includes RestAssured and Appium tests. It currently runs all of our critical UI scenarios during each of 4 staging deploys using jenkins and aws. We are working on getting it placed into the CI/CD pipeline so that the tests are run sooner and more often. We pride ourselves on the quality of our app and the #SproutLove our customers give us on social media.

At KelkooGroup we are using Cucumber a lot: mainly with the Scala implementation, a bit of the Java one and a very little the JavaScript one. Almost every project is tested using Cucumber.
We use it for testing our APIs and processing components, that is mainly backend. We don't use it so much for testing our frontend but this is essentially because we don't have a lot of frontend I guess.
The interesting thing is that we use it for documentation as well: some high level scenarios are extracted into our documentation thanks to the documentation tool we are using and builiding: https://github.com/KelkooGroup/theGardener.
What we love about Cucumber is how the implementation naturally derive from the scenarios. :heart_eyes:

I started using Cucumber (with Rails) about 2008, soon after I learned about test-first development. I still use it on all my personal Rails projects, as well as most work I do in JavaScript, and I've done some work on https://github.com/meadsteve/white-bread so that I could take the stories for a Rails project that I was considering porting to Phoenix and run them in Elixir. I've also helped QA interns at One Door use it as a user-focused QA automation tool (I don't speak for One Door, of course, and no longer work there in any case).
A lot of the Rails community has gotten somewhat tired of Cucumber, which is a shame: it's still by far the best tool for describing UI executably in user terms. I still use evangelize it, and will till something better comes along—which hasn't happened in over a decade of use!

We’re using Cucumber at Radity

Radity develops digital products and build web and mobile applications (20 Team members)

Thanks for such an amazing work!

We use Cucumber at Global CTO Forum.
You can find logos here:

The Global CTO Forum (GCF) is a global independent organisation for Technology leaders and executives including CTOs, CIOs and Architects around the globe to come together and help its members succeed as well as give back to the society.

From SUSE, we are at least using it in SUSE Manager and Uyuni projects.
This is the project https://www.uyuni-project.org/ and this is the code https://github.com/uyuni-project/uyuni/tree/master/testsuite
You can find the Uyuni logo from there.

Been using Cucumber-ruby extensively at EXL Service Health from 2017 mainly for Web UI testing with Watir.


Don't use Travis CI's containerized builds

This change slows down the builds, but without it one or two jobs was failing in almost every build, and the error messages are completely unhelpful:
Exception in thread "Thread-1" Exception in thread "Thread-5" java.io.EOFException
	at java.io.ObjectInputStream$BlockDataInputStream.peekByte(ObjectInputStream.java:2601)
	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1319)
	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:371)
	at sbt.React.react(ForkTests.scala:114)
	at sbt.ForkTests$$anonfun$mainTestTask$1$Acceptor$2$.run(ForkTests.scala:74)
	at java.lang.Thread.run(Thread.java:745)
java.io.EOFException
	at java.io.ObjectInputStream$BlockDataInputStream.peekByte(ObjectInputStream.java:2601)
	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1319)
	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:371)
	at org.scalatest.tools.Framework$ScalaTestRunner$Skeleton$1$React.react(Framework.scala:808)
	at org.scalatest.tools.Framework$ScalaTestRunner$Skeleton$1.run(Framework.scala:797)
	at java.lang.Thread.run(Thread.java:745)

I've tried a number of other fixes, and this is the only one that seems to work.

Current coverage is 68.73%

Merging #76 into master will not affect coverage as of 70dc991

Powered by Codecov. Updated on successful CI builds.


Undefined name 'self' in madry_cifar10_model.py

flake8 testing of https://github.com/tensorflow/cleverhans on Python 2.7.14
$ flake8 . --count --select=E901,E999,F821,F822,F823 --show-source --statistics
./examples/madry_lab_challenges/cifar10/madry_cifar10_model.py:267:31: F821 undefined name 'self'
    return tf.nn.xw_plus_b(x, self.w, self.b)
                              ^
./examples/madry_lab_challenges/cifar10/madry_cifar10_model.py:267:39: F821 undefined name 'self'
    return tf.nn.xw_plus_b(x, self.w, self.b)
                                      ^
2       F821 undefined name 'self'
2

@david-berthelot could this be related to the recent changes to Model?

Yes I think so, looks like set_input_shape is not called. I can look into it.

Looked at it, it's working from the latest master as far as  can tell.

Are you sure that line 267 is getting executed?

I am not familiar with that example, I checked if some recent refactoring broke it, but running it I see no problem, it runs properly (using the latest master branch). Did you try running:
python cifar10/attack_model.py


Fix tooltip flickering in Javascript

Fixes #405.
This solution eliminates the flicker when a tooltip overlaps its parent element. It also adds a mouseout event to the tooltips to ensure that they'll be dismissed when the user moves the mouse out of them.

Note that this PR and PR #406 are mutually-exclusive: if you set pointer-events: none on the .tip class (as PR #406 does), it won't be able to handle any mouse events, and the solution in this PR needs the tooltip div to handle mouse events.

Accepted the #406 PR instead. Thank you!


(CompileError) web/router.ex: internal error in v3_core

Hi,
I've never programmed in Elixir, but I want to try out the Maru examples.
When following these instructions. I get the following error:
Compiling 14 files (.ex)

== Compilation error on file web/router.ex ==
** (CompileError) web/router.ex: internal error in v3_core;
crash reason: {case_clause,
    {'EXIT',
        {badarg,
            [{erl_anno,anno_info,[-1],[{file,"erl_anno.erl"},{line,360}]},
             {v3_core,record_anno,2,[{file,"v3_core.erl"},{line,2410}]},
             {v3_core,expr,2,[{file,"v3_core.erl"},{line,539}]},
             {v3_core,safe,2,[{file,"v3_core.erl"},{line,1593}]},
             {v3_core,expr,2,[{file,"v3_core.erl"},{line,528}]},
             {v3_core,safe,2,[{file,"v3_core.erl"},{line,1593}]},
             {v3_core,'-safe_list/2-anonymous-0-',2,
                 [{file,"v3_core.erl"},{line,1608}]},
             {lists,foldr,3,[{file,"lists.erl"},{line,1276}]},
             {v3_core,expr,2,[{file,"v3_core.erl"},{line,538}]},
             {v3_core,safe,2,[{file,"v3_core.erl"},{line,1593}]},
             {v3_core,'-safe_list/2-anonymous-0-',2,
                 [{file,"v3_core.erl"},{line,1608}]},
             {lists,foldr,3,[{file,"lists.erl"},{line,1276}]},
             {v3_core,expr,2,[{file,"v3_core.erl"},{line,538}]},
             {v3_core,safe,2,[{file,"v3_core.erl"},{line,1593}]},
             {v3_core,expr,2,[{file,"v3_core.erl"},{line,528}]},
             {v3_core,safe,2,[{file,"v3_core.erl"},{line,1593}]},
             {v3_core,'-safe_list/2-anonymous-0-',2,
                 [{file,"v3_core.erl"},{line,1608}]},
             {lists,foldr,3,[{file,"lists.erl"},{line,1276}]},
             {v3_core,expr,2,[{file,"v3_core.erl"},{line,652}]},
             {v3_core,exprs,2,[{file,"v3_core.erl"},{line,512}]}]}}}

  in function  compile:'-select_passes/2-anonymous-2-'/2 (compile.erl, line 530)
  in call from compile:'-internal_comp/4-anonymous-1-'/2 (compile.erl, line 315)
  in call from compile:fold_comp/3 (compile.erl, line 341)
  in call from compile:internal_comp/4 (compile.erl, line 325)
  in call from compile:'-do_compile/2-anonymous-0-'/2 (compile.erl, line 175)
    (stdlib) lists.erl:1338: :lists.foreach/2
    (phoenix) expanding macro: Phoenix.Router.__before_compile__/1
    web/router.ex:1: PhoenixMaru.Router (module)
    (elixir) lib/kernel/parallel_compiler.ex:116: anonymous fn/4 in Kernel.ParallelCompiler.spawn_compilers/1

I'm using Erlang 19.0.5 and Elixir 1.3.2 on 64-bit Arch Linux.
Best regards,
Alexander F Rødseth

@xyproto
I fixed this issue with a pr, you can wait for it be merged or check by yourself.
And the main reason is the example used an old version of phoenix.

@Cifer-Y  Thank you :D


Solution for authentication that works from the Tesla browser.

Related to #413 and #905, I found a quick and dirty way to do auth that will work from the Tesla browser.
The https://user:pass@host/ method seems to no longer work, and had some major drawbacks anyway.
By (ab)using the Grafana API's "login ping" endpoint, we can secure the teslamate path(s) behind Grafana's form-based authentication.
Snippet from my nginx conf:
location /grafana/ {
    proxy_cookie_path /grafana /;
    proxy_pass http://<IP_ADDRESS>:3000;
}

location /live/websocket {
    proxy_pass http://<IP_ADDRESS>:4000;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    auth_request /grafana/api/login/ping;
}

location / {
    proxy_pass http://<IP_ADDRESS>:4000;
    auth_request /grafana/api/login/ping;
    error_page 401 = @grafanalogin;
}

location @grafanalogin {
    return 302 /grafana/login/;
}

Interesting! I'll move this to 💡Ideas


Fix connection leak

Currently fargo leaks a connection (and a socket) with every request it makes. This pull request fixes that issue, and should have a very minor performance improvement.

Thanks for contributing! From a cursory scan of the changes it looks good to me. I'll look into it more in-depth tomorrow. That will also give @ryansb a chance to look it over if he wants to.

@jcox92 Thanks! That sounds good.

Thank you for contributing, @CtrlZvi


Package request: python3Packages.whey

Project description
Python wheel builder
Metadata

homepage URL: https://whey.readthedocs.io/en/latest/
source URL: https://github.com/repo-helper/whey
license: MIT
platforms: all

Problems
whey depends on consolekit which depends on coincidence which is built using whey
cc @mweinelt

Add a :+1: reaction to issues you find important.

whey depends on consolekit which depends on coincidence which is built using whey

Ideally we can make that upstream's problem.

consolekit which depends on coincidence

Only optionally and for tests.
https://github.com/search?q=repo%3Adomdfcoding%2Fconsolekit coincidence&type=code

Why do we need this?

To update python3Packages.fints.