curl unable to establish ssl connections since update to 21.11

Describe the bug
curl is unable to establish SSL connections and exits with curl: (60) SSL certificate problem: unable to get local issuer certificate, though that can be circumvented (see reproduction).
Steps To Reproduce
Steps to reproduce the behavior:

Try to connect to an https url with curl:

$ curl https://curl.se/download/curl-7.80.0.tar.gz
curl: (60) SSL certificate problem: unable to get local issuer certificate
More details here: https://curl.se/docs/sslcerts.html

curl failed to verify the legitimacy of the server and therefore could not
establish a secure connection to it. To learn more about this situation and
how to fix it, please visit the web page mentioned above.

The error can be circumvented using nix's SSL_CERT_FILE env variable and curl's ability to read the env variable CURL_CA_BUNDLE (cf. https://curl.se/docs/sslcerts.html):

$ CURL_CA_BUNDLE=$SSL_CERT_FILE curl https://curl.se/download/curl-7.80.0.tar.gz --output /dev/null
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 4069k  100 4069k    0     0   959k      0  0:00:04  0:00:04 --:--:--  959k

Expected behavior
curl successfully establishes ssl connection without having to specify any variables or options.
Screenshots
If applicable, add screenshots to help explain your problem.
Additional context
Looking at the git history of curl, 4e1b102af618fc3e8da11da8a0cea28e5c104f3a might be relevant, though I don't have any idea if it really is (e. g. I don't know anything about building/packaging curl and/or ssl stuff on nix).
Not sure if relevant, but my system is using nix flakes.
Notify maintainers

Metadata
Please run nix-shell -p nix-info --run "nix-info -m" and paste the result.
[user@system:~]$ nix-shell -p nix-info --run "nix-info -m"
this path will be fetched (0.05 MiB download, 0.28 MiB unpacked):
  /nix/store/p5lnl4zr45n7mf9kz9w8yz3rqh001b5c-bash-interactive-4.4-p23-dev
copying path '/nix/store/p5lnl4zr45n7mf9kz9w8yz3rqh001b5c-bash-interactive-4.4-p23-dev' from 'https://cache.nixos.org'...
 - system: `"x86_64-linux"`
 - host os: `Linux 5.15.2-xanmod1-tt, NixOS, 21.11 (Porcupine)`
 - multi-user?: `yes`
 - sandbox: `yes`
 - version: `nix-env (Nix) 2.4`
 - nixpkgs: `/nix/var/nix/profiles/per-user/root/channels/nixos`

Maintainer information:
# a list of nixpkgs attributes affected by the problem
attribute:
# a list of nixos modules affected by the problem
module:

I can reproduce this with curl https://www.webtoons.com/en, https://curl.se returns a certificate that doesn't explode.

I think this is #3382 ?

I'm having some SSL cert issues too, not sure if they are related. I'm on freshly updated 21.05.
$ curl -v 'https://diagnostic.opendns.com'
*   Trying <IP_ADDRESS>:443...
* Connected to diagnostic.opendns.com (<IP_ADDRESS>) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* TLSv1.3 (IN), TLS handshake, Server hello (2):
* TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8):
* TLSv1.3 (IN), TLS handshake, Certificate (11):
* TLSv1.3 (OUT), TLS alert, unknown CA (560):
* SSL certificate problem: unable to get local issuer certificate
* Closing connection 0
....

$ curl -v 'https://www.webtoons.com'
*   Trying <IP_ADDRESS>:443...
* Connected to www.webtoons.com (<IP_ADDRESS>) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* TLSv1.3 (IN), TLS handshake, Server hello (2):
* TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8):
* TLSv1.3 (IN), TLS handshake, Certificate (11):
* TLSv1.3 (OUT), TLS alert, unknown CA (560):
* SSL certificate problem: unable to get local issuer certificate
* Closing connection 0
...

$ sha256sum /etc/ssl/certs/*
80721e0ae70f70606885864a1bca218110476bca60e1a34862ce139561d1203e  /etc/ssl/certs/ca-bundle.crt
80721e0ae70f70606885864a1bca218110476bca60e1a34862ce139561d1203e  /etc/ssl/certs/ca-certificates.crt
$ echo $SSL_CERT_FILE

$

curl.se works for me. The above unable to get local issuer certificate is reproducible in the latest Ubuntu docker image, which makes me think the issue lies somewhere upstream.
At this time, both domains above have incomplete chains: OpenDNS Webtoons but the intermediate certs are described as "DigiCert TLS RSA SHA256 2020 CA1" and "GeoTrust RSA CA 2018" so they don't seem new.
If you are able to reproduce with curl.se, post full output with -v so we can validate the IP.

I looked at this a little more, and I believe in my case the reason for curl reporting "unable to get local issuer certificate" is due to the incomplete certificate chain presented by the remote server. Browsers and OS-level cert management tools may cache or are able to look up intermediate certs, but not with curl. It is best practice for the servers to provide the full chain, so it may be worth contacting OpenDNS and Webtoons to correct the issue.
curl.se should be configured correctly. If you experience an issue with that domain, you should verify that your DNS is not hijacked and that curl can find the certificate bundle. On NixOS, verify /etc/ssl/certs/ca-bundle.crt exists and try CURL_CA_BUNDLE=/etc/ssl/certs/ca-bundle.crt curl -v 'curl https://curl.se'. If that path does not exist, try adding cacert to systemPackages.

so it may be worth contacting OpenDNS and Webtoons to correct the issue.

Recently my bot started delivering comic updates for the ones hosted on Webtoons again so it seems they noticed the problem and fixed it (:
p.s. that /etc/ssl/... path is fine

Just mentioning that I saw this issue with curl as well, and the fix was @liketechnik 's solution, which I materialized declaratively with this config in configuration.nix:
  environment.variables = {
    # ...
    # fix for this curl issue with https requests: https://github.com/NixOS/nixpkgs/issues/148686
    CURL_CA_BUNDLE = "/etc/pki/tls/certs/ca-bundle.crt"; # this is the value of $SSL_CERT_FILE ; may be brittle
  };

I will next try to add cacert to my systemPackages and remove this extra env config to see if that fixes it without the brittleness

It hasn't been happening here either.


Pageheader title should have a loading state

What will this achieve?
In our designs, some of the pageheader titles are dynamic and come from an api. We want to utilize skeletons until it loads but currently the Pageheader title prop is of string.

How will success be measured?
If we can somehow pass a node OR a string to the title prop. Or indicated a prop if the title is loading.

I wonder if @cameroncalder has any thoughts about the loading/skeleton state for PageHeader, and how we can best go about building this into the component for consistency.

Closed by #761 @cameroncalder reviewed the addition of skeleton and approved of the change.


Missing faces when creating SVG

Any help would be much apricated!
I have this object:

It renders this svg:

As you can see, its missing some of the faces on the RS text, I've tried a bunch of settings and I cant seem to get the faces to show up. These are the settings I'm using:

I'm attaching the blender file and the generated svg:
algo.svg
error.blend
I'm using blender 4.0.2

I've downloaded file and looked into model.
Regarding to my knowledge this plugin should be able to handle this model and present all faces visible on view in blender.
I'll mark this topic as BUG.

Hi @nurdism
I've played with your file a bit and I found solution how to generate your file in proper way.
At first there is still issue with managing state of parameters. In particular with those which are not changed from default state yet.
My result from settings:

is like below:

How to workaround issues?

Change each parameter to desired value
If desired value is same like default one then change to different one and back to default one.
If there is issue with missing faces it used to be section with collapsing or dissolving edges.

Default values may not be the same like displayed default values. Please try play around those parameters. It might help.

In case of further issues or questions please let me know.
Is that explanation solves your issue? (At least for now)

That works thanks for the workaround, I see that it's an issue with the state of the parameters.


[enhancement] Adding video player support (youtube alternative)

Perhaps utilizing something like https://github.com/gitsummore/nile.js ?
Any thoughts on this?

Yes, video playing over the p2p network is currently possible, and @mafintosh has had successful experiments with live-streaming. You should be able to publish video files and play them in <video> tags, or directly.
The one issue is that we have a crash issue for video playing https://github.com/beakerbrowser/beaker/issues/474 which we'll hopefully resolve soon.

So basically, if you make a beaker website, by default anything that you include in the website (images, videos, pdfs) will be distributed how you expect?
I guess I'm wondering what the default playback of video files is for the browser. Are you planning to implement streaming as the default or is it currently full download and then watch?

So basically, if you make a beaker website, by default anything that you include in the website (images, videos, pdfs) will be distributed how you expect?

Yes, correct.

I guess I'm wondering what the default playback of video files is for the browser. Are you planning to implement streaming as the default or is it currently full download and then watch?

The P2P protocol does do streaming. All files are broken into chunks, which IIRC are 5mb each. (I need to double check but it's definitely no larger than 5mb.) So, you can stream videos and skip as you'd expect.

Closing, but feel free to continue conversation here.

Hi @pfrazee, I made a POC on this subject and the current DatArchive API:
    const buf = await archive.readFile(video, 'binary')
    const blob = new Blob([buf], {type: 'video/mp4'})
    const videoElement = document.createElement('video')
    videoElement.src = URL.createObjectURL(blob)

    document.getElementById('container').appendChild(videoElement)

Works well. Though, as I understand it, the DatArchive.readFile will read the file and it will only be available for watching when completed. Are there any plans to implement some kind of createReadStream on DatArchive? I've followed the work of @mafintosh and I know it should be possible! Maybe have you already work on some implementations, or could give me some advices on how this kind of implementation would suit?
Thanks!

Oh actually it's easier then this, all you have to do is to use the dat:// link in the src attribute:
    const videoElement = document.createElement('video')
    videoElement.setAttribute('controls', true)
    videoElement.setAttribute('src', `dat://XXX/video.mp4`)

<3 this is just awesome!

@soyuka yep you got it. Stream APIs will be added in the future. I'm waiting to see how the browser stream specs stabilize -- and also to see what happens with the for-await stream spec.

Nice! <3 your work tyvm! Keep me tuned :).

Cheers! Let us know if there's anything else we can do for you.
On Mon, Sep 11, 2017 at 11:01 AM, Antoine Bluchet<EMAIL_ADDRESS>wrote:

Nice! <3 your work tyvm! Keep me tuned :).
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/beakerbrowser/beaker/issues/635#issuecomment-328575986,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABNhU_HWJVBHO0h-R-ONRRK8Kp_31txtks5shVlZgaJpZM4OtFcX
.


Transaction does not return the expected Failure

Hey :wave: ,
please checkout this spec. I expect that the code rolls back and returns the Failure(:failure), but instead it returns Success(nil).
Am i misunderstanding something, or is this wrong behavior? If yes, what's the correct way to return the Failure.
require "spec_helper"
require "dry/operation"

RSpec.describe Dry::Operation::Extensions::ROM do
  include Dry::Monads[:result]

  let(:rom) do
    ROM.container(:sql, "sqlite:memory") do |config|
      config.default.create_table(:foo) do
        column :bar, :string
      end

      config.relation(:foo)
    end
  end

  let(:base) do
    Class.new(Dry::Operation) do
      include Dry::Operation::Extensions::ROM

      attr_reader :rom

      def initialize(rom:)
        @rom = rom
        super()
      end
    end
  end

  it "should roll back and return the failure" do
    instance = Class.new(base) do
      def call
        transaction do
          step create_record
          step failure
        end
      end

      def create_record
        Success(rom.relations[:foo].command(:create).call(bar: "bar"))
      end

      def failure
        Failure(:failure)
      end
    end.new(rom: rom)

    result = instance.call

    expect(result).to be_failure
  end
end

Thanks!

Hmm, no, that doesn't look as something expected :/

Hey @waiting-for-dev,
WDYT? What's the right way to fix this?
thanks

Hey @wuarmin, thanks for the nudge. I'm buried in work these days but this is my number one priority beyond that, so I'll be able to take a look very soon 🙂

Here's a working monkey-patch if anyone needs it in the meantime: https://gist.github.com/tylerhunt/4e4248ff350028fbce6dbb068dd588b1

A fix is available at https://github.com/dry-rb/dry-operation/pull/25 Thanks for your patience with this one, folks! 🙏

@waiting-for-dev thanks for the great work!


[backport] Hide private names in cupyx.time

Backport of #3965

[automatic post] Jenkins, test this please.

Jenkins CI test (for commit eb26dab1467bd12b57457907c33ac649dd9cadbe, target branch v8) succeeded!

LGTM!


Cilium envoy crd pre beta

Use cilium-cli built from https://github.com/cilium/cilium-cli/pull/550

/test

Added cluster roles for CEC & Ingress to helm charts, rebased to release v1.11.0.

/test

bpf complexity issue on kernel 4.9; not addressing as of now.
Other fails are as expected for upgrade and downgrade test.


{CI} Update fabricbot.json for az login and az account

This checklist is used to make sure that common guidelines for a pull request are followed.

az account assign to @zhoxing-ms
az login assign to @jiasli

Related command

General Guidelines

[ ] Have you run azdev style <YOUR_EXT> locally? (pip install azdev required)
[ ] Have you run python scripts/ci/test_index.py -q locally?

For new extensions:

[ ] My extension description/summary conforms to the Extension Summary Guidelines.

About Extension Publish
There is a pipeline to automatically build, upload and publish extension wheels.
Once your pull request is merged into main branch, a new pull request will be created to update src/index.json automatically.
You only need to update the version information in file setup.py and historical information in file HISTORY.rst in your PR but do not modify src/index.json.

CI


yt-dlp has troubles downloading YouTube videos on Windows

DO NOT REMOVE OR SKIP THE ISSUE TEMPLATE

[X] I understand that I will be blocked if I intentionally remove or skip any mandatory* field

Checklist

[X] I'm reporting a bug unrelated to a specific site
[X] I've verified that I'm running yt-dlp version 2023.06.22 (update instructions) or later (specify commit)
[X] I've checked that all provided URLs are playable in a browser with the same IP and same login details
[X] I've checked that all URLs and arguments with special characters are properly quoted or escaped
[X] I've searched known issues and the bugtracker for similar issues including closed ones. DO NOT post duplicates
[X] I've read the guidelines for opening an issue

Provide a description that is worded well enough to be understood
On Windows, when I download the video, it fails to rename the downloaded file. Please see the verbose log for more info.
Provide verbose output that clearly demonstrates the problem

[X] Run your yt-dlp command with -vU flag added (yt-dlp -vU <your command line>)
[ ] If using API, add 'verbose': True to YoutubeDL params instead
[X] Copy the WHOLE output (starting with [debug] Command-line config) and insert it below

Complete Verbose Output
[debug] Command-line config: ['-vU', 'https://www.youtube.com/watch?v=zd6lzedMXPg']
[debug] Portable config "C:\Users\User\scoop\apps\yt-dlp\current\yt-dlp.conf": []
[debug] Encodings: locale cp1252, fs utf-8, pref cp1252, out utf-8, error utf-8, screen utf-8
[debug] yt-dlp version<EMAIL_ADDRESS>[812cdfa06] (win_exe)
[debug] Python 3.8.10 (CPython AMD64 64bit) - Windows-10-10.0.22621-SP0 (OpenSSL 1.1.1k  25 Mar 2021)
[debug] exe versions: ffmpeg 6.0-full_build-www.gyan.dev (setts), ffprobe 6.0-full_build-www.gyan.dev
[debug] Optional libraries: Cryptodome-3.18.0, brotli-1.0.9, certifi-2023.05.07, mutagen-1.46.0, sqlite3-2.6.0, websockets-11.0.3
[debug] Proxy map: {}
[debug] Loaded 1851 extractors
[debug] Fetching release info: https://api.github.com/repos/yt-dlp/yt-dlp/releases/latest
Available version<EMAIL_ADDRESS>Current version<EMAIL_ADDRESS>Current Build Hash: 37e7ffe204309357cfd1388b0e2c782a30e293ddd0f2761a9a8f6afa185b3566
yt-dlp is up to date<EMAIL_ADDRESS>[youtube] Extracting URL: https://www.youtube.com/watch?v=zd6lzedMXPg
[youtube] zd6lzedMXPg: Downloading webpage
[youtube] zd6lzedMXPg: Downloading ios player API JSON
[youtube] zd6lzedMXPg: Downloading android player API JSON
[debug] Loading youtube-nsig.b7910ca8 from cache
[debug] [youtube] Decrypted nsig jc-bhFzRqykUOyY => nf4wHy8bccXXAA
[youtube] zd6lzedMXPg: Downloading m3u8 information
[debug] Sort order given by extractor: quality, res, fps, hdr:12, source, vcodec:vp9.2, channels, acodec, lang, proto
[debug] Formats sorted by: hasvid, ie_pref, quality, res, fps, hdr:12(7), source, vcodec:vp9.2(10), channels, acodec, lang, proto, size, br, asr, vext, aext, hasaud, id
[debug] Default format spec: bestvideo*+bestaudio/best
[info] zd6lzedMXPg: Downloading 1 format(s): 137+251
[debug] Invoking http downloader on "https://rr3---sn-q4flrnld.googlevideo.com/videoplayback?expire=1687852685&ei=LUKaZN2JELKW2_gPq-GU4AI&ip=2600%3A1700%3A10a0%3Aad40%3A1ccb%3Abffd%3Ae5a7%3A8c03&id=o-AFiCGI_T2ktQIvSoF-sOYPU2aq8p_WG24r2zKhUmTpqS&itag=137&source=youtube&requiressl=yes&mh=6M&mm=31%2C29&mn=sn-q4flrnld%2Csn-q4fl6nd6&ms=au%2Crdu&mv=m&mvi=3&pl=41&initcwndbps=1010000&vprv=1&svpuc=1&mime=video%2Fmp4&gir=yes&clen=3060273&dur=50.733&lmt=1681443371354184&mt=1687830796&fvip=1&keepalive=yes&fexp=24007246%2C24363392&c=IOS&txp=6219224&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cvprv%2Csvpuc%2Cmime%2Cgir%2Cclen%2Cdur%2Clmt&sig=AOq0QJ8wRQIgFzsBNfdG7S-GV22ADaEmcftdMz7jSSfTE_E5a-9NYCoCIQC3oEGTMTVSbCsjdVQvqSWeMyICtZGxsCssnJzPAHCcxw%3D%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&lsig=AG3C_xAwRAIgWZc_WagmUB9MBnbN1bWWE2aHshZqP6eDXLwPqJsR0aUCIFEkLoAquh8k5kU8vdzGsX0B_IjSFX3RuRYvc2UloIVm"
[download] Resuming download at byte 3060273
[download] Thanks for 1,000 subscribers! (with a little surprise at the end!) [zd6lzedMXPg].f137.mp4 has already been downloaded
[download] Unable to rename file: [WinError 5] Access is denied: 'Thanks for 1,000 subscribers! (with a little surprise at the end!) [zd6lzedMXPg].f137.mp4.part' -> 'Thanks for 1,000 subscribers! (with a little surprise at the end!) [zd6lzedMXPg].f137.mp4'. Retrying (1/3)...
[download] Unable to rename file: [WinError 5] Access is denied: 'Thanks for 1,000 subscribers! (with a little surprise at the end!) [zd6lzedMXPg].f137.mp4.part' -> 'Thanks for 1,000 subscribers! (with a little surprise at the end!) [zd6lzedMXPg].f137.mp4'. Retrying (2/3)...
[download] Unable to rename file: [WinError 5] Access is denied: 'Thanks for 1,000 subscribers! (with a little surprise at the end!) [zd6lzedMXPg].f137.mp4.part' -> 'Thanks for 1,000 subscribers! (with a little surprise at the end!) [zd6lzedMXPg].f137.mp4'. Retrying (3/3)...
ERROR: Unable to rename file: [WinError 5] Access is denied: 'Thanks for 1,000 subscribers! (with a little surprise at the end!) [zd6lzedMXPg].f137.mp4.part' -> 'Thanks for 1,000 subscribers! (with a little surprise at the end!) [zd6lzedMXPg].f137.mp4'. Giving up after 3 retries
Traceback (most recent call last):
  File "yt_dlp\downloader\http.py", line 129, in establish_connection
  File "yt_dlp\YoutubeDL.py", line 3786, in urlopen
  File "urllib\request.py", line 531, in open
  File "urllib\request.py", line 640, in http_response
  File "urllib\request.py", line 563, in error
  File "urllib\request.py", line 502, in _call_chain
  File "urllib\request.py", line 755, in http_error_302
  File "urllib\request.py", line 531, in open
  File "urllib\request.py", line 640, in http_response
  File "urllib\request.py", line 569, in error
  File "urllib\request.py", line 502, in _call_chain
  File "urllib\request.py", line 649, in http_error_default
urllib.error.HTTPError: HTTP Error 416: Requested range not satisfiable

[download] 100% of    2.92MiB
[debug] Invoking http downloader on "https://rr3---sn-q4flrnld.googlevideo.com/videoplayback?expire=1687852685&ei=LUKaZJbyHMma2_gP1YKc4Aw&ip=2600%3A1700%3A10a0%3Aad40%3A1ccb%3Abffd%3Ae5a7%3A8c03&id=o-ABzTZqff_NkjOY3NCnlWm-L8JdZF379l56TBCJA7Csah&itag=251&source=youtube&requiressl=yes&mh=6M&mm=31%2C26&mn=sn-q4flrnld%2Csn-vgqsknlk&ms=au%2Conr&mv=m&mvi=3&pl=41&initcwndbps=1010000&spc=qEK7B4gQ8nurxb8L7fpgMwPdIUCPrH8&vprv=1&svpuc=1&mime=audio%2Fwebm&gir=yes&clen=700283&dur=50.761&lmt=1681443373240175&mt=1687830796&fvip=4&keepalive=yes&fexp=24007246%2C24362688%2C24363393&c=ANDROID&txp=6218224&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cspc%2Cvprv%2Csvpuc%2Cmime%2Cgir%2Cclen%2Cdur%2Clmt&sig=AOq0QJ8wRQIgQ800pxuJGBCHI5g6zQeghkCdXYQv4gWxK_rOkZQmc1ECIQC2q8bwxVsDdkH6Nevn378kLXNmUWwfV2X3Qh4nAEpkdg%3D%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&lsig=AG3C_xAwRgIhAOJzG5O3qj_IRpDjFwjXXnuCFcCYBXVAjPOLJXxXw_wnAiEArT_Tu7_H1oHBxFkBkqcGdytBB5rxXb6AtY9Sp-T-Iu4%3D"
[download] Thanks for 1,000 subscribers! (with a little surprise at the end!) [zd6lzedMXPg].f251.webm has already been downloaded
[download] 100% of  683.87KiB
[Merger] Merging formats into "Thanks for 1,000 subscribers! (with a little surprise at the end!) [zd6lzedMXPg].mkv"
ERROR: [WinError 2] The system cannot find the file specified: 'Thanks for 1,000 subscribers! (with a little surprise at the end!) [zd6lzedMXPg].f137.mp4'
Traceback (most recent call last):
  File "yt_dlp\YoutubeDL.py", line 1555, in wrapper
  File "yt_dlp\YoutubeDL.py", line 1652, in __extract_info
  File "yt_dlp\YoutubeDL.py", line 1711, in process_ie_result
  File "yt_dlp\YoutubeDL.py", line 2821, in process_video_result
  File "yt_dlp\YoutubeDL.py", line 3363, in process_info
  File "yt_dlp\YoutubeDL.py", line 3543, in post_process
  File "yt_dlp\YoutubeDL.py", line 3525, in run_all_pps
  File "yt_dlp\YoutubeDL.py", line 3503, in run_pp
  File "yt_dlp\postprocessor\common.py", line 24, in run
  File "yt_dlp\postprocessor\common.py", line 129, in wrapper
  File "yt_dlp\postprocessor\ffmpeg.py", line 837, in run
  File "yt_dlp\postprocessor\ffmpeg.py", line 329, in run_ffmpeg_multiple_files
  File "yt_dlp\postprocessor\ffmpeg.py", line 336, in real_run_ffmpeg
  File "yt_dlp\postprocessor\ffmpeg.py", line 337, in <genexpr>
FileNotFoundError: [WinError 2] The system cannot find the file specified: 'Thanks for 1,000 subscribers! (with a little surprise at the end!) [zd6lzedMXPg].f137.mp4'

https://github.com/yt-dlp/yt-dlp/issues/1136#issuecomment-932077195


Add support for the config-path option

Adds a config-path option for rustfmt. If this argument is provided,
it recursively searches the config-path for a rustfmt.toml file.
If file is not found, reverts to searching the file input path for the
config file or uses default options.
Closes #778

ping @marcusklaas is this good to merge now?

I have resolved all the merge conflicts with the master. Is anything else needed?

Sorry for the big delay. This looks good now. Thanks!

Is it possible to get a version bump? The update to atom-beautify will break with the old versions of rustfmt and I would like say  use > version of rust fmt.

Just saw this get merged. Is there a technical reason to provide a path to be searched for the config instead of the config file itself? It seems odd to pass a path, but not actually the path of the config file.

ping @sidred

Here is how it atom beautifier works:

copies the source file to a tmp directory ( /tmp on linux)
runs rustfmt on it
reads the formatted file
updates the text in the window if necessary.

In order to mirror rustfmt behavior with atom, the config path take the path to file and not an absolute file.

Oh I see. It's to avoid duplicating the config file lookup logic in Atom, where it'll probably end up out of date. Thanks for the explanation!


[Blog] - KubeCon NA 2021 Service Mesh Performance Office Hours

Current State of the service-mesh-performance site
There is no update or information regarding Service Mesh Performance Office Hours in the recent KubeCon NA 2021
Desired State of the service-mesh-performance site
Drive Link: https://drive.google.com/file/d/1lL8dHSjAUml4-PtMKqKFoh_aJadzLaCJ/view
Slides Link: https://docs.google.com/presentation/d/1fm7Eu1T3JSBPVmdFYyyevqQLSmAMLXqzWqC7QxTHGX8/edit#slide=id.g820d9370f8_0_0
A blog needs to be written/created in https://smp-spec.io/ site under https://smp-spec.io/blog/ along with details about the session along with the slides/presentation

I think I can take this. @sunkuranganath must be busy.

Sounds good @Mr-DG-Wick

@Mr-DG-Wick please go ahead. Thank you.

I shall have the draft soon :)

😅 Got a bit busy with exams and stuff. I'll get this assigned to someone willing in today's call.

Could you link any materials you have written for this so that someone else can pick it up?

Hi can I take this up ? can anyone please specify on what topic the blog's needed to be created.... as I am not clear about the mentioned issue?

Hi can I take this up ? can anyone please specify on what topic the blog's needed to be created.... as I am not clear about the mentioned issue?

the blog in other words is a recap of the presentation given in the smp office hours in Kubecon NA 2021

Checking on progress...

I would like to work on this if no one is doing it currently.


Python 3.12 support

Python 3.12 has removed the imp module. It was deprecated since Python 3.7, but the deprecation warning ignored by mitogen since 2018 (c2c7caa34f247afdcd03b22f7d32fab160ecbe6a).
The suggested path forward would be to switch to using importlib instead. Some correspondences are easy (eg imp.get_magic() ->  importlib.util.MAGIC_NUMBER), but others look non-trivial and require extra care to keep supporting old Python versions.
I also quickly tried the hack of copying the old imp.py from Python 3.11 into mitogen/compat and basically replacing import imp with import mitogen.compat.imp as imp. This actually allowed me to import mitogen locally without any error messages, but running an ansible playbook fails with
"msg": "EOF on stream; last 100 lines received:\nMITO000\nMITO001\nTraceback (most recent call last):\n  File \"<stdin>\", line 61, in <module>\nModuleNotFoundError: No module named 'mitogen'",

Let's hope the mitogen devs find some time looking into this to keep the project alive with Python 3.12+.

At the moment, python 3.12 is only supported on ansible-core 2.16.
https://docs.ansible.com/ansible/latest/reference_appendices/release_and_maintenance.html#ansible-core-release-cycle

Agreed, but despite the lack of official support of Python 3.12, I had no problems running various playbooks with Python3.12 and ansible-core 2.14, 2.15 or 2.16 - but unfortunately only without mitogen.

but others look non-trivial and require extra care to keep supporting old Python versions.

Yeah, this won't be trivial.

Good news.
I had a bit of time today to spend on this, and after 8 hours, got it working.
I managed to make mitogen work with Python 3.12. And with Ansible 2.16.2 as a bonus.
Mitogen 2.16.x requires Python 3.8 (due to use of / in argument lists, aka "Positional-only arguments", in ansible.utils.unsafe_proxy module). Not sure if this is documented by ansible. But it is the fact. And some of the hosts I manage do have Python 3.6.x, so that was not nice. But it was very trivial to fix, and it now work on target hosts with Python 3.6. Documentation says 3.6 is supported on a target, but that is not true. 3.8 is required on a target.
Verified configurations:
Host:

ansible-core 2.16.2, Python 3.12.1, Fedora 39

Targets:

Python 3.6.8, Centos 8
Python 3.9.16, Centos 9
Python 3.9.17, Centos 9
Python 3.9.18, Centos 9
Python 3.11.6, Fedora 38
Python 3.12.0, Fedora 39
Python 3.12.1, Fedora 39

And as expected, it works smoothly. On a high latency link (225ms), with medium size playbooks (55 tasks), it finishes in 84 seconds vs 169 seconds without mitogen.
I will do some more testing with Host being ansible 2.14.x, 2.15.x, and host using Python 3.6, 3.9, 3.11.
I do not have any older machines anymore, but I can probably spin-up some VM for a test.
The required modifications are a bit of ad-hoc, but are not too big  but I should clean it up, and wrap in various conditions and try blocks, so it also works with Python 3.3 and older.
$ git diff --stat
 ansible_mitogen/loaders.py                        |   2 +-
 ansible_mitogen/plugins/connection/mitogen_ssh.py |   2 ++
 ansible_mitogen/process.py                        |  12 +++++++++---
 ansible_mitogen/strategy.py                       |   4 +++-
 ansible_mitogen/transport_config.py               |  14 ++++++++------
 mitogen/core.py                                   | 144 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------
 mitogen/master.py                                 |  27 +++++++++++++++++++++------
 7 files changed, 181 insertions(+), 24 deletions(-)
$

(30% of this is extra debugging, that was added to help with fixing the issue; and another 10% are some patches from unmerged MRs, that I incorporated just in case)
Attaching a draft patch version for now, in case, I forgot about this.
mitogen-python312.patch.txt

Ok, I found few failing roles with my patch, so still requires some work.
docker_container role failing:
ERROR! [mux  3104762] 14:09:16.442316 E mitogen.[ssh.foobar.example.com.io.sudo.root]: while importing 'numpy.version'
Traceback (most recent call last):
  File "<stdin>", line 1671, in exec_module
  File "master:/usr/lib64/python3.12/site-packages/numpy/version.py", line 1
SyntaxError: future feature annotations is not defined
An exception occurred during task execution. To see the full traceback, use -vvv. The error was: SyntaxError: future feature annotations is not defined

This is with a target being Python 3.6.8, Centos 8.
It is a bit strange, because I have docker python packages for docker on the target host, and it works (tested in the python interpreter there). There is no numpy, but it does not look like it needs numpy either.
Tracing import docker on Fedora 39, Python 3.11.2, it loads about 466 extra modules, but there is no numpy in the trace (despite this host machine having numpy available), so I am not sure why something is trying to access numpy.

More details about the docker_container role failing.
It looks like docker package pulls websocket package, which optionally depends on numpy. numpy package is not on a target machine, but mitogen module sender sends it anyway (mitogen proactively tries to send all modules that a given module references, even if that reference is under a conditional, try-except block, function or a class - i.e. even if not required, or intended to be loaded lazily).
This causes a minor problem here.
The full traceback is:
Traceback (most recent call last):
  File "master:/home/xxx/.local/lib/python3.12/site-packages/mitogen-0.3.5.dev0-py3.12.egg/ansible_mitogen/runner.py", line 973, in _run
    self._run_code(code, mod)
  File "master:/home/xxx/.local/lib/python3.12/site-packages/mitogen-0.3.5.dev0-py3.12.egg/ansible_mitogen/runner.py", line 937, in _run_code
    exec(code, vars(mod))
  File "master:/home/witek/.ansible/collections/ansible_collections/community/docker/plugins/modules/docker_container.py", line 1202, in <module>
  File "<frozen importlib._bootstrap>", line 971, in _find_and_load
  File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
  File "<stdin>", line 1678, in exec_module
  File "master:/home/witek/.ansible/collections/ansible_collections/community/docker/plugins/module_utils/common.py", line 33, in <module>
    from docker import __version__ as docker_version
  File "/usr/local/lib/python3.6/site-packages/docker/__init__.py", line 2, in <module>
    from .api import APIClient
  File "/usr/local/lib/python3.6/site-packages/docker/api/__init__.py", line 2, in <module>
    from .client import APIClient
  File "/usr/local/lib/python3.6/site-packages/docker/api/client.py", line 8, in <module>
    import websocket
  File "/usr/local/lib/python3.6/site-packages/websocket/__init__.py", line 21, in <module>
    from ._abnf import *
  File "/usr/local/lib/python3.6/site-packages/websocket/_abnf.py", line 37, in <module>
    import numpy
  File "<frozen importlib._bootstrap>", line 971, in _find_and_load
  File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
  File "<stdin>", line 1678, in exec_module
  File "master:/usr/lib64/python3.12/site-packages/numpy/__init__.py", line 141, in <module>
    from . import core
  File "<frozen importlib._bootstrap>", line 971, in _find_and_load
  File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
  File "<stdin>", line 1678, in exec_module
  File "master:/usr/lib64/python3.12/site-packages/numpy/core/__init__.py", line 9, in <module>
    from numpy.version import version as __version__
  File "<frozen importlib._bootstrap>", line 971, in _find_and_load
  File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
  File "<stdin>", line 1671, in exec_module
  File "master:/usr/lib64/python3.12/site-packages/numpy/version.py", line 1
SyntaxError: future feature annotations is not defined

Indeed, that does not work on Python 3.6:
$ python3
Python 3.6.8 (default, Nov 30 2023, 08:04:29)
[GCC 8.5.0 20210514 (Red Hat 8.5.0-21)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from __future__ import annotations
  File "<stdin>", line 1
SyntaxError: future feature annotations is not defined
>>>

This is numpy 1.24.4  (from fedora repos: python3-numpy-1.24.4-2.fc39.x86_64, not from pypi)
I will contact numpy devs, to fix this maybe. (This source files, numpy/version.py, does use one annotation, but it is not super critical - the dict[...], can easily be replaced with typing.Dict[...] instead, which should work with a bit older Python, or removed, to allow even older Python). websocket package (aka websocket-client on Pypi) uses numpy.xor... to accelerate websocket mask key xor operation to mask and unmask data (it is a silly feature of websocket unfortunately).
For now workaround is to switch to typing.Dict in the numpy.version.
All that said, websocket-client, actually remove that usage of numpy for mask key xor acceleration about 2 years ago (probably because it is heavy dependency, and probably because the speed improvement is not significant outside of microbenchmarks) - in https://github.com/websocket-client/websocket-client/commit/a462d459dddaa4bfc66ae34eaf4cf33eb3f79a97 , so that is nice. But, this year, this package started adding typing annotations, starting in https://github.com/websocket-client/websocket-client/commit/86ad0c4c9632d75f0a8e3f5e7fefee58c3f8313d , (in Python 3.9+ format using native type generics), so that is not going to help a lot in the long run to support for example Python 3.6.
But I will also check my patches, why we send our version of docker / websocket packages via mitogen, if the docker package (possibly at different version tho), exist natively on a target already.
Fortunately for now, there is an easy workaround, and it should affect very few roles / packages.

Updated and slightly improved patch (to not use zombie-imp package, and instead fully use improtlib if present).
mitogen-python312-v2.patch.txt

@baryluk: That's looking a lot more polished. You planning to file a PR?

@stefanor Yes, absolutely will make a PR. Need to test it a bit more. (I do not run ansible every day, but I do run few times a week). Tested on two more plays today, all working perfectly. I will try to send PR this week.

Found issue with this patch for mitogen, tested with ansible 2.15.8 (python 3.9.3) and  ansible 2.16.2 (python 2.11.6) and aws collection:
amazon.aws                    6.3.0
community.aws                 6.3.0

and
amazon.aws                    7.0.0
community.aws                 7.0.0

Task
  - name: Copy TLS certificates from s3
    aws_s3:
      aws_access_key: "{{ s3_backup_access_key }}"
      aws_secret_key: "{{ s3_backup_secret_key }}"
      s3_url: https://ams3.digitaloceanspaces.com

Error:
ansible_2.16.2_aws_error.txt

If to install on target dnf install  python-certifi   or  pip install certifi, that solves issue.

@kzinas-adv I see. Thanks for the info. It looks like it tries to load cacert.pem (to validate s3 SSL certificates) as a package resource. It is not very common usage of imports in Python, but definitively something worth adding support for. I will see if I can add a support for this.

Tried with python3.12 (Fedora 38 made with virtual env)
ERROR! Unexpected Exception, this is probably a bug: No module named 'imp'
the full traceback was:

Traceback (most recent call last):
  File "/home/domas/.local/lib64/python3.12/site-packages/ansible/cli/__init__.py", line 659, in cli_executor
    exit_code = cli.run()
                ^^^^^^^^^
  File "/home/domas/.local/lib64/python3.12/site-packages/ansible/cli/playbook.py", line 156, in run
    results = pbex.run()
              ^^^^^^^^^^
  File "/home/domas/.local/lib64/python3.12/site-packages/ansible/executor/playbook_executor.py", line 190, in run
    result = self._tqm.run(play=play)
             ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/domas/.local/lib64/python3.12/site-packages/ansible/executor/task_queue_manager.py", line 324, in run
    strategy = strategy_loader.get(new_play.strategy, self)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/domas/.local/lib64/python3.12/site-packages/ansible/plugins/loader.py", line 864, in get
    return self.get_with_context(name, *args, **kwargs).object
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/domas/.local/lib64/python3.12/site-packages/ansible/plugins/loader.py", line 899, in get_with_context
    self._module_cache[path] = self._load_module_source(resolved_type_name, path)
                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/domas/.local/lib64/python3.12/site-packages/ansible/plugins/loader.py", line 837, in _load_module_source
    spec.loader.exec_module(module)
  File "<frozen importlib._bootstrap_external>", line 994, in exec_module
  File "<frozen importlib._bootstrap>", line 488, in _call_with_frames_removed
  File "/home/domas/.local/lib/python3.12/site-packages/ansible_mitogen/plugins/strategy/mitogen_linear.py", line 58, in <module>
    import ansible_mitogen.strategy
  File "/home/domas/.local/lib64/python3.12/site-packages/ansible_mitogen/strategy.py", line 44, in <module>
    import ansible_mitogen.mixins
  File "/home/domas/.local/lib64/python3.12/site-packages/ansible_mitogen/mixins.py", line 53, in <module>
    import mitogen.utils
  File "/home/domas/.local/lib64/python3.12/site-packages/mitogen/utils.py", line 38, in <module>
    import mitogen.master
  File "/home/domas/.local/lib64/python3.12/site-packages/mitogen/master.py", line 40, in <module>
    import imp
ModuleNotFoundError: No module named 'imp'

Did not get where I am wrong? Patch is applied.

Tried with python3.12 (Fedora 38 made with virtual env)

If you are using a virtual env you will need to install the zombie-imp package.
On fedora it looks like that package is installed as part of the system so it works outside of the virtual env.
The description of the v2 patch says that you do not need it, but there still seems to be many 'import imp' statements, so that conversion doesn't seem to be complete?  Anyway it is working very well for me with that install.

You should not need zombie-imp anymore. Please make sure to use the patch from this comment: https://github.com/mitogen-hq/mitogen/issues/1033#issuecomment-1875236267
If that still does not work, yes, please install zombie-imp for a moment, until I fix it fully to not be needed.

but there still seems to be many 'import imp' statements

I see. There is still one in mitogen/master.py that needs to be addressed on the host side. And possibly the one in mitogen/compat/pkgutil.py
Will send v3 version today or on the weekend.

More issues when target is centos8(python3.6.8), host fedora39(3.12.1):
- import_tasks: redhat.yaml
  when: ansible_os_family == 'RedHat'

ERROR! [mux  23009] 17:33:36.040315 E mitogen.[fork.2463684]: while importing 'ansible.utils.unsafe_proxy'
Traceback (most recent call last):
  File "<stdin>", line 1666, in exec_module
  File "master:/home/domas/.local/lib64/python3.12/site-packages/ansible/utils/unsafe_proxy.py", line 74
    def __reduce__(self, /):
                         ^
SyntaxError: invalid syntax
[mux  23009] 17:33:36.040857 D mitogen.io: Router(Broker(9f70))._async_route(Message(0, 1005, 1005, 102, 0, b'mitogen\x0040\x00unpickler.load exception\nTraceback (mos'..697), <Stream ssh.server.tld #2cf0>)
ERROR! [mux  23009] 17:33:36.041283 E mitogen.[fork.2463684]: unpickler.load exception
Traceback (most recent call last):
  File "<stdin>", line 1001, in unpickle
  File "<stdin>", line 787, in find_class
  File "<stdin>", line 897, in _find_global
  File "<stdin>", line 326, in lazy_AnsibleUnsafeText
  File "<frozen importlib._bootstrap>", line 971, in _find_and_load
  File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
  File "<stdin>", line 1666, in exec_module
  File "master:/home/domas/.local/lib64/python3.12/site-packages/ansible/utils/unsafe_proxy.py", line 74
    def __reduce__(self, /):
                         ^
SyntaxError: invalid syntax
[mux  23009] 17:33:36.041734 D mitogen.io: Router(Broker(9f70))._async_route(Message(0, 1005, 1005, 102, 0, b"mitogen\x0040\x00raw pickle was: b'\\x80\\x02(NX\\x16\\x00\\x"..3308), <Stream ssh.server.tld #2cf0>)

ERROR! [mux  23009] 17:33:36.040315 E mitogen.[fork.2463684]: while importing 'ansible.utils.unsafe_proxy'
Traceback (most recent call last):
  File "<stdin>", line 1666, in exec_module
  File "master:/home/domas/.local/lib64/python3.12/site-packages/ansible/utils/unsafe_proxy.py", line 74
    def __reduce__(self, /):
                         ^
SyntaxError: invalid syntax
[mux  23009] 17:33:36.040857 D mitogen.io: Router(Broker(9f70))._async_route(Message(0, 1005, 1005, 102, 0, b'mitogen\x0040\x00unpickler.load exception\nTraceback (mos'..697), <Stream ssh.server.tld #2cf0>)
ERROR! [mux  23009] 17:33:36.041283 E mitogen.[fork.2463684]: unpickler.load exception
Traceback (most recent call last):
  File "<stdin>", line 1001, in unpickle
  File "<stdin>", line 787, in find_class
  File "<stdin>", line 897, in _find_global
  File "<stdin>", line 326, in lazy_AnsibleUnsafeText
  File "<frozen importlib._bootstrap>", line 971, in _find_and_load
  File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
  File "<stdin>", line 1666, in exec_module
  File "master:/home/domas/.local/lib64/python3.12/site-packages/ansible/utils/unsafe_proxy.py", line 74
    def __reduce__(self, /):
                         ^
SyntaxError: invalid syntax
[mux  23009] 17:33:36.041734 D mitogen.io: Router(Broker(9f70))._async_route(Message(0, 1005, 1005, 102, 0, b"mitogen\x0040\x00raw pickle was: b'\\x80\\x02(NX\\x16\\x00\\x"..3308), <Stream ssh.server.tld #2cf0>)

- name: Install EPEL repository (Red Hat)
  package:
    name: epel-release
    state: present

TASK [common : Install EPEL repository (Red Hat)] *************************************************************************************************************************************************************************************
task path: /home/domas/source/ansible-repo/roles/common/tasks/redhat.yaml:2
The full traceback is:
Traceback (most recent call last):
  File "/home/domas/.local/lib64/python3.12/site-packages/ansible/executor/task_executor.py", line 165, in run
    res = self._execute()
          ^^^^^^^^^^^^^^^
  File "/home/domas/.local/lib64/python3.12/site-packages/ansible/executor/task_executor.py", line 641, in _execute
    result = self._handler.run(task_vars=vars_copy)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/domas/.local/lib64/python3.12/site-packages/ansible_mitogen/mixins.py", line 146, in run
    return super(ActionModuleMixin, self).run(tmp, task_vars)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/domas/.local/lib64/python3.12/site-packages/ansible/plugins/action/package.py", line 85, in run
    result.update(self._execute_module(module_name=module, module_args=new_module_args, task_vars=task_vars, wrap_async=self._task.async_val))
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/domas/.local/lib64/python3.12/site-packages/ansible_mitogen/mixins.py", line 386, in _execute_module
    result = ansible_mitogen.planner.invoke(
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/domas/.local/lib64/python3.12/site-packages/ansible_mitogen/planner.py", line 606, in invoke
    response = _invoke_isolated_task(invocation, planner)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/domas/.local/lib64/python3.12/site-packages/ansible_mitogen/planner.py", line 519, in _invoke_isolated_task
    return context.call(
           ^^^^^^^^^^^^^
  File "/home/domas/.local/lib64/python3.12/site-packages/mitogen/parent.py", line 2023, in call
    return self.default_call_chain.call(fn, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/domas/.local/lib64/python3.12/site-packages/mitogen/parent.py", line 1980, in call
    return receiver.get().unpickle(throw_dead=False)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/domas/.local/lib64/python3.12/site-packages/mitogen/core.py", line 1013, in unpickle
    raise obj
mitogen.core.CallError: builtins.SyntaxError: invalid syntax (unsafe_proxy.py, line 74)
  File "<stdin>", line 3828, in _dispatch_one
  File "<stdin>", line 3808, in _parse_request
  File "<stdin>", line 1001, in unpickle
  File "<stdin>", line 787, in find_class
  File "<stdin>", line 897, in _find_global
  File "<stdin>", line 326, in lazy_AnsibleUnsafeText
  File "<frozen importlib._bootstrap>", line 971, in _find_and_load
  File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
  File "<stdin>", line 1666, in exec_module

fatal: [server.tld]: FAILED! => {}

MSG:

Unexpected failure during module execution: builtins.SyntaxError: invalid syntax (unsafe_proxy.py, line 74)
  File "<stdin>", line 3828, in _dispatch_one
  File "<stdin>", line 3808, in _parse_request
  File "<stdin>", line 1001, in unpickle
  File "<stdin>", line 787, in find_class
  File "<stdin>", line 897, in _find_global
  File "<stdin>", line 326, in lazy_AnsibleUnsafeText
  File "<frozen importlib._bootstrap>", line 971, in _find_and_load
  File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
  File "<stdin>", line 1666, in exec_module

centos8_target_issues.txt

@kzinas-adv This was already mentioned in the very first comment I posted, second paragraph - https://github.com/mitogen-hq/mitogen/issues/1033#issuecomment-1871729654     I also posted there a workaround.

Workaround is to have python 3.8 on the target?

Workaround is to have python 3.8 on the target?

Either that, or manually patch ansible/utils/unsafe_proxy.py and remove all / references in argument lists in that file (this is a Python 3.8 feature).

I didn't finishe the v3 version of the patch, with the migogen/master.py ported fully to importlib. But it is shaping up.

@baryluk I've got some Fedora 39 systems now with python 3.12, so I'm eagerly awaiting your next version.  Thank you very much for working on this!

Sorry for the long wait, but https://github.com/mitogen-hq/mitogen/pull/1032 is ready for wider scrutiny. I'm seeking code review comments, and reports of anyone trying the branch in the wild moreati:docs-download-url. Note that on Python 3.12 it will require Ansible 6 (ansible-core 2.13). On Python 2.7 & 3.6-3.11 the supported Ansible versions are unchanged. @baryluk thanks for your work on this, would you like to be added to https://github.com/mitogen-hq/mitogen/blob/master/docs/contributors.rst?

Mitogen 0.3.5 released, with Python 3.12 support.


Missing Azure Application Gateway

Azure Application Gateway currently supports private link as a public preview feature. This is visible in the Azure portal and in the documentation here: Link. Please add it to this page.

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

ID: 97849a4b-e79a-840e-8cfc-d43b0ea1dec3
Version Independent ID: 6d224a2c-5e53-832a-ecd4-ae30fd472b76
Content: Azure Private Link availability
Content Source: articles/private-link/availability.md
Service: private-link
GitHub Login: @asudbring
Microsoft Alias: allensu

Thank you for your feedback! We have assigned this issue to the author to review further and take the next course of action.

@mjrich19 Thanks for the feedback! We have created an item in our backlog and will update the article if appropriate.
#please-close


chore: markdown lint formatting

Addressed the markdown linting warnings in my editor

lgtm!
Are asterisks bad practice for markdown lists?

I think semantically they're both equivalent, but it sounded like there are conventions around nesting level for when to use them


Typescript Error

Just thought I'd note this.  The component is working, but I get this typescript error.
'Masonry' cannot be used as a JSX component.
Its return type 'ReactNode' is not a valid JSX element.
Type 'undefined' is not assignable to type 'Element | null'.ts(2786)
this is with NEXT (app router) 13.5.3 Typescript 5.1.6

Hi, Thanks for reporting this. Should be fixed in v1.0.7


Standardization and translation of Brazilian holidays

This PR is intended to:

Translate Brazilian holidays
Standardize the names of Brazilian holidays

Hello peeps, nice to see you back on workalendar. :o)
This PR is a dilemma for me (not a serious one, but still)... Using the pt-BR labels for Brazilian holidays is a bold move, because it may have consequences. Let me put this in a broader context:

The usual "best practices" about i18n is: first of all put all your strings in English, as a pivot language and then you can activate a translation effort from English to every other language.
It has been roughly the norm or standard in workalendar since day 1, with a few exceptions for religious holidays that wouldn't make any sense to be translated, for example. (e.g. Deepavali or Diwali, which translates as "row or series of lights" ; putting it into English would be silly, wouldn't it?)
I know that the i18n and translation enablement is a long-due feature request. This task would be tedious, and would require a lot of effort now that we have more than 200 calendars. I guess that it would mean to:
a. open a project on crowdin or transifex
b. start adding translatable strings through several waves of gettext-ization
c. ask for volounteers to start translating
d. have a precise process for retrieving translated strings, etc. Nothing completely impossible, but you'd probably won't be able to improvise it in a day.

Looking at our "roadmap", the Internationalization of workalendar was one of my goals for 2020, in collaboration with our (PeopleDoc's) content and i18n managers.
Now onto your pull-request. Merging it would have consequences:

the calendar holiday labels would be a mix between English and Portuguese (BR) terms. Not that it's a big issue: it already happens on many calendars, including the Brazilian calendars. The only one left in English are "New Year" and "Christmas". Not a big deal, of course.
The good point for you is that you can use the holiday labels directly, just "translating" the "New Year" & "Christmas" labels on the fly ; I assume that it's within anyone's capabilities.
The hard point comes here: if at some point we start to make all labels translatable, you'll have to somehow revert your pull-request to get back to "mostly English" (or any pivot source string).

Unfortunately, I can't tell you how long it will take until we start the i18n work. And of course, depending on the path we'll take, you'll probably have to make modifications on how you're using the library.
I feel like these Brazilian calendars are now a bit more yours than mine, so it's probably going to be your call: either you take the chance to have pt-BR labels now, or wait for us to be ready to internationalize.
Regards.

Hello when @luismalta  asked me to review the pr I thought of this deficiency....
We can contribute to the translation, but only next year. =(
I think of the following roadmap:

Create a blank file export / sync tool for new languages;
Use some online translation tool that synchronizes automatically;
Keep all terms in English;

It will not be a simple task and it will really take a while, but there are certainly many good examples on the internet.
Best regards

Create a blank file export / sync tool for new languages;

I started #441 for this purpose.


Update bee to v2

Did this add support for erasure coding, @asabya ?

Yes, It has a flag available on the server side redundancyLevel or config variable can be set
bee:
  redundancy-level: 0


Fix checkbox layout

Checkbox layout was wonky (labels on new line).
Here's a fix!

Happy to merge this - although interested in what you're seeing as wonky. Using Chrome the checkboxes are nice and tidy - I even had to put a few special rules in there to fix this because it annoyed me.
In fact, applying this makes fields wonky. See attached before/after comparison.
Would you be able to provide a screenshot?

Sure:

@timkelty Haha - okay so thats pretty bad :)

Might have been a craft version difference?

Yeah if you want to re-tweak the vertical alignment of those, I'll leave that to you.

Maybe! I've been running it on the last few versions (lets say roughly past 5-6 version) and worked okay. Didn't realise it was so bad, so thanks for bringing it to my attention. +1 for the pull request too :)

Yep that was it. I was on an older (2.2) install. Your previous version looks fine on 2.3.
IMO, however, you should have stuff in those labels, so I still think my PR is valid.
Might just need some pixel pushing.

Yep, good call, and agree.


Fix #883 static_assert error

New Pull Request Checklist

[ ] I have read and understood the CONTRIBUTING guide

[ ] I have read the Documentation

[ ] I have searched for a similar pull request in the project and found none

[ ] I have updated this branch with the latest master to avoid conflicts (via merge from master or rebase)

[ ] I have added the required tests to prove the fix/feature I am adding

[ ] I have updated the documentation (if necesarry)

[ ] I have run the tests and they pass

[ ] I have run the lint and it passes (pod lib lint)

This merge request fixes / refers to the following issues: ...
Pull Request Description
...

Codecov Report

Merging #884 into master will not change coverage.
The diff coverage is 0%.

@@           Coverage Diff           @@
##           master     #884   +/-   ##
=======================================
  Coverage   22.88%   22.88%
=======================================
  Files          18       18
  Lines        3338     3338
  Branches      282      282
=======================================
  Hits          764      764
  Misses       2572     2572
  Partials        2        2

Impacted Files
Coverage Δ

Classes/DDOSLogger.m
0% <0%> (ø)
:arrow_up:

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 c55db10...83499d8. Read the comment docs.


feat(perf): mem2reg function state for value loads to optimize across blocks

Description
Problem*
Resolves
Part of general effort to reduce Brillig bytecode sizes. No issue as found while working on other brillig optimizations.
Summary*
Now that we have a brillig gates diff I want to pull out individual changes to live on their own to see just their impact across all of our brillig tests.
This PR simply sees what is the last load we have performed on an address across all blocks in a function. If we do not have a load on a value, but any of the blocks still have store instructions to that address, we can safely remove those store instructions.
Additional Context
Documentation*
Check one:

[X] No documentation needed.
[ ] Documentation included in this PR.
[ ] [For Experimental Features] Documentation to be submitted in a separate PR.

PR Checklist*

[X] I have tested the changes locally.
[X] I have formatted the changes with Prettier and/or cargo fmt on default settings.

:tada:


Allow for manual specification of Subscription ID on MSBot Clone Services

Fixes #594
Proposed Changes
Adds a whitespace to the end of the az account show command assignment so that should a user pass a subscriptionId as an argument the command executes successfully.

Pull Request Test Coverage Report for Build 1436

0 of 0   changed or added relevant lines in 0 files are covered.
244 unchanged lines in 14 files lost coverage.
Overall coverage decreased (-4.8%) to 63.996%

Files with Coverage Reduction
New Missed Lines
%

packages/Ludown/lib/ludown-translate.js
1
96.67%

packages/QnAMaker/lib/api/knowledgebase.js
1
50.0%

packages/QnAMaker/lib/api/createasync.js
2
50.0%

packages/QnAMaker/lib/api/operations.js
2
50.0%

packages/QnAMaker/lib/api/knowledgebases.js
2
50.0%

packages/QnAMaker/lib/api/dataModels/updateKbOperationDto.js
4
15.38%

packages/QnAMaker/lib/api/dataModels/metadataDto.js
6
14.29%

packages/QnAMaker/lib/api/dataModels/fileDto.js
6
14.29%

packages/QnAMaker/lib/api/dataModels/createKbDto.js
7
18.18%

packages/QnAMaker/lib/api/dataModels/qnAdto.js
7
16.67%

Totals

Change from base Build 1418:
-4.8%

Covered Lines:
3647

Relevant Lines:
5423

💛  - Coveralls


Cannot access to the documentations

I cannot access to https://betterhumans.pub/obsidian-tutorial-for-academic-writing-87b038060522
Can you please copy and paste the instructions here?
I installed typst.exe in the path.
But I cannot make pdf-files. The others I hadn't tried yet.

@universvm He is the author of the article you mentioned.
@universvm Hi, could you help him?

Hi @merlinuwe , can you try opening the article in incognito?

Yes it works in incognito mode. But for me, it seems to be to complicated to configure.

You can export a note to PDF using Obsidian - no plugin needed (CMD/CTRL + P and type "export to PDF").
It's difficult to understand what you mean by "I need some simple steps." if we don't know what you're stuck on other than " it seems to be to complicated to configure". It sounds like Pandoc may not be the tool you're looking for.

Thanks for your help.
When I do this

choose the first entry "Obsidian Enhancing Export: Export to ....

I get this:

These are my settings

C:\ProgramData\chocolatey\bin\pandoc.exe
C:\Users\uwewe\OneDrive - BBZ Dormagen\Dokumente\Desktop
-f markdown --resource-path="${currentDir}" --resource-path="${attachmentFolderPath}" --lua-filter="${luaDir}/pdf.lua" --embed-resources --standalone --metadata title="${currentFileName}" -s -o "${outputPath}" -t pdf
--pdf-engine=typst
(typst.exe is in the path)
What did I do wrong?

it is much easier to help you with an error message. The error is likely on typst. I've never used it before. The "simplest" solution imo would be to write in Latex.

The typst is single file binary, and it's easy to install. But it seems that typst still a experimental feature added recently https://github.com/jgm/pandoc/issues/8713. You need to install nightly pandoc from here.
If there are no other additional requirements, it is recommended to use the official builtin Export to PDF（not this plugin）. save trouble

Please update the version, I found some bugs and fixed them.


Update rnaseq image

REID-2490
Build Docker image using GitHub Actions
Updating an image
To update an existing image, you should make sure these steps are made:

[x] Add or modify versions of tools or their hashes in corresponding .txt or .sh files
[x] Note changes in README.md of the corresponding Docker image folder
[x] Note changes in docs/CHANGELOG.rst
[x] Bump TAG version in build.env
[ ] (optionally) Bump BASE_IMAGE in build.env
[x] Build your image locally to make sure it builds successfully
[ ] Validate the image by using it in a process (in i.e. resolwe-bio)

Creating a new image
If you are creating a new Docker image (folder), you should follow at least these steps to successfully build and have your pull request approved:

[ ] A corresponding image folder/project needs to be created on AWS ECR (contact DevOps) before a push is made.

[ ] Prepare all necessary files to build the image (see other examples in this repository)

[ ] Create, build.env file (in the same folder as Dockerfile) which includes the following tags:

BASE_IMAGE is the image used to build your Dockerfile, i.e. BASE_IMAGE=public.ecr.aws/genialis/resolwebio/base:ubuntu-22.04-14112023.
REPOSITORY is the name of the image once built, for example REPOSITORY=resolwebio/common.
TAG will be the tag of the image, i.e. TAG=common:0.0.0.

[ ] Add a repository to on > workflow_dispatch > inputs > IMAGE > options in .github/workflows/docker_build.yml. This will enable the option to build this specific image under Actions > Workflows > Build docker images. Example of base and common images under options:
on:
  workflow_dispatch:
    inputs:
      SUPPORTED_PLATFORMS:
        default: 'linux/amd64'
        type: choice
        options:
        - 'linux/amd64'
        - 'linux/amd64,linux/arm64'
      IMAGE:
        type: choice
        options:
          - 'base'
          - 'common'

See an example of this in i.e. this pull request.

Also, make sure to squash commits.


Trim solutions and answers when correcting a Short Answer Quiz

Checklist

[ ] I tested all changes and all related features with different users (student, tutor, instructor, admin) on the test server https://artemistest.ase.in.tum.de.
[x] Client: I added multiple screenshots/screencasts of my UI changes

I did not check the first box since I did not test on https://artemistest.ase.in.tum.de (frankly, I do not know how to get my code there for testing), but I did test locally. That is also the reason I submitted this as draft; otherwise the PR is complete. (See 'Description' for another thought of what can be done here.)
Motivation and Context
Closes #2082.
Description
Strings are now trimmed before being compared for correctness. This results in the following:

("in " is entered and thus marked yellow.)
The answer is marked yellow since it is not "completely correct". I'm not sure if that should be changed. It could be changed to trim the user input directly. (And then only display a trimmed submission; just "in" instead of "in " in this case. That however is changing the answers of students, so I'm unsure about it.)
Steps for Testing

Create a new Quiz using the Course Administration
Add a Short Answer Question (you can use the default template)
Open/Start the quiz and enter it from the student view
Enter a correct answer but put spaces in front and/or behind
Submit and view your corrected submission after the timer ran out

Test Coverage
I actually don't know where to find the test coverage for the changed file. Neither .\gradlew.bat executeTests nor .\gradlew.bat executeTests jacocoTestReport -x yarn_install -x webpack reported any coverage, but the same tests pass that pass on develop, so this should be fine.
Screenshots
When submitting "in " untrimmed:

Submitting just "in" without extra spaces:

I added some initial tests but am not sure if I put them in the right place.

Updated to resolve merge conflicts.


Loading existing Gist fails

Hi, I love the site/app and I wanted to load an existing Gist created on another PC but it doesn't seem to work. Tried a few things but nothing seems to work. Probably overlooking something.

That's strange. I just tried and it's working.
A long shot, but did you paste the full url or just id of the gist. It should be only id...
Do you see a request being made in Developer tools?

It is weird, I have tried it in different browsers, using only the ID, not the entire url. I'm sure it must be something with my PC or network. I'm not seeing any requests being made, which is also weird. I've disabled all extensions and everything but it doesn't help. I'll test some more and keep you updated.

I'm going to close this issue. Feel free to re-open it if necessary.


New overview page

~Depends on: #2107 #2101~
Closes: #2126 #2002
WIP...

@liz-shinn fixed net status and wallet menu, thoughts? However, I think these elements should stay in a header.

I will say that the network status would need to have the background element behind it that's in Figma if it's going to float, since there are sections where it won't have enough contrast with the background. It's the slightly transparent, white background.
Personally, I think it's nice to have just the wallet and status float like it's doing here. It keeps the useful elements of the header easily accessible, but doesn't take up a bunch of vertical screen real estate.

Sidenote @r-czajkowski, the button for connect wallet could use some more padding. The border of the button is really tight around the icon and the text.

I will say that the network status would need to have the background element behind

ah right- wrong gif. But all tiles are white, so the white background behind the status with opacity: 0.6 prop, still doesn't look good.

Ah, ok — perhaps an even more subtle opacity then, say 0.9, or could just do solid white.
I think that if we have floating elements, that it should be these two items. They're the two actionable items, so they'd be the things that you would want to be able to quicky click on without scrolling back to the top. But if we think that these floating elements look off, I don't think that means that the entire header should then float, since that's a huge part of the vertical screen real estate. Then it's just better to leave the header at the top of the screen. Curious @Shadowfiend and @Gluzman thoughts on this.
Overview page is looking great, though 🎉! Hooray!

I think that if we have floating elements, that it should be these two items. They're the two actionable items, so they'd be the things that you would want to be able to quicky click on without scrolling back to the top. But if we think that these floating elements look off, I don't think that means that the entire header should then fix at the top and cover up screen content as you scroll, since that's a huge part of the vertical screen real estate. Then it's just better to leave the header at the top of the page. Curious @Shadowfiend and @Gluzman thoughts on this.

To reply here @liz-shinn , my take is that floating elements are rarely good. They mostly restrict what we can consider to be the viewport, so unless they provide constant value I don't think it's worth having them. For the connection widget we have, I personally don't think it brings constant value---but it's definitely in the category of “things we'd probably want to do user interviews to figure out for sure” in my mind. Someone who uses a lot of different accounts in Metamask, for example, might want to always be able to see what address they're viewing in the dApp itself. Not sure how many users are in that category though---I would guess not that many.
Anyway, that's a lot of guesswork, but short version is I think let's leave this not floating and maybe revisit it if we get some data that people are missing having that available at all times.

Sounds good to me! Agreed that restricting the viewable area is not a great UX. No floating elements for the header 👍

And yes, the balance number should be the darker color.
There's an accessibility issue with using the brand mint color for text — it doesn't have enough contrast on light backgrounds. I've gone through and started changing the rest of the token dashboard designs to make sure we're using the "-100" for text on light backgrounds since that darker color is compliant.

Reviewing here, @liz-shinn it looks like the balance number should be darker (color-brand-mint-100) vs the keep logo (color-brand-mint-80), is that right?
Other things I noticed:
* There's a hand cursor on the KEEP amount, and it's abbreviated (e.g. 562k), vs the designs which use the fully-expanded number (e.g. 562,000). There's a localization component here, which we can probably handle by calling `toLocaleString()` on the number to get the right separators for thousands and decimals.

Going to have to accept the fact that I can't review 3k lines of changes haha.  Overall looks good, main flag is the Delegate buttons that are leading to a nonexistent URL (I believe it's delegate -> tokens/delegate).

Regarding token balance, we have an issue for that #2095. I going to fix all issues about TokenAmount  component in dedicated PR.


Work in progress

I've got a working implementation of an update that:

Adds support for deprecated and ignored settings similar to what's described in https://github.com/Kyorai/cuttlefish/issues/39
Updates the VM schema to current OTP settings.
Attempts to come up with a single merged version of the Basho and Kyorai upstream repos.

There's still a tag conflict that I've raised an issue about at https://github.com/Kyorai/cuttlefish/issues/54
If we can get that resolved, we should be able to update regularly from Kyorai, where more active development takes place.
I hope to push an update within the month.
Posting as an issue here for tracking purposes.

Something I've been thinking about is about a pipeline for generating configuration references in the docs (in whatever form the docs may be in the future).  It would be good in the docs world, if we just had to know what schema files were used and had markdown generated automatically.
For example, if we make rel in riak, as well as produing a riak.conf could it also produce a series of riak_core.schema.md, riak_kv.schema.md, bitcask.schema.md files etc that can be imported easily into the docs.

As well as deprecated maybe an {introduced, Msg :: string()} would then be helpful.  So when generating configuration docs we can see what version that option/feature was introduced

I like the idea of the introduced tag, but that entails work in the doc generator that the deprecated and ignored tags don't - as implemented, they implicitly turn on the hidden flag and cause a warning to be written, so they conveniently avoid any changes to the conf file generator.
Maybe introduced and some manner of doc generation hook could be a distinct issue, or even two distinct issues? The former would probably not be difficult, the latter would require some serious thinking about how to make the output consumable or at least reference-able with (presumably relative?) path/file#item.key notation.
The implementation for this is essentially complete, it's simply been sidelined at present due to internal priorities. I do hope to get it up onto our branch before very much longer.


Make shell history file secure by default

Change the default file mode from 0o666 (u=rw,g=rw,o=rw) to 0o600 (u=rw,go=), which will deny access to everyone else other than the owner of the file.
This is used only when creating the file, so the user can change it afterwards if really want to make it public.

Thanks @denisvm. We'll cut a new release soon that has this fix in it.


[Enhancement] Local variable 'result' is redundant [EventMeshUtil]

Search before asking

[X] I had searched in the issues and found no similar issues.

Enhancement Request

located at:
eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/util/EventMeshUtil.java line 145
Describe the solution you'd like
Returns the value of a local variable directly.
reference:

Are you willing to submit PR?

[ ] Yes I am willing to submit a PR!

I have checked the file I think it has been fixed can you look and confirm again @Alonexc

I have checked the file I think it has been fixed can you look and confirm again @Alonexc

@sohel-79 Yes, it's fixed and I will close the issue. sorry!


adding azure devops project creation capabilities to CAF

Adding ADO terraform provider project creation resource extension to CAF.
Verified that I was able to utilize this new feature to create a new project in Azure DevOps by following the below steps.
export AZDO_PERSONAL_ACCESS_TOKEN=redacted
export AZDO_ORG_SERVICE_URL=redacted

rover -lz /tf/caf/public/landingzones/landingzones/caf_launchpad -launchpad -var-folder /tf/caf/public/landingzones/landingzones/caf_launchpad/scenario/100 -a apply

rover -lz /tf/caf/public/modules/examples/ -var-folder /tf/caf/public/modules/examples/devops/providers/azure-devops/new_project/ -a apply -level level1

Duplicate


How to make addons?

How would i create addons for my plugins? for example a way to display the players faction name in chat

I can add an event for this.


Updating docs to provide more details on wrappedReference

Updated several pages to add details and add emphasis around the use of the wrappedReference option for defining entities. I also added some extra details and emphasis on pages where the lack of this option might cause issues.
I know verbiage for docs is super important; please let me know if you'd like to modify/remove any of what I added 😉
I also think I got the link right in query-builder.md, but double check me.

looking good, please also update the next docs (./docs/docs)

looking good, please also update the next docs (./docs/docs)
@B4nan ✅


SSL Read error in curl due to insecure site

http://www.swgemu.com/forums/showthread.php?t=175307&p=1415607&viewfull=1#post1415607

No clue what platform would do that?  curl http:/  is HTTP not HTTPS?
It seems strange but we could just update README with:
curl -Lk http://downloads.zonamaserver.org/zonamadev/bootstrap.sh | bash

Will update docs in mid2017-refresh


[Feature Request]  Allow inhericatnce in debug configurations

I have several launch (debug) configurations that are similar except the current working directory argument (cwd). Can it be possible that:

Write only one configuration and vscode prompts to select a variation on start debug.
Write only one configuration and have others inherit from it.

Or is such a setup already possible ?

This is currently not possible.
Leaving this as a feature request


AWSSQSSource deletes messages in case of sink error

AWSSQSSource probably has a bug which results in deleting messages from queue even if sink returned error.
The bug is in following code source
			for _, event := range events {
				if err := sendSQSEvent(ctx, a.ceClient, event); err != nil {
					a.logger.Errorw("Failed to send event to the sink", zap.Error(err))
					continue
				}
			}

Here 'continue' operation refers to the inner loop but seems like should refer to the outer loop.
I have no rights to push branches to Git repository so cannot create a pull request.
How can I get an access?

Hi @Kaiass, nice catch!
You should be able to fork the repository, commit your changes to your fork, and then open PR from it back to the upstream.

Hello @tzununbekov !
Thanks for advice, I've created pull request.

Resolved in #1201.
Thank you for your contribution.

@tzununbekov Thanks for support!


New-command: onedrive report usagefilecounts

implements #1253

Coverage remained the same at 100.0% when pulling 08e92d39b6141c378506b1bc28794d1fde5a06dd on plamber:spo-report-onedriveusagefilecounts into 0e5efd9d93e854d43547e9e1396e619ace74e34d on pnp:dev.

@VelinGeorgiev: you can review this one

Thank you very much Patrick @plamber ! We'll review it asap.

Merged manually. Thank you 👏


remove usage of setFlag from wizard footer.tsx

https://issues.redhat.com/browse/RHSTOR-2805
As per the discussion: https://github.com/openshift/console/pull/10872#issuecomment-1017732666
setFlag will not be exposed. Hence, removing its usage from the footer.tsx file.
Values of flags after creating internal mode SS from the UI (without any re-load):
MCG_STANDALONE
OCS
OCS_CONVERGED
OCS_INDEPENDENT

/lgtm cancel
@bipuladh review pending

/lgtm

/test odf-console-e2e-aws


window环境中报错

error: Microsoft Visual C++ 14.0 or greater is required. Get it with "Microsoft C++ Build Tools": https://visualstudio.microsoft.com/visual-cpp-build-tools/
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed building wheel for cryptography
Failed to build backports.zoneinfo cryptography
ERROR: Could not build wheels for backports.zoneinfo, cryptography, which is required to install pyproject.toml-based projects
但是c++ 14.0已经装了

不好意思，我们没有考虑Windows环境部署，目前仅确保支持部署在Ubuntu服务器或者MacOS上。

谢谢楼主


Convert code to Class Based and add tests

Hey there,
This is a really neat project.    I'm working on some larger notation projects and this looks really promising.   While looking through code I thought I would convert it over to be more "pythonic" .   I've done the following things:

Took the output from each command run on each of the examples prior to any changes from this PR and saved them to tests/sample_output
Added tests to validate my changes did not change the output at all
Adding typing
Converted to f-strings where it made the code more readable
(the big change) Converted all the code over to a class/method style as opposed to using globals and funcitons
PEP8, whitespace, and simplified some code

You can run (the admittedly very broad) test by installing pytest and then running pytest in the shell.

I'm interested in continuing to add to this code but thought I should stop here to make sure that a) this project is active and b) these kind of sweeping changes are welcome 😉
Let me know what you think and thanks again for this notation system.   It is making one of my projects much easier.  😄

Hey @Cabalist! Thanks for your work! I'm definitely interested in checking out what you've done and possibly merging it.
I'll just ask you to give me a couple of days because my schedule is a bit tight at the moment but I'll review this asap!


Real time code

Thank you for releasing this awesome work!
I wonder when do you plan to release real-time rendering code? (same as the demo video you show on the project page)
Thanks!

Due to copyright protection, we do not intend to open our real-time version, but this does not affect its use or comparison with our method in academic research.


[archiver] RecordingFragmentReader does not skip Padding frame

RecordingFragmentReader does not skip Padding frame, it cause failed to check the max payload length when the ExclusivePublication try to claim.

@mjpt777 , thanks for your quick response, it does work.


integration test v2: strip off the data prefix when getting the region id when necessary

What is changed and how it works?

Issue Number: Ref #12842
What's Changed:

strip off the data prefix when getting the region id when necessary

Related changes

PR to update pingcap/docs/pingcap/docs-cn:
Need to cherry-pick to the release branch

Check List
Tests

Unit test
Integration test
Manual test (add detailed scripts or steps below)
No code

Side effects

Performance regression

Consumes more CPU
Consumes more MEM

Breaking backward compatibility

Release note
Please add a release note.

Please refer to [Release Notes Language Style Guide](https://pingcap.github.io/tidb-dev-guide/contribute-to-tidb/release-notes-style-guide.html) to write a quality release note.

If you don't think this PR needs a release note then fill it with None.
If this PR will be picked to release branch, then a release note is probably required.

/cc @tabokie PTAL

/cc @tabokie PTAL

/test

/merge


Fix for GHC 9.2

Hey. Thanks for this!
I used CPP to get around the aeson change in another repo. We should consider employ that here (at least until Stackage has a resolver with aeson >= 2 in it). I'll have a look shortly.

Oh yes, I could do that. I had thought since it was a test suite, itd be fine, but I'll make that change now

This is long overdue. I'll get this merged tonight.

Ok, I've had a go at with this, and, with the unmerged patch to snap-core it builds. When I tried it on an older compiler it does not build, problems with base-compat-batteries. With lts-18.23 the #ifdefs appear to work.
I will do is move your stack.yaml changes out of the way (so we can keep testing with the current stable resolver working).
But before I can merge I need to work out where we are with aeson >= 2. It's important we get that working ASAP (though it's slightly less of a problem client side, it's still a problem).

Ok, got it. Will merge with my additions.

Thank you for your contribution @brandon-leapyear. Let me know if this regresses for you as you continue to work on GHC 9.2.1 support.


Dialogflow - Getting blank parameters on $response->getQueryResult() php

I am trying to send parameters to the webhook Dialogflow V2 API. I am getting blank parameters in response.
What's the problem, and how can I fix it?
function detect_intent_texts($projectId, $text, $sessionId, $languageCode = 'en-US')
{
    $contextId = uniqid();
    // new session
    $sessionsClient = new SessionsClient();
    $session = $sessionsClient->sessionName($projectId, $sessionId);
    $contextName = ContextsClient::contextName($projectId, $sessionId, $contextId);

    // create text input
    $textInput = new TextInput();
    $textInput->setText($text);
    $textInput->setLanguageCode($languageCode);

     // create query input
    $queryInput = new QueryInput();
    $queryInput->setText($textInput);

    $clientValue = new \Google\Protobuf\Value();
    $clientValue->setStringValue("11");
    $userValue = new \Google\Protobuf\Value();
    $userValue->setStringValue("12");

   $contextStruct = new \Google\Protobuf\Struct();
    $contextStruct->setFields(array('client_id' => $clientValue, 'user_id' => $userValue));
    $paramStruct = new \Google\Protobuf\Struct();
    $paramStruct->setFields(array('client_id' => $clientValue, 'user_id' => $userValue));
    $contextInput = new Context();
    $contextInput->setLifespanCount(1);
    $contextInput->setName($contextName);
    $contextInput->setParameters($paramStruct);

    $queryParams = new QueryParameters();
    $queryParams->setPayload($paramStruct);

    $optionalsParams = array('queryParams' => $queryParams);
    $response = $sessionsClient->detectIntent($session, $queryInput, $optionalsParams);
    $queryResult = $response->getQueryResult();
    $queryText = $queryResult->getQueryText();
    $intent = $queryResult->getIntent();
    $displayName = $intent->getDisplayName();
    $confidence = $queryResult->getIntentDetectionConfidence();
    $fulfilmentText = $queryResult->getFulfillmentText();
    $output = $queryResult->getOutputContexts();
    $parameters = $queryResult->getParameters();
    $sessionsClient->close();
}

Hi!
The most obvious issue I see is you're not setting $contextInput on your QueryParameters object
// Add this line
$queryParams->setContexts([$contextInput]);

Everything else in your code looks correct. Although, I am not familiar enough with the Dialogflow API to say if you should actually be getting parameters in the response. I checked both the request and the response out using the REST API and verified that the payload and context in your code are getting passed in via the API, and no parameters are being returned, so I do not believe the issue (if one exists) is in your code or this library.
My best guess is that the parameters field in QueryResult::getParametersrepresents something else. The documentation describes it as "The collection of extracted parameters.", which would depend on the text sent in, and so could sometimes be empty.
I hope this helps. I would seek support specifically with Dialogflow or even ask your question on Stack Overflow if you still are having issues, as this repository only covers the sample code.

@bshaffer
Thank you for replying.
I added the line you had suggested, but still its not working. Whatever parameters I am settting through $queryParams->setPayload($paramStruct); I should get it in webhook in $post->queryResult->getParameters . Please suggest.

I'm sorry but I do not know the Dialogflow API well enough to assist you. I can only verify the use of the client libraries, which seem to be functioning as expected.

got? I also wanted to perform the same procedure to detect an intent by passing some optional parameters


[updated] add sysinfo api

Adding sysInfo api and write a simple widget to display system info, need to resolve conflicting files.
TODO: real-time CPU usage info

Please resolve the conflict with main branch first, so that I can preceed my review. You should

merge the commits on the remote main branch to your local feature branch. Below is the sequence of commands for merging# ensure you are on the main branch
git checkout main
# fetch changes on remote main branch and merge them to local main branch
git pull origin main
# go to local feature branch
git checkout <local-feature-branch-name>
# merge previous updates on local main branch to local feature branch
git merge main

resolve any merge conflict
make thorough testing
and push to the remote feature branch for review

Note that, in #49 , Charlie has migrated to tauri v2 and maken some changes to the organization of widget api. Please refer to that pr to modify your current organization of widget api source code accordingly.

@Xinyu-Li-123 The conflict has been solved.

Some general comments in the first place:

You misnamed apis-sys as widget-sys.
You should place the Rust stuff under the existing apis folder instead of creating a new folder yourself.
It seems that the utils.rs files is copied from apis-fs but you don't really need/use it.

Some general comments in the first place:

You misnamed apis-sys as widget-sys.
You should place the Rust stuff under the existing apis folder instead of creating a new folder yourself.
It seems that the utils.rs files is copied from apis-fs but you don't really need/use it.

The issues above have been solved. A progress bar for average CPU usage is created instead of displaying 16 CPU separately.

Please check again my changes on the branch. I have approved the PR. If there is no further problem, you could squash and merge this branch.

I'll take a look during today's meeting.


feat: Provide support for Geneva in StatsD metric sink

Fixes #

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

@arielhaim83 Are you planning on updating this one or should we abandon it?

Basically it's an example of how to use custom formatter and loading a secret from a file directory, I think we should complete this one

Thanks! Let me know when it's ready for review


fix: long pressing keys and selection in password input box

Fixes #1515

This fix tries to make password.js component to behave like the password component in v1.

Smart idea :+1:


Duplicate notification when app is in background or app kill state

Bug report
Describe the bug
Duplicate notification when app is in background or app kill state
Steps to reproduce
push token base test notification from firebase console
https://console.firebase.google.com/project/{project}/notification/compose

this firebase default example project . give any valid way to fix this

@iresolveservices
Check this comment from team member as why it shows duplicate notifications which should be able to answer your query.
Based on it, I'll close as duplicate. If you disagree, write in comments and I'll reopen it.


Example for futures without async/await

How do I use futures combinators on the *_async API without async / await? Can you provide an example.
use futures_util::future::FutureExt;
let response = client.send_async(request);
response.then(|| {});

no method named then found for type isahc::client::ResponseFuture<'_> in the current scope
note: the method then exists but the following trait bounds were not satisfied:
&isahc::client::ResponseFuture<'_> : futures_util::future::FutureExt
&mut isahc::client::ResponseFuture<'_> : futures::future::Future
&mut isahc::client::ResponseFuture<'_> : futures_util::future::FutureExt
isahc::client::ResponseFuture<'_> : futures_util::future::FutureExt
help: items from traits can only be used if the trait is in scope
note: the following trait is implemented but not in scope, perhaps add a use for it:
use futures_util::future::FutureExt;rustc(E0599)

Can this even be used in actix-web with futures-0.1.29?

It's complaining because your closure signature is incorrect. FutureExt::then accepts a closure with a signature like FnOnce(Self::Output) -> impl Future: https://docs.rs/futures-preview/0.3.0-alpha.18/futures/future/trait.FutureExt.html#method.then. FutureExt is a futures-0.3 thing, not futures-0.1. Here's a short example using futures-0.3 (which I'll clean up and add to the examples/ directory shortly.
use futures::future::TryFutureExt;
use isahc::prelude::*;

fn main() -> Result<(), isahc::Error> {
    let future = Request::get("http://example.org")
        .body(())?
        .send_async()
        .map_ok(|response| {
            println!("Status: {}", response.status());
            println!("Headers:\n{:?}", response.headers());
        });

    futures::executor::block_on(future)
}

You should then be able to integrate with actix-web by using the futures::compat module from futures-0.3 to interop between 0.3 and 0.1.

How do I get the Result of the Future into a variable in main() to continue execution there rather than using map_ok? Will block_on return the Result if I pass it the Future from send_async()?
What's the difference between futures and futures-util? They both contain the same traits. I see that you've used futures-util within isahc.

How do I get the Result of the Future into a variable in the parent scope to continue execution there similar to await, rather than using map_ok? I want to do some computation on the result in the actix-web handler and then generate a response. Is the only wait to chain everything as Futures and return a Future?

You don't. That's why await is so cool and combinators are no fun. If you are using combinators, then you have to use combinators. That's how they work, you have to compose everything together into a big Future yourself. (Note that the way async/await works is it actually the same idea, the compiler just creates the giant Future for you.)
I'm not sure how this ties into actix-web exactly as I've never used it, I'd have to see an example of what you are trying to do.

What's the difference between futures and futures-util? They both contain the same traits. I see that you've used futures-util within isahc.

Ah, that. futures is best for examples because it contains everything. It actually just re-exports types from futures-util, futures-io, futures-channel, etc. For libraries using the smaller individual crates if you don't need all of them is preferred to make the dependency tree smaller. In Isahc's case I only needed things in futures-io and futures-util, so I kept it at that because I like to keep the depenency tree trim. 😉

actix-web calls this handler when a request hits my server.
fn handle_request(req: HttpRequest, client: web::Data<HttpClient>) -> impl Future<Item = HttpResponse, Error = Error> {
    // Build request for HttpClient here before using futures.
    // Run send_async() in a future.
    // Do calculations on the result, but I don't want to use futures. Can I wait without blocking the event loop?
    // Return a future with the response.
}

Something generally like this might work (untested):
use futures::future::{self, Either, Future};
// Will have to import futures 0.3 under the alias futures_preview since both 0.1 and 0.3
// are called "futures".
use futures_preview::compat::Compat;

fn handle_request(req: HttpRequest, client: web::Data<HttpClient>)
-> impl Future<Item = HttpResponse, Error = Error> {
    let request = match Request::get("http://example.org").body(()) {
        Ok(request) => request,
        Err(e) => return Either::A(future::err(e.into())), // error must be wrapped in a future
    };

    // Begin main future pipeline. Wrap 0.3 into a 0.1 future.
    let future_03 = client
        .get_ref()
        .send_async();
    let future_01 = Compat::new(future_03);

    future_01
        .map(|response| {
            // Do something synchronous with response.
            unimplemented!()
        })
        .and_then(|_| {
             // Do somethng async iand return a HttpResponse.
            unimplemented!()
        })
}

Really the key part is converting the 0.3 future (really it is std::future::Future now) into a 0.1 future, and then doing normal actix-web things after that. Here's an official post that mentions the compatability layer: https://rust-lang-nursery.github.io/futures-rs/blog/2019/04/18/compatibility-layer.html. I've never used it myself.
Since this is generally more a question about how to deal with futures 0.1 and futures 0.3 compatability, I think other channels might be the best place to get help on this, especially since others are more familiar than I am with both actix-web and the compatability layer.

Should I do the building of the request within a future as well, or in the actix-web handler before creating the first future? I'd argue that it's 100% CPU bound blocking code (however brief) that would occupy a CPU core anyway, so does it matter whether it's done in the actix-web handler blocking the event loop, or in a future?

I suspect it doesn't matter, but not knowing how actix-web works, I could be wrong.

In your example, I believe future03 returned by send_async() needs to somehow move or take ownership of client.
I had to wrap the HttpClient in an Arc
let client: Arc<HttpClient> = app_data.client.clone();
But then future03 fails with
`client` does not live long enough
borrowed value does not live long enough rustc(E0597)
opaque type requires that `client` is borrowed for `'static`

I annotated the handler with 'a so it's not 'static by default.
Then Either::B fails with
cannot return value referencing local variable `client`
returns a value referencing data owned by the current function rustc(E0515)

Yes, requests borrow from HttpClient until the future completes. It could be that this lifetime is incompatible with how actix-web uses Data<T>. There's not much I can do to change this though. You might be able to use the global HttpClient Isahc provides as a workaround.

Can't requests hold the client in an Arc instead of borrowing?
How can I create multiple static clients globally and access them from the handler?

It's not just incompatible with Data<T>. Even if a create a new client instance inside the handler, I get the same error.
let client = HttpClient::new().unwrap();
The future always outlives the handler scope and thus should not borrow the client.

Can't requests hold the client in an Arc/Rc instead of borrowing?

They could, but that would add a performance overhead.

The future always outlives the handler scope and thus should not borrow the client.

Not necessarily. Async/await definitely encourages using lifetimes instead of Arc, which is a good thing I think. By default async functions return futures that borrow the lifetime of the async function call as well. This is the use-case that Isahc is optimized for. If all goes well async/await will land in stable Rust in about a month; hopefully it doesn't take too long for the ecosystem to adopt the patterns that async/await enable.
If you want to make a case for having ResponseFuture have a static lifetime then I'd create a separate issue for that. No promises that I'd agree with you though. 😉

So simply using async / await instead of combinators would solve the problem?
In my case I think making a static HttpClients for each thread would solve the problem. The global client works, but I want to execute requests on all CPU cores.

Both reqwest and actix_web::client seem to work fine when using their async APIs in the handler. However they don't have a fraction of the functionality of isahc.

actix-web would probably have to be revised for this to work, since you intend to borrow the Data for the duration of the response future like you said.
If your goal is 1 client per thread, then yeah using thread_local might be the way to go:
thread_local! {
    static CLIENT: HttpClient = HttpClient::builder()
        // customization
        .build()
        .unwrap();
}

If you do go down that direction, I'd be interested to hear back about some benchmarks on that approach vs a global client. Personally I'm skeptical that the performance increases will be significant enough, but I'm willing to be proved wrong. 😉

The server is on a 10 Gb/s pipe and it's only job is to make outbound HTTP/HTTPS requests. I'll find out soon enough if a single core is enough to saturate the network, especially with TLS handshakes.

Is there a benefit to working on future03 and only converting to future01 on each return, compared to converting send_async() to future01 immediately and working on future01?

How do I read the response body without blocking?

It appears I need to use a compatibility layer for AsyncRead.


Typo in Wiki

https://github.com/okamstudio/godot/wiki/compiling_intro
Very last sentence on the page "...setup this", should be "set this up".

fixed thanks!
On Fri, Jan 23, 2015 at 2:54 PM, Joe Sweeney<EMAIL_ADDRESS>wrote:

https://github.com/okamstudio/godot/wiki/compiling_intro
Very last sentence on the page "...setup this", should be "set this up".
—
Reply to this email directly or view it on GitHub
https://github.com/okamstudio/godot/issues/1301.


Session: use existing knowledge when submitting a prompt

UI reference:

@fmaclen should the user be able to choose more than one knowledge when submitting a prompt?

@GregoMac1 ideally, yes.