Maintenance: evaluate migration to Middy 3.x

Description of the feature request
Problem statement
Middy, the dependency that we use to vend middleware has recently released a new major version (v 3.x). This version drops support for Node JS version 12.x and introduces some breaking changes.
Given that Middy, as a whole, has a large surface and we are only using @middy/core we need to investigate on whether there's a path to upgrade to the newer version while still continuing to support Node JS 12.x in Powertools.
Additional context
Running the e2e tests on a branch that upgraded @middy/core to 3.0.1 seems to show that the newer release is compatible with Powertools on both versions 12 and 14 of Node (see run results).
At the same time, the unit tests for that same branch are failing for all utilities and specifically in the section that relates the middleware implementations. The error message (see detail below) seems to hint at incompatibilities between the new bundling of middy that now supports both CJS and ESM bundling, and our project's configuration since the errors are related to the imports and the tests don't run at all.

 FAIL   AWS Lambda Powertools utility: TRACER  tests/unit/middy.test.ts
  ● Test suite failed to run

    Jest encountered an unexpected token

    Jest failed to parse a file. This happens e.g. when your code or its dependencies use non-standard JavaScript syntax, or when Jest is not configured to support such syntax.

    Out of the box Jest supports Babel, which will be used to transform your files into valid JS based on your Babel configuration.

    By default "node_modules" folder is ignored by transformers.

    Here's what you can do:
     • If you are trying to use ECMAScript Modules, see https://jestjs.io/docs/ecmascript-modules for how to enable it.
     • If you are trying to use TypeScript, see https://jestjs.io/docs/getting-started#using-typescript
     • To have some of your "node_modules" files transformed, you can specify a custom "transformIgnorePatterns" in your config.
     • If you need a custom transformation specify a "transform" option in your config.
     • If you simply want to mock your non-JS modules (e.g. binary assets) you can stub them out with the "moduleNameMapper" config option.

    You'll find more details and examples of these config options in the docs:
    https://jestjs.io/docs/configuration
    For information about custom transformations, see:
    https://jestjs.io/docs/code-transformation

    Details:

    /home/ec2-user/aws-lambda-powertools-typescript/node_modules/@middy/core/index.js:1
    ({"Object.<anonymous>":function(module,exports,require,__dirname,__filename,jest){import{EventEmitter}from"events";const defaultLambdaHandler=()=>{};const defaultPlugin={timeoutEarlyInMillis:5,timeoutEarlyResponse:()=>{throw new Error("Timeout")}};const middy=(lambdaHandler=defaultLambdaHandler,plugin={})=>{if(typeof lambdaHandler!=="function"){plugin=lambdaHandler;lambdaHandler=defaultLambdaHandler}plugin={...defaultPlugin,...plugin};plugin.timeoutEarly=plugin.timeoutEarlyInMillis>0;plugin.beforePrefetch?.();const beforeMiddlewares=[];const afterMiddlewares=[];const onErrorMiddlewares=[];const middy1=(event={},context={})=>{plugin.requestStart?.();const request={event,context,response:undefined,error:undefined,internal:plugin.internal??{}};return runRequest(request,[...beforeMiddlewares],lambdaHandler,[...afterMiddlewares],[...onErrorMiddlewares],plugin)};middy1.use=middlewares=>{if(!Array.isArray(middlewares)){middlewares=[middlewares]}for(const middleware of middlewares){const{before,after,onError}=middleware;if(!before&&!after&&!onError){throw new Error('Middleware must be an object containing at least one key among "before", "after", "onError"')}if(before)middy1.before(before);if(after)middy1.after(after);if(onError)middy1.onError(onError)}return middy1};middy1.before=beforeMiddleware=>{beforeMiddlewares.push(beforeMiddleware);return middy1};middy1.after=afterMiddleware=>{afterMiddlewares.unshift(afterMiddleware);return middy1};middy1.onError=onErrorMiddleware=>{onErrorMiddlewares.unshift(onErrorMiddleware);return middy1};middy1.handler=replaceLambdaHandler=>{lambdaHandler=replaceLambdaHandler;return middy1};return middy1};const runRequest=async(request,beforeMiddlewares,lambdaHandler,afterMiddlewares,onErrorMiddlewares,plugin)=>{const timeoutEarly=plugin.timeoutEarly&&request.context.getRemainingTimeInMillis;try{await runMiddlewares(request,beforeMiddlewares,plugin);if(request.response===undefined){plugin.beforeHandler?.();const handlerAbort=new AbortController;let timeoutAbort;if(timeoutEarly)timeoutAbort=new AbortController;request.response=await Promise.race([lambdaHandler(request.event,request.context,{signal:handlerAbort.signal}),timeoutEarly?setTimeoutPromise(request.context.getRemainingTimeInMillis()-plugin.timeoutEarlyInMillis,{signal:timeoutAbort.signal}).then(()=>{handlerAbort.abort();return plugin.timeoutEarlyResponse()}):Promise.race([])]);if(timeoutEarly)timeoutAbort.abort();plugin.afterHandler?.();await runMiddlewares(request,afterMiddlewares,plugin)}}catch(e){request.response=undefined;request.error=e;try{await runMiddlewares(request,onErrorMiddlewares,plugin)}catch(e){e.originalError=request.error;request.error=e;throw request.error}if(request.response===undefined)throw request.error}finally{await plugin.requestEnd?.(request)}return request.response};const runMiddlewares=async(request,middlewares,plugin)=>{for(const nextMiddleware of middlewares){plugin.beforeMiddleware?.(nextMiddleware.name);const res=await nextMiddleware(request);plugin.afterMiddleware?.(nextMiddleware.name);if(res!==undefined){request.response=res;return}}};const polyfillAbortController=()=>{if(process.version<"v15.0.0"){let _toStringTag;let _toStringTag1=Symbol.toStringTag;class AbortSignal{toString(){return"[object AbortSignal]"}get[_toStringTag1](){return"AbortSignal"}removeEventListener(name,handler){this.eventEmitter.removeListener(name,handler)}addEventListener(name,handler){this.eventEmitter.on(name,handler)}dispatchEvent(type){const event={type,target:this};const handlerName=`on${type}`;if(typeof this[handlerName]==="function")this[handlerName](event);this.eventEmitter.emit(type,event)}constructor(){this.eventEmitter=new EventEmitter;this.onabort=null;this.aborted=false}}return _toStringTag=Symbol.toStringTag,class AbortController{abort(){if(this.signal.aborted)return;this.signal.aborted=true;this.signal.dispatchEvent("abort")}toString(){return"[object AbortController]"}get[_toStringTag](){return"AbortController"}constructor(){this.signal=new AbortSignal}}}else{return AbortController}};global.AbortController=polyfillAbortController();const polyfillSetTimeoutPromise=()=>{return(ms,{signal})=>{if(signal.aborted){return Promise.reject(new Error("Aborted","AbortError"))}return new Promise((resolve,reject)=>{const abortHandler=()=>{clearTimeout(timeout);reject(new Error("Aborted","AbortError"))};const timeout=setTimeout(()=>{resolve();signal.removeEventListener("abort",abortHandler)},ms);signal.addEventListener("abort",abortHandler)})}};const setTimeoutPromise=polyfillSetTimeoutPromise();export default middy
                                                                                ^^^^^^

    SyntaxError: Cannot use import statement outside a module

       6 |
       7 | import { captureLambdaHandler } from '../../src/middleware/middy';
    >  8 | import middy from '@middy/core';
         | ^
       9 | import { Tracer } from './../../src';
      10 | import type { Context, Handler } from 'aws-lambda/handler';
      11 | import { Segment, setContextMissingStrategy, Subsegment } from 'aws-xray-sdk-core';

      at Runtime.createScriptFromCode (../../node_modules/jest-runtime/build/index.js:1728:14)
      at Object.<anonymous> (tests/unit/middy.test.ts:8:1)

Code examples
N/A
Benefits for you and the wider AWS community

Describe alternatives you've considered
Not upgrading to 3.x and staying on version 2.5.x
Additional context

Related issues, RFCs
#861

Middy does not support nodejs12.x out of the box, but @middy/core with an additional build step to transpile newer syntax down to es2019 would support running on nodejs12.x. I just tested this using es2019 in our build config with nodejs12.x locally and it tested without issue for @middy/core.
The breaking changes around onError does not affect any middleware within powertools from what I can see.
v2.5.x is very stable and is fine to stay with till AWS itself deprecates nodejs12.x. Because we're community maintained, I have no plans to apply any future updates to that branch. However, I would make an exception for security patches. I don't expect any though because @middy/core doesn't have any runtime dependencies by design and we're passing CodeQL with flying colours currently.

Anecdotally, we are using @middy/core at v3.0.3 with the Powertools middleware with no issues. However we run all our lambdas on Node 16.x so we are not affected by Middy's deprecation of Node 12.x.

I can confirm that at least on my experience @middy/core v3.x doesn't cause issues at runtime.
However I have tried upgrading the dependency in the repo and I have found that it makes the unit tests ran on Node.js 12 fail. At the time of writing we run unit and integration tests on Node.js 12, 14, and 16.
We'll revisit the issue we decide to drop Node.js 12, to track the progress of this decision follow #1061

While migrating the codebase to Node.js 18.x, we have updated the devDependencies and as a part of that effort we have updated @middy/core to version 3.x, which si now also part of our CI tests.
We can consider this issue as complete, we will revisit the Middy version once we drop support for Node.js 14.


Fix uneven padding in Feedback Cards and Tip Callouts

Description of the change: Fixes uneven top/bottom padding in the Feedback Cards and the Tip Callouts
Reason for the change: The top and bottom padding were mismatched because of absolute positioning and margins on text elements within the cards and callouts
Link to original source: Any page that leverages these components

Hello @katieporter,Thanks again for the PR! It's HACKTOBERFEST! We want to show our appreciation by sending                                              you some special Hacktoberfest swag. If you have not already, could you please fill out                                              this form so we can send it to you? Thanks!                                             Team SendGrid DX


Label inconsistency of office-home-RSUT

Hi, thanks for your great work.
I wonder why the labels of images in data/office-home-RSUT/Clipart.txt are not consistent with data/office-home-RSUT/Clipart_UT.txt.

Hi there, thanks for your interest in this work.
The office-home-RSUT data split was provided by the author of the COAL paper (https://arxiv.org/abs/1910.10320). The label space of Clipart_UT and Clipart_RS are consistent, which are used as source and target domain respectively.

Thank you for your reply. Yes, the label space of Clipart_UT and Clipart_RS are consistent, but not with Clipart.txt (and the problem also exists for Products and RealWord). But, anyway, it's not a big problem and I fixed it using labels in OfficeHome :)


[NETBEANS-977] Improve text layout in word wrap mode.

Improve text layout for the NetBeans editor's "word wrap" feature. This makes the word wrap behavior more in line with that of other editors, and makes wrapped text more readable. See detailed description and before/after screenshot (also attached here) at https://issues.apache.org/jira/browse/NETBEANS-977 .

But patch is clean and has tests but it would take me some time to understand what you did there as I'm not familiar with the area. It would be nice to see Miroslav Metelka show up here.
I see you show the line wrap character only if isNonPrintableCharactersVisible is true but honestly I don't know which GUI setting toggles this.

The isNonPrintableCharactersVisible setting can be triggered via the "Toggle Non-printable Characters" action--I assigned it a keyboard shortcut in the Preferences pane to be able to invoke it.
Yeah, when I looked at the historical "git blame", Miroslav was the one who wrote all the related logic (most of it back in 2010).

I have added a few more known issues related to word wrapping in the NetBeans editor, in case anyone who knows the code strolls through and wants to comment:
https://issues.apache.org/jira/browse/NETBEANS-978
https://issues.apache.org/jira/browse/NETBEANS-979
https://issues.apache.org/jira/browse/NETBEANS-980
(Fixing these few word wrapping bugs would increase the IDE's value as a general-purpose editor rather than just a code editor, at least for people who like to write long paragraphs of text without explicit line breaks. Though my own motivation for getting these fixed is because my spreadsheet-like NetBeans Platform application uses the NetBeans EditorKit for its table cell editor and formula bar.)

I've sent an email to ask about Miloslav, let's hope he'll show up soon.

With regards to the problems with the Arrow Up/Arrow Down/Home/End actions in wrapped paragraphs, I've done some investigations that I typed up in https://issues.apache.org/jira/browse/NETBEANS-980 (also closing NETBEANS-979 as a duplicate of the latter, since they turned out to be variations on the same problem).
But this pull request can be reviewed and applied independently of those other issues.

@eirikbakke, how confident are you about this patch, you're currently the most knowledgeable in this area and we should try to not necessarily rely on Oracle staff anymore as far as possible. If there are specific areas where you need help or are less confident about, please say so, but on the face of it this looks like an awesome enhancement that we should accept.

I am not really an expert in this area, but looks reasonable to me.
On Fri, Jun 22, 2018 at 6:49 PM, Eirik Bakke<EMAIL_ADDRESS>wrote:

Improve text layout for the NetBeans editor's "word wrap" feature. This
makes the word wrap behavior more in line with that of other editors, and
makes wrapped text more readable. See detailed description and before/after
screenshot (also attached here) at https://issues.apache.org/
jira/browse/NETBEANS-977 .
[image: wrappingdiff]
https://user-images.githubusercontent.com/886243/41788682-c239bcfe-764c-11e8-9ec3-efa2cbe21fa0.png
You can view, comment on, or merge this pull request online at:
https://github.com/apache/incubator-netbeans/pull/598
Commit Summary

[NETBEANS-977] Improve text layout in word wrap mode.

File Changes

A editor.lib2/src/org/netbeans/modules/editor/lib2/view/
CharSequenceCharacterIterator.java
https://github.com/apache/incubator-netbeans/pull/598/files#diff-0
(104)
M editor.lib2/src/org/netbeans/modules/editor/lib2/view/
DocumentViewOp.java
https://github.com/apache/incubator-netbeans/pull/598/files#diff-1
(20)
M editor.lib2/src/org/netbeans/modules/editor/lib2/view/
HighlightsViewUtils.java
https://github.com/apache/incubator-netbeans/pull/598/files#diff-2
(122)
M editor.lib2/src/org/netbeans/modules/editor/lib2/view/
WrapInfo.java
https://github.com/apache/incubator-netbeans/pull/598/files#diff-3
(2)
M editor.lib2/src/org/netbeans/modules/editor/lib2/view/
WrapInfoUpdater.java
https://github.com/apache/incubator-netbeans/pull/598/files#diff-4
(18)
A editor.lib2/test/unit/src/org/netbeans/modules/editor/lib2/view/
AdjustBreakOffsetToWordTest.java
https://github.com/apache/incubator-netbeans/pull/598/files#diff-5
(278)

Patch Links:

https://github.com/apache/incubator-netbeans/pull/598.patch
https://github.com/apache/incubator-netbeans/pull/598.diff

—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/apache/incubator-netbeans/pull/598, or mute the
thread
https://github.com/notifications/unsubscribe-auth/AAHk8FENI1dG2hG_bqftnFOpUtjyq7nOks5t_SAlgaJpZM4U0HSF
.

Would be good for at least @sdedic to comment, and let's merge then.

The patch seems ok to me, I just do not have all the details regarding the line wrapping code cached in my memory right now.
Visibility of a speacial char denoting line continuation depends on a personal preference and I do not have a strong opinion regarding this. We can imho have it as proposed i.e. only show it when View->Show Non-printable Characters is turned on.

Great! I've actually prepared a few more commits that should be reviewed as part of this patch (improving horizontal scroll behavior in view of the new wrapping policy). But before I push them for review, I'd like to make sure I'm not breaking any existing unit tests.
I'm having trouble [1] running unit tests for the editor.lib2 module, even before the patch is applied. Is anyone able to run the test suite successfully, in particular for this module?
[1] "task failed due to: java.lang.NoClassDefFoundError: org/netbeans/editor/GuardedDocument", e.g. in org.netbeans.modules.editor.lib2.highlighting.HighlightingManagerTest. See email thread on the dev list with subject "Does Travis and/or Jenkins run the NetBeans test suite?"

I've added a few more commits to this pull request, to improve the editor's horizontal scrolling behavior to work well with line wrapping enabled.
I've also confirmed that there are no new broken tests in the editor, editor.lib, and editor.lib2 modules as a result of these commits. Though note that both the editor.lib2 module and the editor module had broken tests before this patch was applied. And the latter modules' tests don't seem to be run by Travis nor Jenkins. (See the email thread on the dev list with the subject "Does Travis and/or Jenkins run the NetBeans test suite?")

@eirikbakke, how far along is this from your point of view? Do you need a review, of what specifically, is it ready to be merged from your point of view, and how confident are you about it?

I think this patch as well as https://github.com/apache/incubator-netbeans/pull/603 is ready now. I have not been able to find any new bugs or test failures introduced by them.
It might be a good general policy to always require at least a cursory review of new commits by someone else than the original author. But there are no blockers from my point of view.

I rebased (and force-pushed) this pull request since changes in the upstream directory structure caused a merge conflict.
I've had the patch enabled (together with https://github.com/apache/incubator-netbeans/pull/603 ) in both my development IDE and my NetBeans Platform application for about a week now, with no ill effects, so I think both of these pull requests are ready to be merged.

I incorporated sdedic's comment and pushed again. (After having to rebase and force-push to fix the directory structure merge conflict, it seems I have to force push again to get the pull request updated. Sorry--I hope it doesn't make the PR history too confusing.)

Is this ready to be merged? Would be great to have in Apache NetBeans 10.

Should be ready, yes.

OK, merging, this has been reviewed a lot and everyone is happy.


GitHub CLI - How to Create a Repo from your Terminal

Getting Started with GitHub CLI
https://dev.to/techturnip/github-cli-how-to-create-a-repo-from-your-terminal-1aeg

https://github.com/cli/cli/blob/trunk/docs/install_linux.md


Dynamically generate profiles from hosts in OpenSSH config files

Summary of the Pull Request
This PR adds a new dynamic profile generator which creates profiles to quickly connect to detected SSH hosts.

References
Closes #9031

PR Checklist

[x] Closes #9031
[x] CLA signed. If not, go over here and sign the CLA
[x] Tests added/passed
[x] Documentation updated. If checked, please file a pull request on our docs repo and link it here: https://github.com/MicrosoftDocs/terminal/pull/594
[ ] Schema updated.
[ ] I've discussed this with core contributors already. If not checked, I'm ready to accept this work might be rejected in favor of a different grand plan. Issue number where discussion took place: #xxx

Detailed Description of the Pull Request / Additional comments
This PR adds a new SshHostGenerator inbox dynamic profile generator. When run, it looks for an install of our Win32-OpenSSH client app ssh.exe in all of the (official) places it gets installed. If the exe is found, the generator then looks for and parses both the user and system OpenSSH config files for valid SSH hosts. Each host is then converted into a profiles to call ssh.exe and connect to those hosts.

Validation Steps Performed
Installed OpenSSH, configured host for alt.org NetHack server, connected and played some NetHack from the created profile.

[x] When OpenSSH is not installed, don't add profiles
[x] Detected when installed via Optional Features (installs in System32\OpenSSH, added to PATH)
[x] Detected when installed via 32-Bit MSI from GitHub (installs in Program Files (x86)\OpenSSH, not added to PATH)
[x] Detected when installed via 64-Bit MSI from GitHub (installs in Program Files\OpenSSH, not added to PATH)
[x] Detected when installed via winget install Microsoft.OpenSSH.Beta (uses MSI from GitHub)
[ ] ~Detected when installed via choco install openssh --pre (out-of-date, but installs to Program Files\OpenSSH-Win64 or Program Files (x86)\OpenSSH-Win32, added to PATH)~
[x] With "disabledProfileSources": ["Windows.Terminal.SSH"] the profiles are not generated

Tests pass, but I don't see an obvious place for adding new tests (there are no existing tests for dynamic profiles).
I'm not sure what Schema needs to be updated.
Working on a paired docs PR.

We've discussed this PR among the team today. We've had a history of generating too many profiles during startup which leads to usability problems when this list for instance gets to too long. For instance my list looks like that by default already when I first launch Windows Terminal:

Long term we'd like to improve this by introducing a nested new tab menu like this:

(See also #13763.)
...as well as adding a revamped settings UI which nests or groups profiles, removing them from the navigation view on the left. Finally, we've been thinking about not adding any generated profiles by default anymore and instead improve the settings UI in such a way that creating/cloning profiles will be much easier. So instead of adding all your SSH hosts all at once you can choose which ones are supposed to show up in your UI first.
While the first one should be landing fairly soon as an initial implementation, we have no design or plans ready for the latter two just yet. But we believe that this PR and the unbounded list of profiles it can generate, requires these improvements to exist first, or otherwise it would swamp users with too many profiles making UI navigation too "annoying".
As such we'd like to hide it behind a feature flag for now similar to Feature_VtPassthroughModeSettingInUI which disables it by default until we can sort out our UI/UX issues. 😕
Would you agree with our reasoning? If not, please let us know! 🙂

Although I would LOVE to have this feature, as I asked in https://github.com/microsoft/terminal/issues/9031#issuecomment-1268946721, I am pleased with this decision. 👍🏻
With over 20 profiles in my .ssh/config I really don't want them all just added to my list of profiles. There are already 7 profiles there, and I have disabled a couple of the default ones. Having a UI to manage that would be great and having the submenus would make it perfect.

Although the idea of this feature is great it would be unusable for serious users of hosts inside OpenSSH config:

As mentioned above: It is unusable for tens of hosts - it would generate too long menu if submenus are not implemented.
It does not scan Include files. Includes are really useful for managing large OpenSSH configuration split for multiple subjects.

Although the idea of this feature is great it would be unusable for serious users of hosts inside OpenSSH config:

As mentioned above: It is unusable for tens of hosts - it would generate too long menu if submenus are not implemented.
It does not scan Include files. Includes are really useful for managing large OpenSSH configuration split for multiple subjects.

I was not aware of the use of Include files. Maybe worthy of a future enhancement to this code? As it stands it already looks like Terminal needs to address the potential menu spamming issue, as well as the dynamic profile bug I found before expanding Terminal with more dynamically generated profiles.

Alright, we chatted about this in sync today. Outside of that issue for profile management we've been chatting about above, this PR is pretty much good to go. So we're going to review/merge it as-is, but hide generating the profiles behind a feature flag.
I'll handle adding the feature flag code, so don't worry about that. :) It'll require me to push to this branch/PR though FYI,
Excited to see this land!

I was not aware of the use of Include files. Maybe worthy of a future enhancement to this code?

In my opinion support for Include files is necessary. Without that the functionality is just partial. Also when hierarchy of profiles is implemented I think every include file should have its directory in the hierarchy by default.
I think that the use of the Include directive is pretty common among serious users of ~/.ssh/config. I personally have no Host entries in the main file. All of them are in the included files. Just few examples:

https://lcguida.com/2020/05/29/organizing-ssh_config-files/
https://www.jamesridgway.co.uk/simplify-ssh-with-ssh-config-files/
https://joshtronic.com/2018/09/28/include-files-in-your-ssh-config/
https://io.adafruit.com/blog/notebook/2016/09/27/ssh-config-includes/

In my opinion support for Include files is necessary. Without that the functionality is just partial

FWIW, I'm not gonna hold this PR up over that. We should file a follow up, to track it, but let's not let perfect be the enemy of the good.

@DHowett I'm gonna remove your block tomorrow if you don't, cause we're merging the nested menu & filtering, AND cause carlos added the velocity flag.

Merge and iterate!

@jonthysell thanks so much for doing this, and putting up with our quite long review cycle!

@zadjii-msft @carlos-zamora somebody may need to merge main! I am not able to do so at the moment

Hi everyone, very glad to have found this PR, thanks for working on this. I've been doing this with a Python script up to now:
https://gist.github.com/phil-blain/2e5a294b79ec26a1729aedab010a9369. This uses the paramiko Python library to parse the SSH config file. A few things I do in my script that this PR does not do (at least from my reading of the changes):

It works for both Host and Match host clauses in the SSH config file (with a patch to paramiko)
It filters out hosts that contain a wildcard character * (since these are not real host names, just "generic" names used in the config file to group settings related to similarly named hosts together)
It uses powershell -NoExit -Command \"ssh {host}\" as the command line, to avoid the  tab being unusable if the connection closes (we are dropped back in Powershell and so can SSH back in manually)
It uses the OpenSSH logo as icon :D (not sure if that's what "ms-appx:///ProfileIcons/{550ce7b8-d500-50ad-8a1a-c400c3262db3}.png"; is )

Just a few suggestions :)


Add util functions to authn k8s service account and CSR

Add util functions to authn k8s service account and CSR.
These util functions will be called by the PR #10657.

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by: lei-tang
To fully approve this pull request, please assign additional approvers.
We suggest the following additional approver: incfly
If they are not already assigned, you can assign the PR to them by writing /assign @incfly in a comment when ready.
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

security/OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

Unit tests will be added today. These util functions will be called by the PR #10657.

Tests have been added.

@lei-tang: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-unit-tests.sh
5faae2954bacb2a1eacad504b19423d3cfbcb192
link
/test istio-unit-tests

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@lei-tang: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/e2e-mixer-no_auth.sh
2aeff62b4c996f546169a784401c8710c23b50a1
link
/test e2e-mixer-no_auth

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@lei-tang: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/e2e-mixer-no_auth.sh
2aeff62b4c996f546169a784401c8710c23b50a1
link
/test e2e-mixer-no_auth

prow/istio-pilot-multicluster-e2e.sh
2aeff62b4c996f546169a784401c8710c23b50a1
link
/test istio-pilot-multicluster-e2e

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/test e2e-mixer-no_auth

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: lei-tang, quanjielin
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

security/OWNERS [quanjielin]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by: lei-tang, quanjielin
To fully approve this pull request, please assign additional approvers.
We suggest the following additional approver: geeknoid
If they are not already assigned, you can assign the PR to them by writing /assign @geeknoid in a comment when ready.
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

[APPROVALNOTIFIER] This PR is APPROVED
Approval requirements bypassed by manually added approval.
This pull-request has been approved by: lei-tang, quanjielin
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment


Allow passing HEADERS=[AUTO/FORCE/DISABLE] st_read() to control xlsx behavior.

This PR makes it possible to pass a HEADERS=[AUTO/FORCE/DISABLE] option to st_read() to control whether or not to read the first row as a header row or not when importing xlsx. We do this by setting a thread local config option programatically before opening the dataset, and resetting it after binding. Previously you would have to set this GDAL config option through an environment variable or an external configuration file, but now its possible to control it per-query and from within duckdb.
Example:
FROM ST_read('./output.xlsx', open_options = ['HEADERS=FORCE']);

Note that this workaround won't be necessary anymore since GDAL 3.8 (scheduled for November...?) as the XLSX options will be possible to pass as open options instead of configuration options natively.

That's great news @Maxxen.
Are you also able to include the only other configuration option "FIELD_TYPES=[STRING/AUTO]".
This would make for a good work-around until the release of GDAL 3.8.

You're right, good catch. I've added FIELD_TYPES=[AUTO/STRING] option as well now.

This PR makes it possible to pass a HEADERS=[AUTO/FORCE/DISABLE] option to st_read() to control whether or not to read the first row as a header row or not when importing xlsx. We do this by setting a thread local config option programatically before opening the dataset, and resetting it after binding. Previously you would have to set this GDAL config option through an environment variable or an external configuration file, but now its possible to control it per-query and from within duckdb.
Example:
FROM ST_read('./output.xlsx', open_options = ['HEADERS=FORCE']);

Note that this workaround won't be necessary anymore since GDAL 3.8 (scheduled for November...?) as the XLSX options will be possible to pass as open options instead of configuration options natively.

even use options，it still wrong for sheet1 in my excel in attachment，please try how to work for sheet1,tkx
!


Directly Adding option

1: On searching source in global
we should add it directly by long pressing the sources in any category we want .
It easier to add from here directly

Duplicate of #151


Add support for renderer backoff, don't FAIL_FAST on 3x failures, add UI

Summary of the Pull Request
Renderer: Add support for backoff and auto-disable on failed retry
This commit introduces a backoff (150ms * number of tries) to the
renderer's retry logic (introduced in #2830). It also changes the
FAIL_FAST to a less globally-harmful render thread disable, so that we
stop blowing up any application hosting a terminal when the graphics
driver goes away.
In addition, it adds a callback that a Renderer consumer can use to
determine when the renderer has failed, and a public method to kick it
back into life.
Fixes #5340.
This PR also wires up TermControl so that it shows some UI when the renderer tastes clay.

PR Checklist

[x] Closes #5340
[x] cla
[ ] Tests added/passed
[ ] Requires documentation to be updated
[x] I've discussed this with core contributors already.

Validation Steps Performed
I tested this by dropping the number of retries to 1 and forcing a TDR while doing wsl cmatrix -u0. It picked up exactly where it left off.
As a bonus, you can actually still type into the terminal when it's graphically suspended (and exit still works.). The block is entirely graphical.

@msftbot make sure @miniksa signs off on this

Looks alright, but I'd like to see @zadjii-msft's questions answered and @cinnamon-msft give this a pass for how it looks before we commit it.

@msftbot merge this in 2 minutes


HTTP_PROXY / HTTPS_PROXY settings ignored, unable to use bastion tunnels.

I discovered when attempting to use the Citrix ADC terraform provider that the environment proxy settings seem to be ignored (citrix/terraform-provider-citrixadc#254).  Digging further, it seems that terraform provider uses this adc-nitro-go library as its underlying client, and the root of the problem lies here.
This broken/absent proxy support makes the TF provider (and this library) practically unusable for us because our ADC management interfaces are nearly always on protected networks which require the use of a jump/bastion host to reach them.
AFAICT this adc-nitro-go lib uses the native golang http packages as its client library which, by default, will respect and use proxy settings defined in the environment (when using the default Transport). One actually has to configure away that functionality by customizing the Transport to disable it.  In this block of code if you just added a Proxy: http.ProxyFromEnvironment parameter to each Transport creation I believe that would restore the built-in proxy support.
if params.SslVerify {
  if len(params.RootCAPath) > 0 {
    caCert, err := ioutil.ReadFile(params.RootCAPath)
    if err != nil {
      return nil, fmt.Errorf("Unable to read certificate file: %v", err)
    }
    caCertPool := x509.NewCertPool()
    if ok := caCertPool.AppendCertsFromPEM(caCert); !ok {
      return nil, fmt.Errorf("Could not Append CA certificate.")
    }
    tr := &http.Transport{
      TLSClientConfig: &tls.Config{
        RootCAs:    caCertPool,
        ServerName: params.ServerName,
      },
    }
    c.client = &http.Client{Transport: tr}
  } else {
    c.client = &http.Client{}
  }
} else {
  tr := &http.Transport{
    TLSClientConfig: &tls.Config{InsecureSkipVerify: true},
  }
  c.client = &http.Client{Transport: tr}
}

Fixed with #11


WIP [ADVISOR-2866] Add workload filter functionality

This PR adds the ability to use global filters and tags filters on the systems tables in tasks. You can apply both in conjunction.

Codecov Report
Patch coverage: 46.87% and project coverage change: -0.91 :warning:

Comparison is base (cc2c428) 85.86% compared to head (a5a9861) 84.95%.

:exclamation: Current head a5a9861 differs from pull request most recent head 3b2e2ff. Consider uploading reports for the commit 3b2e2ff to get more accurate results

Additional details and impacted files
@@            Coverage Diff             @@
##           master      #82      +/-   ##
==========================================
- Coverage   85.86%   84.95%   -0.91%
==========================================
  Files          53       56       +3
  Lines        1160     1190      +30
  Branches      370      380      +10
==========================================
+ Hits          996     1011      +15
- Misses        146      158      +12
- Partials       18       21       +3

Impacted Files
Coverage Δ

src/SmartComponents/SystemTable/hooks.js
15.38% <0.00%> (ø)

src/modules/actions.js
0.00% <0.00%> (ø)

src/SmartComponents/SystemTable/helpers.js
26.47% <14.28%> (-2.11%)
:arrow_down:

src/modules/reducers.js
25.00% <25.00%> (ø)

src/SmartComponents/SystemTable/SystemTable.js
59.25% <90.90%> (+8.09%)
:arrow_up:

src/modules/types.js
100.00% <100.00%> (ø)

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.

I'm not sure if I'm testing it correctly.
I selected a tag in the global filter drop down, which showed "1" as the count, but when I open any of the modals with a systems table it doesn't show any hosts.
When double checking with the Inventory itself, this tag does show one host there with the same tag selected.

@bastilian Yeah, that's an expected behavior, but I think it's a bad user experience. The global filter is a filter on the entire set of systems in inventory. So the single system is there, but tasks further filters the list of systems to only systems that we can run tasks on. So, that single systems is already filtered out by tasks.
Hopefully that makes sense. If not, we can walk through it on a call.


Android 11: Nothing happens

Under Android 11 (Pixel 3), nothing happens when tapping either of the three buttons on the main screen.
Folders, etc. are set up in the settings.

Hi,
thanks for your report.
The next version should resolve any issues currently present on Android 11.


Minor fixes and improvements

build test fine. login good.

@click0 I think there could be some value in making portforwarding configurable, maybe a separate PR to just implement this would make sense. If you require the feature, but you’re not 100% how to implement, I could create a PR myself (but only if you see an actual need).

@bretton even though the pull request has been closed, maybe adding .idea might be a drummroll good idea, as it is a file/directory created by IntelliJ (I had - even bigger drummroll - no idea it was). ;)


Stuck in "Loading: Just wait a minute, some setups are going on in the background ..."

Describe the issue:
I spun up a container, everything seems to have gone well (see command below), but when I visited on my browser, I keep getting "Just wait a minute, some setups are going on in the background ..."
Technical details:

Workspace version :

Docker version : 20.10.6

Host Machine OS (Windows/Linux/Mac): Ubuntu

Command used to start the workspace :
docker run -d -p 8080:8080 --name "ml-workspace" -v "data:/workspace" --env AUTHENTICATE_VIA_JUPYTER="F3t72051089" --shm-size 512m  --restart always  mltooling/ml-workspace:0.12.1

Browser (Chrome/Firefox/Safari): Chrome

@seraphkz Seems like that the Jupyter server did not start correctly, but I haven't seen the problem with this version before. Can you share the container logs as well? This would help a lot in finding out the problem.

qemu: uncaught target signal 6 (Aborted) - core dumped
2021-05-20 05:45:25,355 INFO exited: jupyter (terminated by SIGABRT; not expected)
2021/05/20 05:45:25 [error] 377#0: *1 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: <IP_ADDRESS>, server: , request: "GET / HTTP/1.1", upstream: "http://<IP_ADDRESS>:8090/", host: "localhost:8080", referrer:


Credential rotation on Windows is not Atomic

The credmanager tests for atomic rotation fail on Windows due to the os.Rename() in credmanager.generateCreds() acquiring a handle to the file.  This causes an error in the readKeyAndCert() helper function in the when ioutil.Readfile() attempts to open the file being renamed.
You can see an example here: diego-windows-release - below is the error:
CredManager WithCreds Runner when the certificate is about to expire when the certificate validity is less than 4 hours when 5 seconds prior to expiry [It] rotates the key atomically
C:/diego-windows-release/diego-release/src/code.cloudfoundry.org/executor/depot/containerstore/credmanager_test.go:337
  Expected error:
      <*os.PathError | 0xc04213a870>: {
          Op: "open",
          Path: "C:\\Users\\appveyor\\AppData\\Local\\Temp\\1\\credsmanager516904986\\container-guid-1\\instance.key",
          Err: 0x20,
      }
      open C:\Users\appveyor\AppData\Local\Temp\1\credsmanager516904986\container-guid-1\instance.key: The process cannot access the file because it is being used by another process.
  not to have occurred
  C:/diego-windows-release/diego-release/src/code.cloudfoundry.org/executor/depot/containerstore/credmanager_test.go:326

We were able prove this concept by adding an exported Mutex to the Credmanager package and having it held by credmanager.generateCreds() while renaming and readKeyAndCert() while reading the cert files.  This is obviously not a solution, but it allowed us to isolate the root cause.  Below are the changes we made to POC this.
credmanager.go:
var CredLock sync.Mutex

func (c *credManager) generateCreds(logger lager.Logger, container executor.Container) error {
	// code....
	CredLock.Lock()
	err = os.Rename(tmpInstanceKeyPath, instanceKeyPath)
	CredLock.Unlock()
	if err != nil {
		return err
	}

	CredLock.Lock()
	err = os.Rename(tmpCertificatePath, certificatePath)
	CredLock.Unlock()
	return err
}

credmanager_test.go:
readKeyAndCert := func() ([]byte, []byte) {
	keyFile := filepath.Join(certPath, "instance.key")
	containerstore.CredLock.Lock()
	key, err := ioutil.ReadFile(keyFile)
	containerstore.CredLock.Unlock()
	ExpectWithOffset(1, err).NotTo(HaveOccurred())
	certFile := filepath.Join(certPath, "instance.crt")
	containerstore.CredLock.Lock()
	cert, err := ioutil.ReadFile(certFile)
	containerstore.CredLock.Unlock()
	ExpectWithOffset(1, err).NotTo(HaveOccurred())
	return key, cert
}

Thanks for raising this issue, @charlievieth! Prioritizing for the Diego team to investigate and resolve.
Best,
Eric

@charlievieth Thanks for bringing this up. We have recently added windows unit tests to our CI and are actively monitoring the issue.
Due to the fact that this bug is an pretty extreme edge case, we don't have a clear intended solution, and we have yet to see this failure case in 60+ builds, we are going to close out this issue for the time being. If we start to see this flake in CI / have it become a serious issue, we will re-open this issue/create a new issue to address the problem.
Thanks!
@jfmyers9


Expose environment metadata to be accessed from within environment containers

We need to implement REST for exposing environment metadata to tools running inside of environment containers. We need to make sure the REST call is coming from the environment container, the metadata of which is requested.

Done
Cli is in Kurjun. Can be installed:
apt-get update apt-get install subutai-envinfo
and canbe run
envinfo


Consistently use "prism" namespace

Fixes #57
Even if we rename it, having everything already be consistently renamed
will make that rename easier.

This change is

:+1: Note this'll require updating https://github.com/weaveworks/service/blob/778049f68768bf52122bd7d3b4848bdf3bc033c0/monitoring/grafana/prism.json as well.

Done. See linked weaveworks/service#947


Remove bringup for Linux deferred_components test

Linux deferred_components has been green for 50+ commits: https://ci.chromium.org/p/flutter/builders/prod/Linux deferred components?limit=100

Google testing TAP presubmit passing: https://critique-ng.corp.google.com/cl/398608882/analysis


Switch to RobotJS instead of keysender

Hey,
could you consider switching from keysender to RobotJS? The main problem with keysender is that its windows only (this references #43 )
I'd also like to use this bot while on vacation using my mac or linux notebook. If you're open to it I would try to implement the change and open a PR. If not please let me now so I dont waste any of my time.

Hey, I believe keysender is much richer and robust library, apart from easy window management which robotjs lacks it also allows to use pixel recognition for the background windows (which is needed for multiple fishing and atl-tab modes, but it's for Premium only so let's omit this argument). I do plan to move the bot to nut.js though, which is as good as keysender and should allow to build the bot for both linux and macos.

To be fair I don't have any experience in capturing windows and manipulating input using javascript, all I did was a fast google search and robot seemed to be the more robust one. I've seen nut.js aswell though. So if you're up to it I would give it a shot and open a PR if I succeed.


As a forgetful tutor, I can see tags by students

... so that I can see necessary info such as #python.

Outdated due to evolving changes of the project design

Outdated due to evolving changes of project requirements


Geojson to wkt

Added geojson_to_wkt function. This type of geometry input is commonly used on CDSE and SentinelHub Browsers.
Example:
roi = {"type":"Polygon","coordinates":[[[13.043346,-9.006825],[12.844906,-9.006825],[12.844906,-9.255969],[13.043346,-9.255969],[13.043346,-9.006825]]]}
I also edited the .gitignore to ignore the DS file from macOS, you can use https://www.toptal.com/developers/gitignore?templates=macos,python,dotenv to generate those kind of files.

Thank you very much for your contribution :tada:
I apologize for doing without asking, but I have taken the liberty to add a unit test for your feature, as well as tweak the code until the linters and tests were in order.
This feature will be included in minor release 0.1.3, which i intend on publishing some time tomorrow.

Really appreciate the contribution, thanks a lot!


Website is not functioning

Seems that the site is either really slow or is no longer working. After I upload a photo it freezes. I have tried on 2 browsers plus mobile.

It looks like storage was full. I rebooted the server / removed previously uploaded files. Enjoy.


feat: Hover/GotoDef works in macro invocations and on attributes

Fixes https://github.com/rust-analyzer/rust-analyzer/issues/10271

bors r+

bors r+


[Q] Sweeps with torchun

Hi,
What should I do to use sweep with torchrun
I tried program: torchrun --nproc_per_node=4 src/train.py but it does not work.

Hi @rvandeghen , that's a very good question. Are you using the command sweep argument? You can read more about how to format this here. I would try replacing - ${interpreter} with torchrun and pass the additional params like the examples show.

@aidanjdonohue Indeed after some tests, the correct usage is:
command:
- torchrun
- --nproc_per_node=4
- train.py

as you mentioned. However, it is still not fully clear how to use it when you track the log on only one node.

@rvandeghen, I don't know if I fully understand your question. Could you please elaborate?

@aidanjdonohue I followed https://docs.wandb.ai/guides/track/advanced/distributed-training to log only on one node but I still need to pass the sweep arguments to the other ones. I use torch.distributed.broadcast_object_list() and torch.distributed.barrier() but the script seems to freeze at some point. I still need to debug it.

@rvandeghen, here's a slightly more thorough example.
Have you tried setting WANDB_START_METHOD = "thread" and ensuring that you explicitly finish all runs with run.finish()?

Hi @rvandeghen - following up on this, have you been able to try setting WANDB_START_METHOD = "thread"?

@aidanjdonohue I followed https://docs.wandb.ai/guides/track/advanced/distributed-training to log only on one node but I still need to pass the sweep arguments to the other ones. I use torch.distributed.broadcast_object_list() and torch.distributed.barrier() but the script seems to freeze at some point. I still need to debug it.

Hi @rvandeghen , I've also encountered this problem. Have you solved this problem?

same. how to specify master_port in torchrun? the sweep is quite incompatible with distributed torch, how to configure wandb sweeps with torchrun master_port?
the yaml looks like
command:

"torchrun"
"--nproc_per_node=2"
${program}

If we do wandb sweep xx.yaml and then wandb agent/yyyy, it would get RuntimeError: The server socket has failed to listen on any local network address. The server socket has failed to bind to [::]:29500 (errno: 98 - Address already in use). The server socket has failed to bind to ?UNKNOWN? (errno: 98 - Address already in use), even if I set os.environ['MASTER_PORT'] internally, because the bug occurs before the line of code.


Write an OBSolve.set_field_rabi_freq_t_func() method

This will take a field_idx as an argument, and allow us to set a custom t_func for a field.
This should call the OBAtom.build() method afterwards, so this issue is dependent on #64.

[] Add unit tests


conda-forge package

Hello @raphaelvallat,
this is basically a copy of https://github.com/raphaelvallat/antropy/issues/18 :) but for yasa
I've taken the liberty to add you as a co-maintainer to the yasa conda-forge feedstock. Please let me know if that's okay with you! (I just assumed it was)
Again, it might be worthwhile to amend the installation instructions:
https://github.com/conda-forge/yasa-feedstock#installing-yasa
btw we're planning to include yasa in the next MNE-Python stand-alone installers:
https://github.com/mne-tools/mne-installers/pull/137
Best wishes,
Richard

Oh wow, this is such a great honor!! Why do you need to include YASA?

Oh wow, this is such a great honor!! Why do you need to include YASA?

The idea behind the MNE installers is that ideally they ship a comprehensive Python environment that allows most users to get their work done without having to manually install additional packages. We're, in fact, including a fairly large number of packages! See: https://github.com/mne-tools/mne-installers/blob/1b9e801144d91527b401b7b138a8cbc0fd5fcd90/recipes/mne-python_1.1/construct.yaml#L67-L130
As for yasa, I didn't know this package until a few months or so ago, when a user mentioned it on the MNE forum. I have since then recommended it a few times to forum users and colleagues for certain analyses / visualizations. It's super nicely done and well-documented!
Here are the forum topics where the yasa was mentioned:
https://mne.discourse.group/search?q=yasa order%3Alatest_topic


[RFC] Adding RTC API

Hi,
I'm working on a RTC driver for stm32. Currently in Zephyr, RTC is used as a counter. In my project, I would like to use it at a real clock time to timestamp my data. I also integrated this driver in  clock_[get/set]time. I'm open to all suggestions to improve it. In the future, I would like to integrate also alarm

I made this change:

Add CONFIG_RTC_LOG_LEVEL
add rtc features on some boards
add driver rtc api test
rtc_stm32_gettime: fix bug on subSeconds calculation

I created a pull request (#23630) for commit d9fb1f5f19352e8e96db4786dd2329f520184114

Now, I used snake case for rtc driver api .
I removed commit about clock_[get/set]time into system calls

Fix some indents

API Meeting:

A combination of the counter API + translation functions (from ticks to civil time) will already cover this usecase
We need more implementations of RTCs using the counter API before we can actually proceed to extract the common parts into its own API
We need more input from users and contributors interested in RTC in order to make the right decision

Proposal: continue to use this PR to discuss what an RTC API should look like alongside the API meeting. @tbursztyka @pabigot @nordic-krch @tbursztyka @jdascenzio: let's continue the discussion here and please join the API meeting if possible to find out what the API should look like.

I have an RTC driver pending too. I was planning to suggest an extension of the counter API to cover the civic time part of the RTC. I will try to finalise my take on this for the next API meeting.

I have an RTC driver pending too. I was planning to suggest an extension of the counter API to cover the civic time part of the RTC. I will try to finalise my take on this for the next API meeting.

 I would be interested in your extension solution. For me, the problems I have with the counter API is:

The type of counters is int which is a problem for 32bit platforms with 2038 bug.
There is no API to set the current value

I wrote also an RTC driver for the microcrystal rv3029 component. I'm waiting to see which RTC management solution is chosen to offer it to the community

Regarding the rtc api, I would appreciate if we could maintain the clock through a mcu reboot.  Please see #24625

Please also add this api should consider those situations where the rtc is used to generate the system tick.
It may also be helpful to consider rtc timers.  Some soc rtc's can generate one or more interrupts from the rtc either directly or using the event system.  A setup and callback api (similar to K_TIMER?) would be useful.

his api should consider those situations wh

@sslupsky can you check that current RTC based counter driver is not already answering this particular need?

@erwango At the moment, there is no rtc counter driver for the sam0 in drivers/counter.  The system timer for the sam0 uses the soc rtc though (drivers/timer/sam0_rtc_timer.c).  I am recommending we consider this dual purpose in the scope of the rtc api since the rtc could be used for both purposes.

The TI cc13x2 and cc26x2 sac's use an rtc for the system timer as well (drivers/timer/cc13x2_cc26x2_rtc_timer.c).

I did a review of #17631 and an item comes to mind related to the rtc api discussion here.  We should probably define what value the rtc counter stores?  Is it UTC?  If so we need to have an api that informs about location so that local standard time / civil time can be derived.  We probably need hooks in there to coordinate with GNSS as well.  Which brings up another zephyr api requirement highly related to time which is GNSS location.
Another thought is to provide for a rtc temperature compensation api.

@pabigot Yes, I think you are correct about the set of libraries.  It would be great if these libraries could detect changes and adapt and report time accordingly.  For example, geo location informing the time library would be helpful.

At this time, I have some issues with the counter API for these reasons:

The counter is reset to 0 during initialization (at least for the STM32). I need to keep the datetime after a power cut or after waking up from a deep sleep mode
It isn’t possible to set a value
The counter is only 32bit: The precision is only at the second and there is 2038 bug for unix epoch time
These are the main reasons that led me to propose this API.

At this time, I have some issues with the counter API for these reasons:

The counter is reset to 0 during initialization (at least for the STM32). I need to keep the datetime after a power cut or after waking up from a deep sleep mode

Agreed.  There must be some way to specify that the counter should not be reset (and, if running, should not be stopped) during driver initialization.
It may be sufficient to just document that as an expectation, and correct this behavior in STM32.  Gratuitously resetting a running counter on initialization seems like bad idea in general and for low-power devices specifically, regardless of whether what it's counting is the passage of time.

It isn’t possible to set a value

That can be fixed by adding a counter_set_value() function that is implemented where the hardware allows it, understanding that doing so probably stops and restarts the counter.
It could also be supported without mutating the running counter value by instead adding API to store a (signed) offset that's added to the current counter value whenever it's read (through a new counter_get_adjusted_value() API).

The counter is only 32bit: The precision is only at the second and there is 2038 bug for unix epoch time

Agreed, but again we could add counter_get_value_64() for drivers that support rollover into a larger representation; and/or integrate that with an API that manages offsets.
The original Zephyr RTC and COUNTER APIs were discarded when the new COUNTER API was added in part because the differences between RTC and COUNTER weren't considered important.  I think the RTC use case could have had a larger impact on the original design of COUNTER, and it may well turn out that COUNTER isn't the right core API, but for now that underlying similarity is pretty strong.

It may be sufficient to just document that as an expectation, and correct this behavior in STM32. Gratuitously resetting a running counter on initialization seems like bad idea in general and for low-power devices specifically, regardless of whether what it's counting is the passage of time.

Agreed ... but ... I considered what you suggested here but bumped into the definition of the system timer.  It appears the zephyr system timer api defines that time starts at zero at boot?  Can that be changed?  If this definition is set in stone we probably need to consider multiple times, the zephyr system time and the real time(s) and have api's to synchronize them and maintain offsets at boot, time source (ntp), geo location (timezone, gps, wifi, etc), another counter (ds3231, etc), etc.

Agreed ... but ... I considered what you suggested here but bumped into the definition of the system timer. It appears the zephyr system timer api defines that time starts at zero at boot? Can that be changed?

IMO no, the system time should always represent time-since-startup (with some wiggle for deep-sleep periods).  Real time is a different clock.

API 2020-07-07: Moved from triage to To-Do pending submission of draft proposals by @pabigot, @henrikbrixandersen, or others.

@jdascenzio is this PR going to recieve any updates? I'm planning to start work on something similiar, since my system require something similiar, but it does not make sense if this is going forward.

@jdascenzio is this PR going to recieve any updates? I'm planning to start work on something similiar, since my system requires this, but it does not make sense if this is going forward. I can contribute if it get's approved.

For now, I have stopped to work on it. I used this driver which suits me for the moment. Maybe @pabigot or @henrikbrixandersen will make a draft to add some of these functionalities in driver counter....

For now, I have stopped to work on it. I used this driver which suits me for the moment. Maybe @pabigot or @henrikbrixandersen will make a draft to add some of these functionalities in driver counter....

The architecture design I still support is that counters continue to provide an integer interface, and things like timeutil_timegm64 and gmtime are used to translate between civil and integer time representations to allow a counter to support civil time maintenance and alarms.  There are also supporting capabilities necessary to:

register civil time against the local clock (without that being restricted to CONFIG_POSIX=y);
accommodate leap seconds and local time offset changes for people who require them; and
compensate for local clock skew.

I have draft support for the pieces of that that are important to me (1 and 3), but they didn't make the 2.4.0 deadline.  I expect to get them posted around the time 2.5.0 development opens up in a few weeks.

Hello world :-) I also create set time by manual time shift on set add.. but this is not preserved across reboots. I have created a feature request for RTC framework here: https://github.com/zephyrproject-rtos/zephyr/issues/35333 :-)


Fix Viewport and Camera issues

Commit 1: Fix Viewport and Camera issues

Consider 'own_world' as well as 'world' to stop propagating enter/exit world notifications.
Clean & fix handling of camera currency.

This fixes some random crashes and error logs in the editor; namely

when enabling/disabling own world in a Viewport;
when switching back from a subscene displayed into a main scene's Viewport;
when exiting the editor after any of them;
memory corruption (can that explain certain other seemingly unrelated crash reports?).

This also fixes situations where a Viewport and its main Camera get out of sync about which World is relevant to them.
Commit 2: Drop mouseover when mouse not in the window
Not that this is critical, but it makes behavior of GUI and 2D/3D picking consistent among them.
This also contributes to dropping GUI focus when the mouse leaves the window (in addition to when it loses focus).

Commit 2 could very well wait for 3.1.1, but it's not dangerous. Furthermore, I've created a test project that ensures lately changes in picking code haven't broken anything. https://github.com/RandomShaper/godot-picking-test
UPDATE: Commit 2 moved to its own PR since it contains a behavior change (yet small), and is better for 3.2., with no cherry-picking.

still have doubts on this one, does seem to break compat to me

Well, the code now looks rather different, but I strove to keep everything working as formerly:

MAKE_CURRENT/LOST_CURRENT notifications are fired in the same cases;
the first camera is made current until another one with current = true enters;
etc.

What really changes is the bookkeeping, so to say, but it's to make it more robust.
I noticed some crash situations and weirdness while creating a test project that were gone after these changes. Furthermore, observed behavior kept the same, as far as I was able to test.

@RandomShaper It sounds like this should be ready to merge now, but just checking with you in case things changes since April.

I've had a quick look. It should be OK to merge.

Thanks!


What's the benefit of "higher-order effects", e.g. local

Following up from https://github.com/re-xyr/cleff/issues/31#issuecomment-2096089076 and https://github.com/tomjaguarpaw/bluefin/pull/14#issuecomment-2097944270, I don't understand why "higher-order effects" are useful, as opposed to just writing handlers. @re-xyr clarifies that

The difference between a higher-order operation and a handler is that the former is an abstraction of the latter, just like how a (first-order) effect operation is an abstraction of a monadic action.

but I still can't think of an example of a higher-order effect that couldn't be implemented just as well as a handler. For example, MonadReader has
local :: (r -> r) -> m a -> m a

but why is local f m that better than (in Bluefin terms)
\reader -> do
    r <- ask reader
    runReader (f r) m

I am also on the confused side. In addition to use cases, it would also be nice to clarify the semantics. By that I mean that cleff and effectful currently just give you unsafe primitives (toEff, withEffToIO) to deal with them. They are unsafe because they allow you to run a computation outside of the handler for its effects. Is there a safe API, or are there guidelines for how to safely handle higher-order effects?

I believe there is a naturality requirement, perhaps local (m1 >=> m2) = local m1 >=> local m2? Does that help clarify the semantics?

I meant a semantics for higher-order effects in general (though I admit it's not a clearly defined question).
I think local is well understood enough but also not a great example because it can be implemented as either a handler of the reinterpret variety (which in bluefin corresponds to intercepting a handle), or even more simply using state.

I think the same condition might generalise to other higher-order effects. For example, there is the notion of "control operator" from Definition 4 of the Arrow notation paper (although maybe that only works with "order 2" effects, where m can appear on the left on an arrow, but only at "order 1").

They are unsafe because they allow you to run a computation outside of the handler for its effects.

Do you have an example?

{-# LANGUAGE DataKinds, GADTs, ScopedTypeVariables, TypeFamilies, TypeOperators #-}

import Effectful (Eff, runEff, DispatchOf, Dispatch(..))
import Effectful.Dispatch.Dynamic (interpret, localSeqUnlift, send)
import Effectful.Error.Static (runErrorNoCallStack, throwError)
import Effectful.State.Static.Local (evalState, get, put, State)

data Profiling m a where
  Profile :: m () -> Profiling m ()

type instance DispatchOf Profiling = Dynamic

-- Stateful computations where the state is a stateful computation
newtype StateEff es = StateEff (Eff (State (StateEff es) ': es) ())

-- Use localSeqUnlift to smuggle a throwing computation to a pure environment into a put
test :: Eff es ()
test = evalState (StateEff (pure ())) $ do
  interpret
    (\env (Profile m) -> localSeqUnlift env (\unlift -> put (StateEff (unlift m))))
    (runErrorNoCallStack (send (Profile (throwError ()))) >>= \(e :: Either () ()) -> pure ())
  StateEff throw <- get
  throw

main :: IO ()
main = runEff test

Runtime error:
version (4) /= storageVersion (0)
CallStack (from HasCallStack):
  error, called at src/Effectful/Internal/Env.hs:358:5 in effectful-core-<IP_ADDRESS>

@Lysxia I'm happy that you brought up the topic of type safety! It's been on my mind for a long time that cleff needs an API redo of some sort to make it type safe, but I wasn't sure what to do exactly.
I have put some of my ideas on the SpEff repo -- could you please take a look, specifically with finding type unsafeness in mind? I'm sorry I couldn't put up the documentation on Hackage; I didn't want to pollute the registry with a toy project that I wrote for a talk.

@Lysxia I see. Well, if you're clever enough you can write unsafeCoerce, it's just that it doesn't work at runtime (as your example doesn't). I thought you had something that worked.

I see you gave my comment a "thumbs down". Is there something you could elaborate on? Are you upset with my lack of understanding, or my suggestion to move the discussion elsewhere?

That was for "I don't understand why local, listen and StateM are useful". I misinterpreted your confusion / lack of understanding as criticism / dismissal of the higher order effects; my bad.

My understanding is:
Using handlers bakes in specific interpretations of effects into your programs, whereas using higher order effects defers the interpretation of those operations until the end.
I think you could get closer to the behavior of higher order effects if your value-level effects stuff included the handler. Some pseudocode (I don't know bluefin):
 \reader -> do
     r <- ask reader
-    runReader (f r) m
+    run reader (f r) m

I misinterpreted your confusion / lack of understanding as criticism / dismissal of the higher order effects; my bad.

Ah, that's OK. Online communication makes misunderstandings easy.

Using handlers bakes in specific interpretations of effects into your programs, whereas using higher order effects defers the interpretation of those operations until the end.

Right, that makes sense to me I think I'm comfortable with the idea now.

Hopefully that makes sense.

Yes, I think the idea makes sense.
I'm still a bit confused about the purpose of any form of higher-order effects, especially since handlers can depend on handles, so they need not actually "bake in" specific interpretations.

Figured I'd mention some further reading:
freer-simple is an example of an older effects library, written by Alexis King, that only supports first order effects, and "emulates" (not sure the best word here) higher order effects by using handlers.
In practice, this is functions like local, catch, bracket, etc; anything taking an Eff thing in negative (argument) position.
Sandy Maguire has talked about this, and specifically referenced freer-simple, in these articles:

Freer, yet Too Costly Higher-order Effects
Polysemy Internals: Freer Interpretations of Higher-Order Effects

I'm still a bit confused about the purpose of any form of higher-order effects, especially since handlers can depend on handles, so they need not actually "bake in" specific interpretations.

Unfortunately I don't know enough about bluefin and "handles" here to understand how it differs from libraries like freer-simple that bake specific interpretations into programs using concrete handlers ☹ Sorry

Thanks, those references are very helpful. I suppose the reason that I am struggling to understand is that I have almost entirely avoided learning about effect systems, and their difficulties, so far. Until IO-based effect systems (effectful was the first, I believe), they seemed far too complicated to be practical. Given my (lack of) background I see two possible outcomes

I am just far too naive about higher-order effects. They are tremendously subtle and Bluefin is going to run aground because I haven't paid attention to them.

Authors of previous effect systems have tied themselves up in knots with higher-order effects but for IO-based[^1] effect systems the problems simply don't exist.

Below is how I would implement the "logging catch" example, from the article you linked, "Polysemy Internals: Freer Interpretations of Higher-Order Effects", in Bluefin. In this case it's easy to dynamically configure the behaviour of catch. How? Just by passing an argument in!
{-# LANGUAGE GHC2021 #-}

import Control.Monad (when)
import Bluefin.Eff
import Bluefin.Exception
import Bluefin.State
import Bluefin.Stream

-- The type of a "dynamic catch handler", also
-- known as a "higher order catch effect"
newtype DynamicCatch es =
  DynamicCatch
  (forall e a.
   (forall e1. Exception e e1 -> Eff (e1 :& es) a) ->
   (e -> Eff es a) ->
   Eff es a)

-- Run the dynamic catch handler
dynamicCatch ::
  DynamicCatch es ->
  (forall e1. Exception e e1 -> Eff (e1 :& es) a) ->
  (e -> Eff es a) ->
  Eff es a
dynamicCatch (DynamicCatch dt) = dt

-- An example of using a dynamic catch handler.
-- The Bool argument determines whether we
-- should throw. We log what we do with a Stream
-- and there's a State in there too, for good measure.
useDynCatch ::
  Bool ->
  (forall es e. e :> es => Stream String e -> DynamicCatch es) ->
  [String]
useDynCatch shouldThrow dyncatch =
  runPureEff $
    fmap fst $ yieldToList $ \y ->
      evalState @Int 0 $ \st -> do
        modify st (+1)
        dynamicCatch (dyncatch y)
          (\ex -> do
              yield y "Running body"
              when shouldThrow (throw ex ())
              modify st (+1)
              yield y "Didn't throw"
          )
          (\() -> do
              yield y "Threw"
          )
        s <- get st
        yield y (show s)

-- Just the standard catch
--
-- ghci> example1 True
-- Running body
-- Threw
-- 1
--
-- ghci> example1 False
-- Running body
-- Didn't throw
-- 2
example1 :: Bool -> IO ()
example1 shouldThrow =
  mapM_ putStrLn $
    useDynCatch shouldThrow (\_ -> DynamicCatch catch)

-- A "logging catch"
--
-- ghci> example2 True
-- Running body
-- Annotated dynamically: unsuccessful
-- Threw
-- 1
--
-- ghci> example2 False
-- Running body
-- Didn't throw
-- Annotated dynamically: successful
-- 2
example2 :: Bool -> IO ()
example2 shouldThrow =
  mapM_ putStrLn $
    useDynCatch shouldThrow $ \y ->
      DynamicCatch $ \body handler ->
        catch
          (\e -> do
              r <- body e
              yield y "Annotated dynamically: successful"
              pure r)
          (\i -> do
              yield y "Annotated dynamically: unsuccessful"
              handler i)

[^1]: or possibly "IO-based effect systems with explicit handles"

After the discussion on Discourse under What is a higher-order effect I now understand the situation better. The point is that the type of local should be
local ::
  e1 :> es =>
  Reader r e1 ->
  (r -> r) ->
  Eff es a ->
  Eff es a

and not
```.hs
local ::
  e1 :> es =>
  Reader r e1 ->
  (r -> r) ->
  (forall e. Reader r e -> Eff es a) ->
  Eff es a

because we want to locally modify the reader state in a way that will be used in handlers that were defined in terms of the input Reader. Here's an example in effectful

https://github.com/haskell-effectful/effectful/blob/a70cf0cbf1fe7adeb5d1a0fef48b90e2aa914052/effectful/tests/ReaderTests.hs#L25-L29

and the Bluefin equivalent

https://github.com/tomjaguarpaw/bluefin/blob/2dd297f3c988b01453a8cb650f6a28003b88acb6/bluefin-internal/test/Main.hs#L160-L164


Could swc/core/visitor get some information like scope ,parent node ...

Describe the feature
Like babel-traverse ， when I visit  some node of AST , I can get  scope,path ,state 。
Babel plugin or link to the feature description
No response
Additional context
No response

https://rustdoc.swc.rs/swc_ecma_visit/trait.VisitMutAstPath.html

https://rustdoc.swc.rs/swc_ecma_visit/trait.VisitMutAstPath.html
Can I  use in Node Project?


Fix setLocaleDescription/setRemoteDescription to match RTC standard

Fixing #479

@zxcpoiu can you have a look a this PR please ?

Hello @saghul @zxcpoiu, any chance to have your comment about this PR ? It fix an issue we have with sip.js.
Thank you.

It seems no hurt to merge, but I'm curious how could happen if we always pass new RTCSessionDescription() as sdp object. see: https://github.com/oney/react-native-webrtc/blob/master/RTCSessionDescription.js
Does RTCSessionDescription api be changed in the newly spec?

Hello @zxcpoiu,
Yes, RTCSessionDescription() is now deprecated.
Some librairies begins to remove it.
We can't rely on RTCSessionDescription it from now.

Thank you!


Fix S3 Integration

S3 regions are now specified as us-west-2 instead of US_WEST_2 in S3 plugin 0.7

Thank you for a pull request! Please check this document for how the Jenkins project handles pull requests

This breaks the DSL scripts for all users who did not update the S3 plugin to 0.7, which is not acceptable. I recommend to downgrade the S3 plugin to 0.6 and wait for a new release of that plugin. The issue has already been fixed, but not released. See JENKINS-26561 and https://github.com/jenkinsci/s3-plugin/pull/46.

I rebased and merged this manually. And fixed the compatibility issues.


Flow is not clear

I created a ss file which looks something like this :
+ hi
- Hi. Welcome to macy's.
^ How can I address you as?{topic=newcustomer}

> topic newcustomer
+ *1
- ^addCustomer(<cap>).
^ Hi <cap>. Can I take your order? {topic=order}
< topic

> topic order
+ (*)
- ordered <cap>. ^storeOrder(<cap>)
< topic

The idea is to flow from the initial conversation to newcustomer topic to order topic. This doesnt seem to work as expected ( perhaps because both newcustomer and order have (*) ? ) . My expectation is that once I change the topic to order, it should only match things in order and not even look in newcustomer ?
With this ss file I expect a conversation like this :
hi
- Hi. Welcome to macy's. How can I address you as ?
jack
- Hi Jack. Can I take your order ?
pizza
- ordered pizza.

But I believe it goes to
- Hi pizza. Can I take your order ?

So I would avoid using {topic=...} All this does is sets the recommended next topic on the next reply but does not guarantee a mach. You could also get false positive matches out of context.
Instead you will probably want to use a conversation rely.
+ hi
- Hi. Welcome to macy's.
^ How can I address you as?

  + *1
  % * How can I address you as?
  - ^addCustomer(<cap>).
  ^ Hi <cap>. Can I take your order?

    + (*)
    % * Can I take your order?
    - ordered <cap>. ^storeOrder(<cap>)

Ok. I will test this out tonight and let you know. Thanks for that. This example also showed me how I could use wildcards in % style conversations. In your documentation, that was not clear and I did not know I could do that.

Hmmm.. I went ahead and had a look at the documentation page . The conversation example looks like this :
  % What is your favorite color?
  + *1
  - <cap> is mine too.

While in your example above the order of % and + is reversed. Which order is right ? Or does the order not matter ?

Sorry, the docs have it backwards. Ill push out an update.
Here is the tests examples
https://github.com/silentrob/superscript/blob/master/test/fixtures/continue/main.ss


Allow CORS by handling OPTIONS requests

When developing a web application connecting to CircuitPython_WSGI, it's practical to have the web server on the host, and make query to Adafruit_CircuitPython_WSGI from the web application.
In such a scenario, non GET requests are forbidden at the browser level if we don't handle CORS and OPTIONS requests.
I've made a few modifications to handle it unconditionally (allowing all types of requests from any host). Is there any security consideration not to do this ?
I'll post a PR for this shortly.

I don't see any issue with adding CORS and OPTIONS request support; they'll be useful for sure!

Thanks Dan, and yes, CircuitPython_HTTPServer meets my needs.


beaker does not work with ipython3 (installed via homebrew and pip)

I followed the tutorials in the wiki where it lists required python dependencies and how to edit beaker.pref.json:
{
  "pref-format" : "1",
  "allow-anonymous-usage-tracking" : false,
  "edit-mode" : "default",
  "theme" : "default",
  "languages": {
    "IPython": {
      "path": "/usr/local/bin/ipython3"
    },
    "Python3": {
      "path": "/usr/local/bin/python3"
    }
  }
}

When I visit the local website I see in the chrome console a 502 Bad Gateway towards http://<IP_ADDRESS>:8805/b1553d1/ipython.988422750461/login
I tried latest 5.1.2 and 5.1.3 from beaker

See the wiki: https://github.com/twosigma/beaker-notebook/wiki/Language-Preferences
In Beaker, IPython means Python2, so you should remove that, and not try to start it in Beaker (or also install it, so you can run the documentation).
and the path you have for Python3 is wrong, it should be to the directory, not to the executable.

I got not:
{
  "pref-format" : "1",
  "allow-anonymous-usage-tracking" : false,
  "edit-mode" : "default",
  "theme" : "default",
  "languages": {
    "Python3": {
      "path": "/usr/local/bin"
    }
  }
}

but I still get 502 Gateway Error.
Is there something I can do to see what happens on the server side for debugging purpose?

yes, open the Console application and search for "Beaker"

So I built the server from scratch and I see:
0: /private/tmp/beaker-notebook/core/config/plugins/eval/ipythonPlugins/python3/python3Plugin
1: 8820
Python3-stderr>Traceback (most recent call last):
Python3-stderr>  File "/private/tmp/beaker-notebook/core/config/plugins/eval/ipythonPlugins/python3/python3PluginStart.py", line 19, in <module>
Python3-stderr>    from IPython import start_ipython
Python3-stderr>ImportError

Because home-brew per default installs python 3 as python3 I also done a ln -s to python.

that looks like an incomplete python, make sure pip install all the dependencies:
ipython jinja2 tornado pyzmq pandas jsonschema jupyter

also possible: what version of ipython do you have?
maybe a newer version has removed this function.

yeah deps are installed - ipython version is 4.1.2

I tried  on the mac os 10.11.4
bash-3.2$ ipython -V
4.1.2
All works fine. Did you use anaconda for installing python?

No I used home brew guess there are some differences in how both install Python?

Am 01.04.2016 um 14:05 schrieb kpaharelau<EMAIL_ADDRESS>I tried on the mac os 10.11.4
bash-3.2$ ipython -V
4.1.2
All works fine. Did you use anaconda for installing python?
—
You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub

I used
*python 2.7
brew install python
pip install ipython jinja2 tornado pyzmq pandas jsonschema jupyter
pip install numpy matplotlib scipy

*python 3.5
brew install python3
pip3 install ipython[notebook] jupyter
pip3 install numpy matplotlib scipy jinja2 tornado pyzmq pandas pyaml

in pref file
 "Python3" : {
      "path" : "/usr/local/Cellar/python3/3.5.1/bin"
    }

Ah yep this works for me now (editing the pref file). Maybe we can update the wiki to this?

I need more time for additional research. I think wiki will be updated on monday.

Okay thank you!


fix text in portuguese

fix text in portuguese.

[ x] I have read freeCodeCamp's contribution guidelines.
[ x] My pull request has a descriptive title (not a vague title like Update index.md)
[x ] My pull request targets the master branch of freeCodeCamp.
[x ] None of my changes are plagiarized from another source without proper attribution.
[x ] All the files I changed are in the same world language (for example: only English changes, or only Chinese changes, etc.)
[x ] My changes do not use shortened URLs or affiliate links.

Closes #XXXXX

@CleoAguiar Could you review this PR's changes match the current English version of the documentation?
Thank you

@CleoAguiar Could you review this PR's changes match the current English version of the documentation?
Thank you

This PR's changes do match the the old version of the documentation

This PR's changes do match the the old version of the documentation

@CleoAguiar What would need to be changed in this PR to make it match the current English version of the document?  If you tell me which lines need to be changed, I will add a new commit with the changes and merge the PR.


Label discordnim as discontinued

If you are wondering why

Hello, thanks for informing me. I will merge this PR.


When I drag the image onto the canvas, it opens a new tab with the image rather than drawing the image

Facing same issue


Add test coverage toggling [aria-busy] for GET Form Submissions

Coverage for 954
Assert that [aria-busy="true"] at the start of a GET request
initiated by a <form> element and handled as a page-wide navigation by
Turbo Drive.

Thanks @seanpdoyle 👍


Is it possible for Zuul to call itself via a filter?

I know it's possible for Zuul to make a request to an endpoint backed by one of its custom REST controllers. However, this internal call is not routed through any of its Zuul Filters.
I am trying to find out if it's possible to route an internal call through one or more of its Zuul filter(s).

SendForwardFilter .
zuul:
  routes:
    abc:
      path: /abc/**
      url: forward:/abc

I had to change the route a little bit to make it work. Here is the modified route,
zuul:
 routes:
   abc:
     path: /abc/**
     url: forward:/

If the url is set to forward:/abc, I get 404 since it gets forwarded to /abc/abc.
Though I get a response that I was expecting, I noticed an exception stack trace in Zuul. Here is the trace,
Caused by: java.lang.IllegalStateException: WRITER
	at org.eclipse.jetty.server.Response.getOutputStream(Response.java:917) ~[jetty-server-9.4.6.v20170531.jar:9.4.6.v20170531]
	at javax.servlet.ServletResponseWrapper.getOutputStream(ServletResponseWrapper.java:100) ~[tomcat-embed-core-8.5.16.jar:8.5.16]
	at org.springframework.cloud.sleuth.instrument.web.TraceHttpServletResponse.getOutputStream(TraceHttpServletResponse.java:54) ~[spring-cloud-sleuth-core-1.2.4.RELEASE.jar:1.2.4.RELEASE]
	at javax.servlet.ServletResponseWrapper.getOutputStream(ServletResponseWrapper.java:100) ~[tomcat-embed-core-8.5.16.jar:8.5.16]
	at javax.servlet.ServletResponseWrapper.getOutputStream(ServletResponseWrapper.java:100) ~[tomcat-embed-core-8.5.16.jar:8.5.16]
	at org.springframework.cloud.netflix.zuul.filters.post.SendResponseFilter.writeResponse(SendResponseFilter.java:136) ~[spring-cloud-netflix-core-1.3.4.RELEASE.jar:1.3.4.RELEASE]
	at org.springframework.cloud.netflix.zuul.filters.post.SendResponseFilter.run(SendResponseFilter.java:117) ~[spring-cloud-netflix-core-1.3.4.RELEASE.jar:1.3.4.RELEASE]
	at com.netflix.zuul.ZuulFilter.runFilter(ZuulFilter.java:112) ~[zuul-core-1.3.0.jar:1.3.0]
	at com.netflix.zuul.FilterProcessor.processZuulFilter(FilterProcessor.java:193) ~[zuul-core-1.3.0.jar:1.3.0]

Looks like something in Sleuth is having an issue.  You might want to open an issue for it in Spring Cloud Sleuth.


[Scheduler app] Update contact us view

The tech support contact info is not up to date. Also, the clicking the email links won't open the email client.

Fixed, I redesigned the view and created a new component to hold the contact info.


chore(master): release 1.1.28

:robot: I have created a release beep boop
1.1.28 (2023-04-20)
Miscellaneous

deps: update dependency vite to v4.3.0 (85769c0)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/wayofdev/keywind/releases/tag/v1.1.28 :sunflower:


Replace references to EntitySkeleton.

In MixinArmorEquipable, I simply replaced EntitySkeleton with AbstractSkeleton.
In MixinRanger, I saw the comment about mixing in to implementors of an interface. Mixin doesn't yet allow that for performance reasons, but it is possible to mix in to an interface directly, so I did that.
In MixinEntityProjectileSource, I noticed that MixinEntityLivingBase already implemented both of the methods, and MixinEntityProjectileSource had also been removed from the mixin JSON file, so I simply deleted the class.

Fixes SpongePowered#1428.

Please backport this to 1.11.2 too, thanks.


Aces color spaces

Resolves #3

This is no longer needed as it will be implemented over at ColorAide.


Change EtP keyboard shortcut expiry methodology

Changes the method that the EtP keyboard shortcut self-expires.
Currently, the user must complete all 3 keypresses within a 5 second time period, starting with the first keypress. This can pose a problem for screen reader users, as the associated announcements can collectively take 5 seconds (or longer) to be fully read out.
This changes the methodology so that the 5 second timer is restarted after each keypress, allowing up to 10 seconds to achieve the needed 3 keypresses.
Changes

Removes the check that only ran setKeypressTimer if keypressTimeoutId was null, as this prevented any keypresses after the first from setting the timer.
Clears keypressTimeoutId when setKeypressTimer is invoked, so that only one timer is running at any one time.

Thoughts

Now that the timer resets with each keypress, can the timer be shorter than 5 seconds?
https://github.com/alphagov/govuk-design-system/pull/2721 will need updating if this is merged.

There is currently a community consultation for EtP ongoing until 20th April, so we may want to avoid merging this until after then—just in case it causes issues.

Moving to blocked so that we don't merge this, so that it doesn't impact the consultation. Can be merged once the consultation has been finished.


Remove some trait bounds that are not required

Why do we original bring these bounds in fa69337?
Is it possible we share references of a journal or storage in a gRPC implementation? For example, hold a reference to the struct in different thread by different method call.
Anyway, we can add the bounds when needed.

Maybe some implementations need the trait bound, but not all of them. So I think we should let the specific implementation specify the trait bounds when necessary.

FYI I'm trying to bring back gRPC journal to see if these trait bounds help.

I suggest that we leave the gRPC journal aside for now because the journal API is still unstable as described in #229 and #260.

@huachaohuang OK. I notice that I can test it on v0.2.0 and confirm that these trait bounds take effect for a gRPC implementation at that version. Possibly we will bring them back later.
And yes, "let the specific implementation specify the trait bounds when necessary", while if the Server takes a type parameter T: Journal, I'm afraid we will bring them back.


Update test configuration for integrations

Pull Request Test Coverage Report for Build 382

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.5%) to 67.874%

Totals

Change from base Build 375:
-0.5%

Covered Lines:
1930

Relevant Lines:
2633

💛  - Coveralls

👍


Upload >5GB file to Aliyun OSS failure

Alluxio Version:
alluxio-2.5.0-2
Describe the bug
Aliyun OSS as Alluxio’s under storage system, when I copy the file which larger than 5GB to another path, it failure.
Worker log like this

To Reproduce
/opt/alluxio/bin/alluxio fs cp /source/source.json /target/target.json
Expected behavior
A clear and concise description of what you expected to happen.
Urgency
Describe the impact and urgency of the bug.
Additional context
Add any other context about the problem here.

@liuyihan thanks for reporting this issue. Do you have a stack trace of this exception?
it will be more helpful if you can sure the worker log here

This limitation comes from early version of OSS. Now it no longer exists.


Add Merge Sort Algorithm

**Algorithm: Merge Sort **
DS:
Languages Supported: C, C++, Java, JavaScript, Python , etc

I can solve this issue in Java. Can you assign it to me?


bug-report: sort events by creation date

Please provide a description of this PR:
Events gathered by istio bug-report are not sorted by date, which makes difficult to correlate data. Sort events by creation timestamp to more easily identify the last generated events.

Hi @samuelvl. Thanks for your PR.
I'm waiting for a istio member to verify that this patch is reasonable to test. If it is, they should reply with /ok-to-test on its own line. Until that is done, I will not automatically test new commits in this PR, but the usual testing commands by org members will still work. Regular contributors should join the org to skip this step.
Once the patch is verified, the new status will be reflected by the ok-to-test label.
I understand the commands that are listed here.

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

/ok-to-test

@samuelvl: The following test failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

unit-tests-arm64_istio
00ad0fbb0d7ccd7a6ae5b8e3c71a98ba96008f5a
link
true
/test unit-tests-arm64

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@samuelvl: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

unit-tests-arm64_istio
00ad0fbb0d7ccd7a6ae5b8e3c71a98ba96008f5a
link
true
/test unit-tests-arm64

unit-tests_istio
00ad0fbb0d7ccd7a6ae5b8e3c71a98ba96008f5a
link
true
/test unit-tests

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/retest


Clean up some Editor, OpenXR, VideoStream code

While investigating some issues I noticed a few things that could be cleaned up, but don't fit any particular PR I can make right now. So I made this.

EditorNode has excessive and pointless checks for Input singleton (we already access it without a check prior to this, and then we also check for it twice for some reason).
EditorNode initialization order is a bit awkward (grouped server configuration a bit better, moved some instructions in a more sensible order).
OpenXR binds a method that doesn't need that (used only for call_deferred, which doesn't need it with Callable).
VideoStream has a formatting error (surprised it's not caught by clang format).

Thanks!


Fixes source branch for eband_local_planner on kinetic

Updates branch specification for eband_local_planner whose master branch now targets later releases.

Travis passed, but github missed the notifications this morning. I'll force merge.


Fugitive: show which file is which for merge conflicts

environment

nvim: v0.4.3
vim-airline: 0.11
OS: Manjaro 19
Have you reproduced with a minimal vimrc: no, feature request(?)
What is your airline configuration:

  " Airline------------------
  let g:airline_powerline_fonts=1
  let g:airline_theme='molokai'

  let g:airline#extensions#whitespace#enabled = 1
  let g:airline#extensions#branch#displayed_head_limit = 10

if you are using terminal:

terminal: xfce4-terminal
$TERM variable: xterm-256color
color configuration (:set t_Co?): E846: Key code not set: t_Co
if you are using Neovim:
does it happen in Vim: Not sure.

actual behavior
When using vim-fugitive on a merge/rebase/cherry-pick conflict, you can use :Gdiffsplit! get a diff3 view of the output:

(see the transcript of the fugitive vimcast if you need/want some background on the layout of fugitive in this use case)
The working copy doesn't have the [git] tag that I've circled in red. However, there's no way to distinguish between the other two files (the ones with the [git] tag) as to whether they're the "target" or the "merge" file. It'd be nice if instead of the [git] label, it showed either target/merge.
commentary
~I'm not sure whether this is a bug or a yet-to-be-implemented feature.~ Judging from #1852 and how recent it is, it looks like this is probably just a feature request.
I've seen a line in the branch extension that looks possibly related:
https://github.com/vim-airline/vim-airline/blob/e22f735f80942af195e7a164fe0a1d70e5b328a1/autoload/airline/extensions/branch.vim#L84
but I honestly can't figure out what it does after 15 minutes of looking at the file. I'm not sure if it actually applies to my situation.

As a test case, this article has a simple merge conflict setup to do.

Does fugitive show/indicate this somehow by default without vim-airline installed?

I've seen a line in the branch extension that looks possibly related:

I am not sure, I always thought that relates to different commit states (like merge, fetch etc). But I don't know fugitive (and its API) very well.

Does fugitive show/indicate this somehow by default without vim-airline installed?

Yes. The path of the "git" file that is generated* is under a numbered path. ie dotfiles2.0/.git//0/.config/zsh/zshPluginList, where dotfiles2.0 is the root directory of the git repository. This path is currently removed and replaced by a [git] as of #1852.
The reason I point out the line in branch.vim above is that those numbers actually correspond to the numbered directories for each "git copy type" (ie. what the file in the buffer corresponds to be it the file's state on the merge branch, index, target branch, etc.).
The directory .git//[FILE] buffer corresponds to the state of the [FILE] on the index and the .git//3/[FILE] buffer corresponds to the the state of the [FILE] on the merge branch. The .git//2/[FILE]buffer would normally correspond to the state of [FILE] on the target branch, but this might just be a different use of terminology.
I'm not sure about the 1 buffer as I don't believe I've ever encountered fugitive displaying a 1 buffer.
*Note that I don't believe these directories are actually created. Or at least, I can't find them in the given path that vim gives for the buffer.

sounds like this is related to the fugitiveline extension. should we simply append the special buffer number to the name? I am not sure, as I don't use so sophisticated features of fugitive.

That could work, though it'd be nicer if it displayed what the actual file was (ie. target, working copy, merge for merge conflicts).

indeed. I have to look up (or ask tpope) for the meanings of those and see if I can come up with a better visualization.

Been a little while, but did you happen to follow up with tpope or determine the meaning?

Been a little while, but did you happen to follow up with tpope or determine the meaning?


Test db tables

Performed changes:

Added dependency to the package.json and package-lock.json
Added 4 new tables

Tables in question:
Person:
id_person
name
phone_number
email
gender
birthday_date
is_owner
Items:
id_item
quantity
type
price
creation_date
Transaction:
id_transaction
id_receipt
id_item
quantity
price_per_item
Receipt:
id_receipt
id_person
date_of_purchase
total_price

Update:

Changed Person table to Customer
removed is_owner from the Customer table
changed id_person to id_customer in the Receipt table


How to fine tuning th model with limited resource?

Can I fine tuning the alpaca on the machine with 4 * V100 (32G)?

@GivanTsai have you had any success with this?


Create switserland.geojson based on osm polygon; buffered and simplified

Eh, I miss-spelled Switzerland

Ok it's been almost a month and we want to get an iD release out.
I'm just going to merge all these and fix them myself. 🔧


Update NOTICES

Based on prod and taking into account any recent dependency changes.

@jeffmcaffer I think we can merge this. Agreed?