If Kafka is turned on internal subs dont work

ISSUE TYPE

Bug Report

COMPONENT NAME
API

CLOUDSTACK VERSION
<IP_ADDRESS>

SUMMARY
When kafka events are turned on, subscriptions internal to CloudStack can no longer receive events.
There appears to be code that is trying to use the events existing in the CloudStack code, but would stop working once kafka emitting is enabled.
This issue is to start a dialog about this functionality and/or directions.
A work around was created to resolve this issue, by creating an in-memory bus subscribe-able to anything internal to CloudStack and also emit events to any configured kafka endpoint simultaneously.  Thus allowing event processing internally to CloudStack without having to subscribe to external endpoint.

thanks for the report and the workaround @damonb123 Can you give a use case that would fail? Would for instance usage stop working?

I think what's going on is that most things that publish to the cloudstack event bus use code like:
s_eventBus = ComponentContext.getComponent(EventBus.class);
...
s_eventBus.publish(event);

So you can't for example have both RabbitMQ and Kafka enabled, or InMemory and Kafka. It just fetches one.
From what I can tell, all event buses are disabled by default and need XML defining a bean to enable, so it is probably ok to have just one bus usable at a time. You aren't going to break internal code by switching event buses. However it could be a nice enhancement to publish to any and all EventBus components that are loaded.
Where one might also run into issues is if you have coded a plugin to do something like memoryBus.subscribe(), but then switch the config to enable the Kafka event bus. The internal code will publish to only one, so you'd want to grab the one that is loaded rather than using the specific EventBus implementation directly.

If everyone agrees, let's update the code to call all registered EventBus implementations by swapping for ComponentContext.getComponentsOfType(EventBus.class)... preferably centralized in one place rather than adding loops everywhere we currently have the existing pattern above.

@mlsorensen did you create a PoC for this (or any other code we can discuss)?

@DaanHoogland - No, I haven't done anything other than identify the issue.

ok, so your idea is that we create a list of channels and in have a default MessageBus.publish() iterate the list of registered message busses and call eache publish implementation?
Not sure if that is the best design. any thoughts anybody?

I’m not necessarily advocating for any specific implementation, but it would be good to support more than one registered EventBus implementation.
The most straightforward way is probably to just make the existing code aware that there can be more than one, and that would be fine for a small number.
If we want scalability (say we wanted dozens of implementations), maybe a sub/pub model would work better.
I have a hard time imagining anyone would need many implementations. I think we are realistically talking publishing events to maybe two or three types.

Yes

The most straightforward way is probably to just make the existing code aware that there can be more than one, and that would be fine for a small number.

but that would be hard to maintain, any change would be at all calling locations.

If we want scalability (say we wanted dozens of implementations), maybe a sub/pub model would work better.

I was under the impression that we had that but it is obviously crippled. I think we should grow to that.

I have a hard time imagining anyone would need many implementations. I think we are realistically talking publishing events to maybe two or three types of event bus.

but two of three of varying types (plus internal) will make for a good justification of pub/sub. I will look into how much effort it will be to migrate to that.

Just adding my 2 pence - and do note I have little experience with AMQP and Kafka.
I have enabled Kafka and the Events still show up, at least in the UI (Events page).
I have also enabled RabbitMQ and indeed, nothing gets published there as long as Kafka is enabled. Once I remove the Kafka "bean" then events are pushed into AMQP once again.
This is not necessarily about Kafka btw, it seems like the first defined "bean" entry will be honoured and the rest ignored. If I move the Kafka "bean" under the RabbitMQ one, then no new data will show up in Kafka, but I will see events in the RabbitMQ server.
For reference this is my /etc/cloudstack/management/META-INF/cloudstack/core/spring-event-bus-context.xml:
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
                           http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
                           http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
                           http://www.springframework.org/schema/context
                           http://www.springframework.org/schema/context/spring-context-3.0.xsd">
   <bean id="eventNotificationBus" class="org.apache.cloudstack.mom.kafka.KafkaEventBus">
     <property name="name" value="eventNotificationBus"/>
   </bean>
   <bean id="eventNotificationBus2" class="org.apache.cloudstack.mom.rabbitmq.RabbitMQEventBus">
      <property name="name" value="eventNotificationBus2"/>
      <property name="server" value="<IP_ADDRESS>"/>
      <property name="port" value="5672"/>
      <property name="username" value="test"/>
      <property name="password" value="test"/>
      <property name="exchange" value="cloudstack-events"/>
   </bean>
</beans>

With my ops hat on, I'd love it if both Kafka and AMQP worked at the same time.

@damonb123 can you explain about what you consider internal and not working in the light of what @NuxRo describes does work work him?  I would like to reproduce the internal events not going through as that would be a potentialy costly bug for people using the usage service for instance.
I agree that it would be convenient to have a broadcast to which any and all message busses can be connected. For @NuxRo 's scenario there would be a workaround by subscribing one message bus to the other (chaining them).

The most straightforward way is probably to just make the existing code aware that there can be more than one, and that would be fine for a small number.

@mlsorensen, I didn't go for this as it is maybe a small number of implementations but scattered a bit around the code base. I think something like #7990 would be my take on this. Yhis way we can also allow proprietary/private implementations.


[Help] renderer, access to statemanager within renderercontext

Thanks to the renderercontext, I want to put a delete button on a column and this button will help to delete that row, but I couldn't find the right way. Can you help me?
My first approach
renderer: (rendererContext) {
return IconButton(
onPressed: () {
final row = stateManager.getRowByIdx(rendererContext.rowIdx);
stateManager.removeRows([row!]);
},
icon: Icon(
Icons.delete,
color: Colors.red.shade400,
),
);
},
but as you can guess "the instance member 'stateManager' can't be accesssed in an initializer.
How can I achieve this behaviour ?

you can check this link
https://weblaze.dev/pluto_grid/build/web/#feature/cell-renderer

Thank you Muammer. I had looked at the demos, but I guess I didn't pay attention to the details.


sets give categorical selection

closed by https://github.com/ianhi/mpl-interactions/commit/f3f03ea690c28e1b5330941176c47427570e8192


Clicking on FAQ in Kannada language display the blank page

both prod and stag

@Zaydme - @Jameel139 , I log defect for the blank page FAQ as discussion on translation channel.

@adorapham and @Juan-Moctezuma I found the issue and fix for this. Let me know if I can do this or can send you the details. It's really a small fix. Problem with json.


[Task]: Performance tests for bulk migration script runner

Is there an existing issue for this?

[X] I have searched the existing issues

SubTasks

Performance tests for bulk migration tests script runner

Not going down this path


Can't create UNet with input height = 1

I am trying to create a Unet computation graph to train a model. Each record is WxHxD where W=367, H = 1, D=141. I copied my Unet graph from the Unet graph that comes with the zoo models but I changed it to use custom dimensions.
If I use bigger values like 512x512x3, it works fine. I think the issue is with the H = 1.

Deeplearning4j version: 1.0.0-beta4
Platform information (OS, etc): spark cluster on ubuntu

Provided is a screenshot of the error message.

I created a docker image to reproduce the error. All you have to do is clone this repo, checkout branch "1.0.0-beta4-unet-dim" and from the main folder run "docker-compose up"
https://github.com/localmaxima/dl4j-azure-minimal-example.git

Given the amount of time spent to create such a ticket with all required tools setup(Docker/Spark...etc),  and given that it's been six months without even a comment or any reaction on my ticket, I will just close it and thank you guys for your past efforts.

That's probably been fixed in 1.0.0-beta6. If you find that the same issue still happens with more recent versions though, we will be pleased to take a look at it.
/cc @eraly @treo


Chiller Plant Modeling

This issue will track progress/discussion on augmenting the set of chiller plant-related concepts defined by Brick
Required Points:

[ ] Chilled Water Entering Temperature Sensor (w.r.t. evaporator?)
[ ] Chilled Water Leaving Temperature Sensor (w.r.t. evaporator?)
[ ] Chilled Water Flow Sensor (w.r.t. evaporator?)
[ ] Entering Water Temperature Sensor (w.r.t. condenser)
[ ] Water Temperature Sensor (inside condenser?)
[ ] Water Flow Sensor (inside condenser?)
[ ] chilled water supply temperature (w.r.t. ahu; incoming to AHU)
[ ] chilled water return temperature (w.r.t. ahu; outgoing from AHU)

I'll add to these as I identify but I'd categorize into systems/subsystems and then equipment and then identify the points. The main thing to work out is how to represents the flow in/out of each equipment (a chiller or cooling tower) and the aggregate flow (i.e. there may be three cooling towers each of which have inlet/outlet water temperature, the water from each is combined and return to the condenser side of the chillers and then split again).
CH - a chiller (located in a CHWS)
Chilled Water Entering Temperature Sensor   - the temperature of the water entering a chiller (evaporator)
Chilled Water Leaving Temperature Sensor   - the temperature of the water leaving a chiller (evaporator)
Chilled Water Flow Sensor   - the flow rate of the water through the chiller (evaporator)
Condenser Water Entering Temperature Sensor   - the temperature of the water entering a chiller (condenser)
Condenser Water Leaving Temperature Sensor   - the temperature of the water leaving a chiller (condenser)
Condenser Water Flow Sensor   - the flowrate of the water through the chiller (condenser)
CT - a cooling tower (located in a CHWS)
Condenser Water Entering Temperature Sensor   - the temperature of the water entering a cooling tower
Condenser Water Leaving Temperature Sensor   - the temperature of the water leaving a cooling tower
Condenser Water Flow Sensor   - the flow rate of the water through the cooling tower
CHWS - a chilled water system, consists of chillers, cooling towers, primary and secondary pumps, bypass valves, neutral flow lines.
Chilled Water *Leaving Temperature Sensor   - the temperature of the water being sent to the field from a chws
Chilled Water *Entering Temperature Sensor   - the temperature of the water being returned from the field from a chws
Chilled Water Flow Sensor   - the flow rate of the water to/from the field

use Entering/Leaving rather than Return/Supply?

Condenser Water Entering Temperature Sensor   - the temperature of the water returned from the cooling towers to the chillers
Condenser Water Leaving Temperature Sensor   - the temperature of the water sent to the cooling towers from the chillers
Condenser Water Flow Sensor   - the flowrate of the condenser water loop

I've attached a CSV file containing a list of chiller points I've identified (over 600+ chillers). I'm sure it's still not exhaustive - that's still only a tiny % of chillers in Australia!
I've identified where there's an existing Brick point, and if not suggested one which seems to align with the current taxonomy. Some of them are more esoteric than others, and a number may be "Australian" in nature - i.e. "Cooling Call" is a staging strategy that's used in the vast majority of the buildings we see but it's not covered by Haystack or Google (Googles subfields cover almost 95% of the points we use compared to about 75% of Haystack).
Chiller Points.csv.zip

Chilled_Water_Pump should have subclasses Primary_Chilled_Water_Pump and Secondary_Chilled_Water_Pump.

There is also a related issue here (as highlighted in the VRV discussion on the forum). There are so many different kinds of equipment that are heat pumps. Depending on the size, application, whether or not they are reversible, what the source and load sides are, they are all called different things in the industry.
To make this as generalizable as possible, should we have a parent class of 'Heat Pump', and then use tags to help drill down into the specifics of what that equipment does? e.g. indicate whether it's reversible (can provide heating or cooling) or not, and what Brick:Resource enters the equipment on both the source/sink and load side. This would allow folks to model most types of heat pump systems at at least a basic level - even if Brick didn't have a class for that equipment specifically - and we can still also have explicit classes for common equipment types (e.g. a Chiller, etc.).
So these pieces of equipment could be described as a "[reversible/non-reversible] [source/sink side resource]-to-[load side resource] heat pump". Examples below:

A water-cooled chiller: is a non-reversible, water-to-water heat pump. The evaporator side cools down water that handles the building's cooling needs (i.e. cooling load) and a condenser side that rejects that heat to water (i.e. the sink) at a higher temperature. The heat in the condenser water then gets rejected (typically) from a cooling tower.
An air-cooled chiller: is a non-reversible, air-to-water heat pump. It has an evaporator side (cooling down water serving the building cooling load) and a condenser side (rejected heat to air, the sink)
A VRF outdoor unit that can both heat and cool the indoor units it serves: is a reversible, air-to-refrigerant heat pump.
A DX (direct expansion) system in a rooftop unit: is a non-reversible, air-to-air heat pump.
A water-cooled CRAC (computer room air conditioning) unit: is a non-reversible water-to-air heat pump
etc.

This approach could be used to model most heat pump equipment, but note there are still edge cases even if these are relatively rare in existing buildings. For example, there are 4-pipe air-to-water heat pump units which can also provide hot and cold water at the same time (e.g. Aermec NRP here).

I agree. After I mentioned in the VRV thread that I thought it would be unusual to return VRF's when asking for chillers, I then realised it would be nice to invert it - i.e. be able to answer the question "what thermal machine is providing the heating/cooling in this building".
This factsheet also uses the term Heat Pump and introduces 4 "source"/"sink" basic types - Air-to-Air, Water-to-Air, Water-to-Water and Ground-Source. It also introduces a Heat Recovery System  - do you think this would fit in with your design, i.e. would you say a VRV or Chiller has a Heat Recovery system (i.e. use a tag)? Or are they separate concepts?
I'm specifically interested from the point of view of identifying the COP of the various plant (chillers) and systems (CHWS) etc. So being able to group them all by classes or tags is useful. In particular looking the factsheet I linked, equipment that has a heat recovery system has a different COP equation to that of one that doesn't so I'd need to be able to query for that.

I agree that the heat pump as parent class is relevant.
However, I would specialize the classes below the 'heat-pump' parent class into 2 another classes according if the equipment can produce heating or cooling or both at the same time:

'cooling' or 'heating' system
'cooling' and 'heating' system

In the first class, we could split again into:

'only cooling'
'only heating'
'reversible'
In the 'only cooling' we would have chillers, VRV '2-pipes', mono-split producing only cooling.
In the 'only heating' the strict reverse part of the 'cooling'.
If the system can be reversible but only cooling or heating  such as some VRV systems then 'reversible'
The next level of specialization would depend on the kind of exchanger we could have on the condenser part (for air or water chiller) or the evaporator part.

With the kind of hierarchy, the edge case like the '3-pipes' VRV (same as 4-pipes as mentioned) are classified as 'cooling' and 'heating ' .
If we forget the pipes inside the system and we focus more about what kind of logical equipment there are inside a heat pump,
we can enumerate for a heat pump: at least 1 condenser, 1 evaporator, 1 valve expansion, 1 compressor.

'cooling' or 'heating' system same as heat pump.
'cooling' and 'heating' system. We need to have at least 2 expansions valves (and I guess another equipment in order to manage the distribution of cool or heat gas between the different terminal units).
'only cooling' and 'only heating' same enumeration as heat pump (the direction of the refrigerant flow in the circuit is just opposed)
'reversible' we need have at least 2 expansion-valves (and 1 reversing-valve in order to change the direction of the refrigerant flow)

To address David's question regarding plants, I think it's safe to say that modeling of loops should be considered.  Probably a base loop class, condenser loop, chilled water loop, hot water loop, etc.  The EnergyPlus documentation honestly does a really good job of describing the concepts: https://energyplus.net/sites/all/modules/custom/nrel_custom/pdfs/pdfs_v9.0.1/PlantApplicationGuide.pdf

This is a little bit of an aside, but Wikidata has a nice property/relationship that could be useful here - "has parts of the class":
https://www.wikidata.org/wiki/Help:Basic_membership_properties and https://www.wikidata.org/wiki/Property:P2670
It's for connecting instances to classes, where hasPart isn't quite right - as an example, "our_solar_system has_parts_of_the_class rocky_inner_planets"

Hey All - so here is my Cooling_Tower diagram (all of the equipment classes 'isPartOf' the Cooling_Tower):

and a Condenser_Water_System:

Based on those, I put together the following of things to add:

Classes   to Add

Electrical_Energy_Sensor

Stage_Enable_Command

Makeup_Water_Valve

Cooling_Tower_Basin_Water

Water_Level_Alarm

Water_Heater

Cooling_Tower_Basin_Water_Heater

Condenser_Water_Isolation_Valve

Valve_Position_Sensor

Cooling_Tower_Basin_Water_Temperature_Sensor

Cooling_Tower_Basin_Water_Level_Sensor

Cooling_Tower_Basin_Water_Level_Alarm

Bypass_Valve

Condenser_Water_Bypass_Valve

Condenser_Water_Isolation_Valve

Condenser_Water_Supply_Temperature_Sensor

Condenser_Water_Return_Temperature_Sensor

Condenser_Water_Supply_Temperature_Setpoint

Condenser_Water_Return_Flow_Sensor

Condenser_Water_Supply_Flow_Sensor

Condenser_Water_Loop

Chilled_Water_Loop

Hot_Water_Loop

Outside_Air_Wet_Bulb_Temperature_Sensor

Condenser_Water_System

Datatype Property
Domain
Range

hasStage
Stage_Enable_Command
integer

I wanted to put this together before taking the time to put a PR in place.  @gtfierro any major concerns?

Hey All - so here is my Cooling_Tower diagram (all of the equipment classes 'isPartOf' the Cooling_Tower):

and a Condenser_Water_System:

Based on those, I put together the following of things to add:

Classes   to Add

Electrical_Energy_Sensor

Stage_Enable_Command

Makeup_Water_Valve

Cooling_Tower_Basin_Water

Water_Level_Alarm

Water_Heater

Cooling_Tower_Basin_Water_Heater

Condenser_Water_Isolation_Valve

Valve_Position_Sensor

Cooling_Tower_Basin_Water_Temperature_Sensor

Cooling_Tower_Basin_Water_Level_Sensor

Cooling_Tower_Basin_Water_Level_Alarm

Bypass_Valve

Condenser_Water_Bypass_Valve

Condenser_Water_Isolation_Valve

Condenser_Water_Supply_Temperature_Sensor

Condenser_Water_Return_Temperature_Sensor

Condenser_Water_Supply_Temperature_Setpoint

Condenser_Water_Return_Flow_Sensor

Condenser_Water_Supply_Flow_Sensor

Condenser_Water_Loop

Chilled_Water_Loop

Hot_Water_Loop

Outside_Air_Wet_Bulb_Temperature_Sensor

Condenser_Water_System

Datatype Property
Domain
Range

hasStage
Stage_Enable_Command
integer

I wanted to put this together before taking the time to put a PR in place.  @gtfierro any major concerns?

I'll have time to dig in on Thursday, but so far this looks really really great! I appreciate the effort that has gone into this. I don't see any major issues above. I think what would be left to do is use Entity Properties to capture the source/sink substance metadata as was being discussed above (esp here and here), which may involve reorganizing a few Brick classes and/or adding a few new ones

I'll have time to dig in on Thursday, but so far this looks really really great! I appreciate the effort that has gone into this. I don't see any major issues above. I think what would be left to do is use Entity Properties to capture the source/sink substance metadata as was being discussed above (esp here and here), which may involve reorganizing a few Brick classes and/or adding a few new ones

Tracking: https://github.com/corymosiman12/Brick/tree/add-concepts

Tracking: https://github.com/corymosiman12/Brick/tree/add-concepts

Hi everyone! I wanted to make sure to direct your attention to https://github.com/BrickSchema/Brick/pull/257 which is capturing the developments being done by the Ontology Working Group on the issue of chiller plant modeling. Please take a look, ask questions, and if you want to get involved please join the Ontology Working Group (meets biweekly: Google Calendar)

GitHub automagically linked the PR to close this issue when I mentioned it in a comment, sorry.

I took notes while writing the G36 shapes for BuildingMOTIF. https://github.com/MatthewSteen/brick-g36/blob/main/4.10-chilled-water-plant.md

Hey @MatthewSteen how should I interpret the notes column? There are a few that have a Control_Panel concept on there, e.g. "HW supply temperature setpoint" on 4.11, but I would think this is better fulfilled by an existing Point class. Do you mean it should be related to a control panel entity, or that there isn't a good entity to "own" the Point instance?

@gtfierro the notes column lists missing entities or points. G36 section 4 lists points on the equipment (e.g. chiller) or on its Control_Panel, which I don't think exists in Brick. That's the most numerous missing concept, but probably not the most important because the point can be attached to a chiller as a reasonable workaround.


Device Request - [ZigbeeWaterSensor] - [_TZ3000_ww9i3e0y] / [TS0207]

Prerequisites:

Before requesting a device addition, please ensure there is not already a request for the device among the open issues.
Make sure your Homey is upgraded to firmware v5 or higher.
You need a physical example of the device

Device Name: [Zigbee Water Sensor]
Device Model: [_TZ3000_ww9i3e0y  TS0207]
Device Description: [Water Sensor Tuya]
Link to device image: [https://nl.aliexpress.com/item/1005006294659004.html]
Device Interview:
"ids": {
"modelId": "TS0207",
"manufacturerName": "_TZ3000_ww9i3e0y"
},
"endpoints": {
"ieeeAddress": "a4:c1:38:73:65:7e:4e:e7",
"networkAddress": 43915,
"modelId": "TS0207",
"manufacturerName": "_TZ3000_ww9i3e0y",
"endpointDescriptors": [
{
"status": "SUCCESS",
"nwkAddrOfInterest": 43915,
"_reserved": 20,
"endpointId": 1,
"applicationProfileId": 260,
"applicationDeviceId": 1026,
"applicationDeviceVersion": 0,
"_reserved1": 1,
"inputClusters": [
1,
3,
1280,
0
],
"outputClusters": [
25,
10
]
}
],
"deviceType": "enddevice",
"receiveWhenIdle": false,
"capabilities": {
"alternatePANCoordinator": false,
"deviceType": false,
"powerSourceMains": false,
"receiveWhenIdle": false,
"security": false,
"allocateAddress": true
},
"extendedEndpointDescriptors": {
"1": {
"clusters": {
"powerConfiguration": {
"attributes": [
{
"acl": [
"readable",
"reportable"
],
"id": 0,
"reportingConfiguration": {
"status": "NOT_FOUND",
"direction": "reported"
}
},
{
"acl": [
"readable",
"reportable"
],
"id": 32,
"name": "batteryVoltage",
"value": 30,
"reportingConfiguration": {
"status": "NOT_FOUND",
"direction": "reported"
}
},
{
"acl": [
"readable",
"reportable"
],
"id": 33,
"name": "batteryPercentageRemaining",
"value": 200,
"reportingConfiguration": {
"status": "NOT_FOUND",
"direction": "reported"
}
},
{
"acl": [
"readable",
"reportable"
],
"id": 65533,
"name": "clusterRevision",
"value": 1,
"reportingConfiguration": {
"status": "NOT_FOUND",
"direction": "reported"
}
}
]
},
"identify": {
"attributes": []
},
"iasZone": {
"attributes": [
{
"acl": [
"readable",
"reportable"
],
"id": 0,
"name": "zoneState",
"value": "notEnrolled",
"reportingConfiguration": {
"status": "NOT_FOUND",
"direction": "reported"
}
},
{
"acl": [
"readable",
"reportable"
],
"id": 1,
"name": "zoneType",
"value": "waterSensor",
"reportingConfiguration": {
"status": "NOT_FOUND",
"direction": "reported"
}
},
{
"acl": [
"readable",
"reportable"
],
"id": 2,
"name": "zoneStatus",
"value": {
"type": "Buffer",
"data": [
0,
0
]
},
"reportingConfiguration": {
"status": "NOT_FOUND",
"direction": "reported"
}
},
{
"acl": [
"readable",
"writable",
"reportable"
],
"id": 16,
"name": "iasCIEAddress",
"value": "3c:2e:f5:ff:fe:22:d0:1b",
"reportingConfiguration": {
"status": "NOT_FOUND",
"direction": "reported"
}
},
{
"acl": [
"readable",
"reportable"
],
"id": 17,
"name": "zoneId",
"value": 4,
"reportingConfiguration": {
"status": "NOT_FOUND",
"direction": "reported"
}
},
{
"acl": [
"readable",
"reportable"
],
"id": 65533,
"name": "clusterRevision",
"value": 1,
"reportingConfiguration": {
"status": "NOT_FOUND",
"direction": "reported"
}
}
]
},
"basic": {
"attributes": [
{
"acl": [
"readable",
"reportable"
],
"id": 0,
"name": "zclVersion",
"value": 3
},
{
"acl": [
"readable",
"reportable"
],
"id": 1,
"name": "appVersion",
"value": 65
},
{
"acl": [
"readable",
"reportable"
],
"id": 2,
"name": "stackVersion",
"value": 0
},
{
"acl": [
"readable",
"reportable"
],
"id": 3,
"name": "hwVersion",
"value": 1
},
{
"acl": [
"readable",
"reportable"
],
"id": 4,
"name": "manufacturerName",
"value": "_TZ3000_ww9i3e0y"
},
{
"acl": [
"readable",
"reportable"
],
"id": 5,
"name": "modelId",
"value": "TS0207"
},
{
"acl": [
"readable",
"reportable"
],
"id": 6,
"name": "dateCode",
"value": ""
},
{
"acl": [
"readable",
"reportable"
],
"id": 7,
"name": "powerSource",
"value": "battery"
},
{
"acl": [
"readable",
"writable",
"reportable"
],
"id": 65502
},
{
"acl": [
"readable",
"reportable"
],
"id": 65533,
"name": "clusterRevision",
"value": 2
},
{
"acl": [
"readable",
"reportable"
],
"id": 65534,
"name": "attributeReportingStatus",
"value": "PENDING"
},
{
"acl": [
"readable",
"reportable"
],
"id": 65506
},
{
"acl": [
"readable",
"reportable"
],
"id": 65507
}
]
}
},
"bindings": {
"ota": {},
"time": {}
}
}
}
}
Additional Comments:
The sensor is a bit bigger than other water sensors, however it also looks very robust. It sounds a beep when water is detected.
Thanks in advance for the good work! Hopefully this device can be added.
How to interview a device:

Add the device as a generic Zigbee device in Homey
Navigate to https://developer.athom.com/tools/zigbee.
Interview the device, the button for this is to the right of the device in the list of Zigbee units.
Click the copy button/icon to capture the device information.
Paste the copied information above.

Note: To be able to add more devices to the Tuya Zigbee app, we rely on community members like you to provide interviews of the devices you want added. Thank you for your contribution!

Yes please


Bind client methods to the client instance

It would be nice for the constructor of the redis client, to bind it's method to the instance, so I can throw around the methods using functional programming paradigms, without having to bind them myself. E.g. this is some code I recently wrote using ChainyJS and FeathersJS:
var services = {
	'/rsku': {
		// Return all todos from this service
		find: function(params, next) {
			Chainy.create()
				.set('rskus')
				.action(config.r.hgetall.bind(config.r))
				.decodetable()
				.done(next)
		},

		// Get an object
		get: function(id, params, next) {
			Chainy.create()
				.set(['rskus', id])
				.action(config.r.hget.bind(config.r))
				.decode()
				.done(next)
		},

		// Create a new Todo with the given data
		create: function(data, params, next) {
			console.log(data, params)
			Chainy.create()
				.set(['rskus:count'])
				.action(config.r.incr.bind(config.r))
				.log()
				.action(function(id){
					data.id = id
					return ['rskus', id, JSON.stringify(data)]
				})
				.action(config.r.hsetnx.bind(config.r))
				.action(function(result){
					if ( !result ) {
						err = new Error('id already existed')
						return err
					}
					return data
				})
				.done(next)
		}
	}
}

Would be great if I could get rid of that .bind(config.r)
The following code added to the constructor of the client should do the trick:
var client = this;
Object.keys(client).forEach(function(key){
	var method = client[key];
	if ( typeof method !== 'function' )  return;
	client[key] = method.bind(client)
});

In order to better support this project and its new group of collaborators under a new org we are trying to clean up and close issues older than 6 months. Your issue may have been fixed since the issue was open, however, if you are still experiencing a problem please re-open this issue and we will label it accordingly.

@balupton It is easy to implement this by your own in the way you want it to. That is likely the best to do here, as we'd also have to bind multi statements and batch commands that will be added at some point. And the later two would have a new instance each time you call them, so it'd be a performance overhead to bind the functions in that case.
So instead of adding this to the core, you can just do the same right after instantiating the client / multi.


HTML5 , deathscreen highest score does not update correctly.

When the score is 2 points under the highest score the highest score becomes the current score.
steps: score 1-2 points lower than the highest score.

fixed in bd719fc01c15dba29215b0b58c82e9d0d070bddb


Android build crashes with 6.0.0

Hi,
Since there are issues with the foreground activity being undefined in NS 3.4.1, I want to update nativescript-fingerprint-auth. While deploying the app to my Android phone works with version 5.1.0, I'm getting the following error with 6.0.0 and 6.0.1:
Running full build

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:transformClassesWithDexForF0F1F2F3F4F5F6F7Debug'.
> com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.dex.DexException: Multiple dex files define Lorg/intellij/lang/annotations/Identifier;

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

* Get more help at https://help.gradle.org

BUILD FAILED in 10s
Unable to apply changes on device: xxx. Error is: Command gradlew.bat failed with exit code 1.
Executing after-watch hook from D:\mobile-app\hooks\after-watch\nativescript-dev-sass.js
Executing after-watch hook from D:\mobile-app\hooks\after-watch\nativescript-dev-typescript.js

I have tried cleaning all (platforms remove, app uninstalling,..) but I can't get rid of this error. Any idea?

I don't see anything related to this plugin in that stacktrace. Feel free to clone this repo and run the demo to see if that works, and reopen with more info:
git clone https://github.com/EddyVerbruggen/nativescript-fingerprint-auth
cd nativescript-fingerprint-auth/src
npm run demo.android

For anyone looking for a solution for this - I had to excldue the intellij annotations in the app.gradle file:
configurations {
  compile.exclude group: 'com.intellij', module: 'annotations'
}


Enhancements to Pickers and Extension to address JDBC where table names not uppercase

Extensions to com.ibm.xsp.extlib.relational\src\com\ibm\xsp\extlib\relational\javascript\JdbcFunctions.java and com.ibm.xsp.extlib.relational\src\com\ibm\xsp\extlib\relational\util\JdbcUtil.java to allow users to access columns where the column name is not upper case, both from Java and SSJS
Adding returnNameFormat option for DominoNABNamePickerDataProvider and relevant xsp-config and English localization
Adding MapValuePickerData and CollectionValuePickerData and relevant xsp-config and English localization
Let me know if you want me to send XML for demos of ValuePickers<EMAIL_ADDRESS>Also adding fix for combo boxes in dialogs with Bootstrap theme (xsp-mixin.css)

Removed that part of the commit.
I've also added support for searchType option in NamePicker, plus amendment to show everything if searchType="match" and no key is entered (previously it showed nothing)

Since this Pull Request contains many sub-parts in individual commits, for tracking purposes I'm naming the sub-parts as A to D like so:
Part A) "Fix for comboboxes in dialogs with bootstrap theme. Thanks David Leedy and Declan Lynch"
Part B) "Adding Collection and Map picker data providers"
Part C) Adding @JdbcInsertExt and @JdbcUpdateExt
including "Adding JDBC Ext functions and Java code, to avoid capitalisation"
and related "JDBCUtil adding support for not upper-casing column names"
Part D) updates to Domino pickers for returnNameFormat, searchType and initial "match" behavior
covering these 3 semi-related commits:
Part D1) "DominoNABNamePickerData, starting work on adding returnNameFormat"
and related "Adding returnNameFormat for NamePicker"
Part D2) "Adding searchType to NAB picker"
Part D3) "Amending "match" search option so everything shows if no search value is entered"
     in AbstractDominoViewPickerData
Part B is included in the 901v00_12 OpenNTF release.
Part A won't be accepted, but the related fix from Brian Gleeson is in the 901v00_12 release (SPR#BGLN9U5JPG).
Part C and D weren't included in release 12 and are being proposed for later releases.

The latest ExtLib OpenNTF release 901v00_14 contains the changes for part D of this pull request.
The part C commits are still outstanding, but will be considered for a later OpenNTF release.
There were some changes in the delivered code. Notably in the xe:dominoNABNamePicker tag
the new property has been named "valueNameFormat", renamed from the commit's name of "returnNameFormat".
Also, for the change in behavior in D3 there's a new xsp.properties option to revert to the old behavior by setting:
xsp.extlib.dominoViewPicker.searchMatch.emptyKey.all=false
Thanks again for the contributions Paul.
The relevant lines in the Readme.pdf Change Log section are:

GIT Pull Request 14 (Paul Withers) - Part D1 - DominoNABNamePickerData new valueNameFormat property
GIT Pull Request 14 (Paul Withers) - Part D2 - Adding searchType to NAB picker
GIT Pull Request 14 (Paul Withers) - Part D3 - in AbstractDominoViewPickerData, empty search to "match" all
GIT Pull Request 14 (Paul Withers) - Part D3 - xe:dominoView*Picker, xsp.properties option for search match to return none

The final part of this pull request (Part C) has been reviewed and merged into the latest ExtLib release (9.0.1 R15). Thanks for you contributions Paul, now closing this PR.


fallback will not connect to chikatto

I set it to host on port 80. I used a different bancho server before on port 80 and nothing was wrong (except i was limited to multi) so i have no idea what happened now

idk how fallback works, never touched it

makes sense, have a nice day. sorry for bothering.


allow super index to be called

I'm generally :-1: on inheriting controller code for public facing route options i.e. show, index, etc. This will fail if there's any kind of render or redirect in the other index action (double redirect error).
Tests are failing. What's your use case here?

Hi @schneems ,
The inherited def index  making it impossible to use the wick in the existing controllers. it is very troublesome. All the other methods are very well.
I will fix the Travis, the codes is fine in my local controllers which has def index

making it impossible to use the wick in the existing controllers. it is very troublesome

What is your specific use case? What are you trying to do? What action exists in the index action you're trying to inherit?

I override other plugins setup to step by step.   One is spree.
The spree admin countries use index method.
And using the index, edit, update show method name usually got conflict with other gems.   If it is configureable or use some specific names
, then the stepbystep flow can be merged with most other controllers
Arthur CHAN
Co-founder
Talkgoal.com
On Feb 18, 2015, 12:47 PM, at 12:47 PM, Richard Schneeman<EMAIL_ADDRESS>wrote:

making it impossible to use the wick in the existing controllers. it
is very troublesome

What is your specific use case? What are you trying to do? What action
exists in the index action you're trying to inherit?

Reply to this email directly or view it on GitHub:
https://github.com/schneems/wicked/pull/165#issuecomment-74811612

This is the first time i've seen wicked breaking an inherited controller method in the ~3 years it's been around. I'm not convinced it's a use case we should be catering to. You can get around this already with metaprogramming.
Something like:
class MyController < SpreeController::Foo

  alias_method :index_without_wicked :index
  include Wicked::Wizard

  def index
    index_without_wicked
  end
end

Should get you what you need. It's too error prone to call super in the wicked index since we don't have a good idea of what that method would be doing.

Hi @schneems,
Thanks for the comments,
First off, after reading your comments, my new commit didn't call the super  but use wizard_index in wicked instead.
https://github.com/arthurtalkgoal/wicked/commit/2de547c40061da4db73cdae2cb79731f2ac41356
My use case is simple make existing Registration or Configuration into stepbystep by putting decorators the include Wicked concerns; isn't it more powerful? With merely CSS  , I am able to do such stepbystep.
The only challenge is fixed by able to rename the index to wizard_index; which I think there is no good reason why index and show should be preserved for wicked all the time.


Can not determine .cwd for user configs

Have a single folder workspace and a launch configuration in you user settings
Notice the error coming from the debug extension how cwd is not absolute
I would expect the node extension to try harder to figure out the cwd. For example even if no WorkspaceFolder is passed it could look at the workspace using the vscode API. Or it could look at the active file and based on that determine that

Example launch in user settings:
"launch": {
        "version": "0.2.0",
        "configurations": [
            {
                "type": "node",
                "request": "launch",
                "name": "Launch Program2",
                "program": "${workspaceFolder}/test.js"
            }
        ]
    },

yeah, it's really annoying. It's complaining that my cwd doesn't have workspaceFolder but even when I change my cwd to workspaceFolder it complains that it should be absolute;
typescript launch
{
	"type": "node",
	"request": "launch",
	"name": "Run program",
	"args": ["app.ts"],
	"runtimeArgs": ["-r", "ts-node/register"],
	"cwd": "${workspaceRoot}",
	"protocol": "inspector",
	"internalConsoleOptions": "openOnSessionStart"
}

mocha launch
{
	"name": "Run mocha",
	"type": "node",
	"request": "launch",
	"program": "${workspaceRoot}/node_modules/mocha/bin/_mocha",
	"stopOnEntry": false,
	"args": ["--no-timeouts", "--compilers", "ts:ts-node/register", "${workspaceRoot}/test/*.ts"],
	"cwd": "${workspaceRoot}",
	"protocol": "inspector"
}

I'm staying at VS Code 1.19 because of this.

@lostfields and the launch configs live in your user settings, correct?

@weinand no, I'm using workspace settings

hmm, I cannot reproduce the problem in VS Code 1.20.1 if the launch config is in your workspace settings. How does the error message look like? Please attach a screenshot.

Thanks, but if I understand you correctly this is the second error (after supplying the 'cwd' attribute).
What is the error if you supply not 'cwd' at all?

If I skip cwd entirely I have a problem where nodejs cannot find "ts-node/register". I have problems running my mocha tests as well, as it says; Attribute 'program' is not absolute ('${workspaceRoot}/node_modules/mocha/bin/_mocha'); consider adding '${workspaceFolder}/' as a prefix to make it absolute.

Is your workspace a multi folder workspace?

no. Try to clone https://github.com/tfso/njs-tfso-repository and you may see the problem yourself. It works in 1.19

I've cloned the project but I something looks strange: the mocha launch config refers to a "test" folder that doesn't exist ("${workspaceRoot}/test/*.ts"). What exactly is your workspace folder, "src"?
Why are you using the workspace settings for your launches and not the regular "launch.json" file? Since you are not using a multi folder workspace, the "launch.json" is the preferred location (whcih would not have any of the problems I'm currently trying to solve).

njs-tfso-repository have args like ["--no-timeouts", "--compilers", "ts:ts-node/register", "--compiler", "--require", "ts-node/register", "${workspaceFolder}/src/test/**/*.ts"] so my test is located in /src/test/* as typescript files.
I have like 30 typescript projects, and all them may be different. I cannot have a global launch for each of them as some requires some tweaks. Like, if you are going to work at my projects, it unnecessary that you have to make your own launch to make it work. I'm not checking in .vscode folder since I consider this as user-specific configs.

In your "mocha" launch from above the "src" is missing from the arguments. It would help if I could try the exact launch config with your project. Otherwise we are not talking about the same things.

The config from my first post is from a project that isn't public, but the njs-tfso-repository has a similar config. You have to look at https://github.com/tfso/njs-tfso-repository/blob/master/tfso-repository.code-workspace for that project
{
	"name": "Run mocha",
	"type": "node",
	"request": "launch",
	"program": "${workspaceRoot}/node_modules/mocha/bin/_mocha",
	"stopOnEntry": false,
	"args": ["--no-timeouts", "--compilers", "ts:ts-node/register", "--compiler", "--require", "ts-node/register", "${workspaceRoot}/src/test/**/*.ts"],
	"cwd": "${workspaceRoot}",
	"protocol": "inspector"
}

I've made a new stripped-down project with the config from my first post at https://github.com/lostfields/ts-example
Both "Run program" and "Run mocha" fails.

You said:

I have like 30 typescript projects, and all them may be different. I cannot have a global launch for each of them as some requires some tweaks.

Yes, that's the reason why I suggested to use the "classic" approach where each project has a launch.json in its .vscode folder. With that approach you should have no problem because that's what VS Code is using since the beginning.
Storing launch configs in the workspace settings is a very recent addition that makes sense if you are using multi root folder projects, but otherwise just makes things more complex.

ok, I love the idea of a workspace/project file for each project since I'm always avoiding checking in .vscode, .vs, .idea folders.
I look a the workspace file as project configurations for all contributors to the project; and the .vscode folder is a private config for each contributor.
Guess I have to stick with 1.19 if you aren't planning to fix this?

Ok, now I understand your approach better.
One missing piece of information was that I have to open your project via the tfso-repository.code-workspace file, correct?
After doing this "Run mocha" runs just fine. Is this expected?

Yes, you have to open the code-workspace file, but it fails for me when I run "Run mocha (workspace)" in version 1.20.1 (2018-02-13).
It isn't failing for you with message Attribute 'program' is not absolute ('${workspaceRoot}/node_modules/mocha/bin/_mocha'); consider adding '${workspaceFolder}/' as a prefix to make it absolute. ?

The problem is the use of unqualified variables in a multi-folder setup.

 So ${workspaceRoot} is ambiguous.  That's the reason why your setup worked.
In VS Code 1.20.0 we've fixed that problem by requiring that variables have to qualify the root folder with the syntax ${workspaceRoot:<folder>}, e.g. ${workspaceRoot:njs-tfso-repository} in your case. By applying this change to your launch configs made the work for me. This was explained in detail in the release notes.

@isidorn could we flag invalid variables (especially in workspace files)?

Hmm, but the code-workspace is inside the njs-tfso-repository folder?

@weinand we could flag them. This would require some regex json schema magic, but I can look into it. Created https://github.com/Microsoft/vscode/issues/44280

the code-workspace can be anywhere.
But you could add another arbitrary folder (outside of the njs-tfso-repository folder) to your workspace with the "Add to Workspace" action.
And then you have a real multi-root-folder workspace where arbitrary folders are grouped together and where a "workspaceRoot" is ambiguous.

@isidorn we could actually support @lostfields use case: if a workspace has only a single folder, variables like "workspaceFolder" (or "workspaceRoot") could be resolved against the folder unambiguously. Only if another folder is added, they are ambiguous and are flagged as such.

@weinand this feels a bit magical, like if a launch in user settings would replace against if only there is a single folder. We can make this work as it would make most of the customers happy.

@weinand thanks, it works fine when I use :<name of workspacefolder> under folders: []. If I do this it works just as it should and I'm happy.
But, I still think it should get fixed though, since folder[].path is relative to the code-workspace file, and workspaceRoot/Folder should default to the same path as the code-workspace if it isn't told which folder[].path it should be using.
@isidorn Don't do the single folder thing, just go for the path of the code-workspace if :<workspacename> isn't used. If :<workspacename> is used, go for the path of folder[].path

@lostfields please file a new issue since this is fixed now.


Bug Report: Footer not looking attractive

Reproduction steps
Generally the footer of websites are more attractive.
Expected behavior
I can change some styling of the footer so that it looks attractive.Can you assign this task to me?
Actual Behavior
Original

l
👀 Have you spent some time to check if this issue has been raised before?

[X] I checked and didn't find similar issue

🏢 Have you read the Code of Conduct?

[X] I have read the Code of Conduct

@rohanbabbar04 Can you assign this task to me?

please assign me this issue under gSSOC 2023


Inconsistency in specifying TTL in DNS records between example and tests

Summary
Right now, the TTL for individual DNS Records is stored either in the Record.ttl attribute, or in the Record.extra dict, or in both.
Some of the code stores or access the Record.ttl value, other code the Record.extra['ttl'] value. I'll give two examples of either.
This inconsistency causes bugs. E.g. if you follow the documentation for Create a record with a custom TTL, and subsequently call libcloud.dns.base.DNSDriver.export_zone_to_bind_format(), it will not output the specified TTL, but the default TTL of the zone.
Detailed Information
First of all, note that this only concerns a custom TTL in a libcloud.dns.base.Record. This is not commonly set. Usually, records used the default TTL as specified in the associated libcloud.dns.base.Zone.
TTL stored in the Record.ttl attribute
In the documentation, at Create a record with a custom TTL, a custom TTL is given as parameter to Record constructor:
ttl = 900
record = zone.create_record(name='www', type=RecordType.A, data='<IP_ADDRESS>',
                            ttl=ttl)

In the Record.__init__() method, on line 163 this ttl is stored in the Record.ttl attribute:
self.ttl = ttl

TTL stored in Record.extra["ttl"]
On the other hand, in the libcloud/test/dns/test_base.py unit test, on line 38, the TTL is not set using the ttl parameter, but using the extra parameter.
values = {'id': 3, 'name': 'www', 'type': RecordType.A, 'data': '<IP_ADDRESS>',
 'extra': {'ttl': 123}},
# ...
record = Record(**values)

Futhermore, in the DNSDriver. _get_bind_record_line() method, on line 549 the ttl is retrieved using the extra attribute, ignoring the ttl attribute of the Record (it does look at the Zone.ttl though). Finally, this last behaviour is checked in the unit test.
    ttl = record.extra['ttl'] if 'ttl' in record.extra else record.zone.ttl

How to proceed?
My first attempt to fix this issue was in pull request #1535. In there, I changed the DNSDriver. _get_bind_record_line() to use the Record.ttl instead of the Record.extra["ttl"]
I now think that fixing it the other way around it better: deprecating Record.ttl in favour of the Record.extra["ttl"].
I have two main arguments:

The sample code is incorrect. It calls zone.create_record() with ttl as a parameter. But Zone.create_record() does not have a ttl parameter! Only the Record.__init__() method does. So this sample code will fail with a TypeError exception.

Most code seem to use the Records.extra["ttl"], not the Record.ttl. However, I have not done an extensive check yet. (neither of the libcloud code, nor of code out in the wild that uses libcloud).

Reaching consensus

Do you concur that it is better to store the TTL at only one place, not two?
Do you concur that it is best to store it in Records.extra["ttl"], while creating wrapper functions around Record.ttl for backward compatibility?

If so, please have a look at PR #1537.

Thanks for reporting this.
I believe extra["ttl"] was there first, but since specifying "random" attributes in extra dictionary is really a bad and unfriendly API, we decided to "promote" that attribute directly as a top-level Record.ttl object attribute a while back.
The idea was to eventually remove extra["ttl"] support, but we haven't done that yet since it is a breaking changes.
So in short - yes, I totally agree with you, there should only be one way and that should be Record.ttl attribute. Since removing support for extra["ttl"] is a breaking change, it involves those changes:

Need to update all DNS drivers to ensure they correctly utilize record.ttl attribute
Explicitly call out this breaking change in CHANGES.rst and docs/upgrade_notes.rst file
Release that change with a major release since it's a breaking change
Ideally also update extra["ttl"] to emit a deprecation warning for at least one release so users are wanted and have time to migrate

Hi @Kami,
Thanks for your feedback, and patience -- I'm aware that opening both an issue and a PR is a bit more work for you, and you probably have noted that I have a habit to changing the issue or PR while I dive deeper into the issue. I'll try to add a "WIP" (work in progress) tag if I'm not yet happy with the report or PR. You may want to delay your comments till I remove it, to save yourself some time. (And yes, I may sometimes change it even without that tag, once I discover more quirks.)
I'll have a look if I can make a PR with the suggested change. It might require a significant number of changes in the drivers though.
Also, I'll have to think how and when. How to ensure a (mostly) backwards compatible API, and when to make sure this ends up a minor or major release (not a bug fix release).
A second question is if you would want to consider other (perhaps breaking) changes or clarifications.
A few things that come to mind are:

Making the priority an attribute as well. (I'm in doubt. It's fairly common, in use for MX and SRV records, but next thing you know, you'll be adding port, weight, service, and protocol too).
Align the different extra field:

In particular zonomi adds a prio field, while all other drivers use priority as the field name. I prefer consistency here.
Align the use of description (Google), comment (Rackspace) and notes (Zerigo).

Clearly specify the use of trailing dots in both name and data that contain a FQDN. Right now, the name does seems to require a trailing dot (e.g. www.example.com.) A data field that requires a FQDN (e.g. MX, NS, PTR or CNAME) do require a trailing dot in DNS itself, but it seems that most API supported here insist that there MUST NOT be a trailing dot.
Be clear if/how IDN (international domain names) are supported. I kind of suspect that both name and data fields are expected to be punycode-encoded (e.g. xn--bcher-kva.de. instead of bücher.de.).

You are welcome and thank you for your contributions.
I'm +1 for improving it for other record types as well - handling those things via extra dictionary is definitely not a great API.
As far as implementation wise, I would need to think a bit more about it. For one, I don't think it should live directly on the base Record class since those attributes are specific to only some record types.
One option would be to introduce sub-classes for other common record types which take additional arguments / attributes - so things such as RecordMX, RecordPTR, etc. Base Record should only contain attribute which are common to all or majority of the record types and then those sub classes can contain record specific attributes.
This way we could also relatively easily keep it backward compatible for a while - aka first try to read value from passed in record class instance if it's of a sub-type, otherwise fall back to extra dict. It would still require quite some work to update all the drivers though. We can also do it incrementally.


Feature/beam selector different exposures

Work in progress for improving the beam selector scan.

Convert attributes to using snake case
Create a utility function for getting the minimum turnaround and interval information (as it is used in 3 separate places)
Use information in detector table to determine delay_after
Add mutator to modify delay_after for alternating points in the generator
CompoundGenerator duration determined by move time and exposure times (or minimum turnaround in place of exposure times if larger)

I have also written some additional test cases.
Things to check:

Is the pmac trajectory actually as expected? The unit tests "pass" but I need to verify this is the actual trajectory I want.

I have tested the branch on a beamline and believe this is ready for a review. Recent changes include:

Making the PandA AlternatingDivPart for checking frames_per_step was 2 generic so that it can handle a single or list of valid frames_per_step.
Now generator duration is calculated if 0 is passed. When validating the parameters, if the generator is tweaked this is resolved first before other tweaks. This helps ensure that if an exposure time has to be guessed, then that is tweaked after the final generator duration is known to behave similarly as before (in terms of using the longest exposure time for a given duration). This should work for guessing the duration for multiple detectors, and the largest tweak to the duration is applied.
Added an option to set the delay to 0.0s for the PandA pulse trigger part (defaults to not being enabled). This is needed for the beam selector scan.

What should be checked:

Whether util.py in pmac is a good place for the mutator used by the beam selector scan
Whether the pmacChildPart should handle tweaking the generator duration based on the speed of the axes being used, rather than just the minimum time of 2ms.

The main concern for me is if the correct design is not loaded on the brick so it cannot find the axes - should Validate still pass, and not tweak the duration, or throw an error complaining?

I think we have skipped some checks in validate because of this issue, so I'd probably let it pass

The calculation of the generator duration tweak is also slightly different - I wanted it to always increase instead of decrease otherwise the validation of detectors would fail.

That sounds reasonable


Fixed a regression with CKEditor generating extra <p> tags

Coverage remained the same at 81.977% when pulling d4f593055b31b221b8c846802e2f5fc68ecd3391 on vxsx:bugfix/extra-p-tags into 2ec69ae969739a5501f67a4861c7454323d6a5f5 on divio:master.

Coverage remained the same at 81.977% when pulling d4f593055b31b221b8c846802e2f5fc68ecd3391 on vxsx:bugfix/extra-p-tags into 2ec69ae969739a5501f67a4861c7454323d6a5f5 on divio:master.

Coverage remained the same at 81.977% when pulling f71dd9dda2ed0cf52e4e4ae86f65df4700ce2169 on vxsx:bugfix/extra-p-tags into 2ec69ae969739a5501f67a4861c7454323d6a5f5 on divio:master.

LGTM

👍


jazzy: 0.10.0 -> 0.11.0

Also fix the sassc gem to compile properly on darwin, since jazzy uses it now.
Motivation for this change
https://github.com/realm/jazzy/releases/tag/v0.11.0
Things done

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

[ ] NixOS
[X] macOS
[ ] other Linux distributions

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

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/cant-use-ruby-sassc-gem-fails-at-runtime-with-ffi/4023/6


Set the default path_info to the root '/'

Set the default path_info to the root '/' when both the path_info passed to 'bind' and 'match' are None.

#740

good start, yet missing the unit-test and please resend against the main repo


scroll with mouse not working if top not in view

i'm currently using google chrome, but the problem is there in firefox too. I'm using the jquery one.
if the scrollbarred element is not fully contained in the window, or to be precise, if the element top is not in view (because the document is scrolled down), the plugin fails to scroll-y the content.
in the demo you created (http://noraesae.github.io/perfect-scrollbar/), the plugin fails too.
to reproduce the problem:
scroll document until the #Demo div top is partially invisible in your window.
try to scroll using the bars in the #Demo div
(it will not move)

To be clear, do you mean that dragging the scroll track (highlighted in the below image) does not work when the browser is scrolled down?

Actually, it doesnt work if scroll container bigger than window height :<

+1

Fixed it. Ready to be released @noraesae

Great job! Will release in a while.


Fill out PlatformFile API with more functionality

Thank you so much for your work!
I really appreciate the idea of having all these convenient methods available from IPlatformFile. The developer has every tool he expects to have from a file. At the same time, it seems to add the streaming feature asked in this issue: https://github.com/vinceglb/FileKit/issues/54.
Here are some questions / notes I have:

There are some methods that are not supported on some platforms. For example setReadOnly, setWritable, setReadable methods are only working on the PlatformFile from jvmAndAndroid target. As FileKit maintainer, how do we deal with that? Do we let developers figure it out by themselves that some methods are working on some targets, some are not? If not supported, do we throw exceptions or just return null? If some methods are only working on only one target, do we still want to support them in FileKit?
There is now a PlatformFile shared between Android and JVM target. But for now, it is never used in the Android target. Instead of it, PlatformUriFile is used. What are the benefits of having those two options for the Android target?
I launched the SampleCompose Wasm application. I noticed the images I selected didn't display properly, and the download feature crashes the app.
Do you think adding convenient methods on PlatformFile working on all targets like accessing bytes and saving bytes are good things? The idea is to keep common tasks easy to use across different platforms.

This is a bit of an experiment, and it still needs a lot of work, which is why I kept it in a draft state.
I think the web target file handling might be fundamentally incompatible with how other platforms do it (iOS, Android, Java, Node), so maybe it would be best not to have a fully-featured PlatformFile in FileKit.

I decided to make a dedicated library for a PlatformFile implementation that just doesn't target JS/Wasm: https://github.com/zacharee/KMPFile. I also added in missing function implementations for Apple (untested). Next step is looking into publishing to Maven.

KMPFile is on Maven Central now, with an additional module that adds convenience functions for converting from FileKit files.
@vinceglb do you think it makes sense to link KMPFile from the README here for people who want more advanced cross-platform file management? No problem if not, of course.

@zacharee That's really cool! I really appreciate the extensions you've created to plug KMPFile to FileKit! I'm going to update the readme with your library 👌
It's true when you said that the web target is fundamentally different from other targets. I'm going to see if there are better ways to handle file saving and file management in the future, including (or not ?) the web target.
Anyway, thanks for your time 🙏

@zacharee That's live 👌
https://github.com/vinceglb/FileKit?tab=readme-ov-file#-going-further-with-files


Allowing letter input on "9" mask

ngMask: 3.1.1
My masks are:

"9999-9999", for BR phone;
"99.999-999", for zip code;
"9 9999-9999", for BR mobile;
"9999 9999 9999 9999", for credit card etc.

I know is not relevant, it's just to say that I'm not using alien code.
Is still possible to put characters on these fields.

Looks like a duplicate of #113 where a solution is given.

@PhiLhoSoft Thanks!


Bring back Frontier tutorial page in contracts sections

Added into the contracts section, as it relates to adding EVM & Ethereum compatible layers on any chain (solo or para).
DO NOT MERGE untested
This content last I checked was old and Frontier has had many breaking changes since it was written, I have not actually reviewed the content is correct in what is instructs to do and the end result is a working template, only got the page working again and listed.
We deprecated this page because it was misleading and in some cases wrong IIRC.

old page https://github.com/substrate-developer-hub/substrate-docs/blob/archive/main-mdx/v3/tutorials/10-frontier-workshop/index.mdx

TODO

[ ] check that the tutorial works as expected, including the template used and set the correct version here to match with the rest of the docs
[ ] add this page back to the cards listed in https://substrate.io/developers/smart-contracts/

Closing this PR in favor of https://github.com/substrate-developer-hub/substrate-docs/pull/1240


Consider a new domain for our "glue" functionality

I've had a few more conversations with folks who found using the word glue a bit confusing. Partially because it is the same verb as the one to "glue a variable into a notebook".
One suggestion from @rowanc1, which I thought was pretty reasonable, was to just use the word var:. That way it is clear you're referring to a variable's contents. E.g. var:figure, var:string etc.
@chrisjsewell I feel like this is closer to your original idea of using nb:. What do you think about this?
(apologies for bringing up the naming again, but I think as we get clear user feedback in the early days we should incorporate it quickly...we definitely shouldn't be changing the user-facing API after folks really start using the tools, so better to get it right sooner)

Thanks @choldgraf -- I was planning to make this issue, but you beat me to it!
From my perspective, the functionality looks like this is creating a variable that is known by myst_nb  and then later accessing that variable in another context.
from myst_nb import var # or create_var?
a = "my variable!"
var("my_variable", a)

This is really exciting for integrations into javascript, and having these be first-class would add to the in-text interactivity substantially. In my first reading of that nomenclature, it seemed odd to call it glue (especially in the table, where it shows up a lot). (Although, "glue" is also how Python as a language got started/branded ... so maybe there is historical precedent?!).

I'm too bothered either way TBH. As noted before, it requires minimal code changes; so as long as it doesn't class with any existing sphinx directives, then its fine by me.

I just came across the glue functionality when reading through the docs. FWIW I find the naming convention quite natural. I especially like the consistency between the names in code and text, i.e. glue("key", val) and {glue}`key`. I personally prefer this to say var("key", val) and {display}`key` as it's one less mapping to remember while writing (I understand that this is not what's being proposed above!).
Another thing I like is that "glue" feels like a nice generic term for all different kinds of outputs (figs, tables, text, etc.) whereas something like "var" or "out" feels like it's implicitly geared towards text and/or values.
I think there's a lot of merit to all the above ideas and just wanted add my two cents.

thanks @choldgraf for opening this discussion - I agree it is pretty important to get right at the outset. If having a separate show command is more flexible in supporting more complex objects in the future (i.e. javascript widgets etc) -- it may be a good way to go to distinguish between the two roles -- but I also like the simplicity of having a single word from an author perspective. I'm conflicted! :-).
My only other name ideas were link / connect. It seems to describe what is happening by connecting or linking documents.
I also don't mind if glue wins.

Following up on this - it feels to me like nobody has super strong opinions about this. Is that true?
(my inclination, if nobody has strong opinions, is to just keep doing what we're doing...)


Revert "Fix "broken" docs build. (#3422)"

This reverts commit a849060a505d5b891b68df679ac36ee79f1e9414.
NOTE: This is labeled "don't merge" because the Sphinx fix hasn't been released to PyPI yet (note the change in nox.py, which is the part that shouldn't be merged).

@tseaver @lukesneeringer Sphinx==1.6.2 has been released so this is ready to merge.

Merge away when green.


Rewrite ISOM muxer on auto demands

Will be done in https://github.com/membraneframework/membrane_mp4_plugin/pull/111


Repeated step name error

Current behavior
I have a feature file that contains multiple scenarios.
Scenario: First Scenario
  Given: Do something 1
  When: I click button
  Then: Observe result 1

Scenario: Second Scenario
  Given: Do something 2
  When: I click button
  Then: Observe result 2

Scenario: Third Scenario
  Given: Do something 3
  When: I click button
  Then: Observe result 3

Scenario: Fourth Scenario
  Given: Do something 4
  When: I click button
  Then: Observe result 4

where each Given creates a unique context which is to be examined for the feature.
Preprocess flags 'When: I click button' as a redundant name.
=> Multiple matching step definitions for: I click button
Desired behavior
Should not cause an error. Legacy version permitted this.
Test code to reproduce
See above
Versions

Cypress version: 10.9.0
Preprocessor version: 15.0.0
Node version: 16.13.0

Checklist

[X] I've read the FAQ.
[X] I've read Instructions for logging issues.
[X] I'm not using<EMAIL_ADDRESS>(package name has changed and it is no longer the most recent version, see #689).

This is intended behavior and in line with how cucumber-js works.


Insert with subselect

What is a good way to implement insert with a select statement?
I create a select builder and then set it inside the insert builder. Trying something like below when building insert:
if ib.sb != nil {
	query, args := ib.sb.Build()
	buf.WriteString(" (")
	buf.WriteString(query)
	buf.WriteString(")")
	println(buf.String())
	initialArg = append(initialArg. args...)
	return ib.args.Compile(buf.String(), initialArg...)
}

However, I am unable to get the args correctly. Somehow placeholders are missing from the final output. Any suggestions?

You can call ib.args.Add(sb) to get a placeholder string holding a reference to SelectBuilder instance. You can then use the placeholder string
Here is a reference implementation for a INSERT INTO ... SELECT builder: https://go.dev/play/p/sWHptqfluAS

Thanks this worked like a charm! Would you like me to send a PR for this?

Yes, it's appreciated. Regarding to the INSERT INTO ... SELECT design, it's recommended to extend InsertBuilder rather than add a new builder. We can discuss more details in your PR.


project.json documentation is outdated

Dear All,
The documentation
https://github.com/aspnet/Home/wiki/Project.json-file
is no longer correct. It appears top in search results and creates confusion for beginners.
BTW, I was looking for a way to exclude an entire directory from being compiled, but no avail!

@mixerp You want compile > exclude. See https://github.com/aspnet/Announcements/issues/175

@Eilon on a related note, @davidfowl said there was a magic script helping with the  migrating of project.json to the new schema. Is this a tool you can publicly share? :smile:

@PinpointTownes hmm first I've heard of this tool.
@ajaybhargavb / @davidfowl ?

@pranavkm ?

I can try cleaning up the script I ran on the AspNet repos.

@pranavkm that would be great, thanks! :smile:
Don't worry if it's "quick and dirty" quality. It will still be better manually editing all the aspnet-contrib projects :smile:

@PinpointTownes here - https://github.com/pranavkm/FixProjectJsonWarnings. It misses a few options (excludes I think was one of them) but should cover most warnings.

@pranavkm thanks for the precious tool, it was really helpful :clap:

This issue is being closed because it has not been updated in 3 months.
We apologize if this causes any inconvenience. We ask that if you are still encountering this issue, please log a new issue with updated information and we will investigate.


IR-LOCK: rework driver (from jschall)

This PR is to push Jon's recent work in the ir-lock driver upstream.
The PR to the ardupilot fork of PX4Firmware can be seen here: https://github.com/ArduPilot/PX4Firmware/pull/59.  I'm sending it upstream so we can get any feedback from @LorenzMeier before pulling it into our fork.
This has been flight tested (by me) and reduces the lag in the ir-lock sensor which leads to improved landing.

Thanks! I just put these on master.


FoundationEssentials: implement getCurrentAbsoluteTime on Windows

Implement querying the current absolute time on Windows which was previously marked as unimplemented.  Use the
GetSystemTimePreciseAsFileTime to query the system time which is in 100-ns intervals since January 1, 1601 (UTC).  This partially enables the Date functionality on Windows.

@swift-ci please test

Our first all green test run 🤩


Support ARM-based macOS

As ARM-based macOS devices are the future of Apple devices, there needs to worked on a version for ARM-based Apple devices.

it is supported by electron already. Are you aware of any issues or incompatibilities?
I'm closing this for the time being, but feel free to reopen with any more details you have that need to be worked on.

This app claims that Mattermost Version 4.6.1 (<IP_ADDRESS>01) is running  on a Intel 64 code base.

For me it looks like that Mattermost is not running optimized 🤔
I'm using macOS 11.0 on a Apple M1 Chip.

most likely using rosetta to run, I guess.
have you noticed any problems?

So far no problems noticed

eventually we'll get M1 builds, but for now I don't think circle will support it. Feel free  to reopen or open a new issue if you notice any odd behaviour that might be related to running through rosetta so we can take a look and consider doing a specific build

I don't know if an M1 build would help the power consumption, but if it is eating nearly as much as my Firefox, with umpteen tabs open, that is something to consider.

I don't know if an M1 build would help the power consumption, but if it is eating nearly as much as my Firefox, with umpteen tabs open, that is something to consider.

cpu cycles are reduced by at absolute minimum 30% so of course it will reduce consumption, it also enhances parallel processing a lot and hardware acceleration.

Looks like the 4.7.* beta and rc versions already include mac-arm64.dmg, guess it will be released soon ?

4.7 addresses part of the power comsumption and as well will provide m1 builds (but keep in mind those are beta as we haven't had many people test them)
Right now m1 builds are the ones ending in arm64, but it will be renamed to m1 by release. Feel free to test them and report any feedback

Right now m1 builds are the ones ending in arm64, but they will be renamed to m1 by release. Feel free to test them and report any feedback

Yep already running on ARM64 Version 4.7.0-rc6 (4.7.0-rc6.10554), so far so good. Thank you


Bit masks and layers don't update their names in opened property fields

Godot version
4.0.alpha1
System information
EndeavourOS Linux x86_6, 5.16.2-arch1-1, Plasma 5.23.5 Xorg
Issue description
When changing a layer or mask name it will not change in the editor properties unless you manually refresh it by selecting another node.

Steps to reproduce

Open a node where you can change the collision layer
Change the layer name in project settings
Save changes and close the settings
Hover over the changed layer name and observe old name
Select a different node and reselect the other one (refresh node properties on the side)
Hover over the changed layer name and observe new name

Applies to all layer and masks settings (collisions, light, 2d/3d)
Minimal reproduction project
No response

@DrunkenToast Does this occur in 3.4.2?

@DrunkenToast Does this occur in 3.4.2?
@Calinou After testing it with 2d collision layers in godot 3.4.2.stable I can confirm this does happen.

I wonder if the project_settings_changed notification can be listened to on master to resolve this. In 3.x, this notification doesn't exist yet, but it's being added by https://github.com/godotengine/godot/pull/53296.

I've updated my PR about renaming layers to fix this issue.

This looks great!


multiple object in a same image

Thank you for your great work! I would like to know how this pipeline can segment multiple objects in a single image.

do you mean multi-cls segmentation?

Not really. I mean single class but multiple objects in an image. I am trying to segment wheat heads from an image. As there are multiple wheat heads in an image, I need to segment all the wheat heads.

I don't think you can segment multiple objects in an image w/ SAM. This is a problem rooted in SAM. In another paper (https://www.sciencedirect.com/science/article/pii/S1361841523001780) we test SAM on medical images and find that if we have prompts for one lung, it usually does not segment both lungs simultaneously.


Support Rofi 1.4.x

Closes #2

Sorry it took me so long to get to this, I forgot I hadn't yet merged. Thanks so much!


fix(oatmeal): Remove Shutdown/RebootOatmeal

hopefully it compiles
Maybe the rabbit will tell me if it doesnt

Summary by CodeRabbit

Chores

Removed the RebootOatmeal command from the application.

Alright, closing PR


[TW#27962] LoadStoreAlignment exception in http task

Environment

Development Kit:      [Custom Board]
Module or chip used:  [ESP32-WROOM-32]
IDF version:  [v3.2-beta1-182-g4c881708d]
Build System: [Make]
Compiler version: [5.2.0]
Toolchain version: [crosstool-ng-1.22.0-80-g6c4433a]
Operating System:     [Linux]
Power Supply:         [USB]

Problem Description
Two RTOS tasks are created in main(). The first is an AWS iot task using MQTT. The second task is a http task which checks a different server for a firmware update. The http task runs fine just once, before the connection to AWS iot. After AWS connection is setup, the http task throws a LoadStoreAlignment exception when called.
Expected Behavior
The http task should successfully contact the server and check for firmware update even when the device is connected to AWS iot.
Actual Behavior
A LoadStoreAlignment exception is thrown in the http task.
Things I've tried
I tried using xTaskPinnedToCore assiging the tasks to separate cores and also the same cores but this didn't help.
Steps to repropduce

make -j flash
make monitor

Setup/wiring
GPIO pin 25 of esp32 is attached to a DHT22 thermostat.
Serial interface is via TX, RX, GND pins to CP2102 adapter.
Code illustrating this issue
(the links will work if you copy and paste them to your browser)

main() from thermostat.cpp
https://gist.github.com/asweeney99/435169f85e7ff2849d728f59b0cdf3eb
firmware.cpp
https://gist.github.com/asweeney99/73aeeddaad6c6af018d78fb08359363a

Debug Logs

backtrace
https://gist.github.com/asweeney99/64e39ca4745e9e3e91667ec0cc768d3b

Other items

sdkconfig file
https://gist.github.com/asweeney99/dd3725638665f55bd77258355a7237a6

@asweeney99
What happens if you change line at https://gist.github.com/asweeney99/73aeeddaad6c6af018d78fb08359363a#file-gistfile1-txt-L71 to esp_http_client_config_t config = {0}?

Thank you for your suggestion. I'll try it as soon as possible.

esp_http_client_config_t config = {0} makes no difference. The backtrace is the same.

Another clue.  So it seems not to be related to the AWS iot task at all.

I (2586) event: sta ip: <IP_ADDRESS>, mask: <IP_ADDRESS>, gw: <IP_ADDRESS>
[I][thermostat.cpp:115] event_handler(): Our IP address is <IP_ADDRESS>

Connected to wifi network
I (2593) codemaker_thermostat: Current firmware version: 0.2
I (2599) codemaker_thermostat: Checking if new firmware is available...

current firmware version (0.2) is greater or equal to the available one (0.2), nothing to do...

I (13410) codemaker_thermostat: Current firmware version: 0.2
I (13410) codemaker_thermostat: Checking if new firmware is available...

assertion "res == coreID || res == portMUX_FREE_VAL" failed: file "/home/andrew/esp/esp-idf/components/freertos/portmux_impl.inc.h", line 105, function: vPortCPUAcquireMutexIntsDisabledInternal
abort() was called at PC 0x400d3ad3 on core 1

I thought that maybe I need to explicitly initialize each member of the struct esp_http_client_config_t in order like this, but this makes no difference.
esp_http_client_config_t ota_client_config = {
                                                                url : file->valuestring,
                                                                host : NULL,
                                                                port : NULL,
                                                                username : NULL,
                                                                password : NULL,
                                                                auth_type : HTTP_AUTH_TYPE_NONE,
                                                                path : "/",
                                                                query : NULL,
                                                                cert_pem : server_cert_pem_start,
                                                                method : HTTP_METHOD_GET,
                                                                timeout_ms : NULL,
                                                                disable_auto_redirect : NULL,
                                                                max_redirection_count : NULL,
                                                                event_handler : _http_event_handler,
                                                                transport_type : HTTP_TRANSPORT_UNKNOWN,
                                                                buffer_size : NULL,
                                                                user_data : NULL,
                                                                is_async : false
                                                        };

@asweeney99
There is definitely memory corruption somewhere. What is size of evt->data_len at https://gist.github.com/asweeney99/73aeeddaad6c6af018d78fb08359363a#file-gistfile1-txt-L48, any chance of buffer overflow here?

Thanks Mahavir for looking over my code. I think you might be right about buffer overflow. I'll report back.

Yes buffer overflow was the problem here:
// receive buffer
char rcv_buffer[200]; //too small

Luca Dentella has a nice tutorial how to use your ESP32 to check your app's firmware version here http://www.lucadentella.it/en/2018/10/27/esp32-37-ota-via-https/ Just don't forget to increase the buffer size for your JSON file if you need to!
Thanks to Mahavir. The issue can be closed.


tracking: support for golang ORM library 'xorm'

Is your feature request related to a problem? Please describe.
XORM: https://xorm.io/

[x] pg_tables https://www.postgresql.org/docs/current/view-pg-tables.html

[x] tablename
[x] schemaname

[x] INFORMATION_SCHEMA.COLUMNS https://www.postgresql.org/docs/current/infoschema-columns.html

[x] column_default
[x] character_maximum_length

[x] CHAR
The actual query:

SELECT column_name, column_default, is_nullable, data_type, character_maximum_length, description,
    CASE WHEN p.contype = 'p' THEN true ELSE false END AS primarykey,
    CASE WHEN p.contype = 'u' THEN true ELSE false END AS uniquekey
FROM pg_attribute f
    JOIN pg_class c ON c.oid = f.attrelid JOIN pg_type t ON t.oid = f.atttypid
    LEFT JOIN pg_attrdef d ON d.adrelid = c.oid AND d.adnum = f.attnum
    LEFT JOIN pg_description de ON f.attrelid=de.objoid AND f.attnum=de.objsubid
    LEFT JOIN pg_namespace n ON n.oid = c.relnamespace
    LEFT JOIN pg_constraint p ON p.conrelid = c.oid AND f.attnum = ANY (p.conkey)
    LEFT JOIN pg_class AS g ON p.confrelid = g.oid
    LEFT JOIN INFORMATION_SCHEMA.COLUMNS s ON s.column_name=f.attname AND c.relname=s.table_name
WHERE n.nspname= s.table_schema AND c.relkind = 'r'::char AND c.relname = 'a' AND f.attnum > 0 ORDER BY f.attnum;

Describe the solution you'd like
No response
Describe alternatives you've considered
No response
Additional context
No response

The missing issue about the char type casting will be addressed upstream: https://gitea.com/xorm/xorm/pulls/2278

The missing issue about the char type casting will be addressed upstream: gitea.com/xorm/xorm/pulls/2278

Merged.


Return error when files are missing

Currently the API will probably panic if the files are not in the directory. It should return correct errors for:

no directory passed (in the best case, it should just do the normal tor-thingie)
directory empty or not existing
file(s) missing

Does this also properly catch if the directory is empty?

@laurent-girod can you also add a small test to arti-rest itself?

Tests on the android side added with c4dt/arti-android#5

iOS is failing with opaque error - needs to be fixed by @ineiti


Make Node::getParentPipeline publically available

In absence of this, and node based queries need the pipline as an argument as well.
Moreover, there's a need for an extra check for confiming if the node actually belongs to the pipeline provided as the argument

@kunaltyagi can you make a corresponding PR for depthai-python as well? (Adding the bindings for it)


Change WeakReference to WeakReference

Reading https://github.com/dotnet/SqlClient/issues/1121 I remembered that we're using WeakReference and not WeakReference<T>, the generic version has a different api shape using bool isAlive = TryGetTarget(out T target)  to prevent the possibility of a GC between IsAlive and Target property accesses. Note that TryGetTarget returns false for null which is why some null checks are no longer needed.

Is this issue also fixed in System.Data.SqlClient package?

Unlikely. The System.Data.SqlClient package is deprecated in favour of this library and the only things that get back ported are security and high impact stability changes. This is simply a modernization.


[feat 32473] Added soft deadline logic to Spanner Change Stream IO connector.

Currently, Spanner Change Stream IO connector expects the beam framework to issue a split event either 5s or every 5MB of processed payload. In case that such event doesn't occur processing will continue until ultimately 1m pre-set timeout for Change Stream query is reached. This will cause the existing work to be dropped and query to be rescheduled. This feature tracks work for adding a soft deadline before the hard deadline that will allow to commit already processed work and updates internal processing low watermark
addresses #32473 fixes #32473
Thank you for your contribution! Follow this checklist to help us incorporate your contribution quickly and easily:

[ ] Mention the appropriate issue in your description (for example: addresses #123), if applicable. This will automatically add a link to the pull request in the issue. If you would like the issue to automatically close on merging the pull request, comment fixes #<ISSUE NUMBER> instead.
[ ] Update CHANGES.md with noteworthy changes.
[ ] If this contribution is large, please file an Apache Individual Contributor License Agreement.

See the Contributor Guide for more tips on how to make review process smoother.
To check the build health, please visit https://github.com/apache/beam/blob/master/.test-infra/BUILD_STATUS.md
GitHub Actions Tests Status (on master branch)

See CI.md for more information about GitHub Actions CI or the workflows README to see a list of phrases to trigger workflows.

R: @thiagotnunes @scwhittle

Friendly ping on this, as it would be nice to avoid deadline exceeds from causing retries

Tested with BigQuery template and sdf checkpoint interval = 80s. There don't seem to be deadline exceeded anymore and data freshness by state oscillates between 40-50s
gcloud dataflow flex-template run $DATAFLOW_JOB --template-file-gcs-location gs://$BUCKET_NAME/templates/flex/Spanner_Change_Streams_to_BigQuery --region us-central1 --parameters spannerInstanceId=$INSTANCE --parameters spannerDatabase=$DATABASE --parameters spannerMetadataInstanceId=$INSTANCE --parameters spannerMetadataDatabase=$META_DATABASE --parameters spannerChangeStreamName=$CHANGE_STREAM --parameters bigQueryDataset=$BIG_QUERY_DATASET --parameters deadLetterQueueDirectory=gs://$BUCKET_NAME/dlq/try1 --parameters experiments=sdf_checkpoint_after_duration=80s

@thiagotnunes Any other comments before merging?


Update Starlette to >=0.21.0

Blocked by https://github.com/encode/starlette/pull/1890

Codecov Report

Merging #108 (7ed3bcd) into main (ae15865) will decrease coverage by 0.23%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##             main     #108      +/-   ##
==========================================
- Coverage   98.34%   98.10%   -0.24%
==========================================
  Files         123      123
  Lines        4226     4224       -2
  Branches      417      415       -2
==========================================
- Hits         4156     4144      -12
- Misses         35       40       +5
- Partials       35       40       +5

Impacted Files
Coverage Δ

...ests/test_docs/tutorial/forms/test_tutorial_003.py
100.00% <ø> (ø)

...st_docs/tutorial/dependencies/test_tutorial_007.py
100.00% <100.00%> (ø)

...ests/test_docs/tutorial/files/test_tutorial_004.py
100.00% <100.00%> (ø)

...ests/test_docs/tutorial/forms/test_tutorial_001.py
100.00% <100.00%> (ø)

...ests/test_docs/tutorial/forms/test_tutorial_002.py
100.00% <100.00%> (ø)

...st_docs/tutorial/query_params/test_tutorial_004.py
100.00% <100.00%> (ø)

tests/test_request_bodies/test_file.py
96.80% <100.00%> (-3.21%)
:arrow_down:

tests/test_request_bodies/test_form.py
100.00% <100.00%> (ø)

tests/test_request_bodies/test_json.py
100.00% <100.00%> (ø)

tests/test_request_bodies/test_multipart.py
98.59% <100.00%> (-1.41%)
:arrow_down:

... and 3 more


@alloy => More changes for Fair Artist View Controller

Changes to add to #89:

Highlights the annotation for the fair artist
Fixes the screenshot used for unit tests

Adding a single show was only done from our existing fair artist VC, so I changed the behaviour (and name to match).

Thanks for that fixture fix!


u'' prefix is assumed => add an error for using it

If I parse with refactorlib I'll want to look for something like:
<Py>u"bar"</Py>

Via #13


fix invoice waiting

Description
This more directly addresses the underlying problem that #1555 solves. See the discussion there for more explaination.
Basically this creates a new invoice controller for every payment that's made rather than reusing the same one.
This can use a more serious refactor, but it's not worth it right now - it needs a real "meditation" to figure out how to improve it.
QA: 6. I tested zaps and greped around for any use of waitUntilPaid which was very minimal.
@ekzyis can you confirm it fixes the issue you originally identified. I don't have a reproduction.

@ekzyis can you confirm it fixes the issue you originally identified. I don't have a reproduction.

it does!

Going to merge so I can rebase on master


Use libsystemd instead of libsystemd-journal

libsystem-journal is deprecated and all functionality lives in libsystemd.
Fixes #13

No, this will break compatibility with older systems such as Mint 17.3.

Well currently it's broken on newer systems...

Here's a way to have it work for both:
https://github.com/jue89/node-systemd-journald/blob/f2863c9a2058c4278efc04c8cc85649aa7eea114/binding.gyp


Intermittent crash when turning screen off and on again

We discovered a crash in our own app when locking and unlocking the screen, and we have confirmed it exists in the barcode-reader sample as well.
Note that so far I have only seen this with Play Services 8.4, but due to the intermittent nature of this bug it is hard to determine whether it is actually new in 8.4.
Steps to reproduce:

Open the barcode sample and go to the "read barcode" screen
Lock the device's screen
Unlock the device's screen

Observe that sometimes the app will crash with the following exception:
01-07 14:36:11.880 18763-22433/? E/Signal: Caught Unhandled Exception
    java.lang.IllegalArgumentException: Null image data supplied.
        at com.google.android.gms.vision.Frame$Builder.setImageData(Unknown Source)
        at com.google.android.gms.vision.CameraSource$zzb.run(Unknown Source)
        at java.lang.Thread.run(Thread.java:818)
01-07 14:36:11.984 18763-22433/? E/AndroidRuntime: FATAL EXCEPTION: Thread-6576
    java.lang.IllegalArgumentException: Null image data supplied.
        at com.google.android.gms.vision.Frame$Builder.setImageData(Unknown Source)
        at com.google.android.gms.vision.CameraSource$zzb.run(Unknown Source)
        at java.lang.Thread.run(Thread.java:818)

What device are you seeing the crash on? Have you tried other devices?
I wasn't able to reproduce this issue on a Nexus 5.

I wasn't able to reproduce on my Nexus 5 either.
I was able to reproduce on both a Moto X Style and a Nexus 6P.

We'll have to get some phones to test on, but it sounds like a camera driver problem.

Not sure if this is helpful, but I'm experiencing something similar on the Nexus 5X. On a certain event I stop the camera source and start it again after about a second. Sometimes I get this crash.
E/AndroidRuntime: FATAL EXCEPTION: Thread-20127
                               Process: com.yplanapp.ticketing, PID: 11652
                               java.lang.IllegalArgumentException: Null image data supplied.
                                     at com.google.android.gms.vision.Frame$Builder.setImageData(Unknown Source)
                                     at com.yplanapp.ticketing.camera.CameraSource$FrameProcessingRunnable.run(CameraSource.java:1212)
                                     at java.lang.Thread.run(Thread.java:818)

@anothem - I see that you are using the open source version of CameraSource.  Can you try the following to help us to track down this problem?:
On this line:
https://github.com/googlesamples/android-vision/blob/master/visionSamples/barcode-reader/app/src/main/java/com/google/android/gms/samples/vision/barcodereader/ui/camera/CameraSource.java#L1152
Change the "if" to a "while".  I think that this will fix it.
But it's possible that there's a deeper issue.  Please also add the debugging statement below here in the code, and let us know if you see any of these warnings logged:
https://github.com/googlesamples/android-vision/blob/master/visionSamples/barcode-reader/app/src/main/java/com/google/android/gms/samples/vision/barcodereader/ui/camera/CameraSource.java#L1125
if (mPendingFrameData == null) {
if (data == null) {
Log.w(TAG, "Null image data received from the camera.");
} else if (mBytesToByteBuffer.containsKey(data)) {
Log.w(TAG, "mBytesToByteBuffer has a null entry for image data received from the camera.");
} else {
Log.w(TAG, "Could not find ByteBuffer associated with the image data from the camera.");
}
}
Thanks.

Hi @pm0733464, thanks for the quick response!
I've tried changing the if to a while and it does seem to solve it, I haven't been able to crash it once. Keeping in mind though that I'm only seeing the crash intermittently, so it's not the most reliable test.
I've added the logs above, the only one I've seen is the following (but this I've seen multiple times)
01-15 16:27:32.370 21031-21031/com.yplanapp.ticketing W/CameraSource$FrameProcessingRunnable: Could not find ByteBuffer associated with the image data from the camera.

Thanks.  I'll look into this some more.

Seeing the same problem - mPendingFrameData is always null. Tried on Nexus 6P and Samsung Galaxy S4, with Play Services 8.4 and 8.3

As a near term workaround, I'd recommend using the open source version and changing the "if" to a "while", as I suggested above.
We will fix this in a future release.

I have encountered the same issue while using facetracker library on my nexus 6p and samsung galaxy sm-t230. Is there any near future release to fix this issue? Should I implement Play Services manually to my project and change CameraSource.class "if" to a "while" or wait a new release of play services? Thanks

Make the "if" / "while" change.  There's an open source copy of CameraSource that I linked to above, and you'd use that in your project in place of com.google.android.gms.vision.CameraSource (i.e., copy the file and change the package name).
Note that I have a change pending to fix the issue in the open source version, if you'd prefer to wait.

We have updated the open source version of the code with the fix:

We are still using the open source version in our app. Any idea when the fix will make it's way to Play Services version?

My used of Play Service's Version_  9.6.83(248_133155058)
So,thank's..!
Please,  You're supporting helful me.

This was fixed in the Play Services version.

I can confirm open source CameraSource.java working well.
Any hint on how to use the correct version of play services?


Poloniex CCI Live Trading active but no Trades

Hello,
first of all thank you for the great software. I have following Problem:
I connected gekko with poloniex and created a live trader with CCI for USDT <> XRP, all with the UI.
API:
key: XXXXXXXX-XXXXXXXX-XXXXXXXX-XXXXXXXX
secret: long hash
Settings are set with the UI:
CCI
{
"constant": 0.015,
"history": 90,
"thresholds": {
"up": 90,
"down": -130,
"persistence": 0
}
}
Gekko created successful a Strat Runner and a Market Watcher.
Backtesting work without Problem.
I have additional Questions:

When I use the gekko UI is the config.js required and also the agreement Use = true? I found nothing in Documentation and github.
1.1. When I use the live trader with UI, is an additional configuration required? When yes there i can find a explanation to configure the trader with the UI?
When I add the API Key for Poloniex, must I generate a public key or ist the key format above correct?

Thanks for your future help.

When I use the gekko UI is the config.js required and also the agreement Use = true? I found nothing in Documentation and github.

You can fully ignore the config.js file when working with the UI. Setting the agreement to true is currently not needed, but will be in the next version (there will be a popup in the UI).

When I add the API Key for Poloniex, must I generate a public key or ist the key format above correct?

The above format looks correct to me, so if you add that to the config page you should be good. I am also thinking about adding a small button on the config page where you can "test" your credentials.

What is the problem with the live trader?

@askmike  the live trader dont trade

If you run a separate backtest with the same setting settings (and candle size), does Gekko trade? Maybe there has not been a buy or sell signal yet?

@askmike No backtest runs fine with that options on the poloniex data.

@askmike thank you for helping and answering some of my questions. The buy signal taked longer when backtest buy signals.

ah yes! I will write some docs on current order execution. But the live trader will try to get a good deal, this might take a while.

See #919 for a discussion about different strategies that might make it in a future version of Gekko.