"writeable": false,
                  "label": "Z-Wave protocol version"
                },
                "value": "6.3"
              },
              {
                "endpoint": 0,
                "commandClass": 134,
                "commandClassName": "Version",
                "property": "firmwareVersions",
                "propertyName": "firmwareVersions",
                "ccVersion": 2,
                "metadata": {
                  "type": "any",
                  "readable": true,
                  "writeable": false,
                  "label": "Z-Wave chip firmware versions"
                },
                "value": [
                  "3.3",
                  "11.0"
                ]
              },
              {
                "endpoint": 0,
                "commandClass": 134,
                "commandClassName": "Version",
                "property": "hardwareVersion",
                "propertyName": "hardwareVersion",
                "ccVersion": 2,
                "metadata": {
                  "type": "any",
                  "readable": true,
                  "writeable": false,
                  "label": "Z-Wave chip hardware version"
                },
                "value": 3
              },
              {
                "endpoint": 0,
                "commandClass": 128,
                "commandClassName": "Battery",
                "property": "level",
                "propertyName": "level",
                "ccVersion": 1,
                "metadata": {
                  "type": "number",
                  "readable": true,
                  "writeable": false,
                  "label": "Battery level",
                  "min": 0,
                  "max": 100,
                  "unit": "%"
                }
              },
              {
                "endpoint": 0,
                "commandClass": 128,
                "commandClassName": "Battery",
                "property": "isLow",
                "propertyName": "isLow",
                "ccVersion": 1,
                "metadata": {
                  "type": "boolean",
                  "readable": true,
                  "writeable": false,
                  "label": "Low battery level"
                }
              },
              {
                "endpoint": 0,
                "commandClass": 113,
                "commandClassName": "Notification",
                "property": "alarmType",
                "propertyName": "alarmType",
                "ccVersion": 0,
                "metadata": {
                  "type": "number",
                  "readable": true,
                  "writeable": false,
                  "label": "Alarm Type",
                  "min": 0,
                  "max": 255
                }
              },
              {
                "endpoint": 0,
                "commandClass": 113,
                "commandClassName": "Notification",
                "property": "alarmLevel",
                "propertyName": "alarmLevel",
                "ccVersion": 0,
                "metadata": {
                  "type": "number",
                  "readable": true,
                  "writeable": false,
                  "label": "Alarm Level",
                  "min": 0,
                  "max": 255
                }
              }
            ],
            "isFrequentListening": "1000ms",
            "maxDataRate": 100000,
            "supportedDataRates": [
              40000,
              100000
            ],
            "protocolVersion": 3,
            "supportsBeaming": true,
            "supportsSecurity": false,
            "nodeType": 1,
            "zwavePlusNodeType": 0,
            "zwavePlusRoleType": 7,
            "deviceClass": {
              "basic": {
                "key": 4,
                "label": "Routing Slave"
              },
              "generic": {
                "key": 64,
                "label": "Entry Control"
              },
              "specific": {
                "key": 3,
                "label": "Secure Keypad Door Lock"
              },
              "mandatorySupportedCCs": [
                32,
                98,
                99,
                114,
                152,
                134
              ],
              "mandatoryControlledCCs": []
            },
            "commandClasses": [
              {
                "id": 98,
                "name": "Door Lock",
                "version": 2,
                "isSecure": true
              },
              {
                "id": 99,
                "name": "User Code",
                "version": 1,
                "isSecure": true
              },
              {
                "id": 114,
                "name": "Manufacturer Specific",
                "version": 1,
                "isSecure": true
              },
              {
                "id": 152,
                "name": "Security",
                "version": 1,
                "isSecure": true
              },
              {
                "id": 134,
                "name": "Version",
                "version": 2,
                "isSecure": true
              },
              {
                "id": 94,
                "name": "Z-Wave Plus Info",
                "version": 2,
                "isSecure": false
              },
              {
                "id": 108,
                "name": "Supervision",
                "version": 1,
                "isSecure": true
              },
              {
                "id": 138,
                "name": "Time",
                "version": 1,
                "isSecure": true
              },
              {
                "id": 133,
                "name": "Association",
                "version": 2,
                "isSecure": true
              },
              {
                "id": 112,
                "name": "Configuration",
                "version": 1,
                "isSecure": true
              },
              {
                "id": 128,
                "name": "Battery",
                "version": 1,
                "isSecure": true
              },
              {
                "id": 113,
                "name": "Notification",
                "version": 1,
                "isSecure": true
              },
              {
                "id": 122,
                "name": "Firmware Update Meta Data",
                "version": 3,
                "isSecure": true
              },
              {
                "id": 89,
                "name": "Association Group Information",
                "version": 1,
                "isSecure": true
              },
              {
                "id": 90,
                "name": "Device Reset Locally",
                "version": 1,
                "isSecure": true
              },
              {
                "id": 135,
                "name": "Indicator",
                "version": 1,
                "isSecure": true
              }
            ],
            "interviewStage": "Complete"
          }
        ]
      }
    }
  }
]

<!--
  ATTACH(!) `zwave-js` logfile with DEBUG or VERBOSE loglevel here. Please no links or gists or embedded logs.
  Please make sure to upload the correct log. If you're unsure, the correct one is called `zwave-<number>.log` and starts with
███████╗ ██╗    ██╗  █████╗  ██╗   ██╗ ███████╗             ██╗ ███████╗
╚══███╔╝ ██║    ██║ ██╔══██╗ ██║   ██║ ██╔════╝             ██║ ██╔════╝
███╔╝  ██║ █╗ ██║ ███████║ ██║   ██║ █████╗   █████╗      ██║ ███████╗
███╔╝   ██║███╗██║ ██╔══██║ ╚██╗ ██╔╝ ██╔══╝   ╚════╝ ██   ██║ ╚════██║
███████╗ ╚███╔███╔╝ ██║  ██║  ╚████╔╝  ███████╗        ╚█████╔╝ ███████║
╚══════╝  ╚══╝╚══╝  ╚═╝  ╚═╝   ╚═══╝   ╚══════╝         ╚════╝  ╚══════╝
If you are using zwavejs2mqtt, this is how you create the logfiles:

Go to Settings, Z-Wave section
select log level DEBUG
enable "log to file"

For HomeAssistant, this is how you do it:
Home Assistant -> settings -> Integrations -> Z-Wave JS -> Configure -> Create dump -> zip the json file and post it here.
-->

I really need a driver log, loglevel debug or silly to investigate this. Since this is going to involve lock codes, you can upload an encrypted archive and send me the password via e-mail (see my profile).

Thanks - logs are uploaded below and I sent you an email with the password.
This zip folder contains two log files: one recorded during the initial inclusion and another during the re-interview. It looks like, this time, in both cases the lock failed to provide usercodes at all.
Finally, one additional note: I needed to use zwavejs2mqtt to generate this log file, but I typically use the official zwavejs HA integration to control my devices.
zwavejs2mqtt_logs.zip

There's definitely something wrong with the communication. The lock is responding with encrypted commands that re-use a previous nonce (one-time key). The first example is when the Basic CC version is queried:
# zwave-js sends VersionCCGet
2021-06-25T12:41:25.371Z DRIVER » [Node 059] [REQ] [SendData]
                                  │ transmit options: 0x25
                                  │ callback id:      47
                                  └─[SecurityCCCommandEncapsulation]
                                    │ nonce id: 94
                                    └─[VersionCCGet]

# Node requests nonce for the response
2021-06-25T12:41:25.445Z DRIVER « [Node 059] [REQ] [ApplicationCommand]
                                  └─[SecurityCCNonceGet]

# zwave-js responds with nonce ID 0xea
2021-06-25T12:41:25.446Z DRIVER » [Node 059] [REQ] [SendData]
                                  │ transmit options: 0x05
                                  │ callback id:      48
                                  └─[SecurityCCNonceReport]
                                      nonce: 0xea437d392184a2ce

# Command is received by node
2021-06-25T12:41:25.454Z DRIVER « [RES] [SendData]
                                    was sent: true
2021-06-25T12:41:26.714Z DRIVER « [REQ] [SendData]
                                    callback id:     48
                                    transmit status: OK

# Node responds with encrypted response to VersionCCGet
2021-06-25T12:41:26.799Z DRIVER « [Node 059] [REQ] [ApplicationCommand]
                                  └─[SecurityCCCommandEncapsulation]
                                    │ sequenced: false
                                    └─[VersionCCReport]
                                        library type:      Routing Slave
                                        protocol version:  6.3
                                        firmware versions: 3.3, 11.0
                                        hardware version:  3

# zwave-js requests CC version for Basic CC
2021-06-25T12:41:26.802Z DRIVER » [Node 059] [REQ] [SendData]
                                  │ transmit options: 0x25
                                  │ callback id:      49
                                  └─[SecurityCCNonceGet]
2021-06-25T12:41:26.811Z DRIVER « [RES] [SendData]
                                    was sent: true
2021-06-25T12:41:26.940Z DRIVER « [REQ] [SendData]
                                    callback id:     49
                                    transmit status: OK

2021-06-25T12:41:27.016Z DRIVER « [Node 059] [REQ] [ApplicationCommand]
                                  └─[SecurityCCNonceReport]
                                      nonce: 0x263bc669942e9115

2021-06-25T12:41:27.017Z DRIVER » [Node 059] [REQ] [SendData]
                                  │ transmit options: 0x25
                                  │ callback id:      50
                                  └─[SecurityCCCommandEncapsulation]
                                    │ nonce id: 38
                                    └─[VersionCCCommandClassGet]
                                        CC: Basic

# Node requests nonce to encrypt response
2021-06-25T12:41:27.243Z DRIVER « [Node 059] [REQ] [ApplicationCommand]
                                  └─[SecurityCCNonceGet]

# zwave-js responds with nonce ID 0xe3
2021-06-25T12:41:27.244Z DRIVER » [Node 059] [REQ] [SendData]
                                  │ transmit options: 0x05
                                  │ callback id:      51
                                  └─[SecurityCCNonceReport]
                                      nonce: 0xe3838d4678b95b70

# which is received by the node
2021-06-25T12:41:27.252Z DRIVER « [RES] [SendData]
                                    was sent: true
2021-06-25T12:41:27.390Z DRIVER « [REQ] [SendData]
                                    callback id:     51
                                    transmit status: OK

# Node responds with encrypted command that uses the old nonce (0xea) instead of (0xe3)
2021-06-25T12:41:27.473Z SERIAL « 0x01200004003b1898818c4faacc01e5b6b2722b6992bfeace33a53f53d379d3d70 (34 bytes)
                                  0c9                                           ^^--- HERE!

zwave-js doesn't accept that command, since that goes against the S0 specs and is a security risk.

TL;DR: The device is misbehaving. That could be due to a connectivity issue which seems to be the most frequent reason for this spamming. You can try healing the network and/or moving permanently-powered nodes to improve the mesh between the lock and the controller.

Thanks for looking into this. I'll see if there's anything I can do to improve the connection, although I already have a fairly dense network of permanently-powered light switches in my network - several of which are physically located between my locks and the controller.
Do you think it would be worthwhile to move the lock close to the controller during initial inclusion to rule out any signal issues? I'm assuming I could follow this up with a heal network afterward once the lock is returned to the door to correct any routing issues caused by moving it.

Could be worth a try.

We've played with the Schlage's BE469ZP a bunch. It's our experience that this device does NOT return access codes in clear (i.e. returns "******" instead of "123456"). Not sure you're going to be able to solve this one.

@sybohy Thanks for the info. Interestingly, I am able to read and edit user codes (the half that show up after a good interview) just fine through the ui when they successfully interview.
The issue seems to be reliably completing the interview to get all the codes in the first place.

I'm planning to not query the user codes during the interview any more, because that may take excessively long and take a toll on the battery: #2727
That means you'll have to query specific user codes instead of doing the interview over and over. Which you can already do by the way, maybe that will help you.

@AlCalzone Ahh that makes sense. I've noticed the interview spends a lot of time on user codes - especially in my case where each request waits the full timeout length waiting for the lock to respond.
I didn't realize you could query individual parameters - I'll give that a try. Could you point me to instructions on how to query a single usercode?
I don't think the official Home Assistant add-on has this functionality yet - makes sense because its relatively new, but I don't see that functionality in zwavejs2mqtt either (I just see the option to refresh all values for the node or all existing usercodes, but not a single code in particular).

zwavejs2mqtt has the ability to let you access an arbitrary API. Here's an example for startLevelChange, but it works for any API:
https://zwave-js.github.io/zwavejs2mqtt/#/guide/mqtt?id=send-command
You'll want to use this API:
https://zwave-js.github.io/node-zwave-js/#/api/CCs/UserCode?id=get
so...
{
  args: [
    {
      nodeId: 1 /* <- your node ID here */,
      commandClass: 0x63,
      endpoint: 0 /* <- probably 0, maybe another one */,
    },
    "get",
    [1 /* <- this is the user ID */],
  ],
}

The usercodes are not provided as values?

@jreed509  here's a function I recently wrote to get the node state to update a specific user code. Note that you don't really need the msgOptions persay. I just wanted to be very specific about the polling behavior and the cmd priority (be careful with this).
import {
  UserCodeCCAPI,
  UserIDStatus,
  getUserCodeValueID,
  getUserIdStatusValueID,
} from "zwave-js/build/lib/commandclass/UserCodeCC"

function refreshUserCode(node: ZWaveNode, user_code_id: number) {
  const msgOptions: SendCommandOptions = {
    maxSendAttempts: 1,
    priority: MessagePriority.Normal,
  }
  const userCodeValueId: ValueID = getUserCodeValueID(0, user_code_id)
  const userIdStatusValueId: ValueID = getUserIdStatusValueID(0, user_code_id)
  node.pollValue(userCodeValueId, msgOptions)
  node.pollValue(userIdStatusValueId, msgOptions)
}

@kpine I may be missing something, but I don't think the refresh_value service allows for refreshing individual values. It either refreshes all values for a node (with refresh_all_values: true) or only the primary value, which I believe is the lock state (with refresh_all_values: false).
Regarding KeyMaster - I actually haven't been able to get KeyMaster working. That's actually what got me started trying to debug the missing usercodes in the first place. Calling keymaster.refresh_codes returns an error that userIdStatus for code slot 1 not found. I assume this is because zwave_js (the HA integration) can't find any registered usercodes to begin with - that's probably beyond the scope of this issue though.

Thanks @AlCalzone & @sybohy - I was able to run this code snippet using the "custom driver function" feature of zwavejs2mqtt to query individual user codes:
const nodeNum = 24
const userCodeID = 1;
const endpointNum = 0;

const node = driver.controller.nodes.get(nodeNum);
const endpoint = node.getEndpoint(endpointNum);
const userCodeCCApi = endpoint.commandClasses["User Code"];
if (userCodeCCApi.isSupported()) {
 await userCodeCCApi.get(userCodeID, false);
}

This worked great to grab the missing user codes which were then editable in the zwavejs2mqtt ui. Unfortunately, these values don't seem to carry over to the official HA zwave_js addon so I can't actually do anything with them with my current setup. I suppose the official HA addon will need to support querying individual parameters for this to work there.

I may be missing something, but I don't think the refresh_value service allows for refreshing individual values. It either refreshes all values for a node (with refresh_all_values: true) or only the primary value, which I believe is only the lock state (with refresh_all_values: false).

You're right. I was thinking refresh_value allowed specifying the value ID properties like set_value does, but it only allows entities. That's unfortunate.

Regarding KeyMaster - I actually haven't been able to get KeyMaster working. That's actually what got me started trying to debug the missing usercodes in the first place. Calling keymaster.refresh_codes returns an error that userIdStatus for code slot 1 not found. I assume this is because zwave_js (the HA integration) can't find any registered usercodes to begin with - that's probably beyond the scope of this particular issue though.

Well, I just learned that the refresh_codes service call is only for OZW, it doesn't apply to zwave_js. You might try submitting an issue there and asking for the capability? KeyMaster only responds to value updates, and if nothing is triggering a value update, then I suppose it will never see the code values, and you're back to square one. When zwave_js stops automatically requesting user codes, the problem will be noticed by all those users.

that the refresh_codes service call is only for OZW, it doesn't apply to zwave_js
Ahh good catch - yep that explains that error then. I just opened an issue with KeyMaster requesting this functionality as well.

How about the node.refreshCCValues command? Will that accomplish the same thing if that were to be called on the User Code CC? We could explore adding a service for that in HA, and we can definitely call that via the library directly from Keymaster in the refresh_codes service

@raman325 it would, but I strongly suggest to query individual user codes on demand, rather than all of them.

fair enough. The only challenge there is that we would then need to add support for the ConfigurationCC.set command to zwave-js-server. This is doable, it just becomes a slippery slope to duplicate the CC specific APIs within zwave-js-server which I would prefer not to have to maintain. Something to think about

This is doable, it just becomes a slippery slope to duplicate the CC specific APIs within zwave-js-server which I would prefer not to have to maintain

Would https://github.com/zwave-js/node-zwave-js/issues/2799 avoid that?

This is doable, it just becomes a slippery slope to duplicate the CC specific APIs within zwave-js-server which I would prefer not to have to maintain

Would #2799 avoid that?
Edit: Why ConfigurationCC.set though? I thought this is about user codes?
You can also query their individual value IDs with the pollValue method.

Sorry meant UserCodeCC.get, was thinking about something else as I was writing. With that being said, yes, a function like this would be great! I think this means that we would only have to expose one generic command to cover any CC API function? If so, sign me up!

Version 8 is going to drop the user code query during the interview, so you shouldn't be seeing this behavior anymore. If you need to read an individual user code, you can do that on demand then.


/pro/:urlname/groups returns error

Hi,
I tested the /pro/:urlname/groups in the console (https://secure.meetup.com/meetup_api/console/?path=/pro/:urlname/groups)
Tested it using the pro group I'm interested in: r-user-groups (https://www.meetup.com/pro/r-user-groups/).  It returns HTTP/1.1 0 error.
The only box I filled was: :urlname with r-user-groups.

I'm having the same problem with two of the /pro/ methods in the console:

/pro/:urlname/members
/pro/:urlname/groups

In my case, :urlname was set to crossingpartylines and no other fields were changed.
The /pro/:urlname/tickets and /pro/:urlname/rsvps methods did return results in the expected format.

Yes I am also having this issue! It is actually blocking me from migrating to Oauth 2 since they only work with the API key at the moment.

Yeah, I did confirm the API console is broke for the Pro endpoints (we do have an internal ticket trying to address it).
I will keep you guys posted once it got fixed.

Updated the title to better reflect the bug.
Yeah, the API should be working as expected but not the API console.

The API endpoints should work. Just the API console is broken. Are you experiencing issues with the actual API endpoints as well or just while trying to test via the console?

I am hitting the API directly and having problems as well.  I get a 502 response status and {"message": "Internal server error"} response data.

My repro steps:
curl -H "Accept: application/json" -X GET "https://secure.meetup.com/oauth2/authorize?client_id=my_client_id&response_type=anonymous_code&redirect_uri=https://www.unrealengine.com/user-groups"

curl -H "Accept: application/json" -X POST "https://secure.meetup.com/oauth2/access?client_id=my_client_id&grant_type=anonymous_code&redirect_uri=https://www.unrealengine.com/user-groups&code=authorize_code_returned&client_secret=my_client_secret"

curl -H "Accept: application/json" -H "Authorization: Bearer access_token_returned" -X GET "https://api.meetup.com/pro/unrealengine/groups"

-> {"message": "Internal server error"}

@chenrui333 @tkdgirlmona I am using grant_type=anonymous_code since I am hitting the API from our server to pull group data.  I think there is a legit problem with the API when accessing the pro endpoints with this grant_type.

Thanks for all the above info, let me take a look now.

Any luck reproducing?

It is CORS issue on our end, and we plan to fix today or tomorrow.

ETA on the fix? I'd like to have a few hours to develop and test against the new API before tomorrow.  When you flip the switch our page will stop functioning. Any thoughts on delaying?

No ETA, pairing session this afternoon to do this.

We have made some progress today, will finalize the release tomorrow. Thanks!

@tony99nyr I believe we have fixed this issue, can you retry at your end? Thanks!

@chenrui333 No change. I still get a 502 error with the same response.  Tried postman and curl.

I think at least the API console error is gone:

@edgararuiz, @maracharnell, does the API console work for any of you now?

@tony99nyr I will try your process shortly.

Oh true! Yes the API console at https://secure.meetup.com/meetup_api/console now works for /pro/:urlname/groups and /pro/:urlname/meetings.

@tony99nyr Do you mind sharing your member_id so that I can dig little bit in the logs? Thanks!

Email sent

My repro steps:
curl -H "Accept: application/json" -H "Content-Type: application/json" -X GET "https://secure.meetup.com/oauth2/authorize?client_id=my_client_id&response_type=anonymous_code&redirect_uri=https://www.unrealengine.com/user-groups"

curl -H "Accept: application/json" -X POST "https://secure.meetup.com/oauth2/access?client_id=my_client_id&grant_type=anonymous_code&redirect_uri=https://www.unrealengine.com/user-groups&code=authorize_code_returned&client_secret=my_client_secret"

curl -H "Accept: application/json" -H "Authorization: Bearer access_token_returned" -X GET "https://api.meetup.com/pro/unrealengine/groups"

-> {"message": "Internal server error"}

This was indeed an issue with our problematic queryString handling, now it should be fixed now.
Let me know if you still have any problem with this issue.

someone can help on my issue pls?? https://github.com/meetup/api/issues/341


Add PartialEq to Error

Add #[derive(Debug, PartialEq)] to the error so it could be compared in tests of other libraries/apps that use your library.
https://github.com/georust/rust-topojson/blob/master/src/error.rs#L5

https://www.reddit.com/r/rust/comments/5d8frm/traits_derived_in_errors/

@kless Do you want to try opening a PR for this? You should be able to edit the file in GitHub's web UI and just add the derived traits. Not worried about tests for this

https://github.com/georust/rust-topojson/pull/4


FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory

Hi,
Found your fix regarding FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory and ran into an error :
`
$ npm run fix-memory-limit
npm ERR! code EJSONPARSE
npm ERR! path C:\path\to\backend/package.json
npm ERR! JSON.parse Unexpected token " " (0xA0) in JSON at position 695 while parsing near "... "fix-memory-limit": "cross-env LIMIT=40..."
npm ERR! JSON.parse Failed to parse JSON data.
npm ERR! JSON.parse Note: package.json must be actual JSON, not just JavaScript.
npm ERR!      C:\Users<user>\AppData\Local\npm-cache_logs\2023-01-20T22_21_51_305Z-debug-0.log
`
I've followed this link but not sure what I'm missing.
Here is a sample of my package.json` file :

Compared it with a json validator :

Please let me know what I'm missing here?
Thanks.

Thanks.


[terra-slider] Fix wrapping issue for min/max labels

Summary

What was changed:
Modified css for min/max labels to avoid wrapping which is currently occurring on Fusion integration page.
This change will not make labels wrap to next line. The min/max labels do not have wrapping requirement like the main field label, and are expected to be simple labels.
Testing

Before:

After:

This change was tested using:

[ ] WDIO
[ ] Jest
[x] Visual testing (please attach a screenshot or recording)
[ ] Other (please describe below)
[ ] No tests are needed

Reviews
In addition to engineering reviews, this PR needs:

[x] UX review
[ ] Accessibility review
[ ] Functional review

Additional Details

This PR resolves:
UXPLATFORM-9871
MPAGESCORE-87696

Thank you for contributing to Terra.
@cerner/terra

Shouldn't we have a unit test to cover this?  Also, why was the text wrapping?  The way that this is coded, the text can now exceed the boundaries of the container.  I am not sure that is correct.

Shouldn't we have a unit test to cover this? Also, why was the text wrapping? The way that this is coded, the text can now exceed the boundaries of the container. I am not sure that is correct.
https://developer.mozilla.org/en-US/docs/Web/CSS/white-space

This is not happening on the Terra side and was not reproducible even on small screens, it is only happening on the Fusion page and was tested on Fusion side.
Based on conversation with Eric, we are expecting the min/max labels to be pretty small and not elaborate descriptions (we have the main field label for it and that wraps fine). So these labels need not wrap and callouts also don't require it.

Shouldn't we have a unit test to cover this? Also, why was the text wrapping? The way that this is coded, the text can now exceed the boundaries of the container. I am not sure that is correct.
https://developer.mozilla.org/en-US/docs/Web/CSS/white-space

This is not happening on the Terra side and was not reproducible even on small screens, it is only happening on the Fusion page and was tested on Fusion side. Based on conversation with Eric, we are expecting the min/max labels to be pretty small and not elaborate descriptions (we have the main field label for it and that wraps fine). So these labels need not wrap and callouts also don't require it.

Yes, but your content should not be allowed to exceed your container, correct?  You would then be overlaying other content because of your overflow.  There must be something that the Fusion team is doing in the integration that is causing the issue.  Have we found the true root cause of the problem?

@nikhitasharma yeah I agree with Charles. I didn't realize this change would allow the label to exceed the container bounds. I'd expect that the slider portion would flex as the container shrinks (because growing the container and causing horizontal scroll at small widths would be really clunky on mobile)

usion page also does not ha

Do you maybe need to do a troubleshooting session with the Fusion team.  Did you analyze all the styles of their parent container?  Also, looking at Eric's comment, can't you use your flexbox to shrink the size of the slider when there is not enough room?

usion page also does not ha

Do you maybe need to do a troubleshooting session with the Fusion team. Did you analyze all the styles of their parent container? Also, looking at Eric's comment, can't you use your flexbox to shrink the size of the slider when there is not enough room?

I had a meeting with the developer working on the fusion side. Looks like having the widths as percentages was causing the unexpected wrapping. Removing those, the issue did not occur on fusion side.

I have added new wdio tests to test on tiny screen to make sure the main field label wrapping works as expected when long field names are given.

I have added a screenshot of how the slider looks on responsive screen sizes in the PR description above.

I have also added align left for main field label as that seems to be on the callouts and I missed it last time:

@eawww  The horizontal scrolling will be introduced at screen widths smaller than 365px because of the min-width requirement of the input range. But on screens larger than that, the horizontal scrolling won't be needed.

Do these style updates mean we should have used the Terra Arrange component?

Do these style updates mean we should have used the Terra Arrange component?

Maybe we should have.

Do these style updates mean we should have used the Terra Arrange component?

Maybe we should have.

Should we try implementing it here then?  If we already have a Terra component that does what is required, it seems like it would be best to reuse it.

Do these style updates mean we should have used the Terra Arrange component?

Maybe we should have.

Should we try implementing it here then? If we already have a Terra component that does what is required, it seems like it would be best to reuse it.

I am trying to get this fix in as soon as possible because of a release deadline of Monday Nov 20th. I don't think there is enough time for me to implement using terra arrange now. We have this Jira logged for improving this in future: https://jira2.cerner.com/browse/UXPLATFORM-9778

Last question.  Should the label text be allowed to wrap unbound or should we truncate and use an ellipsis at some point?

Last question. Should the label text be allowed to wrap unbound or should we truncate and use an ellipsis at some point?

The callouts mention wrapping of the label but nothing about truncation. I don't think the label text is supposed to be too long either that we might need to truncate. But I could be wrong in assuming that though.  @eawww Do you see this as something we might require with labels for Slider?

@nikhitasharma @cm9361 our design standards say that labels shouldn't be truncated so I don't think we should build it into a component. It's the responsibility of consumers to ensure their labels are concise.

@nikhitasharma I'm still getting overflow with no scrolling in all of the examples.


Issue with sink file

Hi,
When I try to read a snapshot that contains sink particles I get the
following error:
Traceback (most recent call last):
File "", line 1, in
File "/Users/tepper/Library/Python/3.7/lib/python/site-packages/osyris/core/dataset.py", line 63, in load
groups = self.loader.load(args, meta=self.meta, **kwargs)
File "/Users/tepper/Library/Python/3.7/lib/python/site-packages/osyris/io/loader.py", line 81, in load
select=select[group])
File "/Users/tepper/Library/Python/3.7/lib/python/site-packages/osyris/io/sink.py", line 51, in initialize
unit_list.append(eval(u.replace(' ', '')))
File "", line 1
1*
^
SyntaxError: unexpected EOF while parsing

Hi,
I've just made a pull request that should fix your issue.

Hi Matthias,
Issue resolved, awesome!
Thanks a million.
Thor


added ex5 solution

Name: Ishwor Khanal
Score : 3
Error : 2.339638 mHa
No. of parameters : 16

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

Sorry for the delay. Thank you very much for your submission!


[WIP] advanced IBMQBackend.jobs() filtering

Summary
Enable more advanced filtering when getting past jobs from IBM Q backends.
Details and comments
To get the last 5 jobs with errors:
job_list = backend.jobs(limit=5, status='ERROR')
To get the last 5 jobs with 1024 shots and counts of 00 and 11 exceeding 400,
job_list = backend.jobs(limit=5, filter={'backend.name'='ibmq_qasm_simulator, 'shots': 1024, 'qasms.result.data.counts.00': {'gt': 400}, 'qasms.result.data.counts.11': {'gt': 400}})
To get jobs from 30 days ago across all IBM Q backends,
past_day_30 = datetime.datetime.now() - datetime.timedelta(days=30)
my_filter = {'creationDate': {'lt': past_day_30.isoformat()}}
job_list = backend.jobs(limit=5, filter=my_filter)

I think we forgot to update the CHANGELOG in #501.. can you do it here, since they touch the same feature?

@ajavadia I updated the CHANGELOG.


fix: shadow parser fix & improvements

Proposed changes
Fixed shadow parser
Types of changes

[x] Bugfix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] Documentation Update (if none of the other choices apply)

Checklist

[x] I have read the CONTRIBUTING doc
[x] Lint and unit tests pass locally with my changes
[x] I have added tests that prove my fix is effective or that my feature works
[x] I have added necessary documentation (if appropriate)
[x] Any dependent changes have been merged and published in downstream modules

Codecov Report

Merging #74 (f558a11) into main (e1b84cb) will not change coverage.
The diff coverage is 100.00%.

@@            Coverage Diff            @@
##              main       #74   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files           61        61
  Lines          677       674    -3
  Branches        99        95    -4
=========================================
- Hits           677       674    -3

Impacted Files
Coverage Δ

packages/preset-default/src/base/radii.ts
100.00% <ø> (ø)

packages/preset-default/src/base/shadows.ts
100.00% <ø> (ø)

packages/core/src/parsers/shadows.ts
100.00% <100.00%> (ø)

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update e1b84cb...f558a11. Read the comment docs.


The project won't start

Hi,
You will need to update the apiUrl and the apiKey with yours to make it work. You can do so with following steps:

Create and configure an app on Simba Dashboard with the default carDemo2 smart contract at https://app.simbachain.com/
Generate an apiKey for the app on App-View page
Open src/store/modules/info.js and replace yourApiUrl and yourApiKey with yours

Thank you so much @Eric ! Will try it out ! Btw could you update the ReadMe
file with the same ? I think it would be helpful.
On Fri, May 1, 2020 at 10:59 PM Eric<EMAIL_ADDRESS>wrote:

Hi,
You will need to update the apiUrl and the apiKey with yours to make it
work. You can do so with following steps:

Create and configure an app on Simba Dashboard with the default
carDemo2 smart contract at https://app.simbachain.com/
Generate an apiKey for the app on App-View page
Open src/store/modules/info.js and replace yourApiUrl and
yourApiKey with yours

—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/SIMBAChain/CarDemo/issues/2#issuecomment-622482600,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AEKCTBLLUZ6HM7S27GVG3JLRPMBIJANCNFSM4MW5KRPQ
.

Thank you so much @ihave2  ! Will try it out ! Btw could you update the ReadMe file with the same ? I think it would be helpful.

@Achudh  No problem. The ReadMe file was updated.

@ihave2 Hey! Still having trouble with the app. It is stuck in the loading. But there are no errors

Its not stuck. An empty state for zero transaction was not created for this demo and the loading state(the anim you seeing) was used instead. The loading screen will be gone after one transaction has been posted. You are welcome to add an empty state to indicate there is no transaction posted if you like, but I think its ok without having it on a demo.


Falco Webhook getting an error - "http: request body too large"

Describe the bug

How to reproduce it

Install using the normal way to use k8s-audit. I used the official helm charts

Expected behaviour
In my lab everything works perfecly because I dont have a large environment but in my production I am facing the error  about the body is too large then I had increased the 2 parameters to works correctly
maxEventSize: 134217728
webhookMaxBatchSize: 268435456

Then the POD memory increased to 38gb or more and the cores either, so I would like to know it is a bug or not.
My environment is too large but is so weird because I tested other applications and works around 12gb.

I would like to fix the error or if I did something wrong.

Then the POD memory increased to 38gb or more and the cores either, so I would like to know it is a bug or not.

Uhm it seems like a bug, we need to investigate more on this!

Thank you so much @Andreagit97. I will send below a screenshoot from real query in Prometheus. I included a resources limits 42gb but if remove the Falco reach more than 120gb

Thank you for the additional data, right now we are a little bit busy but we will come to it after the falco release!

Issues go stale after 90d of inactivity.
Mark the issue as fresh with /remove-lifecycle stale.
Stale issues rot after an additional 30d of inactivity and eventually close.
If this issue is safe to close now please do so with /close.
Provide feedback via https://github.com/falcosecurity/community.
/lifecycle stale

Not fixed

/remove-lifecycle stale

You increased max eventsize to 134Gb and max webhook batch size to 268Gb? In which case the memory usage is sort of expected I guess, as up to 268GB of json has to be processed at once...
A few things you might experiment with:

limit the number of events in a single batch by setting the --audit-webhook-batch-max-size flag on your api server, you might need multiple falco instances to keep up with your audit event stream, as you mention having a large cluster
use the falco tailored audit-policy.yaml (docs) in case you are not already doing so, as the api server can generate massive amounts of audit events which are not all relevant to falco
as some events include the requestObject (e.g. a ConfigMap), you might be able to find the event which includes some massive k8s object and consider dropping it using the audit-policy.yaml

Issues go stale after 90d of inactivity.
Mark the issue as fresh with /remove-lifecycle stale.
Stale issues rot after an additional 30d of inactivity and eventually close.
If this issue is safe to close now please do so with /close.
Provide feedback via https://github.com/falcosecurity/community.
/lifecycle stale

Stale issues rot after 30d of inactivity.
Mark the issue as fresh with /remove-lifecycle rotten.
Rotten issues close after an additional 30d of inactivity.
If this issue is safe to close now please do so with /close.
Provide feedback via https://github.com/falcosecurity/community.
/lifecycle rotten

Rotten issues close after 30d of inactivity.
Reopen the issue with /reopen.
Mark the issue as fresh with /remove-lifecycle rotten.
Provide feedback via https://github.com/falcosecurity/community.
/close

@poiana: Closing this issue.

In response to this:

Rotten issues close after 30d of inactivity.
Reopen the issue with /reopen.
Mark the issue as fresh with /remove-lifecycle rotten.
Provide feedback via https://github.com/falcosecurity/community.
/close

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository.


Typecast

Problem:
Currently, record-reformer outputs all reformed fields as string, but some fileds like to be integer, some fileds like to be array.
Solution:
A way to solve this is to use out_typecast or filter_typecast to convert types of fields (although array form like ["Foo", "Bar"] is not supported)
Roadmap?
Introduce types option for record-reformer and record-transformer itself? The implementation is very easy because Fluentd api is available > https://github.com/sonots/fluent-plugin-filter_typecast/blob/master/lib/fluent/plugin/filter_typecast.rb
But, thiking of UNIX philosophy, Do One Thing and Do It Well, it should be better to separate these plugins, so keep them as is?

Another idea is to introduce a rule like

If like ${foo}, that is, one placeholder, no surrounding text

inherits the type of the variable

else like ${foo}bar, ${foo}${bar}

becomes a string

EDIT: Hmm, this is not a complete and total solution. No way to specify the type for
<record>
  int 1 #<= will be string, sigh...
</record>

${1} won't work for enable_ruby false.


chore: dockefile and workflow enahancements

Description, Motivation and Context

tari container image is missing ps command
ADD was used where it was not needed, instead of COPY
alpine tor image update
github workflow was using deprecated set-output syntax link

How Has This Been Tested?
Ran build on my machine

I would close this, as we don't use launchpad_docker.yml, I suggest we remove it. I have included improvements in https://github.com/tari-project/tari-launchpad/pull/225


Set kdims and vdims when plotting DynamicMap from streaming dataframe

Hi,
I am trying to figure out how to specify which columns of a Buffer receiving (streaming) dataframes should be interpreted as kdims/vdims and in which order, when using a hv.DynamicMap with streaming data to plot arbitrary elements.
In the tutorial examples, it seems like the kdims/vdims are set implicitly from the order of columns. For example, below, the 'x' column is the abscisse only because it is the first column of the Buffer.
example = pd.DataFrame({'x': [], 'y': [], 'count': []}, columns=['x', 'y', 'count'])
dfstream = Buffer(example, length=100, index=False)
curve_dmap = hv.DynamicMap(hv.Curve, streams=[dfstream])
point_dmap = hv.DynamicMap(hv.Points, streams=[dfstream])

%%opts Points [color_index='count', xaxis=None, yaxis=None] (line_color='black', size=5)
%%opts Curve (line_width=1, color='black')
curve_dmap * point_dmap

def gen_brownian():
    x, y, count = 0, 0, 0
    while True:
        x += np.random.randn()
        y += np.random.randn()
        count += 1
        yield pd.DataFrame([(x, y, count)], columns=['x', 'y', 'count'])

brownian = gen_brownian()
for i in range(200):
    dfstream.send(next(brownian))

How can I specify which columns should be interpreted as which dimension without rearranging the order of columns in the dataframe?

If I try to explicitly specify the kdims and vdims when declaring the DynamicMap (python curve_dmap = hv.DynamicMap(hv.Curve, streams=[dfstream] , kdims=['y', 'x']) ) I get an error:

KeyError: "Callable 'ParameterizedMetaclass' accepts more positional arguments ['self'] than there are key dimensions ['y', 'x', 'count']" `)

If I try to pass to the streams arguments a list of multiple buffers each containing one of the columns, I get the following error:

Exception: The supplied stream objects Buffer(data=Empty DataFrame
Columns: [x]
Index: []) and Buffer(data=Empty DataFrame
Columns: [y]
Index: []) clash on the following parameters: ['data']

Thanks for your help and sorry if the question is silly.
Cheers, T

Sorry, this was a silly question indeed. I missed the functools.partial wrapper which allows just what I was asking about.
Since I created the issue, though, could someone explain what happens when multiple streams are assigned to a DynamicMap? I think this is not explained in the tutorial?

@TomBugnon A partial will work but you can also just write a regular function to do whatever processing you want before constructing an element.

Since I created the issue, though, could someone explain what happens when multiple streams are assigned to a DynamicMap? I think this is not explained in the tutorial?

Sure, the contents of all the streams are merged and passed to the supplied function, e.g.:
stream1 = Buffer()
stream2 = RangeXY()

def callback(data, x_range, y_range):
    ... # Do some processing of the data and the current x_range and y_range
    return hv.Curve(...) # Return some element

Thank you @philippjfr
I have another question if you don't mind. Is there by chance any way to plot streaming data in a DynamicMap in such a way that it is possible to see the successive iterations of the map in real time as the data is streamed, but also to navigate through the successive elements and go 'back in time' using widgets ? The "scrubber" (dvd-type) widget could for example allow to rewind at will, and would stop at the latest available unit (and follow the stream) when on play mode.
The specific use that I am trying to achieve is to plot a movie (DynamicMap of HeatMaps) of which the different frames are streamed iteratively as panda dataframes with x, y and value columns containing all the data for each successive timestep. I managed to plot the stream with the following code...
sdf = ... # streamz.dataframe.Dataframe, each data unit is a dataframe with all the data for a timepoint
dynmap =  hv.DynamicMap(
        partial(hv.HeatMap, kdims=['x', 'y'], vdims=['value']),
        streams=[Buffer(sdf, index=False, length=1000)])
dynmap

... But I can't find a straightforward way to go back and forth in time.
Thank you for your help and let me know if I should repost this in a separate issue.
Tom


Module or (study) package?

Is DbProfile intended to be a (HADES) R package, a study package, or a Strategus module?
Because it has a renv lock file, it can't be a HADES package. I would argue it should be a Strategus module, but in that case

It shouldn't be an R package, and for example should not have a DESCRPTION file, but instead have a Main.R file. like the example module in Strategus.
The repo name should imply it is a module, so DbProfileModule. Also, and I know this is personal preference, but it is really too much trouble to spell Database? ;-), so DatabaseProfileModule. This would make it consistent with for example DatabaseConnector, where 'database' has also been spelled out.

Also note that DbProfile currently depends on Achilles. If DbProfile is intended to be either a HADES package or a Strategus module, it can only depend on packages that are in CRAN or in HADES. Even though I would very much like to see Achilles become part of HADES, the Achilles developers have shown no interest to do so.

The Achilles developers have been actively working towards inclusion in HADES.


Event log: corruption detection

Implement detection of corrupt log records, e.g. by CRC32 checking

A simple way to do this initially would be:

on startup if shutdown=false then it means the server did not shutdown correctly.
read lastWrittenPos from the info file and zero out all records in the log after that and reset headPos to the end of the record started at lastWrittenPos.

I don't think CRC checks are really necessary (?)

I agree with the simple check you have proposed.
Trying to wrap my head around the different ways corruption can occur - is there a doc regarding the client server interaction patterns? Like different kinds of read/write patterns possible

I think there are different ways the log can become corrupt:

The server is terminated abruptly in mid write resulting in partial writes in the log. E.g. only half of a document is written
The HDD/SSD partially fails in some way losing data.
User error / malicious editing. User accidentally or deliberately changes the log file in some way

2 - Aiui, the storage device will normally detect bad sectors using its own methods (e.g. CRC) and flag them. Not much for us to do here?
3 - Not much for us to do here - if a user has access to the log directory they can do anything anyway.
1 - This is the main situation we need to deal with (possible solution described above)

Hi @MyAtomicMother just wondering how you're doing with this :)

On second thoughts we should probably allow for CRC checking

Status - The branch 'binary-pipeline' contains the code for Checksum headers and Magic number footers making a frame around each event. The checksum obviously relates to the above comments and the magic number 128 bits relates to the case (from above)
-The server is terminated abruptly in mid write resulting in partial writes in the log. E.g. only half of a document is written.
Where the Magic number allows readers of the file to accurately detect the end of one valid record and hence the start of a possibly invalid record.

Closing this under #117


Diffusers doesn't generate any output with default settings: 422 Unprocessable Entity

Tried several times restarting the server & after effects.  Always get this error:
←[32mINFO←[0m:     Started server process [←[36m21136←[0m]
←[32mINFO←[0m:     Waiting for application startup.
←[32mINFO←[0m:     Application startup complete.
←[32mINFO←[0m:     Uvicorn running on ←[1mhttp://<IP_ADDRESS>:8000←[0m (Press CTRL+C to quit)
[2023-12-13 14:24:23,191] INFO:huey.consumer:MainThread:Huey consumer started with 1 thread, PID 21968 at 2023-12-13 19:24:23.191796
[2023-12-13 14:24:23,191] INFO:huey.consumer:MainThread:Scheduler runs every 1 second(s).
[2023-12-13 14:24:23,192] INFO:huey.consumer:MainThread:Periodic tasks are enabled.
[2023-12-13 14:24:23,194] INFO:huey.consumer:MainThread:The following commands are available:
+ main.huey_call_endpoint
←[32mINFO←[0m:     <IP_ADDRESS>:59306 - "←[1mGET /plugins/get_list HTTP/1.1←[0m" ←[32m200 OK←[0m
←[32mINFO←[0m:     <IP_ADDRESS>:59308 - "←[1mGET /plugins/start_plugin/Diffusers HTTP/1.1←[0m" ←[32m200 OK←[0m
INFO:     <IP_ADDRESS>:59329 - "GET /plugins/get_info/Diffusers HTTP/1.1" 200 OK
INFO:     <IP_ADDRESS>:59349 - "PUT /plugins/call_endpoint/Diffusers/generate_image HTTP/1.1" 422 Unprocessable Entity
INFO:     <IP_ADDRESS>:59371 - "PUT /plugins/call_endpoint/Diffusers/generate_image HTTP/1.1" 422 Unprocessable Entity
Callback received for plugin: Diffusers. Current state: STARTING
Diffusers is now in RUNNING state
INFO:     <IP_ADDRESS>:59403 - "PUT /plugins/call_endpoint/Diffusers/generate_image HTTP/1.1" 422 Unprocessable Entity
INFO:     <IP_ADDRESS>:59393 - "POST /plugin_callback/Diffusers/True HTTP/1.1" 200 OK
INFO:     <IP_ADDRESS>:59507 - "PUT /plugins/call_endpoint/Diffusers/generate_image HTTP/1.1" 422 Unprocessable Entity
INFO:     <IP_ADDRESS>:59516 - "PUT /plugins/call_endpoint/Diffusers/generate_image HTTP/1.1" 422 Unprocessable Entity
INFO:     <IP_ADDRESS>:59528 - "PUT /plugins/call_endpoint/Diffusers/generate_image HTTP/1.1" 422 Unprocessable Entity
INFO:     <IP_ADDRESS>:59652 - "PUT /plugins/call_endpoint/Diffusers/generate_image HTTP/1.1" 422 Unprocessable Entity

This is a bug that we're aware of, a fix is coming very soon.

This has been addressed in the latest version.  Please download the latest binaries from https://github.com/DeepMakeStudio/DeepMake/releases and run a git pull on all repos.  This should fix that bug.

I'm going to close this issue as we believe it has been fixed.  If this problem continues with the latest version, please open a new issue.


0.4.0

Merge the first working version using v5.bvg.transport.rest

@seurat-atreides see #7 with a working version of the bvg sensor unter hassio up to the most recent version.

@seurat-atreides see #7 with a working version of the bvg sensor unter hassio up to the most recent version.


Fix proof checker when left side is latest team link

Fix the bug.
Apparent symptom: Can't load team because link signed by revoked device fails the ordering check. The check that device-revoke happened before team-link.
Real symptom: Can't do any proof checks when the left side (the before location) is the latest link of the team proof.
Cause: The team link map didn't include the latest link because it was still being ingested.
There is another weirdness not fixed which is that the revocation seqnos are 0 (dead wrong) for revoked devices. But luckily the proof ordering checker doesn't use the right side (the after location) seqno at all, instead using the prevmerkleroot.

Can we get a test?

Added test that fails before and succeeds after the fix


fix: Fix an empty passed value in "Flow as tool"

Issue

Closing this Pull request.
Since a new component with the same functionality is in progress.


Correct X & Y coordinates ?

If I go to a corner in agar.io, and type window.agar.rawViewport.x and window.agar.rawViewport.y in the console, I get for example X: 5413 Y: 9975. If i respawn, and go to the same corner, I get a different value.
I think it's the effect of a recent agar.io bot-patch.
My question is: how do i get the same values every time i get in the corner?
It's not really a issue, but i really need help with this!
I saw your "mouse positioning script". I just wonder if it works in the same way with just the cell coordinates.
I'm happy for answers :D

https://github.com/xzfc/agar-expose/issues/13

Calculate offset, real coords + random seed

@SrNicolas And how exactly do i do that ?

@GustavGenberg look at davidmanns client. Its in the window.agar.dimensionsUpdated

@Sonicmaster13 thats the less-efficient way of doing it.

It's interesting question. If you know real border you can just calculate offset. Basically it's center of the border.
But the most complicated thing is to detect the real border edges on a server which uses dynamic border update.
I'm implemented class BorderScanner for such purposes.
It is used to display map border and minimap in my own client.
It may works in 3 different modes:
Mode 0: just use border received from server.
Mode 1: scan available map space by any cell coordinate/size. It's slow, because it shows only area which you already visited.
Mode 2: most complicated mode, it scans available map from different sources: border updates, any cell coordinate/size, known map size, etc. The main idea is to shift border rectangle according to observations and lock it when some conditions indicates that border limit is reached. It works well even with latest server updates (4.0.0).

@Barbosik mode 0 still works in 4.0.0?

MasonBurdette: no, in 4.0.0 dynamic border is used. I'm using mode 0 for private servers which has static border

@MasonBurdette do you have skype? i need to talk to you about something really important and you might like it.

Here is the C++ code for the scramble lvl 1:
clientPtr->info.worldSizeX = clientPtr->borders.right -
					clientPtr->borders.left;
clientPtr->info.worldSizeY = clientPtr->borders.bottom -
					clientPtr->borders.top;

clientPtr->info.scrambleX = clientPtr->borders.left +
					clientPtr->info.worldSizeX / 2.0;
clientPtr->info.scrambleY = clientPtr->borders.top +
					clientPtr->info.worldSizeY / 2.0;

Now when sending target, we must add scramble values to target position:
int rx, ry;

rx = x + info.scrambleX;
ry = y + info.scrambleY;

return sendTarget(rx, ry);


chore fix coredump collect

Proposed changes
Issue Number: close #xxx

Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

run buildall

run buildall

run cloud_p0


support netstandard2.0 and netstandard2.1

This PR is a suggestion.    Please review and comment;  I am glad to update or fix anything you see fit.
This suggestion would make Dapr.Client usable by a net48 project;  making it available for migration project that need to update component-by-component
Description
updated xunit and other references
Updated:

Dapr.Client  -> netstandard2.0;netstandard2.1
Dapr.Actor  -> netstandard2.1
Dapr.AspNetCore -> netcoreapp3.1;net5;net6
Dapr.Actor.AspNetCore -> netcoreapp3.1;net5;net6
Dapr.Client.Test => net48 `;netcoreapp3.1;net5;net6

Updated outdated/obsolete references:

<PackageReference Include="Google.Protobuf" Version="3.19.4" />
<PackageReference Include="System.Net.Http.Json" Version="6.0.0" />

Update nuget in test projects

<PackageReference Include="FluentAssertions" Version="6.7.0" />
<PackageReference Include="Microsoft.AspNetCore.Mvc.Testing" Version="6.0.8" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.3.0" />
<PackageReference Include="Moq" Version="4.14.7" />
<PackageReference Include="xunit" Version="2.4.2" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.5">

Minor adjustments to the code to compile with lower level requirements.
Also some tests surrounding Gprc where decorated with #precompile directives to exclude them from net48 scope.
Issue reference
We strive to have all PR being opened based on an issue, where the problem or feature have been discussed prior to implementation.
Please reference the issue this PR will close: #925
Checklist
Please make sure you've completed the relevant tasks for this PR, out of the following list:

[x] Code compiles correctly
[x] Created/updated tests
[x] Extended the documentation

@bobbyangers - Thanks for opening this PR! Some of the dependency updates, we could take. However, we have no plans on support netstandard2.0/2.1.
We also tend to only build to the lowest common framework, in this case netcoreapp3.1. The clients have not used any non-backwards compatible language features so adding the extra binaries doesn't add anything for us here.

@halspang as you can analyze from the chart provided by Microsoft .NET Standard; all the of the .NET core framework are based on netstandard2.1

After reviewing all the dependencies in this projects;  all of them are actually netstandard2.1 (ie not .net core);  therefore the lowest common framework is in fact netstandard2.1 and by the same token will be compatible with .net core 3, 3.1, 5.0, 6.0.
Please reconsider.

@bobbyangers
.NET Standard is a good choice for anyone that wants (or needs) to support multiple flavors of .NET, such as .NET Core and .NET Framework. From talking to @halspang it sounds like their plan is to only support .NET Core. In that case, targeting .NET Standard doesn't make much sense. Considering that ASP.NET Core went .NET Core only starting with ASP.NET Core 3, having Dapr on .NET Core only seems sensible to me.
What is your scenario that made your asking for a .NET Standard implementation here? Would you like to use Dapr on .NET Framework?

@bobbyangers
.NET Standard is a good choice for anyone that wants (or needs) to support multiple flavors of .NET, such as .NET Core and .NET Framework. From talking to @halspang it sounds like their plan is to only support .NET Core. In that case, targeting .NET Standard doesn't make much sense. Considering that ASP.NET Core went .NET Core only starting with ASP.NET Core 3, having Dapr on .NET Core only seems sensible to me.
What is your scenario that made your asking for a .NET Standard implementation here? Would you like to use Dapr on .NET Framework?

first off, I'd like to use the DaprClient on .NET 4.8,  the project I am working is a monolith ASPNET MVC app, and we are migrating towards a microservice architecture, but it all cannot be done in "one-pass";   I'd like to choose some component extract it in a microservice, and leverage the DaprClient to bind the new component.    Since technically the DaprClient is a specialised HttpClient... could we consider separating that functionality in it's own NuGet package?  which would target the lowest common framework ?
As stated earlier, since all the dependencies are themselves netstandard2.0 or netstandard2.1;  and there is no technical necessity to set the minimum .netcore 3.x;   .netcore is compiler compatible with .net5, .net6.. it's not native.
Of course the test projects would target netcore3.1, net5*, net6, and soon net7;  but that is pretty common scenario.
What is the motivation to be netcore3.1 which is on it's way out, and rather support a simpler plateform (ie netstandard) that is more future proof, and able to reach a wider audience ?
Event the "inbound/outbound" bindings can be implemented in the netstandard2.1.
My suggestion is that the DaprClient itself be compiled separately targeting both netstandard2.0 and netstandard2.1, to be available to a wider audience (ie starting net46) and the more advance features for the 'inbound' bindings in it's own package targeting netstandard2.1 which is the base for netcore and up.
n.b.  for the moment, I have forked the project and using my in-house version which does just what I described above.

What is the motivation to be netcore3.1 which is on it's way out, and rather support a simpler plateform (ie netstandard) that is more future proof, and able to reach a wider audience ?

I don't work on Dapr, so @halspang would have to give the authoritative answer with respect to their motivation.
I do, however, work on .NET Standard so I can talk to that in great detail. The way to think about .NET Standard is that it is just an API set. The standard itself isn't an implementation of the APIs which is why we don't subject it to the same lifetime policies as we do for .NET Core or .NET Framework. But .NET Standard is similar to .NET Core in that it is a versioned API set. Since .NET Standard is implemented by .NET Framework 4.6.1 and .NET Core 2.0 you can think of either has a strict superset of .NET Standard 2.0, which in practical terms is akin to "a later version of .NET Standard 2.0". Said differently, .NET Core 3.1 has more APIs than .NET Standard 2.0. We already announced there won't be a new version of .NET Standard and we consider .NET 5 and later versions as the spiritual successor of .NET Standard. In that vein I wouldn't say that .NET Standard is more future proof than targeting .NET Core 3.1; either one can easily be upgraded to .NET 5, 6, 7 and so on.
.NET Standard does, however, give a library developer more reach. But if the Dapr doesn't want to support it on anything but .NET Core then reach doesn't matter. In contrast, .NET Core 3.1 or later has more APIs than .NET Standard which allows Dapr to more easily take advantage of the latest features.
So in the end choosing between .NET Standard and a specific .NET implementation is the trade-off between reach and feature set. And it seems the Dapr folks are prioritizing feature set over reach, which is also what ASP.NET Core have done.
Does this make sense?

@terrajobst
I understand your explanation.   I respect your choices.
As for DaprClient, which doesn't necessarily need the possible advanced features, it's a specialized HttpClient;  HttpClient is an api/executable code; it make sense to me to package it separately in a more accessible to a wider audience (as Micrsoft.Extensions.Http which is netstandard).
For the moment, I am going to go back to the basics and implement and use my own client for my migration project.
Thanks for your explanation and your time.

You're welcome. And thank you for all the work you have put into this PR!


dmlive: use new darwin sdk pattern, move to by-name

Things done

Built on platform(s)

[ ] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
24.11 Release Notes (or backporting 23.11 and 24.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

Built fine for me on aarch64-darwin, we just had a swift rebuild from a recent change so not waiting for a swift build for nixpkgs review with the x86 build.


BkWrap

BkParallel, BkSafe and BkTimeable wrap a Back object and pass socket to it.
These three object share this same feature which can be abstracted like RsWrap, RqWrap, TkWrap

@hs3180 good point, thanks!

@hs3180 I am aware of the task, give me some time to find a developer...

@hs3180 there is no milestone yet, so I set it to 1.0

@hs3180 thanks for the ticket, your account was topped for 15 mins, payment AP-156125656A123613M

@hdouss it's yours now, please proceed keeping in mind our principles. Feel free to ask any technical questions right here in the ticket
The budget of this issue is 30 mins, which is exactly how much will be paid when the task is done (see this for explanation)

@hs3180 PR #452 has been merged to master. The issue can be closed.

@hs3180 PR #452 merged and reviewed. Please close the issue.

@HDouss thanks.

@elenavolokhova review this ticket please, for compliance with our quality rules

@davvd Looks good!

@davvd Looks good!

@elenavolokhova thank you

@hdouss added 10 mins to @elenavolokhova, for QA review, payment code is 71896197; Many thanks! 30 mins were added to your account in Transaction ID 71896205 (task took 143 hours and 6 mins); +30 added to your rating, at the moment it is: +135


Fix syntaxnet

I fixed about syntaxnet; the input and output of syntaxnet changed to CoNLL-U format.
And I added a unit test for syntaxnet.

LGTM


what is the diff between -t and -query A

what is the diff between -t and -query A?
I saw the same result.

Hi @blackcodersec
The -t flag filters all domains that map to the same IP address.

and -query A flag resolves only A records.

nice nice man you are really great

could you new plan for this script?
I saw this script is really good and fast. I did not check accuracy. but too fast, loved it.

Thank you for the feedback!
By default, this tool uses your system's resolver configuration. If your system can resolve a domain, then this tool will also be able to resolve it.
Unlike other tools, such as massdns, where you have to supply a list of resolvers to resolve faster (some of which may not work and lead to false positives), this tool does not depend on a list of resolvers for speed. Instead, it uses your system resolver, ensuring solid accuracy.

could you new plan for this script?

right now I am occupied with other projects and do no have any idea to implement but let me know if there is any feature you want to implement.

could you implement vhost feature?
one more thing is, other projects means others tools?

Hi there,
could add resolving count like [+] resolving [already_check]/[total_domains]
please please add this func.


Regex Validation for Branch Pattern fails

According to the documentation at https://kargo-render.akuity.io/how-to-guides/configuration#keeping-things-dry it should be possible to use patterns for branches. This seems to be broken. I assume this happened already a while ago when schema validation was introduced.
The pattern here: https://github.com/akuity/kargo-render/blob/main/schema.json#L19 definitely can't match something that is a regex itself. As regex is not "mighty" enough to do this in a generic way we need some kind of workaround, I spontaneously think this could be solutions:

keep the regex pattern as is, if this validation fails, then try to parse the branchname as pattern itself, if that works we might be fine (this solution depends on if the validation errors can be handled separately, otherwise we would try for every config validation, and probably loose some real errors
change the regex pattern, in a way, that, as soon as something "regexy" appears (a backslash, a bracket) the validation is always ok
only allow the very specific regex pattern (\w+) inside the branchname. This limits the what can be done, but it could still be good enough for what is needed

@stieglma there is no regex validation in the "pattern" field. I am guessing you mistakenly put your own regex inside the "name" field.

that's true 🙈 I tried all kinds of things, but it never occurred to me, that the fieldname could be different, I just looked at the value. Thanks for the clarification

No worries. It's a separate field for the exact reason you mentioned. Regex isn't mighty enough to validate a regex. 🙂


do not close dialog on esc if an input is focused

Closes #536
Checks if the target of Esc event is a form control or an element with tabIndex > -1.

Thanks for working on this, @SpadarShut!
I'm not sure though if this is something that we should implement in the library or leave up to the user. You've mentioned in the issue that Esc would blur the input, which is something that the user still has to implement with these changes. Should it be supported here as well?
Anyway, I guess it's not so obvious that Esc should be disabled on ALL inputs. On buttons, it'll potentially make things worse in terms of UX and accessibility. It's common to have the least destructible button as the first focused element in a dialog (e.g. a Cancel button). In this case, one wouldn't be able to press Esc to close the dialog right away after opening it.
What do you think?

I somehow was sure that the default browser behaviour is to blur inputs on Esc. That said, it always felt unexpected that the dialog was closing when I pressed Esc when I wanted to blur inputs.
To make it easier to handle Esc maybe the event object could be passed to the hide function so that developer can implement whatever logic they need?

To make it easier to handle Esc maybe the event object could be passed to the hide function so that developer can implement whatever logic they need?

How this API would look like?


usage formatting

There is a bug for flags that do not have a short cut, they print out as just a "-":
-, --version
Print version information and exit
-, --driver-logging-level
Level of mssql driver messages to print.

Kubectl is doing a paragraph align of the descriptions, e.g.
Options:
    -c, --container='':
        Container name. If omitted, use the kubectl.kubernetes.io/default-container annotation for
        selecting the container to be attached or the first container in the pod will be chosen

    --no-preserve=false:
        The copied file/directory's ownership and permissions will not be preserved in the
        container

Where as this PR is wrapping to col 1, e.g.
  -G, --use-aad
      Tells sqlcmd to use Active Directory authentication. If no user name is provided, authentication method ActiveDirectoryDefault is used. If a password is provided, ActiveDirectoryPassword is used. Otherwise ActiveDirectoryInteractive is used.

  -E, --use-trusted-connection
      Uses a trusted connection instead of using a user name and password to sign in to SQL Server, ignoring any environment variables that define user name and password.

  -U, --user-name
      The login name or contained database user name.  For contained database users, you must provide the database name option

Can we align the description text as well please.

Given the sheer number of flags, it would be nice to be able to put the flags into groups.  It looks like Cobra doesn't support this yet, this PR would need to be merged:
https://github.com/spf13/cobra/pull/1778
Is there any other easy way to provide flag grouping that you know of?

Updated the usage formatting similar to kubectl:
-d, --database-name
--This option sets the sqlcmd scripting variable
SQLCMDDBNAME. This parameter specifies the initial
database. The default is your login's
default-database property. If the database does not
exist, an error message is generated and sqlcmd
exits.
-X, --disable-cmd-and-warn
--Disables commands that might compromise system security.
Sqlcmd issues a warning and continues.

There is a bug for flags that do not have a short cut, they print out as just a "-":
-, --version Print version information and exit
-, --driver-logging-level Level of mssql driver messages to print.

Resolved this.

There is a bug for flags that do not have a short cut, they print out as just a "-":
-, --version Print version information and exit
-, --driver-logging-level Level of mssql driver messages to print.

Resolved this.

Looks much better:
-c, --batch-terminator
--Specifies the batch terminator. The default value is GO
-s, --column-separator
--Specifies the column separator character. Sets the
SQLCMDCOLSEP variable.
There is an extra "--" at the beginning of each description...

Also, while you here, can you fix:
  --Specifies the SQL authentication method to use to connect
    to Azure SQL Database. One
of:ActiveDirectoryDefault,ActiveDirectoryIntegrated,ActiveDirectoryPassword,ActiveDirectoryInteractive,ActiveDirectoryManagedIdentity,ActiveDirectoryServicePrincipal,SqlPassword

So there are some spaces in the string to it can wrap correctly.

Also, while you here, can you fix:
  --Specifies the SQL authentication method to use to connect
    to Azure SQL Database. One
of:ActiveDirectoryDefault,ActiveDirectoryIntegrated,ActiveDirectoryPassword,ActiveDirectoryInteractive,ActiveDirectoryManagedIdentity,ActiveDirectoryServicePrincipal,SqlPassword

So there are some spaces in the string to it can wrap correctly.

Resolved

There is a bug for flags that do not have a short cut, they print out as just a "-":
-, --version Print version information and exit
-, --driver-logging-level Level of mssql driver messages to print.

Resolved this.

Looks much better:
-c, --batch-terminator --Specifies the batch terminator. The default value is GO
-s, --column-separator --Specifies the column separator character. Sets the SQLCMDCOLSEP variable.
There is an extra "--" at the beginning of each description...

Resolved

This is looking much much better.  Nit: can you bring the help description back to spaces, so it is the same as kubectl, e.g.:
'''
Options:
-c, --container='':
Container name. If omitted, use the kubectl.kubernetes.io/default-container annotation for
selecting the container to be attached or the first container in the pod will be chosen
--no-preserve=false:
    The copied file/directory's ownership and permissions will not be preserved in the
    container

@stuartpa
Are you talking about the description should look like below :
Flags:
-K,--application-intent
Declares the application workload type when connecting to a
server. The only currently supported value is ReadOnly. If
-K is not specified, the sqlcmd utility will not support
connectivity to a secondary replica in an Always On
availability group

      --authentication-method
Specifies the SQL authentication method to use to connect
to Azure SQL Database. One of: ActiveDirectoryDefault,
ActiveDirectoryIntegrated, ActiveDirectoryPassword,
ActiveDirectoryInteractive, ActiveDirectoryManagedIdentity,
ActiveDirectoryServicePrincipal, SqlPassword

-c,--batch-terminator
Specifies the batch terminator. The default value is GO

beacuse right now it looks like this :
Flags:
  -K, --application-intent
        Declares the application workload type when connecting to a
        server. The only currently supported value is
        ReadOnly. If -K is not specified, the sqlcmd
        utility will not support connectivity to a
        secondary replica in an Always On availability
        group

      --authentication-method
        Specifies the SQL authentication method to use to connect
        to Azure SQL Database. One of:
        ActiveDirectoryDefault, ActiveDirectoryIntegrated,
        ActiveDirectoryPassword,
        ActiveDirectoryInteractive,
        ActiveDirectoryManagedIdentity,
        ActiveDirectoryServicePrincipal, SqlPassword

  -c, --batch-terminator
        Specifies the batch terminator. The default value is GO

  -s, --column-separator
        Specifies the column separator character. Sets the
        SQLCMDCOLSEP variable.

I am liking lower one better as compared to first one.
But still if we want to have flags without spaces , i could do those changes.

@stuartpa Are you talking about the description should look like below :
Flags:
-K,--application-intent
Declares the application workload type when connecting to a
server. The only currently supported value is ReadOnly. If
-K is not specified, the sqlcmd utility will not support
connectivity to a secondary replica in an Always On
availability group

      --authentication-method
Specifies the SQL authentication method to use to connect
to Azure SQL Database. One of: ActiveDirectoryDefault,
ActiveDirectoryIntegrated, ActiveDirectoryPassword,
ActiveDirectoryInteractive, ActiveDirectoryManagedIdentity,
ActiveDirectoryServicePrincipal, SqlPassword

-c,--batch-terminator
Specifies the batch terminator. The default value is GO

beacuse right now it looks like this :
Flags:
  -K, --application-intent
        Declares the application workload type when connecting to a
        server. The only currently supported value is
        ReadOnly. If -K is not specified, the sqlcmd
        utility will not support connectivity to a
        secondary replica in an Always On availability
        group

      --authentication-method
        Specifies the SQL authentication method to use to connect
        to Azure SQL Database. One of:
        ActiveDirectoryDefault, ActiveDirectoryIntegrated,
        ActiveDirectoryPassword,
        ActiveDirectoryInteractive,
        ActiveDirectoryManagedIdentity,
        ActiveDirectoryServicePrincipal, SqlPassword

  -c, --batch-terminator
        Specifies the batch terminator. The default value is GO

  -s, --column-separator
        Specifies the column separator character. Sets the
        SQLCMDCOLSEP variable.

I am liking lower one better as compared to first one. But still if we want to have flags without spaces , i could do those changes.

Like the lower one, but back two spaces


broken naming/rendering of aliased subcharts

Experimenting with

multiple levels of subcharts
aliased dependencies: same subchart included multiple times with different alias

Findings:

same subchart, multiple aliases work OK
unless such subchart has other dependencies

naming is broken (mixed aliases/chart names, i.e. 1st subchart is rendered with aliases, second uses chart name instead of alias)
see bug1.zip

and if such subchart does the similar thing (same chart aliased twice):

naming is broken
not all subcharts are fully rendered (missing files).
see bug2.zip
i.e. first subchart (l2a) is rendered OK, second (l2b) has broken naming (chart name instead of alias), and as a consequence, its template (level3) is rendered only once (instead of twice)

Consider this:
---
apiVersion: v2
name: level1
version: 0.1.0
dependencies:
- name: level2
  version: "*"
  repository: file://../level2
  alias: l2a
- name: level2
  version: "*"
  repository: file://../level2
  alias: l2b

---
apiVersion: v2
name: level2
version: 0.1.0
dependencies:
- name: level3
  version: "*"
  repository: file://../level3
  alias: l3a
- name: level3
  version: "*"
  repository: file://../level3
  alias: l3b

Output of helm version:
3.10.1

Not a duplicate of #9214

I'd walk this with a debugger and see if you can find the problem. https://github.com/helm/helm/blob/7ed9d16dc764a5b94b378a7e217865efaa0d9ac8/pkg/chartutil/dependencies.go#L93-L115.

/assign

still an issue

not stale, reopen pls

I tested #12276 against the test cases reported in this issue, and it seems working.

This sentence is not correct anymore (Helm CLI v3.16.1)

same subchart, multiple aliases work OK

I'm unsure if that's a new issue or just because this issue was a bit old (reported in 2022).
Something happens in the packaging step where the chart name (not the alias) is used to create the deps charts.
It doesn't matter if the sub-chart has its own dependency or not, it always happens if there are 2 sub-chart from the same Helm repo even with different aliases.

When I package this chart:
apiVersion: v2
name: my-chart
version: 1.0.0
appVersion: 1.0.0
dependencies:
  - name: postgresql
    alias: psql-14
    repository: https://charts.bitnami.com/bitnami
    version: 14.x.x
  - name: postgresql
    alias: psql-13
    repository: https://charts.bitnami.com/bitnami
    version: 13.x.x

It creates 1 PostgreSQL Frankenstein package called postgres which has some files from the Bitnami chart postgresql/13.x.x and postgresql/14.x.x!


Simplify IStatsDPublisher

Simplify the IStatsDPublisher interface by removing all the overloads and moving them to convenience extension methods.
Remove the MarkEvent() method as it's just an alias to Increment().
Add XML documentation to IStatsDPublisher.

MarkEvent is used in our code. The intent is to "increment" something that happens quite rarely, e.g. new version of the app starts up. A vertical line that that point helps correlate this "event" with changes to other stats.
Removing it it seems a slightly different concern to the rest of this PR. but it can be yet another extension method, as it's really just an increment.

MarkEvent(string) had exactly the same implementation as Increment(string) in terms of how it worked, which I found when I started to create the extension method to implement it. Given that it was just copy-paste duplication for the sake of it to create an alias, it went on the cutting room floor.
It adds no value to this library, so I'd argue that if it's something you find semantically valuable yourself, you add an extension method to create the alias to your own application(s).
To that end, it comes under the purview of "simplification", which is why it's in this PR.

We would have to document this in the release, that MarkEvent can be replaced with Increment throughout.

That's fine, it can go in the release notes with all the other breaking changes we've made.


Detached mode support?

there is support for run workers in background?

Please elaborate. Do you mean execute some task in background?

Yes. As docker-compose up -d run server in the background

Currently, it does not support detached mode but feel free to PR it. RR is already able to stop by remote command so we only have to alter serve command handler.

@rustamwin don't you mean "Start RR when you hit docker-compose up -d command"?
If you mean this - you can easily add this option to your docker-compose.yml for your service:
command: 'bash -c "/var/www/rr serve -d -v"'
where /var/www is path to your project
and RR will work in the background when you launch the container

don't you mean "Start RR when you hit docker-compose up -d command"?

@alexndr-novikov No. I don't mean this. I mean start RR in background locally.

@rustamwin

I mean start RR in the background locally.

Perhaps launching through screen is suitable for you? Example:
apk add screen
screen -dmS roadrunner -- rr serve -v -d

And you can easily attach window later by: screen -x roadrunner.
Or as a second (less elegant) way:
rr serve -v -d >/dev/null 2>&1
rr serve -v -d STDOUT>/dev/null STDERR>&STDOUT

@rustamwin Thanks for the question. Feel free to re-open this ticket if you have any more questions :smile:


FIX: Updated response format for Google service

Fixes https://github.com/florianv/exchanger/issues/99
Feel free to close if you’re not maintaining the 1.x release line any more :)

Thanks @kinglozzer :)

👍Installed, it works.
I'd mention that I tried just with the selector "$nodes = $xpath->query('//span[@data-precision]');", for if it helps in the future.


Rollback in Java migration causes wrong schema to be used with postgres

Which version and edition of Flyway are you using?
5.1.0
If this is not the latest version, can you reproduce the issue with the latest one as well?
Yes, also occurs with 5.2.1.
Which client are you using? (Command-line, Java API, Maven plugin, Gradle plugin)
Java API
Which database are you using (type & version)?
Postgres 10.4 (started with docker run --name linstor-postgres -P --rm postgres:10.4)
Which operating system are you using?
Ubuntu 18.04
What did you do?

Configure Flyway with an explicit schema name.
Apply a migration that performs a rollback and then creates a table.

See minimal reproducer at https://github.com/JoelColledge/flyway-rollback-test
What did you expect to see?
The table is created in the given schema ("MY_SCHEMA"). This works with Flyway 5.0.7.
What did you see instead?
The table is created in the schema "public".
Motivation
In order to make our migrations idempotent, we check for the existence of DB objects by simply attempting a select. In order to ensure that these checks do not affect the DB, we perform a rollback afterwards. After upgrading Flyway from 5.0.7, we encountered the above schema issues.

The rollback will effectively mess up any set up Flyway does for a connection. You can however use savepoints as an alternative. First create a savepoint, do your select and then rollback to that savepoint.
Think of them as PostgreSQL's alternative to true nested transactions, which it does not support.
Won't fix.


There is a problem with the function getMd5

getMd5 function omits the leading 0.  For those MD5 starts with 0, it will get the error result. Modify maybe something like this: return bigInt.toString(16).padLeft(32, '0');

Thanks, should be fixed in the latest verion 0.6.0. Let us know if this works for you.


Master cleanup

Codecov Report

Merging #5 into master will increase coverage by 0.04%.
The diff coverage is 0%.

@@             Coverage Diff              @@
##             master       #5      +/-   ##
============================================
+ Coverage     13.27%   13.32%   +0.04%
+ Complexity      777      773       -4
============================================
  Files            97       97
  Lines          4128     4113      -15
============================================
  Hits            548      548
+ Misses         3580     3565      -15

Impacted Files
Coverage Δ
Complexity Δ

src/Model/Table/DistrictsTable.php
0% <ø> (ø)
6 <0> (ø)
:arrow_down:

src/Template/Admin/Countries/icons.ctp
0% <ø> (ø)
0 <0> (ø)
:arrow_down:

src/Template/Admin/PostalCodes/geolocate.ctp
0% <ø> (ø)
0 <0> (ø)
:arrow_down:

src/Template/Admin/MimeTypeImages/view.ctp
0% <ø> (ø)
0 <0> (ø)
:arrow_down:

src/Template/Admin/MimeTypeImages/edit.ctp
0% <ø> (ø)
0 <0> (ø)
:arrow_down:

src/Template/Admin/Countries/import.ctp
0% <ø> (ø)
0 <0> (ø)
:arrow_down:

src/Controller/Admin/MimeTypeImagesController.php
0% <ø> (ø)
82 <0> (ø)
:arrow_down:

src/Template/Admin/Addresses/view.ctp
0% <ø> (ø)
0 <0> (ø)
:arrow_down:

src/Template/Admin/Currencies/index.ctp
100% <ø> (ø)
0 <0> (ø)
:arrow_down:

...c/Template/Admin/Languages/compare_to_iso_list.ctp
0% <ø> (ø)
0 <0> (ø)
:arrow_down:

... and 36 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 0d2abea...1c699ab. Read the comment docs.