GIT-521: add support for sanic framework

What does this pull request do?
Replacement for https://github.com/elastic/apm-agent-python/pull/522
Related issues
closes #521
Todo

[x] Unit Tests
[x] Minor Refactoring
[x] Documentation

:grey_exclamation: Build Aborted

The PR is not allowed to run in the CI yet

the below badges are clickable and redirect to their specific view in the CI or DOCS

Expand to view the summary

Build stats

Build Cause: Pull request #1056 opened

Reason: The PR is not allowed to run in the CI yet

Start Time: 2021-03-01T08:26:40.029+0000

Duration: 3 min 3 sec

Commit: 2dba0ce56106118d2e561c878fe9130e32986e0a

Trends :test_tube:

Steps errors
Expand to view the steps failures

Load a resource file from a shared library

Took 0 min 0 sec . View more details on here
Description: approval-list/elastic/apm-agent-python.yml

Error signal

Took 0 min 0 sec . View more details on here
Description: githubPrCheckApproved: The PR is not allowed to run in the CI yet. (Only users with write permissions can do so.)

Log output
Expand to view the last 100 lines of log output

[2021-03-01T08:29:15.235Z]  > git config core.sparsecheckout # timeout=10
[2021-03-01T08:29:15.240Z]  > git checkout -f 2dba0ce56106118d2e561c878fe9130e32986e0a # timeout=15
[2021-03-01T08:29:18.895Z] Commit message: "GIT-521: add support for sanic framework"
[2021-03-01T08:29:18.896Z] First time build. Skipping changelog.
[2021-03-01T08:29:18.896Z] Cleaning workspace
[2021-03-01T08:29:18.988Z]  > git --version # timeout=10
[2021-03-01T08:29:18.995Z]  > git --version # 'git version 2.17.1'
[2021-03-01T08:29:19.002Z] fatal: bad object 8f30f60989444d11e43197dd15ee83662a4926cd
[2021-03-01T08:29:18.899Z]  > git rev-parse --verify HEAD # timeout=10
[2021-03-01T08:29:18.909Z] Resetting working tree
[2021-03-01T08:29:18.909Z]  > git reset --hard # timeout=10
[2021-03-01T08:29:18.943Z]  > git clean -fdx # timeout=10
[2021-03-01T08:29:19.773Z] Masking supported pattern matches of $JOB_GCS_BUCKET or $NOTIFY_TO
[2021-03-01T08:29:19.875Z] The timestamps step is unnecessary when timestamps are enabled for all Pipeline builds.
[2021-03-01T08:29:20.039Z] Timeout set to expire in 1 hr 0 min
[2021-03-01T08:29:20.298Z] [INFO] Number of builds to be searched 10
[2021-03-01T08:29:20.512Z] [INFO] 'shallow' is forced to be disabled when running on PullRequests
[2021-03-01T08:29:20.550Z] Running in /var/lib/jenkins/workspace/hon_apm-agent-python-mbp_PR-1056/src/github.com/elastic/apm-agent-python
[2021-03-01T08:29:20.610Z] [INFO] gitCheckout: Checkout SCM PR-1056 with default customisation from the Item.
[2021-03-01T08:29:20.659Z] [INFO] Override default checkout
[2021-03-01T08:29:20.757Z] Sleeping for 10 sec
[2021-03-01T08:29:30.793Z] The recommended git tool is: git
[2021-03-01T08:29:30.931Z] using credential f6c7695a-671e-4f4f-a331-acdce44ff9ba
[2021-03-01T08:29:30.946Z] Wiping out workspace first.
[2021-03-01T08:29:30.957Z] Cloning the remote Git repository
[2021-03-01T08:29:30.957Z] Using shallow clone with depth 3
[2021-03-01T08:29:30.957Z] Avoid fetching tags
[2021-03-01T08:29:30.976Z] Cloning repository git@github.com:elastic/apm-agent-python.git
[2021-03-01T08:29:31.004Z]  > git init /var/lib/jenkins/workspace/hon_apm-agent-python-mbp_PR-1056/src/github.com/elastic/apm-agent-python # timeout=10
[2021-03-01T08:29:31.016Z] Fetching upstream changes from git@github.com:elastic/apm-agent-python.git
[2021-03-01T08:29:31.016Z]  > git --version # timeout=10
[2021-03-01T08:29:31.029Z]  > git --version # 'git version 2.17.1'
[2021-03-01T08:29:31.029Z] using GIT_SSH to set credentials GitHub user @elasticmachine SSH key
[2021-03-01T08:29:31.035Z]  > git fetch --no-tags --progress -- git@github.com:elastic/apm-agent-python.git +refs/heads/*:refs/remotes/origin/* # timeout=15
[2021-03-01T08:29:32.269Z] Cleaning workspace
[2021-03-01T08:29:32.286Z] Using shallow fetch with depth 3
[2021-03-01T08:29:32.286Z] Pruning obsolete local branches
[2021-03-01T08:29:32.250Z]  > git config remote.origin.url git@github.com:elastic/apm-agent-python.git # timeout=10
[2021-03-01T08:29:32.257Z]  > git config --add remote.origin.fetch +refs/heads/*:refs/remotes/origin/* # timeout=10
[2021-03-01T08:29:32.264Z]  > git config remote.origin.url git@github.com:elastic/apm-agent-python.git # timeout=10
[2021-03-01T08:29:32.273Z]  > git rev-parse --verify HEAD # timeout=10
[2021-03-01T08:29:32.279Z] No valid HEAD. Skipping the resetting
[2021-03-01T08:29:32.279Z]  > git clean -fdx # timeout=10
[2021-03-01T08:29:32.289Z] Fetching upstream changes from git@github.com:elastic/apm-agent-python.git
[2021-03-01T08:29:32.290Z] using GIT_SSH to set credentials GitHub user @elasticmachine SSH key
[2021-03-01T08:29:32.293Z]  > git fetch --no-tags --progress --prune -- git@github.com:elastic/apm-agent-python.git +refs/pull/1056/head:refs/remotes/origin/PR-1056 +refs/heads/master:refs/remotes/origin/master # timeout=15
[2021-03-01T08:29:32.927Z] Merging remotes/origin/master commit 97603d1ceb3c2219c47479167ad82634acffadc9 into PR head commit 2dba0ce56106118d2e561c878fe9130e32986e0a
[2021-03-01T08:29:33.017Z] Merge succeeded, producing 2dba0ce56106118d2e561c878fe9130e32986e0a
[2021-03-01T08:29:33.017Z] Checking out Revision 2dba0ce56106118d2e561c878fe9130e32986e0a (PR-1056)
[2021-03-01T08:29:33.068Z] Commit message: "GIT-521: add support for sanic framework"
[2021-03-01T08:29:33.068Z] Cleaning workspace
[2021-03-01T08:29:33.113Z]  > git --version # timeout=10
[2021-03-01T08:29:33.117Z]  > git --version # 'git version 2.17.1'
[2021-03-01T08:29:33.120Z] fatal: bad object 8f30f60989444d11e43197dd15ee83662a4926cd
[2021-03-01T08:29:32.931Z]  > git config core.sparsecheckout # timeout=10
[2021-03-01T08:29:32.934Z]  > git checkout -f 2dba0ce56106118d2e561c878fe9130e32986e0a # timeout=15
[2021-03-01T08:29:32.987Z]  > git remote # timeout=10
[2021-03-01T08:29:32.992Z]  > git config --get remote.origin.url # timeout=10
[2021-03-01T08:29:32.996Z] using GIT_SSH to set credentials GitHub user @elasticmachine SSH key
[2021-03-01T08:29:33.002Z]  > git merge 97603d1ceb3c2219c47479167ad82634acffadc9 # timeout=10
[2021-03-01T08:29:33.011Z]  > git rev-parse HEAD^{commit} # timeout=10
[2021-03-01T08:29:33.021Z]  > git config core.sparsecheckout # timeout=10
[2021-03-01T08:29:33.024Z]  > git checkout -f 2dba0ce56106118d2e561c878fe9130e32986e0a # timeout=15
[2021-03-01T08:29:33.071Z]  > git rev-parse --verify HEAD # timeout=10
[2021-03-01T08:29:33.075Z] Resetting working tree
[2021-03-01T08:29:33.076Z]  > git reset --hard # timeout=10
[2021-03-01T08:29:33.083Z]  > git clean -fdx # timeout=10
[2021-03-01T08:29:33.974Z] Masking supported pattern matches of $GIT_USERNAME or $GIT_PASSWORD
[2021-03-01T08:29:34.702Z] + git fetch<EMAIL_ADDRESS>+refs/pull/*/head:refs/remotes/origin/pr/*
[2021-03-01T08:29:36.188Z] Running in /var/lib/jenkins/workspace/hon_apm-agent-python-mbp_PR-1056/src/github.com/elastic/apm-agent-python/.git
[2021-03-01T08:29:36.319Z] Archiving artifacts
[2021-03-01T08:29:37.130Z] + git rev-parse HEAD
[2021-03-01T08:29:37.496Z] + git rev-parse HEAD
[2021-03-01T08:29:37.820Z] + git rev-parse origin/pr/1056
[2021-03-01T08:29:37.901Z] [INFO] githubEnv: Found Git Build Cause: pr
[2021-03-01T08:29:38.211Z] Masking supported pattern matches of $GITHUB_TOKEN
[2021-03-01T08:29:39.100Z] [WARN] githubApiCall: The REST API call https://api.github.com/repos/elastic/apm-agent-python/pulls/1056/reviews return 0 elements
[2021-03-01T08:29:39.187Z] [INFO] githubPrCheckApproved: Title: GIT-521: add support for sanic framework - User: harshanarayana - Author Association: FIRST_TIME_CONTRIBUTOR
[2021-03-01T08:29:39.565Z] ERROR: githubPrCheckApproved: The PR is not allowed to run in the CI yet
[2021-03-01T08:29:39.565Z] ERROR: githubPrCheckApproved: The PR is not allowed to run in the CI yet. (Only users with write permissions can do so.)
[2021-03-01T08:29:39.673Z] [INFO] Let's stop build #1. The PR is not allowed to run in the CI yet
[2021-03-01T08:29:39.700Z] Sleeping for 5 sec
[2021-03-01T08:29:40.654Z] Stage "Sanity checks" skipped due to earlier failure(s)
[2021-03-01T08:29:40.765Z] Stage "Test" skipped due to earlier failure(s)
[2021-03-01T08:29:40.873Z] Stage "Building packages" skipped due to earlier failure(s)
[2021-03-01T08:29:40.971Z] Stage "Integration Tests" skipped due to earlier failure(s)
[2021-03-01T08:29:41.077Z] Stage "Benchmarks" skipped due to earlier failure(s)
[2021-03-01T08:29:41.301Z] Stage "Prepare Release" skipped due to earlier failure(s)
[2021-03-01T08:29:41.357Z] Stage "Prepare Release" skipped due to earlier failure(s)
[2021-03-01T08:29:41.482Z] Stage "Prepare Release" skipped due to earlier failure(s)
[2021-03-01T08:29:41.586Z] Stage "Prepare Release" skipped due to earlier failure(s)
[2021-03-01T08:29:41.981Z] Running on Jenkins in /var/lib/jenkins/workspace/hon_apm-agent-python-mbp_PR-1056
[2021-03-01T08:29:42.139Z] [INFO] getVaultSecret: Getting secrets
[2021-03-01T08:29:42.383Z] Masking supported pattern matches of $VAULT_ADDR or $VAULT_ROLE_ID or $VAULT_SECRET_ID
[2021-03-01T08:29:43.337Z] + chmod 755 generate-build-data.sh
[2021-03-01T08:29:43.338Z] + ./generate-build-data.sh https://apm-ci.elastic.co/blue/rest/organizations/jenkins/pipelines/apm-agent-python/apm-agent-python-mbp/PR-1056/ https://apm-ci.elastic.co/blue/rest/organizations/jenkins/pipelines/apm-agent-python/apm-agent-python-mbp/PR-1056/runs/1 ABORTED 183034
[2021-03-01T08:29:43.588Z] INFO: curl https://apm-ci.elastic.co/blue/rest/organizations/jenkins/pipelines/apm-agent-python/apm-agent-python-mbp/PR-1056/runs/1/steps/?limit=10000 -o steps-info.json
[2021-03-01T08:29:44.139Z] INFO: curl https://apm-ci.elastic.co/blue/rest/organizations/jenkins/pipelines/apm-agent-python/apm-agent-python-mbp/PR-1056/runs/1/tests/?status=FAILED -o tests-errors.json
[2021-03-01T08:29:44.139Z] Retry 1/3 exited 22, retrying in 1 seconds...
[2021-03-01T08:29:45.111Z] Retry 2/3 exited 22, retrying in 2 seconds...

Hi @beniwohli  @basepi I would really appreciate it if you guys would take a look at this and see if things are going in the right direction for this PR.

@harshanarayana I ran the tests on our test suite. You can ignore the failures on Python 3.10 (there seems to be a compilation issue with httptools on that unreleased version of Python), but the others look like legitimate failures:
https://apm-ci.elastic.co/blue/organizations/jenkins/apm-agent-python%2Fapm-agent-python-mbp/detail/PR-1056/26/tests

@harshanarayana I ran the tests on our test suite. You can ignore the failures on Python 3.10 (there seems to be a compilation issue with httptools on that unreleased version of Python, see MagicStack/httptools#54), but the others look like legitimate failures:
https://apm-ci.elastic.co/blue/organizations/jenkins/apm-agent-python%2Fapm-agent-python-mbp/detail/PR-1056/26/tests

Thanks a lot for the check @beniwohli Let me check and see what is broken and fix and update the PR.

============================= test session starts ==============================
platform darwin -- Python 3.8.8, pytest-6.2.2, py-1.10.0, pluggy-0.13.1 -- /usr/local/Cellar/anaconda3/envs/apm-agent-python/bin/python
cachedir: .pytest_cache
benchmark: 3.2.3 (defaults: timer=time.perf_counter disable_gc=False min_rounds=5 min_time=0.000005 max_time=1.0 calibration_precision=10 warmup=False warmup_iterations=100000)
rootdir: /Users/timelord/Work/OpenSource/Python/apm-agent-python, configfile: setup.cfg
plugins: localserver-0.5.0, rerunfailures-9.1.1, cov-2.11.1, bdd-3.4.0, asyncio-0.14.0, benchmark-3.2.3, django-4.1.0, mock-3.5.1
collecting ... collected 9 items

sanic_tests.py::test_get[/-GET /-1-custom_context0]
sanic_tests.py::test_get[/greet/sanic-GET /greet/<name:string>-0-custom_context1]
sanic_tests.py::test_capture_exception
sanic_tests.py::test_unhandled_exception_capture
sanic_tests.py::test_client_with_custom_error_handler[/raise-exception-custom-handler]
sanic_tests.py::test_client_with_custom_error_handler[/raise-value-error-value-error-custom]
sanic_tests.py::test_client_with_custom_error_handler[/fallback-value-error-custom-handler-default]
sanic_tests.py::test_header_field_sanitization
sanic_tests.py::test_custom_callback_handlers

============================== 9 passed in 0.46s ===============================

Process finished with exit code 0
PASSED               [ 11%][2021-04-18 09:55:07 +0530] [2700] [INFO] http://<IP_ADDRESS>:50425/
[2021-04-18 09:55:07 +0530] - (sanic.access)[INFO][<IP_ADDRESS>:50426]: GET http://<IP_ADDRESS>:50425/  200 -1
[2021-04-18 09:55:07 +0530] [2700] [INFO] Starting worker [2700]
[2021-04-18 09:55:07 +0530] [2700] [INFO] Stopping worker [2700]
[2021-04-18 09:55:07 +0530] [2700] [INFO] Server Stopped
PASSED [ 22%][2021-04-18 09:55:07 +0530] [2700] [INFO] http://<IP_ADDRESS>:50427/greet/sanic
[2021-04-18 09:55:07 +0530] - (sanic.access)[INFO][<IP_ADDRESS>:50428]: GET http://<IP_ADDRESS>:50427/greet/sanic  200 -1
[2021-04-18 09:55:07 +0530] [2700] [INFO] Starting worker [2700]
[2021-04-18 09:55:07 +0530] [2700] [INFO] Stopping worker [2700]
[2021-04-18 09:55:07 +0530] [2700] [INFO] Server Stopped
PASSED                            [ 33%][2021-04-18 09:55:07 +0530] [2700] [INFO] http://<IP_ADDRESS>:50429/capture-exception
[2021-04-18 09:55:07 +0530] - (sanic.access)[INFO][<IP_ADDRESS>:50430]: GET http://<IP_ADDRESS>:50429/capture-exception  500 -1
[2021-04-18 09:55:07 +0530] [2700] [INFO] Starting worker [2700]
[2021-04-18 09:55:07 +0530] [2700] [INFO] Stopping worker [2700]
[2021-04-18 09:55:07 +0530] [2700] [INFO] Server Stopped
PASSED                  [ 44%][2021-04-18 09:55:07 +0530] [2700] [INFO] http://<IP_ADDRESS>:50431/v1/apm/unhandled-exception
[2021-04-18 09:55:07 +0530] [2700] [ERROR] Exception occurred while handling uri: 'http://<IP_ADDRESS>:50431/v1/apm/unhandled-exception'
Traceback (most recent call last):
  File "/usr/local/Cellar/anaconda3/envs/apm-agent-python/lib/python3.8/site-packages/sanic/app.py", line 724, in handle_request
    response = await response
  File "/Users/timelord/Work/OpenSource/Python/apm-agent-python/tests/contrib/sanic/fixtures.py", line 120, in raise_something
    raise CustomException("Unhandled")
tests.contrib.sanic.fixtures.CustomException: Unhandled
[2021-04-18 09:55:07 +0530] - (sanic.access)[INFO][<IP_ADDRESS>:50432]: POST http://<IP_ADDRESS>:50431/v1/apm/unhandled-exception  500 -1
[2021-04-18 09:55:07 +0530] [2700] [INFO] Starting worker [2700]
[2021-04-18 09:55:07 +0530] [2700] [INFO] Stopping worker [2700]
[2021-04-18 09:55:07 +0530] [2700] [INFO] Server Stopped
PASSED [ 55%][2021-04-18 09:55:07 +0530] [2700] [INFO] http://<IP_ADDRESS>:50433/raise-exception
[2021-04-18 09:55:07 +0530] - (sanic.access)[INFO][<IP_ADDRESS>:50434]: GET http://<IP_ADDRESS>:50433/raise-exception  500 -1
[2021-04-18 09:55:07 +0530] [2700] [INFO] Starting worker [2700]
[2021-04-18 09:55:07 +0530] [2700] [INFO] Stopping worker [2700]
[2021-04-18 09:55:07 +0530] [2700] [INFO] Server Stopped
PASSED [ 66%][2021-04-18 09:55:07 +0530] [2700] [INFO] http://<IP_ADDRESS>:50435/raise-value-error
[2021-04-18 09:55:07 +0530] - (sanic.access)[INFO][<IP_ADDRESS>:50436]: GET http://<IP_ADDRESS>:50435/raise-value-error  500 -1
[2021-04-18 09:55:07 +0530] [2700] [INFO] Starting worker [2700]
[2021-04-18 09:55:07 +0530] [2700] [INFO] Stopping worker [2700]
[2021-04-18 09:55:07 +0530] [2700] [INFO] Server Stopped
PASSED [ 77%][2021-04-18 09:55:07 +0530] [2700] [INFO] http://<IP_ADDRESS>:50437/fallback-value-error
[2021-04-18 09:55:07 +0530] - (sanic.access)[INFO][<IP_ADDRESS>:50438]: GET http://<IP_ADDRESS>:50437/fallback-value-error  500 -1
[2021-04-18 09:55:07 +0530] [2700] [INFO] Starting worker [2700]
[2021-04-18 09:55:07 +0530] [2700] [INFO] Stopping worker [2700]
[2021-04-18 09:55:07 +0530] [2700] [INFO] Server Stopped
PASSED                    [ 88%][2021-04-18 09:55:07 +0530] [2700] [INFO] http://<IP_ADDRESS>:50439/add-custom-headers
[2021-04-18 09:55:07 +0530] - (sanic.access)[INFO][<IP_ADDRESS>:50440]: GET http://<IP_ADDRESS>:50439/add-custom-headers  200 -1
[2021-04-18 09:55:07 +0530] [2700] [INFO] Starting worker [2700]
[2021-04-18 09:55:07 +0530] [2700] [INFO] Stopping worker [2700]
[2021-04-18 09:55:07 +0530] [2700] [INFO] Server Stopped
PASSED                     [100%][2021-04-18 09:55:07 +0530] [2700] [INFO] http://<IP_ADDRESS>:50441/add-custom-headers
[2021-04-18 09:55:07 +0530] - (sanic.access)[INFO][<IP_ADDRESS>:50442]: GET http://<IP_ADDRESS>:50441/add-custom-headers  200 -1
[2021-04-18 09:55:07 +0530] [2700] [INFO] Starting worker [2700]
[2021-04-18 09:55:07 +0530] [2700] [INFO] Stopping worker [2700]
[2021-04-18 09:55:07 +0530] [2700] [INFO] Server Stopped

============================= test session starts ==============================
platform darwin -- Python 3.8.8, pytest-6.2.2, py-1.10.0, pluggy-0.13.1 -- /usr/local/Cellar/anaconda3/envs/apm-agent-python/bin/python
cachedir: .pytest_cache
benchmark: 3.2.3 (defaults: timer=time.perf_counter disable_gc=False min_rounds=5 min_time=0.000005 max_time=1.0 calibration_precision=10 warmup=False warmup_iterations=100000)
rootdir: /Users/timelord/Work/OpenSource/Python/apm-agent-python, configfile: setup.cfg
plugins: localserver-0.5.0, rerunfailures-9.1.1, cov-2.11.1, bdd-3.4.0, asyncio-0.14.0, benchmark-3.2.3, django-4.1.0, mock-3.5.1
collecting ... collected 9 items

sanic_tests.py::test_get[/-GET /-1-custom_context0]
sanic_tests.py::test_get[/greet/sanic-GET /greet/<name:string>-0-custom_context1]
sanic_tests.py::test_capture_exception
sanic_tests.py::test_unhandled_exception_capture
sanic_tests.py::test_client_with_custom_error_handler[/raise-exception-custom-handler]
sanic_tests.py::test_client_with_custom_error_handler[/raise-value-error-value-error-custom]
sanic_tests.py::test_client_with_custom_error_handler[/fallback-value-error-custom-handler-default]
sanic_tests.py::test_header_field_sanitization
sanic_tests.py::test_custom_callback_handlers

============================== 9 passed in 0.36s ===============================

Process finished with exit code 0
PASSED               [ 11%][2021-04-18 09:55:40 +0530] [2736] [INFO] http://<IP_ADDRESS>:50469/
[2021-04-18 09:55:40 +0530] - (sanic.access)[INFO][<IP_ADDRESS>:50470]: GET http://<IP_ADDRESS>:50469/  200 17
[2021-04-18 09:55:40 +0530] [2736] [INFO] Starting worker [2736]
[2021-04-18 09:55:40 +0530] [2736] [INFO] Stopping worker [2736]
[2021-04-18 09:55:40 +0530] [2736] [INFO] Server Stopped
PASSED [ 22%][2021-04-18 09:55:40 +0530] [2736] [INFO] http://<IP_ADDRESS>:50471/greet/sanic
[2021-04-18 09:55:40 +0530] - (sanic.access)[INFO][<IP_ADDRESS>:50472]: GET http://<IP_ADDRESS>:50471/greet/sanic  200 26
[2021-04-18 09:55:40 +0530] [2736] [INFO] Starting worker [2736]
[2021-04-18 09:55:40 +0530] [2736] [INFO] Stopping worker [2736]
[2021-04-18 09:55:40 +0530] [2736] [INFO] Server Stopped
PASSED                            [ 33%][2021-04-18 09:55:40 +0530] [2736] [INFO] http://<IP_ADDRESS>:50473/capture-exception
[2021-04-18 09:55:40 +0530] - (sanic.access)[INFO][<IP_ADDRESS>:50474]: GET http://<IP_ADDRESS>:50473/capture-exception  500 22
[2021-04-18 09:55:40 +0530] [2736] [INFO] Starting worker [2736]
[2021-04-18 09:55:40 +0530] [2736] [INFO] Stopping worker [2736]
[2021-04-18 09:55:40 +0530] [2736] [INFO] Server Stopped
PASSED                  [ 44%][2021-04-18 09:55:40 +0530] [2736] [INFO] http://<IP_ADDRESS>:50475/v1/apm/unhandled-exception
[2021-04-18 09:55:40 +0530] [2736] [ERROR] Exception occurred while handling uri: 'http://<IP_ADDRESS>:50475/v1/apm/unhandled-exception'
Traceback (most recent call last):
  File "/usr/local/Cellar/anaconda3/envs/apm-agent-python/lib/python3.8/site-packages/sanic/app.py", line 914, in handle_request
    response = await response
  File "/Users/timelord/Work/OpenSource/Python/apm-agent-python/tests/contrib/sanic/fixtures.py", line 120, in raise_something
    raise CustomException("Unhandled")
tests.contrib.sanic.fixtures.CustomException: Unhandled
[2021-04-18 09:55:40 +0530] - (sanic.access)[INFO][<IP_ADDRESS>:50476]: POST http://<IP_ADDRESS>:50475/v1/apm/unhandled-exception  500 735
[2021-04-18 09:55:40 +0530] [2736] [INFO] Starting worker [2736]
[2021-04-18 09:55:40 +0530] [2736] [INFO] Stopping worker [2736]
[2021-04-18 09:55:40 +0530] [2736] [INFO] Server Stopped
PASSED [ 55%][2021-04-18 09:55:40 +0530] [2736] [INFO] http://<IP_ADDRESS>:50477/raise-exception
[2021-04-18 09:55:40 +0530] - (sanic.access)[INFO][<IP_ADDRESS>:50478]: GET http://<IP_ADDRESS>:50477/raise-exception  500 27
[2021-04-18 09:55:40 +0530] [2736] [INFO] Starting worker [2736]
[2021-04-18 09:55:40 +0530] [2736] [INFO] Stopping worker [2736]
[2021-04-18 09:55:40 +0530] [2736] [INFO] Server Stopped
PASSED [ 66%][2021-04-18 09:55:41 +0530] [2736] [INFO] http://<IP_ADDRESS>:50479/raise-value-error
[2021-04-18 09:55:41 +0530] - (sanic.access)[INFO][<IP_ADDRESS>:50480]: GET http://<IP_ADDRESS>:50479/raise-value-error  500 31
[2021-04-18 09:55:41 +0530] [2736] [INFO] Starting worker [2736]
[2021-04-18 09:55:41 +0530] [2736] [INFO] Stopping worker [2736]
[2021-04-18 09:55:41 +0530] [2736] [INFO] Server Stopped
PASSED [ 77%][2021-04-18 09:55:41 +0530] [2736] [INFO] http://<IP_ADDRESS>:50481/fallback-value-error
[2021-04-18 09:55:41 +0530] - (sanic.access)[INFO][<IP_ADDRESS>:50482]: GET http://<IP_ADDRESS>:50481/fallback-value-error  500 35
[2021-04-18 09:55:41 +0530] [2736] [INFO] Starting worker [2736]
[2021-04-18 09:55:41 +0530] [2736] [INFO] Stopping worker [2736]
[2021-04-18 09:55:41 +0530] [2736] [INFO] Server Stopped
PASSED                    [ 88%][2021-04-18 09:55:41 +0530] [2736] [INFO] http://<IP_ADDRESS>:50483/add-custom-headers
[2021-04-18 09:55:41 +0530] - (sanic.access)[INFO][<IP_ADDRESS>:50484]: GET http://<IP_ADDRESS>:50483/add-custom-headers  200 18
[2021-04-18 09:55:41 +0530] [2736] [INFO] Starting worker [2736]
[2021-04-18 09:55:41 +0530] [2736] [INFO] Stopping worker [2736]
[2021-04-18 09:55:41 +0530] [2736] [INFO] Server Stopped
PASSED                     [100%][2021-04-18 09:55:41 +0530] [2736] [INFO] http://<IP_ADDRESS>:50485/add-custom-headers
[2021-04-18 09:55:41 +0530] - (sanic.access)[INFO][<IP_ADDRESS>:50486]: GET http://<IP_ADDRESS>:50485/add-custom-headers  200 18
[2021-04-18 09:55:41 +0530] [2736] [INFO] Starting worker [2736]
[2021-04-18 09:55:41 +0530] [2736] [INFO] Stopping worker [2736]
[2021-04-18 09:55:41 +0530] [2736] [INFO] Server Stopped

@beniwohli Fixed the tests for the new sanic router behavior accounting. I missed it the last time with wrong virtual env setup while running tests. 🤦

@harshanarayana I am releasing today a new, more stable version of the router. Might be worth to test this against it.
https://github.com/sanic-org/sanic-routing/pull/24

@harshanarayana I am releasing today a new, more stable version of the router. Might be worth to test this against it.
https://github.com/sanic-org/sanic-routing/pull/24

Sure @ahopkins I will do a round of testing and see if anything can be optimized for mainline branch once your changes are published

@harshanarayana after excluding Python 3.6 (which we don't support when running async workloads due to the lack of contextvars), the tests now run correctly.
Is the PR ready to merge otherwise?

@harshanarayana after excluding Python 3.6 (which we don't support when running async workloads due to the lack of contextvars), the tests now run correctly.
Is the PR ready to merge otherwise?

Sorry, @beniwohli I have been away again on some personal matters. I will rebase the changes again do a quick check with latest version of sanic and give you a go head by EOW for merge from my end,

@harshanarayana what's the update here? is there anything pending on this one?

@beniwohli what is the plan for this PR?

Hey @ajay1mg, sorry for the lack of response here. We're currently re-evaluating how we prioritize this kind of work.
Community contributions, especially of large features and integrations, are a bit fraught -- while they can seem like a slam-dunk, by accepting the contribution we are agreeing to support it into the future. So we need to make time to really check that it's solid and that we understand the underlying technologies before merging. It's a lot of work that we need to actually roadmap and prioritize.
Thanks for your patience!

@basepi i understand you but first do you need understand a thousand of developers using SANIC for a lot of products for example RasaHQ and the last commit for this feature was 4 months ago :(

@harshanarayana after excluding Python 3.6 (which we don't support when running async workloads due to the lack of contextvars), the tests now run correctly.
Is the PR ready to merge otherwise?

I agree with @soulcodex, I personally use Sanic for my personal projects and know a lot of people using it. Also, if you look at the above comments, it was near ready to be merged.

/test

Looks like a bunch of tests are failing (now that we're actually running them). I haven't looked at the failures yet -- please ping me if you have questions about the failures.

@harshanarayana Are you going to be able to look at these test failures?

Yes, that is correct.
I added something here recently as well: https://github.com/getsentry/sentry-python/pull/1212
I can take a look at the tests to see if I can help with the same caveat I offered for Sentry: I do not know the product so I may need some help/guidance.

I guess I can either provide a diff, or make another PR?
@basepi what do you suggest here?

Assuming it was that simple:
https://github.com/elastic/apm-agent-python/pull/1390
These were the only changes that I made:
diff --git a/docs/set-up.asciidoc b/docs/set-up.asciidoc
index 4df452e8..15269e0f 100644
--- a/docs/set-up.asciidoc
+++ b/docs/set-up.asciidoc
@@ -23,4 +23,6 @@ include::./tornado.asciidoc[]

 include::./starlette.asciidoc[]

+include::./sanic.asciidoc[]
+
 include::./serverless.asciidoc[]
diff --git a/elasticapm/contrib/sanic/patch.py b/elasticapm/contrib/sanic/patch.py
index 78c1bb2f..72986d59 100644
--- a/elasticapm/contrib/sanic/patch.py
+++ b/elasticapm/contrib/sanic/patch.py
@@ -50,11 +50,11 @@ class ElasticAPMPatchedErrorHandler(ErrorHandler):
         self._current_handler = current_handler  # type: ErrorHandler
         self._apm_handler = None  # type: ApmHandlerType

-    def add(self, exception, handler):
-        self._current_handler.add(exception, handler)
+    def add(self, exception, handler, *args, **kwargs):
+        self._current_handler.add(exception, handler, *args, **kwargs)

-    def lookup(self, exception):
-        return self._current_handler.lookup(exception)
+    def lookup(self, exception, *args, **kwargs):
+        return self._current_handler.lookup(exception, *args, **kwargs)

     def setup_apm_handler(self, apm_handler: ApmHandlerType, force: bool = False):
         if self._apm_handler is None or force:

diff --git a/elasticapm/contrib/sanic/__init__.py b/elasticapm/contrib/sanic/__init__.py
index 0d8b631b..991ce69d 100644
--- a/elasticapm/contrib/sanic/__init__.py
+++ b/elasticapm/contrib/sanic/__init__.py
@@ -86,7 +86,7 @@ class ElasticAPM:
         "SECRET_TOKEN": "supersecrettokenstuff",
     })

-    Pass a pre-build Clinet instance to the APM Middleware::
+    Pass a pre-build Client instance to the APM Middleware::

     >>> apm = ElasticAPM(app=app, client=Client())

diff --git a/setup.cfg b/setup.cfg
index 1f2c48e1..e6a9d938 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -96,7 +96,7 @@ tests_require =
     pytest-asyncio ; python_version >= '3.7'
     pytest-mock ; python_version >= '3.7'
     httpx ; python_version >= '3.6'
-    sanic ; python_version >= '3.6'
+    sanic ; python_version >= '3.7'

 [options.extras_require]
 flask =

that's all it took to pass the tests

These were the only changes that I made:

@basepi could you patch this PR with changes added by @ahopkins

These were the only changes that I made:

@basepi could you patch this PR with changes added by @ahopkins?

Closing in favor of #1390 which will merge shortly :rocket:


Markdown tables

Hi @willmcgugan! Looks like an awesome library. I'm really interested in using this for terminal rendering of Markdown files, but I need to be able to render Markdown tables. Is that something you think would fit in this library?

Cleaning up issues. This probably isn't going to happen in the core library I'm afraid, unless I find a solid parser that does tables.

Hi @willmcgugan, did you see https://github.com/GovReady/CommonMark-py-Extensions ?
It looks like it's alive. :slightly_smiling_face:
The MD Table is a important feature to solve googlefonts/fontbakery#2559 and I would love to use rich to solve it.
Is something missed on GovReady/CommonMark-py-Extensions that I could help?


add kubeflow example doc

What does this PR do?
an end to end example of using Kubeflow on EKS, including:
EKS provision
kubeflow installation
related AWS services (ALB, CSI driver) installation
kubeflow config and quick start
Motivation
We (data lab team) recent met with EKS team which asked us to provide more guidance on kubeflow on EKS. We would like to use this example as first step. Demo to clients and get feedback.

@season1946 Thanks for submitting the Pull Request. I have a couple comments:

It would better serve to create an add-on for Kubeflow, that way a user can deploy an EKS Cluster with Kubeflow already deployed. Most of our addons are helm-based, although some do use manifests.
The overall kubeflow reference architecture (inclusion of Istio, EBS, etc.) should be created under our patterns repo here: https://github.com/aws-samples/cdk-eks-blueprints-patterns.

Happy to discuss further.

@youngjeong46 thanks for the quick response. pls see my answer below

Kubeflow doesn't helm chart install for now. I will contact kubeflow community for their roadmap on this. Once they offer helm, I will work on that.
I created a new pull request in cdk-eks-blueprints-patterns at https://github.com/aws-samples/cdk-eks-blueprints-patterns/pull/37  please review.
Thanks.

@season1946 Let's discuss further on how we could possibly implement Kubeflow as an add-on. Closing the issue for now.


Error after 3.4.0 install

I fully removed 3.3.2!
After fresh Install of twitchleecher-dx-3.4.0-setup.exe i can't start TwitchLeecher-Dx.
I always get a Error
It suggest me to download MS NetCore App after i installed that and reboted the same error occurs.
I rolled back to 3.3.2 and it's working flawless.

Please also install the ".NET Desktop Runtime" and ".NET Runtime" beside the ".NET Desktop Runtime"

Can you maybe give my direct links to the needed stuff i have to install or include them in a upcoming version? 🙏

Sorry, my bad! I ment to say, you need the .NET Desktop Runtime and the .NET Runtime beside the ASP.NET Runtime you installed.
ASP.NET: https://dotnet.microsoft.com/en-us/download/dotnet/thank-you/runtime-aspnetcore-6.0.27-windows-x64-installer
.NET Desktop: https://dotnet.microsoft.com/en-us/download/dotnet/thank-you/runtime-desktop-6.0.27-windows-x64-installer
.NET: https://dotnet.microsoft.com/en-us/download/dotnet/thank-you/runtime-6.0.27-windows-x64-installer
Let me now if it helped

Ok that helped me a lot Thanks!
It is working now.
Appreciate your hard work.


Add new release folder structure

Add new release folder structure

@chidozieononiwu do you think we should just close this PR and let the individual language templates be added by the other PRs?
Actually thinking about that we could do it but we would only have the 4 main languages and so the other languages would need to copy over their template if they wanted to start adding notes. @czubair what do you think should the other languages only copy over this if and when they need notes for may?

@chidozieononiwu do you think we should just close this PR and let the individual language templates be added by the other PRs?
Actually thinking about that we could do it but we would only have the 4 main languages and so the other languages would need to copy over their template if they wanted to start adding notes. @czubair what do you think should the other languages only copy over this if and when they need notes for may?

Actually in the current case we can merge this and close out the language PRs since no package has been released yet.

@chidozieononiwu do you think we should just close this PR and let the individual language templates be added by the other PRs?
Actually thinking about that we could do it but we would only have the 4 main languages and so the other languages would need to copy over their template if they wanted to start adding notes. @czubair what do you think should the other languages only copy over this if and when they need notes for may?

Actually in the current case we can merge this and close out the language PRs since no package has been released yet. Subsequently we can have thie pipeline that runs this checking against the CreateOrUpdateReleaseDataFor branch.

/azp run azure-sdk - ci

@chidozieononiwu do you think we should just close this PR and let the individual language templates be added by the other PRs?
Actually thinking about that we could do it but we would only have the 4 main languages and so the other languages would need to copy over their template if they wanted to start adding notes. @czubair what do you think should the other languages only copy over this if and when they need notes for may?

Actually in the current case we can merge this and close out the language PRs since no package has been released yet.
Subsequently we can have the pipeline that runs this checking against the CreateOrUpdateReleaseDataFor_{{Language}}_yyy-MM branch.

@chidozieononiwu so no need to generate a release folder every month then?

@chidozieononiwu do you think we should just close this PR and let the individual language templates be added by the other PRs?
Actually thinking about that we could do it but we would only have the 4 main languages and so the other languages would need to copy over their template if they wanted to start adding notes. @czubair what do you think should the other languages only copy over this if and when they need notes for may?

@weshaggard that

I see what's goin on here. This CI is building the site. looks like we can't have the template copied over until the data has been generated. We can probably adjust dis to not generate for dotnet, js, java, and python


Add set_pressed_no_signal method to BaseButton

Fixes #33422
Fixes #35172
Fixes #33854
I updated the documentation for pressed, but changing visual state of the button is still useful. Check #48466 for example - is_loading_state was added only because of the unwanted signal emission. We possibly have more similar workarounds in the codebase, which now could be removed by using the new method.

Thanks!

Cherry-picked for 3.4.

I'm just wondering if this might have been better as an optional argument of set_pressed.
Though I am not sure it is possible to use it as a setter if it has more than one argument.


implement a simple perceptron classifier

This adds .perceptron() for making a single-layer perceptron classifier with .train() and .predict() methods. Tests are in perceptron.test.js.
I haven't added anything to the README etc., but if this looks good that could also be done.

@tmcw Updated! :)

Awesome, merging!


fix: 查找展开的菜单，支持二级以及以上，之前的逻辑有问题

Types of changes

[ ] New feature
[x] Bug fix
[ ] Documentation change
[ ] Coding style change
[ ] Refactoring
[ ] Performance improvement
[ ] Test cases
[ ] Continuous integration
[ ] Typescript definition change
[ ] Breaking change

Background and context
我现在有一个三级菜单 C（A/B/C），点击我的三级菜单后，A 展开了，但是 B 并没有展开，debug了一下发现这个函数 findMenuOpenKeys 只返回了 [ A ]，预期应该返回 [A, B] 。经过修改，已经达到预期。

Solution

How is the change tested?

Changelog

Changelog(CN)
Changelog(EN)
Related issues

Checklist:

[ ] Provide changelog for relevant changes (e.g. bug fixes and new features) if applicable.
[ ] Changes are submitted to the appropriate branch (e.g. features should be submitted to feature branch and others should be submitted to master branch)

Other information

@OverTree hi 感谢PR。commit麻烦遵循一下规范哈。3q


Add a new data plane Upload API

Data Plane API - Pull Request
We are introducing a new Upload API that can accept an array of Stix Objects.
API Info: The Basics
Most of the information about your service should be captured in the issue that serves as your API Spec engagement record.

Link to API Spec engagement record issue:

Is this review for (select one):

[ ] a private preview
[X] a public preview
[ ] GA release

Change Scope
This section will help us focus on the specific parts of your API that are new or have been modified. Please share a link to the design document for the new APIs, a link to the previous API Spec document (if applicable), and the root paths that have been updated.

Design Document: https://microsofteur.sharepoint.com/:w:/t/OlympicHawks/EYMcPwXUfDpLlAbCyqd65x0BwDsDfkctWQvKSTfFBlTx6w?e=ypQePW
Previous API Spec Doc:
Updated paths:

Viewing API changes
For convenient view of the API changes made by this PR, refer to the URLs provided in the table
in the Generated ApiView comment added to this PR. You can use ApiView to show API versions diff.
Suppressing failures
If one or multiple validation error/warning suppression(s) is detected in your PR, please follow the
Swagger-Suppression-Process
to get approval.
❔Got questions? Need additional info?? We are here to help!

 Contact us!
The Azure API Review Board is dedicated to helping you create amazing APIs. You can read about our mission and learn more about our process on our wiki.

💬 Teams Channel
💌 email

Click here for links to tools, specs, guidelines & other good stuff
Tooling

Open API validation tools were run on this PR. Go here to see how to fix errors
Spectral Linting
Open API Hub

Guidelines & Specifications

Azure REST API Guidelines
OpenAPI Style Guidelines
Azure Breaking Change Policy

Helpful Links

Azure DevTools Wiki

Checks stuck in `queued` state?
If the PR CI checks appear to be stuck in `queued` state, please add a comment with contents `/azp run`.
This should result in a new comment denoting a `PR validation pipeline` has started and the checks should be updated after few minutes.

fix https://github.com/Azure/azure-rest-api-specs/issues/27663

As of 1/1/24, new Azure service spec must be authored in TypeSpec or your PR/SDK may risk being unable to merge/release. Please visit this link for more info and conversion tool. We can assist you to migrate to TypeSpec.

@hunngu-ms for the issue of the multi-endpoint scenario, we should just parameterize the service endpoint for your following endpoints much as other services currently do either through a prefix such as Service Bus and Key Vault.
Global: api.ti.sentinel.azure.com
Israel: api-ilc.ti.sentinel.azure.com

/azp run

/azp run

/pr RequestMerge

Next Steps to Merge

Could this be fixed ?


Regression stats / benchmark

Thanks for your work on this. Do you have any stats on upper limits with larger collection sizes, benchmarked performances etc?

It's true that it would be cool to know !

A small comparison with some Lodash methods would be nice to get a idea. Sadly i'm to busy right now.
Thanks for the work and keep it up.

@codebeauty @gayanhewa Sounds like a great opportunity for contribution

Closing this because of inactivity. PRs are welcome.


Envoy (istio-proxy) memory keeps growing (HTTP/2 gRPC bidi stream)

Description:
We have a service deployed in our cluster with an istio-proxy sidecar (running envoy).
We're currently seeing an issue where Envoy's memory usage keeps increasing,
up to the point where it gets OOMKilled (2GB limit).
We've tried doubling the limits for the sidecar,
but it's still growing and didn't settle somewhere.

We have a bunch of profile files if that's of any interest, but here's a top.

Happy to share any other configuration/stats that I forgot to add here.
Thanks in advance! :pray:

cc @lizan @dio to take a look. Typically in the past this has been an issue with retry policies on streaming requests but not sure.

Thanks @mattklein123, we tried disabling retries and the RetryPolicy is now gone from the configuration (for this service) but we're still seeing the increase in memory usage.
Is there anything else we can try, to debug this further?
Happy to share the Envoy heap profiles we performed, if that can help track this down 🙂
Thanks in advance! :pray:

Just double check, is this only happening in one of your multiple services? Is there anything the service different from others? Can you share the config/stats after you disabled retry policy?

The memory usage seems stable on all other services actually (other services in the same namespace is using ~ 300mb). The only thing that is different with this service is that it's serving a bidirectional stream.
The config is huge since other services are there but happy to share the config for this service in particular if that helps? 🙂
For some reason, we have two identical virtual hosts defined as inbounds, which is quite confusing 🤔
inbound.txt
outbound.txt

@heimweh what's the traffic pattern of this service? Is the stream is long lived or not? Do you have some estimate how the memory is correlated to? e.g. increase with bytes or number of connections.

I took a look at this profile and it's very hard for me to make sense of it. Is it possible that the bidi stream is getting compressed by the zlib filter? I'm wondering if there is a buffering happening there of compression data that needs to get flushed somehow?

I'll go ahead and close this issue for now, and will re-open if we discover anything new.


Webhook not working on server

There seems to be a problem with the webhook receiving data from the tally form. The response we are getting is a 409 bad request.

Hmm, it seems to work for me, maybe the tally webhook was not configured correctly.

Just so it is documented: Another option might be to match on the questions itself. This will me more work but might be an interesting option.


Create demo

docker run -e NODE_TYPE=$NODE_TYPE -e P2P_NETWORK=$NETWORK
-v $HOME/my-node-store:/home/celestia
ghcr.io/celestiaorg/celestia-node:v0.12.0
celestia light start --core.ip $RPC_URL

Hey @byronic-azure, could you please describe what is the goal of this PR?

Closing the issue.


API.service.ts is not updated after schema.graphql changes in Angular App

Describe the bug
I am using AWS Amplify API with GraphQL and Appsync within an Angular 8 application.
After creating a new type in my schema.graphql file, my Amplify files (e.g. API.service.ts, mutations.ts, queries.ts, subscriptions.ts) are no longer updated.
To Reproduce
Steps to reproduce the behavior:

Update amplify/backend/api/YOURPROJECT/schema.graphql
amplify push
Affirm the update of existing graphql API and statements
CLI provides feedback that everything worked fine, including the API.service.ts ("Code generated successfully and saved in file src/app/API.service.ts")
AppSync API is updated and DynamoDB ressources are correctly provided
Queries and Mutations via AppSync Console work as expected
Files in Angular project are not updated and I am not able to use the service for GraphQL operations

Expected behavior

GraphQL operations should be successfully generated and saved at src/graphql in my Angular project.
Code should be generated successfully and saved in file src/app/API.service.ts

Environment
System:
OS: macOS Mojave 10.14.5
CPU: (8) x64 Intel(R) Core(TM) i5-8259U CPU @ 2.30GHz
Memory: 63.90 MB / 8.00 GB
Shell: 3.2.57 - /bin/bash
Binaries:
Node: 10.15.3 - /usr/local/bin/node
npm: 6.11.3 - /usr/local/bin/npm
Browsers:
Chrome: 78.0.3904.87
Safari: 12.1.1
npmPackages:
@angular-devkit/build-angular: ~0.803.4 => 0.803.4
@angular/animations: ~8.2.5 => 8.2.6
@angular/cdk: ~8.2.2 => 8.2.2
@angular/cli: ~8.3.4 => 8.3.4
@angular/common: ~8.2.5 => 8.2.6
@angular/compiler: ~8.2.5 => 8.2.6
@angular/compiler-cli: ~8.2.5 => 8.2.6
@angular/core: ~8.2.5 => 8.2.6
@angular/forms: ~8.2.5 => 8.2.6
@angular/language-service: ~8.2.5 => 8.2.6
@angular/material: ^8.2.2 => 8.2.2
@angular/platform-browser: ~8.2.5 => 8.2.6
@angular/platform-browser-dynamic: ~8.2.5 => 8.2.6
@angular/router: ~8.2.5 => 8.2.6
@ng-bootstrap/ng-bootstrap: ^5.1.2 => 5.1.2
@types/jasmine: ~3.3.8 => 3.3.16
@types/jasminewd2: ~2.0.3 => 2.0.6
@types/node: ~8.9.4 => 8.9.5
aws-amplify: ^1.2.4 => 1.2.4
aws-appsync: ^2.0.0 => 2.0.0
bootstrap: ^4.3.1 => 4.3.1
codelyzer: ^5.0.0 => 5.1.0
graphql: ^14.5.8 => 14.5.8
graphql-tag: ^2.10.1 => 2.10.1
hammerjs: ^2.0.8 => 2.0.8
ionicons: ^4.6.3 => 4.6.3
jasmine-core: ~3.4.0 => 3.4.0
jasmine-spec-reporter: ~4.2.1 => 4.2.1
karma: ~4.1.0 => 4.1.0
karma-chrome-launcher: ~2.2.0 => 2.2.0
karma-coverage-istanbul-reporter: ~2.0.1 => 2.0.6
karma-jasmine: ~2.0.1 => 2.0.1
karma-jasmine-html-reporter: ^1.4.0 => 1.4.2
protractor: ~5.4.0 => 5.4.2
rxjs: ^6.5.3 => 6.5.3
ts-node: ~7.0.0 => 7.0.1
tslib: ^1.10.0 => 1.10.0
tslint: ~5.15.0 => 5.15.0
typescript: ~3.5.3 => 3.5.3
uuid: ^3.3.3 => 3.3.3
zone.js: ~0.9.1 => 0.9.1
npmGlobalPackages:
@angular/cli: 8.3.14
@aws-amplify/cli: 3.17.0
cordova: 9.0.0
create-react-app: 3.2.0
expo-cli: 3.4.1
firebase-tools: 7.3.2
ionic: 5.2.7
n: 4.1.0
npm: 6.11.3

Additional context
My graphqlconfig.yml looks like this:
projects:
wilson:
schemaPath: src/graphql/schema.json
includes:
- src/graphql//*.ts
excludes:
- ./amplify/
extensions:
amplify:
codeGenTarget: angular
generatedFileName: src/app/API.service.ts
docsFilePath: src/graphql
maxDepth: 6
extensions:
amplify:
version: 3

I am having the same issue. Any solution?

I am also having this issue. Kindly guide how to fix this.

This a bug and we are working on a fix. As a workaround, delete the API.service.ts file and run amplify api gql-compile and then amplify codegen after making updates to your schema to generate the updated API.service.ts file.

@StevieWag which version of the CLI are you using? I was not able to reproduce this with version 4.11.0
If you run amplify api gql-compile and then amplify codegen is the API.service.ts updated? Please ensure that there are no syntax errors in your API.service.ts

Also, it appears that your includes in the graphql.yml file is invalid (multiple backslashes). Could you confirm this? I tried this with the default src/graphql/**/*.graphql and the API.service.ts was updated as expected.

@nikhname , in my case there was an issue with .yml file. It worked after fixing it.

Closing this issue. Please feel free to comment if you are still facing this issue version 4.11.0 onwards when using correct paths in the grapqhl.yml file and no syntax errors in the API.service.ts file.


Can't move items to a new category

Addon Version
x
World of Warcraft Version
Retail
Describe the bug
x
Steps to reproduce
I want to rename Miscellaneous to Misc. Seems no way to do that. I can create a new Misc category but when I try to move items over it creates a new "Items" category instead.

What if there is no list for a new category? I didn't see the tooltip change to tell me to hit shift, although I may have missed it.

The names are decided by Blizzard, not us, and we do not truncate or modify names as names are localized. If there is no item in the list, you can drag (drag and hold, not pick up) an item into the text box placeholder.

Ahh, that makes sense.


6.0 Feedback:  Copy tweak needed for "Why is my robot not avail" modal

Overview
right now the "Why is my robot not available" modal has this line:
If none of these work, contact Opentrons Support for help (via the chat link in this app, or by emailing support@opentrons.com).
we should update this to the following
If none of these work, contact Opentrons Support for help (via the question mark link in this app, or by emailing support@opentrons.com).
Current Behavior
No response
Expected Behavior
No response
Steps To Reproduce
No response
Operating system
No response
Robot setup or anything else?
No response

verified


Elasticsearch 5 REST Client

This picks up from #843 with improved testing.  (#803 has been merged into 1.x)
According to the docs, the ES Transport Client is slated to be deprecated in the next major release: 7.0 . This PR provides the same implementation merged with #803 with additional test coverage:

Removed upgrades to ES and related libraries to simplify merge from #843
Enhancement of end-to-end tests to support integration testing following configurations:

HTTP / Redis / Elasticsearch Transport Client
HTTP / Redis / Elasticsearch REST Client
gRPC / MySQL / Elasticsearch Transport Client

Enhances TestElasticSearchRestDAOV5.java to recreate indices between every test method
Backfills TestElasticSearchDAOV5.java to have similar coverage to REST

There's some copy pasta in the index DAO impl's to support testing that needs to be factored out in the transport DAO, this will be cleaned up before merge.

Thanks for the PR @davidwadden we tested it and it seems to work. @cyzhao / @davidwadden do we have plans to merge this ? Will be happy to help out if there is additional work required here.

Pull Request Test Coverage Report for Build 2090

332 of 472 (70.34%)  changed or added relevant lines in 6 files are covered.
5 unchanged lines in 1 file lost coverage.
Overall coverage increased (+1.9%) to 65.281%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

es5-persistence/src/main/java/com/netflix/conductor/dao/es5/index/ElasticSearchDAOV5.java
127
166
76.51%

es5-persistence/src/main/java/com/netflix/conductor/dao/es5/index/ElasticSearchRestDAOV5.java
186
287
64.81%

Files with Coverage Reduction
New Missed Lines
%

es5-persistence/src/main/java/com/netflix/conductor/dao/es5/index/ElasticSearchDAOV5.java
5
71.09%

Totals

Change from base Build 2082:
1.9%

Covered Lines:
7555

Relevant Lines:
11573

💛  - Coveralls

Cleaned things up a bit and ready for review.  Moved the copy pasta into test code at least.


Failing conversion

[x] Using latest version as provided on the master branch
[x] Searched for similar issues including closed ones

What is the purpose of your issue?

[ ] Script won't run
[ ] Encountered bug
[ ] Feature request
[x] Question
[ ] Other

System information

Your python version: python 3.6.2
Your operating system: Windows 10

Description

Hi. Every time I type python spotdl.py --list=<playlist_name>.txt (with the playlist name changed), it downloads the song, but during conversion, it says Failed download, will try again after the others or something like that. Is there something wrong with my FFmpeg? If so, what version do I need? I can type ffmpeg in cmd with no issue.

Try downloading a single song using the -s option and paste the traceback here.

  File "spotdl.py", line 394, in <module>
    grab_single(raw_song=args.song)
  File "spotdl.py", line 366, in grab_single
    avconv=args.avconv, verbose=args.verbose)
  File "C:\Users\Lim\Desktop\spotify-downloader-master\core\convert.py", line 23, in song
    exit_code = convert_with_ffmpeg(input_song, output_song, folder, verbose)
  File "C:\Users\Lim\Desktop\spotify-downloader-master\core\convert.py", line 68, in convert_with_ffmpeg
    return subprocess.call(command)
  File "C:\Users\Lim\AppData\Local\Programs\Python\Python36-32\lib\subprocess.py", line 267, in call
    with Popen(*popenargs, **kwargs) as p:
  File "C:\Users\Lim\AppData\Local\Programs\Python\Python36-32\lib\subprocess.py", line 707, in __init__
    restore_signals, start_new_session)
  File "C:\Users\Lim\AppData\Local\Programs\Python\Python36-32\lib\subprocess.py", line 992, in _execute_child
    startupinfo)
FileNotFoundError: [WinError 2] The system cannot find the file specified```

I've fixed it, however, by re-downloading FFmpeg and putting ffmpeg.exe in the root directory. Turns out, the ffmpeg I had installed was located in /npm/ffmpeg.cmd and /npm/ffmpeg, so it only worked in the cmd prompt, but didn't work with the .py script.

Okay, great that it works correctly now. :smile:


Add support to handle different engine configurations

This PR aims to add support for the following configurations:
grpc: enabled
engine: enabled
grpc: disabled
engine: disabled
The next configuration wasn't supported yet.
grpc: enabled
engine: disabled
Note: For the migration from an etcd cluster to a grpc cluster, It is really CRITICAL to stop the fleet leader of an old etcd cluster, at the END. It has to be the last one to stop. We do so in order to keep the other nodes to use the etcd backend as long as there is an etcd leader, and once this is GONE, a new GRPC server-leader would be activated.

LGTM


mount syscall

When trying to use the mount syscall to mount a filesystem image I get the next error:
Trace: { [Error: EPERM, Operation not permitted '/work/out/latest']
  errno: 1,
  code: 'EPERM',
  path: '/work/out/latest',
  syscall: 'mount' }
    at onerror (/lib/node_modules/nodeos-mount-filesystems/index.js:34:13)
    at /lib/node_modules/nodeos-mount-filesystems/index.js:297:26

Could it be possible I can't be able to use the mount syscall from inside vagga? And if so, what alternatives do I have? I know I can be able to set a volume, but they are only mapping to a host folder and don't allow to mount disk images. I could live with this, but can I be able later to use mount bind and mount move from inside vagga? NodeOS use them to create a clean filesystem hierarchy... :-/

Well mount syscall works. Bind mounts should work, but are subject of some restrictions. I can do mount --bind and mount --move in vagga _build_shell but can't in command run by vagga. Anyway, vagga in vagga works (I use it for tests), and vagga uses bind mounts a lot. So I should just refresh in memory what the restrictions are.
And as far as I know you can't mount block device because the user that runs vagga is still that user, so kernel doesn't trust him to read block devices.

Well mount syscall works. Bind mounts should work, but are subject of some restrictions. I can do mount --bind and mount --move in vagga _build_shell but can't in command run by vagga. Anyway, vagga in vagga works (I use it for tests), and vagga uses bind mounts a lot. So I should just refresh in memory what the restrictions are.

Good to know :-) Do you remind if move works too?

And as far as I know you can't mount block device because the user that runs vagga is still that user, so kernel doesn't trust him to read block devices.

It's not a block device but a filesystem image. As far as I know, now it's not required to create a loop device to mount them and can be used directly, isn't it?

Good to know :-) Do you remind if move works too?

Yes. It works.

It's not a block device but a filesystem image. As far as I know, now it's not required to create a loop device to mount them and can be used directly, isn't it?

As far as I know you use loop device even if not specified explicitly (http://unix.stackexchange.com/a/66079/96831). So I believe you can't. I've tried to get loop device working a year ago or so without a success. I don't know if anything changed yet. Probably not.

Seems OverlayFS doesn't work, too... :-/ That's a shame, because NodeOS use it extensively (one of them for each user) :-( I suppose FUSE-based filesystems will have these problems too, isn't it?

Seems Docker now support to mount FUSE filesystems by combining capabilities and device mapping. Would this be possible to implement on vagga?
Also seems that by using the volumes options it's possible to map a single file (not a full directory) and use it directly, so it would be possible to "pass" a disk image and mount it from inside the container. Is this feasable with vagga, or there would be some drawbacks?

Seems Docker now support to mount FUSE filesystems by combining capabilities and device mapping. Would this be possible to implement on vagga?

While it's not impossible it's hard to implement. AFAIR, you need to run fusermount in the host, and pass the file descriptor to it from a container.

Also seems that by using the volumes options it's possible to map a single file (not a full directory) and use it directly, so it would be possible to "pass" a disk image and mount it from inside the container. Is this feasable with vagga, or there would be some drawbacks?

Probably no, because to mount a file to use as disk image you need a loop device, not a file itself (just mount utility hides it for you). And mounting loopfs is disabled for non-root because kernel developers do not trust filesystem drivers (i.e. there can be a specially crafted image which exhausts resources of whole system).
By the way, OverlayFS should work on ubuntu kernel (it has a patch).

Should work out of the box now, given that #239 is merged. As of vagga v0.5.0-142-g618cf0b

That's cool! I'll try to find time to check it. Thanks! :-D

How could this be used? Are the docs updated?

I'm not sure that we have ever mentioned about mounts in docs. What needs to be updates? (if you having troubles, with running mount, there is still old version of vagga in vagga-testing repo, I have troubles with buildbot)

I'll get in touch with you when I get time to check it, thanks :-)

Can someone confirm if running mount inside container to mount a loop device should work now.
Inside container I'm only able to:
/work# losetup -P /dev/loop1 test.img
/work# blkid
/dev/loop1: UUID="ed4a676a-6915-4e8d-896f-47fcc3b0a828" TYPE="ext4"

But mounting fails with:
/work# mount /dev/loop1 mnt/
mount: /work/mnt: permission denied.


feat: make provide hotkeys reactive

Add on to  #45

@mondeja do you mind reviewing this? I feel bad for asking, let me know if you want to be added as a collaborator/maintainer :) You don't need to actually maintain the crate, but I really do appreciate your input :)


GUI Update - details

I miss having checkboxes by databases. I like to be able to mark which ones i want to use in a search, and leave them around so  i can use them later in a different search.

I'd like to be able to delete a task.

I'd like to be able to re-order tasks.

Let's use this issue to centralize to-do items for the new GUI.

Double-click doesn't seem to open stuff for me anymore, need to fix that
Need a right click -> Delete All option (equivalent to "Clear" in the old GUI)

Need to reset the output folder (to empty) when all spectra files are deleted from the GUI

Font size needs to be bigger

Add a resizing splitter thing between the spectra/proteinDB and task areas in the "Run" tab


Incremental support

Hey :wave:
I've seen that you don't add the replication_key most of the time to have incremental replication support:
https://github.com/edgarrmondragon/tap-crowd-dev/blob/70ada414959533e85eb1dd4a4f7a45763d7ed17b/tap_crowd_dev/streams.py#L28
Is it intended because crowd.dev doesn't support incremental for it?

Hey @tchiotludo!
That's right. AFAICT those endpoints don't have a way to filter by an incremental field. Happy to receive PRs if it's any other way!


Avoids the need to include children: [] when overriding AndroidManifest on renative.json files

Closes https://github.com/pavjacko/renative/issues/278

Codecov Report

Merging #280 into develop will decrease coverage by 0.01%.
The diff coverage is 0%.

@@             Coverage Diff             @@
##           develop     #280      +/-   ##
===========================================
- Coverage    28.94%   28.92%   -0.02%
===========================================
  Files           53       53
  Lines         5649     5649
  Branches      1212     1213       +1
===========================================
- Hits          1635     1634       -1
  Misses        2921     2921
- Partials      1093     1094       +1

Flag
Coverage Δ

#rnvunittests
28.92% <0%> (-0.02%)
:arrow_down:

Impacted Files
Coverage Δ

...es/rnv/src/platformTools/android/manifestParser.js
17.46% <0%> (-0.8%)
: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 96e0359...49a36b7. Read the comment docs.


Refer to here for details
However, it's not necessary.
It should be change to an optional parameter.

@Shihta Not sure if my opinion matters much in the Traffic Control community these days, but here is how I would handle it:
Structurally, there isn't much difference between a x509 Certificate and a x509 CertificateRequest.  The x509 CertificateRequest contains everything the x509 Certificate contains, with the exception of the any digital signatures, precomputed time stamps, and information about the Certificate Authority that signed it.
For this reason, here is my proposal for how the CSR should be handled. There are two cases: A) CSR field is empty B) CSR field is populated.  In both cases of A and B, the Certificate (CRT field) and Private Key (KEY field) are assumed to be valid and populated:
Case A: CSR field is empy in the input

Certificate (CRT) and Private Key (KEY) match cryptographically and pass all other validation.
Extract all Certificate Request ASN1 values from the Certificate, marshal this data into a CertificateRequest DER encoded binary array, PEM encode it, and then save it as the CSR field.  Essentially this operation is cloning the existing Certificate (CRT field) and discarding the fingerprint and any other information about the signing CA.  This operation would be the same as what the openssl tool can do with the openssl x509 -x509toreq function.

Case B: CSR field is NOT empty in the input

Certificate Request (CSR) must be a valid pem block and parse into a x509.CertificateRequest() object.
CertificateRequest (CSR) Public Key values must match the Private Key (KEY field) public key values cryptographcally.
Certificate Request (CSR) Public Key values must also match those in the Certificate (CRT) as well.
If steps (1), (2), and (3) succeed above, than allow the CSR to be saved to traffic vault.

Use Cases:

Provide the ability to extract the Certificate Request from a Certificate when CSR is empty.
Provide the ability to save custom/different Certificate Request that may have different attributes than the original Certificate (CRT), but validate that the key and certificate have the same public key values.

Thoughts?

@JBevillC I value your opinion a lot (especially when it comes to certificate stuff like this)! I think all the validation steps proposed for both cases make sense, but for Case A I'm thinking if the user doesn't provide a CSR to save through the API then they might not really care to have one generated from their provided cert. The sslkeys /generate endpoint provides that CSR generation workflow already, so it probably wouldn't be much extra code to generate a CSR when not given. From a Riak storage standpoint it might save a bit of storage in large-scale deployments that primarily get certs from LetsEncrypt (or something similar), but I think that storage is relatively small and wouldn't really be a problem.
So basically I agree with the validation for Case B, but for Case A I could go either way (either let the CSR field be empty or generate a CSR from the given cert).


fix(ci): cache dir not found

Description
Create cache directory if cache not found for input keys.
Type of Change

[x] Bug Fix
[ ] New Feature
[ ] Breaking Change
[ ] Refactor
[ ] Documentation
[ ] Other (please describe)

Checklist

[x] I have read the contributing guidelines
[ ] Existing issues have been referenced (where applicable)
[x] I have verified this change is not present in other open pull requests
[ ] Functionality is documented
[x] All code style checks pass
[ ] New code contribution is covered by automated tests
[x] All new and existing tests pass

@csatib02 thanks! 🚀


argyllcms: 1.8.3 -> 2.0.0

Semi-automatic update. These checks were done:

built on NixOS
ran /nix/store/hh6cqaai79dsh200g3c581iaq52yi580-argyllcms-2.0.0/bin/synthcal help got 0 exit code
found 2.0.0 with grep in /nix/store/hh6cqaai79dsh200g3c581iaq52yi580-argyllcms-2.0.0
found 2.0.0 in filename of file in /nix/store/hh6cqaai79dsh200g3c581iaq52yi580-argyllcms-2.0.0

cc @rickynils

Failure on x86_64-darwin (full log)
Partial log (click to expand)
Package ‘argyllcms-2.0.0’ in /Users/graham/nix-borg/repo/38dca4e3aa6bca43ea96d2fcc04e8229/builder/grahamc-ndnd/pkgs/tools/graphics/argyllcms/default.nix:116 is not supported on ‘x86_64-darwin’, refusing to evaluate.

a) For `nixos-rebuild` you can set
  { nixpkgs.config.allowBroken = true; }
in configuration.nix to override this.

b) For `nix-env`, `nix-build`, `nix-shell` or any other Nix command you can add
  { allowBroken = true; }
to ~/.config/nixpkgs/config.nix.

Success on x86_64-linux (full log)
Partial log (click to expand)
shrinking /nix/store/hh6cqaai79dsh200g3c581iaq52yi580-argyllcms-2.0.0/bin/specplot
shrinking /nix/store/hh6cqaai79dsh200g3c581iaq52yi580-argyllcms-2.0.0/bin/cb2ti3
shrinking /nix/store/hh6cqaai79dsh200g3c581iaq52yi580-argyllcms-2.0.0/bin/fakeCMY
shrinking /nix/store/hh6cqaai79dsh200g3c581iaq52yi580-argyllcms-2.0.0/bin/colprof
shrinking /nix/store/hh6cqaai79dsh200g3c581iaq52yi580-argyllcms-2.0.0/bin/synthread
strip is /nix/store/b0zlxla7dmy1iwc3g459rjznx59797xy-binutils-2.28.1/bin/strip
stripping (with command strip and flags -S) in /nix/store/hh6cqaai79dsh200g3c581iaq52yi580-argyllcms-2.0.0/bin
patching script interpreter paths in /nix/store/hh6cqaai79dsh200g3c581iaq52yi580-argyllcms-2.0.0
checking for references to /tmp/nix-build-argyllcms-2.0.0.drv-0 in /nix/store/hh6cqaai79dsh200g3c581iaq52yi580-argyllcms-2.0.0...
/nix/store/hh6cqaai79dsh200g3c581iaq52yi580-argyllcms-2.0.0

Success on aarch64-linux (full log)
Partial log (click to expand)
shrinking /nix/store/2m4fbjj8vf7hwaw688flsd729dfziin9-argyllcms-2.0.0/bin/specplot
shrinking /nix/store/2m4fbjj8vf7hwaw688flsd729dfziin9-argyllcms-2.0.0/bin/extractttag
shrinking /nix/store/2m4fbjj8vf7hwaw688flsd729dfziin9-argyllcms-2.0.0/bin/extracticc
shrinking /nix/store/2m4fbjj8vf7hwaw688flsd729dfziin9-argyllcms-2.0.0/bin/kodak2ti3
shrinking /nix/store/2m4fbjj8vf7hwaw688flsd729dfziin9-argyllcms-2.0.0/bin/timage
strip is /nix/store/lvx1acn1ig1j2km8jds5x3ggh3f2wa8v-binutils-2.28.1/bin/strip
stripping (with command strip and flags -S) in /nix/store/2m4fbjj8vf7hwaw688flsd729dfziin9-argyllcms-2.0.0/bin
patching script interpreter paths in /nix/store/2m4fbjj8vf7hwaw688flsd729dfziin9-argyllcms-2.0.0
checking for references to /build in /nix/store/2m4fbjj8vf7hwaw688flsd729dfziin9-argyllcms-2.0.0...
/nix/store/2m4fbjj8vf7hwaw688flsd729dfziin9-argyllcms-2.0.0

@GrahamcOfBorg build displaycal colord

No attempt on x86_64-darwin
The following builds were skipped because they don't evaluate on x86_64-darwin: displaycal, colord
No log is available.

Success on x86_64-linux (full log)
Attempted: displaycal, colord
Partial log (click to expand)
warning: no previously-included files matching '*.backup' found anywhere in distribution
warning: no previously-included files matching '*.bak' found anywhere in distribution
writing manifest file 'DisplayCAL.egg-info/SOURCES.txt'
running build_ext
copying build/lib.linux-x86_64-2.7/DisplayCAL/lib64/python27/RealDisplaySizeMM.so -> DisplayCAL/lib64/python27

----------------------------------------------------------------------
Ran 0 tests in 0.000s

OK

Success on aarch64-linux (full log)
Attempted: displaycal, colord
Partial log (click to expand)
shrinking /nix/store/637659rpj3kk91law6l86k8pkszxw330-colord-1.4.1/lib/colord-plugins/libcolord_sensor_camera.so
shrinking /nix/store/637659rpj3kk91law6l86k8pkszxw330-colord-1.4.1/lib/libcolorhug.so.2.0.5
shrinking /nix/store/637659rpj3kk91law6l86k8pkszxw330-colord-1.4.1/lib/libcolord.so.2.0.5
shrinking /nix/store/637659rpj3kk91law6l86k8pkszxw330-colord-1.4.1/lib/libcolordprivate.so.2.0.5
strip is /nix/store/lvx1acn1ig1j2km8jds5x3ggh3f2wa8v-binutils-2.28.1/bin/strip
stripping (with command strip and flags -S) in /nix/store/637659rpj3kk91law6l86k8pkszxw330-colord-1.4.1/lib  /nix/store/637659rpj3kk91law6l86k8pkszxw330-colord-1.4.1/libexec  /nix/store/637659rpj3kk91law6l86k8pkszxw330-colord-1.4.1/bin
patching script interpreter paths in /nix/store/637659rpj3kk91law6l86k8pkszxw330-colord-1.4.1
checking for references to /build in /nix/store/637659rpj3kk91law6l86k8pkszxw330-colord-1.4.1...
/nix/store/84q0yb1n87d17hsjgya4gqrll55jnrmf-python2.7-displaycal-<IP_ADDRESS>
/nix/store/637659rpj3kk91law6l86k8pkszxw330-colord-1.4.1


[WIP] SuperSlicer <IP_ADDRESS> and SuperSlicer <IP_ADDRESS>

Description of changes

Updates super-slicer-latest to <IP_ADDRESS> (based on #195185): https://github.com/supermerill/SuperSlicer/releases/tag/<IP_ADDRESS>
Adds super-slicer-beta for release <IP_ADDRESS>: https://github.com/supermerill/SuperSlicer/releases/tag/<IP_ADDRESS>
Remove workaround for https://github.com/supermerill/SuperSlicer/issues/432 which shouldn't be necessary anymore
Use tbb_2021_8 because super-slicer-beta requires a newer TBB version. Also add an override for openvdb since it requires TBB itself and the TBB versions should match (there's a warning otherwise, not sure if it's harmful, but better safe than sorry) It turns out the openvdb override is more complicated than I thought (causes a number of build issues), so I removed it again.

Things done

Built on platform(s)

[ ] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
23.05 Release Notes (or backporting 22.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

@ofborg build super-slicer.stable super-slicer.latest super-slicer.beta

Current status:

x86_64-linux: Compiles and runs fine
aarch64-linux: Intermittent OfBorg failures for super-slicer that look like memory exhaustion (g++: fatal error: Killed signal terminated program cc1plus) - these are probably caused by the very high number of NIX_BUILD_CORES (-j80 according to the logs). In theory we could disable parallel building on aarch64-linux, but I don't think this is really necessary.
x86_64-darwin: Compiling OpenVDB fails because TBB 2021.8 makes use of an aligned allocation feature not present in the default macOS SDK. I'm currently investigating how to fix this the best way. In theory it's enough to use darwin.apple_sdk_11_0.callPackage for OpenVDB, but this issue theoretically affects all packages using TBB 2021.8 on Darwin. My current theory is that all packages using tbb_2021_8 should use darwin.apple_sdk_11_0. I'm currently testing whether the Apple SDK override is transitive, as that would be the best solution IMO.
aarch64-darwin: Also compiles fine, which is actually surprising since I'd have thought the Apple SDK issue should also affect aarch64-linux

@ofborg build super-slicer.latest

@ofborg build super-slicer.latest

@ofborg build super-slicer.latest

@ofborg build prusa-slicer super-slicer.beta super-slicer

@ofborg build prusa-slicer

@ofborg build super-slicer.stable super-slicer.latest super-slicer.beta

When this gets merged please mark (#222788)[https://github.com/NixOS/nixpkgs/issues/222788] as closed.

What is the state of this? Why is this still Draft PR? Where can I help to speed this up?

Should we include a fix for https://github.com/NixOS/nixpkgs/issues/245255 here or do a separate PR?

@hesiod - Any update on whether this is still being worked on? Looks like there's a requested change and some others willing to help out. Also will probably need to include the wxWidgets version to prevent the segfault.

I've created a PR for the default issue https://github.com/NixOS/nixpkgs/pull/246027

@ofborg build super-slicer.stable super-slicer.latest super-slicer.beta

@ofborg build super-slicer.stable super-slicer.latest

@Moredread @Slabity @matejc Thanks for your patience. The PR is now ready for final review.
Help with building and testing the different version on different architectures would be greatly appreciated. Unfortunately the packages take a while to build, and I can only really test on x86_64-linux.
Regarding the CI failures:

aarch64-linux fails occasionally due to OOM during compilation. There's nothing we can really do about that, but I'm somewhat hopeful it should work.
Darwin builds fail because mesa is marked as broken on Darwin, and we depend on Mesa via OpenCASCADE. I think the dependency on Mesa might be newly introduced and not really necessary, but I don't really want to investigate this further since I'm not using Darwin. Unless I'm mistaken, we previously had working PrusaSlicer/SuperSlicer builds on Darwin. Anyways, this is not a new failure due to this PR.

Can someone please rebase and address merge conflicts?

@GrahamcOfBorg build prusa-slicer super-slicer super-slicer-beta super-slicer-latest

Sorry for not paying attention for so long. Built and tested 2.4 — works and slices as intended. Set beta building, and will check as soon as that finished as well.

Both act just as AppImages — including 2.5 failing on vase mode)
@hesiod should I merge?

(I was a bit confused for a moment that you've included tmarkus in the maintainer list, although that's some absolutely random human on github — is there a story behind why you are hesiod on gh yet tmarkus in maintainer list? :) )


The blobs doesn't auto display after pasting one blob container to one name & key attached account

Storage Explorer Version: 1.14.0-dev
Build: 20200602.3
Branch: master
Platform/OS: Windows 10/ macOS Mojave
Architecture: ia32/x64
Regression From: Previous release(1.13.1)
Steps to reproduce:

Attach one Non-ADLS Gen2 storage account via name & key.
Expand the attached storage account -> Blob Containers.
Paste one blob container which contains the blobs to it.
Check whether the blobs auto display or not.

Expect Experience:
The blobs auto display.
Actual Experience:
The blobs doesn't auto display.

More Info:
The blobs display after manually refreshing.

Verified this issue on build 20200609.1. Reproduce. So we re-open it.

The corresponding CloudExplorer has been updated. This issue should have been fixed.

Verified this issue on build 20200610.2. Fixed.


Upgrade Cairo0-ERC-4906 to Cairo 2.6

Description
Upgrade the implementation of ERC-4906 to Cairo 2.6 from the Cairo0 repo using Starknet components.
Additional Information
[Medium Difficult  - Cairo - high Priority]
Acceptance Criteria

[ ] Implementation of a component-based ERC-4906

Hey @tekkac  @Khyati729 , may i be assigned to this issue?
Thank you!


Jhendr m365 community

Content fix:  formatting issue

Docs Build status updates of commit dca8772:
:white_check_mark: Validation status: passed
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.


Fix the input component

Sometimes the setTimeout dose not well work
PR Checklist

[ ] Fix linting errors
[x] Label has been added

Change information

Thanks. Looks better.
Can you rebase branch to follow master branch? I will merge request later.

Ok, I'd rebase the master


Improve build documentation

Improves the build instructions and documentation in the README.md

docs: document compiling in a docker image
This is useful for people that are not running a Debian/Ubuntu
system.

docs: remove Docker cross-compile instructions
These docs only work for a arm32, which causes a bit of confusion in #209.
Additionally, these were originally to cross-compile for OpenWRT, but we now have the toolchains in CMakeModules/CMakeToolchains that can be used for this.

docs: document cmake --list-presets options

docs: document using CMake toolchain files
This is how people can add their own cross-compiling configurations

build: standardise CMake preset names
All of the OpenWRT presets now have the version they are. (e.g. that they use OpenWRT-19.07.10)

docs: add OpenWRT package feed link
Adds a link to https://github.com/nqminds/manysecured-openwrt-packages and recommends using that to compile edgesec.
Additionally, I added a badge that links to the feed

Great docs.

The main thing I don't like is how the OpenWRT badge looks, but :shrug:


Make SoapySource/Sink new() parameters optional

Using the dev parameter allows for flexibility in preconfiguring a Soapy device, but the freq,sample_rate, and gain parameters are always applied, which may override the desired device settings.
I propose making those inputs Option<>.
A PR will follow shortly.
There are some other architecture questions I have about the Soapy implementation (and block/arch in general), perhaps the discussion area (Q&A?) might be the right place for that?
For example, is Kernel::init() the mandated place for all device init, as opposed to doing it during creation of the block. It seems cleaner to me to init the device (and stream) in new() and just do the stream.activate() in Kernel.init(). That would alleviate the need to carry the initialization params in the sink/source struct, only to be used during flowgraph initialization.

Thanks for the PR!
Regarding init: I agree that the code would be nicer, if this was done during creation of the block. However, in the future, it should be possible to stop, reconfigure, and restart a flowgraph. In that case, init would be run every time the flowgraph is (re)started. At least that was the idea when adding it.
Also Soapy and the underlying drivers might have uncommon constraints and init is run in the context of the thread that's running work. In case, a driver uses thread local storage, it would break things, if we opened in the constructor. (Thinking about this, that's yet another thing that the dev parameter breaks :-)).
Maybe, we should double-down on the builder pattern? Then we could keep the builders around and just create new blocks when we restart flowgraph?
As mentioned on Discord, my plan was anyhow to have serializable builders to allow straightforward flowgraph instantiation on remote hosts.


Helper classes for DataSerializable implementation.

What changes were proposed in this pull request?
This is to provide support for DataSerializable implementation in AQP
How was this patch tested?
Precheckin.

Related PRs:
https://github.com/SnappyDataInc/snappy-aqp/pull/116
https://github.com/SnappyDataInc/snappydata/pull/432


reassembly: Flush might close half connection and cause data loss.

If assembler.FlushWithOptions is called, and one of the halfConnection is seen only before the specified time, half of the connection is closed. If another packet that belongs to this halfConnection is received, the stream pool returns the main connection, with half connection closed, and the data is discarded without and error or log message.
 func (a *Assembler) AssembleWithContext(netFlow gopacket.Flow, t *layers.TCP, ac AssemblerContext) {
    // ...

    if half.closed {
        return
    }

    // ...
}

Great @noibar , second bug fixed into @sentryo contribution (defrag and reassembly)
Hey, we are hiring by the way ;-)


support ESM modules for rootHooks

With #4244 landing and #4304 thereafter, we should ensure that root hook plugins can be used with ES modules; e.g. export const mochaHooks = {..}
I'll take care of this.  Should probably land for v8, as it would be confusing if it didn't.

Actually I think it does work.  wow, good job

Hmm, I don't like the failure mode when --require some-esm.js (instead of .mjs).  The error is unrelated and unhelpful

closes #4316

closed via #4311


Can't interact with page while Snackbar is visible

While a Snackbar is visible, the rest of the page doesn't get mouse events.
I was going to add a persistent bar reminding the user to reload the page if I detect that there's a newer version of the site, but that prevented people from using the site until they dismissed the bar.

I think I know why is happening. I'm going to fix it tonight, thanks for reporting @alltom !!

Not yet, I've been quite busy last week. I'll try to move it later today!

Thanks for adding that fix :-)
Worth noting that the pointer-events prop that you added won't work in IE < 11, which made me wonder what baseline browser config react-toolbox supports?

Truth is I'm not worrying too much about cross-browser issues. I'd like to support lower versions than IE11 in a new iteration soon. For now I can guarantee react-toolbox works in all latest Chrome, Safari and Firefox since they are the ones I can test physically.


CSV export

Can we get CSV export or API to import wallet in tax calculate apps, such as koinly.io

Hey we have no plans to add such feature at the moment. Something like this can be built as an external dApp, which provides more insights into your account.


[orderbook][top-bids] fixing top bids processing

It seems that the top-bids are wrongly calculated when updated by watchers.
Based on the comments and code
https://github.com/blockworks-foundation/mango-explorer/blob/v3.2.8/mango/orders.py#L238
the top-bid should be at index 0. That's to reverse the order of the list. That's what the init function in OrderBook does. That's what is not done when updated in watchers
https://github.com/blockworks-foundation/mango-explorer/blob/v3.2.8/mango/watchers.py#L224
the order reverse is not processed and the top-bid then returns the bid at tail.
Not sure if reversed is correctly used at pandas dataframe creation - https://github.com/blockworks-foundation/mango-explorer/blob/v3.2.8/mango/orders.py#L284

Thanks!
As background, the OrderBook is newer than the Watcher code and it looks like I missed this when updating things. Apologies, and thanks for finding and fixing it.
I was going to just immediately apply this PR but then I thought I'd pick your brains on a couple of points.

Would it be better to have getter/setter properties hiding a private member for bids and asks? The logic you have in update_bids(), say, would then be in the bids setter. It might be a more obvious interface and it might help stop me making this mistake again.
Can you think of any useful tests around this? I'm trying to add more tests as I go along now, and I realise the OrderBook currently has none.

I'm happy to apply this PR as-is (thanks again), but I figured I'd ask those questions first.

@OpinionatedGeek +1, I will elaborate on the PR based on your suggestions. Hopefully today/tomorrow I could have the updated code.

@OpinionatedGeek I started with this but I found that I doubt about one thing - implicit ordering by order.id - the init considers the ordering by price being implicit to order id
https://github.com/blockworks-foundation/mango-explorer/blob/v3.2.8/mango/orders.py#L234
is it so? Is it something the Mango Explorer count with?

Hi,
That's intentional. It would benefit from testing, of course, but it's intentional.
The reasoning is interesting, and worth knowing. Mango follows the Serum practice for order IDs, and they're a kind of compound piece of data.
The ID is a 16-byte 'int' where:

The low 8 bytes encodes the sequence number from the market (just an auto-increment int, I think).
The high 8 bytes encodes the price.

The result of this is an int that can be used for sorting orders, and will sort them by price, and then sort entries with the same price by 'time priority' so that earlier orders are filled before later orders.
You can see an example of parsing the 'compound ID' here: https://github.com/blockworks-foundation/mango-explorer/blob/d49294f2cd8d3521062e228013e240b193909ca8/mango/layouts/layouts.py#L237

@OpinionatedGeek thanks a lot for elaboration on how the things work under the hood. I changed the tests to follow this detail and I hope the PR is ready for your review now.
(I searched the code and haven't found a method to be used for the fake construction of order id so I added one to fakes.py)

Thank you so much for doing this!

@OpinionatedGeek no problem. Thanks for the mango explorer (+thanks for fixing the linting issues, my bad on not fixing them).


Some files get saved without change

Tested versions
4.2.2
System information
Windows10
Issue description
I'm using p4 as my VCS, and it has a behaviour that all files that is not opened for edit will be locked, thus Godot will prompt "Unable to write to file XXX, file in use, locked or lacking permission."  Most of the time this is not an issue, but with this setup I find that some files is getting saved at some strange point:
project.godot is saved right after project is opened,
*.tres is saved everytime that any scene is saved, even though I didn't modify them.
This is not causing some actual problem, just a little annoying and can generate some .tmp file in this particular setup.
Steps to reproduce

have a p4 setup, submit a project with a scene and a tres file (maybe just remove the permission from these file to simulate the situation, don't know if that works)
without any file opened for edit in p4, reopen Godot and ctrl+s on any scene, you should see the prompt on all the files I mentioned during the process

Minimal reproduction project (MRP)
Not necessary, a newly created project can meet all requirements.

I suspect this is simply an issue based on the behavior of this third-party software, and it sounds like it is the cause of this, and that Godot isn't really responsible for compensating for that, I don't know what Godot could do differently if that software is holding these files as in use

It's not about the prompt thing, it's the save action seems wrong. Why write those files when they are not modified?

Are you sure they aren't updated for other reasons? The project.godot file is regularly updated with data and checks, please verify that they aren't written to for a reason. I'd also say it's reasonable to just mark them as written to update most recently updated as you actively save, if you press save I'd expect the editor to actually save

Yes, the version control diff gives no difference, also those files only get below 10 revisions, if they are actually modified all the time I would already have hundreds revisions on them.
And yes, this is just a minor detail thing.

Well, you could say that, it's just kind of thing I would fix in my development so I filed this issue. I'm sort of perfectionist for sure. It's totally reasonable to ignore this minor detail.

If you can work out a solution to it you're very welcome to open a PR to see what people think, but I think there are enough reasons to allow saving to be done when the user explicitly wants it to not change it
The changing of project.godot might be something to consider, but that might matter for sorting recent projects etc., so would need to be looked into

Thanks for the report! Consolidating in https://github.com/godotengine/godot/issues/31186 and https://github.com/godotengine/godot/issues/63324, as this is due to the same cause.


New line in a tooltip

Is there a way to put new line character in a tooltip?

Yes, just use HTML content with either
 or
 tag

When I put
, it just shows
 as a text, it does not render a new line.

I would refer you to the documentation:
https://hekigan.github.io/vue-directive-tooltip/#usage
And read the "Referencing an HTML element" bit.
You can not use directly HTML.