AuthorizationPermissionMismatch when using AzureCliCredential

Package Name:  azure-identity / azure-storage-blob
Package Version: azure-identity==1.10.0 / azure-storage-blob==12.11.0
Operating System: Azure Pipeline (image: ubuntu-latest)
Python Version: 3.9.12

Describe the bug
When we run the following python script in Azure Devops Pipeline (using a service connection), it fails halfway through:
default_credential = AzureCliCredential()
blob_service_client = BlobServiceClient(account_url="https://MY_STORAGE_ACCOUNT.blob.core.windows.net", credential=default_credential)
container_client = blob_service_client.get_container_client("MY_CONTAINER")
print(container_client.exists())  # This returns True
for blob in container_client.list_blobs():  # This fails
    print(blob)

Even though  this command az storage blob list -c MY_CONTAINER --account-name MY_STORAGE_ACCOUNT in the same configuration succeeds.
Here is the traceback:
True
Traceback (most recent call last):
  File "/home/vsts/work/1/s/./scripts/generate_sas_token.py", line 73, in <module>
    run()
  File "/home/vsts/work/1/s/./scripts/generate_sas_token.py", line 43, in run
    for blob in container_client.list_blobs():
  File "/opt/hostedtoolcache/Python/3.9.12/x64/lib/python3.9/site-packages/azure/core/paging.py", line 129, in __next__
    return next(self._page_iterator)
  File "/opt/hostedtoolcache/Python/3.9.12/x64/lib/python3.9/site-packages/azure/core/paging.py", line 76, in __next__
    self._response = self._get_next(self.continuation_token)
  File "/opt/hostedtoolcache/Python/3.9.12/x64/lib/python3.9/site-packages/azure/storage/blob/_list_blobs_helper.py", line 83, in _get_next_cb
    process_storage_error(error)
  File "/opt/hostedtoolcache/Python/3.9.12/x64/lib/python3.9/site-packages/azure/storage/blob/_shared/response_handlers.py", line 181, in process_storage_error
    exec("raise error from None")   # pylint: disable=exec-used # nosec
  File "<string>", line 1, in <module>
azure.core.exceptions.HttpResponseError: This request is not authorized to perform this operation using this permission.
RequestId:0ea3b6c8-101e-0006-4c24-5e7fc4000000
Time:2022-05-02T13:01:09.4026556Z
ErrorCode:AuthorizationPermissionMismatch
Content: <?xml version="1.0" encoding="utf-8"?><Error>AuthorizationPermissionMismatch<Message>This request is not authorized to perform this operation using this permission.
RequestId:0ea3b6c8-101e-0006-4c24-5e7fc4000000
Time:2022-05-02T13:01:09.4026556Z</Message></Error>

To Reproduce
Steps to reproduce the behavior:

Connect to azure with azure cli
Execute the cli command az storage blob list -c MY_CONTAINER --account-name MY_STORAGE_ACCOUNT
Execute the python script given in the describe bug section

Expected behavior
If both scripts authenticate the same way (which is the case here, using the azure cli), they should both have the same behavior.
Screenshots
Additional context
As the bug was seen during an azure pipeline run, here is the script used to generate this pipeline:
pool:
  vmImage: ubuntu-latest
steps:
  - task: UsePythonVersion@0
    inputs:
      versionSpec: "3.9"
    displayName: Install Python
## Install the appropriate dependencies
  - task: AzureCLI@2
    inputs:
      azureSubscription: 'SERVICE_CONNECTION_NAME'
      scriptType: pscore
      scriptLocation: inlineScript
      inlineScript: |
        az storage blob list -c MY_CONTAINER --account-name MY_STORAGE_ACCOUNT --debug
        python3 my_python_script.py
      addSpnToEnvironment: true
      useGlobalConfig: true
      failOnStandardError: false
      powerShellIgnoreLASTEXITCODE: false

Hi @samy-dougui Samy, thanks for reaching out. We'll take a look and get back to you soon.

Hi @samy-dougui Samy, unfortunately we were unable to reproduce your error on our end. Taking a look at the Azure CLI operation you called and the provided code snippet, here are some suggestions that may help resolve your issue:

Ensure RBAC permissions are set correctly (link)
Ensure that the operations as described in your original post are done with the same user credentials, as it is possible that there is some odd interaction going on with your Azure Pipeline and any operations executed between your cli command and Python script
Finally, it is possible that if you had just modified any permissions, that it takes some time for all the permissions to propagate across and may lead to odd inconsistent behavior such as the one you have described

If none of the above helps to resolve your issue, please provide the following information in a follow-up comment below and we will do our best to resolve your issue:

A RequestID just as you have done above from the failing Python script
A RequestID from a working Azure CLI call to az storage blob list (you may have to use the --debug flag)
NOTE: The RequestIDs would be best if they are generated recently (typically within the day) as the logs are automatically cleared on a rolling basis

Thanks!

Hi @vincenttran-msft,
Sorry for the delayed answer.
Unfortunately, this bug still persists, but I realized that it was also happening locally, so it might be easier to reproduce the error.
The version used locally is still python 3.9.12.
The python script is the same.
Here is the request-id when executing the python script with the execution-time:
RequestId:8675da84-101e-0023-0702-696771000000 Time:2022-05-16T08:55:57.5092210Z
Here is the request-id when executing the azure cli:
For the request, GET 'https://management.azure.com/subscriptions/SUBSCRIPTION_ID/providers/Microsoft.Storage/storageAccounts?api-version=2021-09-01', the ms-client-request-id: 'x-ms-client-request-id': '4f3fbef8-d4f6-11ec-9bdb-1e00a30ab999'
Let me know if there is anything else I can do to help you.
Thank you for your help !

@vincenttran-msft Since your linked issue was closed, could you give an update on this one?

For anyone else that encountered this. Seems like AzureCliCredential and az cli are authenticating differently. AzureCliCredential requires the correct RBAC, so I had assign myself "Storage Blob Data Contributor" to run without getting AuthorizationPermissionMismatch. The az cli didn't require it this role set though, I suppose az cli might be generating a short-lived SAS token and make the request so it bypasses the RBAC

Hi @blasttask, thanks for your response to this issue. This was some very valuable information, and we really appreciate your contribution to the discussion (especially when we are having difficulties reproducing the errors locally).
Hi @samy-dougui Samy, apologies for the delay in response. I just wanted to check in and see if this problem still persists? If so, could you please try the solution suggested above by @blasttask?
Here is a doc that outlines how to assign Azure roles: Assign Azure roles, and here is another doc that is specific to assigning roles in Azure portal. The role that is relevant to your error seems to be the Storage Blob Data Contributor role.
With that being said, hopefully the above solution is applicable to your issue, but please let us know if this is not the case.
Thanks!

Hello everyone
I am having the exact same issue and can confirm that the workaround proposed by @blasttask is working. Thanks!
However, I just wanted to check if there was any plan in addressing the disconnect between the permissions and access available to the same tenant when executing via the Azure CLI and the Python SDK. Aside from being misleading, ideally you dont have to define access policies twice for the same user just because they are executing in different environments.
If that is not something you are planning or wanting to do, it would be helpfull to at least get some more information as to why the access is different? This will help people to avoid situations where they give too much access, or later down the line, they need to take it away.

Hi @ernestomonroy Ernesto, we were never quite able to track down why the difference exists as we were having trouble reproducing the issue on our side. We can try to investigate further.
As a follow-up what RBAC role was previously assigned to the user to have CLI work but not the SDK?

Hi @jalauzon-msft, thanks for looking into this.
On my CLI I am logged in through az login and my User in AD has the Global Administrator Role
In order for the SDK to work, I had to assign myself the "Storage Blob Data Contributor" Role Assignment. Just to clarify, I am using the DefaultAzureCredential class which defaults to the CLI Access Type (The same happens when I use the AzureCliCredential class)

I can reproduce this issue.
On CLI it warns about the missing credentials, but goes ahead by querying for an account key:
$ az storage blob list --container-name data --account-name accountname

There are no credentials provided in your command and environment, we will query for account key for your storage account.
It is recommended to provide --connection-string, --account-key or --sas-token in your command as credentials.

You also can add `--auth-mode login` in your command to use Azure Active Directory (Azure AD) for authorization if your login account is assigned required RBAC roles.
For more information about RBAC roles in storage, visit https://docs.microsoft.com/azure/storage/common/storage-auth-aad-rbac-cli.

In addition, setting the corresponding environment variables can avoid inputting credentials in your command. Please use --help to get more information about environment variable usage.
...

For AzureCliCredential it just fails, until one adds his own user to the "Storage Blob Data Contributor" Role in the Storage Account.
So this Issue is more of a feature request:
AzureCliCredential should also query for an storage account key when the full credentials are provided, instead of throwing the cryptic AuthorizationPermissionMismatch Error.

Thanks for the information @DanielHabenicht! This does appear to be the likely cause of the behavior OP and others were seeing here. I wasn't aware that the CLI had this additional functionality to query for the account key.
That being said, I don't think the AzureCliCredential used through an SDK should be querying for the account key in this case. When using a TokenCredential (which AzureCliCredential is one of the options), the SDK is intended to use AAD Auth to connect to the Storage account. Switching to account key auth would not be the expected behavior when using this type of credential, especially since we'd have to catch the auth error from the service and then try again. Further, the AzureCliCredential is just meant to be a convenience class to help obtain the identity used in CLI, not necessarily match the auth pattern of the CLI.
The CLI is only querying for the account key here because an auth mode was not provided in the request. I expect it is not first attempting to use the AAD identity, failing, and then grabbing the account key. Further, if you were to specify --auth-mode login in the CLI request without updating the RBAC roles of the user, my hunch is that would fail in the same way the SDK does. Specifying the AzureCliCredential in the SDK request, explicitly tells the SDK to use AAD auth.

I also wanted to provide an additional note for everyone here and say that the RBAC role for just listing blobs should only be required to be "Storage Blob Data Reader" and not necessarily "Storage Blob Data Contributor". This can be useful to know if you wish to restrict the permissions to read-only.

I do not understand the design idea behind this. I'm literally running the quickstart code samples, being a Subscription Owner -> Storage Account Owner, and I am getting AuthPermissionMismatch when trying to list blobs (but not containers) in the storage account.
https://learn.microsoft.com/en-us/azure/storage/blobs/storage-quickstart-blobs-python?tabs=managed-identity%2Croles-azure-portal%2Csign-in-azure-cli
If this instance
blob_service_client = BlobServiceClient(account_url, credential=default_credential)

is supposed to dynamically fetch my access token and find in claims whether I am able to access the resource or not, there is either:

something fundamentally wrong with my token claims
something fundamentally wrong with the way SDK interprets my token claims

There is no way Owner permissions are overwritten by not having explicit Storage Blob Data Contributor role on the Container?

@jalauzon-msft  @george-zubrienko
The same behavior seems to be in the .NET SDK as well. My account has the "Storage Blob Data Contributor" role assigned to it.
When I run the following command via Azure CLI (logged in with az login):
az storage blob list --blob-endpoint "https://mystaccount.blob.core.windows.net/" -c "mycontainer" --auth-mode login

It returns no errors. I also tested without the role assignment and it gives me an error.
Using DefaultAzureCredential in my .NET code, it recognizes the AzureCliCredential and selects it.
Then, I attempt the following request to the storage account (via the SDK):
GET https://mystaccount.blob.core.windows.net/mycontainer?restype=container&comp=list&prefix=MyPrefix&include=Tags

Which returns "Status: 403 (This request is not authorized to perform this operation using this permission.)"
Even after adding the "Storage Blob Data Reader" role it still does NOT work.

Encountered the same problem when running on AzureML ComputeInstance (CI) with user-managed identity.
from azure.identity import DefaultAzureCredential
from azure.identity import ManagedIdentityCredential
from azure.storage.blob import BlobServiceClient

credential = DefaultAzureCredential() ## DOES NOT WORK WITH LISTING BLOBS
# credential = ManagedIdentityCredential(client_id="xxx") ## WORKS!
blob_service_client = BlobServiceClient(
        account_url="https://xxx.blob.core.windows.net",
        credential=credential
    )

for container in blob_service_client.list_containers(): # This works
    print(container.name)
container_client = blob_service_client.get_container_client("XXX")
print(container_client.exists())  # This returns True
for blob in container_client.list_blobs():  # This fails for DefaultAzureCredential
    print(blob)

Even though credential = DefaultAzureCredential() logs:
INFO:azure.identity._credentials.environment:No environment configuration found.
INFO:azure.identity._credentials.managed_identity:ManagedIdentityCredential will use Azure ML managed identity

it seems like wrong identity is used for DefaultAzureCredential.
Workarounds:

Use credential = ManagedIdentityCredential(client_id="xxx") – but breaks nice streamlined flow with DefaultAzureCredential
Set environmental variable AZURE_CLIENT_ID: import os; os.environ['AZURE_CLIENT_ID'] = 'xxx';

Hi,
Also have this issue, trying to use both either a System Assigned Managed Identity (SAMI), or User Assigned Managed Identity (UAMI) to authenticate to a key vault from within a Azure Machine Learning online endpoint.
Going beyond our own solution, replicated the Azure ML online endpoints keyvault example found here:
https://github.com/Azure/azureml-examples/blob/main/sdk/python/endpoints/online/managed/online-endpoints-keyvault.ipynb
Online endpoint deployment fails with error further below, when code executing a secrets retrieval fails (code below, example using SAMI which as policy for secrets get on kv). Grateful for any support.
`
from azure.identity import ManagedIdentityCredential
from azure.keyvault.secrets import SecretClient
import os
import json
multiplier: int = None
def load_secrets():
"""
Replaces the values of environment variables with names containing "KV_SECRET" and values of the form "<SECRET_NAME>@<VAULT_URL>" with the actual secret values
Uses the ManagedIdentityCredential to create a SecretClient for each <VAULT_URL>. The endpoint's Managed Identity should have the get permission for secrets.

Example:
    KV_SECRET_FOO: foo@https://keyvault123.vault.azure.net

    Will be replaced with the actual vaule of the secret named foo in keyvault123.
"""
secret_clients = {}
credential = ManagedIdentityCredential()

for k, v in os.environ.items():
    if "KV_SECRET" in k:
        try:
            secret_name, vault_url = v.split("@")
        except ValueError:
            raise ValueError(
                f"Wrong value format for env var {k} with value {v}. Should be of the form <SECRET_NAME>@<VAULT_URL>"
            )

        if vault_url in secret_clients:
            secret_client = secret_clients[vault_url]
        else:
            secret_client = SecretClient(vault_url=vault_url, credential=credential)
            secret_clients[vault_url] = secret_client

        secret_value = secret_client.get_secret(secret_name).value
        os.environ[k] = secret_value

def init():
load_secrets()
global multiplier
multiplier = int(os.getenv("KV_SECRET_MULTIPLIER"))

def run(data):
data = json.loads(data)
input = data["input"]
output = input * multiplier
return {"output": output}

`
2023-08-29 14:48:20,103 E [69] azmlinfsrv - User's init function failed
2023-08-29 14:48:20,107 E [69] azmlinfsrv - Encountered Exception Traceback (most recent call last):
File "/azureml-envs/azureml_09cce48cae07377fa96cd42d79bcf994/lib/python3.10/site-packages/azureml_inference_server_http/server/user_script.py", line 119, in invoke_init
self._user_init()
File "/var/azureml-app/test_deploy_endpoint_verbatim/score.py", line 43, in init
load_secrets()
File "/var/azureml-app/test_deploy_endpoint_verbatim/score.py", line 38, in load_secrets
secret_value = secret_client.get_secret(secret_name).value
File "/azureml-envs/azureml_09cce48cae07377fa96cd42d79bcf994/lib/python3.10/site-packages/azure/core/tracing/decorator.py", line 78, in wrapper_use_tracer
return func(*args, **kwargs)
File "/azureml-envs/azureml_09cce48cae07377fa96cd42d79bcf994/lib/python3.10/site-packages/azure/keyvault/secrets/_client.py", line 72, in get_secret
bundle = self._client.get_secret(
File "/azureml-envs/azureml_09cce48cae07377fa96cd42d79bcf994/lib/python3.10/site-packages/azure/keyvault/secrets/_generated/_operations_mixin.py", line 1640, in get_secret
return mixin_instance.get_secret(vault_base_url, secret_name, secret_version, **kwargs)
File "/azureml-envs/azureml_09cce48cae07377fa96cd42d79bcf994/lib/python3.10/site-packages/azure/core/tracing/decorator.py", line 78, in wrapper_use_tracer
return func(*args, **kwargs)
File "/azureml-envs/azureml_09cce48cae07377fa96cd42d79bcf994/lib/python3.10/site-packages/azure/keyvault/secrets/_generated/v7_4/operations/_key_vault_client_operations.py", line 760, in get_secret
pipeline_response: PipelineResponse = self._client._pipeline.run(  # pylint: disable=protected-access
File "/azureml-envs/azureml_09cce48cae07377fa96cd42d79bcf994/lib/python3.10/site-packages/azure/core/pipeline/_base.py", line 230, in run
return first_node.send(pipeline_request)
File "/azureml-envs/azureml_09cce48cae07377fa96cd42d79bcf994/lib/python3.10/site-packages/azure/core/pipeline/_base.py", line 86, in send
response = self.next.send(request)
File "/azureml-envs/azureml_09cce48cae07377fa96cd42d79bcf994/lib/python3.10/site-packages/azure/core/pipeline/_base.py", line 86, in send
response = self.next.send(request)
File "/azureml-envs/azureml_09cce48cae07377fa96cd42d79bcf994/lib/python3.10/site-packages/azure/core/pipeline/_base.py", line 86, in send
response = self.next.send(request)
[Previous line repeated 2 more times]
File "/azureml-envs/azureml_09cce48cae07377fa96cd42d79bcf994/lib/python3.10/site-packages/azure/core/pipeline/policies/_redirect.py", line 197, in send
response = self.next.send(request)
File "/azureml-envs/azureml_09cce48cae07377fa96cd42d79bcf994/lib/python3.10/site-packages/azure/core/pipeline/policies/_retry.py", line 531, in send
response = self.next.send(request)
File "/azureml-envs/azureml_09cce48cae07377fa96cd42d79bcf994/lib/python3.10/site-packages/azure/core/pipeline/policies/_authentication.py", line 126, in send
response = self.next.send(request)
2023-08-29 14:48:20,107 I [69] gunicorn.error - Worker exiting (pid: 69)
File "/azureml-envs/azureml_09cce48cae07377fa96cd42d79bcf994/lib/python3.10/site-packages/azure/core/pipeline/_base.py", line 86, in send
response = self.next.send(request)
File "/azureml-envs/azureml_09cce48cae07377fa96cd42d79bcf994/lib/python3.10/site-packages/azure/core/pipeline/_base.py", line 86, in send
response = self.next.send(request)
File "/azureml-envs/azureml_09cce48cae07377fa96cd42d79bcf994/lib/python3.10/site-packages/azure/core/pipeline/_base.py", line 86, in send
response = self.next.send(request)
[Previous line repeated 2 more times]
File "/azureml-envs/azureml_09cce48cae07377fa96cd42d79bcf994/lib/python3.10/site-packages/azure/core/pipeline/_base.py", line 119, in send
self._sender.send(request.http_request, **request.context.options),
File "/azureml-envs/azureml_09cce48cae07377fa96cd42d79bcf994/lib/python3.10/site-packages/azure/core/pipeline/transport/_requests_basic.py", line 339, in send
response = self.session.request(  # type: ignore
File "/azureml-envs/azureml_09cce48cae07377fa96cd42d79bcf994/lib/python3.10/site-packages/requests/sessions.py", line 589, in request
resp = self.send(prep, **send_kwargs)
File "/azureml-envs/azureml_09cce48cae07377fa96cd42d79bcf994/lib/python3.10/site-packages/requests/sessions.py", line 703, in send
r = adapter.send(request, **kwargs)
File "/azureml-envs/azureml_09cce48cae07377fa96cd42d79bcf994/lib/python3.10/site-packages/requests/adapters.py", line 486, in send
resp = conn.urlopen(
File "/azureml-envs/azureml_09cce48cae07377fa96cd42d79bcf994/lib/python3.10/site-packages/urllib3/connectionpool.py", line 714, in urlopen
httplib_response = self._make_request(
File "/azureml-envs/azureml_09cce48cae07377fa96cd42d79bcf994/lib/python3.10/site-packages/urllib3/connectionpool.py", line 403, in _make_request
self._validate_conn(conn)
File "/azureml-envs/azureml_09cce48cae07377fa96cd42d79bcf994/lib/python3.10/site-packages/urllib3/connectionpool.py", line 1053, in _validate_conn
conn.connect()
File "/azureml-envs/azureml_09cce48cae07377fa96cd42d79bcf994/lib/python3.10/site-packages/urllib3/connection.py", line 363, in connect
self.sock = conn = self._new_conn()
File "/azureml-envs/azureml_09cce48cae07377fa96cd42d79bcf994/lib/python3.10/site-packages/urllib3/connection.py", line 174, in _new_conn
conn = connection.create_connection(
File "/azureml-envs/azureml_09cce48cae07377fa96cd42d79bcf994/lib/python3.10/site-packages/urllib3/util/connection.py", line 85, in create_connection
sock.connect(sa)
File "/azureml-envs/azureml_09cce48cae07377fa96cd42d79bcf994/lib/python3.10/site-packages/gunicorn/workers/base.py", line 203, in handle_abort
sys.exit(1)
SystemExit: 1
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/azureml-envs/azureml_09cce48cae07377fa96cd42d79bcf994/lib/python3.10/site-packages/azureml_inference_server_http/server/aml_blueprint.py", line 109, in setup
self.user_script.invoke_init()
File "/azureml-envs/azureml_09cce48cae07377fa96cd42d79bcf994/lib/python3.10/site-packages/azureml_inference_server_http/server/user_script.py", line 121, in invoke_init
raise UserScriptException(ex) from ex
azureml_inference_server_http.server.user_script.UserScriptException: Caught an unhandled exception from the user script


[Fix]: App returns to tag page after tapping back button on workspace editor

Details

Fixed Issues

$ https://github.com/Expensify/App/issues/51414
PROPOSAL: N/A
Tests

Precondition:

Workspace has imported dependent tags (attached below).

Launch ND or hybrid app.
Go to workspace settings > Tags.
Tap on any main tag.
Tap app back button to go back to main tag page.
Tap app back button to return to workspace editor.
Tap app back button again.

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

Offline tests

Precondition:

Workspace has imported dependent tags (attached below).

Launch ND or hybrid app.
Go to workspace settings > Tags.
Tap on any main tag.
Tap app back button to go back to main tag page.
Tap app back button to return to workspace editor.
Tap app back button again.

QA Steps

Precondition:

Workspace has imported dependent tags (attached below).

Launch ND or hybrid app.
Go to workspace settings > Tags.
Tap on any main tag.
Tap app back button to go back to main tag page.
Tap app back button to return to workspace editor.
Tap app back button again.

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

PR Author Checklist

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

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

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

[x] Android: Native
[x] Android: mWeb Chrome
[x] iOS: Native
[x] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[x] MacOS: Desktop

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

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[x] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

[x] If any non-english text was added/modified, I verified the translation was requested/reviewed in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:

[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is either coming verbatim from figma or has been approved by marketing (in order to get marketing approval, ask the Bug Zero team member to add the Waiting for copy label to the issue)
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

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

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

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

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

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[x] If the PR modifies the UI (e.g. new buttons, new UI components, changing the padding/spacing/sizing, moving components, etc) or modifies the form input styles:

[x] I verified that all the inputs inside a form are aligned with each other.
[x] I added Design label and/or tagged @Expensify/design so the design team can review the changes.

[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.

Screenshots/Videos

Android: Native

Android: mWeb Chrome

iOS: Native
https://github.com/user-attachments/assets/e7390867-487c-41f9-af54-9cf04759ce9c

iOS: mWeb Safari
https://github.com/user-attachments/assets/bca9fba4-a133-46fc-be39-95ba7e8716cf

MacOS: Chrome / Safari
https://github.com/user-attachments/assets/f127a3cb-1aa7-4273-ae29-01ca898a9be9

MacOS: Desktop
https://github.com/user-attachments/assets/b99515d7-a248-4622-9c4d-e3a3055cb205

:hand: This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release.


Update python-cheatsheet.md

Good morning
I added about axis on the python Plot feature - I hope that is ok.
I'm still learning for Hacktoberfest!
Change Summary
Provide summary of changes with issue number if any.
I added the axis section of the Python Plot function.
Checklist
If you haven't fulfilled the below requirements or even delete the entire checklist, your PR won't be reviewed and will be closed without notice.
General

[X ] This Pull Request is all my own work. (You'll be blacklisted if you are caught for plagiarism.)
[ X] I've read CONTRIBUTING.md
[ X] I've made some valid changes to the CheatSheet, and they are not just minor changes.

Changes

[X ] I've read and followed the Solution Template

Note: To mark the checkbox, put an x inside the [ ] (like this: [x]).

@afmcdnl As you are a beginner with OpenSource, I accepted these minor changes. Usually you should prefer doing some major contributions instead of single line ones.


⚠ Samsung has degraded performance

In d5cfb1f, Samsung (https://samsung.com) experienced degraded performance:

HTTP code: 200
Response time: 3176 ms

Resolved: Samsung performance has improved in 35632e7.


Invite Government folks

does anybody know people in government?

I know some people that have had previous connection with Code for America that I will invite.


[Organizations] Edit organization page for collaborators should explain why editing fields is locked

When they try to edit an organization, collaborators should be told that they cannot edit any fields because they are only a collaborator.

 Only Administrators can makes changes to this organization.


Add MySQL timeout parameter / fix compatibility with MariaDB 10.1 and older

I added two methods to use an explicit timeout, as they might be useful, and this also fixes an incompatibility with older MySQL/MariaDB (tested with 10.1) where GET_LOCK does not support -1 for infinite value.
I added new test cases for the timeout part. I tested it with a build flag (as in tests with older versions current tests will fail on -1 timeouts), but I'm open to suggestions :-)

This was the first time that I encounter Azure pipelines, I hope that the the way I modified the config is ok :+1:

Looks awesome @Enrico204 Can you also add the new feature/api in README? Apologies I missed this in last comment

You are right :-)
I added also a "compatibility" section in the README to help those who use this library with an old version of MySQL (like me :-D)

thanks @Enrico204 😸


504 Error

https://scan.tomochain.com/address/0x45b7bd987fa22c9bac89b71f0ded03f6e150ba31
this is a coinbase address

#569 #572


Add list is dark

ref #395
Description
This PR adds is-dark to nes-list, to fix lists in dark containers.
Compatibility
I added a mixin and changed a little bit, but I don't think should break anything. Tested in green field browsers.
Caveats
Right now it looks like this, suggestions are welcomed.

Looks awesome, glad to see screen shots being added of the changes and the use of the new story book enhancements :-D


Universal link support

Fixes #35
Support on the website for this is already complete so you can build this, go to an issue link at 5calls.org and see the automatic "Open in the 5 Calls app" link at the top of Safari. I opted not to make it automatic for now.
Todo:

[ ] Track an opening from a universal link in our event tracking

Thanks @mccarron! I will make the style adjustments when I add tracking later today

Thanks @mccarron, agree with your comments.


Refactor GNPS export

The GNPS export used some unsafe methods to open / save files.
There are reports of mismatches between the number of exported features for mgf and csv export despite using the same rows filter for only those with MS2.
I will open a separate PR removing the best fragmentation DataType - we should only use the list of all fragment scans and sort it regarding the "best" scan = first in list.
Similar to Ion Identities and other List types

included in #531 with more changes


⚠ Media Fetcher has degraded performance

In 5aa0fc4, Media Fetcher ($SITES_URL_DOWNLOADS) experienced degraded performance:

HTTP code: 525
Response time: 21583 ms

Resolved: Media Fetcher performance has improved in 321e1ef after 22 hours, 26 minutes.


disable Self-Sizing

I met this Issue #6  and spent some time to fix this.
It turns out to be that in iOS 11.0 UITableViewAutomaticDimension is the default value of estimatedRowHeight rather than 0. In other words, we have to disable Self-Sizing manually.
In UITableViewAutomaticDimension mode, if we have to reuse cells, TableView is not able to get the right contentSize. While scrolling, new cells come out and cause changes of contentSize.

Thanks for looking into this.. I'm not sure if this is the right solution here, though.
Like you mentioned, automatic cell sizing does cause issues with reordering. And in iOS 11 it looks like you have to manually disable it. But setting estimatedRowHeight to 0 is only part of that -- the user still needs to calculate and return a cell height in their tableView delegate method. We can't do that part automatically.
I'd lean towards adding a note in the documentation for this, so it's clear what the user needs to do (and why). If we do part of it automatically, but not the other part, I'm afraid it could lead to non-obvious issues when people try to use the library.
I'm seeing some other issues with iOS 11 as well... may need to take some time and look into things. 😞

Yeah, I know what you mean. It seems like that adding a note is a better way right now. 😊


CRAYSAT-1787: Adding ceph health check bypass in sat bootsys ncn-power

IM:CRAYSAT-1787
Reviewer:Ryan
Summary and Scope
Adding ceph health check bypass prompt for the user to decide whether to wait or proceed with skipping the health check after unfreezing of ceph is done. As it may take some time and the next steps may not explicitly require, by the time it comes back it would be good to use.
Issues and Related PRs
List and characterize relationship to Jira/Github issues and other pull requests. Be sure to list dependencies.

Resolves CRAYSAT-1787

Testing
List the environments in which these changes were tested.
Tested on:
Yet to be tested
Test description:
Will have to power off and power on the ncn's to verify how the unfreeze ceph and ceph health check bypass works during ncn-power stage of sat bootsys
Risks and Mitigations
minimal
Pull Request Checklist

[x] Version number(s) incremented, if applicable
[x] Copyrights updated
[x] License file intact
[x] Target branch correct
[x] CHANGELOG.md updated
[ ] Testing is appropriate and complete, if applicable
[ ] HPC Product Announcement prepared, if applicable

testing on rocket system:
https://gist.github.com/shivaprasad-metimath/28a99ae3962b5dac7313bd60cd511c89


Pages menu final item does not have correct bottom margin

Description

Reproduction

Visit any page (https://search-staging.openverse.engineering/search/?q=galah, for example), and open the pages menu (the three dots menu next to the search bar) and focus/hover over the final item in the dropdown menu. Focusing/hovering shows the incorrect margin very clearly, but it is still wrong when unfocused (i.e., it's not an issue with the focus box).
Resolution

[ ] 🙋 I would be interested in resolving this bug.

🙋 I would be interested in resolving this bug.

@rajdeepdas2000 Thank you! I've assigned the issue to you. If you have any questions, feel free to ping the maintainers at @WordPress/openverse-frontend for help.

Hi @sarayourfriend I managed to solve the issue using inspect element from the browser but I am unable to find the exact file in which the change is to be made.

I have raised PR #2037 to solve this issue. Kindly look into the PR. Thanks.


Feature/8 exclude gitignore matches

This is awesome! I was just going to work on this today. Thank you!!


Status of this library?

Just discovered this project - seems great, as the original gevent-socketio is dead. What is the status of this project? Is it usable already? Anyone using it in production?

The project is "dead" too if no one interested, just like any other OS project.
I used it in my prev startup, but not battle tested.
No, now no one is using it.

Thanks for asking, if you interested, we can bring it back to life, I've put a lot effort implement it. :)

Thank you for your quick reply. We're currently using the original gevent-socketio, and looking for an option to get away from this. Not sure at the moment whether we will stay with socketio or if we'll migrate to sockJS. If I have the time, I'll evaluate gevent_socketio2 over the next week. Can you summarize the differences to the original? Is it really a complete rewrite? How are you handling the "multiple worker" issue?
There are regularly people on the original gevent-socketio, so the interest is there. Maybe we could advertise this project a bit more?

I was currently working on my own implementation of socketio-1.0 before I found this. I will merge my code with what you have already.

@jdeschenes  Sorry for the late reply. This project is dead. If you think any code useful, go ahead and use it. Due to many reasons, I switched to Java netty socketio.

We're currently using this code for the socketio 1.x implementation. I've created my own fork and plan on maintaining the project. Come support the effort https://github.com/gkadillak/gevent_socketio2

@gkadillak That's great.


Frontend: Refactor the overall layout

Original PR:  https://github.com/ItJustWorksBetterTM/EiffelVis/pull/49
Implement the overall layout according to the prototype
Description

Create a SideBar component for the buttons to increase the App.svelte file readability
Create a Button component to reduce code repetition
Modify the App.svelte file to use the components
Modify the panels' styles to match the overall prototype
Modify the FilterWidget component display option
Modify the Timebar icon path to match the Button component structure.
Update the background colors to match the prototype
Update the Timebar panel background color to match the layout
Add data types to the ones missing at declaration time. To increase the code quality and follow the correct typescript syntax, this point is applied to all the files.
Remove the scroll bar which was only visible on high resolution screens.

Screenshots
Overall app

When the panels are toggled on
When the 'Graph options' is toggled on, the 'legend' is hidden and vice versa.

Testing

Tested locally with both the database dump data and the original event generator.
The performance was not impacted
Two of the team members have reviewed the performance locally.

Possible Improvements

There is a gap between the color legend/graph options and the filter panel, but we have a plan for it.

closes #40
closes #34

lgtm

Just for info, Dev should not be merged into feature branches.
It does not impact since Dev was just based out of master, but if we had added the rasp pi code, this would have been problematic.

Have you tested the playback of events on the master branch? They should be the same since I have not modified the event sender. If it's the same we can work on it on a separate branch. I don't think it is intended.


Corrupt front spar

In IFAR (see here) @TiagoNunes-git from CEiiA discovered a problem with a front spar in TiGL 2 and 3.
I prepared a minimal example and found that the spar is build properly if I move the wing_Spar_FS_P2 sparPosition a little bit. It seems to be the case with Tigl3 as well.
spar_problem.zip

What could be the problem?

Yes! This looks like #610

Yes: spar_problem_cp3.zip

Perfect! We will just continue with the project by shifting the spar position a little bit to the right and I'm looking forward for the next release.


w2v-light-tencent-chinese对文本是否有长度限制呢？

Describe the Question
Describe your attempts

[ ] I walked through the tutorials
[ ] I checked the documentation
[ ] I checked to make sure that this is not a duplicate question

w2v-light-tencent-chinese对文本是否有长度限制呢？

没，是简单取平均算得句子得分。一般不建议太长，max_len=128为好


Sort characters by id

Makes the characters appear in the same order on every page load/refresh.

We're going to add this when we make an options page to let users decide and store a preference.

Allright. Because the characters jumping around is kinda annoying. Looking forward to it!

It is based on which one you used last, in order. Your currently, or most
recently, logged in guardian is always first.
On Mon, Jul 20, 2015 at 2:37 AM Frode Knutsen<EMAIL_ADDRESS>wrote:

Allright. Because the characters jumping around is kinda annoying. Looking
forward to it!
—
Reply to this email directly or view it on GitHub
https://github.com/kyleshay/DIM/pull/181#issuecomment-122786740.


Cheerpj interoperability tutorial

I can do a quick review on formatting and styling once Elisabeth's changes are fulfilled.


x509 certificate expired hive api v5

Since today I am now receiving a comment that says unable to login post to long : x509 certificate has expired or is not yet valid ? Any one else getting this

It looks like the Hive service stopped supporting the API HiveKit was using.
Due to a lack of time, I don't have the time right now to look into the replacement API they are using. If someone wants to take a look and make updates, I'll happily add them to the collaborators on this project.

I'd you delete the contents of the folder "Hive\ Bridge" and try again it should work.

I have setup a new instance of this on my Raspberry Pi today and have encountered no issues, its all working fantastic!

I have just installed Hivekit and I don't have this issue. It is working perfectly.

Good to hear.
Is @njpatel  going to be continuing this project? seems to be interest and its far from depreciated and a gap given there is no word from Hive on when / how they will implement HomeKit with existing equipment.

Haha, here I am in 2019, with the new Hive Heating and Cooling thermostat in the US, wondering when hive will implement HomeKit support. Unfortunately all of the homebridge plugins and other ways to access Hive Thermostats  through the API only work in the UK. (as far as I can tell)
@VR6Pete


vue-router.esm-bundler.js?6c02:1031 Uncaught Error: Route paths should start with a "/": "" should be "/".

vue-router  4.0.0-beta.13
vue-router.esm-bundler.js?6c02:1031 Uncaught Error: Route paths should start with a "/": "" should be "/".

See https://next.router.vuejs.org/guide/migration/#removed-star-or-catch-all-routes


Add BB84 example

https://en.m.wikipedia.org/wiki/BB84
We have an "Alice and Bob" example you can use as inspiration: https://github.com/quantumlib/Cirq/blob/master/examples/bell_inequality.py

I'd like to work on this, please!

@deadbeatfour Have fun!!

Hey! I've added a file with the program. I'd love some feedback.

A basic example exists.


High severity vulnerability security advisory for a dependency, marked

Which is, apparently, no longer in the repo. I guess that, along #1964, just releasing what's in main will take care of it.
TL;DR: Upgrade it to 4.0.10 or better https://github.com/advisories/GHSA-rrrm-qjm4-v8hf
Related: #1413. Although it's been removed, there does not seem to be a commit that references it.

The latest version of the library is 3.6.7 and the marked vulnerability is still present, can you release a new version with the marked vulnerability removed?

Any idea of when the new version is going to be released?
We can't go on with jsdoc in production until the vulnerabilities are removed

I'm not sure this is actively developed any more. I wonder if anyone would be interested in forking and releasing a new version? Initially just with vulnerabilities fixed, then we'll see?

Fixed in JSDoc 3.6.8.


feat: analytics | Create Analytics Dashboard Page

This ticket was used to create the analytics dashboard page using dummy data. The sidebar width was also adjusted to proportionate size. Please see screenshots below:
Screenshots

Note to reviewers
The posts were hardcoded.
Code of Conduct

[x] By submitting this pull request, I confirm I've read and complied with the CoC 🖖

Check List (Check all the applicable boxes)

[x] My code follows the code style of this project.
[x] My change requires changes to the documentation.
[x] I have updated the documentation accordingly.
[x] All new and existing tests passed.
[x] This PR does not contain plagiarized content.
[x] The title of my pull request is a short description of the requested changes.

You can also join our Discord community.
Feel free to check out other cool repositories of the Thecyberworld.
Join the Thecyberworld GitHub Organisation by raising an issue (you will be sent an invitation).

@ArkadiK94 Thanks for the comments. Well appreciated. I will make changes as soon as possible and push.

@duokobia Hi, how is it going? do you need some help?

@ArkadiK94 Thanks. I had breaking changes while updating the code. Almost done with it.
Appreciate.

@ArkadiK94 Changes have been pushed.
Appreciate.

@duokobia Hi, before I will review it again. You should go through every one of my previous comments and those you resolved click "resolve"

Okay.
On Fri, Mar 15, 2024 at 9:36 AM Arkadi Koifman @.***>
wrote:

@duokobia https://github.com/duokobia Hi, before I will review it
again. You should go through every one of my previous comments and those
you resolved click "resolve"
—
Reply to this email directly, view it on GitHub
https://github.com/thecyberworld/TheCyberHUB/pull/703#issuecomment-1999170050,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AUYFUUSS4CDPRUVKPGE5FO3YYKXHNAVCNFSM6AAAAABEGVY2C6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSOJZGE3TAMBVGA
.
You are receiving this because you were mentioned.Message ID:
@.***>

I will create an array to hold the hardcoded data pending when an endpoint will be available.
Appreciate.


[typespec-python] 'Content-Type' is not included in response_headers

Previously, the Content-Type was included in the response_headers. For example, here.
However, I recently re-generated from this spec with typespec-python version 0.24.3 and this line was removed. Was this line intentionally removed?

Will take an investigation soon.

The issue is caused by TCGC: https://github.com/Azure/typespec-azure/issues/1112. After TCGC fixed, we need to upgrade to new version then the issue shall be fixed.


I want to show Image on Top then TextView next to Image View with margin 20.

How do I achieve this?

I got the solution.
I added Image into TextView using UITextView property textView.textStorage.insert.
Thanks for this nice library.

Glad you could solve your issue. 👍🏽
Hope you get some value from using the library!


First word of cvparagraph in colour rather than first 3 letters

Is it possible to change the behaviour of the section for 'cvparagraph' to use the 'awesome' colour for the full length of the first word rather just the first 3 letters.  I can change it for length of characters and probably create individual paragraph sections but would prefer something generic.
Cheers
Mike Chapman

Do you want the change for all sections or only those containing a cvparagraph environment? If it would be acceptable to use the color for the entirety (not just the first word) of all section headings, you could replace the definition of \@sectioncolor with
\def\@sectioncolor#1{%
\ifbool{acvSectionColorHighlight}{\color{awesome}{#1}}{}%
}

and the definition of \sectionstyle with
\newcommand*{\sectionstyle}[1]{%
{\fontsize{16pt}{1em}\bodyfont\bfseries\color{text}\@sectioncolor{#1}}%
}

If you want just the first word of the section title to be in color, maybe you can use the answers to this question.

Just the first word.  Thanks for the tip, I'll try it sometime soon.  Cheers.

Just got this working.  It does the job.  I needed to use the latest release.

@chappo007 would you mind sharing the solution that worked for you?
Cheers

What I have done is,
I added
\newcommand*{\lettersectionstyledark}[1]{{\fontsize{14pt}{1em}\bodyfont\bfseries\color{darktext} #1}}
And modified lettersection to this,
\newcommand{\lettersection}[2]{%
\par\addvspace{2.5ex}
\phantomsection{}
\lettersectionstyle{#1}
\lettersectionstyledark{#2}
\color{gray}\vhrulefill{0.9pt}
\par\nobreak\addvspace{0.4ex}
}


Error in raw_attach_volume and raw_detach_volume methods

Hi Guys. From this commit
https://github.com/ManageIQ/manageiq/commit/fc95a15b45a3eeb2264a1806b79136847dd9025a#diff-d30acf874de5dc5851311dce7275624d there is methods for attaching volumes. But I think there is error in options for this methods (raw_attach_volume and raw_detach_volume).
From https://github.com/ManageIQ/manageiq/blob/master/app/models/vm_or_template/operations/configuration.rb#L95
run_command_via_parent(:vm_attach_volume, :volume_id, :device)

second parameters should be
:volume_id => volume_id, :device => device

and from https://github.com/ManageIQ/manageiq/blob/master/app/models/vm_or_template/operations/configuration.rb#L104
run_command_via_parent(:vm_detach_volume, :volume_id)

second parameter should be
:volume_id => volume_id

Related error:
[----] E, [2017-09-20T19:17:12.067803 #5234:f9b12c] ERROR -- : MIQ(MiqQueue#deliver) Message id: [15975009], Error: [undefined method find_by_id_filtered' for #<ManageIQ::Providers::Openstack::CloudManager:0x00000002c44710>] [----] E, [2017-09-20T19:17:12.068221 #5234:f9b12c] ERROR -- : [NoMethodError]: undefined method find_by_id_filtered' for #ManageIQ::Providers::Openstack::CloudManager:0x00000002c44710  Method:[rescue in deliver]
https://github.com/ManageIQ/manageiq/blob/euwe-3/app/models/manageiq/providers/openstack/cloud_manager.rb#L317

@miq-bot assign @tzumainn

https://github.com/ManageIQ/manageiq-providers-openstack/pull/112


added support for using export from bashrc, update pydantic version f…

…or dependency conflict, unused import and update .gitignore

Removed unused import of torch in server/RAGHelper.py
added few files for .gitignore
langchain and langchain-core had dependency conflict for pydantic so upgraded the version to 2.7.4
included importing variables from bashrc to reuse secrets instead of picking it from .env


Writing an empty string stores a 0

Writing an empty string stores a 0
> curl -H "Content-Type: application/json" -X POST http://localhost:3000/posts -d'{"id":6,"comment":""}'
{"id":6,"comment":0}

> curl -H "Content-Type: application/json" -X GET  http://localhost:3000/posts/6
{"id":6,"comment":0}

Hi thanks for the report, published the fix in v0.5.8

thanks, that was quick !
I just realized that there is the same issue for a string with spaces " ", even in 0.5.8
curl -H "Content-Type: application/json" -X POST http://localhost:3000/posts -d'{"id":6,"comment":" "}'
{"id":6,"comment":0}

and also for various white spaces
curl -H "Content-Type: application/json" -X POST http://localhost:3000/posts -d'{"id":6,"comment":"\t\n\r"}'
{"id":6,"comment":0}

JavaScript niceties ...

Yeah as you say JS niceties :sweat_smile: I'll trim the string

Ok, I've added some tests here https://github.com/typicode/json-server/blob/master/test/utils.js#L34 and published v0.5.9.

Works fine.
Thanks again for this very useful tool !


Support a dependent package to compile VIM3/Vivante NPU models

The reference-model requires the "BuildRequires aml_npu_sdk" statement.
The aml_npu_sdk package (e.g., aml_npu_sdk.rpm) has to be supported as a dependent package to compile VIM3/Vivante NPU models

http://www.mediafire.com/file/fm9gf6sq8mzs256/aml_npu_sdk_<IP_ADDRESS>.7z/file

aml_npu_sdk_<IP_ADDRESS>.7z
Compressed Archive (.7Z)
File size: 1.05GB
Uploaded: 2020-05-05 21:20:37
LICENSE: GPL

Then, what's the issue to be resolved here? Do you want RPM packaging of aml_npu_sdk?


Update "Status Bar" chapter for Waybar: replace 'wlr/' with 'hyprland/'

Update "Status Bar" chapter for Waybar: replace 'wlr/' with 'hyprland/' for ver. 0.29.1

https://github.com/hyprwm/hyprland-wiki/pull/327

#327

https://wiki.hyprland.org/0.29.1/Useful-Utilities/Status-Bars/

Compiling manually
... If you want to use the workspaces module, first, copy the configuration files from /etc/xdg/waybar/ into ~/.config/waybar/. Then, in ~/.config/waybar/config replace all the references to sway/workspaces with wlr/workspaces

Scrolling through workspaces
... "wlr/workspaces": {

Clicking on a workspace icon does not work!
... On the wlr/workspaces module...


No thread-bound request found: Are you referring to request attributes outside of an actual web request, or processing a request outside of the originally receiving thread.

From<EMAIL_ADDRESS>on March 25, 2014 22:57:42
What steps will reproduce the problem?

Enable msm logger as per document

Add following line in cataclina.sh
CATALINA_OPTS="$CATALINA_OPTS -Dnet.spy.log.LoggerImpl=net.spy.memcached.compat.log.SunLogger"

Add following lines in CATALINA_HOME/conf/logging.properties
de.javakaffee.web.msm.level=FINE

A handler's log level threshold can be set using SEVERE, WARNING, INFO, CONFIG, FINE, FINER, FINEST or ALL
net.spy.memcached.level = FINE
To make only the MemcachedConnection less verbose:
net.spy.memcached.MemcachedConnection.level = FINE

What is the expected output? What do you see instead?
User session should be stored in Memcached server, instead I see "Could not store session 9B5C8BF8A55A37A93785F86B75DF2D0A-n2 in memcached."

What version of the product are you using? On what operating system?
spymemcached-2.10.2.jar
memcached-session-manager-tc6-1.8.1.jar
memcached-session-manager-1.8.1.jar
tomcat-6.0.39

Please provide any additional information below.

Error Stack trace. If I disable the logger this issue goes away.

INFO: Could not store session 9B5C8BF8A55A37A93785F86B75DF2D0A-n2 in memcached.
java.util.concurrent.ExecutionException: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'scopedTarget.sessUser': Scope 'session' is not active for the current thread; consider defining a scoped proxy for this bean if you intend to refer to it from a singleton; nested exception is java.lang.IllegalStateException: No thread-bound request found: Are you referring to request attributes outside of an actual web request, or processing a request outside of the originally receiving thread? If you are actually operating within a web request and still receive this message, your code is probably running outside of DispatcherServlet/DispatcherPortlet: In this case, use RequestContextListener or RequestContextFilter to expose the current request.
at de.javakaffee.web.msm.BackupSessionService$SynchronousExecutorService.submit(BackupSessionService.java:348)
at de.javakaffee.web.msm.BackupSessionService.backupSession(BackupSessionService.java:205)
at de.javakaffee.web.msm.MemcachedSessionService.backupSession(MemcachedSessionService.java:1040)
at de.javakaffee.web.msm.RequestTrackingHostValve.backupSession(RequestTrackingHostValve.java:230)
at de.javakaffee.web.msm.RequestTrackingHostValve.invoke(RequestTrackingHostValve.java:159)
at de.javakaffee.web.msm.RequestTrackingHostValve.invoke(RequestTrackingHostValve.java:124)
at de.javakaffee.web.msm.RequestTrackingHostValve.invoke(RequestTrackingHostValve.java:124)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:722)
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'scopedTarget.sessUser': Scope 'session' is not active for the current thread; consider defining a scoped proxy for this bean if you intend to refer to it from a singleton; nested exception is java.lang.IllegalStateException: No thread-bound request found: Are you referring to request attributes outside of an actual web request, or processing a request outside of the originally receiving thread? If you are actually operating within a web request and still receive this message, your code is probably running outside of DispatcherServlet/DispatcherPortlet: In this case, use RequestContextListener or RequestContextFilter to expose the current request.
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:342)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)
at org.springframework.aop.target.SimpleBeanTargetSource.getTarget(SimpleBeanTargetSource.java:33)
at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.getTarget(Cglib2AopProxy.java:654)
at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:605)
at com.etrade.ser.issue.controller.User$$EnhancerByCGLIB$$7342260b.toString(<generated>)
at java.lang.String.valueOf(String.java:2902)
at java.lang.StringBuilder.append(StringBuilder.java:128)
at de.javakaffee.web.msm.JavaSerializationTranscoder.writeAttributes(JavaSerializationTranscoder.java:140)
at de.javakaffee.web.msm.JavaSerializationTranscoder.serializeAttributes(JavaSerializationTranscoder.java:99)
at de.javakaffee.web.msm.TranscoderService.serializeAttributes(TranscoderService.java:155)
at de.javakaffee.web.msm.BackupSessionTask.serializeAttributes(BackupSessionTask.java:176)
at de.javakaffee.web.msm.BackupSessionTask.call(BackupSessionTask.java:110)
at de.javakaffee.web.msm.BackupSessionTask.call(BackupSessionTask.java:51)

at de.javakaffee.web.msm.BackupSessionTask.call(BackupSessionTask.java:110)
at de.javakaffee.web.msm.BackupSessionTask.call(BackupSessionTask.java:51)
at de.javakaffee.web.msm.BackupSessionService$SynchronousExecutorService.submit(BackupSessionService.java:346)
... 13 more
Caused by: java.lang.IllegalStateException: No thread-bound request found: Are you referring to request attributes outside of an actual web request, or processing a request outside of the originally receiving thread? If you are actually operating within a web request and still receive this message, your code is probably running outside of DispatcherServlet/DispatcherPortlet: In this case, use RequestContextListener or RequestContextFilter to expose the current request.
at org.springframework.web.context.request.RequestContextHolder.currentRequestAttributes(RequestContextHolder.java:131)
at org.springframework.web.context.request.SessionScope.get(SessionScope.java:90)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:328)
... 27 more

Mar 25, 2014 2:26:32 PM net.spy.memcached.MemcachedConnection addOperation
Original issue: http://code.google.com/p/memcached-session-manager/issues/detail?id=204

From martin.grotzke on March 27, 2014 00:41:35
Can you provide a simple spring app with a session scoped bean that I could use to debug this?

From<EMAIL_ADDRESS>on March 27, 2014 11:26:12
Hi Martin,
No more I getting this issue, please close this issue.
It was happening due to an error while getting a proxy instance in my code, after I correct the error in the code, now I'm able to see the msm logs are getting logged.
Thanks
Yoga

From martin.grotzke on March 27, 2014 13:10:56
Ok
Status: Invalid


fixes #80

Related Issues
#80
Description
We use mutation observer to observe when splide dom element gets removed from the dom before destroying the splide instance to avoid #80

@antonisntoulis I have the same issue too with my slide transition, the de-styled splide was shown during transition. Any workaround without changing Splide.vue?

@antonisntoulis I have the same issue too with my slide transition, the de-styled splide was shown during transition. Any workaround without changing Splide.vue?

Honestly, I would start with considering using some other carousel library like swiperjs, since splide seems abandoned.
As for a fix that doesn't include changing the sllide.vue, what I was able to do in a project was to watch what classes are removed when the slider is unmounted, usually the biggest change is the flex being removed and the slides becoming stacked one on top of the other, so apply a flex with css to your slide container.
After that the movement should be minimized but still visible, so you can fade out the slider using the onBeforeUnmount hook or something similar.
Hope I helped.

@antonisntoulis Did you end up switching to swiperjs or another library? I've tested swiper as well as others, and found that splidejs performance remains unmatched compared to other libraries, which is why I want to continue using it 😫

@antonisntoulis Did you end up switching to swiperjs or another library? I've tested swiper as well as others, and found that splidejs performance remains unmatched compared to other libraries, which is why I want to continue using it 😫

It's been a while since I last used a carousel library and I agree that sliderjs is so good, but considering it has been abandoned for almost a year it's probably wise to move on to something more actively maintained. I believe it might be a good time for a fork of Splidejs to appear.

@antonisntoulis Yup, I made a fork with minor changes I needed, like this issue here - It has vast enough functionality, that even without maintenance I imagine it'll work well for awhile. It's a shame it got abandoned... I hope it'll get revived eventually

This issue is my only gripe with this library with the Vue integration.
It does bring up a larger topic though, where perhaps Vue destroy / unmount hooks should be triggered after Vue transitions finish, as this isn't the only Vue library affected by this.
I was using vanilla Splide with Vue 2 for a long while, and used this mixin as a solution. Real shame to see this issue occur with the intended Vue 3 adaption after I've migrated over.
As a workaround, I'm patching the vue-splide library instead of forking and adding a quick n' dirty timeout prop. Eg:
  ...
  props: {
   delayUnmount: {
      default: 0,
      type: Number
    },
  },
  ...
  onBeforeUnmount( () => {
    setTimeout(() => {
      splide.value?.destroy();
    }, props.delayUnmount);
  });
  ...

<splide :delay-unmount="transitionDuration">

Be great to get an official fix though.


feat: Start Northstar properly detached

Simply run cmd with start "" "PATH/TO/NORTHSTAR_EXE"

Closes #20.
Can you provide a test case which highlights this feature?

On Windows 10 with main, no console appears at all; is it a big deal? Does it only appear with release builds?
On the other hand, I confirm using this branch properly shows content in a console window.

On Windows 10 with main, no console appears at all; is it a big deal? Does it only appear with release builds? On the other hand, I confirm using this branch properly shows content in a console window.

If you launch debug build of current main (without this PR) from console (i.e. by running npx tauri dev) that's expected cause then that console window acts as your console. If you launch it from a release build it will show the empty console.
In contrast this branch should always spawn Northstar + Northstar console window, regardless of debug or release builds ^^


why appliction version must be DNS naming convention

https://github.com/istio/istio/blob/f157c74ebfcf9693f5357787925ac91a3a0caf03/pilot/pkg/model/validation.go#L2126
Traffic Shifting
I want to use the format of 1.0.6 to divide my version; I think it should be allowed; Why not use a version number like 1.0.6 ?

Just trying to chase this up for you. Bear with me!

Because this name is used as the root of a config in DestinationRule.
I am not sure if YAML would complain when you use such things in the Destination rules. Secondly, these names are encoded as part of Envoy's cluster names and stats. So, having dots in the cluster name will lead to issues, since the stats are usually of the form clusterName.somestat.somevalue. We would end up converting the dots to underscores, which would confuse you when you look at the metrics dashboard.
DestinationRule
Host: foo.com
Subsets:
1.0.6:

loadBalancingPolicy...

I think this question has now been answered, please reopen if you have further questions.


chore: add release notes for v0.16.1

What this PR does / why we need it
Which issue(s) this PR fixes

Thats incorrect :D

we need to create a patch with https://github.com/open-component-model/ocm/actions/workflows/release-branch.yaml
We need to point it to a tag v0.16.1 and manually adjust the version file
We then need to press release on that?

First someone would need to create a branch based upon tag v0.16.0, then do cherry-pick the fix into the branch and then create a release based upon that new branch. That's how I understood the release process. Am I right @fabianburth / @mandelsoft ?


Rejection reason

It would be convenient if a postprocessor function could do something like:
function (data, location, reject) {
    return reject('custom rejection reason message');
}

Then the parse error that gets thrown could have a more useful message with helpful information to debug why something failed to parse.

I'm not sure I understand. Could you explain how the "rejection reason" would be accessible from the parse?
"Rejection" is not a way to signal a parse error: rather, it's a way to allow a rule to prevent itself from being matched in specific cases where there is ambiguity (e.g. you don't want "if" to match as a variable name because it's actually a keyword).

@Hardmath123 What's the 'correct' way to generate human-readable parsing errors with nearley?

"Parse failed at $last_token_lexical_location"
Or, if you're adventurous, "Parse failed at $last_token_lexical_location. Expected $expected_tokens" where you scrape $expected_tokens from the Earley table.

I'm really looking for better ways to provide useful error messages when a parse failed.  Let's use your example of if as a reserved word.  Suppose I had some source text like:
int if = 3;

At some point a postprocessor function checks the variable name against a list of reserved words and rejects it.  When there are no alternate valid parses, nearley's feed method throws an error.  The error object contains an offset property where the token was that failed to parse but no information as to why it failed to parse.  Instead of saying "Parse failed at offset 4.",  I'd rather say something like "Parse failed at offset 4 because the reserved word if is not allowed to be used as an integer name.".
  If there was another valid parse, obviously no error would be thrown and any rejection message should be discarded.  I'm sure there are other edge cases or internal implementation issues that I'm unaware of, so reject may not be the best API for this.  I'm not set on that API, just looking for anything to help with better error messages.

Right, I understand what you're trying to do. It's an interesting problem. But reject is not the solution. For example, what if multiple rules called reject when a parse failed? reject isn't about throwing an error, it's about signaling a very specific condition to the parser.
I think it comes down to the fact that "if is not allowed to be used as an integer name" is a bit too specific as far as parser-capable error messages go—it's not something a parser should know. The way this should go down, ideally, is that the tokenizer classifies "if" as a keyword, not as a variable name, and so the parse fails at that point because it literally cannot find a variable name token. In this case, your best shot at an error message is "Expected variable name but got keyword", which I can totally live with.
Maybe you need to give a more motivating example of a "useful error message".

@Hardmath123 Since we're not sure what to do about predicates, maybe we should consider this... if we're going to allow arbitrary code to modify the parse, I don't see why we can't allow it to raise errors! :P

@Hardmath123 Since we're not sure what to do about predicates, maybe we should consider this... if we're going to allow arbitrary code to modify the parse, I don't see why we can't allow it to raise errors! :P

...I'm not sure I like where this is going :S

True, Tim. But we want to be careful — there could be many reject messages thrown in a failed parse, so you need to know which one is the, for lack of a better term, is the "right wrong".
Error handling is fun!

there could be many reject messages thrown in a failed parse

True! I can't even think of a way to make sense of that. :P

Closing, since this is scary & it's not obvious to anyone what it should do!


Add React Developer Tools integration

This PR adds a module which provides support for using Preact with the React Developer Tools by emulating the renderer interface that React DOM exposes to the developer tools via __REACT_DEVTOOLS_GLOBAL_HOOK__.inject(...)
I have done a moderate amount of testing with the Chrome extension and the preact-www project, along with a few others. It could use additional testing with more complex projects.
Enabling the devtools integration is currently done by invoking the initDevTools() function:
import { initDevTools } from 'preact';

...

// Call this before first render() call
initDevTools();

Fixes #320
The implementation is in a separate module and only a few small hooks needed to be added to the Preact core, but the functionality is not yet exposed as a separate entry point. I could use a couple of pointers on how best to do that.

You should add a TypeScript definition, otherwise +1 from me.

@robertknight Sorry for just sitting on this for so long! I've been pondering how to get this in without bundling the shim into the prod build of Preact.  Might be worth using dev/prod builds, or providing the hooks but then splitting devtools into its own submodule:
import { initDevTools } from 'preact/devtools';

initDevTools();

@developit for anyone who uses rollup or the new version of webpack, the devtools code will be removed anyways.

@developit for anyone who uses rollup or the new version of webpack, the devtools
code will be removed anyways.

I think it would be best not to rely on tree shaking for this. Anyone using Browserify or older versions of Webpack would end up with unnecessary code in their bundles.

Might be worth using dev/prod builds, or providing the hooks but then splitting devtools into its own submodule:

Providing the hooks but moving the devtools into a submodule which is not included when importing preact's main exports via require("preact") (or the equivalent ES6 import) sounds good to me. So how about I:

Include the afterMount, afterUpdate, beforeUnmount hooks in the prod build?
Move devtools.js to devtools/index.js and remove the initDevTools re-export from src/preact.js?

Yup, that seems very reasonable. I'm super curious to see what the file size hit is for those three hooks. If it's too much, there might be a way to use a single VNode Hook to inject the others 🕵

I've moved the devtools integration/shim to a separate bundle, required via preact/devtools, so it can be loaded in a similar way to the aliases bundle.
The gzipped-size hit for the extra hooks is 0.04KB:
master: gzip size: 3843 / 3.84 kB
devtools branch: gzip size: 3880 / 3.88 kB

Awesome, that much less of a hit than I thought we'd be taking!

OK, status update:

The developer tools are now built as a separate UMD bundle, similar to aliases.js except that the core Preact code is imported rather than duplicated.
In a CJS/ES6 environment, you can do this:

import { initDevTools } from 'preact/devtools'
initDevTools();

In a tooling-free environment, you should be able to do this:
<script src="https://unpkg.com/preact/dist/preact.min.js"></script>
<script src="https://unpkg.com/preact/devtools.js"></script>
<script>
preactDevTools.initDevTools();
</script>

This is such an awesome release to celebrate 4,000 stars! Great job on it @robertknight!
P.S. would it be better if I opened a PR for a TypeScript definition?


VersionBot should wait a few seconds to ensure GH API matches sent status event

Sometimes, the GH API appears to not get the recently updated status changes. We need to delay a few seconds to give it a little more time to catch up.

Do we also need to leave a bit of a time-gap after detecting a new PR, to allow the person submitting the PR to apply the procbots/versionbot/no-checks label as necessary?

You can apply a label before the PR is even opened, so I would expect people to do this.

Hah, I didn't know that ;-)
Worth mentioning in (the spec pointed to by) https://github.com/resin-io/hq/pull/633 ?

Already in it: :)
"6. If, for some reason, VersionBot should not be used to automatically check commits for the Change-Type: semver tag, or to stop automatic PR merging, apply the procbots/versionbot/no-checks label to the PR."

Nah, it was specifically the "applying a label before the PR is even opened" bit I was referring to.
But given my lack of previous-label-usage, perhaps I'm unusual in not knowing that that's actually possible? (in this case, I guess it's effectively mandatory to apply the procbots/versionbot/no-checks label before opening the PR, if you want it to behave as expected)

This is essentially dead. We now work on all status events sent, which ensures that when GH catches up, we get triggered again because of the event.


Great project but where is react documentation?

Documentation is not very clear
How do we use this within react?
How do we call the package within react?
No mention of this

Hi @encryptblockr - Thanks for bringing up this suggestion. As it is today, the project doesn't have and needs any official port for React since there's nothing specific about setting up this library with React. Could you share if you're having problems connecting both? If so, I will use it to enhance a Troubleshooting doc using the library with React.
In any case, I'll provide a demo inside the demo/ folder when I have some time. I'll keep the issue open for tracking. Thanks again for the ask.

@encryptblockr You check the Guides, react-clipboard.js and/or others ways to use the library with react in the library wiki?


GPL-528	Add priority to sample to support CGaP Heron automated release

User story
GPL-528 | As a development team Laura, Rich C, Tom & Rich L we would like to add to an individual sample a priority to allow CGaP to release samples that we can then map this to a submissions priority (we inherit from highest on plate)
Who are the primary contacts for this story
Laura L
Tom W
Rich C
James M
James G
Acceptance criteria
See: https://ssg-confluence.internal.sanger.ac.uk/x/V6kKBg
What levels of priority do we want per sample?
0 will be used for non-Heron samples
Backlog (integer value of 1)
Surveillance (integer value of 2)
Priority (integer value of 3)

Dependencies
This story is blocked by the following dependencies:

#<issue_no.>
sanger/#<issue_no.>

Additional context
Add any other context or screenshots about the feature request here.

Dependencies
This story is requires x517 in the CGaP Backlog to completed before to releasing to UAT


Sitemap not showing pages as https

Hi,
We're using Piranha 2.2.5 with a MVC 5 project. Our whole site runs under https, but we've just noticed that the generated sitemap.xml list's every page as http, and think this is causing problems with google indexing the pages. I've look at what i can, but wanted to check if there are an config options to change this, so urls in the sitemap appear as https.
Thanks!
Matt

When I look at the code it looks like the sitemap handler will generate links on the same scheme as it was accessed. So if you call sitemap.xml on https the links should be generated for HTTPS. Can you check if this is the case or if there's something else wrong.
Regards

Thanks for getting back to me Håkan
I did notice this in the code too, but it's definitely being called from https, an example https://www.stepjockey.com/sitemap.xml
So i think it may be something else, but i'm not sure where to look next.
Thanks!
Matt

@tidyui sorry to ask again, but did you have any other thoughts on this? No worries if not, i'll take a closer look.

Sorry I've been extremely busy at work and haven't had the time to investigate further. My suggestion is that you take the file for the sitmap handler (which is just registered in web.config), copy to your own project, change namespace and register your version instead. This way you can see what happens and tweak it for your needs! You can find the file here:
https://github.com/PiranhaCMS/Piranha/blob/master/Core/Piranha/Web/Handlers/SitemapHandler.cs
Regards


Implement stack limit checks for AArch64

This commit implements the stack limit checks in cranelift for the
AArch64 backend. This gets the stack_limit argument purpose as well as
a function's global stack_limit directive working for the AArch64
backend. I've tested this locally on some hardware and in an emulator
and it looks to be working for basic tests, but I've never really done
AArch64 before so some scrutiny on the instructions would be most
welcome!
I also suspect that these stack limit checks aren't quite optimal, but they relatively closely match the x86 backend (which also isn't optimal), so for now I'm largely hoping for correctness as opposed to speed.
Closes #1569

Thanks for taking a look @cfallin! I definitely have some documentation to shore up no matter what :).
In any case I wanted to ask some questions about your comments. It sounds like you're thinking we should use vregs (which I presume is a virtual not-yet-allocated register, right?) for this stuff. I think that might be difficult though because prologue generation happens after register allocation. The saving grace, though, is that the registers used here in the prologue are only used during the prologue and never afterwards. Additionally I think that all caller-saved registers are available, not just the spilltmp one (that one just had a somewhat convenient name to pull from).
Does that make sense? I could also very well be missing something about how to plumb vregs in here.
I also don't mind writing more documentation about the stack limit support in cranelift. I didn't add documentation in my previous PR (boo) and would be happy to add some here which has notes about how this is implemented for each architecture's backend and how it's running at a unique time where register allocation/legalization aren't available.

So, one clarification: in the new backend, the prologue generation runs before register allocation. So we are free to allocate temp virtual registers (vregs) and use them if we need to. (I guess the old backend design didn't do it this way; I didn't study the reasoning for that in detail, but the current approach made things a lot simpler for us.) Given that, I think it would be best if we added just a little plumbing: alloc a vreg when calling gen_prologue() and pass it in (as a Writable<Reg>). Sorry for the confusion on this point!

(And, as a followup clarification to that, we made sure that the register allocator understands live ranges of both real regs and virtual regs, so it's totally OK to use a vreg and then later in the prologue, refer to a realreg like an argument register; the regalloc considers the real-reg live range when choosing where to allocate the vreg.)

Oh that's news to me! I'm a bit confused though because where gen_prologue is called takes a RegAllocResult which sounds like register allocation has already happened?

I believe gen_prologue is indeed run after regalloc.

@cfallin hm so given that register allocation runs before prologue/epilogue generation, do you think it'd be ok to shore up the documentation around these and say how they can use any caller-saved register and how we're doing manual register allocation because we generate the prologue so late?

Argh, OK, I was deeply confused yesterday; my apologies. (Many balls in the air now that we're tying-up-loose-ends...) You're correct, prologue generation happens after regalloc. I think that I was thinking about the other bits of ABI-generated instruction sequences (argument/retval copies) which use vregs freely.
Indeed, the prologue can use only real regs. So I think the best way forward is to use the spilltmp reg as you have, and then carefully document why it's safe -- between the def (computing the GV) and use (the check itself) no spills could have happened.

Ok I've tried to add some comments and such, as well as rebasing and uncommenting a few tests which now pass. Mind taking another looking @cfallin?

No worries at all! Thanks again for the review :)


Line detection and column segmentation update

Hi
I find your code snippet very useful. It worked well using Python codes, thank you. If I may ask, do you have this package available in C#. Have you tried implementing the C# wrapper for OpenCV named Emugu.CV for same package?

Hello,
I do not have experience with C# and I do not plan to develop the same package in other languages.


Dramatically improve server auth stuff

Old version (kind of embarrassing): We had multiple cookies, for the different kind of tokens we needed. Every time you hit the server on SSR paths, it would need to hit up Google to turn your custom token into an ID token and initialize the server-side SDK, which might take a quarter of a second.
New version: One cookie stores the internal persistent SDK state, which we can reload instantly on the server. The only thing that will ever take time is if we need to refresh the ID token, which is basically unavoidable.
The new version is really simple, not scary like how it used to be, so for more details just read the code. The only trick is the weird bit that reaches into the SDK to manipulate the persisted user.

@akrolsmir @jahooma if you remember the old server auth stuff you might want to glance at this to see what's the deal now.


Tables cannot be styled

There is currently zero style config for tables, which isn't ideal
They also look terrible

TableStyle has been created with #12


type 'Future' is not a subtype of type 'Future<Response>'

[VERBOSE-2:dart_error.cc(16)] Unhandled exception:
type 'Future<dynamic>' is not a subtype of type 'Future<Response<dynamic>>' where
  Future is from dart:async
  Future is from dart:async
  Response is from package:dio/src/Response.dart

#0      Dio._onError (package:dio/src/Dio.dart:526:12)
#1      Dio._makeRequest.<anonymous closure> (package:dio/src/Dio.dart:420:28)
#2      Dio._checkIfNeedEnqueue (package:dio/src/Dio.dart:554:22)
#3      Dio._makeRequest (package:dio/src/Dio.dart:416:35)
<asynchronous suspension>
#4      Dio._request.<anonymous closure> (package:dio/src/Dio.dart:316:16)
#5      Dio._checkIfNeedEnqueue (package:dio/src/Dio.dart:554:22)
#6      Dio._request (package:dio/src/Dio.dart:287:31)
<asynchronous suspension>
#7      Dio.request (package:dio/src/Dio.dart:270:12)
<asynchronous suspension>
#8      Dio.get (package:dio/src/Dio.dart:62:12)
#9      UserApi.getUser (package:saytoken_flutter/api/user_api.dart:12:31)
<asynchronous suspension>
#10     _LoginPageState.login (package:<…>
[VERBOSE-2:dart_error.cc(16)] Unhandled exception:
DioError [DioErrorType.DEFAULT]: type 'Future<dynamic>' is not a subtype of type 'Future<Response<dynamic>>' where
  Future is from dart:async
  Future is from dart:async
  Response is from package:dio/src/Response.dart
#0      Dio.resolve (package:dio/src/Dio.dart:112:21)
#1      Dio._onSuccess (package:dio/src/Dio.dart:509:18)
#2      Dio._makeRequest.<anonymous closure> (package:dio/src/Dio.dart:398:57)
#3      Dio._checkIfNeedEnqueue (package:dio/src/Dio.dart:554:22)
#4      Dio._makeRequest (package:dio/src/Dio.dart:393:33)
<asynchronous suspension>
#5      Dio._request.<anonymous closure> (package:dio/src/Dio.dart:316:16)
#6      Dio._checkIfNeedEnqueue (package:dio/src/Dio.dart:554:22)
#7      Dio._request (package:dio/src/Dio.dart:287:31)
<asynchronous suspension>
#8      Dio.request (package:dio/src/Dio.dart:270:12)
<asynchronous suspension>
#9      Dio.get (package:dio/src/Dio.dart:62:12)
#10     UserApi.getUser (package:saytoken_flutter/ap<…>

Hi, @wendux
I meet this issue with version 0.1.3, when I call dio.download method.
env:

dio: ^0.1.3
Flutter: Channel beta, v0.5.1

but version 0.0.14 works fine.

@Yaxian  fixed, please update to 0.1.4  and try again.

在2.1.7版本中，使用lock并且使用泛型response则会导致类型不匹配错误，初步原因：

在980行enqueue这个函数并没有声明泛型类型。

@wendux 请查看下

I get this exception by simply returning: .catchError((error, stackTrace) => Future.error(error, stackTrace)).

get same error while calling dio.delete with lates dio package.
An error occurred. type 'Future<Response<dynamic>>' is not a subtype of type 'Response<dynamic>'

I was getting this error too, right after adding token refresh InterceptorsWrapper. I noticed that this error occurs when Dio is locked.
An error occurred. type 'Future<Response<dynamic>>' is not a subtype of type 'Response<dynamic>'
In order to fix it, I changed the signature of _dispatchRequest method inside Dio.dart from
FutureOr<Response<T>> _dispatchRequest<T>(RequestOptions options)
to
FutureOr _dispatchRequest<T>(RequestOptions options)
P.S. I have no idea what I'm doing :(

this error happens again in latest version of dio (v.3.0.10)

I ran into the same error when locked. Has anyone solved this error?

@eelishiram  This PR: https://github.com/flutterchina/dio/pull/1296 fixes this.


Problem installing Webview Shard on Mac

Problem installing Webview  for Crystal on Mac (shard)

OS: MacOS darwin/arm64
Version: Monterey 12.0.1 (Mac mini M1 chip)
Crystal 1.3.2 (2022-01-18)
LLVM: 13.0.0

When running shards install, I get the following error message:
of webview: make Failed postinstall of webview on make: c++ -c -o ext/webview.o -DWEBVIEW_COCOA=1 -DOBJC_OLD_DISPATCH_PROTOTYPES=1 -std=c++11 ext/webview.cc In file included from ext/webview.cc:2: ext/webview.h:576:10: error: no matching function for call to 'objc_msgSend'   return objc_msgSend("NSString"_cls, "stringWithUTF8String:"_sel, s);          ^~~~~~~~~~~~ /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/objc/message.h:63:1: note: candidate function not viable: requires 0 arguments, but 3 were provided objc_msgSend(void /* id self, SEL op, ... */ ) ^ In file included from ext/webview.cc:2: ext/webview.h:576:10: error: cannot initialize return object of type 'id' (aka 'objc_object *') with an rvalue of type 'void'   return objc_msgSend("NSString"_cls, "stringWithUTF8String:"_sel, s);          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ext/webview.h:583:14: error: no matching function for call to 'objc_msgSend'     id app = objc_msgSend("NSApplication"_cls, "sharedApplication"_sel);              ^~~~~~~~~~~~ /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/objc/message.h:63:1: note: candidate function not viable: requires 0 arguments, but 2 were provided objc_msgSend(void /* id self, SEL op, ... */ ) ^ In file included from ext/webview.cc:2: ext/webview.h:583:8: error: cannot initialize a variable of type 'id' (aka 'objc_object *') with an rvalue of type 'void'     id app = objc_msgSend("NSApplication"_cls, "sharedApplication"_sel);        ^     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ext/webview.h:584:5: error: no matching function for call to 'objc_msgSend'     objc_msgSend(app, "setActivationPolicy:"_sel,     ^~~~~~~~~~~~ /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/objc/message.h:63:1: note: candidate function not viable: requires 0 arguments, but 3 were provided objc_msgSend(void /* id self, SEL op, ... */ ) ^ In file included from ext/webview.cc:2: ext/webview.h:598:27: error: no matching function for call to 'objc_msgSend'                           objc_msgSend(msg, "body"_sel), "UTF8String"_sel));                           ^~~~~~~~~~~~ /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/objc/message.h:63:1: note: candidate function not viable: requires 0 arguments, but 2 were provided objc_msgSend(void /* id self, SEL op, ... */ ) ^ In file included from ext/webview.cc:2: ext/webview.h:597:51: error: no matching function for call to 'objc_msgSend'                       w->on_message((const char *)objc_msgSend(                                                   ^~~~~~~~~~~~ /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/objc/message.h:63:1: note: candidate function not viable: requires 0 arguments, but 2 were provided objc_msgSend(void /* id self, SEL op, ... */ ) ^ In file included from ext/webview.cc:2: ext/webview.h:603:21: error: no matching function for call to 'objc_msgSend'     auto delegate = objc_msgSend((id)cls, "new"_sel);                     ^~~~~~~~~~~~ /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/objc/message.h:63:1: note: candidate function not viable: requires 0 arguments, but 2 were provided objc_msgSend(void /* id self, SEL op, ... */ ) ^ In file included from ext/webview.cc:2: ext/webview.h:610:18: error: no matching function for call to 'objc_msgSend'       m_window = objc_msgSend("NSWindow"_cls, "alloc"_sel);                  ^~~~~~~~~~~~ /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/objc/message.h:63:1: note: candidate function not viable: requires 0 arguments, but 2 were provided objc_msgSend(void /* id self, SEL op, ... */ ) ^ In file included from ext/webview.cc:2: ext/webview.h:610:18: error: assigning to 'id' (aka 'objc_object *') from incompatible type 'void'       m_window = objc_msgSend("NSWindow"_cls, "alloc"_sel);                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ext/webview.h:611:18: error: no matching function for call to 'objc_msgSend'       m_window = objc_msgSend(                  ^~~~~~~~~~~~ /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/objc/message.h:63:1: note: candidate function not viable: requires 0 arguments, but 6 were provided objc_msgSend(void /* id self, SEL op, ... */ ) ^ In file included from ext/webview.cc:2: ext/webview.h:611:18: error: assigning to 'id' (aka 'objc_object *') from incompatible type 'void'       m_window = objc_msgSend(                  ^~~~~~~~~~~~~ ext/webview.h:619:19: error: no matching function for call to 'objc_msgSend'     auto config = objc_msgSend("WKWebViewConfiguration"_cls, "new"_sel);                   ^~~~~~~~~~~~ /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/objc/message.h:63:1: note: candidate function not viable: requires 0 arguments, but 2 were provided objc_msgSend(void /* id self, SEL op, ... */ ) ^ In file included from ext/webview.cc:2: ext/webview.h:621:17: error: no matching function for call to 'objc_msgSend'     m_webview = objc_msgSend("WKWebView"_cls, "alloc"_sel);                 ^~~~~~~~~~~~ /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/objc/message.h:63:1: note: candidate function not viable: requires 0 arguments, but 2 were provided objc_msgSend(void /* id self, SEL op, ... */ ) ^ In file included from ext/webview.cc:2: ext/webview.h:621:17: error: assigning to 'id' (aka 'objc_object *') from incompatible type 'void'     m_webview = objc_msgSend("WKWebView"_cls, "alloc"_sel);                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ext/webview.h:625:20: error: no matching function for call to 'objc_msgSend'                    objc_msgSend("NSNumber"_cls, "numberWithBool:"_sel, 1),                    ^~~~~~~~~~~~ /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/objc/message.h:63:1: note: candidate function not viable: requires 0 arguments, but 3 were provided objc_msgSend(void /* id self, SEL op, ... */ ) ^ In file included from ext/webview.cc:2: ext/webview.h:639:5: error: no matching function for call to 'objc_msgSend'     objc_msgSend(m_window, "setContentView:"_sel, m_webview);     ^~~~~~~~~~~~ /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/objc/message.h:63:1: note: candidate function not viable: requires 0 arguments, but 3 were provided objc_msgSend(void /* id self, SEL op, ... */ ) ^ In file included from ext/webview.cc:2: ext/webview.h:640:5: error: no matching function for call to 'objc_msgSend'     objc_msgSend(m_window, "makeKeyAndOrderFront:"_sel, nullptr);     ^~~~~~~~~~~~ /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/objc/message.h:63:1: note: candidate function not viable: requires 0 arguments, but 3 were provided objc_msgSend(void /* id self, SEL op, ... */ ) ^ In file included from ext/webview.cc:2: ext/webview.h:646:5: error: no matching function for call to 'objc_msgSend'     objc_msgSend("NSApp"_cls, "terminate:"_sel, nullptr);     ^~~~~~~~~~~~ /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/objc/message.h:63:1: note: candidate function not viable: requires 0 arguments, but 3 were provided objc_msgSend(void /* id self, SEL op, ... */ ) ^ fatal error: too many errors emitted, stopping now [-ferror-limit=] 20 errors generated. make: *** [ext/webview.o] Error 1

Updated webview.h to its latest version to fix the problem. Please use the updated version of this shard

My aplogies. I was using a old version of the Xcode command line.


About the structure of the code

Hi, When I try to run the test code, I found some errors of 'import' part in 'SNLI_disan/src/model/model_disan' because of the wrong path. So I must change the import code in order to run the code successfully. If the author can restructure the code or change the import code, it will be easier to run the code.
Thanks very much!

Hi, lidra,
When I run the code in both IDE and Terminal, I did not witness this problem. Could you detail you running env and the seting up?


feat: ydb.WithStackTrace() for wrapping errors

I hereby agree to the terms of the CLA available at: https://yandex.ru/legal/cla/?lang=en
Pull request type
Please check the type of change your PR introduces:

[ ] Bugfix
[x] Feature
[ ] Code style update (formatting, renaming)
[ ] Refactoring (no functional changes, no api changes)
[ ] Build related changes
[ ] Documentation content changes
[ ] Other (please describe):

Codecov Report
Patch coverage has no change and project coverage change: -0.03 :warning:

Comparison is base (bdb3e08) 41.21% compared to head (4099aa6) 41.19%.

:exclamation: Your organization is not using the GitHub App Integration. As a result you may experience degraded service beginning May 15th. Please install the Github App Integration for your organization. Read more.
Additional details and impacted files
@@            Coverage Diff             @@
##           master     #736      +/-   ##
==========================================
- Coverage   41.21%   41.19%   -0.03%
==========================================
  Files         172      172
  Lines       18677    18679       +2
==========================================
- Hits         7698     7694       -4
- Misses      10646    10652       +6
  Partials      333      333

Flag
Coverage Δ

go-1.17.x
40.96% <0.00%> (-0.01%)
:arrow_down:

go-1.19.x
41.25% <0.00%> (?)

go-1.20.x
41.25% <0.00%> (+0.02%)
:arrow_up:

macOS
41.17% <0.00%> (+0.20%)
:arrow_up:

ubuntu
41.19% <0.00%> (?)

unit
41.19% <0.00%> (-0.03%)
:arrow_down:

windows
?

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

errors.go
0.00% <0.00%> (ø)

... and 3 files with indirect coverage changes

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