ocamlPackages.containers: 0.20 -> 0.22

Things done

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

[ ] NixOS
[x] macOS
[ ] Linux

[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[x] Fits CONTRIBUTING.md.

Merged. Thanks!


Update multicast support post S2 multicast implementation

ZWaveJS implemented S2 Multicast in https://github.com/zwave-js/node-zwave-js/pull/5475. This included some api changes, which this library needs to incorporate.
See also https://github.com/home-assistant/core/issues/89569

the way we plan to implement this, HA and this lib will get it for free once it is supported in zwave-js/zwave-js-server. Support there is waiting on some additional features

@raman325: Is there an issue number tracking the work in zwave-js/zwave-js-server?

no, but feel free to open an issue there and close this one. I unfortunately can't transfer this issue between orgs otherwise  I would have just done that


Made ActionArrays toggle-by-default.

Felt more natural with a bunch of "press-to-activate" options in a single item, but isn't as necessary now that folder-in-folder works, so feel very free to reject this if you think it's the wrong default behavior.

I'm not sure, I'd love to have a face-to-face discussion about this some time. The main reason I didn't set them to this behavior by default is that for some types of items, you don't want to step through a bunch of values just to set one in the middle.
Reasons for this can be that setting an item's value can take a lot of time (e.g. a "Load level" item) or change the state without resetting when switching to something else. We had this in Vermintide, where you could set the render state using simple console commands, each value in the item just modified a particular render state so if you stepped through them you'd get all of the things.
So probably best would be to be able to set it per item...? Though that could be sliiightly confusing. Yeah, so I'm not sure. I'll leave the PR open for now.

I agree that it's not ideal; the reason I added it was that we had everything set up as action-items because folders in folders was misbehaving. That has since changed, so this doesn't seem needed anymore.

Alright, I'll close it for now. I might change my mind at some point but for now I'd rather keep it the way it was.


[$1000] Feature request: Ability to paste text without auto formatting

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Problem:
Every formatted text (or code) when pasted in newDot is pasted with 3 back ticks at the start and end regardless of my choice.
Solution:
Add Command + shift + V to paste text without auto formatting
Action Performed:

Open any chat
Copy and text with multiple formatting/code
Paste

Expected Result:
User should be able to paste text as-is without auto-formatting
Actual Result:
Every formatted text (or code) when pasted in newDot is pasted with 3 back ticks
Workaround:
unknown
Platform:

Where is this issue occurring?

Web
iOS
Android
Desktop App
Mobile Web

Version Number: 1.1.69-0
Reproducible in staging?: Y
Reproducible in production?: Y
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
Upwork job URL: https://www.upwork.com/jobs/~013ad30082d8a28750
Issue reported by: @chiragsalian
Slack conversation: https://expensify.slack.com/archives/C01GTK53T8Q/p1651016164788809
View all open jobs on GitHub

Upwork job posted - https://www.upwork.com/jobs/~013ad30082d8a28750

@michaelhaxhiu Can you post any sample text?

Also, does this apply to html as well? @michaelhaxhiu

@allroundexperts please refer to the example Chirag gave in the slack convo (also linked in the GH body above).

@allroundexperts:

Can you post any sample text?

For me, this issue is very easy to reproduce. Just type any code in VisualStudio or your IDE of choice, for example:
const myObj = {a: 1};

Then copy/paste it into NewDot and it will be wrapped in backticks.

does this apply to html as well?

Yes

For clarity,

on web cmd+shift+v works on web to paste text but it does not remove formatting when pasting.
on desktop cmd+shift+v doesn't do anything.

For both we'd want cmd+shift+v to paste text without formatting.
And for sample text, you can copy/paste the one i've written here.
I think we can remove iOS, Android and Mobile Web from the list of issues occurring since I don't think the user can press cmd+shift+v on those platforms, unless they're on an ipad with a keyboard but i dont think its worth investing in that scenario atm. Thoughts?

Looks like there no proposals yet – still interested @allroundexperts?

@roryabraham This requires more effort than the price indicated. I think this is worth at least $1000.

Not sure how/why, but I missed the doubling timeline. Sorry that's on me. Doubling to $500.

@michaelhaxhiu This is because we have to write an un formatter just like we have a formatter for pasting right now.

@allroundexperts just a heads up, we'll arrive at the $1k price point in 1 week's time. No problem at all if you prefer to wait until then!

From this post, I think we should support cmd + opt + shift + v to do the same thing, since it is a pretty common key sequence for paste and match style. Also noting this should be called Paste and Match Style and should be added below Paste in the Edit menu

@rafecolton feel free to update the GH for accuracy sake

Doubling price to $1000

Proposal

We can trim all markdown formatting using remove-markdown. Alternatively, we can use the strip-markdown package or trim it ourselves.

npm install --save remove-markdown

Here is an example of manual trimming if we either cannot add a package or need more customization:
const plainText = text
    .replaceAll(/^\s*```\w*\s*$/g, '') // Trim code blocks
    .replaceAll(/^#+\s*/g, '') // Trim headings
    .replaceAll('`', '') // Trim inline code
    .replaceAll(/^\s*-{3,}/g, '') // Trim dividers
    .replaceAll(/\b(?:_+|\*+)(?=\S)/g, '') // Trim bold and italic
    .replaceAll(/(?<=\S)(?:_+|\*+)\b/g, '');

Add a new Paste and Match Style item to the desktop context menu by replacing this line https://github.com/Expensify/App/blob/0f38b9a0107977e2b49edef1534caf1199e08b38/desktop/main.js#L34 with the below:

contextMenu({
    append: (defaultActions, parameters, browserWindow) => [
    {
        label: 'Paste and Match Style',
        role: 'pasteAndMatchStyle',
        accelerator: 'Cmd+Option+Shift+V',
    }]
});

Now we have two options. There is no API to handle the native Paste and Match Style command, but the option A makes a distinction based on the way the command works. Option B on the other hand binds directly to the Cmd+Shift+V keystroke, but because it does not have access to the clipboard event itself unlike Option A, it cannot bind to the native context menu item and handle a mouse click.

Option A
Add the code below here:
https://github.com/Expensify/App/blob/393efe1868e085cee79a5bf85b8cba804fed1d4d/src/components/Composer/index.js#L255
import removeMd from 'remove-markdown';

// There is no API to distinguish between the regular Paste command and the Paste and Match Style
// (aka Paste as Plain Text) command. The Paste and Match Style command removes all types except text/plain.
// The regular paste keeps all of them. All the usual apps including Text Edit, Slack, VS Code produce a
// copy with at least text/html and text/plain, but typically more (rtf, editor-specific etc.). This means
// that if we get text/plain alone, we can resonably expect that the native Paste and Match Style command
// has been invoked.
if (types.length === 1 && types[0] === 'text/plain') {
    event.preventDefault();
    let text = event.clipboardData.getData('text');
    if (text) {
        const plainText = removeMd(text);

        // Insert the trimmed text in the same way as in `handlePastedHTML`
        try {
            document.execCommand('insertText', false, plainText);
            this.updateNumberOfLines();
            // eslint-disable-next-line no-empty
        } catch (error) {}
    }
    return;
}

Option B
B1. Add the imports and then the handler in the Composer class in this file:
https://github.com/Expensify/App/blob/393efe1868e085cee79a5bf85b8cba804fed1d4d/src/components/Composer/index.js
    import removeMd from 'remove-markdown';
    import VirtualKeyboard from '../../libs/VirtualKeyboard';

    handleMatchStylePaste(e) {
        if (!e || VirtualKeyboard.shouldAssumeIsOpen()) {
            return false;
        }

        // Catch the paste shortcut and handle it
        if (e.code === 'KeyV' && (e.ctrlKey || e.metaKey) && e.shiftKey) {

            // Consume the key event
            e.preventDefault();

            // We need to use the Clipboard API to access the clipboard.
            // In the standard paste scenario, we get the paste event with the clipboard data, but this event is invoked natively and cannot be invoked via a custom key combination.
            navigator.clipboard.readText().then((text) => {
                if (!text) {
                    return;
                }
                const plainText = removeMd(text);

                // Insert the trimmed text in the same way as in `handlePastedHTML`
                try {
                    document.execCommand('insertText', false, plainText);
                    this.updateNumberOfLines();
                    // eslint-disable-next-line no-empty
                } catch (error) {}
            });
            return true;
        }
        return false;
    }

B2. Change render to the following:
    render() {
        const propStyles = StyleSheet.flatten(this.props.style);
        propStyles.outline = 'none';

        // Omit onKeyPress as well
        const propsWithoutStylesAndKeyPress = _.omit(this.props, 'style', 'onKeyPress');

        // Pick onKeyPress so we can call it ourselves
        const onKeyPressProp = _.get(this.props, 'onKeyPress');
        return (
            <RNTextInput
                autoComplete="off"
                placeholderTextColor={themeColors.placeholderText}
                ref={el => this.textInput = el}
                selection={this.state.selection}
                onChange={() => {
                    this.updateNumberOfLines();
                }}
                onSelectionChange={this.onSelectionChange}
                numberOfLines={this.state.numberOfLines}
                style={propStyles}
                onKeyPress={(e) => {
                    // Return early if this is the paste and match style command
                    if (this.handleMatchStylePaste(e)) {
                        return;
                    }

                    // Otherwise forward the event
                    if (onKeyPressProp) {
                        onKeyPressProp(e);
                    }
                }}
                /* eslint-disable-next-line react/jsx-props-no-spreading */
                {...propsWithoutStylesAndKeyPress}
                disabled={this.props.isDisabled}
            />
        );
    }

@parasharrajat The shortcut is supported natively on the web and triggers the paste event. The trick is to distinguish a regular paste from a plain text paste. First two options are a bit hacky, but option C is reliable because the flag is always set before the paste event is invoked.

I am testing on Firefox and it does not work but works on Chrome and I think on safari as well.

IMO, we don't have to go through the hurdle of removing MD syntax. What if we just save two DataTypes in the clipboard while copying. text/html and text/plain. Currently app only saves text/plain.

BTW you can expect text/html almost everywhere (Text Edit, Slack ...) for any copy, so this is not really indicative of the clipboard content. But the plain text paste strips them anyway and keeps only text/plain. Firefox is supported?

We can have option C for everything Webkit-based (Safari, Vivaldi, Edge, etc.), and a fallback method for probably only Firefox, because it does not have any native plain-text paste functionality. Because Firefox has no menu item that would compete with our functionality, we are not hacky if we trigger it directly (option B) on such a platform.

Ok, I don't think that converting MD back to test is the best option here. We are creating this MD string ourselves
So I think doing this is cleaner.

When the user copies something.  We get text/html and text/plain.
On Composer paste event. Detect is Shift modifier is added to paste keys. Then allow text pasting else Convert HTML to MD (which is currently happening).
When the user Manually selects anything and copies it, do not convert that HTML to MD. Instead set HTML and Text to clipboard as text/html and text/plain respectively.
Composer will automatically handle these on paste via step 2.
Add fallback for firefox.

What do you think?

Not sure if I follow. There is no markdown conversion for testing the content, it strips markdown if ctrl+shift+v is pressed to address the examples in the slack discussion referenced above. Option A tries to identify the command by different means, but not by testing the content, it exploits the fact that the native ctrl+shift+v command strips all types and adds text/plain, which is a set of types that I did not see when copying from any app. Copying from Expensify and regular pasting to it is not affected by this change.

What do you mean by testing the content?

Copying from Expensify and regular pasting to it is not affected by this change.

I think we will want to allow content from our app to also have this change.
Option A does the markdown trimming. But I don't think this is needed if we follow the native implementation. As you said, the platform does all the stripping and gives us only a test. Then why do we need to trim the MD from it? The only case could be when we copy in our app, we do the following

when you select the Content on our app/ or any HTML page, the clipboard contains HTML of it? we intercept that copy and convert that to MD then set it as plain text on the clipboard.

Following https://github.com/Expensify/App/issues/9240#issuecomment-1165704026, we override this interception and allow HTML to be passed down to the paste handler which does the necessary conversion.
Let me know if I am missing something.

What do you mean by testing the content?

I was reacting to:

Ok, I don't think that converting MD back to test is the best option here

Option A does the markdown trimming. But I don't think this is needed if we follow the native implementation. As you said, the platform does all the stripping and gives us only a test. Then why do we need to trim the MD from it?

I see. The native command changes the types property of event.clipboardData to text/plain, but in the case of HTML and MD the actual content is unaffected. We have to trim the formatting ourselves in all cases.

Well, paste test or *test* using any method -- it does not strip anything. The native functionality is meant for RTF and such I believe, not for markup.
Ok, so can you elaborate on the changes? We get the rendered HTML under the user selection. Then, we reproduce it as a bare HTML tree. which is relevant for the copy (stripping styles etc.). Then, we produce MD out of it.

Well, paste test or *test*

So if this is pasted as text then it is already in text form even though it contains *. I don't think the issue meant to remove these. IMO, problem is to allow pasting as text when the clipboard contains markup.
OR are you saying that when test is pasted as part of copied HTML?

Do you mean not to produce MD whenever the user copies from the app, but to produce HTML instead?

Yes. Do not convert to MD on the copy step. Paste event handlers will convert the copied HTML to MD before pasting it into the composer. So in our paste handler, we add another function to convert HTML to text instead of MD when using ctrl+Shift+V.
Do you think this is doable or will work?

I see, if the requirement is to strip it when it is produced as such and not whenever it contains markup, then you are completely right. The slack example referenced above works without that or in fact any change on chrome. I understood the issue as trim it no matter what because of this comment, which claims that the shortcut works on the web, but it does not trim it, which I don't see happen for the example. If that is the case, we can just extend Desktop (first part of my proposal) and possibly a fallback for non-native implementations and otherwise depend on the native trimming.
Technically copying HTML instead of MD should be doable, but AFAIK most non-developer apps only use MD for text input because it is popular and easy to read and write for the user. You can paste a copy from our app directly to Slack and have it formatted, which is not the case for HTML.

I think we should do something like Slack when copying, which is to put stripped text in text/plain and MD in text/html. That way, we can take advantage of both ways of pasting. Currently, we have MD in text/plain as well.
The change is to strip md and return all available versions (including HTML, but that is not being used for the reasons mentioned previously).
https://github.com/Expensify/App/blob/965c16c2bf4bdb878d8148302e435b0aabe9a13b/src/libs/SelectionScraper/index.js#L143
- return parser.htmlToMarkdown(newHtml);
+ const markdown = parser.htmlToMarkdown(newHtml);
+ const text = parser.htmlToText(newHtml);
+ return { text, markdown, html: newHtml };

Now, put the types in the clipboard (we use browser API because it allows us to produce types, production code would of course use Clipboard.setString for native where this feature is not needed anyway).
https://github.com/Expensify/App/blob/520140b6b3eca2387c71db78fdfc571c18605da1/src/components/CopySelectionHelper.js#L27
-    const selectionMarkdown = SelectionScraper.getAsMarkdown();
-    Clipboard.setString(selectionMarkdown);
+    const selection = SelectionScraper.getAsMarkdown();
+    navigator.clipboard.write([
+        new ClipboardItem({
+            'text/html': new Blob([`<html><body>${selection.markdown}</body></html>`], {type: 'text/html'}),
+            'text/plain': new Blob([selection.text], {type: 'text/plain'}),
+        })
+    ]);

Now, when you select comments and press ctrl + c, you can choose ctrl + v to paste MD or ctrl + shift + v to paste plain text. This introduces parity between pasting from the apps that split MD and plain text and our app. What do you think?

BTW, here is an update for the fallback method (option B) to be used on implementations with no native feature. readText picks plain text (read is generic):
navigator.clipboard.readText().then((text) => {
    if (!text) {
        return;
    }
    Clipboard.setString(text);
});

That sounds like what I asked for https://github.com/Expensify/App/issues/9240#issuecomment-1165704026.
navigator.clipboard.write support is questionable on firefox. You will have to adopt old techniques to update the clipboard. See Cliboard.setString internals.
So it seems like it will work. Now could you please post a complete proposal or modify the last post with full information about the changes you are planning including fallbacks?

This does convert the copied HTML to MD.
We can use setString (or insertText) for text, but not when producing multiple types when copying. The fallback method would remain as is, which I guess is fine as a fallback method.

This does convert the copied HTML to MD.

Oh, I see. But why do we need this? Why can't we just store HTML in text/html. The composer is already handling on paste.

We can use setString (or insertText) for text, but not when producing multiple types when copying.

Correct. There are other ways of doing this. I am fine with navigator.clipboard.write but https://developer.mozilla.org/en-US/docs/Web/API/Clipboard/write#browser_compatibility

Now could you please post a complete proposal or modify the last post with full information about the changes you are planning including fallbacks?

this is a question about which is a better feature when we consider pasting to other apps.

Ok, so you are suggesting that we should use MD in text/html instead of HTML because it is better. Hmm, let me think about it? Not too sure on that.

AFAIK most non-developer apps only use MD for text input because it is popular and easy to read and write for the user.

You can paste a copy from our app directly to Slack and have it formatted, which is not the case for HTML.

MD in text/html is exactly how Slack does it.

I tested it more thoroughly and correctly produced HTML from our app does work with Slack. Currently, we produce MD in text/html and text/plain, Slack does neither (had to mix those up). I don't care then.

I don't think there is a way to trigger paste on a custom keystroke in Firefox. It does not support the paste event for web  https://developer.mozilla.org/en-US/docs/Web/API/Document/execCommand#:~:text=Disabled for web content. Chrome sends paste on  ctrl + shift + v by default, so we can override the handler and still use the clipboard data, but Firefox sends the paste event only if shift is not down.

There's a lot of discussion that's happened here so far. Any chance someone can provide a TL;DR?

yeah, we don't have to trigger paste. As you said, listen for key events and then manually paste them.

Now could you please post a complete proposal or modify the last post with full information about the changes you are planning including fallbacks?

Still waiting on this.

Not supported, read the link.
Changes
https://github.com/Expensify/App/compare/main...marktoman:exp-main:9240-clean-paste
Description
Paste
Add a context menu item and register the key on Desktop
desktop/main.js
Copy
Change getAsMarkdown to support multiple types
src/libs/SelectionScraper/index.js
Change the keystroke handler to copy multiple types
src/components/CopySelectionHelper.js
Change the context menu action. Keep the logic (refactored), but copy multiple types.
src/pages/home/report/ContextMenu/ContextMenuActions.js
The rest of the changes are related to the changed signature of the copy menu item and don't change behavior.

Ok, so are you saying we won't able to implement Ctrl+Shift+V on Firefox?

Yes, although it is Mozilla saying it.

Ok, it seems that Mozilla revoked permission to access to clipboard read. I am not sure what is the current status of its implementation. It used to be there.
It might be time-consuming for the Engineer to read all the discussion and code review your commit. https://github.com/Expensify/App/issues/9240#issuecomment-1172710760 is not sufficient details to consider as a proposal. that's why requested a complete proposal. Would you mind updating it to add full details into it. Also add a title that says ###Proposal to it.
Other than that these things need to be changed in your proposed changes.

First, navigator.clipboard.write support is questionable on firefox. No support on Firefox Android. Can we use old implementation of writing to clipboard? You may find it with the keywords synchronous clipboard api.
Use of Platform API is prohibited in the codebase. You will have to use platform-specific files over Platform API.

Rest looks good to me.

I have updated the summary and hopefully, it has the gist of our discussion.
The kind of copying where we invoke the synchronous copy event is a workaround and it works like this:

Copy the data to a new DOM element
Attach a listener to it
Select the inserted content
Trigger the copy event
Inside the handler, override the copy event and set the content as types
Remove the listener
https://github.com/lgarron/clipboard-polyfill/blob/06404f6ffc539720f8d83a5165c7169d45e7af2a/src/strategies/dom.ts#L31-L45

We can use this library to use it encapsualted in a more elegant way. They have perfected this approach with various strategies for specific behavior of each platform.
const item = new clipboard.ClipboardItem({
  "text/html": new Blob(
    [selection.html],
    { type: "text/html" }
  ),
  "text/plain": new Blob(
    [selection.text],
    { type: "text/plain" }
  ),
});
clipboard.write([item]);

The default action is to copy plain text on native platforms. Given that this workaround addresses ~0.5% market share, maybe we can just treat it as a single group together with native. Alternatively, we could keep MD for both native and fallback if formatting is worth it there (I suspect not).

Okay, in the sake of transparency, I'm not sure I've 100% followed everything here, but it really seems like we're close to a solution that will work on as many platforms as possible. The proposal seems very well researched, and given the endorsement of @parasharrajat I feel comfortable assigning this job to @marktoman.
However, @michaelhaxhiu it seems like it's pretty complicated and there was a lot of research and discussion done, so I'd like to propose a $1000 bonus on top of the $1000 bounty to @marktoman and @parasharrajat if this solves the issue and makes it to production for a week without causing any regressions.

@michaelhaxhiu applied. I will push a PR within a week. Thank you for the bonus proposal, @roryabraham.

Go away melvin. There's recent movement in the PR

@marktoman found a problem https://github.com/Expensify/App/pull/9880#issuecomment-1186154298. Safari or Electron natively support paste and match style via CMD+ALT+SHIFT+V but we are trying to add support for CTRL+SHIFT+V.
They have presented a few options on the link above. Out of which I liked option 2 to keep the native shortcut on Desktop(mac) and safari.
The only problem with having two shortcuts for  paste and match style is that two menu items are shown on the Edit menu on the Desktop.
What do you think? cc: @roryabraham

Should we only support natives for these platforms.
Add both, it does not matter if two same options with different shortcut keys are shown on the Edit menu. Technically, it does not break anything.

Please see the originally proposed options on the linked comment.

Add both, it does not matter if two same options with different shortcut keys are shown on the Edit menu. Technically, it does not break anything.

Let's just keep it simple and just do this for now.

@marktoman Do you have any more questions?

@parasharrajat All clear, I've pushed the final version.

New job links is here (old one expired) - https://www.upwork.com/jobs/~01304bd7f009c712be
Also highlighted what Rory suggested above, so we don't forget when it's time to make payment:

However, @michaelhaxhiu it seems like this is pretty complicated and there was a lot of research and discussion done, so I'd like to propose a $1000 bonus on top of the $1000 bounty to @marktoman and @parasharrajat if this solves the issue and makes it to production for a week without causing any regressions.

PR merged. Also mentioning here to @Expensify/applauseleads that we'd like the new functionality added in the linked PR added to the regression test suite.

Payment on track for today.

Paid.


Microsoft VS code using an unauthorized temp folder when installing extensions.

Hi -
I am getting error messages when installing any extension on a remote Linux server.  The remote server is very restricted and I don't have access except for my home folder.  However, for some reason VSCode is trying to use a temp folder that I don't have access to.  I am not sure how VSCode pciked up this folder.  I can't find any reference to it anywhere in the configurations.  I would like to know if there is a setting where I can change the temp folder.  Below is the error:
[2022-07-29 12:22:07.755] [renderer1] [warning] Settings pattern "keyboard." doesn't match any settings
[2022-07-29 12:22:09.191] [renderer1] [warning] Settings pattern "keyboard." doesn't match any settings
[2022-07-29 12:22:09.514] [renderer1] [info] [attempt 1] Invoking resolveAuthority(ssh-remote)
[2022-07-29 12:22:18.740] [renderer1] [error] [Extension Host] (node:30808) [DEP0005] DeprecationWarning: Buffer() is deprecated due to security and usability issues. Please use the Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() methods instead.
(Use Code - Insiders --trace-deprecation ... to show where the warning was created)
[2022-07-29 12:22:18.762] [renderer1] [info] [attempt 1] resolveAuthority(ssh-remote) returned '<IP_ADDRESS>:57706' after 9248 ms
[2022-07-29 12:22:20.133] [renderer1] [warning] Settings pattern "keyboard." doesn't match any settings
[2022-07-29 12:22:21.184] [renderer1] [warning] Settings pattern "keyboard." doesn't match any settings
[2022-07-29 12:22:24.061] [renderer1] [warning] Settings pattern "keyboard." doesn't match any settings
[2022-07-29 12:22:59.505] [renderer1] [warning] Settings pattern "keyboard." doesn't match any settings
[2022-07-29 12:23:00.832] [renderer1] [info] Setting search error: Unexpected end of JSON input
[2022-07-29 12:23:00.858] [renderer1] [info] Setting search error: Unexpected end of JSON input
[2022-07-29 12:23:35.530] [renderer1] [error] Error while installing 'rogalmic.bash-debug' extension in the remote server. unable to get local issuer certificate
[2022-07-29 12:23:35.531] [renderer1] [info] Downloading the 'rogalmic.bash-debug' extension locally and install
[2022-07-29 12:23:36.173] [renderer1] [info] Downloaded extension: rogalmic.bash-debug /c:/Users/cn188966/AppData/Local/Temp/5460df4a-8335-4d43-86c5-bba02cebf85b
[2022-07-29 12:23:36.815] [renderer1] [error] ["NoPermissions (FileSystemError): Error: EACCES: permission denied, open '/infa_shared/td/Temp/fwa/20282368-63b5-4cca-adab-e0dc48fb8ef6'","    at f (/home/cn188966/.vscode-server-insiders/bin/12b08be500f8a307f30e92cbc3ee39ba115eab69/out/vs/server/node/server.main.js:79:39323)","    at i.toFileSystemProviderError (/home/cn188966/.vscode-server-insiders/bin/12b08be500f8a307f30e92cbc3ee39ba115eab69/out/vs/server/node/server.main.js:82:44050)","    at i.toFileSystemProviderWriteError (/home/cn188966/.vscode-server-insiders/bin/12b08be500f8a307f30e92cbc3ee39ba115eab69/out/vs/server/node/server.main.js:82:44109)","    at i.open (/home/cn188966/.vscode-server-insiders/bin/12b08be500f8a307f30e92cbc3ee39ba115eab69/out/vs/server/node/server.main.js:82:39411)"]
[2022-07-29 12:23:36.829] [renderer1] [error] ["NoPermissions (FileSystemError): Error: EACCES: permission denied, open '/infa_shared/td/Temp/fwa/20282368-63b5-4cca-adab-e0dc48fb8ef6'","    at f (/home/cn188966/.vscode-server-insiders/bin/12b08be500f8a307f30e92cbc3ee39ba115eab69/out/vs/server/node/server.main.js:79:39323)","    at i.toFileSystemProviderError (/home/cn188966/.vscode-server-insiders/bin/12b08be500f8a307f30e92cbc3ee39ba115eab69/out/vs/server/node/server.main.js:82:44050)","    at i.toFileSystemProviderWriteError (/home/cn188966/.vscode-server-insiders/bin/12b08be500f8a307f30e92cbc3ee39ba115eab69/out/vs/server/node/server.main.js:82:44109)","    at i.open (/home/cn188966/.vscode-server-insiders/bin/12b08be500f8a307f30e92cbc3ee39ba115eab69/out/vs/server/node/server.main.js:82:39411)"]
[2022-07-29 12:23:36.864] [renderer1] [error] Error: EACCES: permission denied, open '/infa_shared/td/Temp/fwa/20282368-63b5-4cca-adab-e0dc48fb8ef6': NoPermissions (FileSystemError): Error: EACCES: permission denied, open '/infa_shared/td/Temp/fwa/20282368-63b5-4cca-adab-e0dc48fb8ef6'
at f (/home/cn188966/.vscode-server-insiders/bin/12b08be500f8a307f30e92cbc3ee39ba115eab69/out/vs/server/node/server.main.js:79:39323)
at i.toFileSystemProviderError (/home/cn188966/.vscode-server-insiders/bin/12b08be500f8a307f30e92cbc3ee39ba115eab69/out/vs/server/node/server.main.js:82:44050)
at i.toFileSystemProviderWriteError (/home/cn188966/.vscode-server-insiders/bin/12b08be500f8a307f30e92cbc3ee39ba115eab69/out/vs/server/node/server.main.js:82:44109)
at i.open (/home/cn188966/.vscode-server-insiders/bin/12b08be500f8a307f30e92cbc3ee39ba115eab69/out/vs/server/node/server.main.js:82:39411)
[2022-07-29 12:27:51.400] [renderer1] [error] Error while installing 'yy0931.save-as-root' extension in the remote server. unable to get local issuer certificate
[2022-07-29 12:27:51.400] [renderer1] [info] Downloading the 'yy0931.save-as-root' extension locally and install
[2022-07-29 12:27:52.319] [renderer1] [info] Downloaded extension: yy0931.save-as-root /c:/Users/cn188966/AppData/Local/Temp/770b1f4a-f465-449f-946e-2fd002b4041a
[2022-07-29 12:27:52.954] [renderer1] [error] ["NoPermissions (FileSystemError): Error: EACCES: permission denied, open '/infa_shared/td/Temp/fwa/90a51013-5550-438e-8c7a-2d9c9b8563cb'","    at f (/home/cn188966/.vscode-server-insiders/bin/12b08be500f8a307f30e92cbc3ee39ba115eab69/out/vs/server/node/server.main.js:79:39323)","    at i.toFileSystemProviderError (/home/cn188966/.vscode-server-insiders/bin/12b08be500f8a307f30e92cbc3ee39ba115eab69/out/vs/server/node/server.main.js:82:44050)","    at i.toFileSystemProviderWriteError (/home/cn188966/.vscode-server-insiders/bin/12b08be500f8a307f30e92cbc3ee39ba115eab69/out/vs/server/node/server.main.js:82:44109)","    at i.open (/home/cn188966/.vscode-server-insiders/bin/12b08be500f8a307f30e92cbc3ee39ba115eab69/out/vs/server/node/server.main.js:82:39411)"]
[2022-07-29 12:27:52.985] [renderer1] [error] ["NoPermissions (FileSystemError): Error: EACCES: permission denied, open '/infa_shared/td/Temp/fwa/90a51013-5550-438e-8c7a-2d9c9b8563cb'","    at f (/home/cn188966/.vscode-server-insiders/bin/12b08be500f8a307f30e92cbc3ee39ba115eab69/out/vs/server/node/server.main.js:79:39323)","    at i.toFileSystemProviderError (/home/cn188966/.vscode-server-insiders/bin/12b08be500f8a307f30e92cbc3ee39ba115eab69/out/vs/server/node/server.main.js:82:44050)","    at i.toFileSystemProviderWriteError (/home/cn188966/.vscode-server-insiders/bin/12b08be500f8a307f30e92cbc3ee39ba115eab69/out/vs/server/node/server.main.js:82:44109)","    at i.open (/home/cn188966/.vscode-server-insiders/bin/12b08be500f8a307f30e92cbc3ee39ba115eab69/out/vs/server/node/server.main.js:82:39411)"]
[2022-07-29 12:27:53.024] [renderer1] [error] Error: EACCES: permission denied, open '/infa_shared/td/Temp/fwa/90a51013-5550-438e-8c7a-2d9c9b8563cb': NoPermissions (FileSystemError): Error: EACCES: permission denied, open '/infa_shared/td/Temp/fwa/90a51013-5550-438e-8c7a-2d9c9b8563cb'
at f (/home/cn188966/.vscode-server-insiders/bin/12b08be500f8a307f30e92cbc3ee39ba115eab69/out/vs/server/node/server.main.js:79:39323)
at i.toFileSystemProviderError (/home/cn188966/.vscode-server-insiders/bin/12b08be500f8a307f30e92cbc3ee39ba115eab69/out/vs/server/node/server.main.js:82:44050)
at i.toFileSystemProviderWriteError (/home/cn188966/.vscode-server-insiders/bin/12b08be500f8a307f30e92cbc3ee39ba115eab69/out/vs/server/node/server.main.js:82:44109)
at i.open (/home/cn188966/.vscode-server-insiders/bin/12b08be500f8a307f30e92cbc3ee39ba115eab69/out/vs/server/node/server.main.js:82:39411)

Hello -
I am new to github.  Could you please me know what is the resolution for this?  What do I need to do?
Thank you,
Raj

This is fixed in our main branch and the fix will be available in following releases

VS Code Insiders in the end of this week or beginning of this week
VS Code Stable in the end of the this month (1.71.0) release

Thank you so much for your response.
I updated VS Code to the latest insiders edition and now the extension installed successfully.

This bug has been fixed in the latest release of VS Code Insiders!
@rajgit108, you can help us out by commenting /verified if things are now working as expected.
If things still don't seem right, please ensure you're on version 73fd3f11032e7b83c2ae011b5516e6ddd19e3db2 of Insiders (today's or later - you can use Help: About in the command palette to check), and leave a comment letting us know what isn't working as expected.
Happy Coding!

@rajgit108 This fix is now available in latest insiders. Can you please test if it works and tag it as verified?

Hello -
I did update almost a week ago that it is working.  I have verified that it is working.  However, I don't know how to mark it as fixed.
Thanks,
Raj

@rajgit108, you can comment /verified to mark it verified

/verified


Update package requirement to support Guzzle version ^7.0

Thanks Bas. Could you tag this version so it can be used by https://github.com/cmpayments/payments-sdk-php?


Fix some broken flags

The formatting is that a bonus feature?

Which formatting do you mean?

Some things got messed up in the migration to Cobra, as snapshots no longer threw an error code back to the terminal. This caused our integration tests to succeed when they shouldn't. The first commit in this PR fixes that, and the rest fixes the problems that were caused by the migration.

The formatting is that a bonus feature?

Which formatting do you mean?

format.go seems to be added i this PR.

The formatting is that a bonus feature?

Which formatting do you mean?

format.go seems to be added i this PR.

Yes, that's true. That flag felt like it should be an enum, so I fixed that.


Replaced toml with go mod

Enables continuous support of plugin support in 7.x
Building files are simpler now
Build with any golang version > 1.14

How to test this ?

Go to the GOPATH (find it using go env)
create a folder src if not present
clone this into src
Then do the build formalities go mod vendor  && yarn && ./build.sh
copy to the plugins location and make sure grafana version < 8

Testing the data source

Testing the metrics  plugin requests

Simpler package management  :)

Once tested versioning can be updated

Tested with Go 1.16.6, can run 'go mod vendor' and successfully build package.

@doubleUTF  good catch. Let's do it.
Also, checking about the legal constraints for nvm and grafana toolkit


Update cognitive-services-custom-speech-create-acoustic-model.md

Add reference to cris.ai portal, and update menu item names with the new portal items.

@kwill-MSFT,
Thanks for your contribution as a Microsoft full-time employee or intern. You do not need to sign a CLA.
Thanks,
Microsoft Pull Request Bot

@kwill-MSFT : Thanks for your contribution to the Azure documentation! The author, @PanosPeriorellis, has been notified to review your proposed change.

#sign-off


Add process to automatically download data from MIBItracker prior to QC analysis

What is the purpose of this PR?
Addresses and closes #482.
How did you implement your changes
Please read the design doc in the link to the issue for more info.

Coverage has gone down because we do not test mibitracker_utils. This is just a hotfix while we wait for Ionpath to resolve their pinning issue in using their library.

It connects to Jaiswal's data (Mouse Heart: Aortic Root).

View entire conversation on ReviewNB

That's done in a prior cell in the notebook.

View entire conversation on ReviewNB

Sounds good.

View entire conversation on ReviewNB


Aspected Benefic missing from GCD row of Timeline

Both versions of Aspected Benefic show as blank spaces in the timeline view. AST is a bit out of my scope so maybe helpful if @suShirow or @CasualSuperman take a look.
The Nocturnal Sect version has an incorrect ID so this is understandable (although how does any of the job logic not break?), it's currently 17151 however should be 3595 and hasn't changed since 5.0 so this'll need a fix in the actions root. Diurnal Sect is correctly 835, however I'll note fflogs sends this one with the 1000000 guid adjustment. Shouldn't cause an issue though.
Example log provided by initial reporter in Discord, with Diurnal Sect: https://www.fflogs.com/reports/hWK1a7pB268CxkVJ#fight=8&type=casts&source=22&view=timeline
It literally renders a gap in the timeline, for example in this screenshot, it was used between the Malefic and Lucid. There is no loading error in the dev console, so it appears to not even be trying to fetch it.

Easy enough to fix, would the changelog entry for it go in the AST job module, since it's only relevant to AST?

would the changelog entry for it go in the AST job module

Yes.
I'm not sure how easy it is since the icon is missing and not due to a rendering fault even on the one with correct ID.

To help track down what was missing, I wrote a module that logs buffs and actions that aren't known. I'm not sure if that would be useful to include in the main repo.
https://gist.github.com/CasualSuperman/d909b5f95d13b030d1a129e6bea9365a


Translation of chapter to Spanish and fix for titles

Fix missed translation for chapter titles
Add Spanish translation for create-a-dynamodb-table.md

Thank you. Looks good!


fixing issue: build module

Fixing Issue #15 . Code was comitted to the psm1 directly instead of using the class file and rebuilding the module, which lead to the code being overwritten at the next rebuild of the module.
Recommiting this and also adding a pester test for this usecase which checks, that an empty hierarchy entry is of type array.

Tests also passed btw:

Great, thank you for fixing this @bateskevin !


Drop Python 3.7 support

Outline & Motivation
One of the main reasons we've supported 3.7 is, AFAIK, because Google Colab had 3.7 as its default runtime. Now that Google Colab upgraded the Python version to 3.8, we could start considering removal of our 3.7 support.
Pitch
No response
Additional context
References:

https://github.com/googlecolab/colabtools/issues/3246
https://github.com/pytorch/pytorch/issues/80513

Maybe, we should wait for PyTorch to drop 3.7 support first?

cc @carmocca @akihironitta @borda @lantiga

I would wait until tue release after the 27th of June: https://endoflife.date/python

Sure, we can keep 3.7 until its final patch release. Just wanted to bring this up as we're free to drop the support now as we follow NEP29. https://pytorch-lightning.readthedocs.io/en/stable/versioning.html#python-support
PyTorch 2.0 plans to drop 3.7 support (https://github.com/pytorch/pytorch/issues/80513#issuecomment-1396166181), so to me, it sounds reasonable for us to do so, too

PyTorch dropped 3.7 with https://github.com/pytorch/pytorch/pull/93155, so we can move forward with this.


Missing documentation: How does policy inheritance work?

I have the same policy with a slightly different configuration at the global, product, API and endpoint policy layers. How do they work together? Does one override the other? How does the 'Calculate effective policy' work?

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

ID: 250924d9-418b-9a24-90fe-5b3835c3b2a7
Version Independent ID: cfd91d85-ffff-d2b0-fc7f-61bcae6ed615
Content: Policies in Azure API Management
Content Source: articles/api-management/api-management-howto-policies.md
Service: api-management
GitHub Login: @vladvino
Microsoft Alias: apimpm

Hello @Tiberriver256,
Thank you for your feedback! We will review and update as appropriate.

One more thing to mention here is there doesn't seem to be any documentation on the <base /> tag and how that works within inheritance

Hello @Tiberriver256, apologies for the delay. The required information is documented here
The policy scopes are evaluated in the following order.

1. Global scope
2. Product scope
3. API scope
4. Operation scope

The statements within policies are evaluated according to the placement of the base element.

Please let me know if there are any additional concerns. Thank you!

Ah, that's exactly what I was hunting for. I didn't expect it to be half-way down a walkthrough of the portal policy UI though. Might I suggest moving that little section about scopes to this page?
https://docs.microsoft.com/en-us/azure/api-management/api-management-howto-policies

Hello @Tiberriver256, actually the page I referenced above is already linked here on the suggested page.
We will now to proceed to close this issue out, please tag me in your response if there are any additional concerns. Thank you!


Request matcher on path with REGEX

I cannot get a match for the following matcher
"httpRequest" : {     "method" : "GET",     "path" : "\/groups\?externalID=(.*)&memberType=component"   },
with the following GET request:
curl -i -X GET "http://localhost:1080/groups?externalID=123&memberType=component"
When attempting to supply a hint to use REGEX like this on create expectation:
"httpRequest" : {     "method" : "GET",     "type": "REGEX"     "path" : "\/groups\?externalID=(.*)&memberType=component"   },
I am getting back the following error - object instance has properties which are not allowed by the schema: ["type"] for field "/httpRequest".
I've also attempted to set up the expectation like this without success:
  "httpRequest" : {     "method" : "GET",     "path" : "/groups",     "queryStringParameters": {             "externalID": ["123","*."],             "memberType": ["component","*."]         }   },
Are REGEX expressions not supported in path matching?

This is a non-issue.  My regexp was backwards.  It should've been ["component",".*"].  Closing this issue.


Update 'zeit now' limitations

I was checking https://zeit.co/pricing and found that the maximum file size for the free tier is 5mb.

Hi @lbalmaceda thank you for your contribution it is well appreciated!


did the job

Can you please mention witch issue you have resolved?

i did the keybinding of w and q


stacked and individual curve does not include residential PV panel

Problem
Residential PV is shown in the total electricity curve, but not in the stacked and individual curve.
Example
This is shown clearly in a node where just residential PV is present: the PV plant node of scenario
554.
Total electricity

Stacked  electricity

@dennisschoenmakers

This is reported in #1063 so I'll close this. It had been my intention to look at solving it last week, but other things came up. However, it remains high on the priority list.


Update ROS node graph API

The node function get_topic_names_and_types() now returns a vector for each type name
containing the parts of the fully qualified name.
Connects to ros2/ros2#677

Another name might be get_topic_names_and_type_tuples(). Also, why is the type a vector rather than a tuple or array? The number of elements doesn't change does it?

Personally, I think this is a step backwards for the user facing API, because it makes it harder to consume when you care about the whole type and requires the user to manually concatenate the parts

Yeah, I was kind of feeling the same as I was writing this. I was just propagating the change from the rmw (https://github.com/ros2/rmw/pull/170).

Would it not be better to leave this API as-is and then provide a new API that gives it in parts

This sounds like a better option. Still, the idea was remove possible ambiguity from the type name (see https://github.com/ros2/design/pull/220 and https://github.com/ros2/rmw_opensplice/pull/263#discussion_r267590563) and so the concatenated string would be "pkg_name/namespace/TypeName". But I believe rviz is still expecting the form "pkg_name/TypeName"?

Also, why is the type a vector rather than a tuple or array? The number of elements doesn't change does it?

In the current IDL pipeline, I don't think it's possible to for there to be more than three elements (I might be wrong). But I was proposing that there could be any number of parts to the namespace in  https://github.com/ros2/design/pull/220. This can still be discussed there and changed accordingly.

so the concatenated string would be "pkg_name/namespace/TypeName".

That would be fine for me.

But I believe rviz is still expecting the form "pkg_name/TypeName"?

That's possible, but I'd prefer to see us move towards the new style (pkg_name/msg/TypeName), and then let rviz allow for plugin descriptions to still use pkg_name/TypeName by implicitly inserting msg/ after the first /, perhaps making a deprecation warning at the same time.

In the current IDL pipeline, I don't think it's possible for there to be more than three elements (I might be wrong). But I was proposing that there could be any number of parts to the namespace in ros2/design#220. This can still be discussed there and changed accordingly.
Edit: it could certainly be an array.

I was just curious about this, if it needs to be a vector that's ok by me.

Decided to keep the type as a / delimited string rather than returning a nested list to keep the API simpler.
I'm not sure what (if anything) needs to be done to handle cases when more than two parts are returned (ie. pkg_name/msg/TypeName).

Ready for review.
I've updated all of the default plugins to declare the type's full namespace (e.g. sensor_msgs/msg/Image).
To provide maintainers for thirdparty plugins a chance to update, we assume that they intended to include the msg part of the namespace and log a warning.

Linux
Linux-aarch64
macOS
Windows

I don't know why the macOS is showing unstable. There are no test failures, but some warnings produced when running the tests. The warnings are also on Linux, but it is green. I also checked locally that the warnings existed prior to the change introduced in this PR.

@jacobperron if you have a moment can you add a note to https://index.ros.org/doc/ros2/Releases/Release-Dashing-Diademata/#changes-since-the-crystal-release about the need for plugins to update their plugin descriptions, otherwise they get a warning?


Replace default time window with last N drives

connect currently only shows the last two weeks of drives by default. Switch it to show the last N drives instead (and load more once you hit the bottom). The date range should still be an input, just an optional one.

hey @jwooning , kindly assign this issue to me. I'd like to contribute.

hey @jwooning , kindly assign this issue to me. I'd like to contribute.


Add stagingWorkspaceId attribute to sandbox (PS-800)

Shoot! The tests are still connected to the serverless testing and I probably can't connect it easily to the AZ testing in VPN. 😕 What would you say if I send it to review without passing CI as it is a higher prio thing? 😬 Luckily it's a small and understandable code change so not that big harm.(?) 🙈

Thanks. 😄 (Just to be clear, I don't expect you to sit here for me whole weekend, ok? I'm just compensating my free time in the morning so it's quite ok if you go enjoy your weekend and return on Monday. 😄 🍻 )

hahaha, no worries :-).  I'm just heading out now.  But I will be working also on sunday (I've many tasks remaining:)

Yeah, I'll be probably also stopping by in the evening tomorrow or Sunday. ;o)
BTW. I would release this as new major version to separate it from that serverless api completely.


Changed the transaction in Chapter-1, Challenge-2

Resolves #185

This PR replaces the transaction from 75764fd0c95b4c17b728d10f7555509adfc0789ddc47683c45aeddd1c34727f8 to ee3b8caaeb58245338dd299467de89ec6833d2a4235493c95059934603b5e98d in both parts of Chapter-1, Challenge-2.
I have removed the following part from the success message.

...We don’t know why tacos were so important to the anonymous sender of this transaction, but here we are.
And it’s an admirable goal at least.

This can later be replaced with a more appropriate success message.

tACK!

@shaavan
Let's update it using the copy here for now. https://www.figma.com/file/LqjK3Tpvd9KJ4buFArCJBQ/Saving-Satoshi?node-id=2136%3A24559&t=UIr1v4pegcYfMnU4-1
"That’s correct! Nice work.
As you can see, the clue is an address. Go to it.
There you’ll find an abandoned warehouse with all the tools you need to fight BitRey and bring equilibrium back to bitcoin.
Your next challenge awaits you."
We'll need to change the copy for the rest of the chapter but that can wait till it is finalized.

Updated from 85ab7f2a64f1a74ee9a6a9dac34fd18c4794805a to 498832f16f54439bd652ee160905373b03b27b5b (pr223.01 -> pr223.02, diff)
Addressed @ecurrencyhodler comment
Changes:

Changed the success message to match the Figma designs


[cfitsio] Update to 4.1.0

Describe the pull request

What does your PR fix?

Fixes https://github.com/microsoft/vcpkg/issues/20466
Modify invalid patches
Add patch to fix error LNK2019 unresolved external symbol strtok_r under pthreads feature

All features passed with following triplets:
x86-windows
x64-windows
x64-windows-static

This PR depends on https://github.com/microsoft/vcpkg/pull/24258

Closing this PR since it seems that no progress is being made. Please reopen if work is still being done.


Added better overview, examples, and links

Added better overview, disambiguated examples, added internal reference links for class properties.
The examples and overview of the URI (Uri) class in its documentation were lacking some important contextual information that is direly needed for newer programmers. I did the best I could to patch it up. I'm newish to Dart. I didn't even use dart format because I didn't actually pull this all the way down to my local machine. Edited right here in Github.

[ x ] I’ve reviewed the contributor guide and applied the relevant portions to this PR.

Contribution guidelines:

See our contributor guide for general expectations for PRs.
Larger or significant changes should be discussed in an issue before creating a PR.
Contributions to our repos should follow the Dart style guide and use dart format.

Note that this repository uses Gerrit for code reviews. Your pull request will be automatically converted into a Gerrit CL and a link to the CL written into this PR. The review will happen on Gerrit but you can also push additional commits to this PR to update the code review.

@lrhn should this PR be closed (are you taking over?)

Thanks for reminding me. I'll try to get out back into noon-conflicting shape and land it.

@lrhn ping

gentle ping

(These are all "notes to self", since I should be doing this.)

I assume this is stale. Please reopen if not.


[WIP] - Whitelist saga

@kepta I tried to convert the whitelist requests to saga, but I'm blocked. Could you give me some idea on the best way to watch for WHITELIST changes? And also how to add and remove items from the whitelist...

@tridip1931 @kepta The requests to add and remove user from the whitelist are working, but the React component is not updating after the state change. Other problem is that when I load the changeset user tag before the changeset map finished loading, the React whitelist component is not updated as well. Could you gime some tip on how to solve it?

Can I know why we have two PRs for whitelist? 😅

@tridip1931 Sorry, I forgot to close the other one. This is a continuation of the other, but converting the request to SAGA. I created another PR just to have a history point easily accessible.


Issue generating a singleton

Maybe it is the state of the connection that is throwing this error. But get_it package will not load the connection properly. I removed the following reference from get_it and it immediately started:
  getItInstance.registerSingleton<MySQLConnection>(await initMysql());

It looks like you already have a connection established as. a singleton and it is not letting me connect through a global pool. I have to use the example method of connecting only and call conn every time I want to make a call.
Can you remove the singleton?

There is no singletones in my code. What error do you have?
MySQLConnection class is not supposed to be used as a singleton. This is just an ordinary class, each instance of MySQLConnection represents exactly one connection to database

Maybe you need to register it as a factory?

I tried factory, factoryasyn, singleton, lazysingleton, singletonasync...the errors were all various but none of the resulted in a global connection.

This is a singleton isn't is
 MySQLConnection._({

well, maybe someone smarter than me can point it out in the future. For now I 'm jusing using the function initMysql for every place I need to query the database. Thanks for publishing this code. It is very advanced, well thought out and helpful.

You can close this issue. It was registerfactoryasync that was needed

I don't know get_it well, but createConnection is async method. Maybe thats why you need  registerfactoryasync.


Create a device_doctor utility tool for device health management

As we are migrating devicelab to LUCI, we need to create a device_doctor utility tool similar to existing cocoon/agent.
It needs to support linux/android, mac/android, mac/ios, windows/android.
It needs to support health check, recovery, and get device properties.

[x] Create tool in flutter/cocoon repo
[x] Apply tool in chromium bot_config
[x] Create staging/release version for different pools

https://github.com/flutter/flutter/issues/66193

Tool has been running in prod.


Tree Control Focus Mode Causing Items To be Hidden Past 3.3

Godot version
3.5
System information
Kubunutu, gles3
Issue description
Tree control hiding items because of focus mode.
Steps to reproduce
Make a Tree control, give it items and a focus mode that is anything but 'none', then click it.  It will hide the items, when another control is focused, the items show back up.
Minimal reproduction project
No response

Steps to reproduce
Make a Tree control, give it items and a focus mode that is anything but 'none', then click it. It will hide the items, when another control is focused, the items show back up.

Can't reproduce.

Minimal reproduction project
No response

Please provide MRP.


Fix performance a lot

As written in the title: This will improve the #showall repo site a lot. This performance downgrade came by the implementation of the scrollable cards. I mean it's still not the best, but my browser doesn't hang anymore that lot. I've also done some minor changes with styling of the text in the .card class

Uhhh forgot something here...


[WIP] Make the library thread-safe.

Work in progress! There are still some deadlocks around. The test suite is pretty broken right now.
This change makes the library thread-safe. Users can call all methods and access
all properties from whatever thread they want.
To achieve this, this is the general strategy used:

We have a serial queue where all our code runs.
To ensure all our code runs in the serial queue, we need to dispatch to it
from all entry points, namely:

User code: all public methods use
HTTP requests: all HTTP responses are handled at the same place and dispatched there.
Reachability callback from the OS.
Events dispatches/timeouts from ARTEventEmitter, which use NSNotificationCenter under the hood: all are dispatched to the queue.
WebSocket incoming messages: we set the queue as delegate using SocketRocket's setDelegateQueue.

By default, the queue's delegate is the global queue with QOS_CLASS_BACKGROUND. So all our operations will be very low-priority, which I think is the right choice for Ably. The user can change this by specifying ARTClientOptions.internalDispatchQueue.
Additionally, callbacks provided from the user are dispatched to another queue, which by default is the main queue. This is a convenience, since they probably want to react to Ably's callbacks by updating the UI, which only can be done from the main queue. This can be overriden too, with ARTClientOptions.dispatchQueue.
Public, mutable properties (e. g. connection and channel state) need always to be read and written to from the queue. This is pretty annoying since those reads need to be synchronous, since we're offering a synchronous interface. A synchronous dispatch to a queue is annoying since you can't do it if you're in the queue already, so, from within the queue (ie. from our code) we need to read those properties without the sync dispatch. So those get an additional <property name>_nosync getter. Pretty clumsy but, well, this is Objective-C.
Some public methods don't go async right away, since they have some effects that need to be done right after the call, or need to return something. For instance, attach leaves the channel in the ATTACHING state synchronously. Similarly to public, mutable properties as described above, those method get an additional method without the sync dispatch, to use from inside our code.

A side effect I didn't see coming from this is that, since more operations are done asynchronously and the library holds to weak references even less time, #607 is even worse now. Something like this doesn't work:
{
    let rest = ARTRest(...)
    rest.auth.requestToken(...) {
        // Will never be called!
    }
}

Now users will really need to make sure their rest and realtime objects live until after callbacks are called back.

The test suite is passing now. ThreadSanitizer is still coughing out issues, though.

The test suite is passing now.

🎆

ThreadSanitizer is still coughing out issues, though.

Oh, well at least we're getting the warnings I suppose.

I believe this is finally ready.

I believe this is finally ready.

Woop woop.  Thanks @tcard


telink: tl321x: update yml and fix bug.

fix the bug of the 250k mode.

The following west manifest projects have been modified in this Pull Request:

Name
Old Revision
New Revision
Diff

hal_telink
https://github.com/telink-semi/hal_telink/commit/53bb69596afa2578792085e4ccb0b7982517664f (telink_tl321x)
https://github.com/telink-semi/hal_telink/pull/107
telink-semi/hal_telink#107/files

Note: This message is automatically posted and updated by the Manifest GitHub Action.


CI: K8sServicesTest Checks service across nodes Tests NodePort BPF Tests with direct routing Tests LoadBalancer Connectivity to endpoint via LB

/home/jenkins/workspace/Cilium-PR-K8s-1.16-net-next/src/github.com/cilium/cilium/test/ginkgo-ext/scopes.go:518
Cannot retrieve LB IP for test-lb
Expected
    <*errors.errorString | 0xc0020196f0>: {
        s: "could not get service LoadBalancer IP addr: 30s timeout expired",
    }
to be nil
/home/jenkins/workspace/Cilium-PR-K8s-1.16-net-next/src/github.com/cilium/cilium/test/k8sT/Services.go:2573

We recently switched to the integrated MetalLB in the test. /cc @christarazi
Maybe 30sec is not enough?
2e1ea6ff_K8sServicesTest_Checks_service_across_nodes_Tests_NodePort_BPF_Tests_with_direct_routing_Tests_LoadBalancer_Connectivity_to_endpoint_via_LB.zip

I'm not so sure this is a flake. Inspecting the sysdump, I'm not seeing the bgp-announce-lb-ip flag in the Cilium logs output which would indicate that Cilium is aware of the option. Looking at https://github.com/cilium/cilium/pull/15260, it is not rebased on top of latest master which includes the BGP code. I imagine the same has happened with https://github.com/cilium/cilium/pull/15590, but it's been merged and its corresponding branch deleted, so I can't confirm.

Did not happen recently according to https://datastudio.google.com/s/gmSGs21IOLA, so likely another case of https://github.com/cilium/cilium/issues/15474. Closing.


api: Add routes for shapefiles

Closes #18.
As well, implement a really good foundation for future filters.
I think I finally understand Warp's filter system! 😆

This PR still needs the rest of the client-side code written.

Actually, I think the client code is going to get entirely re-done as well, so I'm just going to merge this as it is.


Storage Account IP network limit more than 200

Each storage account supports up to 100 IP network rules.

Appears the limit is ~200. This was discovered by accident. We have 197 and when I attempted to add another 8 more the REST request fails with HTTP 400.
autorest/azure: Service returned an error. Status=400 Code="InvalidValuesForRequestParameters" Message="Values for request parameters are invalid: networkAcls.ipRules[]. For more information, see - https://aka.ms/storagenetworkruleset" happened to be the error. I have no questions on the error just thought I'd submit something to get the guide updated to be the correct limit.

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

ID: 2632af75-7664-b79b-ac5b-c7c17e6a609a
Version Independent ID: 6ecf71b6-77c4-3ab6-8ec9-353ea407d70f
Content: Configure Azure Storage firewalls and virtual networks
Content Source: articles/storage/common/storage-network-security.md
Service: storage
Sub-service: common
GitHub Login: @tamram
Microsoft Alias: tamram

@slynickel
Thanks for reporting this. I have assigned the issue to the content author to investigate further and update the document as appropriate.

@slynickel - Thanks for reporting this error. The limit is 200 (also documented here).
The article has been updated with the correct limit.
#please-close

Why not more; I am unable to even whitelist GitHub action IPs due to this limit as they have 3818 ip ranges on their current list


new remove chair

nuked it from orbit kek
and i fixed gradlew because my environment is the only environment
i use tabs and i wouldve replaced spaces with em but im a computer whiz and not js monkey trash

Your gradle edits ruin it for windows users... just one example: java8 is not on the windows path

gradle is for *nix not windows
inb4 reddit

well if thats your only issue fine, ill revert it.

just leave the gradle stuff as-is, it's worked fine for everyone except you for the past 3 years

ye read #254


Write function to choose a method

Method choice should be based on parity and age
Users can't choose the method they were just on

Done on the methodtime branch


[NSArray] Add check to isEqual(to:) whether values is _ObjectBridgeable

When NSArray are compared for equality, NSArray only checks if the element can be casted as AnyHashable. Therefore, the result was incorrect when the NSArray contained instances which are not Hashable but are subclasses of NSObject (eg NSArray and NSDictionary) .
This PR fixes that.
Fixes SR-4903

Updated description.

@swift-ci please test

@parkera is this good to merge?

Thanks! 🙏


Use use-sync-external-store shim so that react-yjs is backwards compatible

Uses shim so that the library would work with versions of react before 18 :)

hey @Laura, thanks for the PR!
I think since the library is quite new and we never supported older React versions I would not add this kind of support. Better to require React 18 with this one and maybe you could publish a fork to support older versions

Np. Out of curiosity, are you planning on adding more functionality to the library that might require React 18?

I ended up using y-presence for my presence stuff, but presence would be super helpful! :)

great, will look into it. closing the PR for now


set default storage to blob

Default datastore of workspace is set to Blob Storage now as opposed to File Store

@datashinobi : Thanks for your contribution! The author(s) have been notified to review your proposed change.

#sign-off . @sanpil is out on an extended vacation and @yanzez is covering this in his place. Please publish.

@j-martens: I'm sorry - only the author of this article, @sanpil, can sign off on your changes. But we do have an exception process - if you are on the Microsoft content or product team for this product area, you can ask the PR review team to review and merge it by sending mail to the techdocprs alias.

@j-martens: I'm sorry - only the author of this article, @sanpil, can sign off on your changes. But we do have an exception process - if you are on the Microsoft content or product team for this product area, you can ask the PR review team to review and merge it by sending mail to the techdocprs alias.


Give access to our tenant users to get nodes

It's normal for many of our tenants to want to see how many nodes they got in a cluster.
Provide them with the possibility to do:
kubectl get nodes

Solved in linked PR


Change logos

Closes: https://github.com/metarhia/metarhia.com/issues/93

Landed in https://github.com/metarhia/metarhia.com/commit/31ea2b533110934ac69ade0dab5a7dee21058294

Landed in https://github.com/metarhia/metarhia.com/commit/31ea2b533110934ac69ade0dab5a7dee21058294


As I put a double value in new OverlayItem

Hi!
As I put a double value in new OverlayItem?
Example:
Double dist = 213.5833;
OverlayItem marker= new OverlayItem("String 1", dist, point);

But in the marker this value is 0.00
Then:
Double dist = 213.5833;
OverlayItem marker= new OverlayItem("String 1", String.ValueOf(dist), point);

and value is 0.00 too
How can I solve that?

@MauricioCr
did you look at the javadoc for this?
     /**
 * @param aTitle
 *            this should be singleLine (no '\n' )
 * @param aSnippet
 *            a multiLine description ( '\n' possible)
 * @param aGeoPoint
 */
public OverlayItem(final String aTitle, final String aSnippet, final IGeoPoint aGeoPoint)

You are setting the description for the icon to whatever the dist's value is. The description only comes into play when the user clicks/taps on an icon. What you can do is extend OverlayItem to include whatever you need.

closing to due no feedback, reopen if this is still a problem


Colorado gets dropped during spatial data processing ... sometimes

Code was originally implemented where we had to manually add CO back in by running:
co_sf <- maps::map("state", "colorado", fill = TRUE, plot=FALSE) %>%
    sf::st_as_sf() %>%
    st_transform(proj_str)

maps::map("state", fill = TRUE, plot=FALSE) %>%
    sf::st_as_sf() %>%
    st_transform(proj_str) %>%
    st_buffer(0) %>%
    ...
    bind_rows(co_sf) # bind CO after bc otherwise it gets dropped in st_buffer(0)

Digging a bit more into the issue, I found that it is particularly a weird behavior between st_buffer(0) and st_transform().
library(sf)
library(dplyr)

# Buffer after transform = no Colorado!
no_co_sf <- maps::map("state", fill = TRUE, plot=FALSE) %>%
    sf::st_as_sf() %>%
    st_transform(proj_str) %>%
    st_buffer(0)
plot(st_geometry(no_co_sf), col = "grey")

# Buffer before transform = yay! there's CO
yay_co_sf <- maps::map("state", fill = TRUE, plot=FALSE) %>%
    sf::st_as_sf() %>%
    st_buffer(0) %>%
    st_transform(proj_str)
plot(st_geometry(yay_co_sf), col = "grey")

# No buffer at all - yes, we still have CO!
yes_co_sf <- maps::map("state", fill = TRUE, plot=FALSE) %>%
    sf::st_as_sf() %>%
    st_transform(proj_str)
plot(st_geometry(yes_co_sf), col = "grey")

Not a huge issue right now because we are still getting Colorado. This is an opportunity to simplify our code a bit and make sure it doesn't get dropped in the first place.

This is a known issue with using the spatial data from maps. Our workaround is acceptable but we should move away from using maps package data for this in the future.


Better message to show the mismatched schema

Property 'CatOwner.cats' has been changed from array to
array."
->
Property 'CatOwner.cats' has been changed from array<Dog> to
array<Cat>."

I believe this may be fixed incidentally as part of Thomas's changes in #464.

#464 improves it a little in some cases, but looking at how it's used I think all uses of string_for_property_type() should be changed to type_string() (or perhaps string_for_property_type() should be changed to be more like type_string(), since we don't always have a Property).

I will wait for #464 merged then, and check if there are other places need to be changed as well.

#464 is merged

@tgoyne @bdash updated.


Update ivy-clipmenu.el

allows you to use the value set by the user in CM_DIR to handle the clipmenu cache

@arkhan - I apologize for my tardy response.
Thank you for your PR.


Style

I successfully installed ahoviewer in Arch Linux using the AUR but when I actually open it, the style has an ugly white to it. Is there a way so I can get it to look like your screenshot? This is what it looks like: http://i.imgur.com/QV74vOI.png

Ahoviewer uses GTK, so if you want to change its style there's no other option than installing other theme for GTK. However, I can't say what theme @ahodesuka is using.

I am currently using Numix as my GTK theme with Gnome as my DE

Your ahoviewer looks like it should with Numix installed.

Oh ok, that makes sense. In the Gnome tweak tool I enabled 'Global Dark Theme' so I assume that ahoviewer just isn't working with it. Is there any way that I can get that white to be dark?

I found @ahodesuka config in his dotfiles.
ahodesuka/dotfiles/.gtkrc-2.0
It seems that he uses his own style.

In the Gnome tweak tool I enabled 'Global Dark Theme' so I assume that ahoviewer just isn't working with it. Is there any way that I can get that white to be dark?

Can't tell as I don't use Gnome but I'm pretty sure that changing theme to the dark one will work.

Oh, wait. Here it is. You just have to download his theme and put this in .themes directory like here:
https://github.com/ahodesuka/dotfiles/tree/master/.themes/ahoka

When I use the Ahoka theme it works fine, but I would like to keep using Numix if possible though. I tried disabling the 'Global Dark Theme' setting also, and it still looked the same as when I had it enabled, so im pretty sure its not taking effect on ahoviewer.

In the Gnome tweak tool I enabled 'Global Dark Theme'

This does not affect GTK2 applications.
After taking a look at the Numix theme - they do not include a dark variant for GTK2.
So you will need to find a dark variation of Numix's GTK2 theme,
here is one I found after a quick search: https://github.com/Steef435/Numix-dark
This is how it looks for me:

This works! Thank you both so much for all the help :D


tls: failed to verify certificate: x509: certificate is valid for X and not for X

Welcome!

[X] Yes, I've searched similar issues on GitHub and didn't find any.
[X] Yes, I've searched similar issues on the Traefik community forum and didn't find any.

What version of the Traefik's Helm Chart are you using?
Not sure how to check. Its the default traefik installation that came with k3s version v1.26.10+k3s2
What version of Traefik are you using?
rancher/mirrored-library-traefik:2.10.5
What did you do?
Setup vaultwarden with a TLS certificate:
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
  name: vaultwarden.example.com
  namespace: homelab
spec:
  secretName: tls-traefik-vaultwarden.example.com
  issuerRef:
    name: vault-traefik-issuer
  commonName: vaultwarden.example.com
  dnsNames:
    - localhost
    - databases-vaultwarden
    - databases-vaultwarden.homelab
    - databases-vaultwarden.homelab.svc
    - databases-vaultwarden.homelab.svc.cluster.local
    - vaultwarden.example.com
  ipAddresses:
    - <IP_ADDRESS>
    - <IP_ADDRESS>
    - <IP_ADDRESS>

Setup traefik with a root CA certificate (same root ca as the TLS cert Vaultwarden is using) with --serversTransport.rootCAs=/certs/tls.crt.
More details about the traefik config on the section: What is your environment & configuration?
Create a Service in k3s and an IngressRoute pointing to the service with https scheme. (My ingressroute is pointing https to port 80 as I had forgotten to change the port in vaultwarden. Please consider for now this port as https. Will change this later):
apiVersion: v1
kind: Service
metadata:
  name: databases-vaultwarden
  namespace: homelab
spec:
  selector:
    workload.user.cattle.io/workloadselector: apps.deployment-homelab-databases-vaultwarden
  ports:
      # I know this port is for HTTP.
      # I forgot to change the port in VaultWarden itself so it is currently using this port for HTTPS.
      # Will change later.
    - name: http
      port: 80
      protocol: TCP
      targetPort: 80
  type: ClusterIP
---
apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
  name: vaultwarden
  namespace: homelab
spec:
  entryPoints:
  - websecure
  routes:
  - kind: Rule
    match: Host(`vaultwarden.example.com`)
    services:
    - name: databases-vaultwarden
      port: 80
      scheme: https
  tls:
    secretName: tls-traefik-vaultwarden.example.com

What did you see instead?
time="2023-12-06T15:38:30Z" level=debug msg="'500 Internal Server Error' caused by: tls: failed to verify certificate: x509: certificate is valid for <IP_ADDRESS>, <IP_ADDRESS>, <IP_ADDRESS>, not <IP_ADDRESS>"
2023-12-06T15:38:30.192362442Z <IP_ADDRESS> - - [06/Dec/2023:15:38:30 +0000] "GET / HTTP/2.0" 500 21 "-" "-" 1289 "homelab-vaultwarden-b3c3ecabf5fae61de16b@kubernetescrd" "https://<IP_ADDRESS>:80" 2ms
time="2023-12-06T15:38:30Z" level=debug msg="'500 Internal Server Error' caused by: tls: failed to verify certificate: x509: certificate is valid for <IP_ADDRESS>, <IP_ADDRESS>, <IP_ADDRESS>, not <IP_ADDRESS>"
2023-12-06T15:38:30.201955374Z <IP_ADDRESS> - - [06/Dec/2023:15:38:30 +0000] "GET /favicon.ico HTTP/2.0" 500 21 "-" "-" 1290 "homelab-vaultwarden-b3c3ecabf5fae61de16b@kubernetescrd" "https://<IP_ADDRESS>:80" 1ms

I was expecting to see traefik connect to the service via the service hostname databases-vaultwarden and not via the POD's IP Address. As the POD's IP Address is dynamic, I cannot include it in the TLS certificate's SANs.
I know I can just skip TLS verification, however, I would like to create a setup without relying on this insecure way of doing things.
What is your environment & configuration?
Using k3s in a Debian OS.
Using the default traefik installation that came with k3s version v1.26.10+k3s2.
Created the following HelmChartConfig:
apiVersion: helm.cattle.io/v1
kind: HelmChartConfig
metadata:
  name: traefik
  namespace: kube-system
spec:
  valuesContent: |-
    providers:
      kubernetesCRD:
        allowExternalNameServices: true
    ingressRoute:
      dashboard:
        entryPoints: ["websecure"]
        matchRule: Host(`traefik.example.com`) && (PathPrefix(`/dashboard`) || PathPrefix(`/api`))
    logs:
      general:
        level: DEBUG
      access:
        enabled: true
    globalArguments:
      - "--global.checknewversion"
      - "--serversTransport.rootCAs=/certs/tls.crt"
    volumes:
      - name: tls-homelab-ca
        mountPath: "/certs"
        type: secret
    ports:
      web:
        redirectTo:
          port: websecure

Additional Information
I checked for past issues and I found one that had the same issue, but the issue was closed due to the op using Traefik V1 and was advised to upgrade to V2:

https://github.com/traefik/traefik/issues/4227

Hello @AyluinReymaer,
For configuration issues, users can share and learn from each other on the community forum.
If you want to configure TLS between Traefik Proxy and the backend, you will probably be interested in ServersTransports CRD.
I close this issue, since this repository is dedicated to issues related to Helm Chart.
Thanks for your understanding,

@AyluinReymaer  I would love to follow up this. Do you have a link to a community forum post or resolution. I am  experiencing something similar with a docker swarm cluster.

Hey @interlock ,
I followed the solution provided in this thread to use ServersTransports CRD.
The schema is already in that link but a basic example is like this (this example is also in the doc above. Just changed the serverstransport to use rootCAsSecrets instead of insecureSkipVerify):
apiVersion: traefik.io/v1alpha1
kind: ServersTransport
metadata:
  name: mytransport
  namespace: default
spec:
  serverName: example.org
  rootCAsSecrets:
    - secret containing ca.crt
---
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
  name: testroute
  namespace: default
spec:
  entryPoints:
    - web
  routes:
  - match: Host(`example.com`)
    kind: Rule
    services:
    - name: whoami
      port: 80
      serversTransport: mytransport

The key here is to create a ServersTransport with your required config and then link it to the IngressRoute in the serversTransport property.
Both need to be in the same namespace btw.


WIP: don't let commits in other PRs interrupt CI runs

This didn't work, because when another PR started a workflow it didn't have to wait; it started, reset the VPS, making the workflow from this PR fail because the CI machine was killed.

Now it works:

First we started https://github.com/deltachat/chatmail/actions/runs/9905900660/job/27366388792 (workflow 1) from #546.
then I pushed https://github.com/deltachat/chatmail/pull/361/commits/9006ea10f638461369c64d7178a279ec427ce015, which triggered https://github.com/deltachat/chatmail/actions/runs/9905934539/job/27366494427 (workflow 2). It didn't start to execute, but waited for workflow 1 instead.
then I pushed the last commit, which killed workflow 2, but then continued to wait for workflow 1.


What is the upper limit of monitoring items?

⚠ Please verify that this question has NOT been raised before.

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

🛡 Security Policy

[X] I agree to have read this project Security Policy

📝 Describe your problem
What is the upper limit of monitoring items?
📝 Error Message(s) or Log
What is the upper limit of monitoring items?
🐻 Uptime-Kuma Version
/
💻 Operating System and Arch
/
🌐 Browser
/
🐋 Docker Version
/
🟩 NodeJS Version
/

Depends what montiors you want to run, how often they run and what retention you want.
There is no implemneted limt, but some monitors consume a lot of cpu/memory like "real-browser" (because it runs chrome) or other limits (f.ex. requesting big json files often => network bandwith)
We are seeing some limits of the frontend at ~1000 monitors, but this will be fixed in v2.0.
We have not yet done concrete benchmarking on v2.0 where the newer limit is.


endpoint: support indexscan executor

HI,all,
This PR   init IndexScanExec based on #1786 . The related code in tikv https://github.com/pingcap/tidb/blob/master/store/tikv/mock-tikv/executor.go#L157.
@hhkbp2 @BusyJay PTAL

Will review again once table scan PR is merged.

Please fix the conflict.

Please merge the master branch and fix the conflict.

@coocood @hhkbp2 PTAL

PTAL @coocood

@coocood @hhkbp2  PTAL

LGTM

@hhkbp2 @tiancaiamao PTAL

@hanfei1991

LGTM, please rerun or resolve travis-ci


change log update related to v2.1.12

Improve documentation: useful to mention how this is improved (linking)
Error handling: for all errors or certain functions?

Expanded on docs improvements

Improve documentation: useful to mention how this is improved (linking)
Error handling: for all errors or certain functions?

Expanded on docs improvements

This is excellent, two of those expansions are requests from users. Thank you!


The implementation authenticates with provider not consumer

edit (took 5 minutes to figure out how this actually works... well hopefully) here is what I think needs to happen: https://github.com/Andrew-Chen-Wang/react-native-oauth-login/issues/1#issuecomment-860150418

Maybe a helpful article explaining a little better!: https://www.toptal.com/django/integrate-oauth-2-into-django-drf-back-end

btw transferred this issue from https://github.com/Andrew-Chen-Wang/react-native-oauth-login/issues for mobile_consumer implementation

ok so that article from toptal has an image: https://www.toptal.com/django/integrate-oauth-2-into-django-drf-back-end

basically saying that for mobile consumers. We first just authenticate with the provider then send the access/refresh tokens to the consumer. The consumer then gives the client a token pair for the consumer's endpoints where the payload (just extrapolating from my own knowledge here) encrypts the provider's access and refresh tokens.
This makes... less sense! Well it actually does make sense. We basically skip the entire allauth thing by only using allauth's models and adapters to save stuff. The flow is the same though; we just need to create an EmailAddress model, save some stuff in AllAuth's social account models, and continue on!

Also the reason we see some random username is because of this: https://github.com/pennersr/django-allauth/blob/c50a30acc0e4553297b0ddb697d55a290ed6d038/allauth/account/adapter.py#L196-L218

Completed: 0fd63bff7386c60a2f95eaea5dba21ce01a89b32
Took one evening to realize that the redirect scheme actually needed to be set in the provider lmao... but thank goodness I saw that article about the token exchange. Nothing else would've convinced me that was "safer" tbh. I did think of it but I was thinking too complex and though NAAA exchanging tokens willy nilly? Back then, it riddled down to a debate: should the consumer have my access tokens? And the answer is the web consumer already does it, I just didn't know lmao


Request: Wheel for Python 3.8 on Windows

Would it be possible to get a compiled wheel for Python 3.8 on Windows?
We're using brotlipy in cve-bin-tool and have had some windows users utterly perplexed when they needed a compiler.  Obviously we'll teach them, but one of our devs pointed out that you've got wheels for <= 3.7 and thought it couldn't hurt to ask if 3.8 was in the works.  Just figured you might want a nudge to know someone would be happy to have it!

Are you installing brotlipy or brotlicffi? There are two 3.5+ ABI wheels available for Windows:

https://files.pythonhosted.org/packages/19/ed/a5b4930b545a84b9339d93fb6b0f3367fd6162342ee6d513ecd83b5f70e6/brotlicffi-0.8.0-cp35-abi3-win32.whl
https://files.pythonhosted.org/packages/2a/f4/e5194d9d6ea453cc718aef231d49f630fbc3ae537df82a4af12203bcf6c7/brotlicffi-0.8.0-cp35-abi3-win_amd64.whl

If you're installing a downstream project that installs brotlipy then you'll have to wait for that project to switch over (I'm going to be creating PRs for this soon!)

Closing due to inactivity.


Refresh User Profile upon logout

Still shows previous user's profile upon logout then login.

This is working -- except the previous user's avatar will still display.


Fabrikate swallowing error messages

When attempting to adding new components via Fabrikate (e.g. Jaeger), any helm chart dependency failures are not displayed in logs. For example:
ERRO[29-01-2019 15:46:19] helm template failed with:
after investigating, the root cause of the issue was the following error:
  jaeger git:(master) helm dependency update Error: no repository definition for https://kubernetes-charts-incubator.storage.googleapis.com/, https://kubernetes-charts-incubator.storage.googleapis.com/. Please add them via 'helm repo add'

I have no idea why golang makes this so hard to do - but I am on it.

Addressed in https://github.com/Microsoft/fabrikate/commit/99ad5419ffa0f1d4efa95093fce4d87403395a77


Add feedback to admin menu

Short description
This PR is still a work in progress. This PR in it's entirety is supposed to create an api endpoint to allow the lunes app to send feedback.
Proposed changes
This is the first out of two commits. This commit is supposed to

add a feedback item to the admin menu

But at even at this point I'm having issues. There is something wrong with my classes Feedback and FeedbackAdmin. Therefore the iteration of the register-function is failing. Can you maybe give me a hint how to fix this respectively what is still missing in order to add "feedback" to the admin menu.

Resolved issues

Fixes: #211
(for more information also take a look at #313 )

Thank you a lot for your feedback! It helped me a lot.
I worked on the next two steps:
I finished the commit to add feedback to the navigation (admin). In the end it worked fine on my machine. Please feel free to test if it's working as expected.
Then I started working on the API. However I'm still struggling to understand ViewSets. Neither the REST framework documentation nor tutorials helped me really understand them. Can you maybe give a few guidelines on what to focus when I'm working with them?
Lastly the black-test is still failing. The documentation in Circle CI doesn't help me a lot. It only tells me which files aren't well formatted. But still I'm not sure what to fix in order to pass the black-test. Can you maybe give me some hints on how to troubleshoot?
Thank you again for helping me out! I really appreciate it!

Thank you again for the detailed feedback! It once again helped me a lot! :)
I see still three points left, before I can show the new endpoint to the App-Team.

I tried the idea to solve the matter via a GenericForeignKey, but it didn't work at all, as I imagined it. For one the import of GenericForeignKey doesn't seem to exist.

I tried to make the feedback only visible to the administrators until we come up with a solution on how to display the feedback in a way that makes sense. Is there another way to do this instead of using "only_staff"?

When I try to start the server, I'm running into the following error message. I'm quite sure this error appeared when I updated the migration file for feedback respectively when I rebased from development and added the migration file 003. I already tried to delete the migration files and the pycache. And although that helped to clean up a bit, it didn't fix the error. Do you have an idea what I could do to fix this?

Thank you once again for your feedback! :)
I was able to fix the issue with my run-command. I still get one last issue. When I open the feedback-tab I get "no such column: cms_feedback.content_type_id". I'm not sure how this issue comes to be. I couldn't find any instance of "content_type_id". Thus, I'm now expecting it to be an error on my machine. Can you please check, if everything is working as expected on your machine?
Thank you :)


doc: pass nixpkgs-revision instead of nixpkgs

The doc expressions take both a pkgs packageset as well as a nixpkgs argument whose purpose is unclear.
I traced all the usage of nixpkgs and it appears to be simply "any attrset with a revision attribute".  Let's replace this argument with nixpkgs-revision so people know what its purpose is.
I did not change the arguments to doc/default.nix because it might
be considered an exposed public interface (does Hydra
nix-instantiate it directly?).  We should give it an entry in
all-packages.nix and access it that way.

Keeping nixpkgs around as a convenience method seems like a good thing, but I agree that these functions have no business depending on a whole flake, if that's what you're going for. Not sure how useful such interface segregation is, in this instance.

Keeping nixpkgs around as a convenience method seems like a good thing, but I agree that these functions have no business depending on a whole flake, if that's what you're going for.

That was sort of the idea.  I wanted to make the manual callable from situations where you really shouldn't assume the ability to import <nixpkgs> (i.e. from top-level/all-packages.nix).
It turned out that the docs don't use that argument for anything except the revision, so the idea was to pass only that.


Add Mastering DPC++ Publications

Description
Adding code samples that accompany the Book: Data Parallel C++: Mastering DPC++ for Programming of Heterogeneous Systems using C++ and SYCL by James Reinders, Ben Ashbaugh, James Brodman, Michael Kinsner, John Pennycook, Xinmin Tian (Apress, 2020).
Checklist
Administrative

[ ] Review sample design with the appropriate Domain Expert:
[ ] If you have any new dependencies/binaries, inform the oneAPI Code Samples Project Manager: @JoeOster

Code Development

[ ] Implement coding guidelines and ensure code quality. see wiki for details
[ ] Adhere to readme template
[ ] Enforce format via clang-format config file
[ ] Adhere to sample.json specification. https://github.com/oneapi-src/oneAPI-samples/wiki/sample-json-specification
[ ] Ensure/create CI test configurations for sample (ciTests field) https://github.com/oneapi-src/oneAPI-samples/wiki/sample-json-ci-test-object
[ ] Run jsonlint on sample.json to verify json syntax. www.jsonlint.com

Security and Legal

[ ] OSPDT Approval (see @JoeOster for assistance)
[ ] Compile using the following compiler flags and fix any warnings, the falgs are: "/Wall -Wformat-security -Werror=format-security"
[ ] Bandit Scans (Python only)
[ ] Virus scan

Review

[ ] Review DPC++ code with Paul Peterseon. (GitHub User: pmpeter1)
[ ] Review readme with Tom Lenth(@tomlenth) and/or Joe Oster(@JoeOster)
[ ] Tested using Dev Cloud when applicable

@tomlenth - only two docs, readme. and changelog.md need to be reviewed. These two files are written via automation, to help eliminate human error. Consider these rough drafts and we can make improvements accordingly
@pmpeter1 - all code samples are in the book, just wanted you to be aware of the project
@xmnboy  - thanks for the help with the aggregator, we might have issues with ci, so including you


Put all build commands in setup.py command classes

In the translation workflow, Babel adds helper scripts to setup.py, and #778 added some helpers to call all of the required translation pieces.
#771 uses a standard npm run to wrap around the webpack calls, however would it make more sense to also put these in setup.py? We could even extend the build command class to execute the webpack build prior to the rest of the packaging build steps.

python setup.py build is consistent and fits with our release packaging. It keeps commands in a singular place
npm run build implies that the build process requires npm and installation through npm
Middle ground: python seutp.py build calls npm run build, it's all about choices.

Which are you most likely to use (or want to use)?

I'm fine with using setup.py, but npm or yarn is still needed to pull in the dependencies.

Yup of course, I'm just referring to removing scripts from package.json.
A quick test shows python setup.py build is really nice, bdist and friends chain off of the Webpack build nicely.
I added a POC PR at #809 that shows this. The npm run dev command has waffled again to not collide with python setup.py develop. Suggestions welcome there.

Already merged. Commands are python setup.py build and python setup.py watch for now.


feat(autoprovisioning, blockdevice): add support to create cStor pools on sparse block device

Add support to create sparse based or disk based cstor pools.
User needs to set spec.type type as sparse or disk.
Auto Provisioning:

If cstor pools need to be created on top of sparse disks.

apiVersion: openebs.io/v1alpha1
kind: StoragePoolClaim
metadata:
  name: cstor-sparse
spec:
  name: cstor-sparse
  type: sparse
  maxPools: 3
  poolSpec:
    poolType: striped
    overProvisioning: false

If cstor pools need to be created on top of disks attached to the node.

apiVersion: openebs.io/v1alpha1
kind: StoragePoolClaim
metadata:
  name: cstor-disk
spec:
  name: cstor-disk
  type: disk
  maxPools: 3
  poolSpec:
    poolType: mirrored
    overProvisioning: false

Signed-off-by: mittachaitu<EMAIL_ADDRESS>

I prefer to type as block device instead of disk