Allow timeout configurability with Device code

Please follow the issue template below. Failure to do so will result in a delay in answering your question.
Library

msal-node

Description
Something that we'd like to be able to do is set a timeout for the device code credential so that once the timeout has been reached, we return control and can give an error to the user. It seems that some MSAL languages, like Python (https://github.com/Azure/azure-sdk-for-python/blob/master/sdk/identity/azure-identity/azure/identity/_credentials/device_code.py#L85-L88), are able to use these timeouts, and it'd be great to be able to set them from node also.

Thanks @jonathandturner for raising this. I think this is possible. Will update this space once the specifics are clear. Tracking this PR with node project.


Further tweaks to referee / referrer stats page

The Chore
A few observations on this referee stats view

And this referrer stats view

Tasks
Referee

[x] Combined volume >> "Combined set volume (last windowLength epochs)"
[x] Volume to next tier (3) >> I dont know what this 3 is .... guess its windowLength ... although now its 1 so maybe not ... I think just remove it
[x] Epochs to next tier (3) >> again dont know why the 3 is relevant.... again its now 1 ... remove it

Referrer

[x] Commission earned (last 3 epochs) >> This looks like its being taken from windowLength again which we didnt want

[ ] Change text to "Commission earned in qUSD (last 30 epochs)"
[ ] Check on the query on referralSetReferees ... ensure we're setting aggregationEpochs to 30
[x] Check on query for "Volume (last 3 epochs)" which should be setting aggregationDays to the windowLength
[x] Check that "Volume (last 3 epochs)" is sourcing that 3 from windowLength and not hard coding
[x] Add a tooltip on hover for the qUSD on the total commission and on the commission earned per referee that says "qUSD provides a rough USD equivalent of balances across all assets using the value of "Quantum" for that asset. Find out more"

Additional details / background info

Have split the last bit of this out into this ticket and will close this as done.


Not possible to create Nested Tabs- styles are getting messed up

Hi its pity but its not possible to set nested tabs.
The tabs styles mess up on a tab where I created nested tabs.

Hi there,
In what way do the styles mess up? I've tested it out and nested tabs work fine for me. There are some things to take into consideration though:

You should always change the id's of the tab panels for each to be unique
If you put the nested tab in a parent tab that is visible on initial load everything should work
However, if you nest a tab in a hidden parent panel, the css of the nested tab won't render everything correctly. This is the way rendering works in display: none elements, unfortunately I can't do anything about this. As of yet there is no 'refresh' method available which reloads the styling. However, you could force open the tab you want open on the nested tab with the activate method.


Use a different user-agent header for debug/test runs (#fix 1269)

so that the http requests for testing purposes can be filtered out in the statistics.
Feel free to edit the agent string itself if you don't like it :)

Codecov Report

Merging #1271 into master will decrease coverage by 0.51%.
The diff coverage is 80%.

@@            Coverage Diff             @@
##           master    #1271      +/-   ##
==========================================
- Coverage   93.42%   92.91%   -0.52%
==========================================
  Files          43       43
  Lines        4624     4697      +73
  Branches      511      804     +293
==========================================
+ Hits         4320     4364      +44
- Misses        304      310       +6
- Partials        0       23      +23

Impacted Files
Coverage Δ

browser/model/helpers/downloader.js
95.53% <ø> (-2.26%)
:arrow_down:

browser/services/request.js
97.61% <0%> (-2.39%)
:arrow_down:

browser/model/installable-item.js
92.8% <100%> (-0.6%)
:arrow_down:

browser/model/devstudio-autoinstall.js
97.29% <0%> (-2.71%)
:arrow_down:

browser/model/che.js
95% <0%> (-1.62%)
:arrow_down:

browser/pages/account/controller.js
98.61% <0%> (-1.39%)
:arrow_down:

browser/model/cdk.js
98.71% <0%> (-1.29%)
:arrow_down:

browser/model/devstudio-p2-zip.js
64.4% <0%> (-1.12%)
:arrow_down:

browser/model/devstudio-p2.js
81.66% <0%> (-1.1%)
:arrow_down:

... and 23 more

Continue to review full report at Codecov.

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

Updated the agent string. The build is red though, need to merge #1276 to fix that.

test this


[WIP] Support Connector without DNS

Split Connector into TcpConnector and DnsConnector

This PR builds on top of #43, so the diff also includes its changes. Look here for changes only related to this PR alone.
Fixes #12
Supersedes/closes #7

I consider this feature complete, though this is probably blocked until #43 is merged. As such, I've marked this WIP for now.
Any feedback is welcome! Perhaps this PR also helps to emphasize my motivation for the API used in #43/#45.

I've just updated this PR so that it no longer includes a BC break.

I've just rebased this on the current master now that #43 is in.
Ready for review :) Ping @WyriHaximus, @cboden

LGTM, this is a very welcome feature 👍

I've just updated this PR so that it no longer includes a BC break.

This currently does not break compatibility what's been documented in our README, however the public interface of the Connector class had to be changed. Should we consider this a BC break, i.e. should this be v0.4.5 or v0.5.0?

We might want to consider this a BC break as the publicly exposed API has changed. Also there are a ton of packages uses the class: http://packanalyst.com/class?q=React\SocketClient\Connector

We might want to consider this a BC break as the publicly exposed API has changed. Also there are a ton of packages uses the class:

For the reference, not a single one of the examples instantiating the Connector and calling its create() method is affected.
Only the two classes that extend the Connector and access its protected members would be affected.
I agree that we might want to play safe here and consider this a BC break nonetheless. The CHANGELOG should include some details that this doesn't affect most users though.
Also, I've just marked the internal APIs as such, so this doesn't happen again if we change the internal APIs.
:shipit: ? :)

A small typo, otherwise LGTM :shipit:

LGTM :shipit:


Failure on web client when using browserify + ws 1.1.0

I don't know what exactly the failure is; maybe it's because ws 1.1.0 doesn't include the client side anymore? Whatever the reason, trying to use angular-websocket 1.1.0 on the client side through browserify while ws 1.1.0 is installed on the server side doesn't work. Downgrading to angular-websocket 1.0.14 fixes it.

Same issue here, using webpack 1.13.1, seems like it will require ws anyway when require this module  using webpack. Then lots of NodeJS module cannot resolve error occurred after require ws.

after digging in the generated code (dist), the require('ws') is no longer wrapped in a if block, that why module bundler try to require ws module.
I will try to see how can it could be fixed

see https://github.com/AngularClass/angular-websocket/blob/master/dist/angular-websocket.js#L5


Ellipsoid fit for Mag Calibration

@vilhjalmur89 This should go into the codebase after testing.

Should we switch it over to matrix as well?

make px4fmu-v2_default fails with error:
/home/pixhawk/gcc-arm-none-eabi-5_4-2016q2/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/bin/ld: firmware_nuttx section .data' will not fit in region flash' /home/pixhawk/gcc-arm-none-eabi-5_4-2016q2/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/bin/ld: region flash' overflowed by 4508 bytes
It does work with v4 though.

@vilhjalmur89 px4fmu-v2 build uses only 1MB of flash due to issue in some of the older stm32f4s if you go beyond that much flash size, and this is the last drop. You can try disabling a module like uavcan to make it compile. Or if you are feeling lucky increase the size to 2M and try.

@bugobliterator Alright, now it builds but I get MAG 0 SELFTEST FAILED in QGC after calibration.
Also xmag, ymag and zmag are not centered around 0, so I guess the offset is wrong then?

@vilhjalmur89 what do you mean xmag, ymag and zmag not centred around zero? if you mean raw values xmag, ymag and zmag, they are not centred atleast not altogether, the Magnetometer vector value is somewhere in the range of 200-300 milligauss and is constant for particular region. Also is the compass you are calibrating external or internal, what is the result of the cal? Its possible that offsets generated are crossing the bar.

@bkueng Can you fix up and bring in? You can disable uavcan on FMUv2 if you run out of flash.

Seems to work now

I managed to get a negative scale for the first test:
nsh> param show CAL_MAG0*
Symbols: x = used, + = saved, * = unsaved
x + CAL_MAG0_ID [56,77] : 263176
x   CAL_MAG0_ROT [57,78] : -1
x + CAL_MAG0_XOFF [58,79] : 0.2845
x + CAL_MAG0_XSCALE [59,80] : 1.2412
x + CAL_MAG0_YOFF [60,81] : 0.0740
x + CAL_MAG0_YSCALE [61,82] : 1.2585
x + CAL_MAG0_ZOFF [62,83] : 0.3864
x + CAL_MAG0_ZSCALE [63,84] : -0.1070

Second time was ok:
nsh> param show CAL_MAG0*
Symbols: x = used, + = saved, * = unsaved
x + CAL_MAG0_ID [56,77] : 263176
x   CAL_MAG0_ROT [57,78] : -1
x + CAL_MAG0_XOFF [58,79] : 0.2471
x + CAL_MAG0_XSCALE [59,80] : 1.0817
x + CAL_MAG0_YOFF [60,81] : 0.1359
x + CAL_MAG0_YSCALE [61,82] : 0.9963
x + CAL_MAG0_ZOFF [62,83] : 0.2513
x + CAL_MAG0_ZSCALE [63,84] : 0.9080

Maybe my motion was just not accurate enough or the algorithm is not robust. Either way I think it should tell you.

@bkueng can you provide logs capturing the data in the first cal?

@bkueng the shown result could be obtained if the samples collected less then half of the ellipsoid, and ending up minimizing at paraboloid(the negative scale suggests that). The way to fix it would be to add methods that ensure proper coverage. Also to confirm if that was the case I need the data.

I didn't collect the data, but I can try to reproduce tomorrow and capture the sensor data.

Jenkins test this please.

Jenkins test this please.

@bugobliterator Didn't you refactor the matrix math to use the matrix lib? Are commits missing here?

@LorenzMeier why aren't we using Matrix here?

@mhkabir @bugobliterator is working on it. I believe the current issue was that he needed a return code for a failed inversion when passing it a singular matrix. Matrix just returns a matrix, so maybe we would have to add another matrix inversion call that returns a status for that use case.

Coverage remained the same at ?% when pulling 7ff92c4a25f2556516f9ad2e82825807d8076bb0 on bugobliterator-pr-ellipsoid-fit into 969c9ca7e8bf340bd8629bdf2711121bc2028c02 on master.


Add support for missing values in line items

Asana task
We need to support clearing values in the LineItem objects. For now, we have None value serving both as missing and empty value.

@Greyvend Please ping me as soon as you have made the changes we talked about, I'll do my best to review it promptly!

It turned out that we should include the full payload with the update requests, and only PUT operations are supported. Therefore, we don't have a problem of excluding some of the fields from the payload.
Here's the explanation:

A tool may update a line item definition by PUTting a complete definition of the line item to the line item URL endpoint. Note that this operation replaces the line item definition with the new, complete definition provided by the tool


DPL-112 Show tube QC data

Closes #903
Changes proposed in this pull request:

Display QC information on all tube pages if it's available.
Create calculation for transfer volumes if molarity is available and the purpose has other calculation parameters.
Display transfer volumes and a footnote if the transfer inputs are available.

Nice. Do we need to do an end to end run of the tapestation implementation on UAT before we pass it on to ops?

We definitely should be doing something, but I'm not sure I know all the ins and outs of the Tapestation workflow to know what to test end-to-end.

One possible improvement that I was thinking of but also didn't do is to extract the qc_results relationship and latest_x methods to a module that can be included in each of Well and Receptacle.  However I didn't think it was really worth it for a single instance of duplication as it adds complexity with very little gain.  Also, some of the latest_x methods simply wouldn't get used on tubes.

One possible improvement that I was thinking of but also didn't do is to extract the qc_results relationship and latest_x methods to a module that can be included in each of Well and Receptacle. However I didn't think it was really worth it for a single instance of duplication as it adds complexity with very little gain. Also, some of the latest_x methods simply wouldn't get used on tubes.

I think I probably would have gone for the module myself, but its not a strong preference.


Broken link in ja-JP/instructions/3-connect-vui-to-code.md

The link destination of "Alexa ユーザーとシステムユーザーを関連付ける" has a 404 error.
The current link is on top, but correctly is probably not the one below.
[current]
https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs/linking-an-alexa-user-with-a-user-in-your-system
[correct?]
https://developer.amazon.com/ja/docs/custom-skills/link-an-alexa-user-with-a-user-in-your-system.html

Thank you, we will make it updated.

the referenced link has been removed from the page, so problem solved.  Thanks for the feedback!


appendChild JS error

I get this in Chrome:

img_self must be undefined.  can you send me a link?  I will help you solve this.

It happens on https://stephenlb.github.io/webrtc-sdk/?number=597 when you click the green camera button
Tried an Ingonito window, got: https://stephenlb.github.io/webrtc-sdk/?number=505
same error
Chrome: 58.0.3029.110
Same in Chrome Canary:

Good find!  This will be fixed shortly.

This is fixed! - https://github.com/stephenlb/webrtc-sdk/commit/248c2cf80a69ed5c6fc99f8f37714d6c9ad8a46f


Hotfix: Once again, improve _revinclude performance on Cosmos DB

The initial fix for _revinclude suffered from a surprising behavior in the Cosmos DB SDK where the MaxConcurrency property is ignored when a query is provided with a continuation token. This resulted in sequential query execution after retrieving the first 10 out of the desired 100 include results.
This fix has two parts.

Ensures that we fill up 100 results (if available) from in the initial includes query without breaking and following a continuation.
Improves the efficiency of the include query.

For (2) the query goes from
SELECT r.id,r.isSystem,r.partitionKey,r.lastModified,r.rawResource,r.request,r.isDeleted,r.resourceId,r.resourceTypeName,r.isHistory,r.version,r._self,r._etag, r.searchParameterHash
FROM root r
WHERE r.isSystem = @param0
AND r.resourceTypeName = @param1
AND EXISTS (SELECT VALUE si FROM si IN r.searchIndices WHERE si.p = @param2 AND (si.rt = @param3 AND si.ri = @param4 OR si.rt = @param3 AND si.ri = @param5 OR si.rt = @param3 AND si.ri = @param6 OR si.rt = @param3 AND si.ri = @param7 OR si.rt = @param3 AND si.ri = @param8 OR si.rt = @param3 AND si.ri = @param9 OR si.rt = @param3 AND si.ri = @param10 OR si.rt = @param3 AND si.ri = @param11 OR si.rt = @param3 AND si.ri = @param12 OR si.rt = @param3 AND si.ri = @param13))
AND r.isHistory = @param0
AND r.isDeleted = @param0

to
SELECT r.id,r.isSystem,r.partitionKey,r.lastModified,r.rawResource,r.request,r.isDeleted,r.resourceId,r.resourceTypeName,r.isHistory,r.version,r._self,r._etag, r.searchParameterHash
FROM root r
WHERE r.isSystem = @param0
AND r.resourceTypeName = @param1
AND EXISTS (SELECT VALUE si FROM si IN r.searchIndices WHERE si.p = @param2 AND (si.rt = @param3 AND (si.ri = @param4 OR si.ri = @param5 OR si.ri = @param6 OR si.ri = @param7 OR si.ri = @param8 OR si.ri = @param9 OR si.ri = @param10 OR si.ri = @param11 OR si.ri = @param12 OR si.ri = @param13)))
AND r.isHistory = @param0
AND r.isDeleted = @param0

Here is a performance comparison on a database with 10 physical partitions:

includes query RU consumed
includes query sequential calls

original
419
9

with (1)
231
1

with (1) and (2)
62
1

@johnstairs can you also create a branch off main with any changes from this hotfix branch we need. I think is going to be cleaner given its age


Convert img

Description
Convert all images to Next/image
The purpose of this pr is to convert images that's using html img tag to next/image component.
Converted:

Canada flag image on header, footer, and landing page
Link icon on the title of the projects cards
Error pages (404, 500, notsupported, error)
Info image on thankyou page
Green checkmark image on confirmation page

Not converted:

Phasebanner
Call to action
Menu

Icon on the phase banner and call to action banner are used for the feedback widget. I did not convert it since we are not working on the feedback widget anymore. There is a menu icon on the Menu on mobile, didn't touch this because the re-design is getting rid of the menu.
Test Instructions
Check the converted images, makes sure the images displays correctly.
Checklist

[ ] Strings use placeholders for translation (No hard coded strings)
[ ] Unit tests have been added/updated
[ ] Update CHANGELOG

Product and Sprint Backlog
Jira

Footer looks great on regular pages, /404, /500 and /notsupported footer look good now but /error looks like the below. All 3 pages still have some horizontal and vertical scroll for some reason. Also not to be nitpicking, but the gov of canada image in the header on the error pages is much smaller compared to on our dev site (see https://alphasite.dts-stn.com/notsupported)

Nice catch on the header image. The image got cut out when use objectFit="cover" on Image component so I got rid of it. I'm not sure about the horizontal and vertical scroll, I don't see it on my end, what browser are you on?


Use socks instead of tproxy for tor

Thanks for the tip @dominictarr

looks good, what do I need to do to test this?

For testing see this post:
https://github.com/ssbc/secret-stack/pull/10

Also I only converted plugins and not protocol. What is the difference between protocol and plugins? Just so I know how to test it once its converted.


Very long runtime

The current implementation has a very long runtime. Profiling shows that the program spends most of it's time in phasing.py::get_haplotypes. The majority of the time is spent retrieving values from the sparse matrix using indices.
Possible solutions are to change the data representation (move to a different type of matrix) or use a more efficient method for iteration.

Runtime is now about 3 hours for a whole-genome VCF. While this still slow, it is acceptable. Closing.


feat: test case update in helloworld

@ErikSchierboom Can you review?

@ErikSchierboom Okay, so what are we supposed to do now, is that it, are we now going to publish the programming language on the page?

Waiting for Tuesday for a reply.

@ErikSchierboom Okay, so what are we supposed to do now, is that it, are we now going to publish the programming language on the page?

Not yet, there's still things to do before we'll do that. See https://github.com/exercism/batch/issues/1 for an overview. The most important part is to add (at least) 20 exercises.

Ah, this is really going to be a bit of a challenge, 20 exercises won't come out all at once, but I'll try to get them all out.

That is perfectly fine, there is no rush. You could always ask for help on the forum.

That is perfectly fine, there is no rush. You could always ask for help on the forum.

Thanks you, I'll.


[AutoPR imagebuilder/resource-manager] chore: jsonfmt imagebuilder

Created to sync https://github.com/Azure/azure-rest-api-specs/pull/6115

(message created by the CI based on PR content)


DNS Resolver - Honor etc/resolv.conf options timeout, rotate and attempts

/etc/resolv.conf options support timeout, rotate and attempts but the UnixResolverDnsServerAddressStreamProvider ignores these options.
These should be parsed and used accordingly to their documented behavior.

@fabienrenaud we love contributions :) So if you are interested maybe you want to provide a PR

PR: https://github.com/netty/netty/pull/10207


Remove --brief submission feature

Almost never used. Removed until further spec-ed out more thoughtfully.

Done!


feat(translator): implement backend API

What this PR does / why we need it:
Implements backend API

Support translation of fqdn, ip and unix endpoints in IR and XDS
Support H2C upstream application protocol hint
Support HTTPRoute and EnvoyExtensionPolicy references to Backend
Extend BackendTLSPolicy translation tests for HTTPRoute and Backend use cases
Minor refactor of test manifests and translation to increase code reuse

Which issue(s) this PR fixes:
Fixes #2997
Relates to #36

/retest

/retest

/retest

IP:

API Changed from IPv4/IPv6 =>  IP for future use, as suggested
IPv6 still not supported and rejected in validation (CEL, Controller).
Validate that target is not in the entire loopback range, for both xRoute and non-xRoute

FQDN:

Fix CEL validation to not support wildcards
Add controller validation that FQDN is not an IP address and has at least two segments, for both xRoute and non-xRoute

This one is huge :-). It would be easier to review and quicker to merge if it could be split into multiple PRs.

This one is huge :-)
It would be easier to review and quicker to merge if it were split into multiple PRs.

I don’t mean this one, as it’s already under review, but in the future, it might be helpful to split large PRs into multiple smaller ones for easier and quicker reviews.


Git pull from ssh URL should prompt for password

Version: 1.34.0 (system setup)
Commit: a622c65b2c713c890fcf4fbf07cf34049d5fe758
Date: 2019-05-15T21:59:37.030Z
Electron: 3.1.8
Chrome: 66.0.3359.181
Node.js: 10.2.0
V8: 6.6.346.32
OS: Windows_NT x64 6.1.7601
When I do git pull using UI option from my ssh URL it shows the below error.

However, when I do from the terminal it shows that message from the server and asks for the password,

So, while doing git pull using git pull option from menu it should prompt like this -

#13680


Converting MUI based wrappers to Shadcn/ui

This ticket covers the effort to switch all platform-bible-react wrappers based on MUI to its Shadcn/ui equivalent.
Unchecked - not started
In progress - development
In review - PR
Checked - merged into main

[ ] Button to Shadcn Button (in progress)
[ ] Checkbox to Shadcn Checkbox
[ ] Combobox to Shadcn Combobox
[ ] IconButton to Shadcn Button with ability to add a lucide-react icon
[ ] Slider to Shadcn Slider
[ ] Snackbar to Shadcn Toast
[ ] Switch to Shadcn Switch
[ ] TextField to Shadcn Input (in progress)

I found another interesting table library from shadcn - https://github.com/sadmann7/shadcn-table
However, I hesitate because it seems you might have to copy and paste a bunch of their code in specific places. I don't want to get stuck in a never-ending copypasta death spiral. I looked at this repo for about 20 seconds after seeing the name and description, but the 20 seconds seemed to indicate maybe it's not for us. Just thought I'd post here in case anyone wants to look at it and sees potential in it!

@rolfheij-sil is looking into tables


Problem with the optional route name?

Consider:
$app->get(
    '/',
    function($request, $response) {
        echo "
Hello world
";
    }
);

There's no route name at the end, so mapRoute() will assign the last parameter to $name. It then works out that there's no callable, so assigns $name to $callable and then invents a new $name string. This works as expected.
Now consider:
$app->get(
    '/',
    function($request, $response, $next) {
        echo "
Route middleware functionality
";
        return $next($request, $response);
    },
    function($request, $response) {
        echo "
Hello world
";
    }
);

In this case, $name is the "Hello world" closure and $closure is the route middleware. This doesn't work. We get this error: Warning: Illegal offset type in Slim/Slim/Router.php on line 74.
In theory we could detect this by noticing that $name is a callable, but then this case doesn't work:
$app->get(
    '/',
    function($request, $response, $next) {
        echo "
Route middleware functionality
";
        return $next($request, $response);
    },
    'App\Controller\HomeController:home'
);

In this case, $name is now 'App\Controller\HomeController:home', & $callable is the route middleware closure.
I think the solution is to try and resolve $name to a callable using resolveCallable and if it turns into a closure, then rearrange stuff.
Clearly, this is why $name was a mandatory first parameter earlier in 3's dev cycle and why 2 has a separate name() method.
Thoughts?

This was why I had the name parameter as required in the earlier 3.x version. The easiest solution is to require a name argument (first or last). This may be a pain to some, but it does make you think about what you are building and it does give you the ability to use the urlFor() method later on.
We could restore the name() method on the Route object, but this exposes/leaks the Router's internal implementation. It's messy from an architectural pov, but it solves the problem. It does add a tiny amount of overhead when looking up a named route because we have to iterate over all routes and cache a lookup table from name to route... this only has to be done once on the first call to urlFor().
Thoughts?

I almost feel like making route middleware attach through a method would be a better solution? This would also mean the API would feel the same as adding an middleware to the app.
$app->get('/', 'HomeController:index')->add('Your Closure Here');

@akrabat What do you think about @silentworks' idea?

You didn't ask me, but I'm a big fan of that approach of adding route middleware. Changing what a method parameter does based on the number of params always felt flaky and hard to anticipate to me (jQuery does this a ton and I think it makes it harder to remember the APIs and anticipate behavior).

Where does the route name go?

@akrabat I assume using a method call like version 2.x does.
$app->get('/', 'HomeController:index')->setName('name');

i.e. is @silentworks's proposal:
$app->get($url, $callable)->add($routeMiddleware1)->add($routeMiddleware2)->name('my-name');

?

@akrabat Yes

Generally seems sane to me.
Let's see what other feedback we get.

@akrabat either that or keep it as third parameter, but as @funkatron said, remembering which param comes first isn't very predictable for first time users so creating a method call for each would be better.
I however wonder if there is a better way internally to do all this before passing over to the mapRoute method, as I don't like the idea of leaking the router implementation out as we did in Slim 2.

I just don't see a clean alternative. Exposing the route object is not as neat as I'd prefer, but it's something I can live with. I +1 @silentworks' solution.

As a rule, I prefer explicit over magic, which is another plus point in @silentworks' explicit method call solution.

Another option (not that I like it any better) is to introduce new methods on the App instance:
$app = new \Slim\App();
$app->namedGet('list', '/list', $callable);'
$app->run();

We could also do something like this http://laravel.com/docs/4.2/routing#named-routes where the last argument is an array that could be overloaded to provide middleware, callable, name, etc.

Re: previous comment, if second argument is callable or a string, consider it the route callable and be done with it. If the second argument is NOT callable and an array, make sure the array has a "callback" key, but also use the "name" and "add" keys to specify a name and middleware.

The second arg as an array still feels like its not explicit enough, as in an IDE won't know the keys for the array being passed, whereas the explicit naming would allow for this.

I agree. I'll go ahead and make an executive decision that we move forward with @silentworks' solution. The App instance's routing methods (e.g., get(), post(), and so on) will always accept two arguments:

The route URI
The route callable

The App instance's routing methods return the new Route object, and you can chain additional methods provided by that Route object to set names or add middleware.
$app->get('/list', 'Controller::method')->setName('list')->add($mw);

I agree method chaining gives the nicest API.
Altough I do think you need to document this solution well,. Chaining options to add $mw and a name does not become clear when using the $app->get() method, as it does not become visible as an argument.

@codeguy: Works for me.
@JoeBengalen: I agree about documentation, though I think you'll find that with the appropriate doc blocks, IDEs will offer autocomplete for add() & setName()

Might a more descriptive method name like "middleware" make more sense?
Would allowing the same method to accept an array and/or an unspecified number of arguments make more sense than repeated method calls?
->middleware('mw1', 'mw2');

This is done. Route names are now optional and must be set using a chained method call like this:
$app->get('/pattern', 'callable')->setName('name');

Thanks!


24-hour Locale (fi) prevents time picker validation if phone's system is set to 12-hour clock

Steps to reproduce

Set android emulator to have 12-hours clock (Phone language was set to Finnish)
Run flutter pub add flutter_localizations --sdk=flutter
Run flutter pub add intl:any
Run code sample and press open dialog
24-hours dialog is opened and user can enter 24-hours time for example. 20:00.
Press "OK" with 20:00 as value

Expected results
Validation should succeed with 20:00 because input form allows 24-hours selection.
Actual results
Validation fails. Validator and Input form are conflicted on is the data in 24 or 12-hours format.
Workaround:
Force 24 hours-clock with MediaQuery. This is not ideal because it forces all locales to use 24-hours time. So this should be applied if MediaQuery.alwaysUse24HourFormatOf(context) returns false
            showTimePicker(
              context: context,
              initialEntryMode: TimePickerEntryMode.inputOnly,
              initialTime: TimeOfDay.fromDateTime(DateTime(2024, 1, 16, 20)),
              builder: (context, Widget? child) {
                return MediaQuery(
                  data: MediaQuery.of(context).copyWith(alwaysUse24HourFormat: true),
                  child: child!,
                );
              },
            );
);

Code sample
Code sample
import 'package:flutter/material.dart';
import 'package:flutter_localizations/flutter_localizations.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      localizationsDelegates: const [
        GlobalMaterialLocalizations.delegate,
        GlobalWidgetsLocalizations.delegate,
        GlobalCupertinoLocalizations.delegate,
      ],
      theme: ThemeData(
        colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
        useMaterial3: true,
      ),
      supportedLocales: const [
        Locale("fi"),
        Locale("en"),
      ],
      locale: const Locale("fi"),
      home: const DialogScreen(),
    );
  }
}

class DialogScreen extends StatelessWidget {
  const DialogScreen({super.key});

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: ElevatedButton(
          onPressed: () {
            showTimePicker(
              context: context,
              initialEntryMode: TimePickerEntryMode.inputOnly,
              initialTime: TimeOfDay.fromDateTime(DateTime(2024, 1, 16, 20)),
            );
          },
          child: Text("Open dialog"),
        ),
      ),
    );
  }
}

Screenshots or Video

Screenshots / Video demonstration
[Upload media here]

Logs
Logs
[Paste your logs here]

Flutter Doctor output
Doctor output
PS C:\IdeaProjects\flutter_bug_timepicker> flutter doctor -v
[√] Flutter (Channel stable, 3.13.9, on Microsoft Windows [Version 10.0.22621.3007], locale fi-FI)
    • Flutter version 3.13.9 on channel stable at C:\flutter\flutter_windows_3.10.2-stable
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision d211f42860 (3 months ago), 2023-10-25 13:42:25 -0700
    • Engine revision 0545f8705d
    • Dart version 3.1.5
    • DevTools version 2.25.0

[√] Windows Version (Installed version of Windows is version 10 or higher)

[√] Android toolchain - develop for Android devices (Android SDK version 33.0.2)
    • Android SDK at C:\Android\Sdk
    • Platform android-33, build-tools 33.0.2
    • Java binary at: C:\Users\<User>\AppData\Local\Programs\Android Studio\jbr\bin\java
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-b2043.56-10027231)
    • All Android licenses accepted.

[√] Chrome - develop for the web
    • Chrome at C:\Program Files\Google\Chrome\Application\chrome.exe

[√] Visual Studio - develop Windows apps (Visual Studio Community 2022 17.6.2)
    • Visual Studio at C:\Program Files\Microsoft Visual Studio\2022\Community
    • Visual Studio Community 2022 version 17.6.33723.286
    • Windows 10 SDK version 10.0.22000.0

[√] Android Studio (version 2022.3)
    • Android Studio at C:\Users\<User>\AppData\Local\Programs\Android Studio
    • Flutter plugin can be installed from:
       https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
       https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-b2043.56-10027231)

[√] IntelliJ IDEA Ultimate Edition (version 2023.3)
    • IntelliJ at C:\Users\<User>\AppData\Local\Programs\IntelliJ IDEA Ultimate
    • Flutter plugin version 77.0.1
    • Dart plugin version 233.13135.65

[√] VS Code (version 1.84.2)
    • VS Code at C:\Users\<User>\AppData\Local\Programs\Microsoft VS Code
    • Flutter extension can be installed from:
       https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter

[√] Connected device (4 available)
    • sdk gphone64 x86 64 (mobile) • emulator-5554 • android-x64    • Android 13 (API 33) (emulator)
    • Windows (desktop)            • windows       • windows-x64    • Microsoft Windows [Version 10.0.22621.3007]
    • Chrome (web)                 • chrome        • web-javascript • Google Chrome 120.0.6099.217
    • Edge (web)                   • edge          • web-javascript • Microsoft Edge 120.0.2210.133

[√] Network resources
    • All expected network resources are available.

• No issues found!

Reproducible using the code sample provided above.
Tested on android, iOS & macOS and it reproduced on all platforms.

flutter doctor -v
[!] Flutter (Channel stable, 3.16.7, on macOS 14.1.2 23B92 darwin-arm64, locale en-GB)
    • Flutter version 3.16.7 on channel stable at /Users/nexus/dev/sdks/flutter
    ! Warning: `flutter` on your path resolves to /Users/nexus/dev/sdks/flutters/bin/flutter, which is not inside your current Flutter SDK checkout at /Users/nexus/dev/sdks/flutter. Consider adding /Users/nexus/dev/sdks/flutter/bin to the front of your path.
    ! Warning: `dart` on your path resolves to /Users/nexus/dev/sdks/flutters/bin/dart, which is not inside your current Flutter SDK checkout at /Users/nexus/dev/sdks/flutter. Consider adding /Users/nexus/dev/sdks/flutter/bin to the front of your path.
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision ef1af02aea (5 days ago), 2024-01-11 15:19:26 -0600
    • Engine revision 4a585b7929
    • Dart version 3.2.4
    • DevTools version 2.28.5
    • If those were intentional, you can disregard the above warnings; however it is recommended to use "git" directly to perform update checks and upgrades.

[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0-rc1)
    • Android SDK at /Users/nexus/Library/Android/sdk
    • Platform android-34, build-tools 34.0.0-rc1
    • Java binary at: /Users/nexus/Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b829.9-10027231)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 15.0)
    • Xcode at /Applications/Xcode-15.0.0-Release.Candidate.app/Contents/Developer
    • Build 15A240d
    • CocoaPods version 1.14.3

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2022.3)
    • Android Studio at /Users/nexus/Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b829.9-10027231)

[✓] IntelliJ IDEA Ultimate Edition (version 2023.2.5)
    • IntelliJ at /Users/nexus/Applications/IntelliJ IDEA Ultimate.app
    • Flutter plugin version 76.3.4
    • Dart plugin version 232.10072.19

[✓] VS Code (version 1.85.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.80.0

[✓] Connected device (4 available)
    • Nexus (mobile)       • 00008020-001875E83A38002E • ios            • iOS 17.2.1 21C66
    • Dean’s iPad (mobile) • 00008103-000825C811E3401E • ios            • iOS 17.2 21C62
    • macOS (desktop)      • macos                     • darwin-arm64   • macOS 14.1.2 23B92 darwin-arm64
    • Chrome (web)         • chrome                    • web-javascript • Google Chrome 120.0.6099.234

[✓] Network resources
    • All expected network resources are available.

! Doctor found issues in 1 category.

[✓] Flutter (Channel master, 3.19.0-6.0.pre.21, on macOS 14.1.2 23B92 darwin-arm64, locale en-GB)
    • Flutter version 3.19.0-6.0.pre.21 on channel master at /Users/nexus/dev/sdks/flutters
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 65acd0728c (3 hours ago), 2024-01-16 23:34:47 -0500
    • Engine revision 73a2de5da5
    • Dart version 3.4.0 (build 3.4.0-24.0.dev)
    • DevTools version 2.31.0

[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0-rc1)
    • Android SDK at /Users/nexus/Library/Android/sdk
    • Platform android-34, build-tools 34.0.0-rc1
    • Java binary at: /Users/nexus/Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b829.9-10027231)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 15.0)
    • Xcode at /Applications/Xcode-15.0.0-Release.Candidate.app/Contents/Developer
    • Build 15A240d
    • CocoaPods version 1.14.3

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2022.3)
    • Android Studio at /Users/nexus/Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b829.9-10027231)

[✓] IntelliJ IDEA Ultimate Edition (version 2023.2.5)
    • IntelliJ at /Users/nexus/Applications/IntelliJ IDEA Ultimate.app
    • Flutter plugin version 76.3.4
    • Dart plugin version 232.10072.19

[✓] VS Code (version 1.85.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.80.0

[✓] Connected device (4 available)
    • Nexus (mobile)       • 00008020-001875E83A38002E • ios            • iOS 17.2.1 21C66
    • Dean’s iPad (mobile) • 00008103-000825C811E3401E • ios            • iOS 17.2 21C62
    • macOS (desktop)      • macos                     • darwin-arm64   • macOS 14.1.2 23B92 darwin-arm64
    • Chrome (web)         • chrome                    • web-javascript • Google Chrome 120.0.6099.234

[✓] Network resources
    • All expected network resources are available.

• No issues found!

https://github.com/flutter/flutter/pull/141685 was a potential fix for this issue, it just lacked a test. If anyone would like to fix this, starting there would be helpful.


Send instance_id as resource_id to the service plugin

Coverage decreased (-0.3%) to 90.159% when pulling 6d65b316335fdc4b5822128cdd5e1862f800112e on SAP:fix-resource-id into 5a94be68cc90e9c8db315db0a4e982ba2ebf7111 on cloudfoundry-incubator:master.


Make it work under latest ghc 8.6.4 (and nix)

Make it work under latest ghc 8.6.4. Usefull in order to make it packagable for nix, as explained here.

Ha sorry, I can't upgrade to the latest LTS due to this issue https://github.com/erebe/wstunnel/issues/8
I need to make some changes in order for wstunnel to work with the latest tls package.
Sadly I don't have much free time right now, so it may take time before I upgrade it.

Should be working now with the latest comits


Doesn't finish on this SVG

SVGO (1.0.4) never finishes on this svg when used from the commandline with default settings.

At first look it's because of mergePaths plugin and plenty of elements. Disable it and all is ok. I'm investigating on what happens there.

It's finished now. Takes 5 min but works. Will think about performance.


Mark subspan for global reserved span before unmap it

_memory_global_reserve is marked as subspan only in _rpmalloc_global_get_reserved_spans(). So we should mark it explicitly before we call _rpmalloc_span_unmap() to unmap it directly.

Looks like you found a potential issue here, and the fix looks solid. Thanks!


Column not Updated on Properties Tab

I originally thought this was specific to column defaults, but looks like adding a new column to the table is not refreshed on the Properties tab either.
Running MacOS v11.2.3, DBeaver Version <IP_ADDRESS>106012023, using Postgres.
CREATE TABLE test (
    id SERIAL NOT NULL,
    name VARCHAR(30) NULL,
    PRIMARY KEY (id)
);

Now I run this:
ALTER TABLE test
  ADD COLUMN test CHAR(1) NOT NULL DEFAULT 'x'

And if I close down the test table tab and reopen, the new column is not shown.

The Invalidate/Reconnect context menu option does not work around this, but exiting out of DBeaver and coming back in does.

Same problem with editing the default.
ALTER TABLE lparker_test ALTER COLUMN test SET DEFAULT 'y';

Still shows default value of 'x' for the 'test' column.

Thank you for the bug report. We will look into it.

Related to #12547

For now you can use a workaround to refresh (F5) Navigator tree or click Disconnect and then Connect in menu.


[SPARK-34316][K8S] Support spark.kubernetes.executor.disableConfigMap

What changes were proposed in this pull request?
This PR aims to add a new configuration spark.kubernetes.executor.disableConfigMap.
Why are the changes needed?
This can be use to disable config map creating for executor pods due to https://github.com/apache/spark/pull/27735 .
Does this PR introduce any user-facing change?
No. By default, this doesn't change AS-IS behavior.
This is a new feature to add an ability to disable SPARK-30985.
How was this patch tested?
Pass the newly added UT.

Could you review this, @ScrapCodes ?

Test build #134750 has started for PR 31428 at commit ee9311b.

Test build #134750 has finished for PR 31428 at commit ee9311b.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Kubernetes integration test starting
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/39337/

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/134750/

Kubernetes integration test status failure
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/39337/

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/39337/

Could you review this, @holdenk ?

Hi @dongjoon-hyun , Thank you for the PR. You mentioned due to a security issue, you would like add this config. Can you please describe the issue either here or if you think it makes sense then @private list.
I have taken a look a cursory look, no issues found. :)

Ok, +1 LGTM !
@dongjoon-hyun, Feel free to merge this.

Thank you, @ScrapCodes . Yes, for security, some namespaces do not allow the driver pod to create new ConfigMaps. As a result, Spark jobs are unable to be executed in those namespaces. This unblocks Spark jobs in those namespace. As I wrote in the PR description, this doesn't aim to hurt the functionality of the original contribution. Instead, this PR aims to provide a workaround for those security enforced namespace.

Merged to master.

Ahh, makes sense then. Wish, we could autodetect and fallback too.

Yes, actually, that bit us as you see in this PR.

However after some digging and found some limitation exposed by K8S:
config map is an object, it may has quota limitation and add burdens to K8S's api server and etcd

Please send an email to dev@spark mailing list for further Q&A or discussion. We don't want to open a long discussion on the existing PR like this because that frequently causes unnecessary confusion for other audiences, @advancedxy .

Thank you!


Field View

Given:  I have many tables in many databases and have a limited memory capacity.
When:  I click on a table in the Database Navigator
Then:  I would like to see a list of fields, that is sortable and filterable, in a pane below the Database Navigator.
Database Navigator X
[Enter a part of tablename here]
Database 1
Database 2
Database 3
Tables
Table 1
Table 2
Field Navigator
[Enter part of field name here]
Field1
Field2
Describe alternatives you've considered
No solution in DBeaver that I could see.

I do see that I can click on the table and open Columns.  However, I would rather see this down below in a separate panel like where Project General is when I click on a DB.  I would like to see all the other things under a table there too.  Maybe this would reduce the lag gathering all the columns and then maybe indexes could go down there too since Indexes as far as I know go to the table not to the Database.
Would also facilitate sorting and filtering with a simple search.


Adding Table of Content to Readme.md

What would you like to be added:
The idea for Adding Table of Content to Readme.md to add additional enhancement and readability to the docs file.
Why is this needed:
TOC is very useful to hop between the docs/info of the readme and avoids useless scrolling.
@nathanmartinszup / @wiliansilvazup do assign this issue to me after approval :)

It's a good point. we'll be very grateful if you can contribute by solving this issue. @ng29

It's a good point. we'll be very grateful if you can contribute by solving this issue. @ng29

Sure @nathannascimentozup , will raise PR today only for above issue. 👍

Voila, toc IS READY @nathannascimentozup , please review and merge 👍

Tnks for you contributing :smile:
Fixed on PR #57


Determine best approach for Windows support

The secureli application currently is only supported by MacOS. We'd like to extend support over to Windows development machines. We need to align on an approach to best do that. Is this something that can be facilitated through VS extension for .NET developers? Do we just rely on PIP? Homebrew on WSL? What approach will best serve the Windows development community?

As a C# developer, I would like to be able to use SeCureLi from within Visual Studio 2022 without having to install it and run it from the command line.
To solve this, a Visual Studio extension (VSIX) could be implemented. VSIX are written in .NET and can include menu items, contextual menu items, and even UI panes to expose the extension functionality to the user. Further discussion should occur around what the user experience for developers should be when utilizing SeCureLi from Visual Studio.
An overview of the steps involved in building a VSIX extension for SeCureLi:

Create a VSIX project in Visual Studio
Implement UI features
For interacting with SeCureLi itself, which is Python, we can utilize IronPython, which is a Python runtime for .NET. We should abstract away this part of the functionality so that the VSIX could be updated in the future if the way of running SeCureLi changes.
** IronPython will allow us to call Python functions directly from .NET code.
** For example:

// Add a reference to the IronPython.dll and Microsoft.Scripting.dll assemblies to your project.
using IronPython.Hosting;

// ...

var var1,var2 = /* Input to SeCureLi function */
var engine = Python.CreateEngine();
var scope = engine.CreateScope();
engine.ExecuteFile(@"C:\secureli.py", scope);
dynamic testFunction = scope.GetVariable("build");
var result = testFunction("magenta");

This way we can call SeCureLi from the Visual Studio Extension and expose whatever functionality is needed.
Open Questions:

How should we bundle SeCureLi, would it come with the extension installer, or would the installer download it?
Do we need Python installed on the user's machine? I think we don't, because all the Python is being executed by IronPython.
What should the UI and user experience be for the developer?
Does this work? A POC should be done before jumping into full implementation.


No matching distribution found for yoco

Hello, thank you for your valuable work! I'm planning to test my own network using this toolbox, but when I install it, I faced the following problem:
ERROR: Could not find a version that satisfies the requirement yoco (from versions: none)
ERROR: No matching distribution found for yoco
I cannot find solutions from the internet, how to fix this? Is it caused by the version mismatch of the some package?

It should work with newer Python versions (>= 3.7) if you can change it. I will check if everything works with Python 3.6 and let you know when it's fixed.

It should be fixed for 3.6 now as well :slightly_smiling_face:
Feel free to close the issue if it works for you.

Hi, thanks for your quick response! The environment problem has been fixed, and I have configured everything I need. But the evaluation speed on my machine (3090 GPU) is really slow...  How long will it take you to complete the test?

It should be much faster.  Unfortunately that's the last version for Python 3.6. I will see, if I can reproduce the problem and do anything about it in the next few days.
Maybe try a more recent Python version (3.7, 3.8, 3.9) should all be fine (e.g., with pyenv) and see if that fixes the problem?

Hi, sorry to disturb you again, I have evaluated SPD for the REAL275 dataset on two different python3.7 machines, one took 5 hours and the other took 2 hours, I think there may still be some version issues, but the speed should be normal now. But I can't complete the whole evaluation procedure with CASS and ASMNet, and the segmentation fault occurs. I have encountered this problem on both machines.

For CASS, this error occurs in foldingnet.py

For CASS, this error occurs in pointnet.py

I guess is there some hidden bug in the code? I haven't solved this problem yet, can you provide some advice?
Also I have two other questions:
(1) There seems to be some errors in 3.1 Problem Definition in the paper, "the camera is at the origin of frame w (world)" , and the object pose estimation is defined as wO = wToO, which means the transformation from the object coordinate frame to the world coordinate frame. The correct definition should be the transformation from the object coordinate frame to the camera coordinate frame. Is it wrong here?
(2) in the code RedWood_dataset.py, the link to download the dataset does not exist.
 https://drive.google.com/u/0/uc?id=1PMvIblsXWDxEJykVwhUk_QEjy4_bmDU

Those times sound more reasonable. You can speed it further up by passing --fast_eval True which will only evaluate every 10th sample. The results are pretty much the same, given the sequential nature of the dataset.
I can't seem to reproduce the problem right now. I have mostly used torch with CUDA 10.2, but I just tried a fresh install with 11.3 and it worked fine as well. Maybe you can try a fresh environment with this requirements.txt file I have attached and see if that helps?
pip install -r requirements.txt -f https://download.pytorch.org/whl/cu113/torch_stable.html

On the other two questions:
(1) We use world and camera as synonyms, hence the first sentence "the camera is at the origin of frame w".
(2) The full URL is https://drive.google.com/u/0/uc?id=1PMvIblsXWDxEJykVwhUk_QEjy4_bmDU-&export=download (it's just a linebreak in the string https://github.com/roym899/pose_and_shape_evaluation/blob/f9f50701332bf2cc1da65253535794a2eb03a8b5/cpas_toolbox/datasets/redwood_dataset.py#L165-L166)

Oh, sorry for not replying to you these days. I successfully tested the results of SPD, CASS and ASMNet on REAL275 and RedWood75 using python3.8. But the inference time of each model on REAL275 takes 2-3 hours, which is very slow. Can you tell me how long it will take you to test these models on your machine? and the versions of cuda and pytorch?
I've been working on my own models these days, but it didn't work yet. I suspect it's a problem with the memory of the machine. How much memory does the machine you use have?

This speed is similar for me on the REAL275 dataset. We evaluate sample-by-sample and there are 16000 sample, where each sample can take around a second because we have to compute the metrics on the CPU (which is the bottleneck right now). In general I would recommend not to do this evaluation too often, since it's meant to be the test set, therefore I wouldn't consider the slow speed to be a big issue. But if you want a faster feedback cycle --fast_eval True can be used for REAL275, giving essentially the same results, but only evaluating every 10th sample. I'm sure there are some simple optimizations that could be done to speed up the metrics.
I have tried it with two different machines. 12GB VRAM + 94GB RAM and 8 GB VRAM + 16 GB RAM both with CUDA 10.2 and CUDA 11.3 and the most recent torch versions.

Got it! Thank you very much!


[viewer api] add method to create a directory

Backend: https://github.com/ydb-platform/ydb/pull/5617


Cannot create website

Describe the bug
I give Bolt clear instructions but it is unable to even create a demo site.
Link to the Bolt URL that caused the error
https://bolt.new/~/sb1-ah24hx
Steps to reproduce
I give it instructions and it fails
Expected behavior
A working website
Screen Recording / Screenshot
No response
Platform
Browser name = Chrome
Full version = <IP_ADDRESS>
Major version = 131
navigator.appName = Netscape
navigator.userAgent = Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/<IP_ADDRESS> Safari/537.36
performance.memory = {
  "totalJSHeapSize": 60174533,
  "usedJSHeapSize": 57429861,
  "jsHeapSizeLimit":<PHONE_NUMBER>
}
Username = Polarisman1964
Chat ID = bf974750cb4f

Additional context
No response

Appreciate the feedback! This page here has a number of insights on using Bolt most effectively while maximizing token efficiency.


Provide tap function in the pipeline builder to enable in-progress inspection

Calling pipe.pre(mystep).tap(myfn)
should ensure that myfn will be called before mystep is executed by the pipeline, but that the return value of myfn will not enter the pipeline.
This allows setting myfn as an observer to mystep, which can ease debugging and inspection.

why before? the taps should be sequetially in the way they are defined.
pipe
.tap(t1)
.pre(p1)
.tap(t2)
.once(o)
....

will call t1 -> p1 -> t2 -> o;
OTOH, it is not clear to me what the benefit of tap is. if for debugging with a debugger, then it is easier to set the breakpoint accordingly. if debugging with loggers, then it should be possible to define the loglevels more cleverly.
i.e. I don't think that someone writes a special tap function, just to debug his pre function.

The use case I was thinking of was writing an integration test for the pipeline (see adobe/helix-cli#18) – you'd want to be able to get a full dump of the current payload, so your tap would just write the current payload to disk, allowing you to copy it into your test directory.

but wouldn't this rather by a generic testing/tapping capability of the pipeline itself?
but it might be a good modular approach to this.

Not needed, we have better debugging options now.

We need taps (among others) for type validation.


Allow uppercased types in Typescript backend

I want to generate types for TypeScript, but there's no way to configure genType to output uppercased types (which is idomatic for TypeScript).
Is this possible? Could this be added?

[@genType]
<EMAIL_ADDRESS>"Props"]
type props = {
  x: int,
  n: string,
};

Tbh I'm not sure why<EMAIL_ADDRESS>"Props"] does not make the first line [@genType] optional.
That shortcut could be implemented.

Automatic mangling is not something that will be supported, as it generates lots of other problems.
However,  there are plans for a long term solution. Stay tuned.


fix: added excluded paths for navigation

Details

This PR adds internal Expensify paths that are excluded from opening in the App.
Fixed Issues

$ https://github.com/Expensify/App/issues/16520
PROPOSAL: https://github.com/Expensify/App/issues/16520#issuecomment-1485710348
Tests

Paste the following link in any chat (https://staging.new.expensify.com/NewExpensify.dmg)
Click on the link that was entered.

Option to download the app should appear.

[x] Verify that no errors appear in the JS console

Offline tests

N/A
QA Steps

Paste the following link in any chat (https://staging.new.expensify.com/NewExpensify.dmg)
Click on the link that was entered.

Option to download the app should appear.

[x] Verify that no errors appear in the JS console

PR Author Checklist

[x] I linked the correct issue in the ### Fixed Issues section above
[x] I wrote clear testing steps that cover the changes made in this PR

[x] I added steps for local testing in the Tests section
[x] I added steps for the expected offline behavior in the Offline steps section
[x] I added steps for Staging and/or Production testing in the QA steps section
[x] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
[x] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[x] I included screenshots or videos for tests on all platforms
[x] I ran the tests on all platforms & verified they passed on:

[x] Android / native
[x] Android / Chrome
[x] iOS / native
[x] iOS / Safari
[x] MacOS / Chrome / Safari
[x] MacOS / Desktop

[x] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[x] I followed proper code patterns (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method
[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is correct English and approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I followed the guidelines as stated in the Review Guidelines
[x] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] I verified that if a function's arguments changed that all usages have also been updated correctly
[x] If a new component is created I verified that:

[x] A similar component doesn't exist in the codebase
[x] All props are defined accurately and each prop has a /** comment above it */
[x] The file is named correctly
[x] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[x] The only data being stored in the state is data necessary for rendering and nothing else
[x] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[x] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[x] All JSX used for rendering exists in the render method
[x] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(themeColors.componentBG)

[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] I have checked off every checkbox in the PR author checklist, including those that don't apply to this PR.

Screenshots/Videos

Web

https://user-images.githubusercontent.com/30054992/230660170-7a46d33a-cfcb-478a-92c0-d5d8fc606457.mov

Mobile Web - Chrome

https://user-images.githubusercontent.com/30054992/230660208-2e1a9602-9cd7-4a54-aa59-aba88d23aa73.mov

Mobile Web - Safari

https://user-images.githubusercontent.com/30054992/230660230-0a831978-a1cf-4132-a54c-65f4c7bc11ea.mov

Desktop

https://user-images.githubusercontent.com/30054992/230660265-3af06700-d433-485c-92cd-dedd15c634e8.mov

iOS

https://user-images.githubusercontent.com/30054992/230660292-003a03d2-8418-44d3-bc8d-54c185752a96.mov

Android

https://user-images.githubusercontent.com/30054992/230660315-df845b24-96f1-4c36-8b72-465ad697f6d2.mov

@puneetlath @aimane-chnaif One of you needs to copy/paste the Reviewer Checklist from here into a new comment on this PR and complete it. If you have the K2 extension, you can simply click: [this button]

🚀 Deployed to staging by https://github.com/puneetlath in version: 1.2.99-0 🚀

platform
result

🤖 android 🤖
failure ❌

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
failure ❌

🕸 web 🕸
success ✅

🚀 Deployed to production by https://github.com/francoisl in version: 1.2.99-6 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅


set the correct Type and Content-Type headers on out going messages

#159

Coverage increased (+0.03%) to 76.732% when pulling 9cc82fffe0aaebd0b27d5e33e7c17cef7706a4a2 on headers into 3cc55ae44eda3b466582e2d295b3bf2ecd533ff9 on v1.x.


Not all available diskspace used

I installed Opnsense 15.1 with a livecd and somehow the automatic partitioning did not use the full disk. I have a 16GB SSD but only 6GB seem to be used.
HW Platform: PCengines APU with msata16d
root@opnsense:~ # df -h
Filesystem      Size    Used   Avail Capacity  Mounted on
/dev/ada0s1a    5.8G    912M    4.4G    17%    /
devfs           1.0K    1.0K      0B   100%    /dev
/dev/md0        3.4M    108K    3.0M     3%    /var/run
devfs           1.0K    1.0K      0B   100%    /var/dhcpd/dev
root@opnsense:~ # fdisk
******* Working on device /dev/ada0 *******
parameters extracted from in-core disklabel are:
cylinders=29091 heads=16 sectors/track=63 (1008 blks/cyl)

Figures below won't work with BIOS for partitions not in cyl 1
parameters to be used for BIOS calculations are:
cylinders=29091 heads=16 sectors/track=63 (1008 blks/cyl)

Media sector size is 512
Warning: BIOS sector numbering starts with sector 1
Information from DOS bootblock is:
The data for partition 1 is:
sysid 165 (0xa5),(FreeBSD/NetBSD/386BSD)
    start 63, size 29323665 (14318 Meg), flag 80 (active)
	beg: cyl 0/ head 1/ sector 1;
	end: cyl 418/ head 15/ sector 63
The data for partition 2 is:
<UNUSED>
The data for partition 3 is:
<UNUSED>
The data for partition 4 is:
<UNUSED>

I'd say the swap partition is the culprit here. I'm still trying to wrap up a sane approach to swap usage (especially for small solid state drives or SD cards), but so far swap files as opposed to partitions are not helping since core dumps won't work with swap files. Beyond that there really is no point in having a swap partition at all (swapping would be slow as hell anyway).

Ack. Its the swap partition. Have 4Gb RAM and a 8Gb swap partition on that SSD. Not sure If I really need/want swap at all. Speed is not that bad according to diskinfo/dd but vmstat lists that I have still plenty of free mem. I believe having more disk space instead of available/unused swap space would be better.

Will fix this via https://github.com/opnsense/ports/issues/2 -- most likely skip swap for installations smaller than 30GB. Cheers. :)


Monitor repo retention

I would suggest tracking skipped repos due to errors - if one of them failed, return a non-zero return code. Otherwise it'll get logged into the void and probably won't ever be noticed by anyone until the S3 bills start racking up...
Originally posted by @ozkatz in https://github.com/treeverse/lakeFS/pull/309#discussion_r461525129

No more retention, it will be baaaack but as an external job.


Show Search with dropdown section on load of screen

Hi Guys,
I am integrated this package and its very usefull and working perfect. In my current situation, the location selection is showing on the top of the screen.
On loading the page, I need to load the search section of select searchable. which means automatically open the search box..(Dynamically open the search selecteble on load other than taping on screen).
Please help me how  to make it with this package.

Hey, try to use open() method.
And don't forget to star the project 🙂 👍


Configure Fleet on Elastdocker

Hello, is there a possibility to configure this docker with Fleet and set:

?
because after I'm setting the required information, the kibana server stops to respond.
Thank u for your time spent on this q. :)

Yes, enabling xpack.security.authc.api_key requrires Elasticsearch to use SSL at the HTTP layer which is disabled by default in Elastdocker in favor of convenience as noted in the README.md.
You can enable SSL at HTTP by uncommenting the lines in elasticsearch.yml config, add the extra line in the screenshot and finally configure Kibana and Logstash and any other tool/code that connects to Elasticsearch to use SSL.

thank you so much for replying to me with so many tech-details, All clear now! have a great weak ahead.


Support not showing icon in the menu

Added XML attribute showIcon (analogous to showTitle) for menu items.

Thanks


C++ Formatter Settings (for ghidra C++ code)

Is your feature request related to a problem? Please describe.
Opening some of the c++ source code in the repository displays funny without the correct formatting settings due to the mixed use of tabs and spaces.
Describe the solution you'd like
A .clang-format file with the correct settings to use or at least have them listed somewhere in the repo.
Describe alternatives you've considered
Converting all tabs to 8 spaces in the c++ source code. Using 8 spaces because that is what the tab size appears to have been.
Additional context
This is what some of the code looks like when opened in notepad++ and vscode with the default tab size of 2.

The only text editor I've opened code in with this issue where it has been displayed correctly by default is the default windows notepad. (For testing purposes of course). Apparently vim displays a tab as 8 characters by default as well.

@caheckman do you have a configuration or settings profile for the editor you use that can be shared?

Resolved by 30d02ac371e532b62d93c0d648ffdc28e9ebec97

Resolved by 30d02ac371e532b62d93c0d648ffdc28e9ebec97

I see you found it...
There is an Eclipse CDT formatter for the C++ code in the repo now at
$ROOT/eclipse/GhidraCDTFormatter.xml
Assuming the CDT is installed in your Eclipse environment, you can import the formatter via
Windows -> Preferences
C/C++ -> Code Style -> Formatter
Import ...

I see you found it...
There is an Eclipse CDT formatter for the C++ code in the repo now at
$ROOT/eclipse/GhidraCDTFormatter.xml
Assuming the CDT is installed in your Eclipse environment, you can import the formatter via
Windows -> Preferences
C/C++ -> Code Style -> Formatter
Import ...


rpxy accepts HTTP2 when force_http11_upstream is set, request fails

Don't know if this is related to #77 or not. But I have an upstream that only supports HTTP 1.1
Like this:
[apps.myapp]
server_name = 'myrpxy.example.com'
reverse_proxy = [{ upstream = [{ location = 'OpenWrt', tls = true }] }]
tls = { https_redirection = true, acme = true }
upstream_options = [ "force_http11_upstream" ]

But when running curl:
curl -v https://myrpxy.example.com
* Host myrpxy.example.com:443 was resolved.
* IPv6: (none)
* IPv4: <IP_ADDRESS>
*   Trying <IP_ADDRESS>:443...
* Connected to myrpxy.example.com (<IP_ADDRESS>) port 443
* ALPN: curl offers h2,http/1.1
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
*  CAfile: /etc/pki/tls/certs/ca-bundle.crt
*  CApath: none
* TLSv1.3 (IN), TLS handshake, Server hello (2):
* TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8):
* TLSv1.3 (IN), TLS handshake, Certificate (11):
* TLSv1.3 (IN), TLS handshake, CERT verify (15):
* TLSv1.3 (IN), TLS handshake, Finished (20):
* TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1):
* TLSv1.3 (OUT), TLS handshake, Finished (20):
* SSL connection using TLSv1.3 / TLS_AES_256_GCM_SHA384 / x25519 / id-ecPublicKey
* ALPN: server accepted h2
* Server certificate:
*  subject: CN=myrpxy.example.com
*  start date: Sep  2 20:47:06 2024 GMT
*  expire date: Dec  1 20:47:05 2024 GMT
*  subjectAltName: host "myrpxy.example.com" matched cert's "myrpxy.example.com"
*  issuer: C=US; O=Let's Encrypt; CN=E6
*  SSL certificate verify ok.
*   Certificate level 0: Public key type EC/prime256v1 (256/128 Bits/secBits), signed using ecdsa-with-SHA384
*   Certificate level 1: Public key type EC/secp384r1 (384/192 Bits/secBits), signed using sha256WithRSAEncryption
*   Certificate level 2: Public key type RSA (4096/152 Bits/secBits), signed using sha256WithRSAEncryption
* using HTTP/2
* [HTTP/2] [1] OPENED stream for https://myrpxy.example.com/
* [HTTP/2] [1] [:method: GET]
* [HTTP/2] [1] [:scheme: https]
* [HTTP/2] [1] [:authority: myrpxy.example.com]
* [HTTP/2] [1] [:path: /]
* [HTTP/2] [1] [user-agent: curl/8.6.0]
* [HTTP/2] [1] [accept: */*]
> GET / HTTP/2
> Host: myrpxy.example.com
> User-Agent: curl/8.6.0
> Accept: */*
>
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
* old SSL session ID is stale, removing
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
* old SSL session ID is stale, removing
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
* old SSL session ID is stale, removing
< HTTP/2 500
< date: Sun, 15 Sep 2024 22:39:18 GMT
<
* Connection #0 to host myrpxy.example.com left intact

So basically TLS handshake appears to incorrectly accept h2 when it should accept http/1.1 because of the upstream server.
P.S. Request works with curl --http1.1 but there is no such option for normal browsers.

force_http11_upstream option just converts incoming requests of HTTP/1.1, 2 or 3 to that of HTTP/1.1, and does not offers only HTTP/1.1 directly to clients.
In my understanding, your setting seems as below.
client -> (https over http/2) -> rpxy -> (https over http/1.1) -> backend app

But it is weird that your application returns 500 when clients send request with HTTP/2. So could you check logs of rpxy and your backend app?

Sorry, I missed to paste rpxy log because the error message in rpxy log seemed like http2 forwarding to http1 was not possible. I think the relevant part is:
2024-09-16T20:38:45.038091Z DEBUG rpxy rpxy_lib::proxy::proxy_main:191: HTTP/2 or 1.1: SNI in ClientHello: "myserver.example.com"
2024-09-16T20:38:45.060956Z DEBUG rpxy rpxy_lib::proxy::proxy_main:82: Request incoming: current # 2
2024-09-16T20:38:45.082350Z DEBUG rpxy rpxy_lib::backend::upstream:88: Found upstream: "/"
2024-09-16T20:38:45.083015Z DEBUG rpxy rpxy_lib::message_handler::handler_manipulate_messages:69: Generate request to be forwarded
2024-09-16T20:38:45.083664Z DEBUG rpxy rpxy_lib::backend::upstream:231: Upstream of index 0 is chosen.
2024-09-16T20:38:45.083690Z DEBUG rpxy rpxy_lib::backend::upstream:232: Context to LB (Cookie in Request): None
2024-09-16T20:38:45.083697Z DEBUG rpxy rpxy_lib::backend::upstream:233: Context from LB (Set-Cookie in Response): None
2024-09-16T20:38:45.083710Z DEBUG rpxy rpxy_lib::message_handler::handler_main:163: Request to be forwarded: [uri https://OpenWrt/, method: GET, version HTTP/2.0, headers {"user-agent": "curl/8.6.0", "accept": "*/*", "x-forwarded-for": "<IP_ADDRESS>", "x-forwarded-proto": "https", "x-forwarded-port": "8443", "x-real-ip": "<IP_ADDRESS>", "x-forwarded-ssl": "on", "x-original-uri": "https://myserver.example.com/", "proxy": "", "host": "myserver.example.com"}]
2024-09-16T20:38:45.308347Z  WARN rpxy hyper_util::client::legacy::client:283: Connection is HTTP/1, but request requires HTTP/2
2024-09-16T20:38:45.310803Z ERROR rpxy rpxy_lib::message_handler::handler_main:74: Failed to get response from backend: Failed to fetch from upstream: client error (UserUnsupportedVersion)
2024-09-16T20:38:45.313777Z  INFO rpxy rpxy_lib::message_handler::http_log:76: myserver.example.com <- <IP_ADDRESS>:56784 -- GET / HTTP/2.0 -- 500 Internal Server Error -- https://myserver.example.com "curl/8.6.0", "<IP_ADDRESS>" "https://OpenWrt/"
2024-09-16T20:38:45.350427Z DEBUG rpxy rpxy_lib::proxy::proxy_main:112: Request processed: current # 1

More specifically

Connection is HTTP/1, but request requires HTTP/2

OpenWRT uses uhttpd by default. But I assume the result would be the same with any other web server that doesn't support HTTP2.
Another thing I notice though is that this only is a problem with upstream = [{ location = 'whatever.example.com', tls = true }]. When upstream is not using TLS, the requests appear to be forwarded as HTTP1 :thinking:

Thanks for the investigation! Actually, seems weird. I will check but needs time for a while. For now I am guessing this is due to the configuration of hyper-client sending requests towards backend apps.

I just tested on localhost and my rpxy hosted server.
Flow:
curl -> (http 2 or 3) -> localhost rpxy -> (http 1.1 w/ force_http11_upstream) -> rpxy/nginx hosted site on the Internet

rpxy settings:
[[apps.localhost.reverse_proxy]]
upstream = [
  { location = 'whoami-1.rpxy.net', tls = true },
]
load_balance = "sticky"
upstream_options = [
   "set_upstream_host",
   "force_http11_upstream",
]

Curl:
$ curl https://localhost:4433 -v -i --insecure --http2 -I
$ curl https://localhost:4433 -v -i --insecure --http3 -I

The log are as below, which are actually for proxied requests to rpxy but ones to nginx results same.
HTTP/3
2024-09-20T02:21:22.746202Z  INFO rpxy rpxy_lib::proxy::proxy_h3:36: QUIC/HTTP3 connection established from [::1]:58047 localhost
~~~~~~~
2024-09-20T02:21:22.747057Z DEBUG rpxy rpxy_lib::message_handler::utils_request:69: HTTP/3 is currently unsupported for request to upstream.
2024-09-20T02:21:22.747067Z DEBUG rpxy rpxy_lib::message_handler::handler_main:163: Request to be forwarded: [uri https://whoami-1.rpxy.net/, method: HEAD, version HTTP/1.1, headers {"user-agent": "curl/8.10.1", "accept": "*/*", "x-forwarded-for": "::1", "x-forwarded-proto": "https", "x-forwarded-port": "4433", "x-real-ip": "::1", "x-forwarded-ssl": "on", "x-original-uri": "https://localhost:4433/", "proxy": "", "host": "whoami-1.rpxy.net"}]
~~~~~~
2024-09-20T02:21:22.832814Z  INFO rpxy rpxy_lib::message_handler::http_log:76: localhost <- [::1]:58047 -- HEAD / HTTP/3.0 -- 200 OK -- https://localhost "curl/8.10.1", "::1" "https://whoami-1.rpxy.net/"

HTTP/2
2024-09-20T02:21:31.218937Z DEBUG rpxy rpxy_lib::proxy::proxy_main:191: HTTP/2 or 1.1: SNI in ClientHello: "localhost"
~~~~~
2024-09-20T02:21:31.223477Z DEBUG rpxy rpxy_lib::message_handler::handler_main:163: Request to be forwarded: [uri https://whoami-1.rpxy.net/, method: HEAD, version HTTP/1.1, headers {"user-agent": "curl/8.10.1", "accept": "*/*", "x-forwarded-for": "::1", "x-forwarded-proto": "https", "x-forwarded-port": "4433", "x-real-ip": "::1", "x-forwarded-ssl": "on", "x-original-uri": "https://localhost:4433/", "proxy": "", "host": "whoami-1.rpxy.net"}]
~~~~~
2024-09-20T02:21:31.247187Z  INFO rpxy rpxy_lib::message_handler::http_log:76: localhost <- [::1]:57083 -- HEAD / HTTP/2.0 -- 200 OK -- https://localhost "curl/8.10.1", "::1" "https://whoami-1.rpxy.net/"

So, mine works flawlessly actually. very weird...

I see. I tried this. The difference is that in your example, you don't use HTTPS to the downstream, only to the upstream.
So this worked for me:
[apps.testdomain]
server_name = 'exampledomain.ddnsgeek.com'
tls = { https_redirection = true, acme = true }
reverse_proxy = [{ upstream = [{ location = 'whoami-1.rpxy.net', tls = true }] }]
upstream_options = [
   "force_http11_upstream",
]

And the result was:
🐚 curl -v http://exampledomain.ddnsgeek.com/
* Host exampledomain.ddnsgeek.com:80 was resolved.
* IPv6: (none)
* IPv4: <IP_ADDRESS>
*   Trying <IP_ADDRESS>:80...
* Connected to exampledomain.ddnsgeek.com (<IP_ADDRESS>) port 80
> GET / HTTP/1.1
> Host: exampledomain.ddnsgeek.com
> User-Agent: curl/8.6.0
> Accept: */*
>
< HTTP/1.1 400 Bad Request
< date: Fri, 20 Sep 2024 11:07:01 GMT
< server: rpxy
< transfer-encoding: chunked
<
* Connection #0 to host exampledomain.ddnsgeek.com left intact

And rpxy logs:
2024-09-20T11:07:15.582830Z DEBUG rpxy rpxy_lib::message_handler::handler_main:163: Request to be forwarded: [uri https://whoami-1.rpxy.net/, method: GET, version HTTP/1.1, headers {"host": "exampledomain.ddnsgeek.com", "pragma": "no-cache", "upgrade-insecure-requests": "1", "user-agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 16_1_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.1 Mobile/15E148 Safari/604.1", "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "accept-encoding": "gzip, deflate", "accept-language": "en-US,en;q=0.9", "cache-control": "no-cache", "x-forwarded-for": "<IP_ADDRESS>", "x-forwarded-proto": "http", "x-forwarded-port": "8080", "x-real-ip": "<IP_ADDRESS>", "x-forwarded-ssl": "off", "x-original-uri": "/", "proxy": ""}]
2024-09-20T11:07:15.836817Z  INFO rpxy rpxy_lib::message_handler::http_log:76: exampledomain.ddnsgeek.com <- <IP_ADDRESS>:59844 -- GET / HTTP/1.1 -- 400 Bad Request --  "Mozilla/5.0 (iPhone; CPU iPhone OS 16_1_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.1 Mobile/15E148 Safari/604.1", "<IP_ADDRESS>" "https://whoami-1.rpxy.net/"

But if I add https to the downstream as well with:
tls = { https_redirection = true, acme = true }

Then the result is:
$ curl -v https://exampledomain.ddnsgeek.com/
* Host exampledomain.ddnsgeek.com:443 was resolved.
* IPv6: (none)
* IPv4: <IP_ADDRESS>
*   Trying <IP_ADDRESS>:443...
* Connected to exampledomain.ddnsgeek.com (<IP_ADDRESS>) port 443
* ALPN: curl offers h2,http/1.1
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
*  CAfile: /etc/pki/tls/certs/ca-bundle.crt
*  CApath: none
* TLSv1.3 (IN), TLS handshake, Server hello (2):
* TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8):
* TLSv1.3 (IN), TLS handshake, Certificate (11):
* TLSv1.3 (IN), TLS handshake, CERT verify (15):
* TLSv1.3 (IN), TLS handshake, Finished (20):
* TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1):
* TLSv1.3 (OUT), TLS handshake, Finished (20):
* SSL connection using TLSv1.3 / TLS_AES_256_GCM_SHA384 / x25519 / id-ecPublicKey
* ALPN: server accepted h2
* Server certificate:
*  subject: CN=exampledomain.ddnsgeek.com
*  start date: Sep 20 10:03:18 2024 GMT
*  expire date: Dec 19 10:03:17 2024 GMT
*  subjectAltName: host "exampledomain.ddnsgeek.com" matched cert's "exampledomain.ddnsgeek.com"
*  issuer: C=US; O=Let's Encrypt; CN=E6
*  SSL certificate verify ok.
*   Certificate level 0: Public key type EC/prime256v1 (256/128 Bits/secBits), signed using ecdsa-with-SHA384
*   Certificate level 1: Public key type EC/secp384r1 (384/192 Bits/secBits), signed using sha256WithRSAEncryption
*   Certificate level 2: Public key type RSA (4096/152 Bits/secBits), signed using sha256WithRSAEncryption
* using HTTP/2
* [HTTP/2] [1] OPENED stream for https://exampledomain.ddnsgeek.com/
* [HTTP/2] [1] [:method: GET]
* [HTTP/2] [1] [:scheme: https]
* [HTTP/2] [1] [:authority: exampledomain.ddnsgeek.com]
* [HTTP/2] [1] [:path: /]
* [HTTP/2] [1] [user-agent: curl/8.6.0]
* [HTTP/2] [1] [accept: */*]
> GET / HTTP/2
> Host: exampledomain.ddnsgeek.com
> User-Agent: curl/8.6.0
> Accept: */*
>
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
* old SSL session ID is stale, removing
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
* old SSL session ID is stale, removing
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
* old SSL session ID is stale, removing
< HTTP/2 400
< date: Fri, 20 Sep 2024 11:04:32 GMT
< server: rpxy
< alt-svc: h3=":443"; ma=3600
<
* Connection #0 to host exampledomain.ddnsgeek.com left intact

And rpxy log is:
2024-09-20T11:04:36.709830Z DEBUG rpxy rpxy_lib::message_handler::handler_main:163: Request to be forwarded: [uri https://whoami-1.rpxy.net/dns-query?dns=tM0BAAABAAAAAAAAA3d3dwNhYmMDY29tAAABAAE, method: GET, version HTTP/1.1, headers {"host": "exampledomain.ddnsgeek.com", "user-agent": "python-requests/2.22.0", "content-type": "application/dns-message", "accept": "*/*", "accept-encoding": "gzip, deflate", "x-forwarded-for": "<IP_ADDRESS>", "x-forwarded-proto": "https", "x-forwarded-port": "8443", "x-real-ip": "<IP_ADDRESS>", "x-forwarded-ssl": "on", "x-original-uri": "/dns-query?dns=tM0BAAABAAAAAAAAA3d3dwNhYmMDY29tAAABAAE", "proxy": ""}]
2024-09-20T11:04:36.961545Z  INFO rpxy rpxy_lib::message_handler::http_log:76: exampledomain.ddnsgeek.com <- <IP_ADDRESS>:42856 -- GET /dns-query?dns=tM0BAAABAAAAAAAAA3d3dwNhYmMDY29tAAABAAE HTTP/1.1 -- 400 Bad Request --  "python-requests/2.22.0", "<IP_ADDRESS>" "https://whoami-1.rpxy.net/dns-query?dns=tM0BAAABAAAAAAAAA3d3dwNhYmMDY29tAAABAAE"

In both cases request passes through because the upstream apparently supports HTTP2. But in the second example the upstream request is HTTP2 instead of HTTP1.1 which should have been enforced.

Haha! I found your configuration failure ;-)
This
[apps.testdomain]
server_name = 'exampledomain.ddnsgeek.com'
tls = { https_redirection = true, acme = true }
reverse_proxy = [{ upstream = [{ location = 'whoami-1.rpxy.net', tls = true }] }]
upstream_options = [
   "force_http11_upstream",
]

must be changed to
[apps.testdomain]
server_name = 'exampledomain.ddnsgeek.com'
tls = { https_redirection = true, acme = true }
reverse_proxy = [
  {
    upstream = [
      { location = 'whoami-1.rpxy.net', tls = true }
    ],
    upstream_options = [
       "force_http11_upstream",
    ]
 }
]

This is because options for upstream requests should be configured for each  backend app! In your original configuration, options for upstream request were configured for the domain!

So I also really confirmed that we need more friendly configuration documentation. Current config-example.toml and README.md are really unfriendly.

It doesn't look like a valid configuration. When I copy/paste the above configuration snippet in my toml I see
2024-09-20T11:59:13.669337Z  WARN main hot_reload:154: Failed to reload watch target

Well it should be a typo. Anyways upstream and upstream_options should be on the same level in TOML format, like:
[apps."whoami-1.rpxy.net"]
server_name = 'whoami-1.rpxy.net'
reverse_proxy = [
  { upstream = [
    { location = 'whoami-1:8000', tls = false },
  ], upstream_options = ['keep_original_host'] }
]
tls = { https_redirection = true, acme = true }

The above is actually the configuration for whoami-1.rpxy.net.

This separate configuration works! Really thanks a lot!
But I think it is not a typo. There seems to be some magic related to parsing of stuff. This fails:
[apps."testdomain"]
server_name = 'somedomain.ddnsgeek.com'
reverse_proxy = [
  {
    upstream = [
    { location = 'OpenWrt', tls = true }
  ], upstream_options = ["force_http11_upstream"]
  }
]
tls = { https_redirection = true, acme = true }

This works:
[apps."testdomain"]
server_name = 'secrethq.ddnsgeek.com'
reverse_proxy = [
  { upstream = [
    { location = 'OpenWrt', tls = true },
  ], upstream_options = ["force_http11_upstream"] }
]
tls = { https_redirection = true, acme = true }

The difference is that I've put {} on separate lines. Perhaps brakets or indentation are not irrelevant in toml, I know nothing about it. Maybe this is by design, apologies if I should have known better.
But thanks again that it is now working as expected!

So this can be closed. Unless you want to keep it open to implement auto-detection of HTTP2 support. Or for whatever reason.

Good to hear that!
Honestly, the auto-detection of HTTP/2 (or 3) is quite tough. The client library using to issue request to backends supports auto negotiation. But it works as follows: initial requests are usually sent over HTTP/1.1 and then subsequent requests would be updated to HTTP/2 or 3 according to responses's ALT-SVC field. In `rpxy, that is totally overridden and the same HTTP version as original requests would be used by default (unless the backend connection is over plantext HTTP) to remove such the overhead of upgrading. This is from my concept that the backend connection should be controlled by the deployer  (but not sticked to this).
If we try to auto-detect, we need to periodically issue a kind of keep-alive message. It might be useful to check the aliveness of backend apps from rpxy side though... I am not sure if such keep-aliving is always better for any kind of backends in any deployment situations.

It makes sense for performance reasons to make user specify the connection type. But it has to be well documented what would be the default behavior. I didn't see this when reading the readme or the example config.
HTTP2 upgrading when using HTTPS on the upstream should be straightforward because that negotiation happens within the TLS handshake. I think that auto-detection is no issue. More of an issue is the HTTP3 upgrade.
Actually the ideal approach would be for rpxy to negotiate HTTP version automatically but then keep the highest negotiated version in memory so that subsequent connections will directly use that version instead of the auto-negotiation algorithm.
For the time being though, just documenting this would be super helpful for new users.


x/crypto/ssh: rsa-sha2-256/rsa-sha2-512 tracking issue

OpenSSH migrated the ssh-rsa key type, which historically used the ssh-rsa signature algorithm based on SHA-1, to the new rsa-sha2-256 and rsa-sha2-512 signature algorithms.
x/crypto/ssh was not ready for the key type / signature algorithm mismatch, so it needs a few changes. Moreover, OpenSSH implemented a few mechanisms at the same time to enable the rollout, which we need to assess and expose.
This is a tracking issue for the effort in general. Here's a list of not-duplicate related issues:

[x] #37278

Fixed by https://golang.org/cl/220037

[x] #46569
[x] #49269
[x] #39885
[x] #53391
[x] #36261

[x] #52132

We'll also need some tests against OpenSSH proper, like the crypto/tls recorded tests against OpenSSL, since https://golang.org/cl/220037 turned out to be a partial fix.

👋  I ran into this issue with my project: https://github.com/owenthereal/upterm/issues/93#issuecomment-1045387517. I'm wondering whether there is anything I could help to help close this issue.

Should this issue (and others), be marked resolved now?

Almost but not quite, we should also implement server-sig-algs on the server side before we can claim we're done.
Then we can open follow-up issues for adding OpenSSH recorded tests, extending the AlgorithmSigner interface (with another interface upgrade) to allow advertising specific supported algorithms and their preference order, and finally to disable SHA-1 by default throughout (making sure it's possible to turn it back on at least for a bit, which will be complex).

@FiloSottile I believe a fifth part is also missing, which is allowing x/crypto/ssh based CAs to sign keys with these algorithms? Per documentation it appears the new types aren't enabled for SSH Certificate usage. This prohibits us from signing SSH certificates with these newer types, based on my read of the code.
Is this tracked elsewhere or should I file a new issue for it so it can be tracked here?

@cipherboy What you describe is tracked by #36261, and would be resolved by #52132.
By the way, "CertAlgoRSASHA256v01 and CertAlgoRSASHA512v01 can't appear as a Certificate.Type (or PublicKey.Type)" doesn't mean they can't be used for signing, but means that the certificate type will still be CertAlgoRSAv01, the same way as a KeyAlgoRSA public key generates KeyAlgoRSASHA256/512 signatures.
It's all a bit complicated, but we'll add an example as part of #52132.

It's been a few months, and we've bumped up against this issue again, so I'd love to hear any status from anyone interested in this, who've worked on this, or perhaps you're carrying a patch in some fork because you couldn't wait.
Noting to @cipherboy attention (as a courtesy only).

To add on to @vielmetti wrote, the SSH present in macos Ventura suffers from this issue, so it seems likely we'll start seeing problems related to it crop up more and more.

Ah, I was hoping to do a round of x/crypto/ssh work once the stdlib freeze started, but losing compatibility with a widespread client would make this urgent. I'll look into it next week.
Can you provide some reproduction steps over at #49269 (if that's indeed the relevant sub-issue)? I assume it involves connecting to an x/crypto/ssh server with an RSA public key using the OS stock OpenSSH_9.0p1?
It would help to know what other clients to test, aside from macOS Ventura, if folks encountered breakage elsewhere.

Ah, I was hoping to do a round of x/crypto/ssh work once the stdlib freeze started, but losing compatibility with a widespread client would make this urgent. I'll look into it next week.
Can you provide some reproduction steps over at #49269 (if that's indeed the relevant sub-issue)? I assume it involves connecting to an x/crypto/ssh server with an RSA public key using the OS stock OpenSSH_9.0p1?

yes, this is enough.
I have been using this patch for about 6 months without any issues. Maybe you can use it as a starting point. You can find the full patch set I am using in SFTPGo here. This patch should be replaced with this one. Thanks!

It would help to know what other clients to test, aside from macOS Ventura, if folks encountered breakage elsewhere.

Can you provide some reproduction steps over at #49269 (if that's indeed the relevant sub-issue)? I assume it involves connecting to an x/crypto/ssh server with an RSA public key using the OS stock OpenSSH_9.0p1?
It would help to know what other clients to test, aside from macOS Ventura, if folks encountered breakage elsewhere.

Here's a POC/reproducer: https://github.com/asymmetricia/sshpoc
Aside from Ventura, this issue effects Ubuntu Jammy (22.04) and Debian Sid.

Please test https://go.dev/cl/447757, which is a simplified version of golang/crypto#211.
I also filed #56561 to track the changes necessary to make it possible to turn off ssh-rsa.

Thanks! This is working for me based on the POC I put together:
with the referenced commit:
$ go run .
2022/11/03 16:56:38 OpenSSH_8.9p1 Ubuntu-3, OpenSSL 3.0.2 15 Mar 2022
2022/11/03 16:56:38 ✅ connection succeeded with key id_rsa_client
2022/11/03 16:56:38 ✅ connection succeeded with key id_ed25519_client

with current v0.1.0:
$ go run .
2022/11/03 16:56:45 OpenSSH_8.9p1 Ubuntu-3, OpenSSL 3.0.2 15 Mar 2022
2022/11/03 16:56:45 ⛔ connection failed with key id_rsa_client
2022/11/03 16:56:45 ⛔ debug1: send_pubkey_test: no mutual signature algorithm
2022/11/03 16:56:45 ✅ connection succeeded with key id_ed25519_client

Please test https://go.dev/cl/447757

Thanks @FiloSottile!
I help maintain a (unfortunately closed source) ssh server in go.
We saw the issue described here (newer openssh clients not finding any mutual signature algorithm).
That CL fixes the issue for me, and I haven't seen any other issues from deploying/running with that change.
The diff LGTM too :)

Server-side support for rsa-sha2-256/512 is now in master, and available as version v0.2.1-0.20221112162523-6fad3dfc1891.
@golang/release, can we get a v0.2.1 tag, since this fixes compatibility with a wide range of clients?

If v0.3.0 is okay, I can use it as a chance to test http://go.dev/cl/445955. If you want exactly v0.2.1 some code changes will be necessary.

@heschi sure, v0.3.0, test away :)

Something has gone wonky and some builders haven't run on the release branches for the crypto repository. I'll look harder tomorrow if they don't clean themselves up overnight.

Tagging is blocked because the latest commit encountered a data race: https://build.golang.org/log/08e983d39cbf137a9609419873f7a32e8f354d8f. It'll probably tag the next commit, whatever that happens to be. (Perhaps a fix for that race...?)

Just for tracking purposes,  this doesn't fix the client-half regression mentioned in https://github.com/golang/go/issues/56342

Tagged.

config := ssh.ClientConfig{
  User: user,
  Auth: []ssh.AuthMethod{
	  ssh.PublicKeys(signer),
  },
  HostKeyCallback:   ssh.FixedHostKey(hostKey),
  HostKeyAlgorithms: []string{"ssh-rsa"},
}

"ssh-rsa" is parsed using known_hosts file
"ssh: handshake failed: ssh: no common algorithm for host key; client offered: [ssh-rsa], server offered: [rsa-sha2-512 rsa-sha2-256]"

maybe this should be well documented for HostKeyAlgorithms, or support [rsa-sha2-512 rsa-sha2-256] with [ssh-rsa]

@kzhui125 the ssh-rsa key type supports the old and insecure ssh-rsa signature algorithm (SHA-1 based) and also rsa-sha2-256, rsa-sha2-512. HostKeyAlgorithms sets the accepted signature algorithms.
With the above configuration you are asking the SSH client to only use the ssh-rsa signature algorithm.
The known_hosts file contains the key type not the signature algorithm.
More details


[SPIKE][Document] Utility (M3) Specification - Application Protocol

Objective
Descope and update specifications of M3 - MVP (initial launch) of Application Pocket-specific utility.
This includes, but is not necessarily limited to:

The application lifecycle (staking to network participation)

Staking initiations and modifications
ABR

The goal is to update the V1 roadmap, timelines, documentation, etc. accordingly.
Origin Document
The original utility spec was captured across several conversations compiled here
More recent discussions about the utility spec can be found here
Application Protocol Specification
Goals

Update the Application specification in pocket-network-protocol/utility/

Deliverable

[ ] Updated spec doc
[ ] New mermaid diagrams, where applicable, to improve readability and understanding
[ ] Updated milestones, if applicable

Non-goals / Non-deliverables

Documenting or Implementing the Application Protocol Interface

General issue deliverables

[ ] Update the appropriate CHANGELOG
[ ] Update any relevant READMEs (local and/or global)
[ ] Update any relevant global documentation & references
[ ] If applicable, update the source code tree explanation
[ ] If applicable, add or update a state, sequence or flowchart diagram using mermaid

Creator: @jessicadaugherty

Closing in place of the new approach outline here for M3 task definition.


[AP] Build content guide for Next Build

Description
There is currently a lot of documentation but it is not easy for a user to digest the content.
It would be helpful to have a ReadMe or Github page that could quickly get a developer up and running for developing inside of next-build.
Make sure that any documentation in the repo is represented in this index file.
FAQ that can help a developer quickly find answers to reoccurring problems.
Acceptance Criteria

[ ] Index page created, has been reviewed by other AP team members

Started an index page. Mostly just modified the default readme to be this page. code is on branch origin/next_index_documentation

This ticket moved into Sprint 16 to allow time to meet with Nick so he could review the common issues identified by the rest of the team and provide his feedback. Nick and I met yesterday and reviewed the document.