Improving refactoring discoverability and UX

Problem
Consider the following code:
function foo(a: any) {
    return a + 20 * 10;
}

TypeScript currently only returns refactorings for extract function and extract constant if you exactly select the range of the given expression. To extract a + 20 * 10 to a constant for example, I have to fully select a + 20 * 10.
There are a few limitations with this approach:

It can be difficult to discover refactorings and understand exactly what expression I need to select.
I have to take extra time to make the correct selection.
There is no feedback on why a given refactoring may not be available.

On the VS Code side we'd like to improve the discoverability and general UX around refactorings, and believe we need some new TS server work to make this happen.
Ideas
This issue in intended to be high level discussion about improving refactorings. We can split out specific proposals into their own issues.
As background, VS Code has two ways that refactorings can be requested:

Automatically as the user makes selections in the document. These are shown under the lightbulb menu
Explicitly using a keybinding or command.

Here are some initial ideas about improving both cases
Be less strict about selection range for automatic refactorings
To example cases:

If I select 20 * 1 in the example, automatically expand the refactor target to the subexpression 20 * 10
If I select the a + 20 * 10; with the trailing semicolon, automatically shrink the refactor to just the target expression a + 20 * 10.

For basic cases like the above, it may make sense to always perform some basic massaging of the selection. This would mean that these refactorings would show in VS Code's automatic lightbulb
More aggressive expanding of selections for explicit refactorings
If I explicitly request a refactoring such as extract constant, we could always try to expand the selection to the minimal extractable expression and possibly show multiple extract constant refactorings if multiple parent expressions could all be extracted.
In the example code, if I simply have the cursor before a in  the expression a + 20 * 10 (with no selection), when I try to trigger extract constant then we could show refactorings for: extract expression 'a + 20 * 10' to constant
Feedback on why an explicitly requested refactoring is not available
When I explicitly request refactorings on a selection that cannot be refactored, we should show a message about why the refactoring is not possible.

My first question is, for cases where there is no selection, how do you decide how large of a subexpression (if not the whole thing!) to take?  For example say I trigger the refactor on an expression within a function call, do we take only that argument, or take the entire function call?  It seems like this question isn’t always going to be straightforward and could get pretty hairy.  And people will necessarily have different opinions on what the right thing to do is...

We don't have to be perfect. The idea is that the more fuzzy expansion would show additional potential refactorings, not prevent using refactorings as they work today.
The main risk is that we don't want to show a bunch of not very help refactorings everywhere all the time, which I why I propose that we are less aggressive expanding the selection for implicit refactoring requests vs explicit ones

A couple of thoughts,
Resharper/intellij does this today (at least the selection expansion). Even just having a cursor (no-selection) on an expression will enable the refactoring context menu for the whole expression (or whatever symbol the cursor is on). I know that was not part of the proposal due to making the lightbulb show up all the time, but you might re-consider.
I played a little with this when trying to write automated refactorings for TS https://github.com/greyepoxy/typescript-refactoring-plugin/blob/master/test/refactorings/tryGetTargetExpression.tests.ts#L63. There is definitely some corner cases but as long as your consistent it should be fine (although I cannot say I was super consistent in my linked example).

I have split out two concrete proposals based on the ideas brought up:
- #35096 — Let TS Server know why refactorings are being requested (and eventually change the type of refactorings it returns for explicitly vs implicit requests)

#35098 — Include information about why a given refactoring is not valid for the current selection

@jessetrinity to address the selection range issues described here.

There are some cases for which I think it makes sense to offer an extract refactor for a cursor location.
function func1(){
    function func2(a: number){
        return a;
    }
}

is another case where we only offer the extract refactor for an exact selection
    function func2(a: number){
        return a;
    }

Assuming we change this, we wouldn't want to offer a refactor if the cursor (no selection) is anywhere in the function body (due to too many refactors as already mentioned), but we may want to offer an implicit refactor if the cursor is, say, within the function keyword or the identifier func2 as I don't imagine the cursor spends a lot of time in those ranges once they are completed, and if it's there, you're probably planning on changing something.
If there is an actual selection, we can be more liberal and offer a refactor if the start position of the selection is anywhere in function func2 or function func2(a: number). Some of our other refactors already work in this way, see convertParamsToDestructuredObject.

@jessetrinity That behavior sounds good to me. I've also opened #35096 about providing TS with information about why refactorings were requested. If you are experimenting with the behavior, I can hook up VS Code to send along a refactor trigger reason

That would be handy. I think @PranavSenthilnathan is already working on adding the trigger reason on our end (does this require more than just dropping a triggerReason to the request)?
I listed my thoughts on other cases in #37895. They seem pretty straightforward but I noticed there might be some performance concerns with offering too many refactors while going through them.

Closing as completed by #41975

Closing as completed by #41975


Feature Request? Tool to generate deformation field from Affine transforms?

For various reasons I'd like to be able to generate an "equivalent" deformation field from a .mat file (i.e. the warp field has the same value at all points, calculated from the affine parameters)
It looks like I can go the other way with ANTSUseDeformationFieldToGetAffineTransform
CreateDisplacementField looks related by constructs the field from other 3D volumes
Does a tool like this exist?
If so, I'll leave this here as a feature request instead.

antsApplyTransforms

Thanks for the help...
For future users, this is what @ntustison was referring to:
-o, --output warpedOutputFileName
[warpedOutputFileName or compositeDisplacementField,<printOutCompositeWarpFile=0>]
Linear[genericAffineTransformFile,<calculateInverse=0>]
One can either output the warped image or, if the boolean is set, one can print
out the displacement field based on the composite transform and the reference
image.


Added New API Methods for In Progress Sport Events.

Closes issue #250.

All looks fine to me, I'll just wait until the Travis check finishes and then merge it (which'll be tomorrow morning).

I wasn't completely sure if two of those API methods belonged in Show, but I couldn't think of a better categorization. I figured you'd let me know if you had a better suggestion.

I think the API categories you have them in is fine. Show makes the most sense because they are externalID based queries and that's a unique key for Show objects.


Updating to Compose Multiplatform 1.6.0

As Compose Multiplatform 1.6.0-beta02 or below and 1.6.0-rc01 or above is not binary compatible, it stops projects from updating to Compose Multiplatform 1.6.0 if using this library. Would be nice if the beta version of Reordderable could be bumped to Compose Multiplatform 1.6.0.

I have released v1.4.0-beta03 with 1.6.0.


Wrong documentations for on_fit_* of TrainerCallbackHookMixin

Hello PyTorch Lightning team,
it seems that documentations for on_fit_* methods of TrainerCallbackHookMixin class are wrong (seems to misplace doc for on_init_start here).
https://github.com/PyTorchLightning/pytorch-lightning/blob/4dba492fb55e2862bb20f304e6bef43f1f151fc7/pytorch_lightning/trainer/callback_hook.py#L115-L139
cc @borda @rohitgr7 @carmocca @awaelchli @ninginthecloud @daniellepintz

What is the problem exactly?

The docs reference this line:

     Called when the trainer initialization begins, model has not yet been set.

Which is not true for on_fit_start

This used to be true but not anymore. It has changed roughly around the work we did on #10896 and such a doc update got easily missed. A PR for correcting this would be very welcomed ❤


Update protobuf to v3.19.5 on v1.46.x

@nicolasnoble 👋

There appears to be a PHP memory leak [here](Basic Tests PHP Linux ). It seems to be unrelated to the protobuf update, but it's concerning nonetheless, especially since this is our LTS branch.
@stanley-cheung Can you please take a look?

@apolcyn One more I need your sign-off on: https://source.cloud.google.com/results/invocations/cc7e5980-3443-4dde-8def-542a426885ef/log

PHP issue seems to be the same as #28390

Python Tests
Same framework-level race condition as in https://github.com/grpc/grpc/pull/31031
Interop tests
Same as in 1.48.x
Sample Fuzzers
Failed due to removed internal Kokoro config:
com.google.devtools.kokoro.config.ConfigException: Couldn't find build configuration file grpc_sample_fuzzers.cfg or grpc_sample_fuzzers.gcl under /tmp/workspace/workspace/grpc/core/pull_request/linux/grpc_sample_fuzzers/src/github/grpc/tools/internal_ci/linux/pull_request.
	at com.google.devtools.kokoro.config.BuildConfigReader.lambda$read$2(BuildConfigReader.java:54)
	at java.base/java.util.Optional.orElseThrow(Unknown Source)
	at com.google.devtools.kokoro.config.BuildConfigReader.read(BuildConfigReader.java:51)
	at com.google.devtools.kokoro.jenkins.plugin.kokorojob.store.NodeBuildConfigReader.invoke(NodeBuildConfigReader.java:39)
	at com.google.devtools.kokoro.jenkins.plugin.kokorojob.store.NodeBuildConfigReader.invoke(NodeBuildConfigReader.java:13)
	at hudson.FilePath$FileCallableWrapper.call(FilePath.java:2731)


build_jobs: update manifest-builds location

Is the https url usable? Or does everything need to convert to ssh?

Nm, you changed it :)

Changing the manifest url to ssh:// causes all github repos to be fetched over ssh:// (the urls in the XML manifest are relative to the manifest url) so please update the comments on all the jobs to note that ssh read-only access is required to all repos.

Going to do this on the new Jenkins instead.


Reduce::toRandomValue() method added

Hi @markrogoyski,
I've added new methods and covered them by tests:

Reduce::toRandomValue()
Stream::toRandomValue()

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

14 of 14 (100.0%)  changed or added relevant lines in 2 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.003%) to 99.866%

Totals

Change from base Build<PHONE_NUMBER>:
0.003%

Covered Lines:
747

Relevant Lines:
748

💛  - Coveralls

Hi @Smoren,
Thanks for the pull request implementing reduce to a random value. Looks good to me.
Mark


Support Pub/Sub streaming pull?

The protobuf/GAPIC layer defines the ability to pull messages with a stream, instead of paging responses. Do we want to support streaming on pull requests?

@garrettjonesgoogle Can you answer this question?

We do want to support it and actually make it the primary way of getting messages from Pub/Sub long-term because it is more performant. This should be hidden in the implementation though, such that the user doesn't have to know if a synchronous pull or asynchronous streaming is used under the hood. This implies that the surface should operate with a callback model.
For the moment the server method doesn't work.

Should this be considered release blocking for Beta, or is it more of an implementation detail?

I think that depends on the surface in Ruby. When support is added, will users have to change their code? If not, then it shouldn't block beta.

Thanks, @garrettjonesgoogle.
What do you think, @blowmage?

This looks additive to me. I think we should retain backwards compatibility.

Great! P2+ it remains.

I imagine we would just replace the internals of Subscription#listen to use the stream.

@garrettjonesgoogle On March 1 you said:

For the moment the server method doesn't work.

Is streaming pull working now?

Not yet.

K, thx!

Support for the streaming API has been added to master, awaiting release.


Issues with Auto/Manual Switching

Hi, thank you for your work. I have installed the plugin in coap mode with an Ac4550. It works fine (manual/auto settings have problems) but if I turn off the purifier, after some hours in home app is shown as active.

I only have an HTTP unit, but I haven’t tried that case. Let me see if I can recreate that with it though.
How did you turn off the unit? Was it from Home, the buttons on the unit, or the official Philips app?

I turn it off with the homekit  home app. But for some hours is shown as off, then is shown as active again (but the purifier is off)

Let me see if I can recreate that with my unit, but there is a chance it is something specific with the CoAP units.

I turned my unit off with the Home app, and so far it hasn’t shown up as on again. So perhaps it could be something specific to your model or CoAP units. Could you try running airctrl —protocol coap —ipaddr (your unit’s IP) and let me know what comes back?
I also just noticed you mentioned you had a problem with manual/auto. Could you provide some more information on that?

I have restarted homebridge 4 hours ago and for now it show as off. The manual/auto switch in home app makes nothing to my unit. It autoreverse to auto but the unit fan is set in manual mode (speed 1 or 2)
airctrl --ipaddr <IP_ADDRESS> --protocol coap
[name]                        Name: Purificatore
[type]                        Type: AC4550
[modelid]                     ModelId: AC4550/10
[swversion]                   Version: 1.0.3
[om]                          Fan speed: 2
[pwr]                         Power: OFF
[cl]                          Child lock: False
[aqil]                        Light brightness: 1
[uil]                         Buttons light: ON
[mode]                        Mode: auto
[pm25]                        PM25: 1
[iaql]                        Allergen index: 1
[aqit]                        Air quality notification threshold: 1
[tvoc]                        tvoc: 1
[ddp]                         Used index: IAI
[rddp]                        rddp: 0
[fltt1]                       HEPA filter type: A5
[fltt2]                       Active carbon filter type: NanoProtect Filter AC (FY2420)
[fltsts0]                     Pre-filter and Wick: clean in 301 hours
[fltsts1]                     HEPA filter: replace in 10141 hours
[fltsts2]                     Active carbon filter: replace in 4741 hours
[ota]                         Over the air updates: ck
[Runtime]                     Runtime: 17.44 hours
[WifiVersion]                 WifiVersion<EMAIL_ADDRESS>[ProductId]                   ProductId: 90bbfb7ae62611e8a1e3061302926720
[DeviceId]                    DeviceId: 8440189a8c0c11e9a1e3061302926720
[StatusType]                  StatusType: localcontrol
[ConnectType]                 ConnectType: Localcontrol

I think the "auto mode" work in different way on new models: there is auto Allergen mode, auto gas mode, auto pollution mode and auto general mode. The manual mode can only be selected by adjust the fan speed.

Sounds like this may be a bug with the unit, but possibly one that I can work around. I’ll look into putting something together when I have some free time.
https://github.com/rgerganov/py-air-control/issues/44

For now it's off from yesterday and it never shown as active again. Don't now what it happened.
Ok, so if I want to put the unit in the manual mode the fan must be on the sleep mode?

If you are able to confirm their steps work around the auto/manual problem, I should be able to code them as a workaround into the plugin.
Their solution to get out of auto mode seems to be to switch the fan speed to one other than the unit is set to in order to get it into manual mode, then switch to the speed to actually want.

If I try the workaround, the fan speed change to sleep but the mode is always in automatic. In fact in the official app the fan is in manual mode (1,2, sleep or turbo) but there is no "manual mode" for the unit. The only options are: (general auto, allergen, gas, pollution). These option become gray if I manual select the fan speed.
Is it normal that when I use airctrl from terminal then the plugin is not working anymore until I restart homebridge? And if I turn on or off the unit with the official app the plugin does not update the state of the purifier until I restart homebridge.

Another update: if I made any change with official app or with airctrl then the plugin is not working anymore (no update and no command are executed). Airctrl continue to work properly. The only way to get the plugin working again is to restart homebridge.

Interesting, it should continue working even if you update it from other ways, and I have code in place that should update that state in HomeKit if you do. Does this only happen when making changes from airctrl, or does changing it from the official app or the buttons on the device cause the plugin to fail as well?
As for the issue with manual mode, I haven’t used the official app in a bit, so I’ll have to reinstall it and play around some to see how that works. I have a different, older, unit though, so it may be different for me. I may end up just trying to set up the workaround that is mentioned and have you try it to see if it fixes that behavior.

Turning it on or off from the unit seems to work (after some seconds it update the state in home app). If I give a command with official app or from airctrl it fails. Also the fan speed is not updated in home app.
I have turned it off two hours ago from the home app and again is shown as active.... don't know why.

Huh... I’m not really sure what the issue is, and I’m not sure if I’ll be able to get to the bottom of this without access to one of the CoAP models (or possibly specifically an AC4550?).
As far as I know, the only reason the Home app should report that it is active after being turned off is if the purifier itself reports that it is on...

When it show as on in home app, in the philips app the purifier is shown as off. Same thing if I launch airctrl, the pwr is off. Then I restart homebridge and the plugin is updated correctly.

Interesting, so it must be reporting correctly... Let me take a look through the code to see if I can spot anything, but I’ve never encountered this issue on my unit, so at least in some cases the code is working as expected.

In homebridge log sometimes I find this line:
[Homebridge] Give up on message From None, To ('<IP_ADDRESS>', 5683), CON-57167, GET-None, [Uri-Path: sys, Uri-Path: dev, Uri-Path: status, Observe: 0, ] No payload

Well that’s something to go off of at least, let me see if I can figure out where that would come from. Is there anything logged around those errors or do they just kinda show up on their own?
The best way to proceed may end up being for me to push a new version with a lot more logging, so I can see exactly what it is trying to do when the errors pop up.

No other error in log. The only difference is the number after the "CON-".
Here is another line:
[Homebridge] Give up on message From None, To ('<IP_ADDRESS>', 5683), CON-57177, GET-None, [Uri-Path: sys, Uri-Path: dev, Uri-Path: status, Observe: 0, ] No payload

For my model the automatic fan speed is reported in "om"

Interesting... it wasn’t reported that way in the earlier screenshot, I’m guessing it must have been set into auto mode in different ways. I should be able to set “om” to a when setting auto mode, let me just do some tests to make sure it doesn’t break older units if I do that always.

In the earlier screenshot the unit was in manual mode, fan on second speed. I have putted the unit in auto mode in official app and run airctrl to to see what is changed. The "mode" is always displayed as "auto". Only "om" is changed.

Ah, interesting. I can definitely add support, just need to see if the older units throw a fit with the setting, which would mean it would need to add another toggle in the config.

Thank you very much, it would be perfect. On the other hand I don't know why making any changes with the official app make the plugin to not work until I restart homebridge.

Yea, that bit is still somewhat of a mystery to me. I really do want to sort that out, it’s just a bit hard without access to one of these models. I do still plan to take a look to see if I can spot anything, hopefully this weekend.

Another update: is impossible to set the unit in auto mode with airctrl and the "--om a" parameter.
This must to be changed in airctrl.

That's fine, I'll make that change and submit a patch to them as well. That actually doesn't impact this plugin's use of airctrl though, as I bypass their validation logic.

I've opened a pull request to airctrl to allow for that to be set in that tool.
Also, quick testing suggests that sending it on my HTTP-based unit makes it unhappy. I wonder if all COAP-based purifiers do it this way. If so I can get away without adding yet another switch that nobody understands...

I have reinstalled py-air-control and coapthon3, now I get other debug message in console (don't know if they change something in capthon now.
When the plugin stop responding to commands I get this messages:
[Homebridge] 2020-06-22 15:58:01,646 - Thread-1 - coapthon.client.coap - DEBUG - Waiting for retransmit thread to finish ...
[Homebridge] 2020-06-22 15:58:01,647 - MainThread-Retry-48483 - coapthon.client.coap - DEBUG - retransmit loop ... exit
[Homebridge] 2020-06-22 15:58:05,894 - MainThread - coapthon.layers.messagelayer - DEBUG - send_request - From None, To ('<IP_ADDRESS>', 5683), None-None, POST-Zy, [Uri-Path: sys, Uri-Path: dev, Uri-Path: control, ] 2BD25B540C472DC52B55...264 bytes
[Homebridge] 2020-06-22 15:58:05,894 - MainThread - coapthon.client.coap - DEBUG - send_datagram - From None, To ('<IP_ADDRESS>', 5683), CON-48484, POST-Zy, [Uri-Path: sys, Uri-Path: dev, Uri-Path: control, ] 2BD25B540C472DC52B55...264 bytes
[Homebridge] 2020-06-22 15:58:05,899 - MainThread-Retry-48484 - coapthon.client.coap - DEBUG - retransmit loop ... enter
[Homebridge] 2020-06-22 15:58:05,902 - Thread-1 - coapthon.client.coap - DEBUG - receive_datagram - From ('<IP_ADDRESS>', 5683), To None, NON-48484, CONTENT-Zy, [Content-Type: 50, ] {"status":"failed"}...19 bytes
[Homebridge] 2020-06-22 15:58:05,903 - Thread-1 - coapthon.layers.messagelayer - DEBUG - receive_response - From ('<IP_ADDRESS>', 5683), To None, NON-48484, CONTENT-Zy, [Content-Type: 50, ] {"status":"failed"}...19 bytes
[Homebridge] 2020-06-22 15:58:05,904 - Thread-1 - coapthon.client.coap - DEBUG - Waiting for retransmit thread to finish ...
[Homebridge] 2020-06-22 15:58:05,905 - MainThread-Retry-48484 - coapthon.client.coap - DEBUG - retransmit loop ... exit
[Homebridge] 2020-06-22 15:58:54,165 - Thread-1 - coapthon.client.coap - DEBUG - receive_datagram - From ('<IP_ADDRESS>', 5683), To None, CON-8216, CONTENT-None, [Observe: 32, Content-Type: 50, Max-Age: 60, ] 10C252C489E34E7380B0...1128 bytes
[Homebridge] 2020-06-22 15:58:54,166 - Thread-1 - coapthon.layers.messagelayer - DEBUG - receive_response - From ('<IP_ADDRESS>', 5683), To None, CON-8216, CONTENT-None, [Observe: 32, Content-Type: 50, Max-Age: 60, ] 10C252C489E34E7380B0...1128 bytes
[Homebridge] 2020-06-22 15:58:54,166 - Thread-1 - coapthon.layers.messagelayer - DEBUG - send_empty - From None, To None, ACK-None, EMPTY-None, [] No payload
[Homebridge] 2020-06-22 15:58:54,167 - Thread-1 - coapthon.client.coap - DEBUG - send_datagram - From None, To ('<IP_ADDRESS>', 5683), ACK-8216, EMPTY-None, [] No payload
[Homebridge] 2020-06-22 15:58:54,168 - Thread-1 - coapthon.layers.messagelayer - DEBUG - send_empty - From None, To None, ACK-None, EMPTY-None, [] No payload
[Homebridge] 2020-06-22 15:58:54,170 - Thread-1 - coapthon.client.coap - DEBUG - send_datagram - From None, To ('<IP_ADDRESS>', 5683), ACK-8216, EMPTY-None, [] No payload

Just a thought, when the plugin stops responding, does restarting Homebridge resolve the issue? If so, I have an idea for how to work around the problem.

Yes, restarting homebridge solve the problem

Okay, great. Let me see if I can put a new version together with my idea. Hopefully will have something for you in the next day or so.

Great! Thank you very much!

I just pushed version 2.0.1 with what I hope will fix the issue with the unit stopping responding. I'm still trying to figure out a good way to (hopefully) implement the manual/auto issue. Please let me know if you see this issue (or any others).

Was off 4 hours ago. I tried to turn it on now from homekit and stopped responding to commands. Need to restart homebridge.

Darn, I though we had it. Let me see if I can come up with another solution.
Also, not sure why anything would have change with the fan speed indicator, I don’t think I touched anything that should impact that.

The fan speed problem was there also in previous version but I thinked was for the auto/manual problem

Ah, okay. I’ll hopefully have a resolution for both soon. I had some ideas for both problems a minute ago, I just need time to work on them, and confirm that it doesn’t break the older units. I’m busy this weekend, but hopefully next week I’ll have something.

Thank you very much!

@dvd2000k I've started working on some potential fixes, but I'm at a bit of an impasse due to not having a CoAP unit.
Could you do me a favor and grab the file from https://raw.githubusercontent.com/Sunoo/philips-air/testing/pyaircontrol.py and run it like:
./pyaircontrol.py --ipaddr <IP_ADDRESS> --protocol coap --status
And report back what it spits out?
It would also be potentially helpful if you tried either of the following:
Send Power On:
./pyaircontrol.py --ipaddr <IP_ADDRESS> --protocol coap --set '{"pwr": "1"}'
Send Power Off:
./pyaircontrol.py --ipaddr <IP_ADDRESS> --protocol coap --set '{"pwr": "0"}'
And let me know if that worked on your unit.
I'd really appreciate it, thanks.

Sure, here is the output:
.hoobs/etc $ python3 pyaircontrol.py --ipaddr <IP_ADDRESS> --protocol coap --status
2020-07-02 08:15:47,450 - MainThread - coapthon.layers.messagelayer - DEBUG - send_request - From None, To ('<IP_ADDRESS>', 5683), None-None, POST-dD, [Uri-Path: sys, Uri-Path: dev, Uri-Path: sync, ] 1F20D841...8 bytes
2020-07-02 08:15:47,450 - MainThread - coapthon.client.coap - DEBUG - send_datagram - From None, To ('<IP_ADDRESS>', 5683), CON-56430, POST-dD, [Uri-Path: sys, Uri-Path: dev, Uri-Path: sync, ] 1F20D841...8 bytes
2020-07-02 08:15:47,451 - Thread-1   - coapthon.client.coap - DEBUG - Start receiver Thread
2020-07-02 08:15:47,452 - MainThread-Retry-56430 - coapthon.client.coap - DEBUG - retransmit loop ... enter
2020-07-02 08:15:47,454 - Thread-1   - coapthon.client.coap - DEBUG - receive_datagram - From ('<IP_ADDRESS>', 5683), To None, NON-56430, CONTENT-dD, [Content-Type: 0, ] 1C2099DA...8 bytes
2020-07-02 08:15:47,454 - Thread-1   - coapthon.layers.messagelayer - DEBUG - receive_response - From ('<IP_ADDRESS>', 5683), To None, NON-56430, CONTENT-dD, [Content-Type: 0, ] 1C2099DA...8 bytes
2020-07-02 08:15:47,455 - Thread-1   - coapthon.client.coap - DEBUG - Waiting for retransmit thread to finish ...
2020-07-02 08:15:47,455 - MainThread-Retry-56430 - coapthon.client.coap - DEBUG - retransmit loop ... exit
2020-07-02 08:15:47,466 - MainThread - coapthon.layers.messagelayer - DEBUG - send_request - From None, To ('<IP_ADDRESS>', 5683), None-None, GET-None, [Uri-Path: sys, Uri-Path: dev, Uri-Path: status, Observe: 0, ] No payload
2020-07-02 08:15:47,467 - MainThread - coapthon.client.coap - DEBUG - send_datagram - From None, To ('<IP_ADDRESS>', 5683), CON-56431, GET-None, [Uri-Path: sys, Uri-Path: dev, Uri-Path: status, Observe: 0, ] No payload
2020-07-02 08:15:47,468 - MainThread-Retry-56431 - coapthon.client.coap - DEBUG - retransmit loop ... enter
2020-07-02 08:15:47,481 - Thread-1   - coapthon.client.coap - DEBUG - receive_datagram - From ('<IP_ADDRESS>', 5683), To None, CON-3980, CONTENT-None, [Observe: 3979, Content-Type: 50, Max-Age: 60, ] 1F20D842BB5B00B6EEC6...1128 bytes
2020-07-02 08:15:47,482 - Thread-1   - coapthon.layers.messagelayer - DEBUG - receive_response - From ('<IP_ADDRESS>', 5683), To None, CON-3980, CONTENT-None, [Observe: 3979, Content-Type: 50, Max-Age: 60, ] 1F20D842BB5B00B6EEC6...1128 bytes
2020-07-02 08:15:47,482 - Thread-1   - coapthon.client.coap - DEBUG - Waiting for retransmit thread to finish ...
2020-07-02 08:15:47,482 - MainThread-Retry-56431 - coapthon.client.coap - DEBUG - retransmit loop ... exit
2020-07-02 08:15:47,492 - Thread-1   - coapthon.layers.messagelayer - DEBUG - send_empty - From None, To None, ACK-None, EMPTY-None, [] No payload
2020-07-02 08:15:47,493 - Thread-1   - coapthon.client.coap - DEBUG - send_datagram - From None, To ('<IP_ADDRESS>', 5683), ACK-3980, EMPTY-None, [] No payload
2020-07-02 08:15:47,493 - Thread-1   - coapthon.layers.messagelayer - DEBUG - send_empty - From None, To None, ACK-None, EMPTY-None, [] No payload
2020-07-02 08:15:47,494 - Thread-1   - coapthon.client.coap - DEBUG - send_datagram - From None, To ('<IP_ADDRESS>', 5683), ACK-3980, EMPTY-None, [] No payload
{'ConnectType': 'Localcontrol',
'DeviceId': '8440189a8c0c11e9a1e3061302926720',
'ProductId': '90bbfb7ae62611e8a1e3061302926720',
'Runtime': 232219753,
'StatusType': 'localcontrol',
'WifiVersion'<EMAIL_ADDRESS>'aqil': '1',
'aqit': 1,
'cl': False,
'ddp': '0',
'err': 0,
'fltsts0': 278,
'fltsts1': 10118,
'fltsts2': 4718,
'fltt1': 'A5',
'fltt2': 'C7',
'iaql': 1,
'mode': 'P',
'modelid': 'AC4550/10',
'name': 'Purificatore',
'om': '2',
'ota': 'ck',
'pm25': 10,
'pwr': '0',
'rddp': '0',
'swversion': '1.0.3',
'tvoc': 1,
'type': 'AC4550',
'uil': '1'}
2020-07-02 08:15:47,594 - Thread-1   - coapthon.client.coap - DEBUG - Exiting receiver Thread due to request
python3 pyaircontrol.py --ipaddr <IP_ADDRESS> --protocol coap --set '{"pwr": "1"}'
2020-07-02 08:23:10,981 - MainThread - coapthon.layers.messagelayer - DEBUG - send_request - From None, To ('<IP_ADDRESS>', 5683), None-None, POST-Yu, [Uri-Path: sys, Uri-Path: dev, Uri-Path: sync, ] 12B5AAFC...8 bytes
2020-07-02 08:23:10,982 - MainThread - coapthon.client.coap - DEBUG - send_datagram - From None, To ('<IP_ADDRESS>', 5683), CON-43647, POST-Yu, [Uri-Path: sys, Uri-Path: dev, Uri-Path: sync, ] 12B5AAFC...8 bytes
2020-07-02 08:23:10,983 - Thread-1   - coapthon.client.coap - DEBUG - Start receiver Thread
2020-07-02 08:23:10,984 - MainThread-Retry-43647 - coapthon.client.coap - DEBUG - retransmit loop ... enter
2020-07-02 08:23:10,986 - Thread-1   - coapthon.client.coap - DEBUG - receive_datagram - From ('<IP_ADDRESS>', 5683), To None, NON-43647, CONTENT-Yu, [Content-Type: 0, ] 142FEF24...8 bytes
2020-07-02 08:23:10,986 - Thread-1   - coapthon.layers.messagelayer - DEBUG - receive_response - From ('<IP_ADDRESS>', 5683), To None, NON-43647, CONTENT-Yu, [Content-Type: 0, ] 142FEF24...8 bytes
2020-07-02 08:23:10,986 - Thread-1   - coapthon.client.coap - DEBUG - Waiting for retransmit thread to finish ...
2020-07-02 08:23:10,987 - MainThread-Retry-43647 - coapthon.client.coap - DEBUG - retransmit loop ... exit
2020-07-02 08:23:10,999 - MainThread - coapthon.layers.messagelayer - DEBUG - send_request - From None, To ('<IP_ADDRESS>', 5683), None-None, POST-Zl, [Uri-Path: sys, Uri-Path: dev, Uri-Path: control, ] 142FEF25816F4A632BEF...264 bytes
2020-07-02 08:23:11,000 - MainThread - coapthon.client.coap - DEBUG - send_datagram - From None, To ('<IP_ADDRESS>', 5683), CON-43648, POST-Zl, [Uri-Path: sys, Uri-Path: dev, Uri-Path: control, ] 142FEF25816F4A632BEF...264 bytes
2020-07-02 08:23:11,001 - MainThread-Retry-43648 - coapthon.client.coap - DEBUG - retransmit loop ... enter
2020-07-02 08:23:11,006 - Thread-1   - coapthon.client.coap - DEBUG - receive_datagram - From ('<IP_ADDRESS>', 5683), To None, NON-43648, CONTENT-Zl, [Content-Type: 50, ] {"status":"success"}...20 bytes
2020-07-02 08:23:11,006 - Thread-1   - coapthon.layers.messagelayer - DEBUG - receive_response - From ('<IP_ADDRESS>', 5683), To None, NON-43648, CONTENT-Zl, [Content-Type: 50, ] {"status":"success"}...20 bytes
2020-07-02 08:23:11,006 - Thread-1   - coapthon.client.coap - DEBUG - Waiting for retransmit thread to finish ...
2020-07-02 08:23:11,006 - MainThread-Retry-43648 - coapthon.client.coap - DEBUG - retransmit loop ... exit
2020-07-02 08:23:11,117 - Thread-1   - coapthon.client.coap - DEBUG - Exiting receiver Thread due to request
--protocol coap --set '{"pwr": "0"}' python3 pyaircontrol.py --ipaddr <IP_ADDRESS> --protocol coap --set '{"pwr": "0"}'
2020-07-02 08:26:31,217 - MainThread - coapthon.layers.messagelayer - DEBUG - send_request - From None, To ('<IP_ADDRESS>', 5683), None-None, POST-Yp, [Uri-Path: sys, Uri-Path: dev, Uri-Path: sync, ] A18DDE3D...8 bytes2020-07-02 08:26:31,217 - MainThread - coapthon.client.coap - DEBUG - send_datagram - From None, To ('<IP_ADDRESS>', 5683), CON-8732, POST-Yp, [Uri-Path: sys, Uri-Path: dev, Uri-Path: sync, ] A18DDE3D...8 bytes
2020-07-02 08:26:31,218 - Thread-1   - coapthon.client.coap - DEBUG - Start receiver Thread
2020-07-02 08:26:31,219 - MainThread-Retry-8732 - coapthon.client.coap - DEBUG - retransmit loop ... enter
2020-07-02 08:26:31,221 - Thread-1   - coapthon.client.coap - DEBUG - receive_datagram - From ('<IP_ADDRESS>', 5683), To None, NON-8732, CONTENT-Yp, [Content-Type: 0, ] 690AE307...8 bytes
2020-07-02 08:26:31,221 - Thread-1   - coapthon.layers.messagelayer - DEBUG - receive_response - From ('<IP_ADDRESS>', 5683), To None, NON-8732, CONTENT-Yp, [Content-Type: 0, ] 690AE307...8 bytes
2020-07-02 08:26:31,222 - Thread-1   - coapthon.client.coap - DEBUG - Waiting for retransmit thread to finish ...
2020-07-02 08:26:31,222 - MainThread-Retry-8732 - coapthon.client.coap - DEBUG - retransmit loop ... exit
2020-07-02 08:26:31,234 - MainThread - coapthon.layers.messagelayer - DEBUG - send_request - From None, To ('<IP_ADDRESS>', 5683), None-None, POST-ca, [Uri-Path: sys, Uri-Path: dev, Uri-Path: control, ] 690AE30813D87169BD7B...264 bytes
2020-07-02 08:26:31,234 - MainThread - coapthon.client.coap - DEBUG - send_datagram - From None, To ('<IP_ADDRESS>', 5683), CON-8733, POST-ca, [Uri-Path: sys, Uri-Path: dev, Uri-Path: control, ] 690AE30813D87169BD7B...264 bytes
2020-07-02 08:26:31,236 - MainThread-Retry-8733 - coapthon.client.coap - DEBUG - retransmit loop ... enter
2020-07-02 08:26:31,240 - Thread-1   - coapthon.client.coap - DEBUG - receive_datagram - From ('<IP_ADDRESS>', 5683), To None, NON-8733, CONTENT-ca, [Content-Type: 50, ] {"status":"success"}...20 bytes
2020-07-02 08:26:31,240 - Thread-1   - coapthon.layers.messagelayer - DEBUG - receive_response - From ('<IP_ADDRESS>', 5683), To None, NON-8733, CONTENT-ca, [Content-Type: 50, ] {"status":"success"}...20 bytes
The unit is powering on and off correctly with this commands.

Thanks, that’s what I was hoping to see. With any luck I’ll have a new version together this coming long weekend.

Perfect, thank you very much!

Okay, the version I just pushed removes node-calls-python, and should hopefully also resolve the timeout issues you were seeing. Please let me know if you're still getting them.
I'll be working on the auto/manual issue today, as I think I have a good idea as to how to handle it. Just need to make sure it doesn't break older units.

Ok, i am testing it. The fan speed not being updated (if I manually change it from the purifier or official app, is not updated in homekit) is related to auto/manual issue?

Could be, I’ll go through the logic in the code for fan speed this afternoon. Was that working correctly in previous versions?

It just occurred to me that the fix I put in this afternoon could possibly fix your updating issue, if you wanted to retest.


Document system.build.toplevel

Motivation for this change
system.build.toplevel isn't internal anymore, so it should be documented. For example the Flakes article on the unofficial wiki mentions it. It is a very important interface, so I don't think we should try to hide it.
Blocked on https://github.com/NixOS/nixpkgs/issues/146882
Things done

Built on platform(s)

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

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] 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/)
22.05 Release Notes (or backporting 21.11 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
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[ ] Fits CONTRIBUTING.md.

Why is this blocked on #146882? Submodule types can be merged IIRC so you should just be able to do
# nixos/modules/system/activation/top-level.nix
{
    system.build = mkOption {
      type = types.submoduleWith {
        modules = [{
          options.toplevel = mkOption { ... };
        }];
      };
    };
}

What do you mean by "system.build.toplevel isn't internal"?

Why is this blocked on #146882?

This PR does not evaluate:
error: The option `system.build' in `nixpkgs/nixos/modules/system/build.nix' is a prefix of options in `nixpkgs/nixos/modules/system/activation/top-level.nix'.

This behavior could be considered an artifact of the module system's development history, but if you stop squinting, it's a bug :)

Sure, but it doesn't block the PR in that we can just comply with the quirky module system for now

Sure, but it doesn't block the PR in that we can just comply with the quirky module system for now

Right, but we'll be creating a mess and setting a bad example of useless complexity. In this case I'd rather wait. Maybe I am using "blocked" too liberally.

#156503 needed some of the same changes, so I've included it there instead. Closing.


adds concurrency to unsafe check jobs

Purpose
This PR adds concurrency to our unsafe PR checks, similar to the change we made to our safe checks

@seanpreston I re-ran this test and it failed in the same place, but I don't see anything you changed that would make that happen. Could the SalesForce connection just be down?


Jsoup parse fails to descend block elements inside an anchor element correctly

_With input DOM given below and a simple traveral test, Jsoup yields an unexpected DOM walk_

  beyond good and evil

  thus spoke zarathustra

 static class LoggingVisitor implements NodeVisitor {
    private final Logger logger = LoggerFactory.getLogger("Tree depth logger");

    @Override
    public void head(Node node, int depth) {
      logger.info("head node " + node.nodeName() + " with depth " + depth);
    }

    @Override
    public void tail(Node node, int depth) {
      logger.info("tail node " + node.nodeName() + " with depth " + depth);
    }
  };

  @Test
  public void testJsoupTraversalWithBlockElementInsideAnchor() {
    String body =
      "
" +
        "beyond good and evil" +
          "

" +
        "" +
        "thus spoke zarathustra" +
       "
";
    Document doc = Jsoup.parseBodyFragment(body);
    LoggingVisitor visitor = new LoggingVisitor();
    NodeTraversor traversor = new NodeTraversor(visitor);
    traversor.traverse(doc.body());
  }

_Printing the Jsoup parsed document shows rogue html_

beyond good and evil

thus spoke zarathustra

INFO   [11:01:28.070] [main] Tree depth logger -  head node body with depth 0
INFO   [11:01:28.073] [main] Tree depth logger -  head node p with depth 1
INFO   [11:01:28.073] [main] Tree depth logger -  head node a with depth 2
INFO   [11:01:28.073] [main] Tree depth logger -  head node #text with depth 3
INFO   [11:01:28.073] [main] Tree depth logger -  tail node #text with depth 3
INFO   [11:01:28.073] [main] Tree depth logger -  tail node a with depth 2
INFO   [11:01:28.074] [main] Tree depth logger -  tail node p with depth 1
INFO   [11:01:28.074] [main] Tree depth logger -  head node div with depth 1
INFO   [11:01:28.074] [main] Tree depth logger -  tail node div with depth 1
INFO   [11:01:28.074] [main] Tree depth logger -  head node #text with depth 1
INFO   [11:01:28.074] [main] Tree depth logger -  tail node #text with depth 1
INFO   [11:01:28.074] [main] Tree depth logger -  head node p with depth 1
INFO   [11:01:28.074] [main] Tree depth logger -  tail node p with depth 1
INFO   [11:01:28.074] [main] Tree depth logger -  tail node body with depth 0

Just noticed that the broken behavior occurs only when the outer HTML tag is a p.  It looks like there is something fundamentally broken with handling of p tags.
  @Test
  public void testJsoupTraversalWithBlockElementInsideAnchor() {
    String body = "
" +
                    "beyond good or evil" +
                    "

" +
                    "thus spoke zarathustra" +
                  "
";
    Document doc = Jsoup.parseBodyFragment(body);
    System.out.println(doc);
  }

beyond good or evil

thus spoke zarathustra

That's because, per the HTML5 spec, a p tag implies special formatting rules for a tags, and excludes div tags from them, and so content gets re-parented. Other HTML5 parsers (such as Chromium and Firefox) do the same.
If you don't want HTML5 parse rules, you can use the XmlTreeBuilder, which just treats tags as-is.

I have a similar document that is broken in a weird way. For this DOM:

Zero

    child

JSoup closes the parent anchor as expected, but then it duplicates it inside the div:

   Zero

 child

I believe this warrants reopening this issue.

@worldsense-tms: This is non-conforming HTML which will always parse in unexpected (well, unless you read the specification) ways. However, ending up with nested anchor elements in the DOM tree is a bug. I opened issue #845 for that.


Improve protobuf module code quality

Purpose
Fixes https://github.com/ballerina-platform/ballerina-standard-library/issues/2345
Examples
Checklist

[ ] Linked to an issue
[ ] Updated the changelog
[ ] Added tests

@BuddhiWathsala can you check


Issue while building Autoware on Aarch64 host

Bug
Building Autoware on Aarch64 hardware throws below error:
/usr/bin/ld: /home/linaro/Autoware/ros/src/actuation/vehicles/packages/ymc/lib/libymc_can_2.0_aarch64.a(cansend.cpp.o): relocation R_AARCH64_ADR_PREL_PG_HI21 against external symbol `__stack_chk_guard@@GLIBC_2.17' can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: /home/linaro/Autoware/ros/src/actuation/vehicles/packages/ymc/lib/libymc_can_2.0_aarch64.a(cansend.cpp.o)(.text+0x30): unresolvable R_AARCH64_ADR_PREL_PG_HI21 relocation against symbol `__stack_chk_guard@@GLIBC_2.17'
/usr/bin/ld: final link failed: Bad value
collect2: error: ld returned 1 exit status
actuation/vehicles/packages/ymc/CMakeFiles/g30esli_interface.dir/build.make:114: recipe for target '/home/linaro/Autoware/ros/devel/lib/ymc/g30esli_interface' failed
make[2]: *** [/home/linaro/Autoware/ros/devel/lib/ymc/g30esli_interface] Error 1
CMakeFiles/Makefile2:35251: recipe for target 'actuation/vehicles/packages/ymc/CMakeFiles/g30esli_interface.dir/all' failed

Should the library libymc_can_2.0_aarch64.a compiled as a shared object?
Specifications

Debian version: Stretch
ROS Version: Kinetic
Autoware branch: Master

Thanks for report!
Yes, libymc_can_2.0_aarch64.a has compiled as a shared object.
Unfortunately, this library has a rights problem, we can not publish the source code.
If you don't use yamaha's golfcart controller, please remove ros/src/actuation/vehicles/packages/ymc.

or add a CATKIN_IGNORE file inside ros/src/actuation/vehicles/packages/ymc

Hi @yk-fujii @amc-nu,
Thanks for your inputs. I'm able to build Autoware on ARMv8 host successfully after excluding several packages!
Also I have faced several compilation errors during building for which I have submitted fix #1249.


[code] support for msvc 2015

Maybe for MSVC-15

added since https://github.com/boost-experimental/sml/commit/04a0c44d22e3c9c8935eef427eb8e9c6a811e884 for MSVC-2015 Update 3


Additional routine for utils

In my opinion, it seems too complex to me. I just prefer to add new argument and if condition. This may give smallest change to the code.

It's better than previous commit.


Fix persistence of window position

Issue
#1737
Changes
Store the inner position only for MacOS; other platforms store the outer position.

Thanks.


Grid digitizer - Error 500 when identifier is matched with a containerized specimen

Describe the bug
Grid digitizer fails when one of the specimens that is matched is already a containerized specimen.
To Reproduce
Steps to reproduce the behavior:

When I upload an image to grid digitizer.
Then I add catalog numbers.
And those specimens are matched to existing catalog numbers.
And one of those specimens is containerized.
The upload fails with a confusing "Error 500" code.

Error code(s):

Expected behavior
Error code should at minimum be more clear, and if possible, depictions should be added to all collection objects within the container.
Screenshots
Failed upload examples:

Why it fails:

Environment (please identify where you experience this bug:
*** One of ***

Production
Chrome

Probably related to "sled_images update (ActiveModel::UnknownAttributeError) "unknown attribute 'total' for Container::Slide." error.
The failure is at https://github.com/SpeciesFileGroup/taxonworks/blob/d733e6a56/app/models/sled_image.rb#L236
Looking above it removes some params when the collection object already exists but not all of them (like total).
If I get it correctly the task sends these attributes:

total (always "1"?)
collecting_event_id (form-supplied, only if set)
preparation_type_id (form-supplied, only if set)
repository_id (form-supplied, only if set)
identifiers_attributes (form-supplied, param excluded at backend if CO exists)
notes_attributes (form-supplied, param excluded at backend if CO exists)
tags_attributes (form-supplied, param excluded at backend if CO exists)
data_attributes_attributes (always "[]"? Would it kill existing data attributes when updating?)
taxon_determinations_attributes (form-supplied, param excluded at backend if CO exists)

Besides adding p.delete :total, would be correct to do p.delete :data_attributes_attributes @mjy @jlpereira?

data_attributes_attributes is never assigned in the interface, so i think it should be ok

@jlpereira @LocoDelAssembly Just got a 500 server error again uploading to containerized specimens. Need to reopen.

@tmcelrath is this possible to reproduce? Can you provide me exact steps and sled_image_id? Trying to reproduce locally.
Fix above was required but ended up fixing a different problem... Problem is that the code is not checking whether the existing identifier is actually identifying a collection object. Current problem is that it is trying to set depository for Container::Slide, but would like to test more before releasing to production.

Yes. In INHS Insect Collection: sled_image_id=4095 - add this image, use down-across, select INHS Insect Collection namespace, starting identifier: 457900 (end should be 457912 when you deselect blank spaces). Two columns, eight rows. Repository = INHS, Preparation = Slide, Add a Tag of "INHS Slide Digitization". Hit create. Get error.

https://sfg.taxonworks.org/tasks/collection_objects/grid_digitize/index?sled_image_id=4095

I added code that handles identifiers assigned to Containers (and any other non-CollectionObject (sub)class) to be ignored so instead of crashing an error is reported when a CollectionObject with duplicated Identifier is detected. In @tmcelrath example, the offending catalog number of INHS Insect collection namespace is 457906. I also tried modifying the code to attempt to provide desired behavior:
diff --git a/app/models/sled_image.rb b/app/models/sled_image.rb
index 4758bfd05..baf01f0f2 100644
--- a/app/models/sled_image.rb
+++ b/app/models/sled_image.rb
@@ -226,7 +226,7 @@ class SledImage < ApplicationRecord
         j = identifier_for(i)

         # Check to see if object exists
-        if j && k = Identifier::Local::CatalogNumber.find_by(p[:identifiers_attributes].first.merge(identifier: j, identifier_object_type: 'CollectionObject'))
+        if j && k = Identifier::Local::CatalogNumber.find_by(p[:identifiers_attributes].first.merge(identifier: j, identifier_object_type: ['Container', 'CollectionObject']))
           # Remove the identifier attributes, identifier exists
           p.delete :identifiers_attributes
           p.delete :tags_attributes
@@ -235,7 +235,7 @@ class SledImage < ApplicationRecord
           p.delete :data_attributes_attributes
           p.delete :total

-          k.identifier_object.update!(p)
+          (k.identifier_object.try(:collection_objects) || [k.identifier_object]).each { |o| o.update!(p) }
         else
           c = CollectionObject.new(p)

However, sled_image depictions cannot be assigned to multiple objects (validates_uniqueness_of :sled_image_id, scope: [:project_id, :sled_image_x_position, :sled_image_y_position]):

The Container::Slide in question has a Lot and a Specimen.
Without the patch above this would happen:

What could be done here @mjy, @jlpereira?
I'll likely release to production tomorrow morning with current code (without aforementioned patch), as it is better behavior than 500 error and solves the reported main problem.

With the code you added them @LocoDelAssembly, will the process succeed for all slides but the offending containers? That would be enough of a fix for me. The other images/newly created collection objects could be assigned manually.


Identical condition

/libjxl-main/tools/djxl_ng_main.cc line 327 same as line 302
Code:
} else if (status == JXL_DEC_NEED_IMAGE_OUT_BUFFER) {

yup, its identical. likely snuck in while someone was working on something else in the code, and they just didn't notice it.
not that big of a deal though.

Using "switch" would be a clear win here.


Add Open Graph Protocols and twitter tags to the website for efficient social media sharing

Description
I want to add Open Graph Protocols to the website for efficient social media sharing. Please assign this issue to me @akshitagupta15june
Describe the solution you'd like
I want to add Open Graph Protocols to the website for efficient social media sharing. Please assign this issue to me @akshitagupta15june
Priority (optional)
High

not required currently


Liquidity service in a separate repository

Most of the actual code is in the liquidity repository. It is new, so no use for a PR there. Just take a look. Everything is in master there.
This PR contains, in addition, the long overdue refactoring of set_env.py, as it has become unbearably messy and error-prone.
Important: If we merge this PR before the liquidity repository is made public, the developers won't be able to run the wallet. This is also the reason the CI should be failing (which is a good thing in this case).

Is the plan to make the liquidity repo public first before making these changes?


Task - Transition from ZenHub to GitHub Projects

Describe the task
Migrate projects from ZenHub to GitHub Projects.
Purpose
To transition project tracking and management to GitHub Projects before the subscription with ZenHub ends, ensuring uninterrupted workflow for the team and maintaining project visibility.
Acceptance Criteria

[ ] Export all relevant project data from ZenHub to GitHub Projects, ensuring all tasks, labels, and Epics are accurately transferred.
[ ] Verify that all team members have access to GitHub projects and can view/edit them as needed.

Additional context

ZenHub subscription is set to expire the end of the year. However, with the ZEVA rebuild we need to transfer before creating those cards.
Review as a team so every one is familiar with GitHub projects.

Hey team! Please add your planning poker estimate with Zenhub @emi-hi @tim738745

Please add your planning poker estimate with Zenhub @JulianForeman

Hey team! Please add your planning poker estimate with Zenhub @emi-hi @tim738745 @JulianForeman

Tim would speak with Alex to get the scripts

Hi @tim738745 and @shayjeff i think we can close this ticket, what do you both think?

@ArawuSamuel1 If @shayjeff is okay with the zenhub data that was brought over to this new board, then I think we can close this ticket!

@ArawuSamuel1 and @tim738745 I'm okay with closing these cards, but we need to create a spike card for the closed cards that did not come over from ZenHub. We need to find a way to get that information, whether in a CSV or another format, as it serves as a record of our work. @ArawuSamuel1 can you create that card?

Yes, I have created the card - https://github.com/bcgov/zeva/issues/2199

We closed this issue because we got directions frtom Suzanne that we can all closed issues from zenhub on github issues.


entgql: Conditionally include orderBy argument in connection field

In working off latest tip I discovered that the connection query fields were always being generated with the OrderBy argument referencing an OrderBy type for the node type. This produces invalid graphql schema in the case that no OrderBy type exists for the node type. A quick fix for this is to check if any OrderBy fields are specified and SkipOrderField is not set for the type and pass the result of this check to ConnectionField method. This same check needs to be applied at both usages of ConnectionField - in building the schema for a node and building the edges for the node.

Creating this PR before writing tests to check if this change is valid. Would appreciate a sanity check that this issue does in fact need to be addressed and then will happily add test coverage to complete the PR.

Hey, thank @scraymondjr for this PR. I will include this change in https://github.com/ent/contrib/pull/305, because we need to update the Go template too.

Hello @scraymondjr, can you try this branch to verify your issue? https://github.com/ent/contrib/pull/305

Hey @giautm I tried with the latest commit in contrib and it looks like this is fixed! Thank you.


Add crawler for https://tender.gov.md/en/lista-de-interdictie

Capturing owners using ownership

Capturing date as the sanction decision date

Capturing "administrators" and "leaders" as members

Questions

is it sufficient to assume an owner is a person unless their name contains s.r.l?
Should we assume these are owners too, or only "administrators"?
Is "administrator" a useful role label? I'm imagining they are the CEO except perhaps when there are multiple, in which case we can't make any assumption.
should I generate a sanction ID like md-interdictie-9-23 from 9/23 of 3 september 2023?

Some notes. One question: why not make the rows of the table into a dict with slug version of the column names? The index thing feels more likely to break if column names shift.

The thinking was to have shorter, english keys rather than these super long romanian ones. But the dict approach is certainly more concise and just as safe.


CORE-17532: Upgrade Liquibase to latest version

The version of liquibase used in corda is currently out of date (4.19, released in January 2023). This PR upgrades to a more modern 4.24, which includes many security updates and performance upgrades.

build e2e

build e2e

build e2e


Use icons as per design

Bitcoin icon is bigger then the value

@akshay8551 Refer to latest design https://xd.adobe.com/view/489bcd8a-f669-4ecb-9d11-bd705d75a996-1dc8/screen/1e78a111-daf9-4265-8809-ed6391061cf6/

@Deveshshankar and @summikhan11 Could you please share BTC's medium-size icon?
I Picked it from the latest XD It's too small.

https://xd.adobe.com/view/489bcd8a-f669-4ecb-9d11-bd705d75a996-1dc8/screen/1e78a111-daf9-4265-8809-ed6391061cf6/

verified this issue on keeper app v 1.1.11(296)


Always allow adding notification blocks on the main thread

Closes #2939.
@jpsim Should get this in for 0.97.

:+1: we almost forgot this!


Planner documentation inconsistency

Noticed an inconsistency in the Planner documentation. Option sets --planId, --planName and --ownerGroupId, --ownerGroupName are used in almost every Planner command.
Discussed in https://github.com/pnp/cli-microsoft365/issues/3336#issuecomment-1136923101, we noticed that in some Planner commands it's not specified when an option should be used.
--planId & --planName should be used when task name or bucket name is specified.
--ownerGroupId & --ownerGroupName should only be used when the name of a plan is specified.
In brief, the last sentence of the option description should be changed from
Specify ownerGroupId or ownerGroupName but not both.
to
Specify ownerGroupId or ownerGroupName when using planName.
Command docs to update

Command
Option descriptions to update

planner bucket set
planId, planName, ownerGroupId, ownerGroupName

planner plan details get
ownerGroupId, ownerGroupName

planner plan get
ownerGroupId, ownerGroupName

planner task set
bucketId, bucketName

I can work on this one


⚠ Bofrost.be has degraded performance

In 97ac137, Bofrost.be (https://www.bofrost.be) experienced degraded performance:

HTTP code: 200
Response time: 1512 ms

Resolved: Bofrost.be performance has improved in aef8d4f.


Large debug traces overflow JSON.stringify

When issuing debug_traceTransaction requests it's possible that the result is larger than the limits of what JSON.stringify can handle. You can see errors such as this when it occurs:
debug_traceTransaction
   > {
   >   "jsonrpc": "2.0",
   >   "method": "debug_traceTransaction",
   >   "params": [
   >     "0xbf2ff613a3fdaa6eb1090a7835c1f92bca31d8ed49128201b506504652d30331",
   >     {
   >       "disableStorage": true
   >     }
   >   ],
   >   "id": 352
   > }
(node:437911) UnhandledPromiseRejectionWarning: RangeError: Invalid string length
    at JSON.stringify (<anonymous>)
    at Object.a [as callback] (/home/jwu/.config/yarn/global/node_modules/ganache-cli/build/ganache-core.node.cli.js:42:14893)
    at e.engine.sendAsync (/home/jwu/.config/yarn/global/node_modules/ganache-cli/build/ganache-core.node.cli.js:42:15708)
    at /home/jwu/.config/yarn/global/node_modules/ganache-cli/build/ganache-core.node.cli.js:55:64767
    at /home/jwu/.config/yarn/global/node_modules/ganache-cli/build/ganache-core.node.cli.js:42:31564
    at p (/home/jwu/.config/yarn/global/node_modules/ganache-cli/build/ganache-core.node.cli.js:42:31221)
    at /home/jwu/.config/yarn/global/node_modules/ganache-cli/build/ganache-core.node.cli.js:42:31274
    at t.default (/home/jwu/.config/yarn/global/node_modules/ganache-cli/build/ganache-core.node.cli.js:55:166358)
    at /home/jwu/.config/yarn/global/node_modules/ganache-cli/build/ganache-core.node.cli.js:42:32188
    at Object.o [as callback] (/home/jwu/.config/yarn/global/node_modules/ganache-cli/build/ganache-core.node.cli.js:55:64608)
    at n (/home/jwu/.config/yarn/global/node_modules/ganache-cli/build/ganache-core.node.cli.js:55:212585)
    at /home/jwu/.config/yarn/global/node_modules/ganache-cli/build/ganache-core.node.cli.js:42:54514
    at N (/home/jwu/.config/yarn/global/node_modules/ganache-cli/build/ganache-core.node.cli.js:42:51818)
    at w.processBlock (/home/jwu/.config/yarn/global/node_modules/ganache-cli/build/ganache-core.node.cli.js:42:51971)
(node:437911) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 117)
(node:437911) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

Expected Behavior
Expected behavior is that the debug trace is properly returned
Current Behavior
See stacktrace above.
Possible Solution
Use a library to handle large JSON objects:
https://www.npmjs.com/package/big-json
https://www.npmjs.com/package/JSONStream <= this one is very popular but hasn't been updated in awhile, probably not necessary to update frequently for something like this.
https://www.npmjs.com/package/stream-json
Steps to Reproduce (for bugs)
Not sure if there are public contracts that cause this issue but I don't have any contracts that I can attach that do this already. Any sufficiently large gas transaction would cause this error I think.
Context
I am using eth-brownie and it uses debug_traceTransaction to produce test coverage reports. This is blocking me from getting a full test coverage report since some transactions will error out at this point.
Your Environment
ganache-cli --version
Ganache CLI v6.12.2 (ganache-core: 2.13.2)
node --version
v10.17.0
OS: linux

Let me know if this is something the team has run into before, I'm keen to get this fixed so happy to help.

Related to this issue: https://github.com/trufflesuite/ganache-core/issues/332


Output Variable Stopped Working in Templates

Hello,
I have a phase (YAML) generating an output variable that was picked up by another later phase. This was working when they were in the same .vsts-ci.yml file as part of that project's pipeline. I then extracted both of these phases out into templates for use across multiple pipelines. Upon doing so, the latter phase is no longer able to read the output of the first phase. Here's my working yaml blocks:
Phase setting an output variable
phases:
  - phase: Set_Pipeline_Start_Time
    queue: 'LocalPool'
    steps:
      - bash: |
          START_TIME=`date +'%s'`
          echo "Setting START_TIME to ${START_TIME}"
          echo "##vso[task.setvariable variable=START_TIME;isOutput=true]${START_TIME}"
        displayName: SetStartTime

Phase grabbing output variable from above
parameters:
  phaseDependsOn: []
  influxdbHost: http://influxdb

phases:
  - phase: Capture_Pipeline_Duration
    queue: 'LocalPool'
    condition: succeededOrFailed()
    dependsOn:
      - ${{ parameters.phaseDependsOn }}
    variables:
      START_TIME: $[ dependencies.Set_Pipeline_Start_Time.outputs['SetStartTime.START_TIME'] ]
    steps:
      - bash: |
          set -e
          STOP_TIME=`date +'%s'`
          echo "START_TIME is: ${START_TIME}"
          DURATION=$[$STOP_TIME - $START_TIME]
          echo "Total build duration is: $DURATION"
          curl -i -XPOST "${INFLUX_HOST}" --data-binary "duration,agent=${AGENT_NAME},project=${BUILD_DEFINITIONNAME} value=${DURATION},buildId=${BUILD_BUILDID}"
        displayName: 'Track Build Duration'

Phase template declarations in pipeline
...
phases:
  - template: set-pipeline-start.yml@pipeline-common
  ...
  - template: capture-pipeline-duration.yml@pipeline-common
    parameters:
      phaseDependsOn:
        - Build
        - Set_Pipeline_Start_Time
        - Test
        - Integration_Test
        - User_Acceptance_Test

Build Log Output
2018-12-20T18:04:36.6361660Z ##[section]Starting: Track Build Duration
2018-12-20T18:04:36.6364950Z ==============================================================================
2018-12-20T18:04:36.6365010Z Task         : Bash
2018-12-20T18:04:36.6365050Z Description  : Run a Bash script on macOS, Linux, or Windows
2018-12-20T18:04:36.6365090Z Version      : 3.142.2
2018-12-20T18:04:36.6365120Z Author       : Microsoft Corporation
2018-12-20T18:04:36.6365180Z Help         : [More Information](https://go.microsoft.com/fwlink/?LinkID=613738)
2018-12-20T18:04:36.6365220Z ==============================================================================
2018-12-20T18:04:36.7853940Z Generating script.
2018-12-20T18:04:36.7899650Z [command]/bin/bash --noprofile --norc /Users/dev1/workspace/_temp/d7051eb3-1efa-4211-b706-f416d7fd12b0.sh
2018-12-20T18:04:36.7998000Z START_TIME is:
2018-12-20T18:04:36.8002680Z Total build duration is:
2018-12-20T18:04:36.8005720Z /Users/dev1/workspace/_temp/d7051eb3-1efa-4211-b706-f416d7fd12b0.sh: line 6:<PHONE_NUMBER> - : syntax error: operand expected (error token is " ")
2018-12-20T18:04:36.8085460Z   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
2018-12-20T18:04:36.8087210Z                                  Dload  Upload   Total   Spent    Left  Speed
2018-12-20T18:04:36.8087800Z
2018-12-20T18:04:36.8415520Z   0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
2018-12-20T18:04:36.8416560Z 100   214  100   133  100    81   4007   2440 --:--:-- --:--:-- --:--:--  4030
2018-12-20T18:04:36.8416630Z HTTP/1.1 400 Bad Request
2018-12-20T18:04:36.8417070Z Content-Type: application/json
2018-12-20T18:04:36.8417850Z Request-Id: b663c028-0481-11e9-a902-0242ac120002
2018-12-20T18:04:36.8418350Z X-Influxdb-Build: OSS
2018-12-20T18:04:36.8419100Z X-Influxdb-Error: unable to parse 'duration,agent=build2,project=My-Project value=,buildId=234234': missing field value
2018-12-20T18:04:36.8419700Z X-Influxdb-Version: 1.7.1
2018-12-20T18:04:36.8420390Z X-Request-Id: b663c028-0481-11e9-a902-0242ac120002
2018-12-20T18:04:36.8420580Z Date: Thu, 20 Dec 2018 18:04:36 GMT
2018-12-20T18:04:36.8421180Z Content-Length: 133
2018-12-20T18:04:36.8421220Z
2018-12-20T18:04:36.8422020Z {"error":"unable to parse 'duration,agent=build2,project=My-Project value=,buildId=234234': missing field value"}
2018-12-20T18:04:36.8552700Z ##[section]Finishing: Track Build Duration

As you can see the $START_TIME var does not get populated anymore and causes the $DURATION var to be null. Please advise.

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

ID: dd7e0bd3-1f7d-d7b6-cc72-5ef63c31b46a
Version Independent ID: dae87abd-b73d-9120-bcdb-6097d4b40f2a
Content: Pipeline variables - Azure Pipelines
Content Source: docs/pipelines/process/variables.md
Product: devops
GitHub Login: @andyjlewis
Microsoft Alias: alewis

Found the problem, looks like I managed to drop the name: SetStartTime key pair when it moved into a template, thus losing the full reference path to the variable.


Handle leading-tick syntax for promoted data-kind constructors.

Fixes issue #593.

I just noticed that pull request #558 also has a fix for the same problem.


CMake: Use FetchContent instead of ExternalProject for vendored gtest

FetchContent is the newer and better way of importing external code.
This also fixes a dependency issue with the old ExternalProject rules, where the gtest_byproducts were not set up correctly.
Bumped the minimum required CMake version to enable FetchContent_MakeAvailable. Looking at a range of distros, almost everything ships 3.20+ at this point anyway: https://pkgs.org/download/cmake

Huh maybe you're right. I've been using for my own local development for a while but it seems to work without too now. I guess my distro updated gtest underneath me.


feat: stream write to zip directly

PR Details

Reduce the memory cost when saving file.
Description

If options has set password, the process will write to buffer in memory. Or it will write directly to the file.
Related Issue

Motivation and Context

How Has This Been Tested

Types of changes

[x] New feature (non-breaking change which adds functionality)

Checklist

[x] My code follows the code style of this project.
[x] I have read the CONTRIBUTING document.

Codecov Report

Merging #863 (490b1ed) into master (2cfcf9e) will decrease coverage by 0.05%.
The diff coverage is 51.51%.

@@            Coverage Diff             @@
##           master     #863      +/-   ##
==========================================
- Coverage   97.45%   97.40%   -0.06%
==========================================
  Files          31       31
  Lines       10891    10902      +11
==========================================
+ Hits        10614    10619       +5
- Misses        155      159       +4
- Partials      122      124       +2

Flag
Coverage Δ

unittests
97.40% <51.51%> (-0.06%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

file.go
78.21% <51.51%> (-4.01%)
:arrow_down:

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 2cfcf9e...490b1ed. Read the comment docs.

Hi @zhangzitao, thanks for your PR! Could you add a test to cover the change?

LGTM, thank you.


New Created Subnet unable connect to Internet

Hi,
I was successfully created new subnet subnet-gateway under default VPC (ovn-cluster). The manifest like:
apiVersion: kubeovn.io/v1
kind: Subnet
metadata:
  name: subnet-gateway
spec:
  protocol: IPv4
  default: false
  namespaces:
  - default
  cidrBlock: <IP_ADDRESS>/16
  gateway: <IP_ADDRESS>
  excludeIps:
  - <IP_ADDRESS>
  private: true
  allowSubnets:
  - <IP_ADDRESS>/16
  - <IP_ADDRESS>/16
  gatewayType: distributed
  natOutgoing: false

when I run kubectl get subnet the results is:
NAME             PROVIDER   VPC           PROTOCOL   CIDR            PRIVATE   NAT     DEFAULT   GATEWAYTYPE   V4USED   V4AVAILABLE   V6USED   V6AVAILABLE   EXCLUDEIPS
join             ovn        ovn-cluster   IPv4       <IP_ADDRESS>/16   false     false   false     distributed   1        65532         0        0             ["<IP_ADDRESS>"]
ovn-default      ovn        ovn-cluster   IPv4       <IP_ADDRESS>/16     false     true    true      distributed   24       65509         0        0             ["<IP_ADDRESS>"]
subnet-gateway   ovn        ovn-cluster   IPv4       <IP_ADDRESS>/16    true      false   false     distributed   1        65532         0        0             ["<IP_ADDRESS>"]

When I create a new pod under default namespace, the pod has correct IP, which is <IP_ADDRESS>. The problem is, I'm not able to make a request to internet from within the pod. But, when I create a pod under default subnet (ovn-default) everything works as expected.
Any ide, where I did some wrong?

You can try to set spec.private to false.

thx @zhangzujian it works 👍


Add etcd backup/restore to Rancher API

Rancher versions:
rancher/rancher: 2.02
RKE has the option to create regular etcd-backups. Like in Rancher1.x this option needs to be available via ui if creating a custom cluster.
regards,
strowi

This is probably a high priority issue. So far I have given the following workaround:
root@massimo-server:~# docker container inspect etcd
        "Mounts": [
            {
                "Type": "bind",
                "Source": "/var/lib/etcd",
                "Destination": "/var/lib/rancher/etcd",
                "Mode": "z",
                "RW": true,
                "Propagation": "rprivate"
            },
            {
                "Type": "bind",
                "Source": "/etc/kubernetes",
                "Destination": "/etc/kubernetes",
                "Mode": "z",
                "RW": true,
                "Propagation": "rprivate"
            }

rancher-server (1st etcd node)
root@massimo-server:~# docker container ls | grep etcd
b1104ede768f        rancher/coreos-etcd:v3.2.18                                                                                "/usr/local/bin/et..."   2 minutes ago       Up 2 minutes                                                   etcd

root@massimo-server:~# docker container exec --interactive --tty etcd sh
/ # mkdir -p /etc/kubernetes/snapshots

/ # etcdctl snapshot save /etc/kubernetes/snapshots/massimo-server-etcd-snapshot-2018-08-27-16-20-27
Snapshot saved at /etc/kubernetes/snapshots/massimo-server-etcd-snapshot-2018-08-27-16-20-27

/ # etcdctl --write-out=table snapshot status /etc/kubernetes/snapshots/massimo-server-etcd-snapshot-2018-08-27-16-20-27
+----------+----------+------------+------------+
|   HASH   | REVISION | TOTAL KEYS | TOTAL SIZE |
+----------+----------+------------+------------+
| f5a2b2bf |     2821 |       1562 |     4.7 MB |
+----------+----------+------------+------------+

/ # exit
root@massimo-server:~# cd /etc/kubernetes/snapshots/

root@massimo-server:/etc/kubernetes/snapshots# ls -l
total 4552
-rw-r--r-- 1 root root 4657184 Aug 27 16:21 massimo-server-etcd-snapshot-2018-08-27-16-20-27

It would be nice to not have to use the workaround mentioned above but instead add the option in the UI.

@massimo-cannavo I take it that you need to install etcdctl onto one of the master nodes to get this to work?

@martcastaldo no you should not need to install anything. Inside of the etcd container the etcdctl binary should be available.

Also when designing restore api, think about restoring from external link as an option

Link to https://github.com/rancher/rke/issues/705 and https://github.com/rancher/rancher/issues/16123#issuecomment-430469984
In term of backup and restore, if there is an option to change server-url in restore time that would be great

Agree with @loganhz.  On premise infrastructure which may not able automate everything. Sometime applications  have  dependency to firewall  rules which not be changed easily. For worker node, it may have NAT IP in firewall VPN between two parties. So the idea case is backup, change server-url  and restore only master then upgrade new master with different version. If everything is ok, move 1 worker node at a time to new master  or back to old master.  (Cleanup worker before moving between new and old master is a manual step and not well documented :(  )

@massimo-cannavo How were you able to restore from this snapshot?
I have a similar process but the recovery fails, provided some more info in #16574

Take a look at this: https://github.com/Salalem/rancher-s3-backup

Hi. I have a cluster in which the etcd+control plane server changed ip and I need to create a new server and then restore the etcd.
I managed to backup the etcd using the method described by @massimo-cannavo but now I'm not sure how to restore that file.
Has anyone successfully restored an etcd backup within the rancher/coreos-etcd:v3.1.12 container?


Only the state overlay is rendered

So, when I try loading up a schematic I only see where the blocks are supposed to go, not the blocks that im supposed to place. Please Help
Example: http://imgur.com/Ly4IBgR

Could you try loading a smaller schematic? Could you alto test with Forge, LunatriusCore and Schematica only?

This is actually a duplicate of #189


Debugger in dist files

It looks like this commit added several debugger statements to the built files. https://github.com/vuejs/vue-test-utils/commit/71d2c6b73e7738e99654f731207b79a1fd1c207f
Was that intentional? It's weird to get caught in these debuggers when trying to debug my own code.
Thank you for building this great tool!

The debuggers removed at #247 .
This change is not released.

No, sorry, that was unintentional.
I'm going to add a linting rule to catch debugger statements, and release beta.8 today

Released in 1.0.0-beta.8

Thanks for addressing this so quickly!


MacOS build might be easy to achieve

Hi!
I'm trying to build Vulkan-glTF-PBR on MacOS, and, although you are not listing the Mac as a supported platform, I think the build should be quite easy to achieve. I just installed the Vulkan SDK on my Mac, and set all the environment variables. When invoking cmake with Vulkan-glTF-PBR it successfully detects the SDK, as well as the draco compression (which I built in advance as you suggest in the docs.
I tried to tweak CMakeLists.txt (adding -DVK_USE_PLATFORM_MACOS_MVK and removing the xcb dependency within the USE_D2D_WSI block, which is the block that is being executed on my Mac), and then added a VK_USE_PLATFORM_MACOS_MVK block to main.cpp, but then of course the build fails anyway, because the Mac platform is not implemented in the VulkanExample class. I looked at your Vulkan demos repository, and it does support the Mac, and you have a more complete VulkanExample class there, but I guess it's not a matter of just copying a couple of files, or maybe is it?

Bummer... just tried to build your Vulkan samples repository, and found that the MacOS build isn't done with CMake, but with Xcode. I always avoid Xcode (I have it installed, but avoid it completely, as I'm Terminal-only for development), so I'm pausing building your code for the moment, because I guess I'll need to do some modifications in order to build with CMake. Anyway, I'm going to start a ticket in your samples repo, just in case anybody has a custom CMake build already.

This is an old post, but I would like to build this sample for macOS also. I expect to encounter issues with latest Vulkan, as I did with the main samples library, but I hit weird errors prior to that.
Has anyone here managed to build this sample since this post back in 2019?
It is a very exciting sample. I'm trying to load the Amazon Lumberyard Bistro scene after converting it to glTF 2.0 in Blender from FBX. Any and all advice welcome. Here's where the build dies for me at the moment:
-- The C compiler identification is AppleClang <IP_ADDRESS>60021
-- The CXX compiler identification is AppleClang <IP_ADDRESS>60021
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Using module to find Vulkan
-- Found Vulkan: /usr/local/lib/libvulkan.dylib (found version "1.3.216")
-- /usr/local/lib/libvulkan.dylib
-- Configuring done
-- Generating done
-- Build files have been written to: /Users/rolfhunt/Development/Azure/mobeus/github/Vulkan-glTF-PBR/build
(base) rolfhunt@Rolfs-MBP build % cmake --build .
[ 10%] Building CXX object base/CMakeFiles/base.dir/__/external/imgui/imgui.cpp.o
[ 20%] Building CXX object base/CMakeFiles/base.dir/__/external/imgui/imgui_demo.cpp.o
[ 30%] Building CXX object base/CMakeFiles/base.dir/__/external/imgui/imgui_draw.cpp.o
[ 40%] Building CXX object base/CMakeFiles/base.dir/__/external/imgui/imgui_widgets.cpp.o
[ 50%] Building CXX object base/CMakeFiles/base.dir/VulkanAndroid.cpp.o
[ 60%] Building CXX object base/CMakeFiles/base.dir/VulkanExampleBase.cpp.o
[ 70%] Building CXX object base/CMakeFiles/base.dir/VulkanglTFModel.cpp.o
/Users/rolfhunt/Development/Azure/mobeus/github/Vulkan-glTF-PBR/base/VulkanglTFModel.cpp:9:9: warning: #pragma once in main file [-Wpragma-once-outside-header]
#pragma once
        ^
/Users/rolfhunt/Development/Azure/mobeus/github/Vulkan-glTF-PBR/base/VulkanglTFModel.cpp:742:2: warning: non-void function does not return a value in all control paths [-Wreturn-type]
        }
        ^
/Users/rolfhunt/Development/Azure/mobeus/github/Vulkan-glTF-PBR/base/VulkanglTFModel.cpp:760:2: warning: non-void function does not return a value in all control paths [-Wreturn-type]
        }
        ^
3 warnings generated.
[ 80%] Linking CXX static library libbase.a
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: libbase.a(VulkanAndroid.cpp.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: libbase.a(VulkanAndroid.cpp.o) has no symbols
[ 80%] Built target base
[ 90%] Building CXX object src/CMakeFiles/Vulkan-glTF-PBR.dir/main.cpp.o
[100%] Linking CXX executable ../bin/Vulkan-glTF-PBR
CMakeFiles/Vulkan-glTF-PBR.dir/main.cpp.o:1:1: error: source file is not valid UTF-8
<CF><FA><ED><FE><U+0007><U+0000><U+0000><U+0001><U+0003><U+0000><U+0000><U+0000><U+0001><U+0000><U+0000><U+0000><U+0005><U+0000><U+0000><U+0000><E8><U+0004><U+0000><U+0000><U+0000> <U+0000><U+0000><U+0000><U+0000><U+0000><U+0000><U+0019><U+0000><U+0000><U+0000>X<U+0004><U+0000><U+0000><U+0000><U+0000><U+0000><U+0000><U+0000><U+0000><U+0000><U+0000><U+0000><U+0000><U+0000><U+0000><U+0000><U+0000><U+0000><U+0000><U+0000><U+0000><U+0000><U+0000><U+0000><U+0000><U+0000><U+0000><D0>F<U+0008><U+0000><U+0000><U+0000><U+0000><U+0000><U+0008><U+0005><U+0000><U+0000><U+0000><U+0000><U+0000><U+0000><C8>F<U+0008><U+0000><U+0000><U+0000><U+0000><U+0000><U+0007><U+0000><U+0000><U+0000><U+0007>
^
[Lots and lot of errors that are similar deleted...]

@SaschaWillems I fixed the macOS build issues and sent you a PR. Please have a look when you can and see what you think.

This issue can be closed. After PR, code build fine on macOS.


MM-46539 : E2E | Webapp |  Fix cypress tests | Self hosted pricing modal

Fixes tests

enterprise/cloud/billing/self_hosted_pricing_modal_spec.js
enterprise/cloud/billing/subscriptions_free_trial_spec.js
enterprise/cloud/billing/company_information_free_trial_spec.js

Ticket Link
Fixes https://mattermost.atlassian.net/browse/MM-46539
NONE

Hi @yasserfaraazkhan lmk when it's out of drafts

/e2e-test

/e2e-test INCLUDE_FILE="enterprise/cloud/billing/**"

Triggering e2e testing with options:
&map[INCLUDE_FILE:enterprise/cloud/billing/**]

Successfully triggered e2e testing!
https://git.internal.mattermost.com/qa/cypress-ui-automation/-/pipelines/240416


Add link to proposal to header field.

Adds the missing proposal link to the  Proposal header field.
At present, this keeps the proposal from parsing correctly and appearing on the evolution dashboard.

Thanks!

Thank you!


Types incompatible with Vue 3.4.0+

With Vue 3.4.0 and higher there is a type issue for the plugin in the main.ts.
Argument of type '[]' is not assignable to parameter of type 'never'.ts(2345)
at app.use(Vue3TouchEvents);
I just tried to find a fix for a while, but I'm neither a TS wizard nor do I have any experience with creating Vue plugins, so help is appreciated.

Until the types are fixed you can temporarily sort this by passing a type parameter: app.use<[]>(Vue3TouchEvents);

Thanks, works like a charm!

@stefan-hoelzl  is this correct? https://github.com/robinrodricks/vue3-touch-events?tab=readme-ov-file#typescript-vue-34

This works, thanks!
I wanna emphasize though, that you need to specify an options object, even if you are not passing any options to it, otherwise you still get a Typescript error.
Not working:
app.use<Vue3TouchEventsOptions>(Vue3TouchEvents)
Working:
app.use<Vue3TouchEventsOptions>(Vue3TouchEvents, {})
Maybe worth noting in the read.me @robinrodricks
Other than that this is resolved and I will close.


Add draft JNI adaptor for jpegli encoder

This is causing failing coverage tests, for instance here:
https://github.com/libjxl/libjxl/actions/runs/10457103722/job/28960940495


type: File not validating in certain contexts

I've got a couple of routes that accept file uploads, one that is passed in a create action and one that is passed in an update action. The create action works fine, but the update action fails validation:
The create action:
module Octopub
  module Datasets
    class Create < Grape::API

      desc 'Creates a dataset for an authenticated user. Returns a Job URL, which you can then poll to check the creation status of a job'
      params do
        requires :dataset, type: Hash do
          requires :name, type: String, desc: 'The name of the dataset'
          optional :description, type: String, desc: 'A short description of the dataset'
          optional :owner, type: String, desc: 'The Github organisation to publish the dataset to'
          optional :publisher_name, type: String, desc: 'The name of the person / organisation publishing the data'
          optional :publisher_url, type: String, desc: 'The website of the person / organisation publishing the data'
          requires :license, type: String, desc: 'The ID of the dataset\'s license', values: ["cc-by", "cc-by-sa", "cc0", "OGL-UK-3.0", "odc-by", "odc-pddl"]
          optional :frequency, type: String, desc: 'How freqently the dataset is updated', values: ['One-off', 'Annual', 'Every working day', 'Daily', 'Monthly', 'Every minute', 'Every quarter', 'Half yearly', 'Weekly']
          optional :schema, type: String, desc: 'The URL of a JSON table schema to validate against your file(s)'
        end
        requires :files, type: Array do
          requires :title, type: String, desc: 'The name of the file'
          optional :description, type: String, desc: 'A short description of the file'
          requires :file, type: File, desc: 'The actual file'
        end
      end
      post :datasets do
        authenticate!
        process_files(params["files"])
        job = CreateDataset.perform_async(params["dataset"], params["files"], current_user.id)

        {
          job_url: api_jobs_path(id: job)
        }
      end

    end
  end
end

The update action
module Octopub
  module Datasets
    class Update < Grape::API

      before do
        authenticate!
        find_dataset
        process_files(params.files) if params.files
      end

      namespace :datasets do
        namespace ':id' do
          desc 'Adds a file or files to an existing dataset'
          params do
            requires :id, type: Integer, desc: 'The ID of the dataset'
            requires :files, type: Array do
              requires :title, type: String, desc: 'The name of the file'
              requires :description, type: String, desc: 'A short description of the file'
              requires :file, type: File, desc: 'The actual file' # This fails validation
            end
          end
          post :files do
            job =<EMAIL_ADDRESS>current_user.id, {}, params["files"])

            status 202
            {
              job_url: api_jobs_path(id: job)
            }
          end
        end
      end

    end
  end
end

Here's a spec for the update action:
  it 'creates a new file' do
    filename = 'test-data.csv'
    path = File.join(Rails.root, 'spec', 'fixtures', filename)

    post<EMAIL_ADDRESS>{
      files: [
        {
          :title => 'My single file',
          :description => 'My super descriptive description',
          :file => fixture_file_upload(path)
        }
      ],
    },
    {
      'Authorization' => "Token<EMAIL_ADDRESS>    }

    json = JSON.parse(response.body)

    expect(json['job_url']).to match /\/api\/jobs\/(.+)\.json/ # response is actually "files[0][file] is invalid
    expect(response.code).to eq("202") # response code is 400
  end

If I remove type: File, everything works as expected.
Any ideas?

Wait. Hang on, I've just realised what the issue is. I have a method called process_files that gets called in a before filter that uploads the files to S3 and changes the file to a string containing the URL of the uploaded file (so I can pass it to Sidekiq). Is it therefore the case that validation happens after the before filter? Is there anything I can do to push the validation further up in the process?

You can move your code into an after_validation block.
I'll close this. Please use the Grape mailing list for questions.


Use crcmod consistency, bump version to v0.6.1

To allow provisioning of composite GCS objects, switch consistency check to crc32c. This requires gcsfs>=0.7.2 as well as the crc extra.
Since this is a small change, I did an fv3config version bump with the PR.
Resolves #124

I'm not sure why jenkins is failing. It looks like it succeeded? @ofuhrer?

Poor Jenkins seems to trip on validate_http_response on the GCP instances, see also... https://jenkins.ginko.ch/job/fv3config_PR/slave=gce-cpu/82/console
Does that ring a 🔔? I've relaunched in the meantime just to see if this was a hicups...

launch jenkins


[ms-gsl] update to 2017-12-04

This fixes the errors resulting from the update to VS15.5, which implements P0174R2 in the STL.
Additionally, I've simplified the portfile a bit, while maintaining the behaviour.
By removing the superfluous pattern matching, and replacing the copy operation with an install.
Copy has no advantage here due to the subsequent rename.

Thanks! BTW, the only other difference of COPY vs INSTALL is that COPY is silent, whereas INSTALL prints out the files it copies.


[SPARK] migrate RddExecutionContext to PlanUtils

Problem
Input and output dataset are not properly recognised.
Follow-up of #2037
Solution

RddExecutionContext uses some old logic to extract URI from Rdds. This logic for Sql context was rewritten into PlanUtils method and supports more scenario (like FilescanRdd).
As a solution, we modify RddExecutionContext class to make use of the PlanUtils.

Note: All schema changes require discussion. Please link the issue for context.

[ ] Your change modifies the core OpenLineage model
[ ] Your change modifies one or more OpenLineage facets

If you're contributing a new integration, please specify the scope of the integration and how/where it has been tested (e.g., Apache Spark integration supports S3 and GCS filesystem operations, tested with AWS EMR).
One-line summary:
Checklist

[ ] You've signed-off your work
[ ] Your pull request title follows our guidelines
[ ] Your changes are accompanied by tests (if relevant)
[ ] Your change contains a small diff and is self-contained
[ ] You've updated any relevant documentation (if relevant)
[ ] Your comment includes a one-liner for the changelog about the specific purpose of the change (if necessary)
[ ] You've versioned the core OpenLineage model or facets according to SchemaVer (if relevant)
[ ] You've added a header to source files (if relevant)

SPDX-License-Identifier: Apache-2.0
Copyright 2018-2023 contributors to the OpenLineage project

Codecov Report

Merging #2181 (ed48273) into main (8651894) will decrease coverage by 17.71%.
The diff coverage is n/a.

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
@@              Coverage Diff              @@
##               main    #2181       +/-   ##
=============================================
- Coverage     80.98%   63.28%   -17.71%
  Complexity      125      125
=============================================
  Files            90       31       -59
  Lines          3792      463     -3329
  Branches         33       33
=============================================
- Hits           3071      293     -2778
+ Misses          682      131      -551
  Partials         39       39

see 59 files with indirect coverage changes
:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


Array#take

We presently have a Enumerable#take_while to get methods from an enumerator (an array) which satisfy a condition. In ruby we have a .take method which would return the first x elements, I feel that is a good feature to have for an enumerator.
Helpful while working with an infinite series. If this is a welcomed addition I would love to work on the PR.

Crystal provides this as Enumerable#first, which Ruby also provides as an alias to first.


Farming fairies doesn't plant correctly melon seeds

The fairies plant the melon seeds anywhere, they should plant melon near free farmlands so the melon (fruit) can grow from the vine

Heh - yeah. Changes to the various AI behaviors will definitely need to happen, but are not going to come in the 1.7 version. The AI system will necessarily be completely rewritten for the 1.10 port.


Is it possible to delete public promptfoo result?

Is your feature request related to a problem? Please describe.
Hi, I want to delete associated data and shareable url showing my promptfoo result after running following command
promptfoo share -y

It seems that url is something like https://app.promptfoo.dev/eval/f:{id}. Is it possible to delete this promptfoo result by myself ? After seeing official docs related to this topic, I cannot find how to delete associated data with the url.
Describe the solution you'd like
It will be great if there is any feature that I can delete my promptfoo result by myself.
Describe alternatives you've considered
NA
Additional context
NA

You can find more details here: https://www.promptfoo.dev/docs/usage/sharing/. Shared results are automatically deleted after 2 weeks. If you've shared something sensitive and need it removed sooner, feel free to reach out via DM in our discord, and we can manually delete it for you.

This has been handled

@mldangelo @typpo
thank you for handling this issue so quickly!


Is it possible to have multiple objective functions one for output of the network ant the others for the intermediate layers ?

I attempt to train a multi-objective network that includes one for label prediction of the output layer and two more for the intermediate layer's prediction like the GoogLenet. Is it viable with nolearn lasagne interface?

If these intermediate objectives use the same target, then this should be pretty straight forward.  Here's some sample code to get you started:
class MyObjective(Objective):
    def get_loss(self, input=None, target=None, deterministic=False, **kwargs):
        net_out, interm_out = get_output(
            [self.input_layer, self.layers['indermediate']],
            input, **kwargs
            )
        if target is None:
            target = self.target_var
        losses = self.loss_function(net_out, target) + self.loss_function(interm_out, target)
        return losses.mean()

Then, when instantiating NeuralNet, pass the parameter objective=MyObjective.
The code is untested, let me know if it has any issues, and I'll correct it here.  But it'll hopefully give you an idea.

So #124 was just merged which means that the class posted above will no longer work.  Instead, you should use something like this my_objective and pass it as the objective parameter:
def my_objective(layers,
                 loss_function,
                 target,
                 aggregate=aggregate,
                 deterministic=False,
                 get_output_kw=None):
    if get_output_kw is None:
        get_output_kw = {}
    net_out, interm_out = get_output(
        [layers[-1], layers['indermediate']],
        deterministic=deterministic,
        **get_output_kw
        )
    losses = loss_function(net_out, target) + loss_function(interm_out, target)
    return aggregate(losses)


unable to expand azure storage in explorer

Preflight Checklist

[X] I have installed the latest version of Storage Explorer.
[X] I have checked existing resources, including the troubleshooting guide and the release notes.
[X] I have searched for similar issues.

Storage Explorer Version
10.20.1
Regression From
No response
Architecture
i86
Storage Explorer Build Number
No response
Platform
All
OS Version
Windows server 2019
Bug Description
Unable to retrieve child resources
ProducerError:{
"name": "Node Fetch Error",
"message": "getaddrinfo ENOTFOUND stcazurefiles01.file.core.windows.net",
"stack": "Error: getaddrinfo ENOTFOUND stcazurefiles01.file.core.windows.net\n    at GetAddrInfoReqWrap.onlookup [as oncomplete] (node:dns:108:26)",
"cause": {
"cause": {
"errno": -3008,
"code": "ENOTFOUND",
"syscall": "getaddrinfo",
"hostname": "stcazurefiles01.file.core.windows.net"
}
},
"code": "ENOTFOUND",
"errno": -3008
}
Steps to Reproduce

Actual Experience

Expected Experience
No response
Additional Context
No response

Closing due to lack of response. This issue will no longer be monitored. If you need further help, we recommend opening a support ticket via the Azure portal. Alternatively you can open a new issue here.


Videos with & in the path don't play

There seems to be an issue with videos with odd paths.

I'm not sure this is actually true anymore.