Cannot open webview in Firefox

Open insiders.vscode.dev
New Text file
Write some markdown
Markdown: Open preview

An error notification shows: "Error loading webview: Error: Could not register service workers: SecurityError: The operation is insecure.."
This doesn't occur in vscode.dev, only in insiders.vscode.dev.

Error in console upon opening a webview:
Failed to register/update a ServiceWorker for scope ‘https://0ek3bbl1lmkc4n7falg65hlqlb313tdsphtuh3mm9virmtitlhs6.vscode-cdn.net/insider/052d5b0027f6c9d64c8ca35955cb5117ba94d5d7/out/vs/workbench/contrib/webview/browser/pre/’: Storage access is restricted in this context due to user settings or private browsing mode.

I disabled cross-site cookie blocking, which is one of the standard privacy options that Firefox has turned on, and then it worked. Not sure if there's anything to be done here.

It'd be cool if VS Code would show a notification when service workers are unavailable (due to whatever reason). Otherwise extensions with webviews silently (well, kinda) break and users are confused.

Duplicate of #142813
@pfitzseb We already do show an error in these cases


Support ArangoDB Driver 7.0

A first snapshot release of ArangoDB Java Driver version 7.0 has been published, see https://github.com/arangodb/arangodb-java-driver/releases/tag/v7.0.0-SNAPSHOT-1.
Please keep in mind that this is a snapshot release. It is suited for testing purposes only and is NOT for production usage. It is solely meant to allow users and libraries maintainers trying out the new features and reviewing the API changes, before the general availability of the stable release.
You might consider verifying if your project is compatible with it and can benefit from the new added features.
Here you can find a detailed description of the new features and API changes:
https://github.com/arangodb/arangodb-java-driver/blob/v7/docs
Feedback and questions are welcome in our dedicated driverdev Slack channel (https://arangodb-community.slack.com/archives/C1R1A2TFC).
--
Michele Rastelli
Java Engineer
ArangoDB GmbH

The Async API will be reworked and re-added in a future version 7.x. Version 6 will be in the meanwhile still supported.

Version 7.0.0 has been just released.

Thanks for letting me know, but until 7.x has async support, Scarango won't be updating.

In order to solve some threading issues resulting from ArangoDB Java Driver's async support I've gone ahead and upgraded to 7.


Add in the latest postgis database driver - fixes #1371

Should fix https://github.com/django-extensions/django-extensions/issues/1371

Coverage increased (+0.4%) to 71.116% when pulling ee5dc25ebaa67f5aca6e258c73660938df8492ec on jensenbox:patch-1 into 6a92eecd042bcbcaddb319b66a67504ac4e20036 on django-extensions:master.

Thanks for the PR!
But I already committed 43a7da4c44f58fb85db2edab9bb91bd54b01e23e before seeing your PR. (sorry about that)


webview headers, the echo page will still show the previous header value.

Originally posted by @facebook-github-bot in https://github.com/facebook/react-native/issues/9814#issuecomment-260228435

When I first visited the same address, headers was the same as the second visit (but headers has changed).


Improve the SHA1 library

Changes include:

Method visibility declarations (related to #803)
Speed optimizations
Cleaned up some unnecessary code & white spaces

hrm, this library is actually deprecated in Version 2.0.2.  So while I like what you've done, I'm not dead sure we should merge it in at this point.  Thoughts?  @philsturgeon @ericbarnes @pkriete

Yeah, somebody already noted that it's deprecated, but since it's not already removed - I just figured I might do a few improvements, just in case.


Bruh! you shouldn't be squading on this name

Please either maintain the pkg or archive the gem so people are not wasting time dealing with a non-working lib.

This project and gem should be archived.
To all those who reached here from OpenAI recommendation, please consider using well maintained https://github.com/alexrudall/ruby-openai

*Squatting

Hey @nileshtrivedi , thanks for this :) I'd be happy to switch the ruby-openai gem to the namespace if you/openai were happy with it.

@alexrudall Yeah, I'm okay with it.
I tried posting this in the OpenAI discord but hit some rule against posting non-whitelisted URLs.
I pinged Greg on Twitter but don't think he saw it: https://twitter.com/nileshtrivedi/status/1758841650334294447
If you can help me get some attention from someone on OpenAI staff, it would be helpful.

Comment in openai discord: https://discord.com/channels/974519864045756446/1037561178286739466/1208637169716043807

@nileshtrivedi DMd you on twitter

I’m planning to revive this library. Commits coming soon.

@sferik If you'll be able to maintain this gem, I'm happy to transfer this github repo to you. You also already have the gem ownership in Rubygems.

I'm actively working on this gem now. Closing this issue.


Add documentation on common exit statuses

Potential non-zero exit status need to be documented properly to give users an idea of what went wrong and how to resolve any issues. A dedicated troubleshooting guide is added to compliment this work.
Fixes #9
Signed-Off-By: Robert Clark<EMAIL_ADDRESS>

Updated the exit codes and changed the doc a bit to reflect the latest updates to the repo. I included a bit of space in the exit codes to group together similar items. For example, future updates will include more error handling for Docker and I plan on having those codes in the -30s while future parser errors will land in the -20s.


Bordered display style does not support circles that aren't full

Bug Report
:warning: Your issue will be closed if these are not filled out. :warning:
Version
3.3.2
Overview of what you tried to do
Use Bordered ring style with fullCircle set to false, startAngle set to 180 and endAngle set to 360
What is the expected outcome?
Border should display correctly around the half circle drawn
What is the actual outcome?
Border tried to draw a full circle that filled the space of the half circle. Border did not line up with the ring being drawn
Post sample code or example here
If sample code can't be provided because it's too long, please provide a small example project,
where I can test, if you cannot provide either. There is not much I can do.
        let ring = UICircularProgressRing()
        ring.fullCircle = false
        ring.startAngle = 180
       ring.endAngle = 360
       ring.ringStyle = .bordered
//Draw ring

Have you tried fixing this yourself?
This project is open source, and I'm a student with very minimal amount of time.
Please give an attempt at fixing the issue first before creating a bug report.
This saves everyone time and benefits anyone who uses the library.
Pull requests are welcome!

Seems like the border is just being drawn as a full circle then?
Will look into this when I get a chance, thanks.


Feeds get marked as unread

In the last few weeks all my feeds get marked as unread one by one. The first few times I thought that it was the case of a feed being republished.
I don't use any sync account (waiting for CloudKit based sync), so it happens all on the local account My iPhone.
Things I noticed:

it doesn't happen every day
it is not limited to one feed a day
it is not all the feeds at the same time
a feed with all items unread doesn't appear again with all items unread (so it's a one time thing?)

Panic articles from the past in the all unread smart feed

Six Colors with 503 unread articles

With Six Colors there was a server side change that accounts for this. But that’s not necessarily true for the others.

I’m experiencing same thing with random feeds.

@brentsimmons okay that could be the case for a few of them. But not all of them. Is there something I can do to debug this?

did not happen again :)


Automated cherry pick of #1563: add deploy failed action log

Cherry pick of #1563 on release/2.10.0.
#1563: add deploy failed action log

Codecov Report

:exclamation: No coverage uploaded for pull request base (release/2.10.0@631ea33). Click here to learn what that means.
The diff coverage is n/a.

@@               Coverage Diff                @@
##             release/2.10.0   #1565   +/-   ##
================================================
  Coverage                  ?   7.71%
================================================
  Files                     ?     409
  Lines                     ?   62274
  Branches                  ?       0
================================================
  Hits                      ?    4807
  Misses                    ?   57058
  Partials                  ?     409

Flag
Coverage Δ

#aFlag
7.71% <ø> (?)

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 631ea33...a535a01. Read the comment docs.

/lgtm
/approve


Explicit protocol selection breaks DS HTTP egress

Bug Description
We are currently testing a dual-stack solution for Istio, loosely based on istio/istio#29076, ie by using :: ipv4_compat listeners serving both IP families for any/all wildcards (<IP_ADDRESS> or ::). For testing we rebuilt pilot-agent with (only) the istio/istio#35310 changes to achieve IPv6 traffic interception and plugged it in to the official istio/proxyv2:1.11.2 image.
In the 1.10 release this had already been working quite well. Now trying to resume the testing on 1.11, one direct HTTP egress case has started failing when/if explicit protocol selection is used (ie using name=http-port or appProtocol=http in the k8s service). Requests that would previously route to the correct endpoint now suddenly end up in BlackHoleCluster (using REGISTRY_ONLY setting, otherwise Passthrough).
What is more, when running an ip6tables-enabled 1.10-based client in the 1.11 control plane, it still manages to connect to the external HTTP service.
Removing the port name/appProtocol fields from the k8s service immediately restores connectivity to the external service on the 1.11-based client.
It appears that enabling explicit protocol selection removes the HttpProtocolOptions setting from the outbound service clusters and replaces the separate <SVC_IPv4>_80 / <SVC_IPv6>_80 listeners by a singular wildcard <IP_ADDRESS>_80 listener. But this behavior does not seem to be new and had previously worked when modifying the listener to :: ipv4_compat, as described.
Version
$ istioctl version
client version: 1.11.2
control plane version: 1.11.2
data plane version: 1.10.4 (1 proxies), 1.11.2 (1 proxies)
$ kubectl version --short
Client Version: v1.18.2
Server Version: v1.21.2

Additional Information
DS cluster
Set-up using kind and the following config file:
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
networking:
  ipFamily: dual

Istio
Deployed using helm:
$ helm install --namespace istio-system --create-namespace istio-base manifests/charts/base
$ helm install --namespace istio-system istiod manifests/charts/istio-control/istio-discovery --set meshConfig.accessLogFile=/dev/stdout --set meshConfig.outboundTrafficPolicy.mode=REGISTRY_ONLY

Test resources
EnvoyFilter replacing the outbound 15001 listener (minimal solution, but we have actually replaced ALL wildcards with same results)
apiVersion: networking.istio.io/v1alpha3
kind: EnvoyFilter
metadata:
  name: sidecar-outbound-ipv4compat-listener
spec:
  configPatches:
  - applyTo: LISTENER
    match:
      context: SIDECAR_OUTBOUND
      listener:
        portNumber: 15001
    patch:
      operation: MERGE
      value:
        address:
          socket_address:
            address: "::"
            ipv4_compat: true

Service, separately exposed via IPv4 and IPv6:
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: httpbin
  name: httpbin
spec:
  selector:
    matchLabels:
      app: httpbin
  template:
    metadata:
      annotations:
        sidecar.istio.io/inject: "false"
      labels:
        app: httpbin
        sidecar.istio.io/inject: "false"
    spec:
      containers:
      - args:
        - -b
        - '[::]:80'
        - --access-logfile
        - '-'
        - httpbin:app
        command:
        - gunicorn
        image: kennethreitz/httpbin
        imagePullPolicy: Always
        name: httpbin
---
apiVersion: v1
kind: Service
metadata:
  labels:
    app: httpbin4
  name: httpbin4
spec:
  ipFamilies:
  - IPv4
  ipFamilyPolicy: SingleStack
  ports:
  - name: http-port ## this works fine in the current test
    port: 80
    protocol: TCP
    targetPort: 80
  selector:
    app: httpbin
---
apiVersion: v1
kind: Service
metadata:
  labels:
    app: httpbin6
  name: httpbin6
spec:
  ipFamilies:
  - IPv6
  ipFamilyPolicy: SingleStack
  ports:
  - name: http-port ## this causes the problem
    port: 80
    protocol: TCP
    targetPort: 80
  selector:
    app: httpbin

ip6tables-enabled clients (1.10 and 1.11):
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: client
  name: client
spec:
  selector:
    matchLabels:
      app: client
  template:
    metadata:
      annotations:
        sidecar.istio.io/inject: "true"
        sidecar.istio.io/proxyImage: <PRIVATE_REGISTRY>/proxyv2:1.11.2-h9554646
      labels:
        app: client
        sidecar.istio.io/inject: "true"
    spec:
      containers:
      - args:
        - 3650d
        command:
        - sleep
        image: curlimages/curl
        imagePullPolicy: Always
        name: curl
---
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: clientold
  name: clientold
spec:
  selector:
    matchLabels:
      app: clientold
  template:
    metadata:
      annotations:
        sidecar.istio.io/inject: "true"
        sidecar.istio.io/proxyImage: <PRIVATE_REGISTRY>/proxyv2:1.10.4-h50704d3
      labels:
        app: clientold
        sidecar.istio.io/inject: "true"
    spec:
      containers:
      - args:
        - 3650d
        command:
        - sleep
        image: curlimages/curl
        imagePullPolicy: Always
        name: curl

Reproduction
NAMESPACE=test
CLIENT110=$(k get po -n "${NAMESPACE}" -l app=clientold -o name)
CLIENT111=$(k get po -n "${NAMESPACE}" -l app=client -o name)

k logs -n "${NAMESPACE}" "${CLIENT111}" -c istio-proxy --since=1s -f &
k logs -n "${NAMESPACE}" "${CLIENT110}" -c istio-proxy --since=1s -f &

k exec -n "${NAMESPACE}" "${CLIENT111}" -c curl -- curl -s http://httpbin4/status/418
    -=[ teapot ]=-
...
[2021-09-22T15:31:35.170Z] "GET /status/418 HTTP/1.1" 418 - via_upstream - "-" 0 135 3 2 "-" "curl/7.78.0-DEV" "a7f4fd3f-7fa4-4530-aaf8-ad535728d38e" "httpbin4" "<IP_ADDRESS>:80" outbound|80||httpbin4.test.svc.cluster.local <IP_ADDRESS>:40414 <IP_ADDRESS>:80 <IP_ADDRESS>:43840 - default
k exec -n "${NAMESPACE}" "${CLIENT111}" -c curl -- curl -s http://httpbin6/status/418
command terminated with exit code 56
2021-09-22T15:57:40.796066Z	debug	envoy filter	original_dst: New connection accepted
2021-09-22T15:57:40.796182Z	debug	envoy filter	[C8339] new tcp proxy session
2021-09-22T15:57:40.796222Z	debug	envoy filter	[C8339] Creating connection to cluster BlackHoleCluster
[2021-09-22T15:57:40.796Z] "- - -" 0 UH - - "-" 0 0 0 - "-" "-" "-" "-" "-" BlackHoleCluster - [fd00:10:96::c6a5]:80 [fd00:10:244::12]:35630 - -

k exec -n "${NAMESPACE}" "${CLIENT110}" -c curl -- curl -s http://httpbin4/status/418
    -=[ teapot ]=-
...
[2021-09-22T15:33:42.301Z] "GET /status/418 HTTP/1.1" 418 - via_upstream - "-" 0 135 1 1 "-" "curl/7.78.0-DEV" "b4618d63-dde1-44a9-a8db-cff2dc9dd25e" "httpbin4" "<IP_ADDRESS>:80" outbound|80||httpbin4.test.svc.cluster.local <IP_ADDRESS>:33772 <IP_ADDRESS>:80 <IP_ADDRESS>:37750 - default
k exec -n "${NAMESPACE}" "${CLIENT110}" -c curl -- curl -s http://httpbin6/status/418
    -=[ teapot ]=-
...
[2021-09-22T15:33:49.741Z] "GET /status/418 HTTP/1.1" 418 - via_upstream - "-" 0 135 1 0 "-" "curl/7.78.0-DEV" "19c67766-b786-4b76-900a-01b00549b4b0" "httpbin6" "[fd00:10:244::a]:80" outbound|80||httpbin6.test.svc.cluster.local [fd00:10:244::13]:56000 [fd00:10:96::c6a5]:80 [fd00:10:244::13]:60424 - default

k edit svc -n "${NAMESPACE}" httpbin4 # remove port name
k edit svc -n "${NAMESPACE}" httpbin6 # both MUST be changed to see the problem!!

k exec -n "${NAMESPACE}" "${CLIENT111}" -c curl -- curl -s http://httpbin4/status/418
    -=[ teapot ]=-
...
[2021-09-22T15:36:53.316Z] "GET /status/418 HTTP/1.1" 418 - via_upstream - "-" 0 135 1 1 "-" "curl/7.78.0-DEV" "d9d49c3f-1fe1-4459-ade2-a62344c2ad98" "httpbin4" "<IP_ADDRESS>:80" outbound|80||httpbin4.test.svc.cluster.local <IP_ADDRESS>:54818 <IP_ADDRESS>:80 <IP_ADDRESS>:58244 - default
k exec -n "${NAMESPACE}" "${CLIENT111}" -c curl -- curl -s http://httpbin6/status/418
    -=[ teapot ]=-
...
[2021-09-22T15:36:59.511Z] "GET /status/418 HTTP/1.1" 418 - via_upstream - "-" 0 135 3 2 "-" "curl/7.78.0-DEV" "4d1f75ea-ca9b-4da1-8887-ad7707fd2c8a" "httpbin6" "[fd00:10:244::a]:80" outbound|80||httpbin6.test.svc.cluster.local [fd00:10:244::12]:57726 [fd00:10:96::c6a5]:80 [fd00:10:244::12]:35988 - default

k exec -n "${NAMESPACE}" "${CLIENT110}" -c curl -- curl -s http://httpbin4/status/418
    -=[ teapot ]=-
...
[2021-09-22T15:37:05.464Z] "GET /status/418 HTTP/1.1" 418 - via_upstream - "-" 0 135 3 2 "-" "curl/7.78.0-DEV" "19a6f324-e791-4829-8cf3-eccc4a8b79f1" "httpbin4" "<IP_ADDRESS>:80" outbound|80||httpbin4.test.svc.cluster.local <IP_ADDRESS>:42986 <IP_ADDRESS>:80 <IP_ADDRESS>:46964 - default
k exec -n "${NAMESPACE}" "${CLIENT110}" -c curl -- curl -s http://httpbin6/status/418
    -=[ teapot ]=-
...
[2021-09-22T15:37:10.349Z] "GET /status/418 HTTP/1.1" 418 - via_upstream - "-" 0 135 4 2 "-" "curl/7.78.0-DEV" "65a39f61-f58a-4257-9c84-7f57bfcb5985" "httpbin6" "[fd00:10:244::a]:80" outbound|80||httpbin6.test.svc.cluster.local [fd00:10:244::13]:36888 [fd00:10:96::c6a5]:80 [fd00:10:244::13]:41312 - default

Proxy config dumps
named-port-config-1112.txt
unnamed-port-config-1104.txt
unnamed-port-config-1112.txt
named-port-config-1104.txt

Patching the port 80 wildcard listener as well

  - applyTo: LISTENER
    match:
      context: SIDECAR_OUTBOUND
      listener:
        portNumber: 80
    patch:
      operation: MERGE
      value:
        address:
          socket_address:
            address: "::"
            ipv4_compat: true

Switches the roles: IPv4 fails, IPv6 works

The behavior is result of the new Envoy runtime guard envoy.reloadable_features.listener_wildcard_match_ip_family. That seems to filter listeners by IP family matching the request. But :: listeners using the ipv4_compat socket option appear to be discarded when processing IPv4 requests, despite the fact that they are perfectly capable of handling the request...
I don't know if there is any interest from Istio side to use this information to potentially disable the runtime guard? Probably not while there is no dual-stack support, and maybe not even when/if that should come!?


Updeps

Coverage remained the same at 97.281% when pulling 29a3aecbcb75ba025d6b3f8570aaf287ca40e40c on updeps into 7b347a6b96044505e93b0a2a8bef6377508d0a83 on master.

:tada: This PR is included in version 4.4.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


This repo is plagiarized

With the exception of your readme, this entire repository is exactly the same as AskMikes  project: https://github.com/askmike/gekko
After doing a bit of research, after I saw that the Issue template didn't match up, I then saw that you had many accusations recently for most of your work being direct, unaccredited copies of talented engineers work. It doesn't seem right, and you should take these repositories down, or fork the original work.

@askmike FYI


ImportError: No module named request

> python updater.py xxx yyy.com zzz
Traceback (most recent call last):
  File "updater.py", line 7, in <module>
    import urllib.request
ImportError: No module named request

???

It looks like you're using Python v2.x - are you sure you're using v3?
On Sun, Jun 21, 2015 at 3:35 PM orangeudav<EMAIL_ADDRESS>wrote:

python updater.py xxx yyy.com zzz
Traceback (most recent call last):
File "updater.py", line 7, in
import urllib.request
ImportError: No module named request

???
—
Reply to this email directly or view it on GitHub
https://github.com/bensquire/Digital-Ocean-Dynamic-DNS-Updater/issues/17
.

If you are using OSX and Homebrew, you can install python 3 alongside python 2, just do:
brew install python3

And run the script like:
python3 updater.py ...


Alloc Error Loop Handling

Hi, I am trying to sandbox our usage of Duktape to cap memory usage and also avoid process crashes. In doing so, I am wrapping most Duktape calls in safe calls and pass in custom memory allocation methods. One thing I've run into is that there are some amounts of allocs required when surfacing an alloc error to our safe call handler. This can trigger an infinite loop of allocation failures, until Duktape crashes internally.
I thought this was addressed as part of https://github.com/svaarala/duktape/issues/476 so I upgraded to 2.4.0, which seemed to include https://github.com/svaarala/duktape/pull/2106 but I still see the infinite loop behavior.
It makes sense to me that this happens because you'd pretty much need to guarantee 0 allocs during error surfacing to avoid this. My workaround so far is to detect this scenario in our custom memory allocator and reserve a little bit of our memory cap specifically for this situation.
I was curious what your thoughts were on how this scenario should be handled and if it might be reasonable to have more of a supported way to handle this? Our logic to detect this is pretty hacky and relies on knowing the # of allocations we reject in a row.
If it isn't possible to guarantee 0 allocs in the error scenario then I thought it might be nice to have either:

Notify the custom allocator that an allocation error has occurred
Allow a dedicated error allocator function to be passed in duk_create_heap and be used specifically to support allocations for this kind of Duktape internal error path.

So far I've been trying to ensure that it would be possible to propagate out a pre-allocated Error object with no allocations (or at least relying on allocations succeeding). I think this should be doable, although it does involve some difficult trade-offs (such as preallocating resources which are not needed the vast majority of times, thus slowing down execution, etc).
Can you provide a repro case I could look into (privately is OK too)?
There are two things I would like the allocation interface to support (at least):

Ability for Duktape to signal that allocations are made in the error propagation path. This would allow the allocator to release some allocated resources reserved for this case. The downside with this is that it's hard to know how much reserve is actually needed, and it's often easy to come up with contrived cases where the required reserve could be made arbitrarily large.
Ability for the allocator to signal to Duktape that an allocation can be satisfied but using a non-optimal allocation (e.g. using a larger allocator chunk than requested). This would allow Duktape to perform some GC rounds and then retry the allocation, so that wasted space in pool allocators could be better minimized.

The first is probably along the lines you proposed, and it may be something that might be pragmatic at least as a backup to an allocation-free error path.

Yeah, the first one you mentioned is one of the possibilities I had been thinking of. I'm not that familiar with the error path, so it surprises me that you're saying it is pretty easy to make that path require arbitrarily large amounts of memory. What could cause that? Is it related to the stack size at the time that the error occurs?
Would the Duktape logging be helpful for you? I also have logging of how much memory is attempting to be allocated during the error path. I'll need to check internally to see what I can share in terms of the specific repro or try to come up with a different setup to trigger it.

When an error is propagated outwards, activations are closed and freed until a catch point. Closing activations without allocations isn't trivial but should be doable (with some trade-offs).
There have been at least two bugs related to this:

At some point closing an activation would cause a value stack to be resized to a larger size on return. This happened because a value stack could be shrunk on function entry; this is possible because temporary registers of the calling function can be reused, and there may be more of such temporaries than needed by the callee. The fix involves a trade-off where a value stack may be larger than strictly necessary to guard the unwind.
When closing scopes, one may need to copy values into an object from function registers. This is now preallocated to avoid allocations on unwind. The fix involves a trade-off in both memory and performance because the property slots must be preallocated on function entry.

Both debug logs and alloc sizes might reveal something. In particular, if you can figure out the place in Duktape unwind code where the allocations happen, it may be enough to figure out the cause.

I'm not familiar with the term "activations" in this context. Are you referring to cleaning up the active JS callstack?
Here is the callstack, paused at the point of allocation failure in Duktape:
alloc-loop-stack.txt
Seems like some sort of duk_hobject_alloc is occurring as part of pushing the error object?
Here are the logs, where you can see it is repeatedly trying to have us allocate 168 bytes:
alloc-loop-logs.txt

Thanks!
At first glance it seems that:

An out-of-memory error is encountered
The error handling code (duk_err_create_and_throw()) tries to create an error object.
That ultimately fails and duk_err_create_and_throw() is called recursively. It then tries to create another error (instead of using the pre-allocated error object). There is an attempt to protect against this by detecting "error when creating an error" (https://github.com/svaarala/duktape/blob/master/src-input/duk_error_throw.c#L83-L118).

Looking at the call stack the two nested error creation call stack entries are separated by an object compaction attempt. This may explain why the protection actually fails:

When an object compaction attempt happens, we try to create an error but detect the "error when creating an error" condition. It causes a pre-allocated "DoubleError" to be thrown instead from inside the compaction attempt. This throw path then clears the thr->heap->creating_error flag because the error was successfully handled. Finally, the compact attempt call site is protected which ignores the error silently instead of propagating it out of the original error call site (which breaks an assumption in the duk_err_create_and_throw()).
When a new allocation happens (e.g. trying to compact another object), the flag is actually cleared and we try to create an actual error leading to actual nested attempt to create an error object.

This is incorrect, but I'm not 100% sure at this point why it causes a crash. But it's enough to formulate a fix. A few possibilities:

Avoid compaction (and finalization) when creating errors because the protected call used for a compaction attempt interferes with the error throwing approach.
Handle compaction without a protected call, i.e. use trial allocations which are handled with setjmp/longjmp (something needs to be for finalizers separately).
Change the creating_error flag into a counter and nest it properly.
Save and restore creating_error when doing a mark-and-sweep (or for individual compaction attempts) so that creating_error remains set when the error object allocation fails.

If you wanted to test this theory, you could disable object compaction and finalization in mark-and-sweep manually and see if it fixes the issue. Something like:
diff --git a/src-input/duk_heap_markandsweep.c b/src-input/duk_heap_markandsweep.c
index fc4f224d..d4a98982 100644
--- a/src-input/duk_heap_markandsweep.c
+++ b/src-input/duk_heap_markandsweep.c
@@ -1366,15 +1366,17 @@ DUK_INTERNAL void duk_heap_mark_and_sweep(duk_heap *heap, duk_small_uint_t flags
         *  interfering with error state.
         */

+#if 0
        if ((flags & DUK_MS_FLAG_EMERGENCY) &&
            !(flags & DUK_MS_FLAG_NO_OBJECT_COMPACTION)) {
                if (heap->lj.type != DUK_LJ_TYPE_UNKNOWN) {
                        DUK_D(DUK_DPRINT("lj.type (%ld) not DUK_LJ_TYPE_UNKNOWN, skip object compaction", (long) heap->lj.type));
                } else {
                        DUK_D(DUK_DPRINT("object compaction"));
                        duk__compact_objects(heap);
                }
        }
+#endif

        /*
         *  String table resize check.
@@ -1473,10 +1475,12 @@ DUK_INTERNAL void duk_heap_mark_and_sweep(duk_heap *heap, duk_small_uint_t flags
         *  XXX: avoid finalizer execution when doing emergency GC?
         */

+#if 0
 #if defined(DUK_USE_FINALIZER_SUPPORT)
        /* Attempt to process finalize_list, pf_prevent_count check
         * is inside the target.
         */
        duk_heap_process_finalize_list(heap);
 #endif  /* DUK_USE_FINALIZER_SUPPORT */
+#endif
 }

This is not a fix, but would maybe help verify if the above is correct.

I tried to write a repro case based on the above theory. It's a little tricky because there are different kinds of allocations within the error creation and they have different side effect protections. For example, if the out-of-memory happens when allocating the error object itself, it will trigger the issue, but if it happens when allocating or resizing the error object's property table, there's protection against not running compaction there (it's needed so the object is not resized recursively) and the issue won't trigger.
I managed to reproduce the issue (or something similar) with a few tries. I'll add it to the testcases, but it's probably going to be fragile in that e.g. changing the duk-low pool sizes may then avoid triggering the issue.
Here's the repro:
function test() {
    var obj = {};
    var count = 0;
    while (true) {
        print(count++);
        obj = { ref1: obj, ref2: obj };
    }
}
try {
    test();
} catch (e) {
    print(e);
}

It fails with a seemingly infinite loop with duk-low after ~1270 loops. With the #if 0 hack above it exits cleanly with:
1262
1263
Error: 1

Where the error number is just a plain Error.
I'm not sure if this is exactly the issue you encountered, but the #if 0 hack test should give an indication of that.

Regarding fixes:

Save and restore creating_error when doing a mark-and-sweep (or for individual compaction attempts) so that creating_error remains set when the error object allocation fails.

This seems straightforward and fixes the issue without limiting mark-and-sweep opportunities for out-of-memory situations. I'll open a pull for this (or some other fix) once we've verified the above hack test fixes your concrete issue.

I'm not that familiar with the error path, so it surprises me that you're saying it is pretty easy to make that path require arbitrarily large amounts of memory. What could cause that?

For example, when activations (script call stack entries) are unwound, sometimes register values need to be copied to a closed environment record. One can add (in essence) arbitrarily many local variables to a function, thus increasing the size of the environment record as much as desired.
A similar issue happens for the value stack if one allows the value stack to shrink on a function call (rather than treating the value stack as "extend only" when going deeper into calls).

Thanks for the explanation and code to test with! I was able to try it locally, and you're right. That did prevent the infinite loop I was seeing. Instead, it started erroring out with the following:
ErrorCode: 1
ErrorType: DoubleError: error in error handling
Even with this fix, it sounds like this is best effort handling of these situations, but in the end we should always have some fallback behavior by our custom memory allocator in case a different type of situation like this arises?

Even with this fix, it sounds like this is best effort handling of these situations, but in the end we should always have some fallback behavior by our custom memory allocator in case a different type of situation like this arises?

The effort at least at present is 100% handling of these situations, i.e. the error path should not rely on a single allocation succeeding. Without this there is no way for the sandboxing application to handle these cases correctly as it's very difficult to establish a safe value for a memory reserve.
But because it's quite easy to miss something when trying to handle the error path 100% correctly, having some fallback behavior may be a practical approach.

@raist- Could you verify that #2290 fix the issue for you?

That fix is working for me. Thanks!
Could we discuss the possibility of communicating alloc error path information to the custom memory allocator? Would you prefer that discussion in a separate issue?

Sure, such a change would now be possible in master as incompatible changes can be made. A separate issue would be better for that discussion I think.

Opened https://github.com/svaarala/duktape/issues/2291.

@raist- Thanks for reporting the issue! :+1:


chore(deps): upgrade dev dependencies

Upgrades project dependencies. See details in workflow run.

Automatically created by projen via the "upgrade-dev-dependencies-1.x" workflow

⚪ Backport skipped
The pull request was not backported as there were no branches to backport to. If this is a mistake, please apply the desired version labels or run the backport tool manually.
Manual backport
To create the backport manually run:
backport --pr 1256

Questions ?
Please refer to the Backport tool documentation


Upgrade copyright

          1 Warning

:warning:
Please provide a changelog summary in the Pull Request description @asfalcone

  Generated by :no_entry_sign: Danger


Update README.md

Applied the translation fixes manually since I modified the README at the same time (https://github.com/0auBSQ/TJAPlayer3-Develop-BSQ/commit/80034101e5a8cdf59af0f6a477548f69481c58be), thanks ! 😀


docs: add ecosystem heading

Think it'd be cool to have awesome-choo be a bit more front and center (': - def better than a dead "packages" link :sparkles:

Low impact, tiny doc change - been here for a day, safe to merge I think :grin:


feat: better doc for adaparse and some changes

[X] In some cases, adaparse could omit the last line, this PR fixes that.
[X] We call count less often. Note that there are other possible performance optimization possible.
[X] I ran some benchmarks against trurl, and I include some documentation in the documentation.
[X] I propose that when piping a list of URLs through the tool, we only print out the invalid URLs by default. If someone wants to get the href, they call add -g href.
[X] I have added the href getter
[X] There is a minor issue (unrelated) in apple_arm_events.h that I try very hard to get fixed...
[X] In some cases, we would omit flushing the last line of output (when benchmarking).

There is much more we could do, of course, such as batched setters and so forth.

@Nick-Nuon Can you review and if it is ok, then do a PR on the main repository?

Please do a PR on the main repository if you are happy.


[Android] Support showing Google Maps-like BottomSheet.

Issue:

Currently the BottomSheet implementation (on Android) always shows Z-order wise above other components like bottom navigation bar, tab bars, and flyouts.
Google Maps shows a BottomSheet that is "within" the page - the sheet shows up vertically above (rather than in front of) the bottom navigation/tab bars.
To implement such an experience, rather than adding the BottomSheet StayOnFrontView to the root ViewGroup, instead add it as a sibling of AppBarLayout.
This ensures that the BottomSheet shows up behind the navigation bar/Tab bar on the bottom (BottomNavigationView) and the flyouts.

Changes:

BottomSheet, BottomSheetManager:

Provide another overload of ShowAsync to accept a Page.

Android:

Update EnsureStayOnFrontView to show as a sibling of AppBarLayout when showing "inside" a page.

sample:

AppShell: Force showing the bottom tab bar, and the flyout menu option.
MainPage: add test cases for modal and non-modal for the Google Maps style behavior.

This PR has no changes to any existing behavior or usage.
Google Maps style:

(Regular sheets, unchanged behavior)

Should address #115

Merged into that nuget, along with many fixes, oriented on stability.
https://github.com/softlion/The49.Maui.BottomSheet


Feature Request:  lock steppers and extrude a line when purging

It would be very helpful upon homing to:
1..Extend stepper motor timeout to a long time (say 10 minutes)
2.Turn the stepper motors on so that the position is not changed when filament is loaded.
Upon resuming print it would be nice it a long line was printed a few MM from the left edge of the bed as the purge cycle.
Thanks for you plugin and consideration of my request.

Any particular reason to do that vs enabling without a disable timer? (M84 S300 vs M84 S0)?
At least for my printers it seems they are still enabled after the park move, and no command was sent to disable them. Sending M17 should be harmless, but I didn't think it was necessary.
Some people use this to swap filament mid-print, so going back to the bed after for a wipe would be harmful. After loading the filament there isn't really a need for a wipe at that point. Either you are mid-print and you can just pick the excess off with some tweezers or you are between prints and your print start gcode can do the wipe.

thanks for the quick reply.
Answer to 1 & 2
I have and Ender 3 Pro.. After executing the park move, the  steppers are
turned off.  ( I have done the equivalent operation with a Cura script with
the same effect.. . the steppers turn off after the park.  I also want to
change filament mid- print.  In googling around to try to get a resolution,
I have determined that this is a common problem.  The issuance of a M17
alone doesn't resolve the issue, since on my Ender the default time to turn
off the steppers with no additional commands seems to be 60 seconds,,,
which is not sufficient time to change the filaments out.
So my hope would be to incorporate something like an :
M18 S1800
M17
to allow the steppers to remain on for 30 minutes followed by a  turn on
all steppers
Answer to 3
I too want to use the plugin to change filament and resume print.
I don't know enough about Marlin & g code to know if if would be possible
to store an absolute position value ( rather than relative) to restore the
head to before resuming printing.
If that were a possibility, my recommendation to print a purge line rather
than just extrude makes sense to me.
If not, my recommendation is in fact senseless.

New request.... since you have already done the heavy lifting  in your
plugin, it would be icing on the cake to  have  user- selectable  variables
to set the pre-unload and pre-load temperatures..
Thanks again for a wonderful plugin and for listening to my ranblings

This will enable me to change filament without a layer shift caused by me
inadvertently moving the z axis.
I'm not sure if you would want to issue a M18 with a paramater to turn off
only the Extruder stepper or not.
On Sun, Aug 18, 2019 at 11:10 AM Jim P<EMAIL_ADDRESS>wrote:

Any particular reason to do that vs enabling without a disable
timer? (M84 S300 vs M84 S0)?
At least for my printers it seems they are still enabled after the
park move, and no command was sent to disable them. Sending M17 should
be harmless, but I didn't think it was necessary.
Some people use this to swap filament mid-print, so going back to
the bed after for a wipe would be harmful. After loading the filament there
isn't really a need for a wipe at that point.

—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/jim-p/Change_Filament/issues/10?email_source=notifications&email_token=AM5WDZZLV3GT6NBOLYLATEDQFFQ5BA5CNFSM4IMRNFUKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD4RB6SQ#issuecomment-522329930,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AM5WDZ5THFKYF2LYZYKYMRDQFFQ5BANCNFSM4IMRNFUA
.

1/2 should be fine, I'll try to add that next time I'm working on it, perhaps with a configurable timeout value.

Storing the position in a plugin like this is not feasible. There are ways to do it, but the way this one works it's pretty much write-only from the code to the printer. Besides that, trying to move the head back down to the bed with a print on the bed is dangerous and a recipe for disaster. There is no benefit to doing a wipe on the bed after a mid-air filament swap that I can see. After it purges, just wait a few moments and remove the excess filament by hand in some way.

I've thought about doing old and new filament temp values but that would change so often it doesn't seem like a great idea to do it here the same way as other settings. I'll keep that in mind for the future, though, maybe I'll come up with a viable method.

Can the extruder motor be excluded, so we can use manual knob for loading assist etc..

yes. The request to lock the steppers is particularly important because I
presumed a manual load.
Without the steppers being locked, the manual load is likely to cause a
layer shift.
On Sat, Dec 21, 2019 at 11:44 PM Shawn A<EMAIL_ADDRESS>wrote:

Can the extruder motor be excluded, so we can use manual knob for loading
assist etc..
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/jim-p/Change_Filament/issues/10?email_source=notifications&email_token=AM5WDZ6IEOQ5IMDCDEO5MLTQZ3WCFA5CNFSM4IMRNFUKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEHPIS4Q#issuecomment-568232306,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AM5WDZ2NGHSL7FRRGZ4HHTDQZ3WCFANCNFSM4IMRNFUA
.


Board Admin should not be allowed to create admin user

A board admin was able to create an admin user and then can access all boards from the newly created admin user.
This is a very big bug, I suppose.
Board Admin should be limited to creating board admin or users only.
Also, there should be a user creation and privileges setting in the admin user.

@starbasak Would you mind creating a separate issue for the user creation privileges setting? I definitely want to add that, but it's more of an enhancement than part of this bug. And yes, this is definitely a big bug.


Update OpenCV's Camera provider to use cv2 module

Abstract : The cv module is deprecated in OpenCV 3.0.0, and thus completely unavailable for Python 3.
To reproduce : Run Kivy's Camera example (examples/camera/main.py) using Python 3 with a working camera
Output : No camera provider
Expected output  : camera output
Cause : cv module not available in Python 3
Solution : modify the OpenCV CameraBase implementation in camera_opencv.py to use cv2 instead of cv and cv.highgui.
Question : Maybe it would be better to implement this as a new provider, rather than replacing the current module ? I don't know if Kivy uses the same codebase for Python 2 and Python 3, in which case it would make sense. Otherwise, it is my understanding that the current OpenCV camera provider is totally unusable using Python 3. I'll be happy to fix the PR to make this a new provider (basically just renaming the file and adding it in __init__.py.

Tests are passing in all Python versions, but the OpenCV3 camera provider is actually not compatible with Python 2. Closing the PR for now, as more work is needed for that.
I think I'm actually going to refactor the CameraBase class and its current implementations, as I feel it's needed to simplify provider implementation and to hide details that don't need to be exposed to camera providers, such as scheduling frame updates, or handling camera state (acquire camera if started with no camera open, unschedule updates when releasing camera (if asked by users, upon exception, or when no frame error threshold is reached), ask for camera reconfiguration when resolution is changed, ask for rescheduling when FPS is changed, and many other things).
I'm not sure I'll be able to reimplement the PyGST+Android+VideoCapture+AVFoundation providers ,for Python 2 and 3, on my own in reasonable time, especially to have it working in Python 2 and 3, so there is a big chance that this code unfortunately will never get merged in Kivy's official branch.
I'll continue to provide an updated repoistory (and patches, if needed), for OpenCV3 camera support, and thus, Camera support on Linux for Python 3 environments.


Convert QNode._op_successors parameters to observable/operation scheme

During refactoring of test_qnode.py I stumbled about the method _op_successors that uses 'G' to mark operations and 'E' to mark observables. This should be fixed to be consistent with the new naming.
This is very minor and should be done with quickly.

And we should use the opportunity to replace the string parameters with enums.

It's a shame there isn't a StrEnum, to complement the IntEnum (though a separate package exists for this).
Note that, while I am generally in favour of replacing internal and developer-facing magic interger/string parameters with enums, the one place I am more resistant is in user-facing functions. For example, out of the following two options:
example_function(A, B, method="BFLSF")

from xyz import Methods
example_function(A, B, method=Methods.BFLSF)

the latter is much cleaner, magic strings can be adequately documented in documentation, and it follows the precedence set by NumPy and SciPy.

It's a shame there isn't a StrEnum, to complement the IntEnum (though a separate package exists for this).
According to the docs, you can simply implement it as

class StrEnum(str, Enum):
    pass

So we can have
class SuccessorType(str, Enum):
    Operation = "Operation"
    Observable = "Observable"

Note that, while I am generally in favour of replacing internal and developer-facing magic interger/string parameters with enums, the one place I am more resistant is in user-facing functions. For example, out of the following two options:
example_function(A, B, method="BFLSF")

from xyz import Methods
example_function(A, B, method=Methods.BFLSF)

the latter is much cleaner, magic strings can be adequately documented in documentation, and it follows the precedence set by NumPy and SciPy.

Totally on your page here! I think user-facing code magic strings are the way to go.

Nice find with the StrEnum definition!

Should be done after #306 is merged.


Document how to shutdown the client

Document how to shutdown the client

Explain how the buffer works
Explain How to configure the buffer to not have to wait too long on the shutdown.

#62


idToken not response GoogleLogin

I added "openid" attribute to the scope but idToken does not contain response data.

resolved when back the old version 2.0.1

Hi, is this feature working fine in recent versions?

I need openId but can't use 2.0.1 because require react 17 https://github.com/cuongdevjs/reactjs-social-login/blob/v.2.0.1/package.json#L31-L34 and we are using react 18

oh, yeah, this is an old mechanism and will be deprecated. So I've changed it to the new mechanism and i don't know why openId isn't included in it.

I need openId but can't use 2.0.1 because require react 17 https://github.com/cuongdevjs/reactjs-social-login/blob/v.2.0.1/package.json#L31-L34 and we are using react 18.
Why did you remove support for openId? Is deprecated or something like that?

You can add an option --force after npm install

Hi @cuongdevjs , thank you for your response. Could you tell me where have you read that the OpenID protocol is deprecated?
The doc says that new library is built on the OpenID Connect protocol and provides OpenID Connect formatted ID Tokens.

I don't say openId will be deprecated but on the new method: Google Identity Services I don't see any docs about getting openId although I was put openId scope. you can take a look at: https://developers.google.com/identity/oauth2/web/guides/migration-to-gis

please follow #73


coap: Fix depending on internal structures from sol_coap_packet

sol_coap_packet is only defined in coap.h, which is not exported, so we
should avoid depending on it from outside sol-coap.{c,h}.
The remaining usage was re-using the buf field of packet as an
preallocated memory, this proposed fix makes it write directly to the
response packet, avoiding that access.
Signed-off-by: Vinicius Costa Gomes<EMAIL_ADDRESS>

ping?

@barbieri commented on Jul 29, 2015, 2:40 PM GMT-3:

ping?

We've had some discussions IRL and this doesn't seem to be the right approach. I don't recall what was the course of action, though.

Thanks for the comments. Updated PR https://github.com/solettaproject/soletta/pull/639


i dont know the wxl system root password，how to reset the password

i dont know the wxl system root password，how to reset the password

This is a question for the WSL repository. This is the Windows Terminal. We don’t really answer “how do I use WSL” questions.


Adding a favicon

I made this for the status dashboard and thought it should go into the intake repo.

OK! Does this show up automatically?

I don't think Read The Docs supports project specific favicons. I just wanted to put this somewhere where we can keep track of it in case intake grows and gets a website or something.

See https://continuumio.github.io/intake-dashboard/status.html for instance

You can merge these things at will


Multi-Release JAR support for module-info

Multi-Release JAR support to allow for packaging a module-info in the artifacts would be nice to have, and is a step beyond #24 which simply calls for an automatic module.

Can you do a PR?

I was working on one - #26.

Any idea when these module updates will be incorporated?  I'm trying to modularize a project relying on Netty which relies on this library, but the lack of a module name is causing issues.

I don't have expertise on modules. It'll be great if you can provide feedback or bring people who can help.

It looks like a PR was opened to address: https://github.com/hyperxpro/Brotli4j/pull/26/commits


Create more generic disk benchmark script

The microsd-benchmark.sh script is geared towards microSD cards using the built-in reader... but CM4s and the Pi 4 with USB 3.0 drives makes for a much faster experience, and I like to benchmark other devices besides the microSD card.
Initially, I'm thinking of cloning the script and calling the new one disk-benchmark.sh, then making it so you can add parameters like the device name (e.g. /dev/sda1) and mount path (e.g. /mnt/usbdrive).

Sorry for the trouble. I'm new and wanted to follow you and your bramble, dramble projects. . I must have hit something I thought was something else out of pure lack of understanding. Thank You.On Jan 26, 2021 05:28, "stale[bot]"<EMAIL_ADDRESS>wrote:
This issue has been marked 'stale' due to lack of recent activity. If there is no further activity, the issue will be closed in another 30 days. Thank you for your contribution!
Please read this blog post to see the reasons why I mark issues as stale.
—You are receiving this because you are subscribed to this thread.Reply to this email directly, view it on GitHub, or unsubscribe.

Sorry for the trouble. I'm new and wanted to follow you and your bramble, dramble projects. . I must have hit something I thought was something else out of pure lack of understanding. Thank You.On Jan 26, 2021 05:28, "stale[bot]"<EMAIL_ADDRESS>wrote:
This issue has been marked 'stale' due to lack of recent activity. If there is no further activity, the issue will be closed in another 30 days. Thank you for your contribution!
Please read this blog post to see the reasons why I mark issues as stale.
—You are receiving this because you are subscribed to this thread.Reply to this email directly, view it on GitHub, or unsubscribe.


[Testing] Simplify testing by pulling boilerplate to base class

This PR aims at reducing the boiler-plate code needed to write tests and provide a structure for writing new ones.
Currently, we are overusing mocks. Some of that could be replaced by using actual instances or fake implementations. Mocks should only be used if doing it via fakes is too complex.
Things done:

Moves all fake implementations to the shared test dir. Previously, only integration tests used them.
Configure Hilt to apply fakes by default for all unit/integration tests. This removes the need to manually install/uninstall modules per test.
Create base class with all necessary configs to prevent boilerplate code in final test classes.
Apply the below guidelines to tests.

General guidelines:

Prefer fake implementations over mocks. Write one if not already present.
Mocks should only be used where we want to verify that a particular method was called with certain params.
Use DI for android specific tests to benefit from pre-configured dependencies.

Writing unit tests:

If the class that needs to be tested does not use any android specific code, then simply use Junit runner or MockitoJunit runner.
Otherwise use newly created HiltTestWithRobolectricRunner or HiltTestWithParameterizedRobolectricRunner as the base class which is preconfigured to support mocking, DI and synchronous background threads.
If a particular test demands a mock instead of pre-configured fake implementation, then use @BindValue @Mock to replace that dependency with mock only for that class. If that dependency is originally configured via modules, then explicit @UninstallModule is also neeeded. (see examples in PR)

Writing Integration tests:

Use newly created BaseHiltTest as the base class. It is preconfigured for run tests that require main activity and DI.

@gino-m @scolsen @nmhung00  PTAL?

/gcbrun


Add missing functions from DAQ basic API

What does this Pull Request accomplish?
Add remaining functions from the DAQ basic API that don't require new codegen.
These were previously left off because either (a) they had missing enums or (b) they use datatypes that were not handled correctly in metadata generation scripts.
Enable /bigobj globally. DAQ tests, the service, and the generated protobuf files now exceed this limit.
Why should this Pull Request be merged?
Incremental progress on DAQ grpc support.
What testing has been done?
Ran and passed all DAQ tests.

Charlie's out this week so feel free to submit without waiting. I think the CMakeLists change is fine but I'll let him know when he gets back about it.

Just want to document that the changes look fine to me. We should probably move the location of this logic in a future PR since they're now intended to be applied globally instead of only to the target they're near.


Mark as viewed close file option

Hi All,  Thanks for this fantastic extension!
I am in the process of reviewing a change to over 200 files. (yes, I know...)
I run VSCode with "workbench.editor.enablePreview": false (yes, I know.. I am a tab binger)
While reviewing the code I would like the file to close after each review is complete. Which does not happen if "workbench.editor.enablePreview": false.
Pardon me if this feature exists, I could not find it.
What I think would be valid options:

Close the window when I select Mark as Viewed &/or close the file under review when I select another file for review.
New options setting githubpullrequest.editor.enablePreview (Default: true)
Put the editor into enablePreview mode during any github pull request review with no user option to change.

For a user like me #1 seems optimal.  As I may have other windows open other than the review window.
But I think any of the solutions would be a big improvement for my scenario.
Workaround
Just review a batch of files then close all in the window. (but this gets rid of some other windows I have open, no big deal really)
Thanks!

Wow, look forward to trying it!

When you mark a file as viewed through the active editor menu bar or through a keybinding, the file will close. When you mark it as viewed through the tree view then it will not close. If a setting is needed I'll add one, but my hope is that this behavior is better for almost everyone.

Thanks @alexr00!

To verify:

Open a pull request in VS Code
Open a file that's included in the pull request
Mark the file as viewed from the active PR tree view. Verify that the file is not closed.
Open a file that's included in the pull request.
Mark the file as viewed using either a keyboard shortcut that you've configured or the editor toolbar action. Verify that the file is closed.


Process does not start

Hi, the process doesn't start. I am using the default tesla-dashcam-manager docker-compose with edited volumes, TZ and arguments:
--title_screen_map --gpu --gpu_type=rpi --text_overlay_fmt "{event_timestamp} {event_city}" --layout WIDESCREEN --quality MEDIUM --fps 33
Hardware:

RPi Z W in a car
RPi 4 as a footage processor
NAS as a long-term raw footage storage
Web server storage for serving the edited files

Process:

RPi Z W offloads the footage to the NAS (working)
RPi 4 with access to the NAS footage AND web server storage (working)

original TeslaCam folder: /mnt/NAS/TeslaCam
long term storage: /mnt/NAS/TeslaRaw
Webserver: /mnt/WS/TeslaDashcam

Docker compose is linked with the above folders to docker /app/... folders, when I exec in the docker, I can manipulate the data so the access and chmod is ok

In the /mnt/NAS/TeslaCam folder I can see folders with dates (each event is its own folder).
RPi4 has access to all the data and folders. When the docker container starts, two folders are created inside /mnt/NAS/TeslaCam: "processing" and "work".
After that, nothing happens.

If anyone has any idea what I did wrong, please let me know! I am guessing that something is wrong with the folder setup. I have read all the Tesla_dashcam documentation and can't figure it out. Thank you!

Maybe it has to do something with the:
export trigger_file_any=ARCHIVE_UPLOADED
I am using SMB and not rsync.

Yes, the trigger file is needed, so needs to be added to the RPI zero for it to work if you haven't already done so.
You can try to manually create the file to trigger processing the first time. SMB or rsync should not matter, as long as the files show up - the script simply polls periodically.
Thanks for the very detailed report!

Hi, thank you SimonKagstrom!
The process has now started, but I am facing another issue: output files are 0kb in size and are not readable. It must be some kind of problem in the processing. I get no error or anything, files are moved between the folders like they were meant to.
Arguments tested:
--title_screen_map --gpu --gpu_type=rpi --text_overlay_fmt "{event_timestamp} {event_city}" --layout WIDESCREEN --quality MEDIUM --fps 33
--title_screen_map --gpu --gpu_type=rpi --text_overlay_fmt "{event_timestamp} {event_city}"
--title_screen_map --no-gpu --text_overlay_fmt "{event_timestamp} {event_city}" --layout WIDESCREEN --quality MEDIUM --fps 33
--title_screen_map --no-gpu --text_overlay_fmt "{event_timestamp} {event_city}"
I will look into it a bit more, if I won't be successful, I will try to build my own dockerfile from source. :)
Thank you!

Strange! That is something I haven't seen.
When debugging, it might be easiest to run the shell in the docker image and mount the source code directory to the container (the -v option). Then it can be started manually, with the latest sources.
On the other hand, unless Tesla dashcam manager passes the wrong arguments, it sounds like it's an issue with Tesla dashcam (the upstream tool).
Thanks for looking into this!

I have now tried to run it with arguments with --no-gpu at it is processing the data. CPU is at 100% and I see the "work" directory building slowly.
It works, however I will need to take a look why my RPi4 4GB doesn't process when using --gpu --gpu_type rpi args. I am using Dietpi on my RPi so this might be a simple dependencies issue.

Thank you!

I'll take a look at mine later tonight. I also use a rpi4, but with raspian and 8G ram. It was a while since I set it up, and perhaps there was some kernel command line option that was used.

My /proc/cmdline looks like this:
pi@rpi4:~ $ cat /proc/cmdline coherent_pool=1M 8250.nr_uarts=0 snd_bcm2835.enable_compat_alsa=0 snd_bcm2835.enable_hdmi=1  smsc95xx.macaddr=E4:5F:01:95:E2:04 vc_mem.mem_base=0x3ec00000 vc_mem.mem_size=0x40000000  console=ttyS0,115200 console=tty1 root=PARTUUID=ac13a612-02 rootfstype=ext4 fsck.repair=yes rootwait
Googling a bit, I think the vc_mem stuff might be significant here. There is also a gpu_sched kernel module, which perhaps is related to this.

Hi, thank you for everything.
The problem is with dietpi and missing dependencies.
First, dietpi headless was missing gpu drivers. Now that this is fixed, I'm missing ffmpeg and it can't start. I have installed it but ffmpeg can't be reached, the process is halted due to this.
I will install the Raspbian and get over with all the issues. 😀
Thank you!

Nice!
But ffmpeg should be part of the docker image, so I don't think that should be a problem?

That is weird, the process was stuck on this part:
`

root
1764
1744
4
15:39
?
00:00:01
python3 /usr/bin/tesla_dashcam_manager.py /app/staging /app/raw-storage /app/destination-path /usr/bin/tesla_dashcam.py --title_screen_map --gpu --gpu_type=rpi --text_overlay_fmt "{event_timestamp} {event_city}" --fps 33 --layout WIDESCREEN --quality MEDIUM 365 0

root
1861
1764
13
15:39
?
00:00:02
python3 /usr/bin/tesla_dashcam.py --title_screen_map --gpu --gpu_type=rpi --text_overlay_fmt "{event_timestamp} {event_city}" --fps 33 --layout WIDESCREEN --quality MEDIUM --no-check_for_update --output /app/staging/work /app/staging/processing/2022-08-15_16-40-38

root
1894
1861
26
15:39
?
00:00:02
/usr/bin/ffmpeg -loglevel info -i /app/staging/processing/2022-08-15_16-40-38/2022-08-15_16-29-46-left_repeater.mp4 -i /app/staging/processing/2022-08-15_16-40-38/2022-08-15_16-29-46-front.mp4 -i /app/staging/processing/2022-08-15_16-40-38/2022-08-15_16-29-46-right_repeater.mp4 -i /app/staging/processing/2022-08-15_16-40-38/2022-08-15_16-29-46-back.mp4 -filter_complex color=duration=59.78:s=1920x1920:c=black, fps=33 [base];[0:v] setpts=PTS-STARTPTS, scale=640x480 , hflip [left];[1:v] setpts=PTS-STARTPTS, scale=1920x1440 [front];[2:v] setpts=PTS-STARTPTS, scale=640x480 , hflip [right];[3:v] setpts=PTS-STARTPTS, scale=640x480 , hflip [rear];[base][left] overlay=eof_action=pass:repeatlast=0:x=0:y=1440 [left1];[left1][front] overlay=eof_action=pass:repeatlast=0:x=0:y=0 [front1];[front1][right] overlay=eof_action=pass:repeatlast=0:x=1280:y=1440 [right1];[right1][rear] overlay=eof_action=pass:repeatlast=0:x=640:y=1440 [rear1];[rear1] drawtext=fontfile=/usr/share/fonts/truetype/freefont/FreeSans.ttf:fontcolor=white:fontsize=48:borderw=2:bordercolor=black@1.0:x=(w/2-text_w/2):y=(h-(text_h)-10):text='"08/15/22 16:40:03 Celje"' [tmp0] -map [tmp0] -preset medium -crf 20 -b:v 30000K -c:v h264_omx -metadata creation_time=2022-08-15T14:29:46.000000Z -metadata description=Created by tesla_dashcam v0.1.19 -metadata title=SENTRY: 08/15/22 16:40:03 -y /app/staging/work/2022-08-15T16-29-46.mp4

`

This is different than when I was running dietpi in headless mode. It appears the docker can't find ffmpeg.
After this process, CPU usage is at 0% and stops.
cat /proc/cmdline returns almost identical config:
coherent_pool=1M 8250.nr_uarts=0 snd_bcm2835.enable_compat_alsa=0 snd_bcm2835.enable_hdmi=1  smsc95xx.macaddr=E4:5F:01:1B:17:CF vc_mem.mem_base=0x3ec00000 vc_mem.mem_size=0x40000000  root=PARTUUID=df909cde-02 rootfstype=ext4 rootwait fsck.repair=yes net.ifnames=0 logo.nologo console=tty1

If you run the shell in the docker image, can you run ffmpeg?

Interesting, actually I can.
bash-5.0# ffmpeg
ffmpeg version 4.4 Copyright (c) 2000-2021 the FFmpeg developers
  built with gcc 9.3.0 (Alpine 9.3.0)

I am reinstalling Raspberry OS now. Will be much easier to troubleshoot.

Fixed.
Apparently, Dietpi cannot run with:
--layout WIDESCREEN --quality MEDIUM --fps 33

I haven't tried to remove those args after I enabled the proper GPU.
Thank you Simon!

Good to hear that you found it, and superb investigation!
It does sound like the last problem is caused by either Tesla dashcam or the Tesla dashcam manager script though. At least i can't see why dietpi would cause something like that?


Adding correct product name

Adding correct product name.

this action executed with https://github.com/hmcts/wa-task-management-api/pull/565


[HELP] How to connect Matter device with Apple HomeKit

I want to connect Matter device to the Apple homekit, but I do not find a guide to connect.
Please share with me any information about this. Thanks.

https://github.com/project-chip/connectedhomeip/blob/master/docs/guides/darwin.md

https://github.com/project-chip/connectedhomeip/blob/master/docs/guides/darwin.md

Thanks for your sharing. Will you try to connect the Matter device with Apple Homekit?
I added the Matter device to Apple Homekit app, but I did not get/set the status for the Matter device from Apple Homekit app, the status of the Matter device is "no reply".
If possible, could you share your opinion?

Yeah, I have tried it and had the same issue. In my case the reason was that I don’t have an Apple TV / HomePod. It’s required as it acts as home hub. (https://github.com/project-chip/connectedhomeip/issues/13296)

I have success on ios 16 with developer mode and I have Homepod to the home center.
Did you try connecting Matter device with Amazon Alexa? I did not find any guide for this. If possible, could you share your experience?

Yeah, I have tried it and had the same issue. In my case the reason was that I don’t have an Apple TV / HomePod. It’s required as it acts as home hub.

I have success on ios 16 with developer mode and I have Homepod to the home center.
Did you try connecting Matter device with Amazon Alexa? I did not find any guide for this. If possible, could you share your experience?

Nice to hear it!
Nope, I haven't tried connecting Matter device to anything more than Homekit ;).

Nice to hear it! Nope, I haven't tried connecting Matter device to anything more than Homekit ;).

Thank you!
I trying connecting Matter device to anything Home hub, but Matter is not ready for connect to Google home and Alexa.
There's not much documentation for that. If you find any guide, please share it with me.
In the link to guide Pair a Matter device with Google Home, I trying it: https://developers.home.google.com/matter/integration/pair#espressif

I have tried to add Matter support to Google Home. I did it by:

Updating Google Play services: https://developers.home.google.com/matter/verify-services
Veryfing if Matter service is working (https://developers.home.google.com/matter/build/troubleshooting)
I had to restart my phone in order to have this service started.

Finally I have possibility to add Matter device (there is an option in Google Home app after autosearch fails). However, I haven't tried connecting it with real Matter device. Google Nest is needed for it as it acts as home hub same like on Apple HomeKit.

I have tried to add Matter support to Google Home. I did it by:

Updating Google Play services: https://developers.home.google.com/matter/verify-services
Veryfing if Matter service is working (https://developers.home.google.com/matter/build/troubleshooting)
I had to restart my phone in order to have this service started.

Finally I have possibility to add Matter device (there is an option in Google Home app after autosearch fails). However, I haven't tried connecting it with real Matter device. Google Nest is needed for it as it acts as home hub same like on Apple HomeKit.
PS. These guides are so badly organized, I'm not suprised that you could not find it easily grin

Thanks for your useful information!
I will try it.
Hope to get help from you in the future :)

@jakubdybczak Thank you for providing the pointers
@longnv97 Please close this issue if you are now able to connect to Apple HomeKit

@longnv97 I have tried connecting Matter device to Google Home but also haven't success. During pairing it says that could not add device to Google account. I have looked to adb logs and found this message:
m.eag: PC InsertCHIPDevice returned code NOT_FOUND; Sherlog for InsertCHIPDevice is needed to diagnose
[...]
Caused by: m.kaf: NOT_FOUND: Requested entity was not found.
[...]
Commissioning failed with state m.dlwa6d968a7 [CONTEXT service id=288 ]

Requested entity was not found. sounds like some HTTP error? I'm not sure. Maybe its a bug in Play Services. It looks like everything is buggy and not mature enough to work flawless yet.

@jakubdybczak Thank you for your information.
I think I got the same issues as you. Please update if you have any new information.
I will do that too.

@longnv97 I don't feel like it's best place to have a discussion, I think we are off-toping. Can you reach me at<EMAIL_ADDRESS>and close this issue, as there is no longer a problem with HomeKit? Regarding problem with connecting Matter with Google I would suggest opening an issue in main Matter repo or writing to Google.

@jakubdybczak ok, I got it, I will connect to you by gmail


Unable to build docker image

Hi,
First of all, thank you for this awesome project. When I run "make docker-build" command, I encounter the following error:
E: Unable to locate package libcudnn7
E: Unable to locate package libnccl2
E: Unable to locate package libnccl-dev
Can you, please, help me solve this problem?
Thanks in regard.

I got the same issue as well. @artykov1511 did you find the solution?

Hey @rashikshrestha, sorrry for the late reply. I made some changes in the docker file in order to adapt the library versions according to my GPU type and etc. After I used the same command to build it and now it works w/o any problems. Hopefully, it will solve ur problem as well. Good luck!


Add Adrian Gramada as Collaborator

Add external collaborator as requested to address issue https://github.com/ministryofjustice/curious-API/issues/1

Closed as recommended by @AntonyBishop


Adventure integration for platform agnostic chat stuff

In order to be able to handle chat in a platform-agnostic way (beyond just strings), implement Adventure.
Adventure has implementations for all platforms we plan to support. (Fabric, Bukkit, and Sponge. It would be unneeded in the region generator.)
Advantages:

Allows us to style and add rich components to chat messages in a platform-agnostic setting
Adventure is a popular API, already being implemented by Paper. It would be useful (and familiar) to addon developers.

Disadvantages:

We would depend on Adventure's platform implementations' updates to release our own updates.

Adventure's api seems kinda ehhhh to me. Are there any alternatives?
Also, here's another alternative that we could use (which is how I was planning to do it in my command rewrite): format modifiers. You'd be able to include something like %{grey} in a message to make it grey, then it'd be processed by a platform-specific utility and either made grey or have it stripped out.


feat(pubsub): implement quickstart guide

Add quickstart program for Cloud Pub/Sub, and compile it as part of the
quickstart and install builds.
Fixes #4648 and fixes #4582

This change is

Rebased and addressed review comments.


Serialize Sockeye model cache to reduce model init time?

First time Sockeye/MXNet user here.
I am trying to deploy a Seq2Seq model using Sockeye. At inference time, the model seems pretty quick except for when it sees a piece of text which is longer than the text blobs it has seen before.
I figured out a work-around for this by initializing the model at the beginning with texts of varying length that I would expect at inference time - small to large.
It did the job, but now the model initialization time seems too long for my use case.
I am wondering how can I initialize the model with a custom set of text data and serialize the cache and carry it along the model to deployment.

Has anybody tried anything like this? Or have an opinion whether his would work (reduce the model initialization time)? Or any other ideas to do the same?
I am open to suggestions.

Hi @shashi-tn,
If you train your model on sentences of a maximum length of n, Sockeye will by default split inputs at inference time into chunks of size n and translate them in sequence, if the input > n.
Generally, I wouldn't expect a model to perform very well on data that looks very different from the training data. But besides this, I am not sure I understand what you mean by cache. Are you referring to the computation graphs created for each bucket? Technically, you can serialize them through the MXNet Module API and load them at inference time but that would require you to work around the Sockeye logic a little bit.

Closing. Feel free to reopen if you have more questions.


Update boringssl to 751d1a1c22631b506b3e9bab8ca7fd8bcc1f8edb

This includes several fixes for getting it compiling with the stock gcc
version on debian wheezy.

please run tools/buildgen/generate_projects.sh and add the result to this PR

Done. Needed to slightly modify src/boringssl/gen_build_yaml.py to reflect changes in boringssl. I could successfully build and run grpc_cli after this change.

Replaced by https://github.com/grpc/grpc/pull/13105


Fix grammar and sentence structure

Fixed some grammar and clarified some sentences.

[x] I have read freeCodeCamp's contribution guidelines.
[x] My pull request has a descriptive title (not a vague title like Update index.md)
[x] My pull request targets the master branch of freeCodeCamp.
[x] None of my changes are plagiarized from another source without proper attribution.
[x] My article does not contain shortened URLs or affiliate links.

If your pull request closes a GitHub issue, replace the XXXXX below with the issue number.
Closes #XXXXX

Hi @dnpncl
It seems that similar changes have already been accepted earlier for this article you're editing, sorry about that. 😓
If you feel you have more to add, please feel free to open up a new PR.
Thanks again! 😊

If you have any questions, feel free to reach out through Gitter or by commenting below. 💬


Add sleep method

Materialized views take a while to fully initialize -- we want the DBT script to poll repeatedly until the MV is done backfilling. We need some help from the adapter to be able to poll.
I accept the license agreement in LICENSE

Opening for review, but only to run CI checks


hassio: port  entered forwarding state

Hi
I don't know is this a issue with vm but i try copule of options with static ips etc.
My vm sometimes don't get back after update and right now only errors i found was this in vm consol
hassio: port 4(vethe217dc6) entered forwarding state.... then after many many port tested it eventulay found working one (but i guess that mayby my bootloop is from this)
thanks and cheers

This message is normal and represents an interface that is used by Docker in the VM. If you are having a problem with updating the OS and the HA interface not returning, make sure you have enough disk space in the VM to accept the new ones. I would suggest you have a couple of GB free for updates.

Ok thank you very much. I shoud have enough space but i'll check.
Thanks for your work cheers


How do I get the request body in the global filter method?

How do I get the request body in the global filter method?
Spring boot 2.1.6
Spring Cloud  2.1.2
Based on this comment (https://github.com/spring-cloud/spring-cloud-gateway/issues/747#issuecomment-451334727), I tried to replicate the code, but with spring cloud 2.1.2 some of the classes are removed (CachedBodyOutputMessage)

See https://github.com/spring-cloud/spring-cloud-gateway/blob/master/spring-cloud-gateway-core/src/main/java/org/springframework/cloud/gateway/filter/factory/rewrite/ModifyRequestBodyGatewayFilterFactory.java

Thanks @ryanjbaxter, but with  Spring Cloud 2.1.2, CachedBodyOutputMessage class is private, so I can not use the code as it is - https://github.com/spring-cloud/spring-cloud-gateway/blob/master/spring-cloud-gateway-core/src/main/java/org/springframework/cloud/gateway/filter/factory/rewrite/ModifyRequestBodyGatewayFilterFactory.java#L91

Fair point, but it doesnt mean you can't copy that class if you need it (I realize that is not ideal).
@spencergibb maybe we should make that class public?

we could I guess.

I used the old version of ReadBodyPredicateFactory to implement this function.
https://github.com/spring-cloud/spring-cloud-gateway/blob/dc4181bbb0/spring-cloud-gateway-core/src/main/java/org/springframework/cloud/gateway/handler/predicate/ReadBodyPredicateFactory.java
And it like this in my global filter:
        return DataBufferUtils.join(exchange.getRequest().getBody())
                .flatMap(dataBuffer -> {
                    DataBufferUtils.retain(dataBuffer);
                    Flux<DataBuffer> cachedFlux = Flux.defer(() -> Flux.just(dataBuffer.slice(0, dataBuffer.readableByteCount())));
                    ServerHttpRequest mutatedRequest = new ServerHttpRequestDecorator(exchange.getRequest()) {
                        @Override
                        public Flux<DataBuffer> getBody() {
                            return cachedFlux;
                        }
                    };
                    ServerWebExchange build = exchange.mutate().request(mutatedRequest).build();
                    return Mono.just(build)
                            .map(ex -> {
                                ServerRequest.create(ex, MESSAGE_READERS)
                                        .bodyToMono(String.class)
                                        .subscribe(
                                                bodyString -> {
                                                    ex.getAttributes().put("requestBody",bodyString);
                                                }
                                        );
                                return ex;
                            })
                            .doOnNext(objectValue -> {
                                exchange.getAttributes().put(CACHE_REQUEST_BODY_OBJECT_KEY, objectValue);
                                exchange.getAttributes().put(CACHED_REQUEST_BODY_KEY, cachedFlux);
                            });
                }).defaultIfEmpty(exchange).flatMap(webExchange -> Mono.just(exchange));

But if you post a request withi empty body,it will cause "Only one connection receive subscriber allowed".So I copied the DataBufferUtils#join and rewrite it to avoid the empty body.
        Mono<DataBuffer> dataBufferMono = Flux.from(exchange.getRequest().getBody()).collectList().filter((list) -> {
            if(list.isEmpty()){
                list.add(new NettyDataBufferFactory(ByteBufAllocator.DEFAULT).allocateBuffer(0));
            }
            return true;
        }).map((list) -> {
            return ((DataBuffer)list.get(0)).factory().join(list);
        }).doOnDiscard(PooledDataBuffer.class, DataBufferUtils::release);
dataBufferMono.flatMap(dataBuffer->(...))

Did not find any good method so far.
You could read the body in customed GlobalFilter，but could not modify the body.
you could @Bean r.readBody( sssss ) with DSL , then you could read the body by exchange.getAttribute("cachedRequestBodyObject");
(remember, you could not modify and reset the body.  Or I am fool, so did not find the way)
the only method to modify the body content is use Java DSL r.path("/aaa").filters( f -> f.modifyRequestBody( xxxxxx )).uri("lb://aaa")     for each route, I did not find any method for all routes ( or default-filters) so far.

I use this code to parse the body
private static final String CACHED_REQUEST_BODY_OBJ = "cached_request_body_obj";

private static List<HttpMessageReader<?>> messageReaders =
        HandlerStrategies.withDefaults().messageReaders();

/**
 * This method is inspired by {@link ReadBodyPredicateFactory}
 *
 * @param exchange the current exchange
 * @param inClass  the class to parse the body to
 * @param <T>      the type the body is parsed to
 * @return Mono of type T of the parsed body
 */
static public <T> Mono<T> readBody(ServerWebExchange exchange, Class<T> inClass) {
  T bodyObject = exchange.getAttribute(CACHED_REQUEST_BODY_OBJ);

  return bodyObject != null
          ? Mono.just(bodyObject)
          : getBody(exchange, inClass);
}

private static <T> Mono<T> getBody(ServerWebExchange exchange, Class<T> inClass) {
  return ServerWebExchangeUtils.cacheRequestBodyAndRequest(
          exchange,
          request -> ServerRequest.create(exchange.mutate()
                  .request(request)
                  .build(), messageReaders)
                  .bodyToMono(inClass)
  ).doOnNext(bodyObject -> exchange.getAttributes()
          .put(CACHED_REQUEST_BODY_OBJ, bodyObject)
  );

Sadly it does not work as a standalone. It only works when I use the readBody predicate before as a dummy.
.readBody(inClass, o -> true)
.filters(f -> f
        .filter((exchange, chain) -> {
          return readBody(exchange, inClass)
                  // Do logic with body
                  .then(chain.filter(exchange));
        }))
.uri("http://exmaple.com"))

without it I get

java.lang.IllegalStateException: Only one connection receive subscriber allowed.

The ability to use the request body for custom logic in not a nice-to-have feature but rather a necessity.


AutomaticKeepAliveClientMixin.build registers keep alive but does not unregister

For some reason I assumed that calling super.build() with AutomaticKeepAliveClientMixin was enough to register and unregister keep alive, but it seems that for some reason it only registers the keep alive and does not unregister it:
https://github.com/flutter/flutter/blob/7c860ddf970575d4ca6dd0ccc4bd823613a16359/packages/flutter/lib/src/widgets/automatic_keep_alive.dart#L398-L406
This will never call _releaseKeepAlive(), in order to do that, an additional call to updateKeepAlive() is required, i.e.
class MyState extends State with with AutomaticKeepAliveClientMixin {

 @override
  bool get wantKeepAlive => _focusNode.hasFocus;

  @override
  Widget build(BuildContext context) {
    super.build(context); // This is required when when adding AutomaticKeepAliveClientMixin
    updateKeepAlive(); // Additionally this is necessary to unregister keep alive.
  }
}

Is this intended behavior? Seems like a bit of oversight. If we enforce super.build() call to update keep alive status, shouldn't that also unregister the keep alive?

@Hixie, the keep alive code seems to go way back, any insight of this?

Per the documentation https://main-api.flutter.dev/flutter/widgets/AutomaticKeepAliveClientMixin-mixin.html:

Then, whenever wantKeepAlive's value changes (or might change), the subclass should call updateKeepAlive.

(Specifically, IIRC, one goal is that keepalive should be able to change without triggering a rebuild.)

That makes sense. Thanks.

https://github.com/flutter/flutter/pull/145297/files


After geolocation the directions widget loses previous destinations

Steps to repro:

Generate directions from A: Bismarck, North Dakota to B: Fargo, North Dakota.
Observer the directions listed on the directions panel and route displayed on the map
Click on Geolocation
Click again on Directions.  The A and B fields will be blank, no directions will be listed, and no route is displayed on the map

This app has been replaced by the new Transportation 511.  No action required at this time.


Options --net and --dns not being honoured at same time

$ docker version
Client:
Version:      1.12.1
API version:  1.24
Go version:   go1.6.3
Git commit:   23cf638
Built:        Thu Aug 18 17:32:24 2016
OS/Arch:      linux/amd64
Experimental: true
Server:
Version:      1.12.1
API version:  1.24
Go version:   go1.6.3
Git commit:   23cf638
Built:        Thu Aug 18 17:32:24 2016
OS/Arch:      linux/amd64
Experimental: true
Output of docker info:
$ docker info
Containers: 17
Running: 2
Paused: 0
Stopped: 15
Images: 132
Server Version: 1.12.1
Storage Driver: aufs
Root Dir: /var/lib/docker/aufs
Backing Filesystem: extfs
Dirs: 214
Dirperm1 Supported: true
Logging Driver: syslog
Cgroup Driver: cgroupfs
Plugins:
Volume: local
Network: null bridge overlay host
Swarm: active
NodeID: aaaaa
Is Manager: true
ClusterID: xxxx
Managers: 1
Nodes: 2
Orchestration:
Task History Retention Limit: 10
Raft:
Snapshot Interval: 10000
Heartbeat Tick: 1
Election Tick: 3
Dispatcher:
Heartbeat Period: 5 seconds
CA Configuration:
Expiry Duration: 3 months
Node Address: x
Runtimes: runc
Default Runtime: runc
Security Options: apparmor seccomp
Kernel Version: 4.4.0-34-generic
Operating System: Ubuntu 16.04 LTS
OSType: linux
Architecture: x86_64
CPUs: 32
Total Memory: 251.9 GiB
Name:asdfasdf
ID: C6FU:PGSA:QJEK:67KU:OFU7:U6NQ:24FX:4OJ6:P2OH:ZON7:HNZF:TJU7
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
WARNING: No swap limit support
Experimental: true
Insecure Registries:
<IP_ADDRESS>/8
Additional environment details (AWS, VirtualBox, physical, etc.):
physical install on ubuntu 16.04
Steps to reproduce the issue:

Added "--dns <IP_ADDRESS>" to my ExecStart in /etc/systemd/system/docker.service
Bounced docker
Created network:

docker network create mybridge

Ran docker to look at /etc/resolv.conf:

docker run --net=mybridge  busybox cat /etc/resolv.conf
search my.work
nameserver <IP_ADDRESS>
options ndots:0

Ran docker again with default bridge:

docker run --net=bridge  busybox cat /etc/resolv.conf
search my.work
nameserver <IP_ADDRESS>

Ran docker without bridge:

docker run busybox cat /etc/resolv.conf
search my.work
nameserver <IP_ADDRESS>

Describe the results you received:
I got differing versions of what is in /etc/resolv.conf. The daemon specified nameserver is not added in all cases.
Describe the results you expected:
I was expecting the nameserver <IP_ADDRESS> to be added to /etc/resolv.conf . Instead it overwrites the docker NS of <IP_ADDRESS> in some cases.
I would expect to be able to specify both a "--net=somebridge" to enable inter container communication, and a "--dns" so a container can use a specific DNS in my environment.
Additional information you deem important (e.g. issue happens only occasionally):

I have seen workarounds to update the /etc/hosts in the container, but this is not bulletproof as servers I expect to reach via DNS may change their IP while container is running.

Also able to reproduce same on my Mac:
Client:
Version:      1.12.1
API version:  1.24
Go version:   go1.6.3
Git commit:   23cf638

I saw issue https://github.com/docker/docker/issues/21976, but I'm not receiving the warning thus filing new issue.

This is expected behavior.
On user-defined networks (the mybridge network), docker runs a DNS server @ <IP_ADDRESS> for service discovery in the network (or really for all networks the container is attached to).
Any requests not handled by the internal resolver are forwarded to the configured DNS server.
--net=bridge is the default network, same as you ran in part 3 with no --net defined. Docker does not run DNS in containers on the default bridge, thus you see the DNS address you configured in /etc/resolv.conf.
Did I understand your problem correctly? Does this make sense?

That makes sense. I assumed if my DNS entry wasn't in the /etc/resolv.conf that forwarding wouldn't happen. Since it's done through dockers DNS at <IP_ADDRESS> I'm all good.
thanks for the beta.


 Could you try version 1.134.0?

@sweatybridge Yes, installing version 1.134.0 fixed the issue. Thanks!

I'm getting the same error on version 1.150.0.


Update s3, sdk-core, sqs to 2.16.25

Updates

software.amazon.awssdk:s3
software.amazon.awssdk:sdk-core
software.amazon.awssdk:sqs

from 2.15.82 to 2.16.25.
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "software.amazon.awssdk" } ]

labels: library-update, semver-minor

Superseded by #123.


Currencies appear to be experiencing a reference issue VTT

The Labels for currency are showing up as "[object Object]" in the NPC Loot Sheet.
I am currently running the 5E 1.5.2 system on FoundryVTT 0.8.8

See my post here: https://github.com/jopeek/fvtt-loot-sheet-npc-5e/issues/180#issuecomment-938609980


Fix #345

Summary
If not transformers are supplied, we can provide molecular_data_transformed even in the non-legacy case because it is simply a copy of molecular_data.
Closes #345

Arguably this ought to have had a reno. I think it should be backported to stable since its affecting users code from 0.1.0 version.


PP-1896 Username and email case insensitive on findBy DAO methods

We have an issue in forgotten passwords not resetting passwords when email does not match db case so making the find case insensitive for both username (is this what is being used) and email.

There were no errors, go have a cup of coffee...


fix example in micro-service part

adapt it to accepting gennerally used uploading method(with params)

Hi @hyf3513OneGO, thanks for your contribution, it helps a lot. One thing is that please update the commands about /insert and /search at the end.


add prometheus

This is my first bucket with autoupdate, could someone take a look at so i didn't mess it up?
Also, this is the current stable release of prometheus. 2.0 will be released soonish.

You can run .\bin\checkver.ps1 -u -f prometheus to check if it works.

Looking at it, seems I made some mistakes. Updated pr coming shortly.

Fixed autoupdate now returns
>  .\bin\checkver.ps1 -u -f prometheus
prometheus: 1.7.1 (scoop version is 1.7.1)
Forcing autoupdate!
Autoupdating prometheus
https://github.com/prometheus/prometheus/releases/download/v1.7.1/sha256sums.txt
https://github.com/prometheus/prometheus/releases/download/v1.7.1/sha256sums.txt
Writing updated prometheus manifest

thanks for the pointer @r15ch13

Thanks 👍


[SPIKE] Aggregate jacoco coverage report from multiple subprojects

This change explores embedding the ideas from the current jacoco coverage aggregation sample into the jacoco plugin.
Use cases

Given a multi-project build that builds my product, I want a code coverage report for the whole product
Given a multi-project build that builds my product, where I have multiple types of tests that are executed by different test tasks, I want:

A single code coverage report for all my test types combined, for the whole product
Distinct code coverage reports for each test type for the whole product
A code coverage report that combines some test types, but not others for the whole product

Usage
In all the projects that should produce code coverage data, apply the jacoco plugin as usual.
Aggregating project is also a coverage data producing project
Here, the aggregation project is also a java project that packages the product, for example, an application that has project dependencies on some libraries:
app/build.gradle
lib1/build.gradle
lib2/build.gradle
settings.gradle

The lib1 and lib2 projects apply java-library and jacoco plugins.
The app project build the product and aggregates the unit test coverage data for it:
plugins {
    id("application") // implicitly applies `java`
    id("jacoco")
}
dependencies {
    implementation(project(":lib1"))
    implementation(project(":lib2"))
}
tasks.register("aggregatedCoverageReport", AggregatedJacocoReport) {
    testTaskNames = ["test"] // this can be skipped, it is the default
}

The aggregated report will also include any transitive project dependencies if lib1 or lib2 had any.
Aggregating project is a dedicated project that aggregates code coverage data from multiple subprojects
Say we have the following project, where foo, bar, fizz, buzz are all java projects and produce code coverage data (by applying jacoco plugin:
foo/build.gradle
bar/build.gradle
fizz/build.gradle
buzz/build.gradle
foobar-aggregation/build.gradle
settings.gradle

The foobar-aggregation project wants to aggregate coverage data from projects foo and `bar:
plugins {
    id("jacoco")
}
dependencies {
    jacocoAggregation(project(":foo"))
    jacocoAggregation(project(":bar"))
}
tasks.register("foobarCoverageReport", AggregatedJacocoReport) {
    testTaskNames = ["test"] // this can be skipped, it is the default
}

Aggregating coverage data from different test tasks
It is common that software projects declare different types of tests. The java plugin only configures the task named test of type Test that usually is used for unit testing. A project could declare another Test task for integration tests - integrationTest that might as well produce code coverage data.
By default, the aggregation task AggregatedJacocoReport will only aggregate the coverage data of tasks named test. To combine the aggregation of test and integrationTest tasks:
tasks.register("combinedCoverageReport", AggregatedJacocoReport) {
    testTaskNames = ["test", "integrationTest"]
}

Alternatively, multiple aggregations can be created as needed:
tasks.register("unitTestCoverageReport", AggregatedJacocoReport) {
    testTaskNames = ["test"]
}
tasks.register("integrationTestCoverageReport", AggregatedJacocoReport) {
    testTaskNames = ["integrationTest"]
}
tasks.register("combinedCoverageReport", AggregatedJacocoReport) {
    testTaskNames = ["test", "integrationTest"]
}

Behind the scenes
The outgoing coverage data and source directory variant creation as well as their resolution on the aggregating side, as seen in the current sample, is moved inside the jacoco plugin.
The jacoco plugin, when used together with java plugin will always create the following outgoing variants:

sourceDirectoriesElements, containing source directories of the main java source set (two concerns here: 1. this should probably live in the java plugin. 2. What to do with custom source sets, for example, those used in feature variants)
{testTaskName}CoverageElements for each task of type Test in the given project. This allows aggregating reports for different test categories either separately (create separate aggregations for unit tests and for integration tests), or combine them.

The plugin will also always create a jacocoAggregation configuration which is just a bucket for declaring dependencies. If jacoco plugin is used together with java plugin, jacocoAggregation will extend from implementation configuration.
This bucket should be used in a dedicated aggregation project (when the aggregating project itself is not a java project).
Otherwise, for applications with multiple project library dependencies, the aggregation will use project dependencies declared in implementation configuration.
Concerns

Using test task names as test categories. There is currently no concept of test category.
How to deal with custom source sets? For example, those from feature variants)
Is it OK that AggregatedJacocoReport extends the JacocoReport task, or should it be modeled as a separate task type, potentially hiding the configurability that JacocoReport now exposes?
Exposing sourceDirectoriesElements variant should probably be the responsibility of java plugin and not jacoco plugin.

Documentation
Rendered documentation section:

We're going to do something like this in 7.4, closing this spike.


ci: skip transparent encryption and direct routing check on 4.19.57

This test is failing on 4.19.57. We are testing on this particular
kernel to make sure that there are no breaking changes for ipsec on
oldest supported kernel.
Further investigation is needed into whether we should bump minimal
supported 4.19 version.

test-me-please

test-with-kernel

Coverage decreased (-0.008%) to 45.534% when pulling bc4aa111b6c924a008940b4dc3b64888756c8163 on pr/skip-failing-4.19-datapath-test into 7067dcb3cbe893d3ecee9e3cdf311bb6ef6e40cb on master.

test-me-please

test-with-kernel

test-me-please

test-with-kernel

test-with-kernel

test-me-please

test-with-kernel

test-with-kernel

test-with-kernel

test-me-please

seems like no skipping was needed, 4.19 vagrant image is fixed now, bumping the version


Initialize Drawing object every page not to carry over drawings to the following pages

Description of the problems or issues
Is your pull request related to a problem? Please describe.
Expected behavior
When displaying candidates like below, the candidates are highlighted by surrounding rectangles.
from hardware_utils import entity_to_candidates
vis = Visualizer(pdf_path)
vis.display_candidates(cands)

Actual behavior
When displaying multiple candidates that span multiple pages, rectangles are drawn not on the right page but also on the following pages.
Does your pull request fix any issue.
N/A.
Description of the proposed changes
Initialize Drawing object every page not to carry over drawings to the following pages
Test plan
A clear and concise description of how you test the new changes.
Checklist

[ ] I have updated the documentation accordingly.
[ ] I have added tests to cover my changes.
[ ] All new and existing tests passed.
[ ] I have updated the CHANGELOG.rst accordingly.

The hardware tutorial can demonstrates the issue.
The blue rectangle for "BC182BG" is drawn both on the first page and on the second page.

This is the result with this patch:

Codecov Report

Merging #488 into master will increase coverage by 0.00%.
The diff coverage is 100.00%.

@@           Coverage Diff           @@
##           master     #488   +/-   ##
=======================================
  Coverage   85.82%   85.83%
=======================================
  Files          88       88
  Lines        4558     4559    +1
  Branches      848      848
=======================================
+ Hits         3912     3913    +1
  Misses        464      464
  Partials      182      182

Flag
Coverage Δ

#unittests
85.83% <100.00%> (+<0.01%)
:arrow_up:

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

Impacted Files
Coverage Δ

src/fonduer/utils/visualizer.py
80.00% <100.00%> (+0.27%)
:arrow_up:


Adding web (1) resource

Description of your changes

Fixes #353

web 1

[x] azurerm_web_app_active_slot

I have:

[x] Run make reviewable test to ensure this PR is ready for review.

How has this code been tested

Manually and Uptest:

/test-examples="examples/web/appactiveslot.yaml"