m365 login: Error: post_request_failed:

Priority
(Urgent) I can't use the CLI
Description
I installed m365 cli but cannot login with m365 login.
$ m365 version
"v7.10.0"

Steps to reproduce

Install cli with npm install -g @pnp/cli-microsoft365
run m365 login

Expected results
OAuth authentication should be started by opening my browser (Firefox 128.0.3) which asks me for login.
Actual results
I get this error message:
$ m365 login --debug
Executing command login with options {"options":{"debug":true,"output":"json"}}
Logging out from Microsoft 365...
Signing in to Microsoft 365...
No token found for resource https://graph.microsoft.com.
[Mon, 29 Jul 2024 16:14:08 GMT] : []<EMAIL_ADDRESS>: Info - getTokenCache called
Starting Auth.ensureAccessTokenWithDeviceCode. resource: https://graph.microsoft.com, debug: true
[Mon, 29 Jul 2024 16:14:08 GMT] : []<EMAIL_ADDRESS>: Info - acquireTokenByDeviceCode called
[Mon, 29 Jul 2024 16:14:08 GMT] : []<EMAIL_ADDRESS>: Verbose - initializeRequestScopes called
[Mon, 29 Jul 2024 16:14:08 GMT] : [db9b872e-b47f-4793-9d1b-248714b89b34]<EMAIL_ADDRESS>: Verbose - buildOauthClientConfiguration called
[Mon, 29 Jul 2024 16:14:08 GMT] : [db9b872e-b47f-4793-9d1b-248714b89b34]<EMAIL_ADDRESS>: Verbose - createAuthority called
[Mon, 29 Jul 2024 16:14:08 GMT] : []<EMAIL_ADDRESS>: Verbose - Attempting to get cloud discovery metadata  from authority configuration
[Mon, 29 Jul 2024 16:14:08 GMT] : []<EMAIL_ADDRESS>: Verbose - Did not find cloud discovery metadata in the config... Attempting to get cloud discovery metadata from the hardcoded values.
[Mon, 29 Jul 2024 16:14:08 GMT] : []<EMAIL_ADDRESS>: Verbose - Found cloud discovery metadata from hardcoded values.
[Mon, 29 Jul 2024 16:14:08 GMT] : []<EMAIL_ADDRESS>: Verbose - Attempting to get endpoint metadata from authority configuration
[Mon, 29 Jul 2024 16:14:08 GMT] : []<EMAIL_ADDRESS>: Verbose - Did not find endpoint metadata in the config... Attempting to get endpoint metadata from the hardcoded values.
[Mon, 29 Jul 2024 16:14:08 GMT] : [db9b872e-b47f-4793-9d1b-248714b89b34]<EMAIL_ADDRESS>: Info - Building oauth client configuration with the following authority: https://login.microsoftonline.com/common/oauth2/v2.0/token.
[Mon, 29 Jul 2024 16:14:08 GMT] : [db9b872e-b47f-4793-9d1b-248714b89b34]<EMAIL_ADDRESS>: Verbose - Device code client created
Response:
{
  userCode: undefined,
  deviceCode: undefined,
  verificationUri: undefined,
  expiresIn: undefined,
  interval: undefined,
  message: undefined
}

[Mon, 29 Jul 2024 16:14:08 GMT] : [db9b872e-b47f-4793-9d1b-248714b89b34]<EMAIL_ADDRESS>: Info - Unexpected error in polling from the server
Error:
AuthError: post_request_failed: Post request failed from the network, could be a 4xx/5xx or a network unavailability. Please check the exact error code for details. unknown_error
    at createAuthError (file:///home/htammen/.nvm/versions/node/v20.14.0/lib/node_modules/@pnp/cli-microsoft365/node_modules/@azure/msal-common/dist/error/AuthError.mjs:50:12)
    at DeviceCodeClient.acquireTokenWithDeviceCode (file:///home/htammen/.nvm/versions/node/v20.14.0/lib/node_modules/@pnp/cli-microsoft365/node_modules/@azure/msal-node/dist/client/DeviceCodeClient.mjs:168:27)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async DeviceCodeClient.acquireToken (file:///home/htammen/.nvm/versions/node/v20.14.0/lib/node_modules/@pnp/cli-microsoft365/node_modules/@azure/msal-node/dist/client/DeviceCodeClient.mjs:25:26)
    at async PublicClientApplication.acquireTokenByDeviceCode (file:///home/htammen/.nvm/versions/node/v20.14.0/lib/node_modules/@pnp/cli-microsoft365/node_modules/@azure/msal-node/dist/client/PublicClientApplication.mjs:66:20)
    at async Auth.ensureAccessToken (file:///home/htammen/.nvm/versions/node/v20.14.0/lib/node_modules/@pnp/cli-microsoft365/dist/Auth.js:193:26)
    at async login (file:///home/htammen/.nvm/versions/node/v20.14.0/lib/node_modules/@pnp/cli-microsoft365/dist/m365/commands/login.js:74:17)
    at async LoginCommand.commandAction (file:///home/htammen/.nvm/versions/node/v20.14.0/lib/node_modules/@pnp/cli-microsoft365/dist/m365/commands/login.js:92:9)
    at async LoginCommand.action (file:///home/htammen/.nvm/versions/node/v20.14.0/lib/node_modules/@pnp/cli-microsoft365/dist/m365/commands/login.js:102:9)
    at async Object.executeCommand (file:///home/htammen/.nvm/versions/node/v20.14.0/lib/node_modules/@pnp/cli-microsoft365/dist/cli/cli.js:201:9) {
  errorCode: 'post_request_failed',
  errorMessage: 'Post request failed from the network, could be a 4xx/5xx or a network unavailability. Please check the exact error code for details. unknown_error',
  subError: '',
  correlationId: 'db9b872e-b47f-4793-9d1b-248714b89b34'
}

Timings:
api: 0ms
core: 7.75798ms
command: 396.17878ms
options: 0.565499ms
total: 407.663951ms
validation: 0.499599ms
Error: post_request_failed: Post request failed from the network, could be a 4xx/5xx or a network unavailability. Please check the exact error code for details. unknown_error

Diagnostics

I'm using Windows WSL with Ubuntu 20.04.
I'm behind a corporate proxy.
The env variable HTTPS_PROXY is set correctly. Other applications can access the internet from terminal. I can install npm packages without problems.
When running x-www-browser https://login.microsoftonline.com/common/oauth2/v2.0/token my browser opens with a page that says that only POST and OPTIONS requests are supported by the endpoint (which is correct).
When I run curl -X POST https://login.microsoftonline.com/common/oauth2/v2.0/token I get a response from the server

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd">
<TITLE>Length Required</TITLE>
<META HTTP-EQUIV="Content-Type" Content="text/html; charset=us-ascii">

Length Required

HTTP Error 411. The request must be chunked or have a content length.

CLI for Microsoft 365 version
7.10.0
nodejs version
v20.14.0
Operating system (environment)
Windows
Shell
bash
cli doctor
$ m365 cli doctor
Error: Log in to Microsoft 365 first

Additional Info
No response

@htammen sorry to hear you are having problems with using CLI.
We will look into this issue ASAP

@htammen by any chance are you using a pac file?

@Adam-it yes, the browser uses a pac file but in WSL I set HTTP_PROXY via env variable with the value of the resulting IP from pac file.

Given that a regular call using curl results in a 411 I wonder if it's indicative of an issue with the machine/proxy setup rater than CLI.

I think I have seen this behavior sometimes as well. But it's not very often. In my case I think the error message is actually descriptive of what's happening: It could be that it's polling an endpoint and failing to do so sometimes.
How about you @htammen, does this occur every time you use m365 login?

Yes, it occurs every time.
Network is ok. I can send other requests, e.g. with curl, gitlab cli, github cli, jira cli, ..., without problems.

I'm also having an issue with login which seems like network issue:
  m365 login --appId *** --secret *** --tenant *** --authType secret --debug  --verbose
  shell: /usr/bin/bash -e {0}
  env:
    CLIMICROSOFT365_ENTRAAPPID: ***
    CLIMICROSOFT365_TENANT: ***

Executing command login with options {"options":{"appId":"***","secret":"***","tenant":"***","authType":"secret","debug":true,"verbose":true,"output":"json"}}
- Running command...
Logging out from Microsoft 365...
Signing in to Microsoft 365...
No token found for resource https://graph.microsoft.com.
[Tue, 27 Aug 2024 08:43:09 GMT] : []<EMAIL_ADDRESS>: Info - acquireTokenByClientCredential called
[Tue, 27 Aug 2024 08:43:09 GMT] : []<EMAIL_ADDRESS>: Verbose - initializeRequestScopes called
[Tue, 27 Aug 2024 08:43:09 GMT] : [5]d-786d-4548-9b09-4ac60b11b686]<EMAIL_ADDRESS>: Verbose - buildOauthClientConfiguration called
[Tue, 27 Aug 2024 08:43:09 GMT] : [20f7395d-786d-4548-9b09-4ac60b11b686]<EMAIL_ADDRESS>: Verbose - createAuthority called
[Tue, 27 Aug 2024 08:43:09 GMT] : []<EMAIL_ADDRESS>: Verbose - Attempting to get cloud discovery metadata  from authority configuration
[Tue, 27 Aug 2024 08:43:09 GMT] : []<EMAIL_ADDRESS>: Verbose - Did not find cloud discovery metadata in the config... Attempting to get cloud discovery metadata from the hardcoded values.
[Tue, 27 Aug 2024 08:43:09 GMT] : []<EMAIL_ADDRESS>: Verbose - Found cloud discovery metadata from hardcoded values.
[Tue, 27 Aug 2024 08:43:09 GMT] : []<EMAIL_ADDRESS>: Verbose - Attempting to get endpoint metadata from authority configuration
[Tue, 27 Aug 2024 08:43:09 GMT] : []<EMAIL_ADDRESS>: Verbose - Did not find endpoint metadata in the config... Attempting to get endpoint metadata from the hardcoded values.
[Tue, 27 Aug 2024 08:43:09 GMT] : []<EMAIL_ADDRESS>: Verbose - Replacing tenant domain name *** with id {tenantid}
[Tue, 27 Aug 2024 08:43:09 GMT] : [20f7395d-786d-4548-9b09-4ac60b11b686]<EMAIL_ADDRESS>: Info - Building oauth client configuration with the following authority: https://login.microsoftonline.com/***/oauth2/v2.0/token.
[Tue, 27 Aug 2024 08:43:09 GMT] : [20f7395d-786d-4548-9b09-4ac60b11b686]<EMAIL_ADDRESS>: Verbose - Client credential client created
[Tue, 27 Aug 2024 08:43:09 GMT] : []<EMAIL_ADDRESS>: Verbose - Replacing tenant domain name *** with id {tenantid}
[Tue, 27 Aug 2024 08:43:09 GMT] : []<EMAIL_ADDRESS>: Verbose - Replacing tenant domain name *** with id {tenantid}
[Tue, 27 Aug 2024 08:43:09 GMT] : [20f7395d-786d-4548-9b09-4ac60b11b686]<EMAIL_ADDRESS>: Info - Sending token request to endpoint: https://login.microsoftonline.com/***/oauth2/v2.0/token
Error:
ServerError: unknown_error: undefined - [undefined]: An unknown error occured.
Http status code: 302
Http status message: Found
Headers: {"Content-Length":"0","Location":"https://login.microsoftonline.com:443/***/oauth2/v2.0/token","Set-Cookie":"stsservicecookie=estsfd; path=/; secure; httponly","client-request-id":"88657924-bd75-4c60-a230-507927c69af8","Date":"Tue, 27 Aug 2024 08:43:09 GMT","Connection":"close"} - Correlation ID: undefined - Trace ID: undefined
    at ResponseHandler.validateTokenResponse (file:///opt/hostedtoolcache/node/20.17.0/x64/lib/node_modules/@pnp/cli-microsoft365/node_modules/@azure/msal-common/dist/response/ResponseHandler.mjs:99:33)
    at ClientCredentialClient.executeTokenRequest (file:///opt/hostedtoolcache/node/20.17.0/x64/lib/node_modules/@pnp/cli-microsoft365/node_modules/@azure/msal-node/dist/client/ClientCredentialClient.mjs:159:25)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async ConfidentialClientApplication.acquireTokenByClientCredential (file:///opt/hostedtoolcache/node/20.17.0/x64/lib/node_modules/@pnp/cli-microsoft365/node_modules/@azure/msal-node/dist/client/ConfidentialClientApplication.mjs:98:20)
    at async Auth.ensureAccessToken (file:///opt/hostedtoolcache/node/20.17.0/x64/lib/node_modules/@pnp/cli-microsoft365/dist/Auth.js:193:26)
    at async login (file:///opt/hostedtoolcache/node/20.17.0/x64/lib/node_modules/@pnp/cli-microsoft365/dist/m365/commands/login.js:74:17)
    at async LoginCommand.commandAction (file:///opt/hostedtoolcache/node/20.17.0/x64/lib/node_modules/@pnp/cli-microsoft365/dist/m365/commands/login.js:92:9)
    at async LoginCommand.action (file:///opt/hostedtoolcache/node/20.17.0/x64/lib/node_modules/@pnp/cli-microsoft365/dist/m365/commands/login.js:[102:9)
    at async Object.executeCommand (file:///opt/hostedtoolcache/node/20.17.0/x64/lib/node_modules/@pnp/cli-microsoft365/dist/cli/cli.js:201:9)
    at async Object.execute (file:///opt/hostedtoolcache/node/20.17.0/x64/lib/node_modules/@pnp/cli-microsoft365/dist/cli/cli.js:144:9) {
  errorCode: 'unknown_error',
  errorMessage: 'undefined - [undefined]: An unknown error occured.\n' +
    'Http status code: 302\n' +
    'Http status message: Found\n' +
    'Headers: {"Content-Length":"0","Location":"https://login.microsoftonline.com:443/***/oauth2/v2.0/token","Set-Cookie":"stsservicecookie=estsfd; path=/; secure; httponly","client-request-id":"88657924-bd75-4c60-a230-507927c69af8","Date":"Tue, 27 Aug 2024 08:43:09 GMT","Connection":"close"} - Correlation ID: undefined - Trace ID: undefined',
  subError: '',
  errorNo: undefined,
  correlationId: '20f7395d-786d-4548-9b09-4ac60bb686'
}

Timings:
api: 0ms
core: 7.385956ms
command: 203.450548ms
options: 0.149415ms
total: 2.341388ms
validation: 0.498531ms
Error: unknown_error: undefined - [undefined]: An unknown error occured.
Http status code: 302
Http status message: Found
Headers: {"Content-Length":"0","Location":"https://login.microsoftonline.com:443/***/oauth2/v2.0/token","Set-Cookie":"stsservicecookie=estsfd; path=/; secure; httponly","client-request-id":"88657924-bd75-4c60-a230-507927c69af8","Date":"Tue, 27 Aug 2024 08:43:09 GMT","Connection":"close"} - Correlation ID: undefined - Trace ID: undefined
Error: Process completed with exit code 1.

It does work on a machine which doesn't have a proxy. Also, I'm able to get the access token using curl:
  curl -X POST -H 'Content-Type:application/x-www-form-urlencoded' https://login.microsoftonline.com/***/oauth2/v2.0/token -d 'client_id=***' -d 'grant_type=client_credentials' -d 'scope=https://graph.microsoft.com/.default' -d 'client_secret=***'
  shell: /usr/bin/bash -e {0}
  env:
    CLIMICROSOFT_ENTRAAPPID: ***
    CLIMICROSOFT365_TENANT: ***

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed

  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100  1822  100  1648  100   174   4117    434 --:--:-- --:--:-- --:--:--  4555
{"token_type":"Bearer","expires_in":3599,"ext_expires_in":3599,"access_token":"***"}

I've also tried to set the proxy using environment variables but no change in error.

@MOMED2023 do you have any more information for us so that we can reproduce it?

@MOMED2023 do you have any more information for us so that we can reproduce it?

Not really, Are there any other commands that I could use to get more info? curl or smthn?

If you could please run m365 cli doctor and redact and share the output with us, that would help for sure. Also, any additional information that you could share about your environment (proxy, network settings, type of machine, etc) might help too. This seems like an issue with MSAL which facilitates auth so we need to better understand what's wrong and if it's something that MSAL supports.

Did you solve it?
It stopped working for me after weeks of flawless service.
No config change.
I don't get it.

For me nothing changed, means it still does not work.
I get a new PC at work soon and hope that it then works with a new setup.

Same thing happens here. Nothing changed, but won't be able to login.
In a brand new docker container:
m365 cli doctor
Error: Log in to Microsoft 365 first

In my previous okay OS:
m365 cli doctor
{
  "os": {
    "platform": "darwin",
    "version": "Darwin Kernel Version 23.6.0: Fri Jul  5 17:53:24 PDT 2024; root:xnu-10063.141.1~2/RELEASE_ARM64_T6020",
    "release": "23.6.0"
  },
  "cliVersion": "7.10.0",
  "nodeVersion": "v22.8.0",
  "cliAadAppId": <some uuid>,
  "cliAadAppTenant": "common",
  "authMode": "DeviceCode",
  "cliEnvironment": "",
  "cliConfig": {},
  "roles": [],
  "scopes": {
    "https://graph.microsoft.com": [
      "AllSites.FullControl",
      "AppCatalog.ReadWrite.All",
      "ChannelMember.ReadWrite.All",
      "ChannelMessage.Read.All",
      "ChannelMessage.Send",
      "ChannelSettings.ReadWrite.All",
      "Directory.AccessAsUser.All",
      "Directory.ReadWrite.All",
      "Group.ReadWrite.All",
      "IdentityProvider.ReadWrite.All",
      "Mail.ReadWrite",
      "Mail.Send",
      "Policy.Read.All",
      "Reports.Read.All",
      "Tasks.ReadWrite",
      "Team.Create",
      "TeamMember.ReadWrite.All",
      "TeamsApp.ReadWrite.All",
      "TeamsAppInstallation.ReadWriteForUser",
      "TeamSettings.ReadWrite.All",
      "TeamsTab.ReadWrite.All",
      "TermStore.ReadWrite.All",
      "User.Invite.All",
      "User.ReadWrite.All",
      "profile",
      "openid",
      "email"
    ]
  }
}

A colleague found this article

“We are introducing changes on how the PnP PowerShell and CLI for Microsoft 365 can be used to connect to Microsoft 365, which might have an impact on your scripts and automation. Previously you were able to use a multi-tenant app registration called PnP Management Shell to grant the needed permissions for the scripts. This multi-tenant app registration will be, however, deleted on September 9, 2024 which might impact your existing scripts.”

After re-registering the application, the problem was eventually solved!

We're still using 8 and had the issue this morning.
It's a shame that there's so little communication about such a breaking change.
However I have no idea if the fix for this morning will also fix the issue raised by OP before Sept. 9 2024.

Also the changes in the default login behavior and the reasoning behind it may be found in the release blog post:
https://pnp.github.io/blog/cli-for-microsoft-365/cli-for-microsoft-365-v9-0/#the-new-major-version-of-cli-for-microsoft-365--v9

We're still using 8 and had the issue this morning.
It's a shame that there's so little communication about such a breaking change.
However I have no idea if the fix for this morning will also fix the issue raised by OP before Sept. 9 2024.

We're still using 8 and had the issue this morning.
It's a shame that there's so little communication about such a breaking change.
However I have no idea if the fix for this morning will also fix the issue raised by OP before Sept. 9 2024.

Unfortunately, this change affects all versions of CLI for Microsoft 365. Because the app reg we used no longer exists, you can't authenticate using it and need to use a custom app reg instead.

I have a node version 16.14.2 and package pnp/cli-microsoft365:6.8.0 that is using m365 in a script to download a file. Do I need to upgrade to v9 or simply re-registering will work?
Need help as I have an ongoing production issue because of this script failing.

@saurabh-dtu you may still use an older version of CLI for Microsoft 365. But now when login in you will need to do it over you own Entra App Registration that you created before hand manually, here we have the guidance how to do that: https://pnp.github.io/cli-microsoft365/user-guide/using-own-identity
and then you need to define the appId and tenantId for the login command. You may do this in two ways:

either deine those as environment variables CLIMICROSOFT365_ENTRAAPPID and CLIMICROSOFT365_TENANT and this is the guidance: https://pnp.github.io/cli-microsoft365/user-guide/using-own-identity#create-environment-variables
or you need to run the login command with the appId and tenant options to pass it over like this m365 login --appId 31359c7f-bd7e-475c-86db-fdb8c937548c --tenant 31359c7f-bd7e-475c-86db-fdb8c937548a.

So it is still possible to use any (previous) version of CLI for Microsoft 365.
In v9 we updated the default login behavior that now it will always by default check for the appId and tenant info. And we updated the setup command so that it now allows you to create such an Entra App Registration automatically

If you had posted updated instructions in the docs it would have saved me hours of time searching.

If you had posted updated instructions in the docs it would have saved me hours of time searching.

Thanks for the feedback and sorry for the trouble in finding the correct guidance 🙏.
We are aware our docs needs to be updated and I think we even have an issue for the page you pointed out 👍

Thanks for the feedback and sorry for the trouble in finding the correct guidance 🙏. We are aware our docs needs to be updated and I think we even have an issue for the page you pointed out 👍

Yes, #6343. We should really make work of it. I'll see if I can find some time somewhere this week.

@saurabh-dtu you may still use an older version of CLI for Microsoft 365. But now when login in you will need to do it over you own Entra App Registration that you created before hand manually, here we have the guidance how to do that: https://pnp.github.io/cli-microsoft365/user-guide/using-own-identity and then you need to define the appId and tenantId for the login command. You may do this in two ways:

either deine those as environment variables CLIMICROSOFT365_ENTRAAPPID and CLIMICROSOFT365_TENANT and this is the guidance: https://pnp.github.io/cli-microsoft365/user-guide/using-own-identity#create-environment-variables
or you need to run the login command with the appId and tenant options to pass it over like this m365 login --appId 31359c7f-bd7e-475c-86db-fdb8c937548c --tenant 31359c7f-bd7e-475c-86db-fdb8c937548a.

So it is still possible to use any (previous) version of CLI for Microsoft 365. In v9 we updated the default login behavior that now it will always by default check for the appId and tenant info. And we updated the setup command so that it now allows you to create such an Entra App Registration automatically

@Adam-it so, I asked my networking team to follow the steps mentioned https://pnp.github.io/cli-microsoft365/user-guide/using-own-identity. they come up saying that setting up the CLI App registration requires a redirect URI and they do not apply redirect URIs to App registrations due security issue by off loading the authentication and bypassing PING.
What to do, any suggestion/alternative?

@saurabh-dtu does the networking team have a problem with any redirect URI set or are those risks mentioned specific to nativeclient ?

@Adam-it with any redirect. I was wondering if i skip the redirection url, will it use device flow authentication?
like generating a code and then authenticate on different device.

@saurabh-dtu that is correct. If you will be login as an app using for example the certificate auth type then you don't need to setup the redirect url

@saurabh-dtu that is correct. If you will be login as an app using for example the certificate auth type then you don't need to setup the redirect url

Keep in mind though, that you'd be using CLI with application permissions which might not be desirable.
To keep using the CLI using delegated permissions without a redirect URI, you could use device code flow. More information: https://learn.microsoft.com/en-us/entra/identity-platform/reply-url


Desktop default window size

Description

Set the default window size for Linux and Windows desktop to 1280x720

Checklist

[ x ] I read the Contributor Guide and followed the process outlined there for submitting PRs.
[ x ] I signed the CLA.
[ x ] I read and followed the Flutter Style Guide, including Features we expect every widget to implement.
[ x ] I read the Tree Hygiene wiki page, which explains my responsibilities.
[  ] I updated/added relevant documentation (doc comments with ///).
[  ] All existing and new tests are passing.
[  ] The analyzer (flutter analyze --flutter-repo) does not report any problems on my PR.
[ x ] I am willing to follow-up on review comments in a timely manner.

Breaking Change
Did any tests fail when you ran them? Please read Handling breaking changes.

[ x ] No, no existing tests failed, so this is not a breaking change.
[ ] Yes, this is a breaking change. If not, delete the remainder of this section.

[ ] I wrote a design doc: https://flutter.dev/go/template Replace this with a link to your design doc's short link
[ ] I got input from the developer relations team, specifically from: Replace with the names of who gave advice
[ ] I wrote a migration guide: Replace with a link to your migration guide

The template is just meant to be a reasonable default value. You could of course change it in your own application.
@stuartmorgan

The template is just meant to be a reasonable default value. You could of course change it in your own application.
@stuartmorgan

Indeed it is just the default.  I don't think anyone will actually want 800x600 and as I've seen recently in a very large flutter project, the default was never changed.  I'd rather start with a more modern default, especially in a desktop app you never want 4:3 aspect.

The template is just meant to be a reasonable default value. You could of course change it in your own application.
@stuartmorgan

Indeed it is just the default. I don't think anyone will actually want 800x600 and as I've seen recently in a very large flutter project, the default was never changed. I'd rather start with a more modern default, especially in a desktop app you never want 4:3 aspect.

I picked 800x600 basically because I wanted something that would be pretty much guaranteed to fit on any desktop screen. I agree it's not a great default, but on the other hand I just checked a random stats page on desktop screen resolutions and it looks like somewhere in the vicinity of 5-10% of screens wouldn't necessarily fit 1280x720 once the areas not available for client application use were removed. So I think if we make the default larger, we'd need to add logic to check the available screen area and constrain the starting size to it if it's smaller. (Which I'm fine with, as I think that's generally useful enough to have in the template until a real Dart-based solution for managing window size is available, but it's not quite as simple a change.)

Actually the window manager takes this as a requested resolution and if the requested size is to large it will make the app full screen.  I tested this by setting it to 3840x2160 on my 1920x1080 desktop.  I confirmed it did in fact just go full screen.
Since it does handle this well, I'd like to go back to my original proposal to default to 1366x768.  @stuartmorgan what do you think?

I'd prefer 1280x720; if the goal is to shape how developers think about their layouts, then skewing slightly smaller has the advantage of reminding developers (who tend to have larger screens) to think about how their layout will look for people with smaller screens.
Have you tested Windows? If not I can do that this afternoon.

I'd prefer 1280x720; if the goal is to shape how developers think about their layouts, then skewing slightly smaller has the advantage of reminding developers (who tend to have larger screens) to think about how their layout will look for people with smaller screens.
Have you tested Windows? If not I can do that this afternoon.

I don't have access to windows, I would appreciate it if you could test that.


vcrpy requirement in devtools is old and unavailable on some Linux distributions

Package Name: azure-devtools
Package Version: HEAD
Operating System: Fedora 34
Python Version: Python 3.9.6

Describe the bug
Fedora offers version 4.1.1 of vcrpy (released Oct 2020) but azure-devtools requires a much older 3.0.0 version that was released in 2019. Would it be possible to get this requirement updated?

Thanks for the report; we will look into it asap.

@lmazuel who would be the right person to evaluate and approve/reject this change?

Hi @major , there is several layers of answers to your question:

We still support Python 2.7, which blocks us in 3.0.0. We tried conditional dependencies depending of Python2/3, but the recording format changed which would force us to record tests twice in two versions, in parallel folder or files names, while doubling the number of files on the repo. So we decided to stay in 3.0.0 until we drop Python 2.7, and we even forked it for bug fixes that we fought got no chances to be accepted by now (see here).
Parallel to that, we are migrated to a new test framework that will rely on a home made recorder which will be shared by all SDKs repos (C#, Java, C++, etc.), allowing us to totally get rid of vcrpy completely. Mostly relying on a Docker container mock server that you start and act as a recorder proxy. We are transitioning all our SDKs to this new system, and this should be done in the next few months to the end of the year.

Long story short, this means we have no plan to update, since vcrpy is about to disapear anyway. You can install our forked version for now from the repo if necessary, before you install devtools (installing devtools will be consider the installed version version compatible and would forward).


Unomi supports Swagger

I'm having trouble with features.xml!
unomi.rest must have start=true

Hello, thank you for your contribution. I'll have to review it in more details, but I looked at it quickly and have a question.
I noticed you re-introduce the CXF logging. This was removed because of issues with JDK 11. Which JDK did you test this with ?
Regards,
Serge...

Hello, I was also working on OpenAPI support on my side.
Here are the changes I did:
UNOMI-___Swagger&_OpenAPI_integration.patch.txt
Maybe we could somehow merge these two approaches?

@sergehuber I would prefer to add the swagger feature in your patch, we could be have the both features. However I don't know if it make sense to have the both features, may be only OpenAPI is enough.

Hello, I was also working on OpenAPI support on my side.
Here are the changes I did:
UNOMI-___Swagger&_OpenAPI_integration.patch.txt
Maybe we could somehow merge these two approaches?

That would be great to merge at your end
swagger.txt

I've just create a new PR#171 that includes full Swagger/OpenAPI support so I'm closing this one.
https://github.com/apache/unomi/pull/171


Use both direct and indirect Cas clients in same application

I´ve got a spring-boot application for which I want some URLs to use the directCasClient with proxyTickets. However some parts of the application require interactive login via the indirectCasClient and the cas server`s login page.
Both ways work separately but I cannot get them work together.
Is there a Way?

Please use the pac4j mailing list for questions. Did you take a look at this demo: https://github.com/pac4j/spring-security-pac4j-boot-demo? It has both authentication mechanisms: direct and indirect clients...


Dynamic Json in API Responses

Hi, i have been testing this Plugin and found out that it returns JSON where a values type can change.
For Example: if you Read an Alias from the API you'll notice that when there is only one address in the Alias it will return a string and if there are multiple addresses it will return an array. This behaviour makes using the API hard as you will always have to expect that it will return string or an array. Some Parsers parse JSON rigidly, Meaning you have to define all values and types before parsing. These parsers will then complain and refuse to parse if there is a type mismatch between the predefined Struct and the actual JSON. Because of this Issue id suggest changing the API so that it always returns an array even if there is only one element. This change should not break backwards compatibility as older clients had to support arrays anyway.

Hey!
Thanks for the insight. This is an unfortunate side effect of pfSense using an XML based configuration. The XML parser pfSense uses will only parse values as string or array types. An array type is only returned when two or more identical XML tags exist under the same parent tag, otherwise it assumes it is a string. That is why the API will return a string when only one item exists.
For most endpoints, this problem can likely be remedied in the API framework by integrating a sort of type mapping to translate the types given by the XML parser to their expected type. I'll see if I can get something working, if there are no major complications I should be able to have a fix included in the next release.


Add markdown support (Lab#2)

I'd like to implement two new features to this repo:

File handling support for .md files
Convert Heading 2 markdown syntax to appropriate HTML tags

I plan to add .md support by working within the parseArguments.ts file and wherever it checks if a file ends in .txt, I will add in another condition to check if the file also ends in .md.
In order to implement Heading 2 markdown conversion, I plan to create another .ts within the parse-markdown folder and use regex to convert Heading 2 markdown syntax into <h2>...</h2> HTML tag.

Sounds great, go for it.


Set/get ethpm_dir as an environment variable

In pretty much every cli command, we have the optional argument for ethpm_dir which is a path to the target _ethpm_packages dir. This defaults to ./_ethpm_packages if no argument is provided. Personally, I'd prefer to set this argument as an environment variable rather than worry about being in the correct working directory or manually input the argument over and over. However, there might be some unintended consequences to this strategy that I'm not aware of?

ping @pipermerriam for any thoughts?

:+1: for environment variable based ways to set proper defaults like this.  Keep the explicit CLI flag and ensure that the CLI flag takes precedence over the environment variable.


The given content-type is unsupported.

Hello, I am returning a content-type application/x-protobuf but getting content-type is unsupported. Which content-type does Protoman expect? The Request correctly serializes the protobuffer from the managed collection.
Thanks

Hi Development Team,
I am also getting the same error. Even after passing content-type as "application/x-protobuf", it is giving the error "given content type is unsupported" message in response.
I have added a screenshot below for your perusal.
Request you to please provide a solution for this issue.

Thanks.

You may need to put "application/x-protobuf" in quotes.

This fixed it for me

Hi guys, have you checked your Expected Message configs? You should assign which type of protobuf message to be used when parsing your protobuf response.

Sorry fo the late reply. Been swamped at the day job. I hope to test this out this evening. Cheers

I am also getting the same error.

I am also getting the same error. Even after passing content-type as "application/x-protobuf", it is giving the error "given content type is unsupported" message in response.

I am also getting the same error. Even after passing content-type as "application/x-protobuf", it is giving the error "given content type is unsupported" message in response.

Hi Team,
This issue is resolved.
Actually, the solution is simple.
Just we have to load the .proto files in the collection by right-clicking on the API collection and we have to build it, that's it.
Now we can try hitting the endpoint. Do remember to add headers as below.
Accept - application/x-protobuf
content-type - application/x-protobuf
Please refer the Readme file here for detailed steps about this setup.
Note: You must have .proto files (for request and response) in order to hit the protobuf supported endpoint.
Hope this helps.
Thanks.

@Hitesh-Kirtane  thanks for helping out! Would it be okay to close this issue?

@pandawithcat - Sure, you may close this issue. All, please confirm.

Hi Team,
This issue is resolved.
Actually, the solution is simple.
Just we have to load the .proto files in the collection by right-clicking on the API collection and we have to build it, that's it.
Now we can try hitting the endpoint. Do remember to add headers as below.
Accept - application/x-protobuf
content-type - application/x-protobuf
Please refer the Readme file here for detailed steps about this setup.
Note: You must have .proto files (for request and response) in order to hit the protobuf supported endpoint.
Hope this helps.
Thanks.

Thanks @Hitesh-Kirtane  for your response but what if the response type is not protobuf? what if I want to return text/plain or application/json how can I configure Protoman to handle this?

Hi Team,
This issue is resolved.
Actually, the solution is simple.
Just we have to load the .proto files in the collection by right-clicking on the API collection and we have to build it, that's it.
Now we can try hitting the endpoint. Do remember to add headers as below.
Accept - application/x-protobuf
content-type - application/x-protobuf
Please refer the Readme file here for detailed steps about this setup.
Note: You must have .proto files (for request and response) in order to hit the protobuf supported endpoint.
Hope this helps.
Thanks.

Thanks @Hitesh-Kirtane for your response but what if the response type is not protobuf? what if I want to return text/plain or application/json how can I configure Protoman to handle this?

Hi @ahezzati,
I guess as of now, Protoman only supports request and response structures in protobuf format.
We might see support for content types such as text/plain and application/json in nearby future.
There are some open issues created for requesting support of application/json content type in Protoman (GH-48 and GH-56).
You may check these out for more information.
Thanks.


Introduce sqlite database to store state information for CAS

Relevant Issue (if applicable)
We are going to support runtime chunk deduplication, and this PR introduce sqlite database to store chunk state information for deduplication.
Types of changes
What types of changes does your PullRequest introduce? Put an x in all the boxes that apply:

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] Documentation Update (if none of the other choices apply)

Checklist
Go over all the following points, and put an x in all the boxes that apply.

[ ] I have updated the documentation accordingly.
[ ] I have added tests to cover my changes.

Simplified version of https://github.com/dragonflyoss/nydus/pull/1399, to support deduplication at runtime instead of build time.

A smoke test for code path is required.

Since this mod is basic module, which has no entry from user, smoke test is not required.

LGTM


Excess line in docker-compose

Hi, it is safe to remove links directive
https://github.com/buildkite/docker-puppeteer/blob/0c86af3725d085889c104ea04ce8e506a33c1ed9/example/docker-compose.integration-tests.yml#L11
https://docs.docker.com/compose/compose-file/compose-file-v2/#links
ps. Thank you for your work!

Thanks! Fixed in 7401646


Bump Dependencies #6075076279

Bumps dependencies for product-is. Link : https://github.com/wso2/product-is/actions/runs/6075076279

 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.jenkins-is-staging 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.


How do I use this app in organization github.

How do I use this app in organization github.
example for github.mycompany.com

Answered over in https://github.com/probot/probot/issues/500, but the short answer is that you'll need your own deployment of this app. See the docs to learn how ✨


Bluetooth devices: only show useful ones in Settings

At the moment, all paired Bluetooth devices (incl. classic and LE) are shown in the Settings (sensor dialog).
Show only those that are actually useful (i.e., Bluetooth LE heart rate sensors).

This filter does not work:
https://github.com/dennisguse/OpenTracks/blob/dd6e733d8c948cb23d03feb28d6aee4d7ab2f6d4/src/main/java/de/dennisguse/opentracks/util/BluetoothUtils.java#L51
And filtering by Device class is not possible as Polar OH1 and Polar H7 report as public static final int UNCATEGORIZED = 0x1F00;

This is actually requires the implemention of a custom ListPreference or DialogPreference that scans for devices providing the heart rate service.
And the presented list should be keep updated while the dialog is opened.
In addition, the previously selected device (even if not discovered at the moment) should be shown.

Implemented in https://github.com/dennisguse/OpenTracks/commit/e7a8c897a3fb9fbba36945a5a37dda43b12d4d15


Improve verification error handling

Originally raised by @jsiwrk in https://github.com/ehn-dcc-development/hcert-kotlin/issues/32#issuecomment-867072802

Although we removed the errorMessage from the VerificationResult, as such information should be logged, not returned.

I would tend to agree with that in the general sense, if we were talking about an application or a service. However, since this is a reusable library that will presumably be used to build the former, wouldn't it be more appropriate to leave that choice to the library user?
For example, let's consider these scenarios:

An application using this library wants to print a detailed error to the user indicating why the hcert is "expired". The CWT_EXPIRED error code can be returned for various reasons (hcert issued before signer cert, hcert issued in the future, hcert expired, hcert expiration exceeds signer cert expiration, expiration field not present, etc.), so the code itself is not enough to know the cause. Let's also assume this application is targeted to a type of user who is genuinelly interested about these details (maybe a second-line border control officer that needs to explain to a hcert holder why their document was rejected by the first-line control), and that he/she prefers to see this detail in a user-friendly way (rather than looking at some internal logs).
An application or service using this library wants to record a log with the full details why the validation has failed, and wants to record the log in its own way. Maybe it needs to send a JSON-formatted log to a SIEM system (e.g. Splunk).

If these are deemed valid use cases for this library, then it seems that including an errorMessage (or, generally speaking, detailed information about the error) in the VerificationResult would be the right thing to do. And the library client would be responsible for making a proper use of this field. What do you think?

The issue raised by @jsiwrk needs addressing, however error messages are probably the wrong way to go about this because:

Messages can change
Messages are comprehensible by humans, but hard to parse
Error messages my be incosistent without anyone really noticing it, as long as the stack traces are also interpreted (by a human) for additional context
i18n

It is tempting tempting to simply move error messages into a ResourceBundle and be done with it, since this would solve all of these issues.
Personally, I'm a bit hesitant on this, as I am not sure whether I'm overlooking something.
I therefore welcome any input on this discussion!

Initially I was thinking about returning a simple (and non-internationalized) error message, but as you say, it's true that this would limit the possible use cases of this feature (message recorded in application logs and interpreted by a human expert).
One option would be to introduce a secondary error code (similarly to the secondary status code of SAML). This (optional) secondary error code would refine the primary code when appropriate; e.g. to clarify the reason for CWT_EXPIRED.
Another option would be of course to augment the set of primary codes to render the secondary code unnecessary. (But this could not be appropriate if many additional codes were needed, or if a reduced/concise set of codes is required for interoperability/standardization reasons... I guess.)
A secondary code cannot convey as much information as an error message (e.g. the actual date that has been detected as expired), but this could not be necessary for the intended use case of this feature (deterministic processing by an application or non-expert human).
And there is also the option of returning both: a secondary error code for deterministic processing, and an internal error message for advanced diagnostics (that the application would typically log as is; no internationalization would be required). One could argue though that the internal logs of the library are sufficient for the latter purpose; but on the other hand, the application/service could prefer to handle the logging by itself.
To summarize: no idea of what's the best option either. ;-)

Thanks for following up!
I did not think about contextual information such as the exact expiration date causing the expiry.
I still maintain that some "fixed" set of error codes/messages/… is the way to go, as it would have the nice side effect of all potential errors being enumerable.
When combining this with contextual information, using sealed classes for errors come to mind, as it would allow for adding additional information as desired and still implement an error handler fully capable of dealing with all bit of information ever produced.

Proposed another simple alternative in PR #46, just to see how it looks. It's untyped and surely not as elegant as using sealed error classes, but maybe simpler is best in this case (?). Anyway, feel free to discard this PR without further explanation if you don't like it.

GH-46 merged, thanks! I'll leave this open for now, since there are still some error cases, which do not utilise this new feature.


docs(*): updates/changelog for v2.13.0 release

I also reversed the sorting on the changelogs index, since most-recent-first seems more user-friendly.
TODO:

[x] update verification SHA in src/installing-workflow/chart-provenance.md
[x] update verification SHA in src/roadmap/releases.md

Everything else looks good here, just the verification SHAs left.

Added the verification SHAs.

Other than typo, LGTM!


feat(catalog): Add istio-stack

See issue:

https://github.com/kharf/flux-k8s-stack/issues/101

is it finished=?

hm, think so, waiting for the resolution of the conversation about the grafana/prometheus links.

is it finished=?

hm, think so, waiting for the resolution of the conversation about the grafana/prometheus links.

For me its fine. People can override with kustomize patches


AADev I have working linting rules on the repo

Description:
It is useful to have working linting rules on the repo for stability and code quality. Fix the linting rules so the project is being linted correctly and no linitng rules are broken.
Tech Steps:
Change eslint files.
Fix linting errors.
Validation Steps:
Run eslint-test and see no erros


core dump

``python
from io import BytesIO
from torchvision import transforms as T
import requests
from PIL import Image
import numpy as np
normalize = T.Normalize(mean=[0.485, 0.456, 0.406],
std=[0.229, 0.224, 0.225])
def data_handle():
transforms = T.Compose([
T.Resize(224),
T.CenterCrop(224),
])
return transforms
def image_loader(url=None, image=None):
if url:
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36'}
try:
response = requests.get(url, headers=headers, timeout=5)
except:
response = None
image = Image.open(BytesIO(response.content)).convert('RGB')
elif image:
image = Image.open(BytesIO(image)).convert('RGB')
img1_tensor = data_handle()(image)
img1_tensor = np.array(img1_tensor,dtype='float32')
data = np.random.randint(0, 255, size=810240)
img = data.reshape(422, 640, 3)
print(img.dtype)
print(img1_tensor.dtype)
img1_tensor = T.ToTensor()(img1_tensor)  # 转换成tensor
# img1_tensor = normalize(img1_tensor)
img_tensor = T.ToTensor()(img)
print(img_tensor.dtype)
print(img1_tensor.dtype)
print('1')
#  normalize(img_tensor)
print('2')
normalize(img1_tensor)
# return img_tensor

执行到 normalize(img1_tensor) 或者 normalize(img_tensor)  coredump

Hi,
We don't have any C++ code in torchvision at the moment, so the coredump should come frmo a different library. Debugging with GPU or identifying precisely which line gives the core dump would be very helpful in debugging.
I'm closing this for now, but if you have a precise line where the dump happens (and it is inside torchvision) please feel free to re-open the issue.
Thanks!


Class 'Stripe\Stripe' not found

Upon selecting the payment method on checkout, the console shows a 500 error from /checkout/stripecheckoutcreatesession?... which, when visited shows a Class 'Stripe\Stripe' not found error on line 206
/packages/community_store_stripe_checkout/src/CommunityStore/Payment/Methods/CommunityStoreStripeCheckout/CommunityStoreStripeCheckoutPaymentMethod.php:206

Did you install a release copy of the package?
On Sun, 4 Oct 2020, 11:28 pm matttydubs<EMAIL_ADDRESS>wrote:

Upon selecting the payment method on checkout, the console shows a 500
error from /checkout/stripecheckoutcreatesession?... which, when visited
shows a Class 'Stripe\Stripe' not found error on line 206
/packages/community_store_stripe_checkout/src/CommunityStore/Payment/Methods/CommunityStoreStripeCheckout/CommunityStoreStripeCheckoutPaymentMethod.php:206
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/concrete5-community-store/community_store_stripe_checkout/issues/8,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAIHSMCTT3CUKF3GC2NFHITSJDZKDANCNFSM4SD7PVCA
.

Ah... No, I just downloaded the master from the root page. All better now, thanks!


Enable ARDAgent via prepare_iso.sh

Not sure if it's possible, but it would be great if ARD could be turned on similar to screen sharing when building the new DMG.
The command I run after OS X boot is:
/System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Resources/kickstart -activate -configure -access -off -restart -agent -privs -all -allowAccessFor -allUsers

Alternatively enabling just regular screen sharing would work too, but RDP is better.

I could see doing this. I'd like to know if this can be done easily in the initial install process, to minimize anything that has to run on the first boot. Since ARD has its own system of privileges, etc. it might be less trivial.
In my environment (where we deploy OS X client systems) we restrict ARD access to our maintenance (admin) user. It would probably make sense to do the same here, to give access to the user that's passed to the create script.

+1 to only enabling for the passed in user. I know you can create a pkg file using the Remote Desktop app, not sure how to get that installed with prepare_iso.sh though.

+1 for this, although I don't know if it needs to be handled when building the new install dmg. It's possible it could be taken care of at the configuration level, by setting the appropriate calls for launchd.

An initial attempt I made recently is up here, if anyone would like to test:
https://github.com/timsutton/osx-vm-templates/tree/enable-ard
It seems incomplete because the GUI doesn't seem to fully reflect the status. If it works across at least the most current OS versions then I'd be happy using this method - otherwise the alternative is to add an additional script that calls the kickstart script.

Worked like a charm here!

Thanks for confirming. This may be a work-in-progress if people who want it have issues, but it's now merged.


update vis-network

Codecov Report

Merging #2969 into dev will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##              dev    #2969   +/-   ##
=======================================
  Coverage   95.02%   95.02%
=======================================
  Files          74       74
  Lines       14088    14088
=======================================
  Hits        13387    13387
  Misses        701      701

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 7229d26...f7555bc. Read the comment docs.

@justinshaffer, I deployed this version in qiita-rc and it will be great if you could tests that everything seems fine (running the tutorials should suffice). Thank you!

@ElDeveloper, thank you for the review. Note that during @justinshaffer review in qiita-rc, he found that there is some kind of bug while using the new version and we are evaluating if we want to do try to have this PR for this release or next.
Now, answering your question:

sortMethod: "directed": completely changes behavior in the new version and is better to use the default setting.
node-size/levelSeparation: it's just to save space (shrink separation between nodes)

Makes a lot of sense!
On (Jan-13-20| 9:47), Antonio Gonzalez wrote:

@ElDeveloper, thank you for the review. Note that during @justinshaffer review in qiita-rc, he found that there is some kind of bug while using the new version and we are evaluating if we want to do try to have this PR for this release or next.
Now, answering your question:

sortMethod: "directed": completely changes behavior in the new version and is better to use the default setting.
node-size/levelSeparation: it's just to save space (shrink separation between nodes)

--
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub:
https://github.com/biocore/qiita/pull/2969#issuecomment-573785505


Apple Pay is not worknig..

I have the latest version and Apply pay is enabled but, its not working. Can I get any idea what could be the reason ? Google pay and CC payment works fine.

When you say it's not working, do mean:

the button isn't appearing
it doesn't do anything when you click it
or it fails to put through a transaction?

I do have it appearing on my test site, in Safari (where I do have Apple Pay configured on my mac)
But clicking it does nothing, and when I check the console it shows an expected message about the domain not being registered for Apple Pay. So that would be something to check.


Array of bots and handlers

Hello, I created array of bots.
I setup handlers like in example, so basically ChildBot.prototype.... But how can I know on which bot happened that action.
So if someone write to chat to one of my bots, I want only from that one bot to respond.
Is that possible?

Each bot has its own set of listeners and handlers so the not with a certain handler will be the only one to respond.
Each one also has the username in the logger so you will know which bot is logging what.

So if I go something like -- Bot[1].prototype._onFriend = function(steamID, relationship) {
}
It will create handler for specific bot?

If Bot is your array of bots yeah it should.
I've never used multiple bots like this so this is all untested but I think it should work.

Tried this -- Not an array, only bot object.
bot.prototype._onFriendMsg = function (steamID, message, type) { //overwrite default event handlers     if (type === Steam.EChatEntryType.ChatMsg) {         if (message != '!prices') {             this.logger.info(steamID + ' sent: ' + message);             Bot.steamFriends.sendMessage(steamID, "FUCK YOU"); //use your custom options         }     }     else {         console.log(type);     } }
Bot is created like this --
var bot = new ChildBot("thevanak", "06081998Petr", {     apikey: "993EA54B3BDD7F418C6F8EC610391FD9", //default apikey option for steam     sharedSecret: "uARU7nGY4Rgax1MhhWNwK2W5kic=", //shared secret, needed to automatically generate twoFactorCode     identitySecret: "5WKMqFgdELFaTRhhOoqwKvbWfnE=", //identity secret, needed to automatically confirm trade offers, must be used with confirmationInterval     confirmationInterval: 10000, //how often we should check for new trades to confirm in miliseconds, must be used with identitySecret     richPresenceID: 730, //game to use rich presence with, don't include for no rich presence }); bot.connect();
Of course that I created and connected bot first and after that in code I created handler.
Gives me this error --
`C:\Users\vanak\Node.js\steam_bot\bot.js:67
bot.prototype._onFriendMsg = function (steamID, message, type) { //overwrite default event handlers
^
TypeError: Cannot set property '_onFriendMsg' of undefined
at Object. (C:\Users\vanak\Node.js\steam_bot\bot.js:67:28)
at Module._compile (module.js:570:32)
at Object.Module._extensions..js (module.js:579:10)
at Module.load (module.js:487:32)
at tryModuleLoad (module.js:446:12)
at Function.Module._load (module.js:438:3)
at Module.runMain (module.js:604:10)
at run (bootstrap_node.js:394:7)
at startup (bootstrap_node.js:149:9)
at bootstrap_node.js:509:3`

You cannot call bot.prototype, if you want to create a listener for that
you need to do Bot.steamFriends.on('friendMsg', ...
On Mar 5, 2017 15:05, "thevanak"<EMAIL_ADDRESS>wrote:

Tried this -- Not an array, only bot object.
bot.prototype._onFriendMsg = function (steamID, message, type) {
//overwrite default event handlers if (type ===
Steam.EChatEntryType.ChatMsg) { if (message != '!prices') {
this.logger.info(steamID + ' sent: ' + message);
Bot.steamFriends.sendMessage(steamID, "FUCK YOU"); //use your custom
options } } else { console.log(type); } }
Bot is created like this --
var bot = new ChildBot("thevanak", "06081998Petr", { apikey: "
993EA54B3BDD7F418C6F8EC610391FD9", //default apikey option for steam
sharedSecret: "uARU7nGY4Rgax1MhhWNwK2W5kic=", //shared secret, needed to
automatically generate twoFactorCode identitySecret:
"5WKMqFgdELFaTRhhOoqwKvbWfnE=", //identity secret, needed to
automatically confirm trade offers, must be used with confirmationInterval
confirmationInterval: 10000, //how often we should check for new trades to
confirm in miliseconds, must be used with identitySecret richPresenceID:
730, //game to use rich presence with, don't include for no rich presence
}); bot.connect();
Of course that I created and connected bot first and after that in code I
created handler.
Gives me this error --
`C:\Users\vanak\Node.js\steam_bot\bot.js:67
bot.prototype._onFriendMsg = function (steamID, message, type) {
//overwrite default event handlers
^
TypeError: Cannot set property '_onFriendMsg' of undefined
at Object. (C:\Users\vanak\Node.js\steam_bot\bot.js:67:28)
at Module._compile (module.js:570:32)
at Object.Module._extensions..js (module.js:579:10)
at Module.load (module.js:487:32)
at tryModuleLoad (module.js:446:12)
at Function.Module._load (module.js:438:3)
at Module.runMain (module.js:604:10)
at run (bootstrap_node.js:394:7)
at startup (bootstrap_node.js:149:9)
at bootstrap_node.js:509:3`
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/dragonbanshee/node-steam-parentbot/issues/33#issuecomment-284262558,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AI-FCkGAleZLttUxmdefFZZVMYyMbyUyks5riyOGgaJpZM4MTeEw
.

You should have there donate button, because you answer in minutes and you really want to help^^.
Why the hell bot sends my message and this message - " Hi, thanks for messaging me! If you are getting this message, it means that my owner hasn't configured me properly. Annoy them with messages until they do!"
But really, make a donation button for you! :D

I don't help for donations, I help because I want to help :).
It sends the message because Childbot.prototype._onFriendMsg isn't being
overridden. If you want to make it not send that and have each bot send its
own message you could do something like this:
Childbot.prototype._onFriendMsg = function(steamID, message, type) { });

And just keep it blank. Like I said I've never done this before but I feel
like it should work.
On Mar 5, 2017 15:13, "thevanak"<EMAIL_ADDRESS>wrote:

You should have there donate button, because you answer in minutes and you
really want to help^^.
Why the hell bot sends my message and this message - " Hi, thanks for
messaging me! If you are getting this message, it means that my owner
hasn't configured me properly. Annoy them with messages until they do!"
But really, make a donation button for you! :D
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/dragonbanshee/node-steam-parentbot/issues/33#issuecomment-284263211,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AI-FCgks3gFiE4GHIgywkFR32W2frZ3Jks5riyWQgaJpZM4MTeEw
.

I don't help for donations, I help because I want to help :).
It sends the message because Childbot.prototype._onFriendMsg isn't being
overridden. If you want to make it not send that and have each bot send its
own message you could do something like this:
Childbot.prototype._onFriendMsg = function(steamID, message, type) { });

And just keep it blank. Like I said I've never done this before but I feel
like it should work.

Thank you so much. And last one thing. How can I get cookies and sessionID from login?

Cookies are stored in their respective modules. Session ID is Bot.steamClient.sessionID.

Closing due to inactivity.


Proposal: Allow code self-signed certificates with user approve

Description of the new feature/enhancement
Right now there is no way to install UWP or packaged side-loaded application without any certificate. However It is possible to distribute application with self-signed certificate, which should be manually installed by user (MSIX/APPX doesn't support it unfortunately).
WinGet could solve that problem with providing ability to install certificate (or allow unsigned packages at all) with additional user approve.
Cases when developer distribute app with self-signed certificate:

It is unofficial fork of another application, which couldn't be submitted to the store.
Test version for end user testing.
Install on devices without Store installed (LTSB/LTSC).
Indie developers that can't/don't want to distribute application through the store and can't/don't want to buy expensive certificates.

Proposed technical implementation details (optional)
Add SelfSignedCertificate property per Installers' element in manifest.
When user install package with self-signed certificate, winget will ask user confirmation, that he trust specific publisher, and certificate can be installed as trusted by winget.
Other notes

It could be disabled by default and require additional setting up in system or winget.
This feature is for CLI. Official package source (winget-pkgs) could be strict. Unofficial sources should be allowed to distribute packages with self-signed certificates.

Certificates are a problematic issue since some developers have created vulnerabilities with trusted root certificates in the past, e.g. Lenovo Superfish and Sennheiser HeadSetup.
I believe you're strictly speaking about code signing certificates instead of web server certificates though. Is that assumption correct?

@megamorf yes, I am speaking about code signing certificates

This is related to  #498 . If we want to run our own internal repository then we need the ability to trust apps from the internal repository, self signed or not signed at all. There should be some clear warnings when adding a trusted repository.

Agreed. Certificates are great for the end user ensuring they're installing what they want to install, however, there is a huge list of softwares which cannot be added to the repository now because the developers or author simply don't care about its inclusion into the repository. For the average user to submit a software to the repository, they would need to purchase a code signing key for between $60-500/yr just to add software to the community repository.
Not really an amazing option. Microsoft could launch a trusted user program where developers can apply, authenticate, and identify, and then Microsoft could endorse their self signed keys, perhaps? A terribly difficult setup, but :shrug:.

Agreed. Certificates are great for the end user ensuring they're installing what they want to install, however, there is a huge list of softwares which cannot be added to the repository now because the developers or author simply don't care about its inclusion into the repository. For the average user to submit a software to the repository, they would need to purchase a code signing key for between $60-500/yr just to add software to the community repository.
Not really an amazing option. Microsoft could launch a trusted user program where developers can apply, authenticate, and identify, and then Microsoft could endorse their self signed keys, perhaps? A terribly difficult setup, but :shrug:.

Please do not do this. While it may be the case that this helps a few, it opens a huge security hole that threat actors WILL employ. It runs a coach and horses around corporate security policies- with no apparent way to block it. And frankly if any publisher cannot afford a public signing key, yet expects one to load their stuff, just say no. If this is to be implemented, I would simply ban,  and advise my clients to ban, the use of winger totally.  Imho this is a bad idea.

Please do not do this. While it may be the case that this helps a few, it opens a huge security hole that threat actors WILL employ. It runs a coach and horses around corporate security policies- with no apparent way to block it. And frankly if any publisher cannot afford a public signing key, yet expects one to load their stuff, just say no. If this is to be implemented, I would simply ban,  and advise my clients to ban, the use of winger totally.  Imho this is a bad idea.

Then even after 34 years in computing, Microsoft has yet again developed another completely useless technology. A product like this cannot and will not survive without community support. If someone wants to take the time to add software they care about to a repository for the benefit of all, it should absolutely be encouraged when it can be done in a secure way. Code signing keys simply aren't the way to go. Neither is relying on publishers to also publish to winget separately than their other delivery channels. Especially considering that I've been in software for more than 20 years and can tell you from experience that nobody gives a crap about proprietary Microsoft MSI/MSIX outside of an enterprise environment.
IMO this entire deployment is nothing more than a way for Microsoft to push the Microsoft store in a new way to attempt to capitalize on it and to safe guard losing users to WSL/Linux in general.
You can theorize about which attack vectors can be used against users, but the fact remains that the AUR, and other repositories have been used successfully for decades due to the lack of Microsoft sponsored software. There are even third party CLI application managers and installers for Windows such as Chocolatey and Scoop. Which are entirely successful and reasonably secure which also accept user submissions. To say it can't be done securely is frankly bull-crap. IMHO it is far far far more secure to check an applications hash than to rely on outdate and expensive PKIs. Many publishers already release hash information with their releases and would require only that the end user ensure the hashes match if they doubt the origin of an install. Something users already do.

Then even after 34 years in computing, Microsoft has yet again developed another completely useless technology. A product like this cannot and will not survive without community support. If someone wants to take the time to add software they care about to a repository for the benefit of all, it should absolutely be encouraged when it can be done in a secure way. Code signing keys simply aren't the way to go. Neither is relying on publishers to also publish to winget separately than their other delivery channels. Especially considering that I've been in software for more than 20 years and can tell you from experience that nobody gives a crap about proprietary Microsoft MSI/MSIX outside of an enterprise environment.
IMO this entire deployment is nothing more than a way for Microsoft to push the Microsoft store in a new way to attempt to capitalize on it and to safe guard losing users to WSL/Linux in general.
You can theorize about which attack vectors can be used against users, but the fact remains that the AUR, and other repositories have been used successfully for decades due to the lack of Microsoft sponsored software. There are even third party CLI application managers and installers for Windows such as Chocolatey and Scoop. Which are entirely successful and reasonably secure which also accept user submissions. To say it can't be done securely is frankly bull-crap. IMHO it is far far far more secure to check an applications hash than to rely on outdate and expensive PKIs. Many publishers already release hash information with their releases and would require only that the end user ensure the hashes match if they doubt the origin of an install. Something users already do.

I'm beyond frustrated with this project.
I was talking on another thread about EXE installers and auto-covnerting packers.
Somebody mentioned msix and I only just tried now it out properly, it works, its a little clunky but it works.
Now I realize the glaring flaws with msix.
Of course, there is a glaring flaw, its a Microsoft product.
The first thing is the signign issue. Good fine, make sure stuff is signed ot make it secure, so how do I sign my
test package.
Ah yes, I need to get the massive huge, proprietary Windows 10 SDK just to get this 1 SignTool command listed here.
I haven't yet done this, clearly I'm being lazy, but I have other stuff I need to sort out for personal reasons, on top of all this extra cruft just to try this one tiny thing.
And it's just like, I'm only creating this package, for me, for me to test, as a 1 time off,
and I need to sign it.. Because?
Not even a really long straight of telling telling me this is a really bad idea but I still have the option?
And of course this was just a test if I could get a quick and dirty yaml that doesn't seem to work and checking if it was the
msix package or not,
which was really to test how well winget could handle local package installation.
How many steps do we want to stump / allow for contribution? Is fast iteration unheard of?
Is the concept of freedom of a software to allow for flexabiltiy non-existent in Microsoft Land?
And of course, on top of all of this what I'm reading here is that not even signed certifacates is good enough for
some formats, specificaly MSIX, the one I personally care about.
How are you supposed to test something if you have to go through a huge number of steps to get through?
In it's current state at best winget matches the very hacky implimentation of Chocolatey, at worst it falls behind and may
even be a hinderance, where people struggle to get any kind of usage out of it and waste trying to make it work.
If you're that worried about security, how about you introduce the concept of local packages.
Why my 2MB text editor needs fully Administrator level access to be installed I don't know, its something that always grinds my gears about almost all package managers.

The only secure machine is the one that's unplugged and thrown in a fire. Don't compromise on usability because of security.

Installers needing administrator access isnt the fault of the package manager, more the package itself. There is no reason most installers request admin, other than the fact that they default to installing to the whole box and have no option for user-only.
just my two cents

There are often good reasons why an installer needs elevated permissions, so this comment might be a little unfair. It might be installing code into protected folders or modifying protected parts of the registry. Both would be just fine if the installer runs elevated but not otherwise. And then there is inertia (our installers have always worked this way).
I think winget has to cater for the existing landscape - with loads of different approaches the team kind of has to follow. Maybe, one day MSIX becomes the next defacto standard packaging format with awesome benefits. But until the rapture, winget needs to handle things like certs and elevation.
I suppose this boils down to the difference between a very cool power toy for developers to get some stuff onto their machine vs an Enterprise managed cross-platform package management solution.  Self-signed certs are great for development and developers. It enables them to test things without needing a public cert - I do this all the time. But if the developer then wishes to publish the solution to a public repository, IMHO,. the cost of the cert is all part of the cost of doing business.
With all that said, this proposal is about a year old. There have been numerous arguments for/against. I think we are in danger of just repeating ourselves. Can the team take a view on this: either by saying that yes, this is something the team wants to do (and assigns it to a milestone), or by formally saying no.

Ok yes, the comment about elevated privillages was a little unfair, its a little more complex than that.
It's just funny to talk about security when other things could be done, like suggesting a local install for self-contained
software.
I think, a package manager comes with the stigma that it should be accessible so people can share their software easilly,
or at the very least facilitating unofficial packges and repositories if people want to ignore warnings...
as oppose to, having a command like Microsoft Store, if they wanted a command line Microsoft store then why didn't they say that?
It seems like a lot of unnececary friction that is likely to reduce the usefulness of the software,
to the point where its just not used in the mainstream, ever.

to the point where its just not used in the mainstream, ever.

This is possibly one of the most useful tools that Microsoft has designed in the past 10 years other than the new updated Terminal and I don't know of anyone at all that uses it, or even so much as speaks of it. It's not social software. No-one is going to use it.
If I have to go to the internet to download application installers for my favorite software anyways, then why use this tool at all? You're essentially installing an application that manages some of your applications.... That's not a good use case.
As it stands, winget has access to 85 application installers... Something like PatchMyPC has well over 300.
It's just not competitive by any standard whatsoever.

@Mallchad installing with a local manifest is a supported scenario: winget install -m <pathToManifest>.
Private repositories are also supported via REST API. We have provided a reference implementation.

@zQueal how are you defining "application installer"? There are over 1,900 packages (unique "PackageIdentifier") in the community repository today.
I'm not sure a package manager is really targeted as being a "social tool". The initial set of use cases were primarily related to improving developer productivity. The "core" functionality for install, upgrade, export, import, and uninstall have been implemented. The goal is for these to work with any package on Windows. Clearly we have more work to do.
Most of the current work is around improving how manifests map to Apps in "Add / Remove Programs (ARP)". The initial work to support dependencies is in progress. We've also heard from several IT Professionals so the work for native PowerShell has moved up in priority as well.

@Mallchad installing with a local manifest is a supported scenario: winget install -m <pathToManifest>.
Sorry, doesn't this just allow installing a package from a local source?
I was being a bit flippant in my suggestion about non-admin installs...

I'll look into the private repositories when I get a chance, I'd be interesting to how it behaves with package signing.

There are over 1,900 packages (unique "PackageIdentifier") in the community repository today.

Looks as if each version number is a unique package indenter, so I'm not sure if this is meant to be intentionally misrepresentative or not, but it certainly is misrepresentative.

winget list | wc -l
85

Winget seems to offer 85 unique softwares to install from what I can tell.

https://github.com/microsoft/winget-pkgs/tree/master/manifests
winget list displays what you have installed on your system.
winget search with no arguments will display all packages.
If you're including versions of manifests there are more than 6,800.

I have now been caught out by this issue! Our org certificate (Kiwix) expired yesterday, and suddenly all my UWP packages are now uninstallable from winget, even those that were submitted prior to the expiry. This seems very problematic... The packages that we release via the Microsoft Store are still working because the Store provides its own code signing, but since UWP packages in winget need to be sideloadable, we signed these with the now expired org certificate. Is there another solution that would prevent this from happening?
While Kiwix is sorting out a new certificate, I expect that the new one will not fix the previous packages uploaded to winget, and I'll have to resubmit (I think) each of the most current packages (three apps). I don't know if there is anything I can do about the previous packages. I can't re-build them because the code they were built from is now obsolete, and I'm not sure it's possible to "re-sign" previously signed packages without rebuilding. This makes the concept of winget being a proper historical archive a bit problematic...
@denelon do you have any advice?

@Jaifroid did you sign with timestamp? Any program signed with timestamp will not fail when the certificate expires because the OS can validate that the cert was valid at the time of signature. If winget is expiring timestamped signatures then that would be a major bug affecting all software,
https://comodosslstore.com/resources/how-to-avoid-code-signing-certificate-expired-issues/

@A9G-Data-Droid I have to confess I merely imported our org certificate into Visual Studio, and it took care of the rest. Clearly I needed to have looked into the options more carefully... But I think the broader issue (i.e. this issue) still stands. Thanks for the tip about timestamp. I'd have thought it ought to be the default in IDEs... But nothing is ever that simple.

@Jaifroid, yeah it can't be defaulted because it needs a timestamp server to sign with you. Microsoft could provide one by default and tell you that you need to turn it on. There might be anti-trust reasons why they can't. I would use the timestamp server of the company who sold the certificate.

I've been doing some research, and signing AppxBundle is not easy. Guess what, SignTool doesn't support doing so! Fiendishly complicated blog post about it here: https://blog.jayway.com/2017/01/16/time-stamping-appx-packages/
Which kind of underlines the need for WinGet to provide some kind of repo-side signing just like the Microsoft Store does.

@Jaifroid I'll look into some options for what we can detect in terms of checking to see if a .appxbundle is signed with timestamp. If it's something we can detect in validation, at least we could produce a warning in the validation pipeline output.

Hi @Jaifroid
It should just be an extra parameter(/t for timestamp server) to Signtool to get appxbundle signed with parameter
signtool sign /a /v /fd sha256 /f <Path to signing cert> /t <Timestamp Server Url> test.appxbundle
Thanks

@yao-msft The thing is, I compile my appxbundles with Visual Studio, and because the app is html/js this has to be VS2017. VS2107, AFAIK, has no way to add the timestamp. However, I will look in to adding it as an extra build step by re-signing the bundles with signtool.

@Jaifroid I'll look into some options for what we can detect in terms of checking to see if a .appxbundle is signed with timestamp. If it's something we can detect in validation, at least we could produce a warning in the validation pipeline output.

@denelon this would be helpful, thanks.

There are even third party CLI application managers and installers for Windows such as Chocolatey and Scoop. Which are entirely successful and reasonably secure which also accept user submissions.  I have seen this online so many times and people always miss the point and think one has weed out the other. Fundamentally, they both are very different and solve two different problems but need each other because they both can't do each others job.
Firstly, Scoop is meant for portable apps and to use them from the shell directly after installing it, like a unix app. There are lot of Windows apps(and many of them command line) that are distributed as portable exes. scoop will shim them to its shims directory automatically. It can also [install fonts](https://github.com/matthewjberger/scoop-nerd-fonts). But scoop is very bad at managing installers and apps that register themselves to Windows appearing in the Programs and Features list. Or apps that update themselves automatically. For example VCRedist can be installed from scoop, but uninstalling it from Programs and Features will not uninstall it from scoop. scoop can't manage apps that automatically update themselves or register themselves to Windows and can be managed from Programs and Features.
Winget is meant for apps that come with a installer and can be managed by "Programs and Features". It even uses the ProductCode to uninstall an app, the string that  identifies the app in the registry and is used by "Programs and Features" to uninstall your app(or you can use msiexec with the ProductCode to uninstall the app from Command Line. Infact winget can uninstall anything that has a ProductCode even if it is not in the winget-pkgs and winget list will list every app on "Programs and Features". The app will not install in some "winget directory" but in the default directory of the installer(or a custom one that you specify from the CLI). And it does not matter if the app self-updates, the version registered on "Programs and Features" is the version that winget thinks the app is registered on. I wrote this mess of a manifest for a UWP app when I thought scoop could be the ultimate package manager for Windows but then winget did it with one line - InstallerType: msix(and you can even install from the store. You are no longer telling the package manager to pass command line arguments on the installer like /verylient(or use a PowerShell script), you are just telling it that the installer is an inno package. And thats what winget does, it manages apps bundled with inno/nullsoft/msi/msix etc. packages and manages them, while the Windows Store is a repository for msix packages.
I use both scoop and winget, and never understood discussions like this around how one is better than the other(even Ash258 understands the differences, and you will know him if you used scoop and followed the scoop-project). Everything that can be fully managed by scoop, I install them from scoop. But anything that is registered to "Programs and Features", should be installed from Winget. This why I am puzzled by why scoop-nonportable is an official bucket. In my opinion, scoop should only contain portable apps that it can manage in its official buckets.

IMO this entire deployment is nothing more than a way for Microsoft to push the Microsoft store in a new way to attempt to capitalize on it and to safe guard losing users to WSL/Linux in general.

Thats such a terrible take on the subject. winget is an essential tool for windows that finally did something that many of us were wishing to see on a package manager for windows. If they actually turn Windows Store into a GUI for winget I am all for it, don't see the issue with that(or like this app, even better if they add Scoop to it since winget will never come close to it for managing portable apps).
And don't you dare mention Chocolatey as the better tool. Its full of outdated packages that rely on the maintainers whims to get updated(which is the first person who uploaded it to Chocolatey), confusing manifest-spec based on nuget and certain features behind a paywall. People love mentioning Keivan Beigi whose AppGet inspired winget(heck AppGet itself was full of outdated manifests and could neither uninstall nor update apps, it was nice concept that winget turned into a functioning product), but never seen anyone mention his rants about Chocolatey's issues. Chocolatey is inferior to scoop for portable apps and inferior to Windows when installing apps with an installer.

Fundamentally, they both are very different and solve two different problems

lol

Firstly, Scoop is meant for portable apps

lol

scoop can't manage apps that automatically update themselves

lol

I use both scoop and winget, and never understood https://github.com/ScoopInstaller/Scoop/issues/3992 around how one is better than the other(even Ash258 understands the differences, and you will know him if you used scoop and followed the scoop-project). Everything that can be fully managed by scoop, I install them from scoop. But anything that is registered to "Programs and Features", should be installed from Winget.

lol

Thats such a terrible take on the subject. winget is an essential tool for windows

lol amazing how we've been without winget for 35 years and have gotten along just fine considering winget is essential.

And don't you dare mention Chocolatey as the better tool.

lmao
The sheer ridiculousness of your reply is pretty stunning. Winget is a windows package manager built by Microsoft to be apart of the operating system. Scoop is a CLI application installer that's just another application package on your system.
The lack of perspective here is amazing. Especially considering all of your arguments which are 'pro' winget pretty much empirically support my major gripe with it to begin with;

winget is almost a complete clone of Scoop with the inclusion of a bunch of dumb Microsoft tech.

Love how you are not able to provide any rebuttal other than spamming lol. The only similarity between scoop and winget is that they install apps from the command line, like any other package manager. This is the first time I am hearing such a take, particularly from someone who probably never used scoop. I also love how you mention the community repo of aur and then praise Chocolatey which is  completely opposite and it's almost impossible to contribute to a package abandoned by it's maintainer. I guess someone told you how Chocolatey is some amazing package manager for Windows but forgot to tell you about the mess known as its nuspec manifests. After I switched to scoop I never looked back at Chocolatey. And for the record I hated Chocolatey before winget was a thing.

lol amazing how we've been without winget for 35 years and have gotten along just fine considering winget is essential.

And for 35 years we have been downloading binaries from the web after googling them instead being able to comfortably use the command line.

The sheer ridiculousness of your reply is pretty stunning. Winget is a windows package manager built by Microsoft to be apart of the operating system. Scoop is a CLI application installer that's just another application package on your system.

Whether it is made by Microsoft has nothing to do with how I judge a product(otherwise I would not be using Windows in the first place). winget is the best tool to manage non-portable apps.

The lack of perspective here is amazing. Especially considering all of your arguments which are 'pro' winget pretty much empirically support my major gripe with it to begin with;

I mentioned good points of both scoop and winget. Winget is good for apps where you have to use an installer, scoop is good for portable apps, I even linked to a very popular scoop manitainer who said the exact same thing. I have added packages to scoop(and even some to winget) and maintain my own scoop bucket, and I use both scoop and winget.

I see benefits to all the package managers I've looked at and worked with. Each of them was designed to solve the problem of managing software from a slightly different perspective and with slightly different use cases. Each of them has slightly different goals and approaches. There may not be a "one best option" in this space. I've often suggested to users that they should use the tool that solves their particular needs.
We're just trying to provide a native solution that supports meeting software developers where they are. We have certain unique constraints with respect to providing a solution that is native to Windows. Those constraints add a bit of complexity that we have to deal with and we're learning about the various edge cases and classes of problems unique to our constraints. There are many different package managers. Everyone is welcome to have an opinion, and to use the tool that meets their needs. Let's just try to keep the discussion civil, and if this needs further discussion, please create a new discussion so we're respecting the (e-mail inboxes) users who are looking at this issue related to code with self-signed certificates.


Selecting text in Features  unexpands the expandable texts.

Expected behaviour:
I click on concurrency.  The text expands. I select the code snippet that  I want to copy (to try it out). I paste the code snippet in my editor.
Current behaviour:
I click on concurrency. The text expands. I select the code snippet. I let the mouse button go and I want to hit  CTRL+C.  But before I can do that the text unexpands and gets deselected, making it impossible to copy the code snippet.
I'll see if I can make a quick fix for this tonight.

I hope everyone agrees this behaviour is unwanted. But how do we want the behaviour to be?
I think making the whole thing clickable to expand it is good for discover-ability so lets keep that in. But lets remove the "make the whole thing clickable to collapse" part.
I was thinking of making a simple 'click to collapse'  link which has to be clicked to collapse it again. Or make a  clickable bar at the bottom of a collapsible item.

I don't consider this a significant problem. It has a workaround: On both Firefox and Chrome I can just hold down the mouse to copy/paste.
I'll happily accept a patch that disables expanding when selection is made, e.g. like this. In contrast, "click to collapse" removes the symmetry of clicking and clicking again to collapse.


Duplicate models and tests to make ephemeral models and mocks covered by integration tests

… by integration tests.

The idea was postponed to a future overall model revisit and new design


VLAZ: Watch kinhmatca.com

VLAZ requests the watch of the watch_keyword kinhmatca\.com. See the MS search here and the Stack Exchange search in text, in URLs, and in code.

kinhmatca\.com has been seen in 2 true positives, 0 false positives, and 0 NAAs.

Approved by cigien in Charcoal HQ


Configure redirects for a range of ports

Is it possible to configure redirects (stream) for a range of ports to a host ?
For example:

example.com:3000 -> <IP_ADDRESS>:3000
example.com:3001 -> <IP_ADDRESS>:3001
... to
example.com:4999 -> <IP_ADDRESS>:4999

I too would like to figure this out!

I'd like to see this being possible as well.
I tested a simple configuration that supports this on a standalone Nginx instance:
stream {
        server {
                listen 21000-21999;
                proxy_pass <IP_ADDRESS>:$server_port;
        }
}

Which works as expected. I'm not sure how to best show this in the GUI though. AFAICS we can do one of two things, either do I like I did above and use the incoming port in the proxy_pass, or redirect multiple ports to one set port, not that I can think of a reason to do that.
The database schema would also have to be updated to allow for multiple ports.
In any case we'd need a more recent version of OpenResty since port ranges were introduced in 1.15.10, and we're on 1.15.8 AFAIK.

Port ranges (1.15.10) are specified with the first and last port separated by a hyphen:
listen <IP_ADDRESS>:12345-12399;
listen 12345-12399;


CHW/ANC - Replace the current home icon in the ANC

Name of feature to enhance
Replace the current icon for the Register in home screen for bottom navigation
Describe the enhancement
Screenshot
Mock

Actual

Link to the desired icon  - https://drive.google.com/file/d/1SGLYjADFLEX2oY2d_Yflv99mEE2_9vLP/view?usp=sharing

@f-odhiambo  I used the same svg resource. Same effect.

@f-odhiambo to get a new icons and have it updated

Closing for now


Preloaded images do not show up in view cells until after a considerable time

When preloading images, the images do not get preloaded/shown in the view cells until after a considerable time. I was wondering why there is this delay and if anyone else is getting it?

Sorry, it was related to something else. Closing this issue.

Hi, how do you solve the problem? I come up to the same problem.


fixed "keep_best" which didn't work alone anymore

#2073 broke "keep_best_iv" and "keep_best_cp" when those were used as the only rules (without any "release_below_" or "_release" rules).
This pull request fixes the situation so that "keep_best_iv" and "keep_best_cp" can still be used as standalone rules just like before.
tl;dr:
Those examples (which are still currently published on the example configs and wiki) could not work anymore because of #2073 :
      "// Example of keeping 3 stronger (based on CP) Pidgey:": {},
      "// Pidgey": {"keep_best_cp": 3},
      "// Example of keeping 2 stronger (based on IV) Zubat:": {},
      "// Zubat": {"keep_best_iv": 2},
      "// Also, it is working with any": {},
      "// any": {"keep_best_iv": 3},
      "// Example of keeping the 2 strongest (based on CP) and 3 best (based on IV) Zubat:": {},
      "// Zubat": {"keep_best_cp": 2, "keep_best_iv": 3}

This pull request makes them work again.

I confirm the bug, and that this PR fixes the issue.
I use the following config:
{
  "any": {"keep_best_cp": 2, "keep_best_iv": 2},
  "Eevee": {"keep_best_cp": 3, "keep_best_iv": 3},
}

Donald Trump says this "Makes the release config great again!"

I confirm this works for me as well, just having any: keep_best_iv: 3

It doesn't work for me too. I've set
"any": {"release_below_cp": 0, "release_below_iv": 0.5, "logic": "or"},
and bot doesn't release any catched pokemons. Even if they've CP 0.2. It caught 14 pokemons, and doesn't release anyone.


Planet speeds are not matching

Planet speeds calculated from vedastro api - (https://[vedastroapi.azurewebsites.net/api/Calculate/PlanetSpeed/PlanetName/All/Location/Delhi,India/Time/01:30/14/02/2024/+05:30/Ayanamsa/KrishnamurtiKP])

planet speeds - checked from a website (https://horoscopes.astro-seek.com/planet-speed-ephemeris-astrology-retrograde-tables-online)

@AbhayVivek please verify if the websites planet longitude data out is correct or also completely way off from what is coming out of the API.
I visited the website and I notice it has a longitude option please give that a try and post the results here so again verify this will be the first step investigating this issue


set mid-roll timeoffset at 50% of the total video duration

Hello,
I'm trying to pass a vmap to adsResponse and set the mid-roll timeOffset at 50% of the total video duration.
my code is
let midrollTime;

let player = videojs('my_video',{}, function() {
    this.on('loadedmetadata', () => {
        midrollTime = adjustTime((this.duration() / 2).toFixed(0));
    });
});
const vastPre = '';//vast pre-roll link
const vastMid = '';//vast mid-roll link
const vastPost = '';//vast post-roll link
let vmap = `<vmap:VMAP xmlns:vmap="http://www.iab.net/videosuite/vmap" version="1.0">
	<vmap:AdBreak timeOffset="start" breakType="linear" breakId="preroll">
		<vmap:AdSource id="preroll-ad-1" allowMultipleAds="false" followRedirects="true">
			<vmap:AdTagURI templateType="vast3">
				<![CDATA[ ${vastPre} ]]>
			</vmap:AdTagURI>
		</vmap:AdSource>
	</vmap:AdBreak>
	<vmap:AdBreak timeOffset="${midrollTime}" breakType="linear" breakId="midroll-1">
		<vmap:AdSource id="midroll-1-ad-1" allowMultipleAds="false" followRedirects="true">
			<vmap:AdTagURI templateType="vast3">
				<![CDATA[ ${vastMid} ]]>
			</vmap:AdTagURI>
		</vmap:AdSource>
	</vmap:AdBreak>
	<vmap:AdBreak timeOffset="end" breakType="linear" breakId="postroll">
		<vmap:AdSource id="postroll-ad-1" allowMultipleAds="false" followRedirects="true">
			<vmap:AdTagURI templateType="vast3">
				<![CDATA[ ${vastPost} ]]>
			</vmap:AdTagURI>
		</vmap:AdSource>
	</vmap:AdBreak>
</vmap:VMAP>`;

let imaOptions = {
    adsResponse: vmap,
    debug: true
};

player.ima(imaOptions);

the real problem is that the metadata are loaded after the vmap is being set as adsResponse.

Hello @MMidali ,
The IMA SDK does not support VMAP percentage time offsets, which could have been a simple solution to this issue.
Because of the async nature of this.on('loadedmetadata', () => { ..., is it possible to add the call to player.ima(imaOptions) to the end of the function so it is only called after you have the metadata?
If not, I would recommend using a specific time for your midrolls instead of directly halfway through the content.
Thank you,
Jackson
IMA SDK DevRel

Hello @MMidali ,
The IMA SDK does not support VMAP percentage time offsets, which could have been a simple solution to this issue.
Because of the async nature of this.on('loadedmetadata', () => { ..., is it possible to add the call to player.ima(imaOptions) to the end of the function so it is only called after you have the metadata?
If not, I would recommend using a specific time for your midrolls instead of directly halfway through the content.
Thank you,
Jackson
IMA SDK DevRel

I'll try and let you know.
I hope to find a useful solution for other people with the same problem.

I'll try and let you know.
I hope to find a useful solution for other people with the same problem.


Maximum number of Integrations for this API has been reached.

After a fair few deployments (50 or so?) I get the following:
Serverless: Recoverable error occurred (Maximum number of Integrations for this API has been reached.  Please contact AWS if you need additional Integrations.), sleeping for 5 seconds. Try 1 of 4

I've tried removing all past versions of my lamba functions, but feel like there must be some underlying 'links' still floating around in the API Gateway. Is there something i'm missing? I see this comment which seems to imply that this issue shouldn't exist

@jlaitio when I run your script.. it crashes on a particular id.. like so.
An error occurred (ConflictException) when calling the DeleteIntegration operation: Cannot delete Integration because it is referenced by the following Routes with Ids: [xysuk6e]
And it crashes on that every time I restart the command :P Is there any way to tell it not to crash on errors or skip? :)

Thanks all! @dbramwell fixed this!