fix(sdk): during file upload, handle Azure HTTP errors better

Description
When InternalApi.upload_file() tries to upload to Azure, and something goes wrong, it mis-handles the AzureError, masking it with an AttributeError, which is then not retried.
I demonstrated this by running a local server which 500ed every request, and forcing upload_file to (a) always go down the Azure code-path, and (b) hit my local server instead of the real Azure.
Code patch:
--- a/wandb/sdk/internal/internal_api.py
+++ b/wandb/sdk/internal/internal_api.py
@@ -1952,7 +1952,9 @@ class Api:
         response: Optional[requests.Response] = None
         progress = Progress(file, callback=callback)
         try:
-            if "x-ms-blob-type" in extra_headers and self._azure_blob_module:
+            if True:
+                import urllib.parse
+                url = urllib.parse.urlparse(url)._replace(scheme="http", netloc="localhost:8333").geturl()
                 self.upload_file_azure(url, progress, extra_headers)

What it currently does is try to access an attribute on the exception that doesn't exist:
Before:
~/s/client (main) $ python3 -c 'import wandb; wandb.init()'
<...snip...>
wandb: Waiting for W&B process to finish... (success).
wandb: ERROR Error uploading "wandb-metadata.json": CommError, 'Response' object has no attribute 'read'
wandb: ERROR Error uploading "requirements.txt": CommError, 'Response' object has no attribute 'read'
wandb: ERROR Error uploading "wandb-summary.json": CommError, 'Response' object has no attribute 'read'
wandb: ERROR Error uploading "config.yaml": CommError, 'Response' object has no attribute 'read'
wandb: Synced rosy-sun-6: https://app.qa.wandb.ai/spencerpearson-wandb/client/runs/3qxuh134
wandb: Synced 4 W&B file(s), 0 media file(s), 0 artifact file(s) and 0 other file(s)
wandb: Find logs at: ./wandb/run-20221129_142838-3qxuh134/logs

debug-internal.log:
2022-11-29 14:28:39,631 ERROR   Thread-16 :66791 [internal_api.py:upload_file():1927] upload_file exception http://localhost:8333/wandb-qa.appspot.com/spencerpearson-wandb/client/3qxuh134/wandb-metadata.json?Expires=1669847319&GoogleAccessId=wandb-qa%40appspot.gserviceaccount.com&Signature=ZSSbA%2BGsdR8%2BIs9RXyO5CpE5ue%2BGlo7ZTM668AC3zHRoAOCP29DvQPGgVX5IH0nwb72S5jzxn1wf%2B7OuS0RUeeS1gCrMLA%2B2OzParq4dNSzhy3V53J3S25d0qOmRNSmQjFEQXSyvezF4Ke%2BnhXpz4TfZoppchL2539JeleXoNipjOcgqpg3oZ%2FJPYH9DO%2Fao5pgVyAO8p2gD8bIDl5NK%2FF6QQw7CJf9tR7wIyvMYD4Ful7WfKpq6lhKekE6KtYaWJCIYu2xfbjPh9cxy8oe%2FJ38KpotEcJGG%2BLRAxsTfCo6Fkye%2B5twbqGURzAgaqgA4eIn4%2FzMNUuB6J8HFVXrtGA%3D%3D: Internal Server Error
ErrorCode:None
2022-11-29 14:28:39,631 ERROR   Thread-16 :66791 [internal_api.py:upload_file():1929] upload_file request headers:
2022-11-29 14:28:39,631 ERROR   Thread-16 :66791 [upload_job.py:push():146] Failed to upload file: /var/folders/wp/vvlmjhbd6q3gdr_l4grs6cyc0000gn/T/tmpq7d8gabjwandb/2a0zla6w-wandb-metadata.json
Traceback (most recent call last):
  File "/Users/pears/src/client/wandb/sdk/internal/internal_api.py", line 1874, in upload_file_azure
    client.upload_blob(
  File "/Users/pears/.pyenv/versions/example/lib/python3.9/site-packages/azure/core/tracing/decorator.py", line 78, in wrapper_use_tracer
    return func(*args, **kwargs)
  File "/Users/pears/.pyenv/versions/example/lib/python3.9/site-packages/azure/storage/blob/_blob_client.py", line 731, in upload_blob
    return upload_block_blob(**options)
  File "/Users/pears/.pyenv/versions/example/lib/python3.9/site-packages/azure/storage/blob/_upload_helpers.py", line 197, in upload_block_blob
    process_storage_error(error)
  File "/Users/pears/.pyenv/versions/example/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: Internal Server Error
ErrorCode:None

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Users/pears/src/client/wandb/sdk/internal/internal_api.py", line 1917, in upload_file
    self.upload_file_azure(url, progress, extra_headers)
  File "/Users/pears/src/client/wandb/sdk/internal/internal_api.py", line 1887, in upload_file_azure
    raise requests.exceptions.RequestException(e.message, response=response)
requests.exceptions.RequestException: Internal Server Error
ErrorCode:None

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Users/pears/src/client/wandb/apis/normalize.py", line 26, in wrapper
    return func(*args, **kwargs)
  File "/Users/pears/src/client/wandb/sdk/lib/retry.py", line 190, in wrapped_fn
    return retrier(*args, **kargs)
  File "/Users/pears/src/client/wandb/sdk/lib/retry.py", line 113, in __call__
    result = self._call_fn(*args, **kwargs)
  File "/Users/pears/src/client/wandb/sdk/internal/internal_api.py", line 1930, in upload_file
    response_content = e.response.content if e.response is not None else ""
  File "/Users/pears/.pyenv/versions/example/lib/python3.9/site-packages/requests/models.py", line 899, in content
    self._content = b"".join(self.iter_content(CONTENT_CHUNK_SIZE)) or b""
  File "/Users/pears/.pyenv/versions/example/lib/python3.9/site-packages/requests/models.py", line 828, in generate
    chunk = self.raw.read(chunk_size)
AttributeError: 'Response' object has no attribute 'read'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Users/pears/src/client/wandb/filesync/upload_job.py", line 137, in push
    self._api.upload_file_retry(
  File "/Users/pears/src/client/wandb/apis/normalize.py", line 62, in wrapper
    raise CommError(message, err).with_traceback(sys.exc_info()[2])
  File "/Users/pears/src/client/wandb/apis/normalize.py", line 26, in wrapper
    return func(*args, **kwargs)
  File "/Users/pears/src/client/wandb/sdk/lib/retry.py", line 190, in wrapped_fn
    return retrier(*args, **kargs)
  File "/Users/pears/src/client/wandb/sdk/lib/retry.py", line 113, in __call__
    result = self._call_fn(*args, **kwargs)
  File "/Users/pears/src/client/wandb/sdk/internal/internal_api.py", line 1930, in upload_file
    response_content = e.response.content if e.response is not None else ""
  File "/Users/pears/.pyenv/versions/example/lib/python3.9/site-packages/requests/models.py", line 899, in content
    self._content = b"".join(self.iter_content(CONTENT_CHUNK_SIZE)) or b""
  File "/Users/pears/.pyenv/versions/example/lib/python3.9/site-packages/requests/models.py", line 828, in generate
    chunk = self.raw.read(chunk_size)
wandb.errors.CommError: 'Response' object has no attribute 'read'

What it should do is wrap the exception in a TransientError, which our retry logic will recognize:
After:
~/s/client (spencerpearson/azure-response-fix) $ python3 -c 'import wandb; wandb.init()'
<...snip...>
wandb: Waiting for W&B process to finish... (success).
wandb: Network error (TransientError), entering retry loop.
^C  (<-- it was hanging in the retry loop, as it should)

debug-internal.log:
2022-11-29 14:29:06,756 ERROR   Thread-17 :67613 [internal_api.py:upload_file():1968] upload_file exception http://localhost:8333/wandb-qa.appspot.com/spencerpearson-wandb/client/3dvsxpdc/requirements.txt?Expires=1669847345&GoogleAccessId=wandb-qa%40appspot.gserviceaccount.com&Signature=j4k9O9nLqSVaXVqXNfeIJWvLbHTbzMkKZO5NWG83gLpT%2B0viThchFlylHg%2Flv8iIL%2FvvnscOnCrOVNoHhbhcrkCxn1dull8J1MZVMpUOP8ZoeH6YUIroXyeXiVqjkCT4TOnuEaIPavVCplVzXlMW%2FNXbdwyOEy63HrncKmE3CBHCReJgGf4%2BKlFqKN55J2%2BdBhJVBPqCmhbZkIF6ZtIBadgoLPcPXJ%2FrZdpeTOFZhypfhDUd0x0mrEuby2YvaAXJmXTwmom%2BAmyuGPB0HmxuL7MR59v5F5z0pBs%2BVsXnugHoLlvw9wCDNYdzhc07wZKavkc8TECHR%2BFUuZnPMso4ig%3D%3D: Internal Server Error
ErrorCode:None
2022-11-29 14:29:06,756 ERROR   Thread-17 :67613 [internal_api.py:upload_file():1970] upload_file request headers:
2022-11-29 14:29:06,756 ERROR   Thread-17 :67613 [internal_api.py:upload_file():1972] upload_file response body: b''
2022-11-29 14:29:06,756 ERROR   Thread-17 :67613 [retry.py:__call__():154] Retry attempt failed:
Traceback (most recent call last):
  File "/Users/pears/src/client/wandb/sdk/internal/internal_api.py", line 1915, in upload_file_azure
    client.upload_blob(
  File "/Users/pears/.pyenv/versions/example/lib/python3.9/site-packages/azure/core/tracing/decorator.py", line 78, in wrapper_use_tracer
    return func(*args, **kwargs)
  File "/Users/pears/.pyenv/versions/example/lib/python3.9/site-packages/azure/storage/blob/_blob_client.py", line 731, in upload_blob
    return upload_block_blob(**options)
  File "/Users/pears/.pyenv/versions/example/lib/python3.9/site-packages/azure/storage/blob/_upload_helpers.py", line 197, in upload_block_blob
    process_storage_error(error)
  File "/Users/pears/.pyenv/versions/example/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: Internal Server Error
ErrorCode:None

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Users/pears/src/client/wandb/sdk/internal/internal_api.py", line 1958, in upload_file
    self.upload_file_azure(url, progress, extra_headers)
  File "/Users/pears/src/client/wandb/sdk/internal/internal_api.py", line 1928, in upload_file_azure
    raise requests.exceptions.RequestException(e.message, response=response)
requests.exceptions.RequestException: Internal Server Error
ErrorCode:None

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Users/pears/src/client/wandb/sdk/lib/retry.py", line 113, in __call__
    result = self._call_fn(*args, **kwargs)
  File "/Users/pears/src/client/wandb/sdk/internal/internal_api.py", line 1992, in upload_file
    raise _e.with_traceback(sys.exc_info()[2])
  File "/Users/pears/src/client/wandb/sdk/internal/internal_api.py", line 1958, in upload_file
    self.upload_file_azure(url, progress, extra_headers)
  File "/Users/pears/src/client/wandb/sdk/internal/internal_api.py", line 1928, in upload_file_azure
    raise requests.exceptions.RequestException(e.message, response=response)
wandb.sdk.lib.retry.TransientError: None
2022-11-29 14:29:06,782 ERROR   Thread-19 :67613 [internal_api.py:upload_file():1968] upload_file exception http://localhost:8333/wandb-qa.appspot.com/spencerpearson-wandb/client/3dvsxpdc/wandb-summary.json?Expires=1669847345&GoogleAccessId=wandb-qa%40appspot.gserviceaccount.com&Signature=rfZscEf6YY8tdBsRiqr%2BacDRS%2FndQAMWnSKoiHIkbFpXxHm4dSC5b%2Fsi4lPc7C5BpYH7YyuzBSnuI%2FbC0bnNzcBIaKNkNijgrwELr9tbDDPKs%2FLep5W0xxHN5Y5Vt%2BfsZCXb1QUqX%2BgFOI8TfXCJ1quagV7b1XJpig15VWOC1sBINsopYPrFCHmpSahJK6MzJSbX%2BevrwWpnNVK7nByrMfR5cOP6Gsazg7ANUCQyAlL9kYOOTHydyaZqj9%2BsmMCL%2FwB4jGGYdmvPIHkCEpReZtbXtQQy6%2BdecnPFtuqYsTqdno3mNV%2FMP0Pm8qzBrym32DBG9bI%2F7D0OOv35WWUxXw%3D%3D: Internal Server Error
ErrorCode:None
2022-11-29 14:29:06,782 ERROR   Thread-19 :67613 [internal_api.py:upload_file():1970] upload_file request headers:
2022-11-29 14:29:06,782 ERROR   Thread-19 :67613 [internal_api.py:upload_file():1972] upload_file response body: b''
2022-11-29 14:29:06,885 ERROR   Thread-18 :67613 [internal_api.py:upload_file():1968] upload_file exception http://localhost:8333/wandb-qa.appspot.com/spencerpearson-wandb/client/3dvsxpdc/config.yaml?Expires=1669847345&GoogleAccessId=wandb-qa%40appspot.gserviceaccount.com&Signature=hsR%2FQzH5OiRQOADhCZV1Z3cVziISY9txF3NhMuu2A3%2FpW8v6I6SuudXnYk9gKObvAXPltze3aGkPrpvDCR9C%2FgEPpIjuhOjLJ6ePvk0psRsEaTmmAj1CbswAv8zavUvdb1fFGD5fpyk%2FB37%2FZ3ZpdAAxfh4XjFHUqqk084RDKuir3jpcfTP49iymvw11kVPpSIVYTd%2Bow7hmXd8X4zkLNeGki3VIpcTsow6GvOnaPdG6h21vqEchiilqNy%2Bg17glcyqm14aeVaQoHBzhm1ETsLo4ZgooEaCeLnedv2i66u4RMC%2Fj6C%2Fn5diHWwY2n8OPsF0iShrkF0s5Uykuv7n0%2BA%3D%3D: Internal Server Error
ErrorCode:None
2022-11-29 14:29:06,885 ERROR   Thread-18 :67613 [internal_api.py:upload_file():1970] upload_file request headers:
2022-11-29 14:29:06,885 ERROR   Thread-18 :67613 [internal_api.py:upload_file():1972] upload_file response body: b''
2022-11-29 14:29:07,722 DEBUG   HandlerThread:67613 [handler.py:handle_request():139] handle_request: poll_exit
2022-11-29 14:29:07,722 DEBUG   SenderThread:67613 [sender.py:send_request():317] send_request: poll_exit
2022-11-29 14:29:08,242 ERROR   Thread-16 :67613 [internal_api.py:upload_file():1968] upload_file exception http://localhost:8333/wandb-qa.appspot.com/spencerpearson-wandb/client/3dvsxpdc/wandb-metadata.json?Expires=1669847344&GoogleAccessId=wandb-qa%40appspot.gserviceaccount.com&Signature=SElDRod5qOtx07KCuqWO2JDwDBjp%2FG4%2BOgn6u2bsptiDjtx%2BJW%2Bsd1bomR5zvQCfdiQnhJ9%2F9OJHmyZvIgzO93Zq1NHyWOUTsCpTLy9MkVz8rmXikECJHMoRyj74pmQD2isNyyi4xuOfmX5oCA6HazVQe3imPEyon1xdhb4Cq529LDMGT8efkMuphPPJGVRUu%2BbqARxzD1EN1KEkSWxZsLMXE7ECPjZ9x5dLSu8aMQ4mPTQeMWW%2Bg9QBDGAc%2FvF2Eky2%2F9oEeIbQhV5mbhI56bEp6YV4OYutsGQQdSb58pHB6habGU1GFB%2F21qc40F5FmJZhbJGo6QmXz5%2BecMtHKA%3D%3D: Internal Server Error
ErrorCode:None
2022-11-29 14:29:08,242 ERROR   Thread-16 :67613 [internal_api.py:upload_file():1970] upload_file request headers:
2022-11-29 14:29:08,242 ERROR   Thread-16 :67613 [internal_api.py:upload_file():1972] upload_file response body: b''
2022-11-29 14:29:08,724 DEBUG   HandlerThread:67613 [handler.py:handle_request():139] handle_request: poll_exit
2022-11-29 14:29:08,724 DEBUG   SenderThread:67613 [sender.py:send_request():317] send_request: poll_exit
2022-11-29 14:29:08,890 ERROR   Thread-19 :67613 [internal_api.py:upload_file():1968] upload_file exception http://localhost:8333/wandb-qa.appspot.com/spencerpearson-wandb/client/3dvsxpdc/wandb-summary.json?Expires=1669847345&GoogleAccessId=wandb-qa%40appspot.gserviceaccount.com&Signature=rfZscEf6YY8tdBsRiqr%2BacDRS%2FndQAMWnSKoiHIkbFpXxHm4dSC5b%2Fsi4lPc7C5BpYH7YyuzBSnuI%2FbC0bnNzcBIaKNkNijgrwELr9tbDDPKs%2FLep5W0xxHN5Y5Vt%2BfsZCXb1QUqX%2BgFOI8TfXCJ1quagV7b1XJpig15VWOC1sBINsopYPrFCHmpSahJK6MzJSbX%2BevrwWpnNVK7nByrMfR5cOP6Gsazg7ANUCQyAlL9kYOOTHydyaZqj9%2BsmMCL%2FwB4jGGYdmvPIHkCEpReZtbXtQQy6%2BdecnPFtuqYsTqdno3mNV%2FMP0Pm8qzBrym32DBG9bI%2F7D0OOv35WWUxXw%3D%3D: Internal Server Error
ErrorCode:None
2022-11-29 14:29:08,890 ERROR   Thread-19 :67613 [internal_api.py:upload_file():1970] upload_file request headers:
2022-11-29 14:29:08,890 ERROR   Thread-19 :67613 [internal_api.py:upload_file():1972] upload_file response body: b''
2022-11-29 14:29:09,143 ERROR   Thread-17 :67613 [internal_api.py:upload_file():1968] upload_file exception http://localhost:8333/wandb-qa.appspot.com/spencerpearson-wandb/client/3dvsxpdc/requirements.txt?Expires=1669847345&GoogleAccessId=wandb-qa%40appspot.gserviceaccount.com&Signature=j4k9O9nLqSVaXVqXNfeIJWvLbHTbzMkKZO5NWG83gLpT%2B0viThchFlylHg%2Flv8iIL%2FvvnscOnCrOVNoHhbhcrkCxn1dull8J1MZVMpUOP8ZoeH6YUIroXyeXiVqjkCT4TOnuEaIPavVCplVzXlMW%2FNXbdwyOEy63HrncKmE3CBHCReJgGf4%2BKlFqKN55J2%2BdBhJVBPqCmhbZkIF6ZtIBadgoLPcPXJ%2FrZdpeTOFZhypfhDUd0x0mrEuby2YvaAXJmXTwmom%2BAmyuGPB0HmxuL7MR59v5F5z0pBs%2BVsXnugHoLlvw9wCDNYdzhc07wZKavkc8TECHR%2BFUuZnPMso4ig%3D%3D: Internal Server Error
<...snip...>

Never mind! #4539 just yanks out the problematic logic altogether: our handling of the internal_response is busted, and the info we're trying to get out of it (the response content) shows up in e.message anyway.


Output wrong js and css via<EMAIL_ADDRESS>on windows10

Short description of the problem:
<EMAIL_ADDRESS>works fine for me.
But when updated to<EMAIL_ADDRESS>and ts 2.0.10 -> 2.2.1
the prod build output much smaller size main.js and main.css.
The output apk cannot run on my android phone.
What behavior are you expecting?
Steps to reproduce:
1.
2.
3.
insert any relevant code between the above and below backticks

Which @ionic/app-scripts version are you using?
1.2.0
Other information: (e.g. stacktraces, related issues, suggestions how to fix, stackoverflow links, forum links, etc)
I guess it must generate some file path that not compatible with windows.

Seems like I face the same problem: #841

Are you running angular 4? While this build supports TS 2.2, Angular 2 does not.
Thanks,
Dan

Fixed in 1.2.1. Thanks and sorry for the bug.
Note: If you're using Angular 2.x still requires TS 2.0.x and won't work with TS 2.2.x.
Thanks,
Dan

@danbucholtz works! Thanks!


[TASK] Sync longohorn/spdk codes with upstream codes

What's the task? Please describe
The most recent synchronization for longhorn/spdk occurred eight months ago, resulting in the current codes being out of sync.

This branch is 314 commits ahead of, 1478 commits behind spdk/spdk:master.

To maintain code consistency and leverage the bug fixes introduced in upstream codes, we should perform regular syncs, and each feature owner are responsible for maintaining or backporting the codes.

Task
Owner
Status

Code base regular sync
@DamiaSan

Raid
@DamiaSan

Lvol flush
@DamiaSan

Lvol actual size
@DamiaSan

Lvol shallow copy
@DamiaSan

Lvol xattr
@derekbit

Lvol fragmap
@derekbit

Describe the sub-tasks

Additional context

cc @shuo-wu @innobead

@derekbit @shuo-wu @DamiaSan need to make sure downstream cherry-picks all to the new spdk branch. Please update the status here individually. Thanks.

I am already working on it, for this first time I wanted to cherry picks all our downstream commits, also Shuo's and Derek's ones. Is this fine for you?

Subtask #7578

New branch created: https://github.com/longhorn/spdk/tree/longhorn-v24.01

@DamiaSan Please update the pipeline status of the issue.

@DamiaSan Please update the pipeline status of the issue.

It is Closed


do anko and it's preview tools support android studio 3.0 preview?

Fixed in 0.10.2 with c685e07256673f144d788c51865c6a42e13da120


Cover not failing, but not uploading

Nothing is making it through, even stashdb ones aren't getting to the final template.

Did you get any error messages? It's working for me, so I'll need some more info to know what's going wrong.

Partially addressed in 8bceea6. This commit allows the script to print the specific error message received from the image host to the console.

I've made an update that I think will fix this, in commit 37a3dac (webp branch, not main).  Can you try it with that and let me know if it works? It should convert the image to a gif and upload that.


Darwin build

This PR adds a darwin build for the discovery tool. It also adds an archive for it.
I also needed to add the allow_different_binary_count: true option so it only contains the discovery and not the discoveryd binary, else goreleaser is complaining with error:
release failed after 8.75s error=invalid archive: 0: archive has different count of built binaries for each platform, which may cause your users confusion. Please make sure all builds used have the same set of goos/goarch/etc or split it into multiple archives

I am not building the discoveryd binary because 1. I don't need it, and 2. it causes build errors:
release failed after 38.49s error=failed to build for darwin_amd64: # github.com/postfinance/discovery/internal/cmd/server
internal/cmd/server/exporter.go:48:15: one.Lock undefined (type *single.Single has no field or method Lock)
internal/cmd/server/exporter.go:53:16: one.Unlock undefined (type *single.Single has no field or method Unlock)

and I'm too lazy to fix it :)

Pull Request Test Coverage Report for Build 773485835

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 55.905%

Totals

Change from base Build 770413558:
0.0%

Covered Lines:
1174

Relevant Lines:
2100

💛  - Coveralls


How to customize detect camera frame?

Dear team,
I hope you are fine and doing well.
It's not a issue but just a request,
Could you help to implment the  customize detect camera frame with blur background as qr_code_scanner package have?
This package is working fine, but it should have that customize detect camera frame which it's more better.
Thank you!

@DJTB The scanner will still scan the entire area however. What's really needed is for the scanner to only scan the selected area from the camera frame.

With version 3.0.0-beta.4 you can use an custom scanning area like shown in the example app: https://github.com/juliansteenbakker/mobile_scanner/blob/master/example/lib/barcode_scanner_window.dart
Please note that this is still a beta so there can be breaking changes in the near future.


why did the py ones get removed?

title

Still needs to be readded.

bcz it's gay

import json
def convert_json_to_python_classes(json_path, output_path):
with open(json_path, 'r', encoding='utf-8') as file:
data = json.load(file)
with open(output_path, 'w', encoding='utf-8') as file:
    for class_name, class_content in data['client.dll']['classes'].items():
        file.write(f"class {class_name}:\n")
        fields = class_content.get('fields', {})
        if not fields:
            file.write("    pass\n\n")
        else:
            for field_name, offset in fields.items():
                hex_offset = hex(offset)
                file.write(f"    {field_name} = {hex_offset}\n")
            file.write("\n")

json_path = 'client_dll.json'
output_python_path = 'output.py'
convert_json_to_python_classes(json_path, output_python_path)
use this file to convert client_dll.json -> client_dll.py

import json

def convert_json_to_python_classes(json_path, output_path):
    with open(json_path, 'r', encoding='utf-8') as file:
        data = json.load(file)

    with open(output_path, 'w', encoding='utf-8') as file:
        for class_name, class_content in data['client.dll']['classes'].items():
            file.write(f"class {class_name}:\n")
            fields = class_content.get('fields', {})
            if not fields:
                file.write("    pass\n\n")
            else:
                for field_name, offset in fields.items():
                    hex_offset = hex(offset)
                    file.write(f"    {field_name} = {hex_offset}\n")
                file.write("\n")

json_path = 'client_dll.json'
output_python_path = 'output.py'
convert_json_to_python_classes(json_path, output_python_path)

use this python code to convert client_dll.json -> client_dll.py

import json

def convert_json_to_python_classes(json_path, output_path):
    with open(json_path, 'r', encoding='utf-8') as file:
        data = json.load(file)

    with open(output_path, 'w', encoding='utf-8') as file:
        for class_name, class_content in data['client.dll']['classes'].items():
            file.write(f"class {class_name}:\n")
            fields = class_content.get('fields', {})
            if not fields:
                file.write("    pass\n\n")
            else:
                for field_name, offset in fields.items():
                    hex_offset = hex(offset)
                    file.write(f"    {field_name} = {hex_offset}\n")
                file.write("\n")

json_path = 'client_dll.json'
output_python_path = 'output.py'
convert_json_to_python_classes(json_path, output_python_path)

use this python code to convert client_dll.json -> client_dll.py

Allraidy made a fix myself but thx anyway 😅


Add support for external logging configuration

Enhancement
Currently, the Log4J configuration is hardcoded using a code-based static template.
This is not ideal because of the limited configuration options as seen in the documentation on managing audit logs:

StarRocks stores its audit logs in the local file fe/log/fe.audit.log rather than an internal database. The plugin AuditLoader allows you to manage audit logs directly within your cluster. Once installed, AuditLoader reads logs from the file, and loads them into StarRocks via HTTP PUT. You can then query the audit logs in StarRocks using SQL statements.

For example, for audit logs, rather than writing to a local file and reingest that into the database, we sometimes want to use other plugins or instrumentation such as OpenTelemetry.
It should be possible to specify a file-based configuration instead.

@malthe will you be willing to contribute on this?

@kevincai will try to find time to do so.

@kevincai will try to find time to do so.

@malthe thanks, please let me know if you need any help.


Source.scss -> Target.min.css

Is your feature request related to a problem? Please describe.
I want to be able to define the name of the output file.
I am happy to PR this
Describe the solution you'd like
[Obselete]
SourceFolder and TargetFolder
in favour of
Source and Target parameters.
Check if the parameters are directories or files and follow appropriate logic.
Any of the following should be able to work
{
  "SourceFolder": "Styles",
  "TargetFolder": "wwwroot/css",
  "Arguments": "--style=compressed",
}

{
  "Source": "Styles",
  "Target": "wwwroot/css",
  "Arguments": "--style=compressed",
}

{
  "Source": "Styles/MudBlazor.scss",
  "Target": "wwwroot/MudBlazor.min.css",
  "Arguments": "--style=compressed",
}

Describe alternatives you've considered
Renaming file after MSBuildTask completes but this over complicates the project file.
Dart SASS already does this natively
Additional context
Add any other context or screenshots about the feature request here.

Another design could be SourceTargetPairs []
Its not my use case but is more flexible.
{
    "SourceTargetPair": [
    {
     "Source": "Styles/MudBlazor.scss",
     "Target":  "wwwroot/MudBlazor.min.css"
     },
    {
     "Source": "Styles/MudBlazor1.scss",
     "Target":  "wwwroot/MudBlazor1.min.css"
     }]
  "Arguments": "--style=compressed",
}

Hi @mikes-gh,
We directly pass the arguments to the dart-sass executable that does the conversion and creates the .css file. This does however mean that if you use a folder as the source you can't specify the resulting filename. You currently can already specify a filename for both SourceFolder and TargetFolder and I think that should work the same, however I agree it is confusing to have Folder in the setting.
I've wanted to allow multiple source/target folders/files so I think the approach in the last comment, at that point we can also allow different arguments per folder (and have the arguments outside of the pairs be the default if it is not specified for a specific pair).  I'll try to create something for this in the coming days.

You currently can already specify a filename for both SourceFolder and TargetFolder and I think that should work the same, however I agree it is confusing to have Folder in the setting.

AFAICS Specifying a filename gives an error that its not a folder.  It would be great if I could compile direct to a min.css filename as currently I have to add a target in my build for that and its a bit messy

would you accept a PR for the SourceTargetPairs design or SourceTarget?

Or an even simpler PR for MinifiedFileExtension?

Hi @mikes-gh, We directly pass the arguments to the dart-sass executable that does the conversion and creates the .css file. This does however mean that if you use a folder as the source you can't specify the resulting filename. You currently can already specify a filename for both SourceFolder and TargetFolder and I think that should work the same, however I agree it is confusing to have Folder in the setting.
I've wanted to allow multiple source/target folders/files so I think the approach in the last comment, at that point we can also allow different arguments per folder (and have the arguments outside of the pairs be the default if it is not specified for a specific pair). I'll try to create something for this in the coming days.

@sleeuwen We are going to create this feature in our own fork since as we need it now.  I would be happy to contribute it back to the original repo and use that as my preference would be to continue to support this excellent body of work.  Let me know if you're interested.


Don't send an empty "to" address when estimating gas for the constructor

Sending a empty "to" address when estimating the gas usage of the contract constructor returns the following error (from geth at least):

invalid argument 0: hex string has length 0, want 40 for common.Address in

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@1fb7762). Click here to learn what that means.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master     #105   +/-   ##
=========================================
  Coverage          ?   88.66%
  Complexity        ?      665
=========================================
  Files             ?       47
  Lines             ?     1464
  Branches          ?        0
=========================================
  Hits              ?     1298
  Misses            ?      166
  Partials          ?        0

Impacted Files
Coverage Δ
Complexity Δ

src/Contract.php
81.41% <ø> (ø)
94 <0> (?)

Continue to review full report at Codecov.

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

@amateescu Thanks for this PR!


Fix issue with statefulsets and replicas in CI

It appears that when there are multiple replicas on a statefulset it can cause CI to fail. For an example, see https://k8s-gubernator.appspot.com/build/kubernetes-jenkins/pr-logs/pull/charts/3141/pull-charts-e2e/5015/
First, It's a StatefulSet with a desire for 3:
I0131 21:28:43.657] RESOURCES:
I0131 21:28:43.657] ==> v1beta1/StatefulSet
I0131 21:28:43.657] NAME                             DESIRED  CURRENT  AGE
I0131 21:28:43.658] mongodb-5015-mongodb-replicaset  3        1        1s
I0131 21:28:43.658]
I0131 21:28:43.658] ==> v1/ConfigMap
I0131 21:28:43.658] NAME                                   DATA  AGE
I0131 21:28:43.658] mongodb-5015-mongodb-replicaset        1     1s
I0131 21:28:43.658] mongodb-5015-mongodb-replicaset-tests  1     1s
I0131 21:28:43.659]
I0131 21:28:43.659] ==> v1/Service
I0131 21:28:43.659] NAME                             TYPE       CLUSTER-IP  EXTERNAL-IP  PORT(S)    AGE
I0131 21:28:43.659] mongodb-5015-mongodb-replicaset  ClusterIP  None        <none>       27017/TCP  1s

When the first pod comes up it's seen as all pods are up and ready to test:
W0131 21:29:16.425] + PODS_FOUND=1
W0131 21:29:16.425] + echo 'mongodb-5015-mongodb-replicaset-0   0/1       Running   0         33s'
W0131 21:29:16.426] + grep -v Running
W0131 21:29:16.427] + echo 'INFO: All pods entered the Running state'

Notice, the number of pods is just 1.
Once passed the ready check we can see that a second pod is starting but we're past the waiting...
W0131 21:29:27.191] + kubectl get pods --namespace pr-3141-5015
I0131 21:29:27.463] NAME                                READY     STATUS    RESTARTS   AGE
I0131 21:29:27.463] mongodb-5015-mongodb-replicaset-0   1/1       Running   0          44s
I0131 21:29:27.463] mongodb-5015-mongodb-replicaset-1   0/1       Pending   0          6s
W0131 21:29:27.564] + kubectl get svc --namespace pr-3141-5015
I0131 21:29:27.829] NAME                              CLUSTER-IP   EXTERNAL-IP   PORT(S)     AGE
I0131 21:29:27.829] mongodb-5015-mongodb-replicaset   None         <none>        27017/TCP   45s

eventually helm test times out...
W0131 21:29:28.691] + helm test mongodb-5015
I0131 21:29:29.303] RUNNING: mongodb-5015-mongodb-replicaset-test
I0131 21:34:29.466] ERROR: timed out waiting for the condition
W0131 21:34:29.567] Error: 1 test(s) failed

The CI should wait until all the replicas are ready before declaring everything ready to test.
cc @viglesiasce @unguiculus

Nice coincidence. I've already fixed this: #3509

Ah, just noticed it's about my PR we discussed yesterday. ;)

@unguiculus this also impacts a PR from thockin. Same chart, though.

I think I may be experiencing this same issue on the CouchDB chart.
https://github.com/kubernetes/charts/pull/4528
https://k8s-gubernator.appspot.com/build/kubernetes-jenkins/pr-logs/pull/charts/4528/pull-charts-e2e/7374/

@tedmiston This is not related. In your PR, not a single pod becomes ready.

Closing this as fixed.
/close


test: split unit/functional tests and reduce project bootstrap boilerplate

PR Checklist

[x] A description of the changes is added to the description of this PR.
[ ] If there is a related issue, make sure it is linked to this PR.
[ ] If you've fixed a bug or added code that should be tested, add tests!
[ ] Documentation in docs is updated

Description of changes
Split tests into 2 directories to better separate unit tests that test the internal methods of the project and functional tests that test the output of the CLI based on inputs.
The PR also reduces the boilerplate and duplication of project bootstrap by defining reusable fixtures that reuse a single method whose purpose is to bootstrap a temporary test environment.

I won't lie, https://github.com/fpgmaas/deptry/pull/350/commits/ab7e67d35652f903b20a244ef6e571072d63bade makes me eager to drop support for Python 3.7 entirely before its official end of life. This is tracked down in https://github.com/fpgmaas/deptry/issues/351.


Run go mod tidy as part of GitHub actions

Make sure go.mod and go.sum match the current source in the module.

/cc @bradfitz


Hide payments smaller than 0.01 XLM by default.

I'm hiding payments smaller than 0.01 XLM by default now. This will help with the spam problem.

I like this better than the memo behind an icon

@jedmccaleb me too!

It won't solve the phishing problem (some people will still follow the links in the memos). I think #55 is better.


Create App from Manifest

Implemented GitHub application flow
Rewrite save, handler logic

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

5 of 46 (10.87%)  changed or added relevant lines in 2 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.1%) to 25.123%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

internal/env/scm.go
0
7
0.0%

internal/env/load.go
5
39
12.82%

Totals

Change from base Build<PHONE_NUMBER>:
-0.1%

Covered Lines:
2654

Relevant Lines:
10564

💛  - Coveralls

Codecov Report

Merging #730 (9dd74d3) into master (c46e517) will increase coverage by 0.28%.
The diff coverage is 59.49%.

@@            Coverage Diff             @@
##           master     #730      +/-   ##
==========================================
+ Coverage   22.77%   23.06%   +0.28%
==========================================
  Files          79       80       +1
  Lines       10141    10214      +73
==========================================
+ Hits         2310     2356      +46
- Misses       7525     7550      +25
- Partials      306      308       +2

Flag
Coverage Δ

unittests
23.06% <59.49%> (+0.28%)
:arrow_up:

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

Impacted Files
Coverage Δ

internal/env/scm.go
23.80% <0.00%> (-17.37%)
:arrow_down:

internal/env/load.go
68.29% <50.00%> (+7.76%)
:arrow_up:

internal/env/save.go
72.58% <72.58%> (ø)

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


word-wrap not included

I have a project using tachyons 4.9.0, and when I tried to use the word-wrap class, it doesn't do anything. So, I checked and those classes are in the src folder but not in the css/tachyons.css file, so not installed through npm. Not sure if any other files are missing.

Just checked src/tachyons.css and __word-break.css seems to be the only file missing

Ping @johno

Can we get this in?

The partial was meant to be deleted. Not recommended to use that module as it is inconsistent across browsers.


Material parameter sensitivities

This is a work in progress for computing sensitivities of a quantity of interest defined by an adjoint load with respect to linear elastic material parameters, specifically the shear an bulk modulus. This will be cleaned up substantially when we convert the solid mechanics module to the new Functional machinery.

ping @sethwatts @goxberry @pmm14006

Codecov Report

Merging #519 (da7445a) into develop (6d63be6) will decrease coverage by 1.88%.
The diff coverage is 4.30%.

:exclamation: Current head da7445a differs from pull request most recent head 827a635. Consider uploading reports for the commit 827a635 to get more accurate results

@@             Coverage Diff             @@
##           develop     #519      +/-   ##
===========================================
- Coverage    95.42%   93.53%   -1.89%
===========================================
  Files           81       83       +2
  Lines         4397     4489      +92
===========================================
+ Hits          4196     4199       +3
- Misses         201      290      +89

Impacted Files
Coverage Δ

...rc/serac/coefficients/sensitivity_coefficients.cpp
0.00% <0.00%> (ø)

...rc/serac/coefficients/sensitivity_coefficients.hpp
0.00% <0.00%> (ø)

.../serac/physics/materials/hyperelastic_material.cpp
68.23% <0.00%> (-19.65%)
:arrow_down:

.../serac/physics/materials/hyperelastic_material.hpp
75.00% <ø> (ø)

src/serac/physics/solid.hpp
100.00% <ø> (ø)

src/serac/physics/solid.cpp
88.62% <14.28%> (-6.82%)
:arrow_down:

Continue to review full report at Codecov.

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


Simplify Socket lifetimes

PacketBuffer currently requires 2 different lifetimes for metadata and payload buffers. This causes a lot of cascading complexity causing Sockets to require 2 lifetimes and SocketSet to require 3 (!) lifetimes.
I can't think of any usage requiring 2 separate lifetimes in PacketBuffer. (ie something you could do with separate lifetimes but can't do with just 1).
This PR removes it, yielding a nice simplification of lifetimes everywhere :)

Are you completely sure? Our examples don't test no_std lifetimes nearly enough.

Are you completely sure? Our examples don't test no_std lifetimes nearly enough.

Yes!
With the new code, when creating a PacketBuffer with buffers that could have different lifetimes (for example, one 'static and one ``foo), its 'alifetime becomes the smaller lifetime, which is'foo. The end result is the PacketBuffer can only live for 'foo`.
With the previous code, the PacketBuffer would get 'a = 'static and 'b = 'foo'. The struct can only live for the min of all its lifetime params. The end result is the PacketBuffer can only live for 'foo, again.
The only way single-vs-multiple lifetimes can make a difference is if there are APIs to "take out" the &muts, or to "move" them somewhere else that's not the struct. If there's a single lifetime, all the &muts are "downgraded" to the smallest lifetime because the information is "lost", if there are multiple each individual lifetime is kept. We don't have such APIs in PacketBuffer or Socket though.

Yes!
With the new code, when creating a PacketBuffer with buffers that could have different lifetimes (for example, one 'static and one ``foo), its 'alifetime becomes the smaller lifetime, which is'foo. The end result is the PacketBuffer can only live for 'foo`.
With the previous code, the PacketBuffer would get 'a = 'static and 'b = 'foo'. The struct can only live for the min of all its lifetime params. The end result is the PacketBuffer can only live for 'foo, again.
The only way single-vs-multiple lifetimes can make a difference is if there are APIs to "take out" the &muts, or to "move" them somewhere else that's not the struct. If there's a single lifetime, all the &muts are "downgraded" to the smallest lifetime because the information is "lost", if there are multiple each individual lifetime is kept. We don't have such APIs in PacketBuffer or Socket though.

I also think similar simplifications can be made for Interface and SocketSet too.

I also think similar simplifications can be made for Interface and SocketSet too.

I thought it was necessary, but it seems like I misunderstood exactly how lifetimes work.

I thought it was necessary, but it seems like I misunderstood exactly how lifetimes work.


Base

Base uses very low GWEI so we need to use it as WEI all the time
https://github.com/voltix-vault/voltix/issues/155
Refactoring EVM so it can support all L1 and L2.

I've added all layer 2
On my tests:
Arbitrum:
Send ETH OK
Send ARB - OK
Optimism:
Send ETH OK
Sedn OP OK
Base:
Send ETH OK
Send USDC OK
Matic:
Send MATIC OK
Send WETH Fixing
BSC:
SEND BNB OK

0x0eA1aeFcB85ae573f0B7CD20AD6D980Cf55ea4d8
BASE tests:
https://basescan.org/address/0x0eA1aeFcB85ae573f0B7CD20AD6D980Cf55ea4d8
BNB tests:
https://bscscan.com/address/0x0eA1aeFcB85ae573f0B7CD20AD6D980Cf55ea4d8
Arbitrum tests:
https://arbiscan.io/address/0x0eA1aeFcB85ae573f0B7CD20AD6D980Cf55ea4d8
Optimism tests:
https://optimistic.etherscan.io/address/0x0eA1aeFcB85ae573f0B7CD20AD6D980Cf55ea4d8
Polygon tests:
https://polygonscan.com/address/0x0eA1aeFcB85ae573f0B7CD20AD6D980Cf55ea4d8


Support getting diff from two commits

Is it possible to get diff data from two commits?

Not quite sure what you are looking for here, but if you want to compare two revisions you can use tree.diff():
const to = await repo.getCommit(toRevision);
const toTree = await to.getTree();

const from = await repo.getCommit(fromRevision);
const fromTree = await from.getTree();

const diff = await toTree.diff(from);

This is somewhat equivalent to git diff fromRevision..toRevision.

Not quite sure what you are looking for here, but if you want to compare two revisions you can use Tree#diff():
const from = await repo.getCommit(fromRevision);
const fromTree = await from.getTree();

const to = await repo.getCommit(toRevision);
const toTree = await to.getTree();

const diff = await toTree.diff(fromTree);

This is somewhat equivalent to git diff fromRevision..toRevision.

Problem solved. thank you


Create a button for switching between light mode and dark mode

DaddyLaugh
Problem:
People "need" dark mode in all websites nowadays
Solution:
A simple button click wherein user can switch to dark mode for the website

Hi, please assign this to me

Hello, Please assign this to me.


"Remember this device for 30 days" feature

One of the more useful features of common sites that use 2FA is that they provide an option to remember the device as a trusted device.  Users are still prompted to log in with their username and password when the session ends, but the 2FA prompt won't be shown over and over again.
Seems like this would be different from the rememberable option in Devise, because users would always be prompted for username and password.
I didn't see anything in the documentation, so wanted to reach out and see if this has been done or if it is being worked on.  If not, I can take this on and submit as a PR.

@nlively can you submit a PR please?

Wondering how to implement this in 2022.

Here is how we implemented "Don't ask 2FA code for 30 days" on our web site. When the user is logged in with two-factor code, we first generate a random token and store it a secure cookie. The hash of the cookie is then saved in user's record along with the token's expiration date:
token = SecureRandom.alphanumeric(32)
token_expires_at = Time.current + 30.days

cookies.encrypted[:dont_ask_2fa] = {
  value: token,
  expires: token_expires_at,
  same_site: :strict,
  httponly: true,
  secure: Rails.env.production?
}

user.dont_ask_2fa_token_hash = BCrypt::Password.create(token)
user.dont_ask_2fa_token_expires_at = token_expires_at
user.save(validate: false)

Next time user is presented with 2FA signin screen, we get the token back from the cookie and check if it corresponds to the hash in the database. If it does, the 2FA screen is bypassed and the user is signed in:
return false if user.dont_ask_2fa_token_expires_at < Time.current # Token has expired

token = cookies.encrypted[:dont_ask_2fa]
return false if token.nil?
BCrypt::Password.new(user.dont_ask_2fa_token_hash) == token

Please let me know if there are any security issues with this approach.

We have a similar implementation that uses a JSONB column (default: []) to store a list of token/expiry pairs. This allows multiple devices to be trusted simultaneously. The array is "cleaned" of expired tokens before use.
You might want to set a limit on the number of trusted devices, and/or delete a token cookie that cannot be matched (it could belong to another user).


[WIP] Use @nteract/tranforms

A initial stab at using @nteract/tranforms as a replacement for transformime in order to address #557, #560, #27 and #368 and support even more mimetypes.

[x] Use @nteract/tranforms for inspector (the easy part 😄 )
[ ] In order to use @nteract/tranforms we need to refactor the following parts as React Components:

[ ] Result View probably powered by @nteract/display-area

[ ] Spinner component
[ ] Component for inline result
[ ] Component for multiline result
[ ] Component for rich output (I think we could even remove it and use the multiline output for simplicity and to have a more consistent appearance)

[ ] Watch Sidebar

[ ] Watch View component

There's quite a bit of work left to do and I don't know when I can get to it, so I'm parking it here 🚗
It would be super cool if someone wants to help with this effort 😇

I aimed a bit high in this PR 😄
In my last commit I took a different approach to the problem and used @nteract/transforms as a drop-in replacement of transformime without any refactoring.
This way we can iterate on this and can use all the awesome transforms right now:

Now we can easily add support for more mime types or even use @nteract/transforms-full if apm handles the install nicely (one transform has node-canvas as a native but optional dependency which may cause install problems).
I propose we go with this as is and move the refactorings into the future.
It would be cool if someone could take this branch for a spin since there may some minor style glitches I didn't caught.


correctly detect test build target on Windows

Tested on Windows and Linux

@btab This seems like a reasonable change to me, can you open PRs on our other project to address this and git for bash issues in general. It would be for all our libraries. You can tool through the ponylang repos and find them there are 6 or 7 I think.
I'm removing the changelog label because this doesn't count as a library end user facing change.


feat: update wagmi viem rainbowkit

[!WARNING]
This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

#46
#45
#44
#43  👈
#42
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @jakim929 and the rest of your teammates on  Graphite


Export spot counts

This PR adds a new plugin that can be used to write total spot counts per timepoint to a CSV file
Resolves #73

Good working code. But I feel like this doesn't really belong into mastodon-deep-lineage or any other project. It could be a jython script instead.

I disagree with the idea of the jython script, since this would be less convenient for users.
I agree with this not being strictly related to deep-lineage. For this reason, there is a Pull-Request in mastodon-tomancak: https://github.com/mastodon-sc/mastodon-tomancak/pull/55 The functionality may fit better there, since a similar function exists there already.

Closed in favor of: https://github.com/mastodon-sc/mastodon-tomancak/pull/55


A bug displaying boolean value

Hi,
I had some data like [{test:true},{test:true},{test:false}]
The True value could display well, but the false value was empty.
Could you check this?
Best,
Yang

Will be fixed on next version. Thanks 👍

Released on v2.5.7. Check it out~

Thanks so much!


NoEmptyCommentFixer - Only remove complete empty comment blocks

master version of;
@see https://github.com/FriendsOfPHP/PHP-CS-Fixer/pull/1941
I've changed the spec a bit to only complete empty comment blocks.
Started on master because of the comment with line break transformers are helping a lot...

Awesome work ! Thank you @SpacePossum
Please, could you rebase  and see my tiny comment ?

Thank you @SpacePossum.

@keradus this fix should be backported to 1.x, however if I cannot do this in time for 1.12 release maybe we should remove the fixer for the 1.x line.

I don't think we really need to backport. Just document the fixer behaviour has changed in the upgrading guide.

I don't see value for backporting this one as well, as it's sth in the middle of bugfix and specification update.
2.x in general change way of dealing with comments, so I don't see big need of describing this particular comment fixer change

very well, saves a lot of coding ^-^ thanks! :+1:


Refactor resource.

Current coverage is 93.56% (diff: 100%)

Merging #36 into master will increase coverage by 1.49%

@@             master        #36   diff @@
==========================================
  Files            13         18     +5
  Lines           378        466    +88
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
+ Hits            348        436    +88
  Misses           30         30
  Partials          0          0

Powered by Codecov. Last update 129a02a...a89d07c


[feature] Logging

Is your feature request related to a problem? Please describe.

Describe the solution you'd like

Describe alternatives you've considered

Additional context

loki ？

loki ？
Perhaps a solution
@runkecheng First research the field.

loki ？
Perhaps a solution
@runkecheng First research the field.

Use log agent like loki
Output mysql error log to file, use sidecar tail log file and rotate log.


Cannot use f64::round function

I'm not sure whether to report this on cargo-web or stdweb, but in any case, here is a reproducible test-case:
#[macro_use]
extern crate stdweb;

use stdweb::unstable::TryInto;

fn main() {
    let f: f64 = js!( return 10; ).try_into().unwrap();

    js! { @(no_return)
    	console.log(@{f.round()});
    }
}

Compile the above code with the wasm32-unknown-unknown target and then try running it. I get this runtime error:
Error loading Rust wasm module 'example': LinkError: WebAssembly Instantiation: Import #1 module="env" function="round" error: function import requires a callable
    at <anonymous>

I inspected the wasm, it looks like this:
https://gist.github.com/Pauan/a6c66b1c5c0a9722953dac98f41d130d
As you can see, the .wasm is importing a round function, but the .js file doesn't provide a round function. This might affect the other numeric operators as well.
Operating system: Windows 10 64-bit
rustc version: 1.26.0-nightly (9cb18a92a 2018-03-02)
cargo-web version: 0.6.8

Fixed.

@koute Thanks!


[BIA-1190]: Implement API to AMT parquet conversion - core collection - AcademicTimePeriodDim

Implement API to AMT parquet conversion - core collection - AcademicTimePeriodDim

There is something incorrect with the AcademicTimePeriodKey field.

If you see this, they all end with 20210823. This comes from the begin date 2021-08-23.
If you see the database, they have different dates:

20211004 -> 2021-10-04
20210823 -> 2021-08-23
20211108 -> 2021-11-08
I checked my json file for this endpoint, and this is what I have:

So, it seems to be that the problem is in your script, and not in my data, because these dates I see in my json file match the dates I see in my database.

There is something incorrect with the AcademicTimePeriodKey field.
 If you see this, they all end with 20210823. This comes from the begin date 2021-08-23.
If you see the database, they have different dates:
20211004 -> 2021-10-04 20210823 -> 2021-08-23 20211108 -> 2021-11-08
I checked my json file for this endpoint, and this is what I have:
So, it seems to be that the problem is in your script, and not in my data, because these dates I see in my json file match the dates I see in my database.

Just to clarify, these 3 last screenshots I attached belong to the gradingPeriods endpoint. That means that the beginDate you are using is the one from the sessions endpoint, but the one you should be using is the one from the gradingPeriods endpoint.
We have a method named get_reference_from_href to obtain the id value from a link/href reference.

You'll find many references to this method in the code. This will make easier the merge.


deps: replace mkdirp with {recursive} mkdir

only supported on Node.js 10+, marking as semver-major
Closes: #2084

@rvagg This need rebase.

ooops, I thought I'd dealt with this already
rebased and found another usage that wasn't caught previously


Update Meta “tags”

Automatically generated by Netlify CMS

👷 Deploy Preview for marvelous-muffin-87e6a3 processing.

Name
Link

🔨 Latest commit
7fd00c02bbc7c595f52a613e3c53f88cbca2d6a2

🔍 Latest deploy log
https://app.netlify.com/sites/marvelous-muffin-87e6a3/deploys/62931a10761c0e0009afe58d


[1.16.5] Crash on startup: mcjty.theoneprobe.api.ITextStyle.getAlignment

I've tried an existing world and a new world, both single-player, with and without spawnNote active in TOP's settings.
latest.log
crash-2021-07-19_10.32.58-server.txt
I added TOP as a dependency and repacked the JAR file for Resynth, and still got the same error and crash.
latest.log
crash-2021-07-24_12.41.17-server.txt
Additional context: TOP#499

Mod is no longer under development and has since been abandoned.


Prepend root_path to meta path in HttpWasmAssetReader

Objective
Fixes an issue where Bevy will look for .meta files in the root of the server instead of imported_assets/Default on the web.
Solution
self.root_path.join was seemingly forgotten in the read_meta function on HttpWasmAssetReader, though it was included in the read function.  This PR simply adds the missing function call.

async-executor just broke the wasm build right before I made this PR 😞
https://github.com/smol-rs/async-executor/issues/72


Checkbox is missing a ripple

The Checkbox widget is missing a ripple when toggled that is in the spec.

I think the checkbox's ink splash is correct.
Ripple-style splashes aren't the default however the Flutter Gallery is configured that way.
If you still think there's a problem, could you provide a screenshot that demos what doesn't match the spec?

Thanks for your contribution. Without additional information, we are unfortunately not sure how to resolve this issue. We are therefore reluctantly going to close this bug for now. Please don't hesitate to comment on the bug if you have any more information for us; we will reopen it right away!


Refresh token expiration

According to token refreshing code, while access token is refreshed, refresh token is always retrieved from env REFRESH_TOKEN (BTW env ACCESS_TOKEN is never used). It means when refresh token set in env REFRESH_TOKEN expired, the app will be down. Maybe we should add code to refresh refresh token (which is included in authApi response along with refresh_token according to doc) regularly to keep the authorization.

Fixed by PR #210


ci: action update

https://github.com/gogf/gf/issues/2276
szenius/set-timezone暂时还没支持，等他升级之后再改

Codecov Report
Base: 76.98% // Head: 76.97% // Decreases project coverage by -0.00% :warning:

Coverage data is based on head (31c2b40) compared to base (91b9487).
Patch has no changes to coverable lines.

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #2289      +/-   ##
==========================================
- Coverage   76.98%   76.97%   -0.01%
==========================================
  Files         583      583
  Lines       48441    48441
==========================================
- Hits        37290    37286       -4
- Misses       9132     9135       +3
- Partials     2019     2020       +1

Flag
Coverage Δ

go-1.15-386
77.01% <ø> (+0.04%)
:arrow_up:

go-1.15-amd64
76.99% <ø> (+<0.01%)
:arrow_up:

go-1.16-386
76.98% <ø> (+<0.01%)
:arrow_up:

go-1.16-amd64
76.99% <ø> (+0.04%)
:arrow_up:

go-1.17-386
77.01% <ø> (+0.01%)
:arrow_up:

go-1.17-amd64
77.04% <ø> (+0.03%)
:arrow_up:

go-1.18-386
76.92% <ø> (+0.02%)
:arrow_up:

go-1.18-amd64
76.93% <ø> (+0.04%)
:arrow_up:

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

Impacted Files
Coverage Δ

os/gfpool/gfpool_file.go
65.71% <0.00%> (-2.86%)
:arrow_down:

os/gfsnotify/gfsnotify_watcher.go
81.51% <0.00%> (-2.53%)
:arrow_down:

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

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


Duplicated geometry when importing .glb file

Godot version
v4.1.beta3.official [ada712e06]
System information
Godot v4.1.beta3 - Windows 10.0.22621 - Vulkan (Forward+) - dedicated NVIDIA GeForce RTX 3060 Ti (NVIDIA; <IP_ADDRESS>02) - 12th Gen Intel(R) Core(TM) i5-12600K (16 Threads)
Issue description
When importing an attached .blend file exported as .glb file, some of the triangles are duplicated. This effect appears as wrong light distribution and can be seen in overdraw debug view. All export and import setting are set as default. Exporting the same mesh to .dae or .obj works without problems.

Source .blend file attached.
corridor.zip
Steps to reproduce

Export .glb file from Blender.
Import to Godot and switch to overdraw debug view.

Minimal reproduction project
N/A

Unable to reproduce on Godot 3.5, 4.1 dev3, and 4.1 beta3, with glb, and both new and legacy obj. On Windows 11 and 1050 Ti

Sorry - my mistake - closing issue.


List comprehension instead of a loop

Tiny tweak

Thanks for the PR, however this reduces readability of the code and it does not reproduce the same behavior.

To complement @mthrok message, tests fail with this PR, see https://circleci.com/gh/pytorch/vision/129637?utm_campaign=vcs-integration-link&utm_medium=referral&utm_source=github-build-link for example

Hi @fmassa, thanks for this link to test. Hmm, i really can't figure out why would this PR change the previous behavior, do you have any suspicion?

@theonekeyg I think the difference now comes from the fact that is_valid_file(fname) is called on fname instead of path.


Guard against missing SubmitEvent API support

PR #283 switched to the SubmitEvent API for handling button transitions, but
there is no support for SubmitEvent in Safari.
This resulted in an exception being thrown when we try to access the event
submitter’s properties (as there is no submitter in Safari). In turn, this
interferes with the submission of the form itself.
This change guards against missing support, and uses the previous behaviour in
that case.

Good catch!


SV generation (simulation) of riscv_invalid_csr_test fails for the rv64gcv target

The randomization of assembly program invoked with command
python3 run.py --target=rv64gcv --test=riscv_invalid_csr_test  --steps gen
fails because of the constraint that cannot be fulfilled:
https://github.com/google/riscv-dv/blob/928d7067f48ad1361b3af586bc7c8316edac8a10/src/riscv_instr_gen_config.sv#L315
the problem is caused by the last clause:
https://github.com/google/riscv-dv/blob/928d7067f48ad1361b3af586bc7c8316edac8a10/src/riscv_instr_gen_config.sv#L325
The supported_privileged_mode is set in core setting file to MACHINE_MODE only:
https://github.com/google/riscv-dv/blob/928d7067f48ad1361b3af586bc7c8316edac8a10/target/rv64gcv/riscv_core_setting.sv#L27
However the  test scenario imported from rv64gc test list sets the boot_mode=u (USER_MODE)
https://github.com/google/riscv-dv/blob/928d7067f48ad1361b3af586bc7c8316edac8a10/target/rv64gc/testlist.yaml#L57-L67
If the boot_mode is set in config the randomization of init_privileged_mode variable is disabled:
https://github.com/google/riscv-dv/blob/928d7067f48ad1361b3af586bc7c8316edac8a10/src/riscv_instr_gen_config.sv#L590
and the fore mentioned constraint (working) as a checker cannot be fulfilled. There is no such problem for rv64gc target because in this case USER_MODE is supported:
https://github.com/google/riscv-dv/blob/928d7067f48ad1361b3af586bc7c8316edac8a10/target/rv64gc/riscv_core_setting.sv#L27
I'm not sure if the other privileged modes should be also enabled for rv64gcv like in case of rv64gc? Or just the "riscv_invalid_csr_test  " test should be disabled?

This is now fixed, thanks for reporting. RV64GCV target currently only enables machine mode.


using empty protocol in links is now a bad practice - long live https

See http://www.paulirish.com/2010/the-protocol-relative-url/ for more information. Relevant excerpt:

Now that SSL is encouraged for everyone and doesn't have performance concerns, this technique is now an anti-pattern.
If the asset you need is available on SSL, then always use the https:// asset.

Fixes #44

merge into master with e0653ddbad82bb07cc6f641d2ff9a763dcabeff1


ci: Remove failing Docker cleanup

Commit Message:
Additional Description:
Risk Level:
Testing:
Docs Changes:
Release Notes:
Platform Specific Features:
[Optional Runtime guard:]
[Optional Fixes #Issue]
[Optional Fixes commit #PR or SHA]
[Optional Deprecated:]
[Optional API Considerations:]

pushing through to fix CI


samples errors: 'I2SClass' does not name a type

Problem Description
in some of the samples you used I2SClass i2s; . all of them get 'I2SClass' does not name a type error. but with I2SStream they work.
and the rest of the codes are deprecated.
check them if you had time.
Device Description
esp32
Sketch
#include "ESP_I2S.h"
#include "BluetoothA2DPSink.h"

const uint8_t I2S_SCK = 5;       /* Audio data bit clock */
const uint8_t I2S_WS = 25;       /* Audio data left and right clock */
const uint8_t I2S_SDOUT = 26;    /* ESP32 audio data output (to speakers) */
I2SClass i2s;

BluetoothA2DPSink a2dp_sink(i2s);

void setup() {
    i2s.setPins(I2S_SCK, I2S_WS, I2S_SDOUT);
    if (!i2s.begin(I2S_MODE_STD, 44100, I2S_DATA_BIT_WIDTH_16BIT, I2S_SLOT_MODE_STEREO, I2S_STD_SLOT_BOTH)) {
      Serial.println("Failed to initialize I2S!");
      while (1); // do nothing
    }

    a2dp_sink.start("MyMusic");
}
void loop() {}

Other Steps to Reproduce
No response
Provide your Version of the EP32 Arduino Core (or the IDF Version)
Arduino Core 3.0.7
I have checked existing issues, discussions and online documentation

[X] I confirm I have checked existing issues, discussions and online documentation

I2SClass i2s is part of the Arduino I2S API.
If you are using a core < 3.0 you need to adapt the example it to the old Arduio I2S API since it has changed as well!
This is described in the README

I2SClass i2s is part of the Arduino I2S API. If you are using a core < 3.0 you need to adapt the example it to the old Arduio I2S API since this has changed as well! Have a look at the ESP32 I2S examples provided by Arduino!
This is described in the README

did you read the post? no! Arduino Core 3.0.7 and it is exactly your sample. i said if you have the time check them. if not, what is the point of reporting?

I tested in Arduino 3.1rc3 and 3.0.7 and for me it is working w/o issues.
Did you try to compile one of the I2S examples provided by Arduino

in Arduino example :
void setup() {
  // Create an instance of the I2SClass
  I2SClass i2s;

...

I2SClass i2s; is inside the setup, not outside.

Simple_tone.ino compiles w/o issue. What did you try ?

no. the problem was from #include "ESP_I2S.h" .
when inserting it, all works.

I don't understand: your example that you pasted above has this include!
If you read the comment is bt_music_receiver_arduino_i2s.ino, it clearly states that it is for  ESP32 I2S < 3.0.0


使用demo中的popup和预期效果不一致，请问这个是需要配置styles.less文件吗？

Bug Report or Feature Request (mark with an x)

[ x ] Bug report -> please search issues before submitting
[ ] Feature request
[ ] Documentation issue or request

Current behavior

Expected behavior

Environment

Angular version: 5.2.9

ngx-weui version: 3.0.0

Others:

我在ts文件中添加import { PopupComponent } from "ngx-weui/popup";浏览器报错can't resolve import { PopupComponent } from "ngx-weui/popup
然后我试着添加这个import { PopupComponent } from "../../node_modules/ngx-weui/popup/popup.component.d";也是can't resolve，请问这个component应该如何正确添加呢？

请尽可能通过 https://stackblitz.com/edit/ngx-weui 重现问题

https://stackblitz.com/edit/ngx-weui-5tn3yc
Can't find module:
ngx-weui/popup (@2.0.2)


Fix downloaded property access

When bitfield is not yet created, accessing downloaded property will throw an error.

Released as 0.71.1.


Issues with this documentation...

There are a few issues with this documentation...

The instructions show a Components folder in solution explorer where you can check if it already has nuget packages. However, Visual Studio for Mac has removed the Components folder, so this step cannot be followed.
After removing all XamarinComponentReference nodes from my project files, closing and reopening my solution in Visual Studio for Mac still gives the super annoying warning message about components. So these directions don't work at all and I'm stuck seeing this warning message constantly.

P.S. Whoever made the decision to show this warning message EVERY SINGLE TIME the solution is opened is not my friend. Putting in smarter logic like once/week would've been more reasonable, if the goal was to be annoying then you achieved it.

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

ID: f5e0d3ab-3d52-7966-34ac-f04236fe9d20
Version Independent ID: cc8fb372-39b4-7ec1-5911-1bfbed905daf
Content: Updating component references to NuGet - Xamarin
Content Source: docs/cross-platform/troubleshooting/component-nuget.md
Service: unspecified
GitHub Login: @asb3993
Microsoft Alias: amburns

@justintoth I've made some edits to the page to clarify.
Regarding still seeing the error messages, I've just tested it and was able to resolve by following the instructions. You can submit issues (if it continues to occur after you've removed the nodes) and product feedback at https://developercommunity.visualstudio.com/ (choose the relevant IDE/platform tab at the top).

You put a warning that the instructions only apply to older versions of Visual Studio for Mac, but don't provide instructions for the latest version of Visual Studio for Mac. Removing the XamarinComponentReference nodes from the proj files clearly isn't enough, as I'm still getting the warning. It seems like you'd want the documentation to be with the latest version, adding the warning isn't the right update to make to the documentation...

The only instructions that work in the latest IDE are at the top of the page - select the correct tab for your platform. I've left older instructions below, because many people do not upgrade immediately after a release, and may find them useful still.
I've tested them again today and the steps work for me. I'm sorry you're having issues with it - I'd strongly encourage you to raise an issue at Developer Community, especially if you can include the solution that is failing, so that it can be investigated and resolved.

How are we to determine which Components contain NuGet packages without having the Components UI?

How do I get replacements for paid components (without penalty) that you are making obsolete all of sudden?

@joehanna we have been messaging this to component vendors for a while now (even before the Nov 2017 announcement), and encouraging them to find alternate distribution mechanisms. I am not sure of the policies of any specific vendor, but I'd encourage you to reach out to them directly.
For product feedback, you can raise an issue on the Developer Community site.

Thanks for your response @conceptdev. My point is I have already paid Xamarin for the component and now I am forced to buy it again from the vendor.  This is unfair.

@joehanna You can still manually download the component from the store which you own and extract the .xam file (it's really just a .zip file) and reference the assemblies from the component directly.  There's nothing preventing you from keeping a copy of the component locally and using it forever this way.
Unfortunately, we can't really speak to the practices of this vendor - most vendors we've worked with have been happy to move existing customers over to new distribution mechanisms.  Is it possible the vendor is requesting you to pay since it's a newer version of the component than you originally purchased on the store?

Thanks @Redth.  Manually downloading the component works for me.
I tried reaching out to the vendor (Appracatappra) but was ignored.
Thanks for your help.


fix: environ might be missing

how it happened?
the environ is attached to WSGIRequestHandler object in run_wsgi method. But run_wsgi is only executed after the request is pasted in handle_one_request method. If request is pasted failed and try to send_error message. It will try to call address_string method to get the client address and raise the AttributeError(AttributeError: 'WSGIRequestHandler' object has no attribute 'environ')

:+1: please merge

yes having this issue too

Having the same issue. Please merge.

I will not merge this PR yet because it contains a few unrelated changes and
one nitpick is not resolved.
Stop the mindless +1.
On Sun, Feb 14, 2016 at 06:11:28AM -0800, Idan wrote:

Having the same issue. Please merge.

Reply to this email directly or view it on GitHub:
https://github.com/mitsuhiko/werkzeug/pull/838#issuecomment-183895489

These are hardly mindless +1's. these are real people who are really
having real trouble with this real problem.
Please fix it, or if you won't accept that pr explain what you want
precisely so someone can get it done today.
as is the sort of mindless focus on some arbitrary metric is far more
destructive than simply not fixing this issue, and then calling people
mindless because it hits them.
On 2/14/2016 10:17 AM, Markus Unterwaditzer wrote:

I will not merge this PR yet because it contains a few unrelated
changes and
one nitpick is not resolved.
Stop the mindless +1.
On Sun, Feb 14, 2016 at 06:11:28AM -0800, Idan wrote:

Having the same issue. Please merge.

Reply to this email directly or view it on GitHub:
https://github.com/mitsuhiko/werkzeug/pull/838#issuecomment-183895489

—
Reply to this email directly or view it on GitHub
https://github.com/mitsuhiko/werkzeug/pull/838#issuecomment-183931237.

if you won't accept that pr

I said yet. It doesn't help a bit to post :+1: s while the PR is in this state.

explain what you want precisely

I left a comment on the relevant line in the diff. The author has responded back, agreeing.

Then some other commits for totally unrelated issues got pushed into the same branch.

Please understand that Flask and Werkzeug get what feels like an endless amount of trivial one-line PRs, all supposedly fixing a problem the author has. They're often the wrong fix to a "bug" in some other library, or a workaround to incorrect usage of the APIs by the PR author.  To be fair, this doesn't seem to be the case here. The explanation the author gave seems somewhat logical, but please still write a testcase for this so I can sanely verify this bug.

Can't you just commit a line change in werkzeug\serving.py and submit the unrelated changes in another commit?
werkzeug\serving.py : line 266
    def address_string(self):         return self.environ['REMOTE_ADDR'] if getattr(self, 'environ', None) else 'localhost'

Lets continue talking about this one line and not merge it... Maybe the bug will get tired and stop raising exceptions.

Let's ignore what I wrote above too.

Good evening,
It seems that there is some back and forth going on here that I'll happily stay out of, except to say that I'm getting AttributeError: 'WSGIRequestHandler' object has no attribute 'environ' under Werkzeug 0.11.4 and Flask 0.10.1. The context is that I'm trying to force HTTPS using SSLify. I have not seen this issue prior to installing SSLify and trying this.
On a whim I modified werkzeug/serving.py as indicated above by @untitaker, and by @nathancahill in his commit, but that only made the traceback even more indecipherable. I'm guessing that I need this modification as part of a completely new install of Werkzeug?
Comments appreciated, thanks so much.

mindless +1
Also having this error, would appreciate any insight into manual solutions or a roadmap for how this bug will be squashed.
Thanks!

Let's see what we have:

One pull request that contains a fix for the apparently real, but insufficiently described issue, see #873
This pull request that contains a broken fix and a lot of unrelated changes.
A lot of mindless :+1:s
An extremely popular bug without anybody trying to present a reproducible testcase or example application.

petulance aside, I agree that the issue is abnormally absent of any MWE. Unfortunately, most of the instances in which I experience the issue involve foreign-born requests attempting csrf on my flask application. Try reproducing that without a lot of overhead!
In an attempt to be helpful (and hopefully lower your blood pressure a tad untitaker), here's what I do know:

anaconda python 3.5 64 bit
werkzeug 0.11.3
flask 0.10.1
vanilla ubuntu 14.04 LTS setup on digital ocean, no peripherals

I'll provide a traceback since the error is nearly entirely outside the scope of my application, and may thus be not entirely useless:
_Exception happened during processing of request from ('<IP_ADDRESS>', 51623)
Traceback (most recent call last):
File "/home/dev/anaconda3/lib/python3.5/socketserver.py", line 318, in _handle_request_noblock
self.process_request(request, client_address)
File "/home/dev/anaconda3/lib/python3.5/socketserver.py", line 344, in process_request
self.finish_request(request, client_address)
File "/home/dev/anaconda3/lib/python3.5/socketserver.py", line 357, in finish_request
self.RequestHandlerClass(request, client_address, self)
File "/home/dev/anaconda3/lib/python3.5/socketserver.py", line 684, in init
self.handle()
File "/home/dev/anaconda3/lib/python3.5/site-packages/werkzeug/serving.py", line 217, in handle
rv = BaseHTTPRequestHandler.handle(self)
File "/home/dev/anaconda3/lib/python3.5/http/server.py", line 415, in handle
self.handle_one_request()
File "/home/dev/anaconda3/lib/python3.5/site-packages/werkzeug/serving.py", line 251, in handle_one_request
elif self.parse_request():
File "/home/dev/anaconda3/lib/python3.5/http/server.py", line 327, in parse_request
"Bad request syntax (%r)" % requestline)
File "/home/dev/anaconda3/lib/python3.5/http/server.py", line 445, in send_error
self.log_error("code %d, message %s", code, message)
File "/home/dev/anaconda3/lib/python3.5/site-packages/werkzeug/serving.py", line 273, in log_error
self.log('error', *args)
File "/home/dev/anaconda3/lib/python3.5/site-packages/werkzeug/serving.py", line 279, in log
log(type, '%s - - [%s] %s\n' % (self.address_string(),
File "/home/dev/anaconda3/lib/python3.5/site-packages/werkzeug/serving.py", line 267, in address_string
return self.environ['REMOTE_ADDR']
AttributeError: 'WSGIRequestHandler' object has no attribute 'environ'

Please merge nathancahill's fix. Whether or not it's correct (it appears correct to me), it definitely addresses a statically-detectable bug in the code, and here's the evidence that it's a real-world improvement:
$ cd /tmp
$ virtualenv wz838env
$ ./wz838env/bin/pip install Flask
   ...
Successfully installed Flask-0.10.1 Jinja2-2.8 MarkupSafe-0.23 Werkzeug-0.11.4 itsdangerous-0.24
$ cat >hello.py
from flask import Flask
app = Flask(__name__)

@app.route("/")
def hello():
    return "Hello World!"

if __name__ == "__main__":
    app.run()
$ ./wz838env/bin/python hello.py &
[1] 7297
* Running on http://<IP_ADDRESS>:5000/ (Press CTRL+C to quit)
$ curl https://<IP_ADDRESS>:5000/
----------------------------------------
Exception happened during processing of request from ('<IP_ADDRESS>', 35302)
Traceback (most recent call last):
  ...
  File "/tmp/wz838env/local/lib/python2.7/site-packages/werkzeug/serving.py", line 266, in address_string
    return self.environ['REMOTE_ADDR']
AttributeError: 'WSGIRequestHandler' object has no attribute 'environ'
----------------------------------------
curl: (35) Unknown SSL protocol error in connection to <IP_ADDRESS>:5000
$ kill %1
[1]+  Terminated              ./wz838env/bin/python hello.py
$ cat fix838.patch
diff -ur a/wz838env/lib/python2.7/site-packages/werkzeug/serving.py b/wz838env/lib/python2.7/site-packages/werkzeug/serving.py
--- a/wz838env/lib/python2.7/site-packages/werkzeug/serving.py	2016-03-22 16:08:39.917903000 +0000
+++ b/wz838env/lib/python2.7/site-packages/werkzeug/serving.py	2016-03-22 16:16:54.605901875 +0000
@@ -263,7 +263,10 @@
         return BaseHTTPRequestHandler.version_string(self).strip()

     def address_string(self):
-        return self.environ['REMOTE_ADDR']
+        if getattr(self, 'environ', None):
+            return self.environ['REMOTE_ADDR']
+        else:
+            return ''

     def log_request(self, code='-', size='-'):
         self.log('info', '"%s" %s %s', self.requestline, code, size)
$ cat fix838.patch | (cd wz838env/ && patch -p2)
$ ./wz838env/bin/python hello.py &
$ curl https://<IP_ADDRESS>:5000/
 - - [22/Mar/2016 16:23:53] code 400, message Bad request version ('X\x93(kI')
 - - [22/Mar/2016 16:23:53] "
                                 �m�1"�29T\f)��	X�(kI" 400 -
curl: (35) error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol

@tlynn Thank you, that's an example I can reproduce.

Also, y'all are using the development server in production, which is not a good idea. See the Flask deployment docs in master for a detailed explanation.

0.11.5 is out with this fix.


Is there a plan to validate the clarity of iris?

Is there a plan to validate the clarity of iris?
Context

Firmware Version:
Operating System:
SDK version:
Toolchain version:

Expected Behavior
The algorithm can validate the clarity of iris or ir-image.
Current Behavior
For unclear iris images, the algorithm can also work, but the final codes are not valuable.
Such as the following image:

The result of this image processed by the algorithm is:
Geometries:

Normalized iris:

Final iris template:

Hi @EliteWeapon !
This is a good point, iris recognition systems do need a form of image sharpness verification to ensure that it makes sense to process the image.
On the Orb, we have a dedicated model that takes care of that. We don't have clarity on the timeline for its open-sourcing, so I cannot commit to anything here.
However it would be super useful for the community to have a form of image sharpness verification, regardless of this other model. I can see plenty of ways to do so: Mean image gradient magnitude, Convolution-based methods (see appendix of John Daugmann's paper), Contrast estimation, etc.
This would be a great first contribution to get familiar with open-iris, impactful for the project and I think the method in the paper above is rather straightforward. @EliteWeapon are you interested to contribute ?


updated usage example

I tried to follow the usage example outlined at https://dib-lab.github.io/kSpider/, but the instructions no longer work. Specifically, the indexing step seems to have changed from kSpider index_kmers... to kSpider index, with many of the arguments in the example no longer options to the new command. Would you be willing to provide updated instructions for how to cluster with kSpider? My use case is clustering isoforms in a de novo transcriptome when we have no knowledge of which genes each isoform/contig encodes. All of my transcripts are in a single FASTA file and I would like to predict which encode the same isoforms by clustering.

hi! I just wanted to check in again and see if this is something you could provide guidance on. Due to changes in the CLI I wasn't able to figure out how to run kSpider to cluster transcripts by shared k-mers. I'm super excited by the initial results you shared and would love to try it on more data

Hi, thanks for your interest in kSpider! I appreciate your patience on this issue, and I will update it as soon as possible with clear instructions on how to use the dev branch on this project to cluster your sequences. As the project's emphasis has recently shifted towards clustering large datasets rather than individual sequences, this might involve some development time to resolve the issue. Thank you!

Thanks for the update @mr-eyes! I look forward to trying it out when you have the time to put it together!

Hi Mo, i just wanted to circle back around on this and see if you have any bandwidth for this issue any time soon. I built another transcriptome today and experienced simultaneous deep loathing for how im clustering isoforms currently and excitement that I could potentially use this approach. I know you're busy but I just wanted to check in.
If you don't have bandwidth any time soon, do you think it is possible to do this type of clustering with sourmash (either the CLI or the python API)? I was very excited by the results you shared with me in slack about this type of approach as a proof of concept that the approach works.

Hi @taylorreiter
I am very sorry for not following up on the issue; I am swamped with my Ph.D.
I believe Branchwater can tackle this with its efficient brute force approach with a scale of 1. The pairwise command is implemented in branchwater here https://github.com/sourmash-bio/sourmash_plugin_branchwater/pull/181
You will need to create a signature for every protein/isoform for the input signatures, and branchwater can efficiently work on them. You can also use https://github.com/sourmash-bio/sourmash_plugin_branchwater/pull/198 for downstream clustering analysis or https://github.com/sourmash-bio/sourmash_plugin_branchwater/pull/234
Please let me know if you have further questions.

@ctb @bluegenes Do have better approaches instead of having a signature for every sequence?

No (not yet), but the next branchwater plugin release will be able to sketch singletons to make things faster!

@taylorreiter I/we would love your feedback if you try out pairwise --> cluster in the branchwater plugin, though.
A couple tips:

use the pairwise --write-all option to make sure you keep all sketches, otherwise pairwise will not write entries with no similarity with other sketches (meaning we lose access to sketches that would end up as singleton "clusters")
use pairwise --ani if you want to cluster by ANI instead of containment/jaccard/etc

No (not yet), but the next branchwater plugin release will be able to sketch singletons to make sketching faster, at least

@taylorreiter, then you can write a signature for every sequence through the Sourmash API, and then Branchwater can handle it from here.

@taylorreiter I/we would love your feedback if you try out pairwise --> cluster in the branchwater plugin, though.
A couple tips:

use the pairwise --write-all option to make sure you keep all sketches, otherwise pairwise will not write entries with no similarity with other sketches (meaning we lose access to sketches that would end up as singleton "clusters")
use pairwise --ani if you want to cluster by ANI instead of containment/jaccard/etc

@bluegenes I didn't understand why you need to keep edgeless nodes. Could you please elaborate on why this could be a problem in sparse comparisons?

Oh, I got it; you mean single-node clusters.

@mr-eyes it's really just a question of your output expectation. I was wanting all of my original sequences to be represented in the "clusters" output, whether they are singletons or part of a larger cluster. If we are just using the original pairwise output, sketches with no similarity to any other sketch are not represented in the output file.
Then, when we run cluster from this output file, I keep the 'singletons' that show up, but where similarity did not pass threshold for connecting via an edge. But then the output is missing any singletons that were not in the pairwise output.

Oh, I got it; you mean single-node clusters.

yep!

Thank you both! I think I should be able to try this approach out next week! I think Mo showed that clustering with kSpider using a threshold of 16 (if I'm interpreting some graphs he shared with me correctly)...and I'm assuming the threshold here means containment of 16% of k-mers. Is this something that sourmash can do now, cluster by containment threshold? (I'll read the docs next week, but I wasn't aware that sourmash had that functionality!)

@taylorreiter Yes, branchwater can do that. The columns you will get in the output include containment and max_containment. Once you have the pairwise connections (edges), you can use the cluster command to get the clusters through the weakly_connected_components algorithm or the script I shared in this PR to get a distance matrix.
However, I also recommend exploring the community detection ideas here https://github.com/sourmash-bio/sourmash_plugin_branchwater/issues/252

Maybe a related issue https://github.com/sourmash-bio/sourmash/issues/2816


Separate laravel from the main package to allow extensibility for other frameworks

https://packagist.org/packages/kabangi/mpesa-laravel


Initializing mhenni.txt

Will add more quotes w the help of fciprian soon

https://github.com/genesixx/coalibot/pull/23


Question: 'await' is a keyword?

In ES2016 spec, await is reserved as a keyword in Modules.
But this spec seems to not change Keywords/FutureReservedWords productions.
Is await a keyword or not?

AFAIK, it's reserved so that in a future edition (like ES2017), when async function lands, await will be allowed at the top-level of ES modules.

await is a keyword in Modules, so things like let await = 1 are always an error in Modules. For legacy reasons, await must be allowed as an identifier in Scripts, so its keywordness is keyed off a grammar parameter that makes it a keyword in certain contexts (namely, async functions) and identifiers everywhere else. I might suggest that awiat is more of a pseudo-keyword than an actual keyword.

Thank you for the answer!
Sorry, my question is about FutureReservedWord production.
Even if this spec is applied, does await still remain in FutureReservedWord, or it will move into Keyword production since await keyword is used in this feature?
In the spec, await remains in FutureReservedWord.
I'd like to make sure.


Improve area/body_shape_entered/exited signals parameter names and doc

This is improving the documentation (and, I believe, the signal templates) for these signals:

area_shape_entered
area_shape_exited
body_shape_entered
body_shape_exited

Here are the improvements, I made a separate commit per improvement:

Some doc used body_id or area_id instead of the _rid that is written elsewhere
I added a _index suffix to the  body_shape, area_shape and local_shape parameters. This has 2 benefits:

More intuitive when reading the name
Allows to then use var body_shape: Node = body.shape_owner_get_owner(body_shape_index). Before, body_shape would have been taken by the int parameter.

Added code to get the actual node from those _index arguments.
It took me a while to find it when I needed it, and when I did, I wasn't sure if that was valid for more recent Godot versions until I tried it.

All of those changes would also be great improvements for Godot 3.3 documentation (and maybe farther back, but I am not familiar with older versions)

Sure, squashing is done.

Thanks for the squash and fixup!

All of those changes would also be great improvements for Godot 3.3 documentation (and maybe farther back, but I am not familiar with older versions)

It is IMO unlikely to be backported to 3.x as all these changes break compatability by changing method signatures, which we generally try to avoid in minor releases AFAIK.
(This PR is somewhat relevant to https://github.com/godotengine/godot/issues/16863)

Added the change and squashed everything together

Congrats on your first merged PR.
Please let me know if you're up for doing the 3.x version, otherwise I can take care of it.

Thanks! Some file names are also different, but I think that should be it.


Reordered to put features first follwed by DCR and then Bugs

Docs Build status updates of commit 6e4fe5d:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs/release-notes/NuGet-5.1-RTM.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.