Is it possible to use this with IAM roles instead of plaintext keys?

This fails:
get_credentials=lambda: ("us-east-1",None,None,None)
It looks like at multiple points in aws_sigv4_headers() the plaintext key is concatenated to header strings.
Was the intention to make sure that only plaintext keys were used? Or is there a different way to set get_credentials to use IAM roles?

There is probably a way to use get_credentials with IAM roles. To check, are you wanting to use this from an EC2 instance?

This is from an ECS container. When using boto3 it's the same for EC2 and ECS, you just don't supply your keys to the constructor & boto3 does magic. I haven't read boto's source code to work out what the magic is.
Right now I'm using assume_role() and at least I'm getting a new different error (I think not related to permissions now)-- I had to grant my role the ability to pass the role (same one!) to itself. This seems like a hack and wrong.
I also tried get_session, which doesn't work because boto3 code running on an ecs container with an IAM already is using a session token & session tokens can't create session tokens. (I didn't check to see if there is a session token in the os.environ, but if there was, I'd still need two more secrets)
def get_credentials()->Tuple[str,str,str]
    sts_client = boto3.client("sts")
    role = "arn:aws:iam::1234567890:role/my-role"
    response = sts_client.assume_role(
        RoleArn=role, RoleSessionName="AssumeRoleSession1"
    )

    # can't create session token from a session (which is what a ECS container with
    # role has)
    # response = sts_client.get_session_token(
    #     DurationSeconds=60 * 15
    #     # Docs suggest that MFA is optional.
    #     # SerialNumber='string',
    #     # TokenCode='string'
    # )

    # From the response that contains the assumed role, get the temporary
    # credentials that can be used to make subsequent API calls
    credentials = response["Credentials"]

    # Use the temporary credentials that AssumeRole returns to make a
    # connection to Amazon S3
    return (
        credentials["AccessKeyId"],
        credentials["SecretAccessKey"],
        credentials["SessionToken"],
    )

By my understanding, you shouldn't need to do anything with directly STS in most cases. Instead, there is a magic local URL to fetch temporary credentials from:
import datetime
import os
import httpx

def GetECSCredentials():
    aws_access_key_id, aws_secret_access_key, aws_session_token = None, None, None
    expiration = datetime.datetime.fromtimestamp(0)
    aws_region = os.environ['AWS_REGION']
    creds_path = os.environ['AWS_CONTAINER_CREDENTIALS_RELATIVE_URI']

    def get_credentials():
        nonlocal aws_access_key_id, aws_secret_access_key, aws_session_token
        nonlocal expiration

        now = datetime.datetime.now()

        if now > expiration:
            creds = httpx.get(f'http://<IP_ADDRESS>{creds_path}').json()
            aws_access_key_id = creds['AccessKeyId']
            aws_secret_access_key = creds['SecretAccessKey']
            aws_session_token = creds['Token']
            expiration = datetime.datetime.strptime(creds['Expiration'], '%Y-%m-%dT%H:%M:%SZ')

        return aws_region, aws_access_key_id, aws_secret_access_key, aws_session_token

    return get_credentials

which you should be able to use by passing the result of GetEcsCredentials() as the get_credentials parameter
query_my_db = partial(sqlite_s3_query
    url='https://my-bucket.s3.eu-west-2.amazonaws.com/my-db.sqlite',
    get_credentials=GetEcsCredentials(),
)

(I've only partially tested this admittedly)

I've now put the above example in the README, so I'm going to close this issue. If it doesn't work (or I've misunderstood) feel free to reopen (or raise another issue).
(Note: I have no plan to put the ECS authentication code into sqlite-s3-query itself at this point)

We're currently testing your code, we'll report back if it works. Thanks for the code snippet, this is a better option than what I'd come up with.

@matthewdeanmartin Note I did just today make a small change to get_credentials: the current datetime is passed in. This is so the of signing requests and the checking if credentials have expired use the exact same datetime.


Fix spelling mistake

Fixed "How ot resolve the six.." spelling mistake (should be "How to resolve..")
#ATCP

@TeeEarls : Thanks for your contribution! The author(s) have been notified to review your proposed change.

Looks good; thanks @TeeEarls.


Not installable in laravel 9

.... due to composer requirements:
 Problem 1
    - Root composer.json requires pluckypenguin/laravel-nordigen ^1.0 -> satisfiable by pluckypenguin/laravel-nordigen[v1.0.0, v1.0.1, v1.0.2].
    - Conclusion: don't install symfony/http-foundation v6.2.0-BETA1 (conflict analysis result)
    - Conclusion: don't install symfony/http-foundation v6.0.15 (conflict analysis result)
    - Conclusion: don't install symfony/http-foundation v6.1.7 (conflict analysis result)
    - Root composer.json requires laravel/framework ^9.0 -> satisfiable by laravel/framework[v9.0.0-beta.1, ..., 9.x-dev].
    - laravel/framework v9.36.0 requires symfony/http-foundation ^6.0 -> satisfiable by symfony/http-foundation[v6.0.0-BETA1, ..., 6.2.x-dev].
    - Conclusion: install one of laravel/framework[v9.36.0], symfony/http-foundation[v6.2.0-BETA1] (conflict analysis result)

Thank you so much!
Can you now create a release for it? So that I can install it with composer, without using master as version?

Ah nuts sorry forgot that part will get 1 created On 6 Nov 2022 10:39, Bernhard Hörmann @.***> wrote:
Thank you so much!
Can you now create a release for it? So that I can install it with composer, without using master as version?
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you modified the open/close state.Message ID: @.***>

New version has been tagged and versioned


Allowing upload of assets via Hash

So, I'm working on a neat little feature that lets a game create images based on the current state of the game. But since the Rich Presence is restricted to pre-uploaded assets of the application used, I am in quite a pickle. Wouldn't it allow for more options to allow the DiscordRPC to upload pictures via a hash-key of the picture, instead of relying on pre-uploded assets? The profile pictures are send like that on a JoinRequest, so I doubt it should be that hard to allow it the other way around.

You should create the graphics for all states of the game ahead of time (also designing the images for the best possible appearance, as per https://discordapp.com/developers/docs/rich-presence/best-practices#have-interesting-expressive-art)

Of course, but with the limit of 140 Assets, it's impossible to prepare for all possible cases, that's why I have come up with this in the first place

I think if anything, you should be suggesting an increase to the asset limit, although I can't imagine a game with more than 150 actionable states.

Like I said, the images are generated by the game itself, based on various aspects and states of the game, that's one part why it is impossible. The other is, that even if one would create premade images of all cases, the assets limit would always be too low.

if we could upload temp assets that lasted for the duration of a rich presence state that would definitely be cool, or maybe being able to pass a url to the image key

Exactly, having a „dynamic assets“ for the small and big image that can be changed via direct url or image key

If the images are generated by the game, its going to take a lot of work to guarantee that all images will be bright, recognizable, and match for all players in the party. It also decreases recognition for two people playing the same game, as the art 'style' might be completely different if not carefully crafted.

Simply because they are generated does not mean that they are not recognizeable. Besides, the work that has to be put in making it the same for all people in the party is minimal. Remember that the examples on the docs are guidlines and recommendations to ensure good quality, but that quality can equally be achieved by generating a picture.

Also, if there are so many possible states that you'd need images for, how can one be distinguished from another, from the standpoint of someone wanting to play with you? Your rich presence should represent one of a finite number of states, that anyone who also plays the game would recognize. I can see the 150 limit being low for some games (like League of Legends, which could potentially overflow that with the number of unique characters), but I'm sure that for large games like that they could request the limit be increased.

This is a valid request, and one that we've heard from a number of game developers. There are currently technical limitations around the way we handle assets that would require some work on our part to allow this to happen.
I unfortunately can't offer you anything other than condolences and my agreement that it would be nice at the moment. I hope that it's something we can implement in the future as well.
If you find yourself in a situation where you legitimately need more than 150 assets, you can contact us and explain your case and we'll see what we can do.
I'll keep this issue open as the de-facto "We want to be able to upload assets via the payload" request.

For me, I could boost from this HUGELY. Having the concept of temporary assets would be great, as a Mod like this (for Minecraft) could be used more widely than expected. The ability to use the Server Icon of a world would be awesome, but it brings the issue where if > 150 people use the mod on different servers or worlds, we run out of icons and are forced to use a "preset" icon. The ability to have near-unlimited (not unlimited, but like a HUGE amount like 10,000) temporary images that can't last for longer than 24 hours would be useful.

If the string length limit for image keys was raised, Base64 would be a good option to send over images. Another good option is allowing sending of SVGs, for those times when the SVG is simple and the bitmap is huge. (SVG also embeds images as Base64 if I remember.)

So, any progress/ideas/new thoughts on this? Since my project starts to reach a point where it becomes kind-of needed.
Since the Integration of the Spotify Integration is now a thing (for a while now, I somehow missed it) and is able to display the cover of the currently playing song, isn't that a sign that it becomes possible?

It's not really as simple as opening up a field in the payload to accept base64 images. We'd have to make backend changes around our media proxy tools to support this as well. Unfortunately there's not currently any more information I have available—I update open feature requests and outstanding issues as I get new info, as you can see—but I will keep this open as the official feature request.

I'd like this too, we're integrating discord on our multi-system emulator and it would be cool to be able to show a boxart of the game being played, or the latest unlocked achievement

I know you have alot of comments saying they would like this feature being added and you have already addressed it saying there would have to be backend changes. I would also like this feature to use it similarly to Spotify, where I have a source image of an album cover that I would like to use for the rich presence. Perhaps making it only possible if the image is already uploaded to a website instead of directly sending it. I'm not familiar with how Spotify is handled with Rich Presence so I cant really weigh in on it.

+1 maybe just a ref to a URL of an image

This most likely wouldn't be what you want or what discord wants.
The Spotify implementation works this way, at least I think so because in the browser client you can see that the pictures are coming from Spotify CDN. This is most likely a deal between Discord and Spotify so Discord does not have to host/pay for the bandwidth of those pictures.
For a generic implementation this would not be ideal because Discord would allow anyone to display whatever they want in their client because you can't validate what the external link points to. Also this would increase the load on the specific hoster of the picture to an unknown amount (because every client would load the picture).
So the only possibility (if you want to do this by URL) would be that the Discord backend downloads whatever your URL points to and rehosts it for the Discord clients.
I hope that Discord comes up with a solution soon. This feature would be a great improvement for Rich Presence.

@sll552 So what is your suggestion to @fr500's case (RetroArch)??

@vpontin I don't think that discussing possible solutions makes sense here because it is Discords decision how (or even if) to implement it. For the sake of ending this here, this would be a solution that makes sense to me (without knowing much about Discords infrastructure etc.):

From a user/dev perspective I would add a new field in the struct with a limit of lets say 100kb, that holds a base64 encoded image.
In the library (the .dll) a hash of the image would be calculated. The Discord API could be changed so that it responds to each Rich Presence update with OK/ERROR and the hash of the current image (I believe the OK/ERROR part is already there as there are callbacks for errors).
The library could then check if the current image is the same as the image in the new update request that is in the queue. If the image is the same it doesn't need to be transferred, if not the base64 data will be sent to Discord.
The image could be hosted on the same CDN as the pictures that you can post in the chat currently.

Maybe it would make sense to be able to restrict for how long these images will be hosted, either by an additional field or some hard limit by Discord (like 12h or something).
Designing this is a task for the Discord Team so there is no real use in discussing every bit and piece of this or making suggestions (the one in this post included). So lets end this here and wait for an official solution.

Anyway i was trying to help, since only telling "this isnt possible and will never be" isnt a good answer dev-wise.
Anyway discord devs are doing a great deal of ****** not finding (or wanting to find) a solution for this, since Retroarch is one of the most conspicuous emulation platforms out there. Why not add better support for this?
Perharps making some agreement with retroarch devs could delight retrogamers like me, to being able to share what i'm currently gaming, it could be better for the community. Turn the back for us isnt a nice thing, anyway.

@vpontin While retroarch would not be able to programmatically upload assets for things like game icons, there's no reason that the 150 predetermined assets couldn't be used to show the system being emulated, for example. I don't think there are >150 emulated game systems on retroarch.
The strings in the profile could be used to show game name, emulator name, whatever they want.
We can't support programmatic asset upload right now, but I think it's fairly disingenuous to say that we're turning our back on integrations because of it.

I don't think discord has to implement this.
It would be nice to have, that's all.
It's certainly not a show stopper but it narrows down the possibilities a bit (I had an idea for a game awareness pluging for retroarch that would show megaman from megaman X with the collected armor pieces for example)
Again, just ideas, would be nice to have, that's all.

Would be nice to dynamically update the photo for the presence, that way you don't need to preload the app with 150 photos.

Christ, this is almost a year old now .-.
How about we add it for the anniversary?

Hah, happy birthday issue 🎉  The stance, I suppose obviously, really hasn't changed. We don't have a good way to do this. The truth is that it's a fairly niche request for certain types of integrations: music, emulators, etc. etc. The vast majority of games fall well within the 150 asset limit and pre-upload them to be referenced. In fact, I'd wager than most of our integrations use < 5 assets altogether.
I'm happy to keep this issue open for the sake of it being tracked and acknowledged, but I don't think we're going to make this happen anytime soon.

Another aspect would be that if you have a team working on a project such as a game (the size / scope of it doesn't really matter) it's currently not that easy to give everyone the needed access to certain parts, artists for assets, programmers for implementation etc.
But the fact that it's all tied to a single discord account means you either have someone of the team act as a proxy that handles all the stuff (which can potentially lead to a bottleneck if said person happens to be not available) or basically make a dedicated account that can be shared with the team.
Being able to dynamically adjust assets (or even only upload them), if done right, can already reduce quite a bit of workload of that one person.
But yeah even then I'd probably also mark it niche, a proper permission handling per-application would probably work better in that case, but as that also isn't a thing.~
I mostly wrote this to maybe give it a different angle to look at it and maybe find a suitable solution along the way (however unlikely it is)

I believe that allowing multiple users to access/edit a single application was discussed and/or planned, which would solve your use-case better than uploading assets on-the-fly, @neico.

@neico stay tuned 😄

@msciotti you say stay tuned, but its 4 months later and still nothing. is one of those soon:tm:'s that never ever happen, or one of those soon:tm:'s that eventually happen like video chat

@msciotti Yeah, please do something

that was probably with regard to teams which already happened

well regardless we still need this

We really need that

Hey all, with #290 we'll be moving these feature requests over here: https://support-dev.discordapp.com/hc/en-us/community/topics
Could I ask that someone writes this up over there? I'm happy to do it as well if no one does by end of today.

Pending approval, but I hope you're happy https://support-dev.discordapp.com/hc/en-us/community/posts/360043570772-Allowing-upload-of-assets-via-Hash
Made this by hand and it took me a solid 30 minutes :relieved:

Pending approval, but I hope you're happy https://support-dev.discordapp.com/hc/en-us/community/posts/360043570772-Allowing-upload-of-assets-via-Hash
Made this by hand and it took me a solid 30 minutes 😌

Clicking the link shows an unauthorized page for me but im not sure if they're supposed to be public or not.

Trying to figure that out myself 🙃 first day with the new system.

@msciotti I know this is off topic, but why did you switch to using zendesk instead of github for feedback?

@OhhLoz @msciotti It's pending approval as a post.

@sorenbug Would you mind editing so the body of the post is just a link to this issue + Vatuu's first post. This issue will close but still be readable, so I don't think we need to copy the whole conversation over.

@ifonefox it's easier for us to categorize requests and see community priorities via upvotes on the requests. It also allows our CX folks to moderate the, uh, less than kind comments that sometimes happen, rather than me 😄

@msciotti Done

That link still is dead

It's still pending approval /shrug

Approval to be displayed? That's dumb. There should be a simple profanity filter & a queue system to look at it after it's already been published

It actually did hit a profanity filter, which is why it was not published immediately. That link should be alive now, thank you! I'll close this issue in favor of that post.


[RIP-78][RIP-72][RIP-70] [RIP-86] [RIP-87] [RIP-88] Update some documents in RocketMQ docs/en

update Example_Filter.md

update Example_Filter.md


Issa/35965/Seo update pages titles and meta description

Changes:

Added SEO titles and descriptions on different pages

Type of change

[ ] Bug fix
[ ] New feature
[x] Update feature
[ ] Refactor code
[ ] Translation to code
[ ] Translation to crowdin
[ ] Script configuration
[ ] Improve performance
[ ] Style only
[ ] Dependency update
[ ] Documentation update
[ ] Release

Just a minor issue, shouldn't this pr be from crowdin & not master? saw the card has a translation tag on it

Just a minor issue, shouldn't this pr be from crowdin & not master? saw the card has a translation tag on it

@arome-binary Confirmed that it should be from the master branch, so maybe he can re-confirm!


Creating the Db schema

Create a database named esb_db. The tables should be as shown in the model shown below:

You should create a proper SQL script for creating the above schema, and the script should be checked into the repo.

Yes, primary keys need to be auto incremented.


Implement Forced Option

closes #95

I added decicated enums for SwitchActuator and DimmingActuator even that they have currently the same content.
My thought about this was, that I don't know if the value might change in the future and also if possible translations might be different.

I added decicated enums for SwitchActuator and DimmingActuator even that they have currently the same content. My thought about this was, that I don't know if the value might change in the future and also if possible translations might be different.

Looks good, I think this will be easier to implement in HA, and in the future if there are more options the changes to HA will be minimal.


How to prevent child node to dragged in another parent node ... How to save Data to mysql and PHP

Thank you

In documentation first example there is C parant block, which does not allow insert item from another blocks. The code is related to isAllowed callback. There is also an examle code for this example:
var options = {
    isAllowed: function(currEl, hint, target)
    {
        if( hint.parents('li').first().data('module') === 'c' && currEl.data('module') !== 'c' )
        {
            hint.css('background-color', '#ff9999');
            return false;
        }
        else
        {
            hint.css('background-color', '#99ff99');
            return true;
        }
    }
}

In another words every parent and his children has data-module attribute which identifies groups of items and you will check if hint parent has data-module compatible with dragged element.
To export list to structures which should be send to server there are three functions: sortableListsToArrayy(),sortableListsToHerarchy(), sortableListsToString(). This is the way to store it to database.


TrackPoints fix & copyright update

TrackPoints are an array of structs, not a single struct
Update copyright to 2016

Thanks!


Multiplayer Client gives error "Type Error: multiplayer is not a function"

If I create a Client with the multiplayer property set to { server: "http://localhost:8000" }  I get the error above. If I set the multiplayer property to SocketIO({server: "http://localhost:8000"} it runs correctly. The docs show the former, is this just a doc issue or a bug?

I should mention this was working before I upgraded to the newest version today.

This was changed in #502, so I think the issue is that the docs need updating.

The docs are now updated.


ApplicationAutoscaling: support for all the current various forms of resource_id

Re Issue #3304.

Coverage decreased (-0.3%) to 94.143% when pulling 20a75913d8e1a2828a8f49b811100f31872f3091 on jweite:bugfix/app_autoscaling_sagemaker_resource_ids into 9f0f230d130a839fb2de6bfc97af4182360fbcdb on spulec:master.


Theoretically test statics

There are none of them in libc except for __progname on Android, but
that one cannot be tested because it's not present in any header files.

Thanks for the pull request, and welcome! The Rust team is excited to review your changes, and you should hear from @alexcrichton (or someone else) soon.
If any changes to this PR are deemed necessary, please add them as extra commits. This ensures that the reviewer can see what has changed since they last reviewed the code. Due to the way GitHub handles out-of-date commits, this should also make it reasonably obvious what issues have or haven't been addressed. Large or tricky changes may require several passes of review and changes.
Please see the contribution instructions for more information.

Yes let's revert those changes in ctest, I'll be yanking 0.2.1 for that reason

er, didn't mean to close

My bad, I added these ignores because they failed on my machine, didn't mean to add them to the PR.
Will open an issue about them.

@bors: r+

:pushpin: Commit eb6bdf35ddc07408e387505d748b6f0374fe32be has been approved by alexcrichton

:hourglass: Testing commit eb6bdf35ddc07408e387505d748b6f0374fe32be with merge 878e6aea1f451ffea2a2814c7d26218f983c265c...

:sunny: Test successful - status-appveyor, status-travis
Approved by: alexcrichton
Pushing 878e6aea1f451ffea2a2814c7d26218f983c265c to master...


Add node affinity to the VM

Add node affinity to let the VM be scheduled to nodes with available cluster network
Related issue: https://github.com/harvester/harvester/issues/2982

If users specify a VM to run on a node, but the network doesn't span to that node, we'll see that the VM can't schedule because it can't find a good place. I guess a similar situation could happen when using PCI passthrough.

It's OK to have such a result at this stage, but maybe we can improve more to forbid the creation in the future. Nice work!


Deliver fails to upload IPad screenshots

New Issue Checklist

[x] Updated fastlane to the latest version
[x] I read the Contribution Guidelines
[x] I read docs.fastlane.tools
[x] I searched for existing GitHub issues

Issue Description

As part of Fastlane call, we are trying to upload iPad screenshots for 11' IPad version. Screenshot dimension we have is 2360 x 1630 and 1630 x 2360.
I am able to upload manually the same screenshot on appstoreconnect.
Fastlane version: 2.217.0
Command executed

Complete output when running fastlane, including the stack trace and command used

WARN [2024-01-02 16:37:26.58]: 🚫 Invalid screenshots were detected! Here are the reasons:
ERROR [2024-01-02 16:37:26.58]: 🚫 Error: ./fastlane/screenshots/en-US/SCREENSHOTS_IPAD_0.png - Invalid screen size (Actual size is 2360x1640. See the specifications to fix [https://help.apple.com/app-store-connect/#/devd274dd925)](https://help.apple.com/app-store-connect/#/devd274dd925)%1B[0m)
ERROR [2024-01-02 16:37:26.58]: 🚫 Error: ./fastlane/screenshots/en-US/SCREENSHOTS_IPAD_1.png - Invalid screen size (Actual size is 1640x2360. See the specifications to fix [https://help.apple.com/app-store-connect/#/devd274dd925)](https://help.apple.com/app-store-connect/#/devd274dd925)%1B[0m)
ERROR [2024-01-02 16:37:26.58]: 🚫 Error: ./fastlane/screenshots/en-US/SCREENSHOTS_IPAD_2.png - Invalid screen size (Actual size is 2360x1640. See the specifications to fix [https://help.apple.com/app-store-connect/#/devd274dd925)](https://help.apple.com/app-store-connect/#/devd274dd925)%1B[0m)
ERROR [2024-01-02 16:37:26.58]: 🚫 Error: ./fastlane/screenshots/en-US/SCREENSHOTS_IPAD_3.png - Invalid screen size (Actual size is 2360x1640. See the specifications to fix [https://help.apple.com/app-store-connect/#/devd274dd925)](https://help.apple.com/app-store-connect/#/devd274dd925)%1B[0m)

Environment

🚫 fastlane environment 🚫
Stack

Key
Value

OS
13.0.1

Ruby
2.7.6

Bundler?
false

Git
git version 2.37.1 (Apple Git-137.1)

Installation Source
~/.rbenv/versions/2.7.6/bin/fastlane

Host
macOS 13.0.1 (22A400)

Ruby Lib Dir
~/.rbenv/versions/2.7.6/lib

OpenSSL Version
OpenSSL 1.1.1v  1 Aug 2023

Is contained
false

Is homebrew
false

Is installed via Fabric.app
false

Xcode Path
/Applications/Xcode.app/Contents/Developer/

Xcode Version
14.1

Swift Version
5.7.1

System Locale

Variable
Value

LANG
en_US.UTF-8
✅

LC_ALL
en_US.UTF-8
✅

LANGUAGE

fastlane files:
No Fastfile found
No Appfile found
fastlane gems

Gem
Version
Update-Status

fastlane
2.217.0
🚫 Update available

Loaded fastlane plugins:
No plugins Loaded
Loaded gems

Gem
Version

did_you_mean
1.4.0

public_suffix
5.0.3

addressable
2.8.5

artifactory
3.0.15

babosa
1.0.4

bundler
2.1.4

CFPropertyList
3.0.6

colored
1.2

highline
2.0.3

commander
4.6.0

dotenv
2.8.1

emoji_regex
3.2.3

excon
0.102.0

faraday-em_http
1.0.0

faraday-em_synchrony
1.0.0

faraday-excon
1.1.0

faraday-httpclient
1.0.1

multipart-post
2.3.0

faraday-multipart
1.0.4

faraday-net_http
1.0.1

faraday-net_http_persistent
1.2.0

faraday-patron
1.0.0

faraday-rack
1.0.0

faraday-retry
1.0.3

ruby2_keywords
0.0.5

faraday
1.10.3

faraday_middleware
1.2.0

unf_ext
<IP_ADDRESS>

unf
0.1.4

domain_name
0.5.20190701

http-cookie
1.0.5

faraday-cookie_jar
0.0.7

fastimage
2.2.7

gh_inspector
1.1.3

uber
0.1.0

declarative
0.0.20

trailblazer-option
0.1.2

representable
3.2.0

retriable
3.1.2

mini_mime
1.1.5

jwt
2.7.1

memoist
0.16.2

multi_json
1.15.0

os
1.1.4

signet
0.17.0

googleauth
1.7.0

httpclient
2.8.3

webrick
1.6.1

google-apis-core
0.11.1

google-apis-androidpublisher_v3
0.48.0

google-apis-playcustomapp_v1
0.13.0

google-cloud-env
1.6.0

google-cloud-errors
1.3.1

google-cloud-core
1.6.0

google-apis-iamcredentials_v1
0.17.0

google-apis-storage_v1
0.19.0

rake
13.0.1

digest-crc
0.6.5

google-cloud-storage
1.44.0

json
2.3.0

mini_magick
4.12.0

naturally
2.2.1

optparse
0.1.1

plist
3.7.0

rubyzip
2.3.2

security
0.1.3

simctl
1.6.10

terminal-notifier
2.0.0

unicode-display_width
1.8.0

terminal-table
3.0.2

tty-screen
0.8.1

tty-cursor
0.7.1

tty-spinner
0.9.3

word_wrap
1.0.0

atomos
0.1.3

claide
1.1.0

colored2
3.1.2

nanaimo
0.3.0

rexml
3.2.6

xcodeproj
1.22.0

rouge
2.0.7

xcpretty
0.3.0

xcpretty-travis-formatter
1.0.1

uri
0.10.0

aws-eventstream
1.2.0

aws-sigv4
1.6.0

aws-partitions
1.824.0

jmespath
1.6.2

aws-sdk-core
3.181.1

aws-sdk-kms
1.71.0

aws-sdk-s3
1.134.0

forwardable
1.3.1

logger
1.4.2

cgi
<IP_ADDRESS>

date
3.0.3

timeout
0.1.0

stringio
0.1.0

ipaddr
1.2.2

openssl
2.1.3

zlib
1.1.0

mutex_m
0.1.0

ostruct
0.2.0

strscan
1.0.3

io-console
0.5.6

delegate
0.1.0

fileutils
1.4.1

singleton
0.1.0

open3
0.1.0

yaml
0.1.0

psych
3.1.0

generated on: 2024-01-03

I am also facing this same issue @joshdholtz

Will look into! Thanks for the ping 😁

Thank you Sir

I had the same issue. Thanks for looking into it @joshdholtz

I'm also getting this issue, albeit with iPhone 15 simulator running iOS 17.2. Unlike the iPad issue as reported, my screenshots are only 1px too short:
[14:54:09]: 🚫 Error: /Users/<redacted>.png - Invalid screen size (Actual size is 1178x2556. See the specifications to fix https://help.apple.com/app-store-connect/#/devd274dd925)
with the linked documentation asking for 6.1" screen images to have dimensions 1179 x 2556 pixels
Happy to help provide any more information to help here as this is an easy reproduction for me
Snapfile options: ```
devices([
"iPhone 15",
"iPhone 15 Pro Max"
])
output_directory("./fastlane/screenshots")
clear_previous_screenshots(true)
override_status_bar(true)
dark_mode(true)
output_simulator_logs(true)
stop_after_first_error(false)
erase_simulator(true)```

For what its worth, I get the same issue (off by 1px) on:
iPhone 15 17.2 simulator
iPhone 14 Pro 17.0 simulator

thanks for solve this problem


Don’t use HTML 5 validation for corrective action date

https://trello.com/c/OH3224Eu/896-date-field-in-corrective-action-form-on-non-numeric-value-it-returns-hmtl-5-validations-instead-standard-validation-error
Description
This change turns off html date validation on the corrective action form so that we can show our own error message.

Checklist:

[ ] Have you documented your changes in the pull request description?
[ ] Does the change present any security considerations?
[ ] Is any gem functionality overloaded? Eg: Devise controller methods being overloaded.
[ ] Has acceptance criteria been tested by a peer?
[ ] Has the CHANGELOG been updated? (If change is worth telling users about.)

General testing (author)

[ ] Test without JavaScript
[ ] Test on small screen

Accessibility testing (author)

[ ] Works keyboard only
[ ] Tested with one screen reader
[ ] Zoom page to 400% - content still visible
[ ] Disable CSS - does content make sense and appear in a logical order?

Codecov Report

Merging #1564 (05e0782) into master (138b09e) will decrease coverage by 69.08%.
The diff coverage is n/a.

@@             Coverage Diff             @@
##           master    #1564       +/-   ##
===========================================
- Coverage   86.87%   17.79%   -69.09%
===========================================
  Files         388      388
  Lines        8330    10729     +2399
  Branches     1210      568      -642
===========================================
- Hits         7237     1909     -5328
- Misses        900     8758     +7858
+ Partials      193       62      -131

Impacted Files
Coverage Δ

app/models/contact.rb
0.00% <0.00%> (-100.00%)
:arrow_down:

app/models/accident.rb
0.00% <0.00%> (-100.00%)
:arrow_down:

app/models/incident.rb
0.00% <0.00%> (-100.00%)
:arrow_down:

app/forms/alert_form.rb
0.00% <0.00%> (-100.00%)
:arrow_down:

app/forms/comment_form.rb
0.00% <0.00%> (-100.00%)
:arrow_down:

app/forms/sign_in_form.rb
0.00% <0.00%> (-100.00%)
:arrow_down:

app/jobs/send_alert_job.rb
0.00% <0.00%> (-100.00%)
:arrow_down:

app/policies/team_policy.rb
0.00% <0.00%> (-100.00%)
:arrow_down:

app/models/unexpected_event.rb
0.00% <0.00%> (-100.00%)
:arrow_down:

app/decorators/test_decorator.rb
0.00% <0.00%> (-100.00%)
:arrow_down:

... and 300 more

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 138b09e...05e0782. Read the comment docs.


unable to run coin cell demo switch on ESP32 (AEGHB-554)

Using ESP-IDF v5.1.2, ESP32, compilation and flashing without issue, I get the following text on boot and nothing happens:
Leaving...
Hard resetting via RTS pin...
Executing action: monitor
Running idf_monitor in directory /Users/aaa/dev/esp-now/examples/coin_cell_demo/switch
Executing "/Users/aaa/.espressif/python_env/idf5.1_py3.11_env/bin/python /Users/aaa/dev/esp-idf/tools/idf_monitor.py -p /dev/cu.usbserial-0001 -b 115200 --toolchain-prefix xtensa-esp32-elf- --target esp32 --revision 0 /Users/aaa/dev/esp-now/examples/coin_cell_demo/switch/build/switch.elf -m '/Users/aaa/.espressif/python_env/idf5.1_py3.11_env/bin/python' '/Users/aaa/dev/esp-idf/tools/idf.py'"...
--- esp-idf-monitor 1.3.4 on /dev/cu.usbserial-0001 115200 ---
--- Quit: Ctrl+] | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H ---
ets Jul 29 2019 12:21:46

rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0030,len:1264
load:0x40078000,len:15080
load:0x40080400,len:4
0x40080400: _init at ??:?

ho 8 tail 4 room 4
load:0x40080404,len:3164
entry 0x400805fc

The get-started and bulb examples execute correctly on the same prototype board (ESP devkit).

@albrownwood Please see the switch's instructions. You need set Use coin cell button of example to N to simulate.

@lhespress yes I did compile with Use coin cell button = N and the error mentioned was present.

@albrownwood
The log level of switch use CONFIG_LOG_DEFAULT_LEVEL_NONE=y as default, so there isn't any LOG output. you can check the function by the LOG of bulb:
I (5161) app_bulb: bind, uuid: 08:f9:e0:1f:9d:34, initiator_type: 513
I (17901) app_bulb: app_bulb_ctrl_data_cb, initiator_attribute: 513, responder_attribute: 1, value: 1
I (19171) app_bulb: app_bulb_ctrl_data_cb, initiator_attribute: 513, responder_attribute: 1, value: 0
I (28411) app_bulb: app_bulb_ctrl_data_cb, initiator_attribute: 513, responder_attribute: 1, value: 1
I (29931) app_bulb: app_bulb_ctrl_data_cb, initiator_attribute: 513, responder_attribute: 1, value: 0
I (31281) app_bulb: app_bulb_ctrl_data_cb, initiator_attribute: 513, responder_attribute: 1, value: 1

Of course, please change it to CONFIG_LOG_DEFAULT_LEVEL_INFO=y if you want to show the LOG of switch, then you will see the LOG of switch as follows:
I (3981) app_switch: switch bind press
I (4000) espnow_ctrl: src_addr: 24:0a:c4:03:f5:14, espnow_ctrl_initiator_ack, channel: 1
I (6251) app_switch: switch send press
I (6289) espnow_ctrl: src_addr: 24:0a:c4:03:f5:14, espnow_ctrl_initiator_ack, channel: 1
I (9891) app_switch: switch send press
I (9911) espnow_ctrl: src_addr: 24:0a:c4:03:f5:14, espnow_ctrl_initiator_ack, channel: 1
I (12196) app_switch: switch send press
I (12267) espnow_ctrl: src_addr: 24:0a:c4:03:f5:14, espnow_ctrl_initiator_ack, channel: 1

@albrownwood Closing this issue since there has been no update on this. Please feel free to reopen if required.


Improve error handling

This improves the error handling (see #85; thanks for the feedback @mboehme !). Also gen_distance_fast.py now uses a different state file. These changes would have made, for instance, #89 easier to debug, i.e. the log files would have been helpful :)

Thanks @Liblor! LGTM.


Air circulation

If upstairs is more than a few degrees warmer than the other, turn fan on

use fan min on time

alias: Turn fan on when greenhouse is too hot
trigger:

platform: numeric_state
entity_id: sensor.greenhouse_inside_temperature
above: 80
condition:
condition: state
entity_id: switch.greenhouse_fan
state: 'off'
-condition: template
value_template: '{{ sensor.greenhouse_inside_temperature > sensor.greenhouse_outside_temperate + 5}}'
action:
service: homeassistant.turn_on
entity_id: switch.greenhouse_fan

every ~20 min check condition

Account for if thermostat is set to off


Feature/versioning experiment

Tag and HEAD commit id are added to the footer of the page. HEAD commit id is a link that will be directed to the commit page. While building with grunt, it will also execute some git command to get the tag and commit id. These two information will be put into a .htm file, which it will then be inserted into the footer of index.html (match regex: )
Fixed some JSHint issue both for syntax and updating modules to a new version, hopefully this will also fixed the karma unit issue (https://github.com/ga4gh/dockstore/issues/308)

NOTE:  grunt must be version 0.4.5 to avoid any dependencies issues
Related issue: https://github.com/ga4gh/dockstore/issues/186

FYI, not sure what's going on with hljs. It looks like the node version has a license but the bower version doesn't? Weird. Silencing it because it appears to be an oversight rather than a real license issue.


Fix handling of multi-value file fields

Some clients (e.g. Swagger), rather than specifying file1, file2, etc... will
specify multiple values for file when uploading multiple files.
This code change will handle lists of values for individual fields.
Review Checklist

Tests were added to cover all code changes
Documentation was added / updated
Code and tests follow standards in CONTRIBUTING.md

Codecov Report

Merging #1078 into master will increase coverage by 0.01%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master    #1078      +/-   ##
==========================================
+ Coverage    90.7%   90.71%   +0.01%
==========================================
  Files          50       50
  Lines        6925     6935      +10
==========================================
+ Hits         6281     6291      +10
  Misses        644      644

This change is confusing to me, because I know for a fact that multiple file fields has worked with this logic in the past. Do you have a curl that will fail on master and succeed with this PR?

@kofalt The modified integration test fails on master and succeeds on this PR.

LGTM!


[FLINK-19121][hive] Avoid accessing HDFS frequently in HiveBulkWriterFactory

What is the purpose of the change
In HadoopPathBasedBulkWriter, getSize will invoke FileSystem.exists and FileSystem.getFileStatus, but it is invoked per record.
There will be lots of visits to HDFS, may make HDFS pressure too high.
Brief change log
Creating a new HiveRollingPolicy:

Getting size of the file is too expensive. See HiveBulkWriterFactory#create. We can't check for every element, which will cause great pressure on DFS. Therefore, in this implementation, only check the file size in shouldRollOnProcessingTime, which can effectively avoid DFS pressure.

Verifying this change
Manually testing.
Does this pull request potentially affect one of the following parts:

Dependencies (does it add or upgrade a dependency): no
The public API, i.e., is any changed class annotated with @Public(Evolving): no
The serializers: no
The runtime per-record code paths (performance sensitive): no
Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Kubernetes/Yarn/Mesos, ZooKeeper: no
The S3 file system connector: no

Documentation

Does this pull request introduce a new feature? no

nice job，because of it，flink sql write into Hive table performance up up


Ideas for the project

Hi! I have some ideas about the project:

Text color (same a background color but with the text)
Sort the files of the project
Use prettier and huskyjs (to format the code and get a standard codelines)
Use Vuejs and Vite or Webpack (That depends is you want)

If you want, I can do that things

~Text color~. This API is for generating cards just like spotify sharing cards in its app. You can also see it here: https://promocards.byspotify.com/?type=song&id=4EpdhdsbhHQ3CXXuqqwHyQ
Sort. Can you elaborate on this more?
Use prettier and huskyjs. I also feel that adding husky for pre-commit hooks will be cool and time saver for everyone.
Use Vuejs and Vite or Webpack. Are you referring to the documentation part?

Yes, to the documentation part.
Another idea:

Move the documentation to another branch or repo

Yeah, it would be great, but I feel that this project does not need extensive documentation. We can use React or Vue for making simple documentation instead of using powerful options like docusaurus.

I have created a separate issue for adding husky and prettier. Add a comment there so that I can assign you.


Development

I tried to use HPToolsLauncher as standalone executable from command line (without Jenkins plugin) and found few issues. That pull request fixes some of them. See messages in commits.

Hi,
did you use 4.5.0-SNAPSHOT version?

Hello. Yes, I saw it. But name didn't tell anything :)
I didn't find instructions for contributors so I choosed "development" branch.

I will open new PR to the corect version.


Stuck at "0ms Starting document clone" on IOS (Safari and Chrome)

I can reproduce the issue on multiple ios devices. Works like a charm on all other OS (including Android, Windows and MacOS) though. I have tried Safari and chrome and the issue showed up on both browsers.
I've tried using all JS versions (non-minified) from 1.4.1 down to 1.2.0. Can't see any errors in the console either except it being stuck at "Starting document clone" at 0ms.
I'm trying to screenshot a html div element that contains multiple divs (mix of imgs and text). The size of png generated on other devices is not more than 100kb though so I doubt it's got something to do with render issue due to large size as mentioned in another issue here.
This is what I'm getting in chrome console
DEBUG #1 0ms Starting document clone with size 428x859 scrolled to 0,-526
And nothing happens after that.
Here's my script

Version
html2canvas : 1.4.1
IOS : 16.4.1

Ran into the same issue. Seems to be affecting WebKit browsers.
Tested on GNOME Web (evince): Mozilla/5.0 (X11; Ubuntu; Linux x86_64) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.0 Safari/605.1.15.

I managed to figure out that in my case it stopped working after I started to use Next.js’s Image on the page. 😕 (I’m using next@13.1.6). Image was not used in part of the page I was capturing. After I’ve added it html2canvas promise never resolved.

Yeah
It's weird. I've tried multiple things but couldn't get it move forward on iOS devices.
Finally, decided to use domtoimage instead. It's working fine but not the best solution. It's slower and is not as reliable as html2canvas.

@marek-saji
I use nextimage without optimisation. and it doesn't work either. Did you manage to fix it somehow?

as far as i have noticed it is not an issue of next image, but of images loaded using lazy loading. If there is a lazy loading image on the page, this causes a problem with html2canvas on safari

My html2canvas was also was hanging in Safari (macOS/iOS) at #1 – "0ms" – "Starting document clone with size..." with no other error or proceeding on the console. I came accross this post and found @AdrianEasyOze 's answer was the issue. I could understand it because it used to work before and stopped only after I lazy loaded one image on the site. The image is not even inside the element to screenshot yet Safari was failing with html2canvas somehow. On removing the lazyload it started working again. Chrome / Edge do not have this problem.

My html2canvas was also was hanging in Safari (macOS/iOS) at #1 – "0ms" – "Starting document clone with size..." with no other error or proceeding on the console. I came accross this post and found @AdrianEasyOze 's answer was the issue. I could understand it because it used to work before and stopped only after I lazy loaded one image on the site. The image is not even inside the element to screenshot yet Safari was failing with html2canvas somehow. On removing the lazyload it started working again. Chrome / Edge do not have this problem.

this is not the solution, it still not working. I have 1 image and one div block. On other devices it's work perfect. But on mobile IOS in Safari or Chrome - i get freeze on "0ms Starting document clone". I don't have lazy load images and etc.

@petermarkovich
If you completely remove a photo from a particular screen, does the problem still exist? Can I see how you add the photo (some code)?

@petermarkovich If you completely remove a photo from a particular screen, does the problem still exist? Can I see how you add the photo (some code)?

yep,  example
style={{     backgroundImage: url(${image}),     backgroundSize: "cover",     backgroundRepeat: "no-repeat",     backgroundPosition: "top",   }}
i use react + magento. My react app it's a part of magento page. When i test only my app without magento 2, і don't have this issue

I have a similar issue on Windows Chrome, after trying to make screenshot of the same part multiple times

We had issues with lazy loaded images anywhere in the dom, not just within the element targeted for export. No error logs, but the output logs show that the process hangs before the dom gets cloned

Same issue. When setting { useCORS: true } problem is solved.
html2canvas(document.body, { useCORS: true })

I had this issue. useCors did not resolve. I was generating charts and converting them for pdfs. All that was required on my side was to add like a 2 second delay between when the charts were generated and when i tried to convert them.

Indeed - useCORS solution didn't help at all. On the other hand, loading='lazy' was the problem by me. Even though (as mentioned) the img that was lazy loaded, was completely out of the screenshoted part of HTML.
But since the plugin clones the whole document (as far as I understand it), it really doesn't matter if the lazy loaded img is in the screenshoted part, or somewhere else.

When I use version 1.0.0-rc.4, the issue is no longer present.

I came to you with a complete solution proposal. It worked perfectly for me. I couldn't find it anywhere on the internet, I finally solved it with my own methods.
Problem: The problem is caused by CORS policy on Safari and LazyLoad. It could also be due to just one of them. Depending on the situation, you can edit the function, primarily LazyLoad.
Solution: You need to exclude external URLs that may be against CORS policy and any LazyLoad images on the page, even if they are not in Canvas.
Solution Code:
html2canvas(element, {         useCORS: true, allowTaint: true, ignoreElements: function (e) { // Here, ignore external URL links and lazyload images             if ((e.tagName === "A" && e.host !== window.location.host) || e.getAttribute('loading') === "lazy") {                 return true;             } else {                 return false;             }         }     }).then(function (canvas) {        // Make what do you want with canvas data.     })
My Function (Start Download With a Button, Copy a Display None Div):
`function downloadHtmlToImage(divID, buttonID, name, toggleDisplay = true, extension = 'jpg',titleHtml = 'Download Started',titleWait = 'Wait...') {
let button = $('#' + buttonID)[0];
$(button).html(titleWait);
$(button).attr('disabled', 'disabled');
var element = document.querySelector("#" + divID);
element.style.display = 'block';
html2canvas(element, {
    useCORS: true, allowTaint: true, ignoreElements: function (e) {
        if ((e.tagName === "A" && e.host !== window.location.host) || e.getAttribute('loading') === "lazy") {
            return true;
        } else {
            return false;
        }
    }
}).then(function (canvas) {
    let mimeType = null;
    if (extension === 'jpg' || extension === 'jpeg') {
        mimeType = 'image/jpeg';
    } else if (extension === 'png') {
        mimeType = 'image/png';
    } else {
        extension = 'jpg';
        mimeType = 'image/jpeg';
    }
    var a = $("")
        .attr("href", canvas.toDataURL(mimeType))
        .attr("download", name + '.' + extension)
        .appendTo("body");
    a[0].click();
    a.remove();
    $(button).html(titleHtml);
    $(button).removeAttr('disabled');

})
element.style.display = 'none';

}`

Html2canvas Safari Problem: Not Working
I came to you with a complete solution proposal. It worked perfectly for me. I couldn't find it anywhere on the internet, I finally solved it with my own methods.
Problem: The problem is caused by CORS policy on Safari and LazyLoad. It could also be due to just one of them. Depending on the situation, you can edit the function, primarily LazyLoad.
Solution: You need to exclude external URLs that may be against CORS policy and any LazyLoad images on the page, even if they are not in Canvas.
Solution Code:
html2canvas(element, {
        useCORS: true, allowTaint: true, ignoreElements: function (e) {
// Here, ignore external URL links and lazyload images
            if ((e.tagName === "A" && e.host !== window.location.host) || e.getAttribute('loading') === "lazy") {
                return true;
            } else {
                return false;
            }
        }
    }).then(function (canvas) {
    //   Make what do you want with canvas data.
    })

My Function (Start Download With a Button, Copy a Display None Div):
/*
Function Parameters:
elementID: The element you want to copy.
buttonID: Button to start the process
name: File name for save
toggleDisplay: If the element you want to convert to Canvas is Display: None, you should choose True. Thus, it will translate as Display: Block before the process starts. After copying, Display: will be converted back to None. If your element to be copied is already visible, select False.
titleHtml: It changes the HTML on the button after the download starts.
titleWait: Changes the HTML on the button during the process.
*/
function downloadHtmlToImage(elementID, buttonID, name, toggleDisplay = true, extension = 'jpg',titleHtml = 'Download Started',titleWait = 'Wait...') {

    let button = $('#' + buttonID)[0];
    $(button).html(titleWait);
    $(button).attr('disabled', 'disabled');
    var element = document.querySelector("#" + elementID);
    if(toggleDisplay){
element.style.display = 'block';
}
// With ignoreElements, one of the html2canvas parameters, we exclude external URL and loading="lazy" images on the entire page. You can change this as you wish. If you have to use a LazyLoad image, you can remove all LazyLoad attributes from the page before processing.
    html2canvas(element, {
        useCORS: true, allowTaint: true, ignoreElements: function (e) {
            if ((e.tagName === "A" && e.host !== window.location.host) || e.getAttribute('loading') === "lazy") {
                return true;
            } else {
                return false;
            }
        }
    }).then(function (canvas) {
        let mimeType = null;
        if (extension === 'jpg' || extension === 'jpeg') {
            mimeType = 'image/jpeg';
        } else if (extension === 'png') {
            mimeType = 'image/png';
        } else {
            extension = 'jpg';
            mimeType = 'image/jpeg';
        }
        var a = $("")
            .attr("href", canvas.toDataURL(mimeType))
            .attr("download", name + '.' + extension)
            .appendTo("body");
        a[0].click();
        a.remove();
        $(button).html(titleHtml);
        $(button).removeAttr('disabled');

    })
    if(toggleDisplay){
    element.style.display = 'none';

}
}

Here, example HTML:
<button role="button" onclick="downloadHtmlToImage('myElementForDownload','downloadButtonID','fileNameDownloaded')" id="downloadButtonID">My Button for Start Download</button>

loading="lazy" is the default attribute of the next/image
We can move it to loading="eager"

loading="lazy" is the default attribute of the next/image We can move it to loading="eager"

In fact, with a little more effort, you can do it like this.

Before Html2Canvas starts processing, you remove all HTML elements that have the value loading="lazy" and replace it with any value. For example: myCustomAttribute="itWillReplace"
Html2Canvas works. In this process, there is no problem with CORS or LazyLoad in the structure retrieved from the DOM.
Instead of myCustomAttribute="itWillReplace", we can replace it with the tag loading="lazy" wherever it is present.

Just a solution suggestion in a very primitive way :)

When I use version 1.0.0-rc.4, the issue is no longer present.

1.0.0-rc.4 produces blank image on ios

Hi guys, I had the same problem as You and indeed changing the loading attributes of images to eager solves the problem. I wanted to use the 'onclone' method from options as I found it more intuitive,  but it seems to be called too late so instead - I change the attributes of all the images inside the captures dom nodes to 'eager' mode.
Here is a snippet that worked perfeclty for me (of course after taking the screenshot, you can thange those attributes back):
`   const getElementImage = async (sourceElement: HTMLElement) => {
Array.from(sourceElement.querySelectorAll('img'))?.forEach((img) => {
if (img.getAttribute('loading') === 'lazy') img.setAttribute('loading', 'eager')
})
    const canvas = await html2canvas(sourceElement, {
        useCORS: true,
        allowTaint: true,
        logging: true,
        height: sourceElement.clientHeight || window.innerHeight,
        width: sourceElement.clientWidth || window.innerWidth,
        ignoreElements: (el) =>
            el.nodeName.toLowerCase() === 'canvas' ||
            el.getAttribute('loading') === 'lazy'
    })
    const base64 = canvas.toDataURL('image/jpeg', 1.0)

    const image = new Image()
    image.width = sourceElement.offsetWidth || sourceElement.clientWidth
    image.height = sourceElement.offsetHeight || sourceElement.clientHeight
    image.src = base64
    return image
}
`

Hi! I just wanted to chime in that removing lazy loading from all images in my site resolved this issue. Only iOS was not exporting an image. I'm using NextJS with the next/image tag. Adding priority={true} to all <Image /> tags totally resolved this issue.

Hi guys, I had the same problem as You on Safari and indeed changing the loading attributes of images to eager solves the problem. I wanted to use the 'onclone' method from options as I found it more intuitive, but it seems to be called too late so instead - I change the attributes of all the images inside the captured dom node to 'eager' mode. Here is a snippet that worked perfeclty for me (of course after taking the screenshot, you can change those attributes back):
    const getElementImage = async (sourceElement: HTMLElement) => {
        Array.from(sourceElement.querySelectorAll('img'))?.forEach((img) => {
            if (img.getAttribute('loading') === 'lazy') img.setAttribute('loading', 'eager')
        });

        const canvas = await html2canvas(sourceElement, {
            useCORS: true,
            allowTaint: true,
            logging: true,
            height: sourceElement.clientHeight || window.innerHeight,
            width: sourceElement.clientWidth || window.innerWidth,
            ignoreElements: (el) =>
                el.nodeName.toLowerCase() === 'canvas' ||
                el.getAttribute('loading') === 'lazy'
        });
        const base64 = canvas.toDataURL('image/jpeg', 1.0);

        const image = new Image();
        image.width = sourceElement.offsetWidth || sourceElement.clientWidth;
        image.height = sourceElement.offsetHeight || sourceElement.clientHeight;
        image.src = base64;
        return image
    }

work for me! But I don't have a loading node in my dom, Anyway, it works for me!

Html2canvas Safari Problem: Not Working
I came to you with a complete solution proposal. It worked perfectly for me. I couldn't find it anywhere on the internet, I finally solved it with my own methods.
Problem: The problem is caused by CORS policy on Safari and LazyLoad. It could also be due to just one of them. Depending on the situation, you can edit the function, primarily LazyLoad.
Solution: You need to exclude external URLs that may be against CORS policy and any LazyLoad images on the page, even if they are not in Canvas.
Solution Code:
html2canvas(element, {
        useCORS: true, allowTaint: true, ignoreElements: function (e) {
// Here, ignore external URL links and lazyload images
            if ((e.tagName === "A" && e.host !== window.location.host) || e.getAttribute('loading') === "lazy") {
                return true;
            } else {
                return false;
            }
        }
    }).then(function (canvas) {
    //   Make what do you want with canvas data.
    })

My Function (Start Download With a Button, Copy a Display None Div):
/*
Function Parameters:
elementID: The element you want to copy.
buttonID: Button to start the process
name: File name for save
toggleDisplay: If the element you want to convert to Canvas is Display: None, you should choose True. Thus, it will translate as Display: Block before the process starts. After copying, Display: will be converted back to None. If your element to be copied is already visible, select False.
titleHtml: It changes the HTML on the button after the download starts.
titleWait: Changes the HTML on the button during the process.
*/
function downloadHtmlToImage(elementID, buttonID, name, toggleDisplay = true, extension = 'jpg',titleHtml = 'Download Started',titleWait = 'Wait...') {

    let button = $('#' + buttonID)[0];
    $(button).html(titleWait);
    $(button).attr('disabled', 'disabled');
    var element = document.querySelector("#" + elementID);
    if(toggleDisplay){
element.style.display = 'block';
}
// With ignoreElements, one of the html2canvas parameters, we exclude external URL and loading="lazy" images on the entire page. You can change this as you wish. If you have to use a LazyLoad image, you can remove all LazyLoad attributes from the page before processing.
    html2canvas(element, {
        useCORS: true, allowTaint: true, ignoreElements: function (e) {
            if ((e.tagName === "A" && e.host !== window.location.host) || e.getAttribute('loading') === "lazy") {
                return true;
            } else {
                return false;
            }
        }
    }).then(function (canvas) {
        let mimeType = null;
        if (extension === 'jpg' || extension === 'jpeg') {
            mimeType = 'image/jpeg';
        } else if (extension === 'png') {
            mimeType = 'image/png';
        } else {
            extension = 'jpg';
            mimeType = 'image/jpeg';
        }
        var a = $("")
            .attr("href", canvas.toDataURL(mimeType))
            .attr("download", name + '.' + extension)
            .appendTo("body");
        a[0].click();
        a.remove();
        $(button).html(titleHtml);
        $(button).removeAttr('disabled');

    })
    if(toggleDisplay){
    element.style.display = 'none';

}
}

Here, example HTML:
<button role="button" onclick="downloadHtmlToImage('myElementForDownload','downloadButtonID','fileNameDownloaded')" id="downloadButtonID">My Button for Start Download</button>

Thanks, it worked for me <3

i have a solutions for you, just before use html2canvas code load this to change all images from lazy load to eager load:
const lazyElements = document.querySelectorAll('[loading="lazy"]');
lazyElements.forEach(element => {
  element.setAttribute('loading', 'eager');
});

I ended up implementing a similar solution, a variable called isScreenshotMode that allows me to make subtle layout changes, as well as toggling my next/image to non-lazy load for the html2canvas function.

For me , its stuck at 0ms, and page refreshes always in ios safari and chrome, Any solution ?


Fix broken links

Fix broken links in README files.

Ah, many thanks. These got introduced in our recent big overhaul from latex -> markdown.
Double checked the updated links, looks good.


[SPEC] support neon enable option

It supports enable_neon only when aarch64 architecture.
And, neon option can be selectable for aarch64.
Signed-off-by: Jiho Chu<EMAIL_ADDRESS>

:memo: TAOS-CI Version: 1.5.20200925. Thank you for submitting PR #2481. Please a submit 1commit/1PR (one commit per one PR) policy to get comments quickly from reviewers. Your PR must pass all verificiation processes of cibot before starting a review process from reviewers. If you are new member to join this project, please read manuals in documentation folder and wiki page. In order to monitor a progress status of your PR in more detail, visit http://ci.nnstreamer.ai/.

:octocat: cibot: @jihochu, A builder checker could not be completed because one of the checkers is not completed. In order to find out a reason, please go to http://ci.nnstreamer.ai/nntrainer/ci/repo-workers/pr-checker/2481-202402221135440.11998891830444-635d97f8dfc5f365734523962e37bf96ff3443ad/.


Token mechanism not handled for Copernicus Dataspace provider

Describe the bug
Copernicus Dataspace  token refresh is not handled by EODAG, so for massive downloads it is not possible to use EODAG as plugin since it will lead to Authentication Errors and afterwards to be temporarily banned by the provider due to too many sessions opened at the same time (1 token = 1 session).
For Data Space every new token request is considered a new Session and so, if the previous token had not expired this means that 2 parallel sessions are open. Leading very soon to too many not allowed Sessions at the same time.
https://documentation.dataspace.copernicus.eu/Quotas.html#copernicus-general-users
This is the link to the max quotas for general users.
We (JRC - EC) have the quotas for Service providers, but we reached them anyhow since the refresh token is not handled.
We are using the single download since for how our workflow is created we singularly download each product, but it seems that for the same authenticated user new tokens have to be generated all the time, instead than using the existing ones and just refreshing them.
The mechanism should be to, in case an active token already exists, to refresh it every 10 minutes up to 60 minutes time. At 60 minutes time the token is not valid anymore and the session expires so a new token has to be requested. Since there is no "logout" mechanism it is also not possible to kill the existing sessions ourselves.
We need to understand if EODAG is going to implement this or not and with what priority, since if not we might have to rewrite the code for downloading ourselves and not use EODAG for downloading from Dataspace. Thanks for your answer.
Code To Reproduce
try:
        product_scratch_path = pathlib.Path(
            dag.download(eodag_eoproduct, outputs_prefix=scratch_dir)
        )
except AuthenticationError as e:
    logger.exception(e)
    dag = login_to_eodag_provider(provider=provider_name)
    process_single_eodag_product(
        product_uuid,
        base_path,
        collection_name,
        metadata,
        product_type,
        elastic,
        provider_name,
        eodag_eoproduct,
        dag,
        )

Environment:
Python version: 3.9.5
EODAG version: 2.9.1

Hello @chiarch84 and thanks for this issue. Yes this is something that should be handled, we'll plan to update the token retrieval mechanism to support it

Thanks a lot for your answer @sbrunato ! Keep us updated on the roadmap!

Hello @chiarch84 ,
Waiting for the EODAG upgrade, did you find (or develop) a homemade downloading function for COP_DATASPACE ?

Dear @koleckt no for the moment we just set up our downloads rate so that we don't exceed a certain number of "invalid user credentials" messages per minute and hour, so that we do not get "banned". So we keep downloading while receiving errors. Since we were hoping that EODAG would solve it soon. I guess we are not the only ones expecting this feature since CDSE is now the new official provider of Copernicus data.

Hello,
Based on https://documentation.dataspace.copernicus.eu/APIs/OData.html#product-download , I changed the keycloak authentication code a bit: https://github.com/gasparakos/eodag/blob/develop/eodag/plugins/authentication/keycloak.py#L94
Our downloads runs stable. It stopped two times. Once at 3 a.m.  when summer-winter clock change has taken place and clock went back to 2 a.m.. And once when session expiration (10 hour) happened. I adjusted the code a bit and run again. I hope it can start new session after 10 hour.
I put it in https://github.com/gasparakos/eodag. You can try it with:
pip install --upgrade git+https://github.com/gasparakos/eodag.git@develop

Our downloads runs stable. It stopped two times. Once at 3 a.m. when summer-winter clock change has taken place and clock went back to 2 a.m.. And once when session expiration (10 hour) happened. I adjusted the code a bit and run again. I hope it can start new session after 10 hour.

l left a breakpoint() in eodag/plugins/authentication/keycloak.py(117)authenticate() try except block, and got another response. After continue, new session started, and download continued.

I hope it can start new session after 10 hour.
Sorry, it can not handle session expiration. Maybe some time based explicit renewal.

Sorry, it can not handle session expiration. Maybe some time based explicit renewal.
This problem  was something else. Script was restarted and images still downloading from Tuesday. Session (10h expiration) was renewed a few times until now.


Date format issue when setting the date manually

Hello,
I got an issue that's been previously closed (172, 169) where I've set the locale to en-au meaning the format of my date pickers is  DD/MM/YYYY and it works fine as long as I use the widget, however if I try setting the value manually it expects it to be MM/DD/YYYY. This of course, will result in either an incorrect date or a null value.
I'm using version 7.0.0

https://github.com/DanielYKPan/date-time-picker/issues/269#issuecomment-450361124

Hi,
I am also facing the same issue. Can you please let me know how you have solved?

This issue still exists, any update for resolution :(

2022, this issue still present. No real way to change the "format" to "dd-mm-yyyy" and when a user enters that format, it fails. No way to set or disable the validation from what I can tell.


configure spring boot latest version with keycloak' SAML protocol

How to configure spring boot latest version with keycloak' SAML protocol, I don't know how to configure correctly.

You should ask that on Stack Overflow, where it will have far better visibility. It's out of scope for one of our guides, which we keep pretty simple, so that they can be completed in fifteen minutes.


Updates to the Software Defined Radio resources page.

Updates to both the SDR and RFID resource pages.


Idea: create a way to cast a vote for eosdacserver within the interface

In our branding / vision / mission call today, we discussed a number of topics including how it's confusing for someone who comes to our site and wants to vote for us as a block producer. The member client relates to us as a DAC (and as a DAC, we're an EOS Block Producer). The DAC Toolkit will serve a different purpose under the DAC Chain initiative.
As such, we'd like to improve our current eosdac.io Vote eosdacserver call to action experience and not just send them to the graymass eos-voter github page. Instead we want to create a new page on the website explaining how to use eos-voter to vote for us and we'd like to explain how to use Scatter to vote for us. As part of that, our call to action will be to go to the member client and vote for us there. My current vision for this would be something like this:

A single vote action only such as  "cleos system voteproducer approve  eosdacserver"
If the account already has 30 votes, not including us, show a popup of their existing votes and ask which block producer they would like to remove and replace with eosdacserver. Complete both the unapprove and approve actions in a single transaction.
If they are already voting for us, show a message like "Thanks for supporting eosdacserver with your vote"

Potential future improvements:

Display a list of proxies that currently vote for us and give them the option to set one of them as a proxy. Link out to existing proxy tools such as https://www.alohaeos.com/vote/proxy

Discussion points:

Where should this action item be?

Should we have it as a popup around this icon? Maybe an * if they are a member but they haven't voted for us?

Should it be a main menu item on the left that goes to a whole page explaining our vision as a block producer and why we're working to earn their vote?
Should it be buried in the settings or maybe just on the home page for the client?

Any concerns with vote begging?

I don't want people to think they have to vote for eosdacserver in order to be a member of the DAC. That is not at all true.
At the same time, I think it's natural to provide a tool (or support a community) and include a "Brought to you buy..." with a call to action to support the work with a vote.

Too much confusion or too many calls to action?

Supporting eosdacserver is a separate concern for the DAC. It's an important one because (currently) it's the primary revenue source for the DAC, but it's still secondary to the purpose of the member client which is to engage the DAC.
There's a lot going on in the member client already and the amount of stuff there will only increase in the future. We don't want it to get too busy with too many calls to action.

I think this should not be a part of the member client. we can do something on eosdac.io itself though.

@kasperfish thanks for the feedback. I felt the same way since the beginning, which is why I haven't pushed for this yet. After talking through the branding and strategy for what separates "The Community Own Block Producer" from "DAC Enabler" from "We are a DAC" got me thinking a little differently. The Member Toolkit is directly a tool for managing a community owned block producer. That's what it will be used for. The DAC Toolkit will be more like a DAC Enabler tool (probably part of DAC Chain). It makes sense to me to include voting for the BP in the tool for managing that BP.
If we integrate Scatter (and in the future, other authentication methods such as Ledger Nano S, EOS Lynx, MEET.one, etc) into our website then, in my mind, that increases the attack service to include that website which means we may need to take additional security precautions for that server, that domain, etc. I think we (ideally) don't just want people to vote for us, but also to engage with our community and help us make community decisions as a DAC about how we operate as a BP. That's my current thinking, anyway.

okay I see. having the "voting portal" on the same domain makes sense because the user is already logged in with scatter (or similar). I don't think it would take that long to implement.

Oh, that's a good point. I hadn't even thought about the domain name keys related to how scatter works. Yeah, if they are already logged in, that vote would be easy.
Thoughts on the process? Instead of showing a full "vote for 30 BPs" interface, how do you think about just voting for ours? We could link out to other voting portals as one possible approach, but since this is the eosDAC Member Client and one of the responsibilities of this particular DAC is managing the eosdacserver block producer, it makes sense to just keep this super simple. We'd still allow token holders to have influence, regardless of if they vote for our BP, but making it easy to support us with their EOS stake makes sense to me.

Was testing this on dev and noticed this float is above the transaction pop-up which is strange:

The notification bar should always be above everything else.


Pointed docs links to the new docs

(for the stack components at least...) there will be other patterns ofc

lets merge thsi right @AlexejPenner ?


Multiple Changes (cc.: description)

[+} Add lz4, and lzma compressions
[=] Prepare for GPG support
[=] Fix Twitter Handle for Contact

My apologies. This was meant for my fork, I was not paying attention to the page.


Trying to install cycle js

Hello there, I am trying to install the package cycle js and failing miserably. I keep getting the error message:
Client error response
[status code] 404
[reason phrase] Not Found
[url] https://github.com/staltz/cycle/master/package.json

A little help would be greatly appreciated.

It works for me using latest bowerphp version

Should I add bowerphp to my path?

I'm not sure to understand how the path could be related to this issue...

What do you think the problem is?

You're using an old version of bowerphp

Alright. Thank you.

I'll get the latest version as soon as possible.


documentation lit-html usage within/from Lit

in the lit-html usage, upgrade guide and standalone, please add a mention that the installed version of lit exports everything it has (including render, etc) from it's respective version of lit-html via lit/html.js
in my case I wanted to render to the DOM/light-dom so:
import { render } from 'lit/html.js';
// then example usage as expected for lit-html later
class extends LitElement{
  connectedCallback(){
    super.connectedCallback()
    render(html`...`, this)
  }
  render(){
    return html`<slot></slot>`;
  }
  ...

thanks

Fixed in https://github.com/lit/lit.dev/pull/514, site is now live: https://lit.dev/docs/releases/upgrade/#update-standalone-lit-html-imports


Development

Overview

Add #121
Add #122

Add #119
Add #129
Add #134

The checks are failing

@DiogoSoaress yes, that is a known issue related with hardhat not being able to compile the contracts. It's only happening on the CI. I'm trying to figure out why (https://hardhat.org/errors/#HH502)


Shortcuts do not run applications

Microsoft PowerToys version
0.85.1
Installation method
PowerToys auto-update, GitHub
Running as admin
Yes
Area(s) with issue?
Keyboard Manager
Steps to reproduce
Create a combination of keys to start an application, then press those keys
✔ Expected Behavior
PowerToys will run the app with the provided parameters (if any) after pressing the shortcut
❌ Actual Behavior
I tried with PowerShell, the settings app and Discord and no application seems to be able to run if called via shortcut
Other Software
No response

can you provide exactly what you're doing so we can repro?  /needinfo

screenshots, detailed steps would be extremely helpful


VM images are outdated

Hello,
the VM images that are provided for download on https://docs.remnux.org/install-distro/get-virtual-appliance are more than 14 months old and on v2021.15.2. This means, each user that has downloaded the VM image has to go through an extensive updating and upgrading the distro to get to v2022.21.4 with multiple opportunities for bugs/issues in this upgrade process.
Can you please provide new VM images (at least once a year or for every major yearly release), that are on the latest release right away?
Thanks in advance, Ralf

Yeah, good point, I just need to find the time to regenerate the images.

Done! I generated and published new OVA files last night.


Add missing documentation for send_as_tags

The inline documentation for the code states that tags are only send if they are also defined in data_points, this part is missing here. (merged in #38)
Thanks for contributing to Logstash! If you haven't already signed our CLA, here's a handy link: https://www.elastic.co/contributor-agreement/

looks like the build failure is not related to my patch

@jklare  I have merged your changes.  Thank you for contributing to Logstash.
I will create a follow up PR to bump the changelog and gemspec version to trigger the doc build to pick up your changes. I’ll reference the PR here so that you can have an example in case you would like to bump versions next time you contribute. If you choose not to, I'm always happy to bump versions for you.


Document different versions of GridFunction error computation functions

As discussed in https://github.com/mfem/mfem/pull/3746, it is undocumented and unclear to me as to why different functions are called by GridFunction::ComputeL1Error depending on whether the input Coefficient is passed by reference or as a pointer. Some questions are:

Why use different functions, namely ComputeW11Error and ComputeLpError?
Are the computations the same up to round-off error?
Are the different versions intended to be used differently in practice?

The same goes for ComputeL2Error. If someone is familiar with this, it would be helpful to document these functions.

@dylan-copeland, @mlstowell, do you think it makes sense to address the questions and concerns from this issue in #4578?

@v-dobrev @mlstowell I agree, it would be good to resolve this issue in that PR. Thanks for the reminder!

It's not clear to me why these two versions of ComputeL1Error call different functions internally.
I do not expect the results to agree to round-off error because they use different order integration rules; ComputeW11Error uses 2p+1 whereas ComputeLpError uses 2p+3. There are other implementation differences but these probably only change the order of operations (so these probably are round-off).
I have no idea about intended use differences. I suspect most developers don't realize they are different at all.
Regarding PR #4578: I would be happy to expand the documentation on these and related member functions in this PR. I can also alter one or both versions of ComputeL1Error but I'm not sure which implementation to use. @v-dobrev, what do you think is best here?


fix(s3): raise permission error correctly

Codecov Report
Patch coverage: 83.33% and project coverage change: -0.03 :warning:

Comparison is base (bb52ef3) 100.00% compared to head (0ea130d) 99.97%.

Additional details and impacted files
@@             Coverage Diff             @@
##              main     #212      +/-   ##
===========================================
- Coverage   100.00%   99.97%   -0.03%
===========================================
  Files           35       35
  Lines         4759     4761       +2
===========================================
+ Hits          4759     4760       +1
- Misses           0        1       +1

Impacted Files
Coverage Δ

megfile/s3_path.py
99.90% <83.33%> (-0.10%)
:arrow_down:

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


Setup.exe installation

Hi Team,
I am trying to install setup.exe using Powershell DSC.
I tried with passing different Arguments like /s /v /q
I am getting the following error:The return code -2147213312 was not expected. Configuration is likely not correct.
Please find the below configuration file :
Node ElevateServerSetUp
{                         Archive ElevateServerSetUp
{
Path = "C:\elevate\ELV999-AGS\64-bit Package\Elevate_PS90_server_x64\Elevate_PS90server_x64.zip"
Destination = "C:\SetupFile"
Ensure = "Present"
Force = $True
}
Package ElevateServerInstall
{
Name = "ELEVATE_PS 9.0 Server(x64)"
DependsOn = "[Archive]ElevateServerSetUp"
Ensure = "present"
ProductId = ""
Path = "C:\SetupFile\Elevate_PS90server_x64\setup.exe"
Arguments = "/quiet"
}
}
}
Please help me to resolve the above issue..
Kind Regards,
Naidu

@Naidul could you please share more details like -

which task are you using to execute this DSC script
Is it possible for you to share the debug logs for your build/release. You can get this by setting the 'system.debug' variable with value as 'true' into your release/build definition
Have you tried to run this DSC script manually, did it work ?

Here I am not using VSTS or anything else.I am using Azure Automation to run the configuration files.

@Naidul this is not the right forum for this question. Could you please post it to correct forum. Please see if below links helps you to find the correct forum -

https://github.com/azureautomation
https://github.com/PowerShell


fix(release): add files array to package.json

What kind of change does this PR introduce?
Bug fix.
What is the current behavior?
npm was ignoring dist because in absence of the files property in
package.json or .npmignore, it uses .gitignore instead, which ignores dist.
Additional context
Closes #118.

be so weird if this works 😄
thanks @soedirgo, let's give it a go!

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Cursor not visible on whitespace characters

Can you try editing the Cursor highlight group and see what it looks like? I can't recreate this so wonder if indentline plugin is to blame?

Yes. I use indent-blankline


docs: tweak AWS language

@robszumski do you want to change all the sh blocks to shell blocks?

@colhom I don't see any more in that doc. I did it only because I know that sh works and wasn't sure about shell. I don't think its a big deal either way.

lgtm


[MRG] Fixes bug preventing updates on large files

If server breaks connection, proceed with update if user specifies --force option.
Fixes #133
Note: if the server breaks the connection we infer that this is due to the combination of a large file and resource already being present. This is not actually guaranteed, so raising FileExistsError could potentially result in misdirecting users. Perhaps additional reporting required?

Thanks for the patch and time to work out what was going wrong.
Do you think it would make things more robust in terms of trying to guess that the connection error did mean "big file and already exists" if we check the size of the file to verify it really is "big"? Not sure what cut off we would use.

I've addressed your main comments but still have not addressed the cut off issue

I know everybody's busy, but if possible I'd selfishly love to see this pull request get merged in the near future since I'm seeing this problem myself. For the cutoff issue, my vote would be something like raise a generic error (RuntimeError?) with a message like this for files under ~1MB: "There was a connection error which might mean the file already exists. Try again with the --force or --update flag specified." (the --update flag will be added by my pull request (#146) ), and the normal FileExistsError for files over ~1 MB

@cmungall do you want to integrate that suggestion or could @benlindsay take over this PR and add that ?

It would be fastest and much appreciated if @benlindsay could take it over, thanks!


Consider adding a setting that determines the width of the accessible view

Currently, the accessible view has a width similar to that of the quick pick.
Since a screen reader will go line by line through the accessible view and we don't have support for line wrapping, this might be annoying for screen reader users.
We should consider making this configurable.
Open to thoughts/ suggestions @jooyoungseo and @rperez030
Also cc @isidorn

Discussed this with JooYoung and he thinks we should wait for feedback before doing this

Closing as no one has requested this


Updated price for Coderust app

The app now costs 19.99

Coderust is now completely different
https://www.educative.io/collection/5642554087309312/5679846214598656?authorName=Coderust
https://github.com/andreis/interview/commit/8db9c60695ddfb6d5a54afe424a74ed2f7339699#diff-04c6e90faac2675aa89e2176d2eec7d8R108


Getting Started tutorial doesn't show me how to create an installer

The Getting Started guide does an excellent job of getting me from zero to a running desktop app. I do wish it showed me how to create an installer from the IDE. I couldn't figure it out even after reading the tutorial on creating an installer.
P.S. I'm a C#/Avalonia programmer who knows nothing about Kotlin and Gradle so I really need my hand held until I learn more.

If you want to create an installer, open gradle window (view->tool windows->gradle) and run tasks->composeDesktop->package* (* depends on desired platform)

@mike-ward BTW, have you seen Native_distributions_and_local_execution tutorial?

@akurasov Yes, but not being familiar with the tooling I could not figure out from the tutorial what commands to run to build a package. To be fair, distribution/packaging in many development environment is also challenging. I'm delighted to see that this has been addressed in the IDE's plugin. Having an, "Easy Button", so to speak, helps with getting over the initial hurdles of learning a new framework.

Please check the following ticket on YouTrack for follow-ups to this issue. GitHub issues will be closed in the coming weeks.


Update react reconciler

Per #115, react-blessed needs to update to new react-reconciler to avoid bugs related to flushing passive effects (for example causing react-redux subscriptions to clean up when they should not). This required some changes to the HostConfig. I also updated the "test" script entry in package.json and the .babelrc config so that mocha would properly run tests with current babel, with module support.
npm test passes and manually checking demos works as well.

Ok @speakingcode. Let met merge this then, check some things and release as v0.7.0 on npm soon.

Ok I have found an issue with the remove example. It seems node removal is broken. I am currently investigating.

I struggle to find a solution. To reproduce, just run npm run demo remove.

Ok I found a fix as per https://github.com/Yomguithereal/react-blessed/commit/b38c2a75b99cba5e77f7182a036551f1e4000b7c. It was a tricky one to find...

Will try to upgrade devtools & prepare peer deps for a release soon.

v0.7.0 is now live on npm

Good find! sorry about the overlook of that test

@speakingcode, @Yomguithereal
There's still an issue with this:
The counter example I tested with works fine:
https://github.com/zcaudate/play.tui-counter-immer
but in the game of life example:

both next and the timer uses a call next_fn https://github.com/zcaudate/play.tui-game-of-life/blob/master/src/main.js#L161-L167
clicking next renders correctly - the counter updates and  the grid updates to the next state
clicking start  will render the updated counter but not update the grid to the next state

https://github.com/zcaudate/play.tui-game-of-life

@zcaudate I am trying to find what could be the issue here but to no avail. Could you try to reproduce the issue: 1. without immer and 2. while wrapping your interval in a useEffect to avoid bypassing react's lifecycle?

@Yomguithereal: It actually works when setInterval is put into useEffect. Thanks for the tip.
the repo without immer is here:
https://github.com/zcaudate/play.tui-game-of-life-raw

So the question would then be: would your example work for instance with react-dom? The underlying question is of course: should I fix something? Can I fix something :) ?

I think it is fixed. I'll try it out with react-dom in a couple of days but I think the problem was use of setInterval outside of react lifecycle.

Fair enough. Keep me informed when you do so :)


Build against a more recent ilmbase?

Upon updating Arch Linux, Sharp has missing libraries:
ldd node_modules/sharp/build/Release/sharp.node
libIlmImf-2_3.so.24 => not found
libImath-2_3.so.24 => not found
libHalf.so.24 => not found
libIex-2_3.so.24 => not found
libIexMath-2_3.so.24 => not found
libIlmThread-2_3.so.24 => not found

Files like the following are now present:
/usr/lib/libIlmImf-2_4.so.24

I was able to fix this locally by creating symlinks in my /usr/lib dir.

Hi, sharp does not provide prebuilt binaries that include ilmbase so I suspect you're using a global libvips compiled with OpenEXR support. You'll need to either run ldconfig or recompile sharp if there are minor/major version increments to globally-installed shared libraries upon which libvips depends.

Okay thanks!


[New game]: fall down

🎮 Game Request
You need to save player from obstacles and reach to the bottom without losing life
Point down the features
Game points will be awarded on the basis of distance travelled
Select program in which you are contributing
GSSoC23
Code of Conduct

[X] I follow CONTRIBUTING GUIDELINE of this project.

Hey @S-ishita !
Thank you for raising an issue 💗
You can self assign the issue by commenting /assign in comment 😀
Make sure you follow CODE OF CONDUCT and CONTRIBUTING GUIDELINES 🚀
Don’t Forget to ⭐ our GameZone🎮
Make sure you join our Discord🕹

Hey @S-ishita 👋!
@kunjgit here,
We have this annoucement to make 📢!!
💥 Special Announcement:
It's the Call to all the designers 🔥 🎨
As you all know that GameZone has crossed 100 games 💗 , it's time that we all come up together and make the UI even better!!
We are redesigning the thumbnails, make sure you come up with the aesthetic and cool ideas 🚀 !
You are supposed to share the 4 different templates that can be used. Make sure that the size is: 1280 px X 720 px.
The frame should be such that there is only a single image of the game that's taking up the major portion of the frame. Any kind of text should not be there.
The design should be catchy and aesthetic! 🔥
Note: You are not supposed to create any issue right now for the same.
You have to share different designs right now in Discord  and Project Admin would be selecting one design and would be assigning the issue. After that only, you have to start working on it.

Hey @S-ishita ! Thank you so much for your raising the issue💗
It’s all yours, you can come anytime again and make some contributions! 🚀
Alone, we can do little, but together we can do so much! 😇


'I2S' was not declared in this scope

Problem Description
In the bt_music_receiver_arduino_i2s example I receive this error:
'I2S' was not declared in this scope
Before, I had to change the include to #include "driver/I2S.h"
Device Description
ESP32 WROVER Kit (all version), ESP32 Arduino 3.0.0-alpha3
Sketch
#include "driver/I2S.h"
#include "BluetoothA2DPSink.h"

BluetoothA2DPSink a2dp_sink(I2S);

void setup() {
    I2S.setSckPin(14);
    I2S.setFsPin(15);
    I2S.setDataPin(22);
    if (!I2S.begin(I2S_PHILIPS_MODE, 44100, 16)) {
      Serial.println("Failed to initialize I2S!");
      while (1); // do nothing
    }

    a2dp_sink.start("MyMusic");
}

void loop() {
}

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

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

With 3.0 the Arduino API is changing as well: Please use this example


Window shows up before getting docked

Not sure if I am doing something wrong here. But I have a hosting form (set to IsMdiContainer = true) then for this form I load another form which I "wrap" in a DockContent object like this:
        private DockContent FromCtrl(Control ctrl)
        {
            var content = new DockContent();
            content.Text = ctrl.Text;
            ctrl.Dock = DockStyle.Fill;
            ctrl.Visible = true;
            var form = ctrl as Form;
            if(form != null)
            {
                form.TopLevel = false;
                form.FormBorderStyle = FormBorderStyle.None;
            }

            content.Controls.Add(ctrl);
            content.Tag = ctrl;

            return content;
        }

Now the dock content will be shown like this:
dockContent.Show(_dockPanel, WeifenLuo.WinFormsUI.Docking.DockState.DockLeft);
When I show the content like this, a window shows up for a split second and disappears before the docking window shows up in my form itself. This happens for almost all windows I add dynamically. So did i miss something here? Is it a bug in the docking framework?

What happens if you change ctrl.Visible = true; to ctrl.Visible = false;?
By setting that property to true, you explicitly trigger the window to be displayed before being docked.


Enable warnings for unsafe_op_in_unsafe_fn

This PR will remove the implicit unsafe block from unsafe functions, requiring the use of unsafe code to be explicit. This is likely to become a warning by default, and possible an error in a future rust edition.
Motivation:
None of our code fails this warning now. Let's keep it that way.

unsafe {} blocks are about discharging obligations, but unsafe fn are about defining obligations. The fact that the body of an unsafe fn is also implicitly treated like a block has made it hard to realize this duality even for experienced Rust developers. (Completing the picture, unsafe Trait also defines an obligation, that is discharged by unsafe impl. Curiously, unsafe trait does not implicitly make all bodies of default functions defined inside this trait unsafe blocks, which is somewhat inconsistent with unsafe fn when viewed through this lens.)

RFC 2585

Bump MSRV for this? I like that more than
#![allow(stable_features)]
#![feature(unsafe_block_in_unsafe_fn)]

This is stabilized in 1.52.1

Had to go up to 1.56.1 in order for cargo to support parsing 2021 edition Cargo.toml from core simd
https://github.com/rust-lang/rust/blob/master/RELEASES.md#version-1560-2021-10-21


[ISSUE #3898]fix the spell in MQClientAPIImpl

Make sure set the target branch to develop
What is the purpose of the change
#3898
Brief changelog
XX
Verifying this change
XXXX
Follow this checklist to help us incorporate your contribution quickly and easily. Notice, it would be helpful if you could finish the following 5 checklist(the last one is not necessary)before request the community to review your PR.

[x] Make sure there is a Github issue filed for the change (usually before you start working on it). Trivial changes like typos do not require a Github issue. Your pull request should address just this issue, without pulling in other changes - one PR resolves one issue.
[x] Format the pull request title like [ISSUE #123] Fix UnknownException when host config not exist. Each commit in the pull request should have a meaningful subject line and body.
[x] Write a pull request description that is detailed enough to understand what the pull request does, how, and why.
[x] Write necessary unit-test(over 80% coverage) to verify your logic correction, more mock a little better when cross module dependency exist. If the new feature or significant change is committed, please remember to add integration-test in test module.
[x] Run mvn -B clean apache-rat:check findbugs:findbugs checkstyle:checkstyle to make sure basic checks pass. Run mvn clean install -DskipITs to make sure unit-test pass. Run mvn clean test-compile failsafe:integration-test  to make sure integration-test pass.
[ ] If this contribution is large, please file an Apache Individual Contributor License Agreement.

Codecov Report

Merging #3899 (26419b9) into develop (799d412) will increase coverage by 0.02%.
The diff coverage is 0.00%.

@@              Coverage Diff              @@
##             develop    #3899      +/-   ##
=============================================
+ Coverage      47.45%   47.47%   +0.02%
- Complexity      4922     4927       +5
=============================================
  Files            633      633
  Lines          42498    42498
  Branches        5579     5579
=============================================
+ Hits           20166    20175       +9
+ Misses         19826    19812      -14
- Partials        2506     2511       +5

Impacted Files
Coverage Δ

...g/apache/rocketmq/client/impl/MQClientAPIImpl.java
13.86% <ø> (ø)

...rocketmq/client/impl/factory/MQClientInstance.java
51.28% <0.00%> (ø)

...org/apache/rocketmq/common/stats/StatsItemSet.java
44.77% <0.00%> (-5.98%)
:arrow_down:

...ava/org/apache/rocketmq/filter/util/BitsArray.java
59.82% <0.00%> (ø)

...etmq/client/latency/LatencyFaultToleranceImpl.java
50.00% <0.00%> (ø)

.../apache/rocketmq/logging/inner/LoggingBuilder.java
64.87% <0.00%> (+0.47%)
:arrow_up:

...a/org/apache/rocketmq/filter/util/BloomFilter.java
61.29% <0.00%> (+2.15%)
:arrow_up:

...ache/rocketmq/common/stats/MomentStatsItemSet.java
47.82% <0.00%> (+4.34%)
:arrow_up:

...va/org/apache/rocketmq/common/stats/StatsItem.java
55.00% <0.00%> (+5.00%)
:arrow_up:

.../apache/rocketmq/common/stats/MomentStatsItem.java
47.61% <0.00%> (+9.52%)
:arrow_up:

... and 1 more

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 799d412...26419b9. Read the comment docs.

Coverage increased (+0.06%) to 51.579% when pulling 26419b9f06049632ab18d65017df357886e11456 on zhangjidi2016:fix_spell into 799d4125bdcfcf223aa3c8e954866d657abf90c2 on apache:develop.