Jbaker/readiness

Alaska Airlines Pull Request
Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context. List any dependencies that are required for this change.
Fixes: #31
Summary:
Checks for peer depencdency readiness. When ready, performs actions that should wait until then to be executed (setting value in auro-menu) and alerts it's own readiness.
Type of change:
Please delete options that are not relevant.

[x] New capability
[ ] Revision of an existing capability
[ ] Infrastructure change (automation, etc.)
[ ] Other (please elaborate)

Checklist:

[x] My update follows the CONTRIBUTING guidelines of this project
[x] I have performed a self-review of my own update

By submitting this Pull Request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
Pull Requests will be evaluated by their quality of update and whether it is consistent with the goals and values of this project. Any submission is to be considered a conversation between the submitter and the maintainers of this project and may require changes to your submission.
Thank you for your submission!
-- Auro Design System Team

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Exposing the hyper-parameters of the optimzation

It looks like there are a bunch of hyperparameters in the original work that could be tweaked.
For instance beta parameter (Eq.2 of https://arxiv.org/pdf/1909.08593.pdf).
Would be nice to have an easy way to set/change such parameters.

Hi! You can actually control these parameters. Later in the paper they also talk about dynamically adjusting beta. You can control this through the keyword arguments "adap_kl_ctrl" and "init_kl_coef" when initialising the PPOTrainer. You can also adjust the target KL-divergence through "target" and the windowing through "horizon" as well as all the PPO parameters.


My character's limbs seem to be tearing my character's clothes ?

My character's feet are visible through the shoe of my character that I exported from the blender to the godot.
os: manjaro
blender : 2.92
blender image:

godot image:

My blender, godot files and the files I exported as glb are also on the link.
https://disk.yandex.com.tr/d/sVIzHRJXbbFGkQ
Thank you very much for your attention.

I have tried all of the links below but I am having the same problem.
Godot
https://gltf-viewer.donmccurdy.com/
https://sandbox.babylonjs.com/
https://github.khronos.org/glTF-Sample-Viewer-Release/

This model is using a Mask Modifier to hide the legs below the shoes. Most modifiers cannot be exported from Blender to other software, so you have two choices here:

Re-model the boots so that they fully cover the character's legs.
Enable "Geometry -> Apply Modifiers" during export to bake that modifier, completely removing the vertices that the modifier currently hides.

@donmccurdy  First of all, thank you very much for your help.I solved my problem as follows.I combined the pieces thanks to the makehuman addons.


make sure CWT tests vs precomupted coeffs are sensitive to the phase

This tweaks the tests comparing the CWT coefficients to ones from Matlab to make sure they are sensitive to the phase.
In looking into #439, I found that the current tests were passing whether or not I conjugated the wavelet coefficients.  With the change in this PR, the tests pass with the current cwt implementation, but fail if I change the cwt to use the conjugate the mother wavelet as suggested in #439.

Codecov Report

Merging #440 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #440   +/-   ##
=======================================
  Coverage   80.79%   80.79%
=======================================
  Files          23       23
  Lines        3941     3941
  Branches      458      458
=======================================
  Hits         3184     3184
  Misses        681      681
  Partials       76       76

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 7fdf5d1...24c4763. Read the comment docs.

This change was discussed in #439.  The CWT tests can then be updated in #440 to reflect the new conjugation of the coefficients discussed there.


undefined local variable or method `streams'

I'm attempting to test the stream in ActionCable with RSpec.  I have the stream working all the way up to the front end but would like a solid test for the streams.  Below is an example of what I'm attempting to do:
require 'rails_helper'
RSpec.describe NotificationsChannel, type: :channel do
  it 'successfully subscribes and streams message' do
    user = create(:user)
    stub_connection current_user: user
    subscribe
    key = "my:redis:key"
    $redis.publish(key, 'true')
    expect(subscription).to be_confirmed
    expect(subscription).to have_stream_from key
    expect(streams).to include('true')
  end
end

receiving this error
NameError:
       undefined local variable or method `streams' for...

I have followed all the documentation of adding the action-cable-testing gem and its necessary require statement in rails_helper.rb
using Rails <IP_ADDRESS>

using Rails <IP_ADDRESS>

Then you're using Rails' built-in Action Cable testing tools under the hood.
streams method has been deprecated and wasn't included into Rails version.
Use have_stream matcher instead.

thanks for your response.  I'm actually using rspec for the testing
➜ rspec -v
RSpec 3.9
  - rspec-core 3.9.1
  - rspec-expectations 3.9.1
  - rspec-mocks 3.9.1
  - rspec-rails 4.0.0
  - rspec-support 3.9.2

But maybe because I'm using Rails 6 it won't work?
I attempted using have_stream(msg) but that is not working either.  Guess I'll do some more digging

I'm actually using rspec for the testing

RSpec wraps the API provided by Rails (https://github.com/palkan/action-cable-testing/blob/f1a0b236e3d94a1a4981fda136625ede6a52a307/lib/rspec/rails/example/channel_example_group.rb#L25) and defines some additional helpers (https://github.com/palkan/action-cable-testing/blob/f1a0b236e3d94a1a4981fda136625ede6a52a307/lib/rspec/rails/example/channel_example_group.rb#L42-L62).

unfortunately that does not allow me to test the modified data from redis that is then being sent to the consumer, that really only verifies the key it's listening to but not the data object being sent.
expect(streams).to include(the_object_being_sent_to_consumer) would be ideal

You should use have_broadcasted_to matcher for that.


Origin/default manifest

Completed Ian's work to use only the ManifestWork flow.

Do not do a zero size check, as there may be an override involved in ManifestWork (I put a todo for @philipwu08 for an RFE from SD)
Also removed a check in the delete, now instead of seeing if manifestWork is set, it only SKIPS if INFRAONLY is set for the override.
Cleaned up some code that wrote a pull-secret for Azure.

@philipwu08 @zhujian7 Can you take a look. I took Ian's branch and completed the work to use only the ManifestWork flow.

/lgtm


feat: Add workflow to scan nim malware

This workflow clones the nimalicious github repository and builds it. It then scans it with Windows Defender and sends it to VirusTotal. Basically the same as scan.yml but with the nimalicious building steps on top.
It's alright if the binaries are all contained in a single archive since VirusTotal extracts the archive and scans each file individually, thus we can still see what viruses get detected by who.
Edit: Implements #11

CI is red.

I suppose CI failures are caused by lacking authentication credentials


Find alternative to google finance

Google finance stopped working for automated calls. Find an alternative online API. It should get daily closing prices for stocks and ETFs on different exchanges, for at least 1 year.

Maybe https://iextrading.com/developer/


Route and Waypoint Navigation

Backlog item - https://app.asana.com/0/23019535413944/23192032216659


Support function for text style text

Support function(feature) to get the text of a text style.
(see https://github.com/openlayers/openlayers/issues/13685)

Implementation decisions based on maximum downwards compatibility:

no textFunction_ field in Text, this would break equality of cloned Texts (e.g. Graticule test)
Immediate: still works, if only setStyle and drawGeometry are called, as long as text is not defined by a function (e.g. immediate-pixel-ratio rendering test)

Cool，it's more convenient than getText().setText() for me.
It would be better to have an example, otherwise I can only find its usage from tests.

Anyone want to review and merge this?

Type annotations for the textFunction_ property should be added, and conflicts need to be resolved. Thanks for your work on this, @cns-solutions-admin

As we have decided to use maplibre (for now), I didn't care about the PR any more.
I have now updated the code, but I will probably not have time to merge it to the current main branch.


Updating first-chunk-stream

Fixes https://github.com/sindresorhus/strip-bom-stream/issues/1

:+1: Thank you :)


Show as closed

Following on from #4291 (which is included here), this adds a danger zone to the top of the project page, which is still accessible to owners and admins.

Another one, @mattbk et al.

I'm good to go here if you're good with 0d2deb66d7f6f53de07355d235115f2db68a3c62, @nobodxbodon. 👍

!m @whit537 I'm good with 0d2deb6

This is replacing #4291?
Where does the balance go if you close?

Where does the balance go if you close?

Oh, I see. It just hangs out in the database, but the account is closed. I guess we're assuming that this isn't likely to be a problem, because people will either want their money before closing or it will be small amounts. It should be easy enough to look up how much "abandoned" money there is in closed accounts in the future.
I'm satisfied with this. Pushing the button.

@mattbk Participants can't close their account with a balance outstanding, but #4291 allows admins to do so, which is necessary for https://github.com/gratipay/gratipay.com/issues/3602#issuecomment-272322002.


plugins for clients

Hi
great work.
how to make plugins to create our own tasks?
a task can be a persistent connection  ?
best

@tecbea
Thanks for your interests in Parallec

how to make plugins to create our own tasks?

Currently Parallec supports HTTP/TCP/SSH/Ping as the tasks; adding a generic task is possible; however the interface from the builder needs to be defined to pass into the task needed input parameters. This needs some work.
May I ask what is your specific needs? For HTTP you may overwrite and construct and use your own AsynHttpClient http://www.parallec.io/docs/submit-task/#apis-on-http
setAsyncHttpClient()	Optional	Embed fast one from the store	You may overwrite the client to your customized one for each task. The default one is the embed fast one from HttpClientStore.

a task can be a persistent connection ?

Yes. I believe the HTTP 1.1 is by default keep-alive.
Adding the response headers printing to the http worker and run this test:  #24
https://github.com/eBay/parallec/blob/master/src/test/java/io/parallec/core/main/http/request/template/ParallelClientVarReplacementHostSpecificTest.java#L135
            //TODO
            System.err.println("PRINT headers:");
            logger.info("response headers:");
            for (Map.Entry<String, List<String>> entry : headers.entrySet()) {
                logger.info(" - {} = {}", entry.getKey(), entry.getValue());
            }
            logger.info("content type '%s'", response.getContentType());

We can find it is by default using keep alive.  And you can check more options with Async Http Client by loading your own Async Http Client or change request headers to customize.
Please Let me know if this answers your question. We are very glad to assist with your needs.
Thanks
09:08:30.292 [AsyncHttpClient-Callback] INFO  i.p.c.a.HttpWorker - response headers:
09:08:30.292 [AsyncHttpClient-Callback] INFO  i.p.c.a.HttpWorker -  - X-Cache-Hits = [0]
09:08:30.292 [AsyncHttpClient-Callback] INFO  i.p.c.a.HttpWorker -  - X-Cache-Hits = [0]
09:08:30.292 [AsyncHttpClient-Callback] INFO  i.p.c.a.HttpWorker -  - Age = [0]
09:08:30.292 [AsyncHttpClient-Callback] INFO  i.p.c.a.HttpWorker -  - Age = [0]
09:08:30.292 [AsyncHttpClient-Callback] INFO  i.p.c.a.HttpWorker -  - X-Fastly-Request-ID = [f96e9d28a95e6f1bb08e4c6af54b20549c7bc37d]
09:08:30.292 [AsyncHttpClient-Callback] INFO  i.p.c.a.HttpWorker -  - X-Fastly-Request-ID = [4042d3221ef328d988e73b63b9d49c4aad36b0c1]
09:08:30.292 [AsyncHttpClient-Callback] INFO  i.p.c.a.HttpWorker -  - Content-Length = [2]
09:08:30.292 [AsyncHttpClient-Callback] INFO  i.p.c.a.HttpWorker -  - Content-Length = [2]
09:08:30.292 [AsyncHttpClient-Callback] INFO  i.p.c.a.HttpWorker -  - Expires = [Wed, 16 Dec 2015 17:18:30 GMT]
09:08:30.292 [AsyncHttpClient-Callback] INFO  i.p.c.a.HttpWorker -  - Expires = [Wed, 16 Dec 2015 17:18:30 GMT]
09:08:30.292 [AsyncHttpClient-Callback] INFO  i.p.c.a.HttpWorker -  - X-Served-By = [cache-lax1421-LAX]
09:08:30.292 [AsyncHttpClient-Callback] INFO  i.p.c.a.HttpWorker -  - X-Served-By = [cache-lax1430-LAX]
09:08:30.292 [AsyncHttpClient-Callback] INFO  i.p.c.a.HttpWorker -  - Last-Modified = [Wed, 02 Dec 2015 19:12:23 GMT]
09:08:30.292 [AsyncHttpClient-Callback] INFO  i.p.c.a.HttpWorker -  - Last-Modified = [Wed, 02 Dec 2015 19:12:23 GMT]
09:08:30.293 [AsyncHttpClient-Callback] INFO  i.p.c.a.HttpWorker -  - Connection = [keep-alive]
09:08:30.293 [AsyncHttpClient-Callback] INFO  i.p.c.a.HttpWorker -  - Connection = [keep-alive]
09:08:30.293 [AsyncHttpClient-Callback] INFO  i.p.c.a.HttpWorker -  - Server = [GitHub.com]
09:08:30.293 [AsyncHttpClient-Callback] INFO  i.p.c.a.HttpWorker -  - Server = [GitHub.com]
09:08:30.293 [AsyncHttpClient-Callback] INFO  i.p.c.a.HttpWorker -  - X-Cache = [MISS]
09:08:30.293 [AsyncHttpClient-Callback] INFO  i.p.c.a.HttpWorker -  - X-Cache = [MISS]
09:08:30.293 [AsyncHttpClient-Callback] INFO  i.p.c.a.HttpWorker -  - X-GitHub-Request-Id = [C71B4F21:448E:110CD362:56719A8D]
09:08:30.293 [AsyncHttpClient-Callback] INFO  i.p.c.a.HttpWorker -  - X-GitHub-Request-Id = [C71B4F1C:448E:110CD372:56719A8D]
09:08:30.293 [AsyncHttpClient-Callback] INFO  i.p.c.a.HttpWorker -  - Cache-Control = [max-age=600]
09:08:30.293 [AsyncHttpClient-Callback] INFO  i.p.c.a.HttpWorker -  - Cache-Control = [max-age=600]
09:08:30.293 [AsyncHttpClient-Callback] INFO  i.p.c.a.HttpWorker -  - Date = [Wed, 16 Dec 2015 17:08:30 GMT]
09:08:30.293 [AsyncHttpClient-Callback] INFO  i.p.c.a.HttpWorker -  - Date = [Wed, 16 Dec 2015 17:08:30 GMT]
09:08:30.293 [AsyncHttpClient-Callback] INFO  i.p.c.a.HttpWorker -  - Vary = [Accept-Encoding]
09:08:30.293 [AsyncHttpClient-Callback] INFO  i.p.c.a.HttpWorker -  - Vary = [Accept-Encoding]
09:08:30.293 [AsyncHttpClient-Callback] INFO  i.p.c.a.HttpWorker -  - Access-Control-Allow-Origin = [*]
09:08:30.293 [AsyncHttpClient-Callback] INFO  i.p.c.a.HttpWorker -  - Access-Control-Allow-Origin = [*]
09:08:30.293 [AsyncHttpClient-Callback] INFO  i.p.c.a.HttpWorker -  - Via = [1.1 varnish]
09:08:30.293 [AsyncHttpClient-Callback] INFO  i.p.c.a.HttpWorker -  - Via = [1.1 varnish]
09:08:30.293 [AsyncHttpClient-Callback] INFO  i.p.c.a.HttpWorker -  - Accept-Ranges = [bytes]
PRINT HEaders!!
09:08:30.293 [AsyncHttpClient-Callback] INFO  i.p.c.a.HttpWorker -  - Accept-Ranges = [bytes]
09:08:30.293 [AsyncHttpClient-Callback] INFO  i.p.c.a.HttpWorker -  - Content-Type = [text/plain; charset=utf-8]
09:08:30.293 [AsyncHttpClient-Callback] INFO  i.p.c.a.HttpWorker -  - Content-Type = [text/plain; charset=utf-8]
09:08:30.293 [AsyncHttpClient-Callback] INFO  i.p.c.a.HttpWorker -  - X-Timer = [S1450285710.222828,VS0,VE80]
09:08:30.293 [AsyncHttpClient-Callback] INFO  i.p.c.a.HttpWorker -  - X-Timer = [S1450285710.219623,VS0,VE80]
09:08:30.293 [AsyncHttpClient-Callback] INFO  i.p.c.a.HttpWorker - content type '%s'
09:08:30.294 [AsyncHttpClient-Callback] INFO  i.p.c.a.HttpWorker - content type '%s'
09:08:30.298 [ParallecActorSystem-akka.actor.default-dispatcher-6] INFO  i.p.c.a.ExecutionManager -
[1]__RESP_RECV_IN_MGR 1 (+1) / 2 (50.000%)  AFT 0.243 S @ API_1 @ 2<IP_ADDRESS>.08.30.296-0800 , TaskID : 8f3255c7-756 , CODE: 200 OK, RESP_BRIEF: 63
09:08:30.298 [ParallecActorSystem-akka.actor.default-dispatcher-6] INFO  i.p.c.TestBase -
!!Temperature: 63 TargetHost: API_1
09:08:30.299 [ParallecActorSystem-akka.actor.default-dispatcher-6] INFO  i.p.c.a.ExecutionManager -
[2]__RESP_RECV_IN_MGR 2 (+0) / 2 (100.00%)  AFT 0.246 S @ API_0 @ 2<IP_ADDRESS>.08.30.299-0800 , TaskID : 8f3255c7-756 , CODE: 200 OK, RESP_BRIEF: 74
09:08:30.299 [ParallecActorSystem-akka.actor.default-dispatcher-6] INFO  i.p.c.TestBase -
!!Temperature: 74 TargetHost: API_0

BTW, looks like AHC's implementation is using ConnectionsPool to reuse connection
https://asynchttpclient.github.io/async-http-client/apidocs/com/ning/http/client/ConnectionsPool.html

Hope this helps. Looks like there is no further discussion on this. Close it now.  Feel free to reopen it if necessary.


Persona 4 Golden [PCSE00120]

Game summary
Game name: Persona 4 Golden
Game serial:  PCSE00120
Vita3K summary

Version: v<IP_ADDRESS>20
Build number: a4ded14b
CPU backend: Dynarmic
GPU backend: Vulkan

Test environment summary

Tested by: me
Hardware: Steam Deck
OS: KDE Plasma, Kernel Version 5.13.0-valve36-1-neptune (64bit)
APU: AMD Custom 0405
RAM: 16 GB

Issues
Crashes after the first cutscene in the beginning of game.
Recommended labels

Crash
Intro

it is playable

it is playable

no, because it crashes everytime

it is playable

no, because it crashes everytime

maybe ur game issue, not compat issue. i used nonpdrm, it is okay, no any problem.

it is playable

no, because it crashes everytime

maybe ur game issue, not compat issue. i used nonpdrm, it is okay, no any problem.

same game PCSE00120? on steam deck

it is playable

no, because it crashes everytime

maybe ur game issue, not compat issue. i used nonpdrm, it is okay, no any problem.

same game PCSE00120? on steam deck

I no have steam deck, but i tested this game same as windows/android.

and ur issue is duplicate issue, look this https://github.com/Vita3K/compatibility/issues/155

and ur issue is duplicate issue, look this #155

wouldnt say its the same, I can passed the intro and I can start a new game


Producer Batch Size Param

This is another thought when thinking about the compression max message size issue in #480.
Right now the producer empties the entire queue when producing messages. It i think this should be a configuration variable: producer_batch_size.
Is my reading of the code correct?
https://github.com/Parsely/pykafka/blob/master/pykafka/producer.py#L543

@jofusa Looks like your reading of this code is correct. The official producer does support a batch.size configuration variable, so I think it makes sense to support it here as well.
That said, it is already possible to affect the size of batches with the min_queued_messages kwarg on Producer. Maybe you can verify whether or not adjustments to that argument can fix your use case?

ah thanks for the clarification, just saw that param as well. I will adjust this. The newer version of the java client now batches on message size. I state this from kafka user group email:

Hello,
Did you have compression turned on and batching (in terms of #.messages)?
In that case the whole compressed message set is treated as a single
message on the broker and hence could possibly exceed the limit.
In newer versions we have changed the batching criterion from #.messages to
bytes, which is aimed at resolving such issues.
Guozhang

I have yet to find the actual commit, but the idea of setting a max message size that is controlled by the client still strikes me as a good idea.

from the kafka 0.9.0 docs:
max.request.size	The maximum size of a request. This is also effectively a cap on the maximum record size. Note that the server has its own cap on record size which may be different from this. This setting will limit the number of record batches the producer will send in a single request to avoid sending huge requests.	int	1048576

My main worry is that batch sizing code could stand to complicate the producer significantly. If there is a way to make it work by adjusting min_queued_messages, I'd strongly prefer to recommend that solution to users rather than add more keyword arguments. If there really is a problem that can only be solved by adding this argument, that's a different situation. However, it's not yet clear to me that that's the case.
Note that there are a lot of configurations supported by the official JVM consumer and producer that pykafka doesn't support due to differences in its internal design. We've never been worried about strict configuration parity with these tools. Our primary concern is that the API remains pythonic and easy to use.

agreed on all points. mirroring the java api directly is not advisable. (but looking to how they deal with similar problems is a good idea)
min_queued_messages is exactly what i was looking for. I would only suggest a doc change to call attention that is param can be used to control producer batch size

pr in.
I had a separate thought about the sync producer. Shouldn't the min_queued_messages always be 1 for a sync producer?

@jofusa You're right, a producer with sync=True should always have min_queued_messages=1


build: graphql x16 update

graphql update to version 16.x

#37

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


[CSL-56] Node requests non-existing block

@gromak

@gromak
Apparently I have fixed all bugs which caused this error.


[SMALLFIX] Fix exception handling in Format.java

Previously an IllegalArgumentException thrown by format would result in an incorrect message. This would happen if the UFS type is unrecognized

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/14504/
Test PASSed.


Always composite PhysicalModels

Description
Currently, we only composite Physical layers for Fuchsia.  This PR will enable compositing them on all platforms, which in turn will enable us to validate whether layers are being painted in the correct order or potentially paint with respect to elevation instead of the given painting order.
This PR should not land until flutter/engine#8044 has landed, which resolves an issue that would result in clipping shadows in this PR.
I'm not entirely sure how to test this - I don't believe the old fork in the logic was tested.
Related Issues
Fixes https://github.com/flutter/flutter/issues/27891
Helps  #25673, #25226
Depends on flutter/engine#8044
Checklist
Before you create this PR confirm that it meets all requirements listed below by checking the relevant checkboxes ([x]). This will ensure a smooth and quick review process.

[x] I read the Contributor Guide and followed the process outlined there for submitting PRs.
[x] My PR includes tests for all changed/updated/fixed behaviors (See Test Coverage).
[x] All existing and new tests are passing.
[x] I updated/added relevant documentation (doc comments with ///).
[x] The analyzer (flutter analyze --flutter-repo) does not report any problems on my PR.
[x] I read and followed the Flutter Style Guide, including Features we expect every widget to implement.
[x] I signed the CLA.
[x] I am willing to follow-up on review comments in a timely manner.

Breaking Change
Does your PR require Flutter developers to manually update their apps to accommodate your change?

[x] Yes, this is a breaking change (Please read Handling breaking changes).
This PR will make it so that canvas operations we used to test for regarding shadows will no longer happen in the framework visible canvas - instead, changes will be found in the layer tree, and the engine side will do the canvas work.
[ ] No, this is not a breaking change.

As written right now, this is a breaking change.  We'd no longer be calling canvas.drawShadow or clip*AndPaint, and we have tests that check a mock canvas for alls to these methods.  The tests would have to be updated to check the layer tree instead, unless we were to make this opt in.  I'm doing some performance investigation before trying to decide if this makes sense to have as opt in or not.

This substantially improves Android benchmarks for gallery transitions perf, and slightly worsens them on iOS.
Android before and after on an S8:
"missed_transition_count": 0,
"average_frame_build_time_millis": 4.234034730538926 -> 2.987873549883989,
"90th_percentile_frame_build_time_millis": 8.53 -> 6.548,
"99th_percentile_frame_build_time_millis": 43.757 -> 25.773,
"worst_frame_build_time_millis": 92.395 -> 44.947,
"missed_frame_build_budget_count": 47 -> 24,
"average_frame_rasterizer_time_millis": 6.817477326968965 -> 5.187597687861268,
"90th_percentile_frame_rasterizer_time_millis":  11.591 -> 7.675,
"99th_percentile_frame_rasterizer_time_millis": 22.694 -> 22.034,
"worst_frame_rasterizer_time_millis": 54.306 -> 50.733,
"missed_frame_rasterizer_budget_count": 32 -> 15,
"frame_count": 835 -> 862,

iOS before and after on an iPhone8+:
"missed_transition_count": 0 -> 0,
"average_frame_build_time_millis": 2.2832895277207355 -> 2.2099660493827167,
"90th_percentile_frame_build_time_millis":  3.779 -> 3.409,
"99th_percentile_frame_build_time_millis": 18.826 -> 18.897,
"worst_frame_build_time_millis": 57.393 -> 68.221,
"missed_frame_build_budget_count": 21 -> 21,
"average_frame_rasterizer_time_millis": 8.000753073770491 -> 6.932594871794868,
"90th_percentile_frame_rasterizer_time_millis": 16.571 -> 16.506,
"99th_percentile_frame_rasterizer_time_millis": 18.949 -> 17.271,
"worst_frame_rasterizer_time_millis": 54.931 -> 54.433,
"missed_frame_rasterizer_budget_count": 302 -> 272,
"frame_count":  974 -> 972,

I'm curious as to why there'd be such a difference between Android and iOS on this, but the improvement on Android is substantial.

Adding @HansMuller since this required reworking tests for Material.  This shouldn't actually be changing any behavior - although I was a bit puzzled by why OutlineButton sometimes seems to have two Materials in the mix.

I'm looking into the golden failures.

This results in nearly imperceptible changes to goldens.  I've updated them as part of this PR.

There's some chance the goldens got messed up because this is actually missing an engine roll that it had earlier - https://github.com/flutter/engine/pull/8044 had been rolled in and then was part of a revert that is not being rolled back.  I may end up having to revert the goldens or updating them again when that lands, but this PR should not land without that one (that one fixes incorrect clipping issues in Flow's shadow logic).

I did another test on an iPhone 6, which is closer to what the devicelab uses if not exactly:
"missed_transition_count": 0 -> 0,
"average_frame_build_time_millis": 1.6932270833333336 -> 1.9984098018769552,
"90th_percentile_frame_build_time_millis": 2.866 -> 3.214,
"99th_percentile_frame_build_time_millis": 11.404 -> 16.865,
"worst_frame_build_time_millis": 49.945 -> 50.881,
"missed_frame_build_budget_count": 5 -> 12,
"average_frame_rasterizer_time_millis": 10.122177570093447 -> 7.59421413721414,
"90th_percentile_frame_rasterizer_time_millis": 16.735 -> 16.662,
"99th_percentile_frame_rasterizer_time_millis": 22.189 -> 22.699,
"worst_frame_rasterizer_time_millis": 118.773 -> 116.67,
"missed_frame_rasterizer_budget_count": 439 -> 288,
"frame_count": 960 -> 959,

It looks like the numbers go slightly up, but are still under our goals.  That said, these numbers are still a little lower than devicelab so it may be on a less powerful 6 or 5 or something.

Tree isn't actually red, landing this.

omplex_layout_ios__start_up timeToFirstFrameMicros also may have regressed, although that one has been noisy.

Actually, I strongly suspect the regression on the rasterizer is expected.  Rasterizer average time went up by ~.5ms, but frame build time went down by ~.5 ms.  If I'm understanding correctly, this is because we moved some work from the framework to the engine.

Calling canvas.drawXXX in the UI thread before this PR or in the GPU thread after this PR shouldn't be too much a difference. In the end, everything goes to the GPU thread for SkCanvas::flush where the final costly rendering happens.
I suspect that this PR changes how the layer tree looks like and that affects our raster caching. For example, before this PR, the PhysicalShapeLayer is painted on the UI thread so everything is recorded in an SkPicture which is ready for raster cache. After this PR, it's no longer recorded in an SkPicture so no raster cache is done. It explains why the average raster time changes more than other metrics (e.g., 90th percentile).
I wouldn't worry about the 0.5ms regression here if this PR fixes some critical correctness issues.
Finally, I'm more curious why the MotoG4/iPhone6S in our device lab gave us very different performance changes than the Galaxy S8 and iPhone8+ as described in this PR. Maybe the older devices need more raster cache to be performant? It would be nice to confirm that in local tests with MotoG4.
To test whether it's the raster cache that's causing a difference, one can let IsPictureWorthRasterizing always return false.

@liyuqian can you help me look into that regression tomorrow?

Sure, I'm happy to help any time.


Fix resetting logfile w/o releasing handler and late ensuring of data dir existence

Fixing this issue by incorporating src/data existence check and reset_log into setup_logger(..., reset=False).

Approved, thanks for contribution.


Fixed first button same background color as tab bar on vertical tool bar

Fixed first button same background color as tab bar on vertical tool bar with new item aligned to the end feature. This was part of the recently released version of Tool Bar package.

Before
After

I'm sorry… I don't follow. What was the bug? Painting the first tool-bar item was intentional. It's the same concept behind the tree-view blending with the tab bar.

Oh I'm sorry, I should elaborated more about this. Yeah, your feature about painting the first tool-bar item is still there, but with a new tool-bar feature the painting won't work anymore. The new tool-bar feature is to add the possibility to align buttons (and spacers) to the end of the tool-bar (see https://github.com/suda/tool-bar/pull/110). However, if someone adds the first button to the tool-bar and gives it an priority of -50 for example, that button will be moved to the end of the tool-bar. This PR restores your feature of painting the first button that's not aligned at the end to the tool-bar.

Aaa… I get it now. Thanks! I'll merge this :smile:


Fix classwise computation in IoU metric

What does this PR do?
Fixes #1921
Became a larger refactor of this set of metric than first intended:

Some of the logic needed to be reworked to fix the issue
Move all testing to a single file because the metrics are so similar

Before submitting

[ ] Was this discussed/agreed via a Github issue? (no need for typos and docs improvements)
[ ] Did you read the contributor guideline, Pull Request section?
[ ] Did you make sure to update the docs?
[ ] Did you write any new necessary tests?

PR review
Anyone in the community is free to review the PR once the tests have passed.
If we didn't discuss your PR in Github issues there's a high chance it will not be merged.

Did you have fun?
Make sure you had fun coding 🙃

:books: Documentation preview :books:: https://torchmetrics--1924.org.readthedocs.build/en/1924/

@SkafteNicki how is it going here? :rabbit:

@SkafteNicki seems we would need to find around for the oldest PyTorch:
ImportError: cannot import name 'complete_box_iou' from 'torchvision.ops'
Do you know from which version this function is present?


Kube-shell for Windows is not passing input text to kubectl

When I type a simple "get pods" command inside kube-shell, it says:
'get' is not recognized as an internal or external command, operable program or batch file.
which is the same error you'd get if you just typed "get pods" in a regular DOS prompt.
The rest of the kube-shell seems to be working (see pic), but the interactive commands are not being sent thru kubectl, they seem to be running directly in DOS.

Nevermind, I see that you still need to prefix the commands with "kubectl"!  I thought this tool made type "kubectl" obsolete...


[Feature Request] Proxy

Can't use invidious without a proxy all public instances are blocked for me. Unless I host my own invidious instances I can use this app.
Can proxy be added via flag or config option? I specifically need socks5 proxy if that matters.

I'll see what I can do, thanks

ahh i'll take a look, opening it back for now, should have tested more sorry

actually it does work through a proxy, mpv start

Yeah it starts after several minutes #40 (comment)
Could be part of this mpv-player/mpv#3373 😔
Without a proxy YouTube is throttled to the oblivion for me.

can you actually stream youtube video through a invidious instance on your browser ? unfortunately i don't think i can do much here


New Tractus-X project contributor

Before requesting the project contributor role, please make sure, that you:

Make yourself familiar with the Eclipse Foundation project roles: https://eclipse-tractusx.github.io/docs/oss/contributor-committer
Make ourselves familiar with prerequisites, like a signed ECA: https://eclipse-tractusx.github.io/docs/oss/getting-started
Check the committer list of our project and highlight at least one of them on this issue, since every committer
can add project contributors: https://projects.eclipse.org/projects/automotive.tractusx/who

Necessary Information
Email address to add<EMAIL_ADDRESS>Committers, that could take over: @grand-Thibault
Please make sure, that you accept the invitation you receive from GitHub, after you have been added as project contributor.

Hi @MWADCM,
@Grand-Thibault have not the committer permissions to our project, so i will overtake here.
I added you with<EMAIL_ADDRESS>to our project.

Please make sure, that you accept the invitation you receive from GitHub, after you have been added as project contributor.

If you can see the GitHub Tractus-X Organisation Logo under you personal GitHub profile the process should be successful.
Please verify and close the issue afterwards.

done


Option for newlines after each progress update

Output of restic version
restic 0.9.6 compiled with go1.13.4 on linux/amd64
What should restic do differently? Which functionality do you think we should add?
I would like the ability to print a newline at each progress log update.
What are you trying to do?
I'm running restic in Kubernetes, where I'm using the native methods for reading the logs (kubectl logs <restic pod>). Unfortunately in Kubernetes a log line is only presented when the line is terminated with a newline. That means that when I run any restic command, and progress output is continually printed, I cannot see it. I only see the final progress line written.
I ran a prune to clean out some cruft from my backup repository, and I even ran it in verbose mode, but I couldn't see anything but the 3 first lines of log for a while:
created new cache in /root/.cache/restic
counting files in repo
building new index for repo

I waited and waited, and was concerned if anything was actually happening, until ~49 hours later I finally got the next log line:
[48:58:16] 100.00%  581951/581951 packs

It's pretty clear to me that restic has continually printed progress log, but as there never was a newline, I just couldn't see it until it was done.
I haven't tried yet, as I'm still waiting for the prune to finish, but I suspect that the --json parameter would actually give me the progress report in separate lines, but it would also be very nice to have a non-json "print newline for each progress update" mode.
I haven't tried, but I suspect that the same behaviour would happen for plain Docker without Kubernetes.
Bonus request: If this log output method could be controlled via an Environment Variable, it would be even easier to handle in my setup.
Did restic help you today? Did it make you happy in any way?
Yes, restic seems to be a brilliant backup solution, and fits my usecase very well.

Is restic doing something that is unconventional in how it outputs its progress?
If not, wouldn't it be better if Kubernetes is fixed to handle this type of (from what I can tell common) progress bar? I have a hard time thinking we should add a switch to work around a problem in Kubernetes. I mean, adding a flag just to control one little character in the output seems pretty crufty/dirty to me.
At the very least, let's see if the --json output works for you, if you don't mind.

Well, it's not exactly "unconventional"... Plenty of CLI tools does it, however it sort of goes against the 12-factor application guidelines, which specified "one event per line". It also makes it impossible to collect that kind of log in a unified log collection system like EFK/ELK.
I will definitely be testing out the --json option once my prune finishes.

The prune finally finished, so I tried running it again with --json, and the behaviour of command didn't change at all. It's still printing non-json log messages, and progress messages are still overwriting the same line, with no newlines.
So any kind of progress reporting doesn't work in all docker environments. You can only get the progress if you run the commands interactively.

That's odd, and something that should be investigated (why prune --jsondoesn't output JSON). Perhaps it's simply not implemented (the help text for the global flag --json says "for commands that support it").
We'll have to think about the other thing, implementing a flag to control a single character in the output seems rather ugly to me.

Yep, the prune command does not yet support JSON output.
@FrederikNS You could try to run restic as follows: restic prune | tr '\r' '\n'. You would probably also want to set the environment variable RESTIC_PROGRESS_FPS=1.
Would #2436 or one of the suggestions in #1455 solve your problem?

@FrederikNS You could try to run restic as follows: restic prune | tr '\r' '\n'. You would probably also want to set the environment variable RESTIC_PROGRESS_FPS=1.

I didn't at all consider simply replacing the carriage returns with newlines... I'll give that a try. But yes that should be exactly what I want.

Would #2436 or one of the suggestions in #1455 solve your problem?

#2436 is a very vague description of what I want, but @whereisaaron's first suggestion in #1455 is exactly what I'm requesting. The switching on whether stdin is a tty is also how many other Unix tools handle this, and would make the usage much simpler in docker.

Quick follow-up question, can the RESTIC_PROGRESS_FPS be set to values below 1?
For my prune, a log line every second is probably overkill, my prune takes about 4 days to complete, which would result in around 345,600 lines of log. Something like every 10 seconds would be more than sufficient. Can I simply set the value to 0.1?

Sorry for the late reply. RESTIC_PROGRESS_FPS is currently interpreted as an integer so you can't go below one refresh every second. You could try to pipe the output of restic through uniq - to remove a few duplicates. Besides that the only option is to patch the progress bar yourself: https://github.com/restic/restic/blob/070d43e2902dd4bd45dc0c1d73de785d7aacf27f/internal/restic/progress.go#L27
You could replace that with minTickerTime = 1000*time.Second / time.Duration(fps) and remove the if fps > 60 above.

restic actually wasn't printing '\r' instead of '\n' but rather nothing at all except the final status update. #3058 (accidentally) changed this such that the current master branch now prints progress updates, which are already separated by newlines. I can't make any promises yet on whether that behavior change will stick or not.

I'm adding here a slightly changed version of my comments in PR #3112.
The current behaviour (only one line printed at the end) looks a lot more sensible to me. --quiet disables it but it also silences other output that one may generally want in a log file so it’s not a good solution. Interim updates are something that is necessary when using a software interactively (because they show that the software is still working as expected and allow the user to roughly estimate how much work is left to do) but are useless when one is just interested in receiving a final status report (say an email, that’s my case) or is logging information to eventually be able to check it later.
In that case a user may very well want to have the most output possible (increasing verbosity) but 900 almost identical lines, one per second on a simple 15 minutes run, don’t tell anything useful and only drown relevant information in a sea of noise.
As far as I know this is the behaviour of most software who has progress bars, I may be wrong but I can’t remember seeing interim updates in non-interactive usage.
What I care about in this case is not disk space, it's attention, which is a quite more valuable commodity: since every task with a progress bar outputs a part of those 900 lines what you get is a lot of almost identical lines interspersed with the few lines you were actually interested in, and what would have been a short email visible in its entirety even on a smartphone display and checked in a couple seconds becomes a long email that must be browsed carefully.
Multiply that for N clients sending M emails every day every time restic runs, or exporting the logs to a central server, and suddenly this is not something you can just work around by scrolling past it with a quick flick of the mouse anymore. I may be wrong but I think that this use case is more common than the occasional time when one has to check the log file live when restic is running.
IMHO the default for non-terminal outputs should go back to not printing the progress bar interim updates, as it was before, and the feature should be explicitly enabled with a specific option, but I suppose the opposite would be good too as long as it's possible to completely disable the extra output.
Tying it to the verbosity levels, for example enabling it when --verbose=2 or -vv are used, would be a possibility too, but I see two problems with it: the first is that it must be done carefully because right now the verbosity levels are treated a bit inconsistently (basically --verbose and default are the same thing, see PR #3009 for more details), the second is that somebody may want the interim updates without the extra details that come with higher verbosity level (like the list of every deleted pack, for example).

We've decided to revert this behavior back to what it was before, #3194 tracks this

#3199 changes the progress bar output on non-interactive outputs back to it's previous behavior, but allows using RESTIC_PROGRESS_FPS to override the default. RESTIC_PROGRESS_FPS=1 will print one line per second, RESTIC_PROGRESS_FPS=0.01666 one per minutes and so on. Sending a SIGUSR1 signal to restic will also cause it to print the current progress. These two output controls also work when passing --quiet to restic. This is probably most interesting in combination with the SIGUSR1 signal.

Sounds good! Being able to set restic to post an update every few minutes would solve my use-case. Thanks!

Sounds good! Being able to set restic to post an update every few minutes would solve my use-case. Thanks!


Update link to official npm docs

Thanks!

Coverage remained the same at 95.413% when pulling a5d24be99540c40fddef0b3b934798443d200835 on aceyoung9:master into 84aa9eac11634d8fe6053fa7946dee5b77f09581 on observing:master.

Coverage remained the same at 95.413% when pulling a5d24be99540c40fddef0b3b934798443d200835 on aceyoung9:master into 84aa9eac11634d8fe6053fa7946dee5b77f09581 on observing:master.

Thanks for your contribution.


potential rbenv plugin ports

A few plugins that may have some utility being ported to nodenv.

[ ] https://github.com/ianheggie/rbenv-env
print env vars relevant to node/nodenv/npm
[ ] https://github.com/tpope/rbenv-communal-gems
share global modules across nodes
[x] https://github.com/mlafeldt/rbenv-man
man pages for active node, npm, etc version
[ ] https://github.com/fgrehm/rbenv-install-remote
install node using custom definition url (like a gist)
[ ] https://github.com/toy/rbenv-update-rubies
automatically install latest patch (maybe even minor?) versions of each currently installed node
[ ] https://github.com/ianheggie/rbenv-binstubs
make nodenv aware of local node_modules bins (would resolve #45 )
[ ] https://github.com/rbenv/rbenv-installer
includes an idempotent installer script, though -doctor is the more relevant one

Any votes on which, if any of these would be most useful for node? Or others?

nodenv-man

I'd be interested in seeing rbenv-binstubs ported to node to avoid installing global packages.

I implemented support for local bins just for myself, wasn't so bad actually. Though I did use the old which hook.
https://github.com/maxnordlund/dotfiles/tree/master/bin
https://github.com/maxnordlund/dotfiles/tree/master/nodenv.d

https://github.com/nodenv/nodenv-env

https://github.com/nodenv/nodenv-installer


update deps for python 3.11

things like python-flirt need to be built for python 3.11 and distributed via pypi

see #1191 for update to CI for python 3.11

Eagerly watching this :). It's a blocker for us to move to Python 3.11.

ack :-)
we have some dependencies written in rust, so needed to get that tooling updated and build those wheels. i'll look into this now that 3.11 has settled a bit.

Thx! In the meantime I'll look at our own Rust+PyO3 libs...

ERROR: Could not find a version that satisfies the requirement python-flirt==0.7.0; extra == "flirt" (from viv-utils[flirt]) (from versions: none)
ERROR: No matching distribution found for python-flirt==0.7.0; extra == "flirt"

for the flirt dependency, (windows, linux) x (3.7-3.11) are building in github actions. i'm having trouble getting macos working. will continue, but its tedious.

https://pypi.org/project/python-flirt/0.8.4/

https://pypi.org/project/viv-utils/0.7.6/

working now https://github.com/mandiant/capa/actions/runs/3685691874
ready for merge


Unusual behavior of 'Count' with 'SORTBY'

Hi
when I try use Count after Orderby cause return wrong result.
Sample code is:
/*
 * Redis-OM: 0.7.6
 * dotnet core 8.0
 * OS Program Run: Windows 10 22H2
 * Redis Info:
 *     redis_version:7.4.1
 *     redis_git_sha1:00000000
 *     redis_git_dirty:0
 *     redis_build_id:5918102922f65a0d
 *     redis_mode:standalone
 *     os:Linux 5.15.0-124-generic x86_64
 *     arch_bits:64
 *     monotonic_clock:POSIX clock_gettime
 *     multiplexing_api:epoll
 *     atomicvar_api:c11-builtin
 *     gcc_version:11.4.0
 */

using BugRedisOM;
using Redis.OM;
using StackExchange.Redis;

/*
[Document(StorageType = StorageType.Json, Prefixes = new[] { "BugTest:DesktopStatusEventLog" }, IndexName = "bug-desktopstatuseventlog-idx")]
public class DesktopStatusEventLog
{
    [RedisIdField] public string Id { get; set; } = string.Empty;
    [Indexed] public long DateTime { get; set; }
    [Indexed] public string Desktop { get; set; }
}
*/

var redis = ConnectionMultiplexer.Connect("localhost:6379");
var provider = new RedisConnectionProvider(redis);

provider.Connection.CreateIndex(typeof(DesktopStatusEventLog));

var EventLogsSet = provider.RedisCollection<DesktopStatusEventLog>();

string[] desktops = ["D1", "D2", "D3", "D4", "D5", "D6"];

if (!EventLogsSet.Any())
{
    long now = DateTimeOffset.Now.ToUnixTimeSeconds();
    long dtStart = now - 1440 * 60 - 360 * 60;
    long dtEnd = now;

    var rnd = new Random(570);
    var eventLogs = new List<DesktopStatusEventLog>();
    foreach (var item in desktops)
    {
        for (var dt = dtStart; dt < dtEnd; dt += rnd.Next(2, 100 * 60))
        {
            eventLogs.Add(
                new DesktopStatusEventLog()
                {
                    Id = Guid.NewGuid().ToString(),
                    Desktop = desktops[rnd.Next(desktops.Length)],
                    DateTime = dt
                });
        }
    }

    foreach (var item in eventLogs) { EventLogsSet.Insert(item); }
}

var cnt1 = EventLogsSet.AsQueryable().Where(x => x.Desktop == "D1").Count();
var cnt2 = EventLogsSet.AsQueryable().Where(x => x.Desktop == "D1").OrderBy(x => x.DateTime).Count();

// "FT.AGGREGATE" "bug-desktopstatuseventlog-idx" "@Desktop:{D1}" "GROUPBY" "0" "REDUCE" "COUNT" "0" "AS" "COUNT"
// "FT.AGGREGATE" "bug-desktopstatuseventlog-idx" "@Desktop:{D1}" "SORTBY" "2" "@DateTime" "ASC" "GROUPBY" "0" "REDUCE" "COUNT" "0" "AS" "COUNT"

Console.WriteLine("Count All 1 (without Order) is " + cnt1);
Console.WriteLine("Count All 2 (with Order)    is " + cnt2);

In sample code also mentions the generated Redis commends. The result is:
Count All 1 (without Order) is 38
Count All 2 (with Order)    is 10

The result may be compatible with Redis logic, but not with SQL logic (which users probably expect).

Interesting!
I think I know what the issue is. Redis OM is correctly creating the command and passing it to Redis, and interpreting the result correctly. But there's a small quirk in FT.AGGREGATE which I've pinged our engineering team to get an answer on.
SORTBY in FT.AGGREGATE has an optional MAX parameter, which is the maximum number of records it will sort before it stops, in general when you see things like this in RediSearch, it's to prevent any crazy long running function from blocking the Redis Server while it executes (e.g. if you had a million records you may not necessarily want to block Redis while it sorts all of them)
So you'll see when you chop off the reducer from the one that's coming back with 10 results:
<IP_ADDRESS>:6379> "FT.AGGREGATE" "bug-desktopstatuseventlog-idx" "@Desktop:{D1}" "SORTBY" "2" "@DateTime" "ASC"
 1) (integer) 38
 2) 1) "DateTime"
    2) "1731916575"
 3) 1) "DateTime"
    2) "1731916575"
 4) 1) "DateTime"
    2) "1731916575"
 5) 1) "DateTime"
    2) "1731920080"
 6) 1) "DateTime"
    2) "1731929273"
 7) 1) "DateTime"
    2) "1731929487"
 8) 1) "DateTime"
    2) "1731932922"
 9) 1) "DateTime"
    2) "1731937210"
10) 1) "DateTime"
    2) "1731938997"
11) 1) "DateTime"
    2) "1731940358"

That's what's getting passed down the pipeline to the COUNT reducer (so yep only 10).
Now if you ran the same query with the MAX parameter set to some value, let's try 100:
<IP_ADDRESS>:6379> "FT.AGGREGATE" "bug-desktopstatuseventlog-idx" "@Desktop:{D1}" "SORTBY" "2" "@DateTime" "ASC" MAX 100
 1) (integer) 38
 2) 1) "DateTime"
    2) "1731916575"
 3) 1) "DateTime"
    2) "1731916575"
 4) 1) "DateTime"
    2) "1731916575"
 5) 1) "DateTime"
    2) "1731920080"
 6) 1) "DateTime"
    2) "1731929273"
 7) 1) "DateTime"
    2) "1731929487"
 8) 1) "DateTime"
    2) "1731932922"
 9) 1) "DateTime"
    2) "1731937210"
10) 1) "DateTime"
    2) "1731938997"
11) 1) "DateTime"
    2) "1731940358"
12) 1) "DateTime"
    2) "1731942575"
13) 1) "DateTime"
    2) "1731944731"
14) 1) "DateTime"
    2) "1731947221"
15) 1) "DateTime"
    2) "1731948295"
16) 1) "DateTime"
    2) "1731950635"
17) 1) "DateTime"
    2) "1731951415"
18) 1) "DateTime"
    2) "1731951968"
19) 1) "DateTime"
    2) "1731955934"
20) 1) "DateTime"
    2) "1731957986"
21) 1) "DateTime"
    2) "1731961684"
22) 1) "DateTime"
    2) "1731961960"
23) 1) "DateTime"
    2) "1731963696"
24) 1) "DateTime"
    2) "1731963730"
25) 1) "DateTime"
    2) "1731975411"
26) 1) "DateTime"
    2) "1731976673"
27) 1) "DateTime"
    2) "1731978955"
28) 1) "DateTime"
    2) "1731980089"
29) 1) "DateTime"
    2) "1731985585"
30) 1) "DateTime"
    2) "1731989376"
31) 1) "DateTime"
    2) "1731991464"
32) 1) "DateTime"
    2) "1731992808"
33) 1) "DateTime"
    2) "1731998504"
34) 1) "DateTime"
    2) "1731998981"
35) 1) "DateTime"
    2) "1732001322"
36) 1) "DateTime"
    2) "1732009023"
37) 1) "DateTime"
    2) "1732009517"
38) 1) "DateTime"
    2) "1732018501"
39) 1) "DateTime"
    2) "1732021650"

You'll see it comes back with all 38 DateTime's sorted, so if you now pass that into the pipeline you'll get your answer:
<IP_ADDRESS>:6379> "FT.AGGREGATE" "bug-desktopstatuseventlog-idx" "@Desktop:{D1}" "SORTBY" "2" "@DateTime" "ASC" MAX 100 GROUPBY 0 REDUCE COUNT 0 as COUNT
1) (integer) 1
2) 1) "COUNT"
   2) "38"

Now, Redis OM .NET does not at the moment support the ability to add a MAX parameter to a sortby, we could add it, it shouldn't be that much of a lift, but I guess my question for you would be - if you are just counting these, why do you need to sort them? the order should be irrelevant for the count.

FYI @SMAH1 I spoke with engineering, it is indeed true that the default is 10.

Thanks for your follow-up. But the solution is not to use MAX. Because when we are using Count, we do not know the number to set MAX from!
The correct solution in my opinion is that when using functions like Count, Sort should be completely ignored and not created in the final command to send to Redis.
This problem occurred to me when I was creating a Query function with its Orderby and then sending it to another function where I control the chunk by adding Take and Skip but at the same time I need to know the Count of data.


Scrcpy with Pixel 6

Hi
I am not a programmer however I joined here because I need some help to get scrcpy working with my Pixel 6 pro.
I premise that I have used this program so far with various Samsung devices without experiencing any problems, so I assume that scrcpy is installed correctly on my Pc.
On my new Pixel phone I have enabled "USB Debug" in the developer options... maybe I need to enable something else? I don't know so I ask you. The Android version is the 12th
scrcpy when it starts it generally opens and closes instantly so I can't see any error messages generated. If it helps I can tell you that the text lines are much more than normal operation... also only once it gave me the message: 'ERROR: "adb push" returned with value 1'.
I thank you in advance and hope you can help me.

Please post the whole console output.

THX!
How can I do this?

Run scrcpy-console.bat, then copy paste the content of the terminal.

I fixed the problem... I installed latest version and now it works perfectly...Sorry, I should have done this first. If I have more problems I will come back. Thanks for the help!

Hi , it's me again.
I am reopening this post because a new problem has occurred. When I open some apps, like Amazon or Revolut bank or other shopping apps, Scrcpy darkens the screen and won't let me interact... trying to click randomly I can hit the buttons but using this is impossible .

The apps which request to protect the screen could not be mirrored (this is enforced since Android 12, see #2129)

Is there any way to disable this?

Nope, unfortunately.


Zigbee2mqtt 1.19.1-1 - sensors missing or frozen

From the day I connect new aqara WSDCGQ11LM sensor on my HA with zigbee2mqtt some mija sensor WSDCGQ11LM was missing and some stay frozed. Finally blitzwolf TS0121_plug didn't work as router (before Updating they worked without problem).
I tried to pass to edge version: now new sensor aqara work fine only if connected direct to cc2530 antenna, mijia still frozed and 3 of 4 didn't show lqi on zigbee web page, blitzwolf plug work except router funcion.
My config is
data_path: /config/zigbee2mqtt
external_converters: []
devices: devices.yaml
groups: groups.yaml
homeassistant: true
permit_join: false
mqtt:
  base_topic: zigbee2mqtt
  server: mqtt://core-mosquitto
  user: xxx
  password: xxx
serial:
  port: /dev/ttyUSB0
advanced:
  log_level: info
  pan_id: 6754
  channel: 11
  network_key:
    - 1
    - 3
    - 5
    - 7
    - 9
    - 11
    - 13
    - 15
    - 0
    - 2
    - 4
    - 6
    - 8
    - 10
    - 12
    - 13
  availability_blocklist: []
  availability_passlist: []
device_options: {}
blocklist: []
passlist: []
queue: {}
frontend:
  port: 8099
experimental: {}
socat:
  enabled: false
  master: pty,raw,echo=0,link=/tmp/ttyZ2M,mode=777
  slave: tcp-listen:8485,keepalive,nodelay,reuseaddr,keepidle=1,keepintvl=1,keepcnt=5
  options: '-d -d'
  log: false

Thank you

Mine says unsupported i got livolo touch switches all over my house ...afte 1.19 all broke down i was good at 1.18 and stable

If you have problems with sensors and you didn't change configuration and there was no breaking changes reported it might be that something changed to interfere with the signal.
I've been using a lot of xiaomi sensors and every time I had a problem something happend:

I installed a new router (2.4ghz) really close to the zigbee stick
I accidentally moved the USB extender and the stick was too close to the RPI

or something close to that
Sometimes if your network is large, and some batteries are lower in power, with interference you can get bad signal.
You can always fork the repo and get the version down to a previous one and it will use the older container if you want to downgrade, but I think the problem is within your environment, otherwise there will be more failure reports.

It seems that 1.19.1 might have had some bugs as seen in https://github.com/Koenkk/zigbee2mqtt/releases. Please update to 1.21.0-1 and re-check.


137 concat is list

Closes: #137
list.concat already returns list

@Graur please review

@levBagryansky Indeed, thanks!

@rultor merge

@rultor merge

@yegor256 OK, I'll try to merge now. You can check the progress of the merge here

@rultor merge

@yegor256 Done! FYI, the full log is here (took me 10min)


Flutter does not provide intl.PropertyProvider to WebEngine

https://bugs.fuchsia.dev/p/fuchsia/issues/detail?id=54042.

/cc @iskakaushik @gw280

We believe this is in the Fuchsia webview plugin; we'll keep this open while the upstream issue is open, but at present we don't think there's anything to do on the Flutter side.

Decreasing priority.

This was fixed in Fuchsia and can be closed.

Fixed upstream.


Library Upgrade

the Google-Guava Library is too old, please upgrade it

Yes, I met the same problem. It used some deprecated methods, such as com.google.common.util.concurrent.MoreExecutors.sameThreadExecutor()

Upgrade by #864, any other lib need to be upgrade?

I have not seen it, it's version still be 18.0

Upgrade by #864, any other lib need to be upgraded?

guava

Upgrade by #864, any other lib need to be upgraded?

guava

I checked twice, guava.version not be changed

Can you submit a pull request to upgrade guava?

Will closed if no upgrade needed.

@xlofhappy Can you submit a pull request to upgrade guava?

I think I don't have enough knowledge to do it. If no one submit a PR, will the guava stop at Version(18.0)?

Updated by #1060


Preview/1.0.0

:white_check_mark: Build TheIdServer 1.0.2-preview1-0008-0008 completed (commit https://github.com/Aguafrommars/TheIdServer/commit/e84630509c by @aguacongas)


When I open the application, I got an error in console that says:

[ng] [console.error]: "Unhandled Promise rejection:" {
[ng]   "code": 405,
[ng]   "msg": "network error"
[ng] } "; Zone:" "" "; Task:" "Promise.then" "; Value:" {
[ng]   "code": 405,
[ng]   "msg": "network error"
[ng] } null

did you solve it?

I think this si probably because its blocking non-ssl updateUrls, so it needs an https:// path


Use fprintf instead of error

hidpp files were using the error function from error.h header file.
Unfortunately not every libc comes with this particular header file, so
with this patch we won't be requiring to be rely on error function and
use fprintf function.
Thanks to developer Yaroslav Chvanov  for the
original suggestion
Closes: https://github.com/libratbag/libratbag/issues/1253
Signed-off-by: listout<EMAIL_ADDRESS>

Didn't notice the use of strerror(0). It's unneeded as it just prints Success.

Done.


Found reason for bug in UC2

What is the fix? Removing one state? What was the bug? Sorry, I don't understand :(


Lists break when existing nodes are in the list container?

I've been playing around with Corset, and there's lots to like here! I'm very much on board with the project philosophy. 👍👍
One thing I'm wondering: it would be great to be able to server-render out items in a list, and have that still work with the client bindings (assuming the data matches). Right now (in my testing at least), it seems that if a list container isn't empty, the bindings don't work. I don't seem to get any particular error, it just seems broken. If I manually wipe out the container ahead of mounting, then of course it's fine.
Here's an example of what I mean based on one of the Corset examples: https://codepen.io/jaredcwhite/pen/LYmQdyW

Actually we already do append: https://github.com/matthewp/corset/blob/baf6ea682fb872bc83c2d9f874653cd4510a73b9/src/each.js#L44
so maybe there's just a bug here.

Oh wait, looking at your example @jaredcwhite are you wanting the First Item in your JS to "take over" the First Item in your HTML?

Yeah, my thought is if list "state" is passed along both with prerendered HTML as well as in the JS and the two match, hydration should "just work" in a progressively-enhanced fashion. (Maybe easier said than done, but it'd be pretty cool!)

Corset doesn't do hydration at all, though. It's not aware that the prerendered element is meant to be the same as the element that is produced from JS.
The desire to enhance lists is definitely reasonable of course. I just haven't figured out how yet. Non-lists parts are pretty straight forward, but lists are a tad tougher.

@matthewp Sure, I'm not expecting any sort of diff process or anything fancy. Hopefully just a way for it to hum along fine when the keys match once the sheet works its magic.


merge FVM hackathon cheat sheet in here.

Update some FVM-related info in README.md
Create a page that includes all the information from the FVM hackathon cheat sheet.
Re-organize the info and link fvm.md in README.md

@LesnyRumcajs I guess you have the write access to this repo. Can you please review this PR and merge it if it is good?
@trruckerfling  please review it as well.

@LesnyRumcajs thanks for your comments. updated them all.


Allow rhel-9.3

RHEL-9.4 isn't out yet, and developers might still have 9.3 on their
infrastructure.
Since the Framework has been successfully tested with that release,
let's allow it.
As a pull request owner and reviewers, I checked that:

[X] Appropriate testing is done and actually running
[X] Appropriate documentation exists and/or is up-to-date:

[X] Content of the docs/source is reflecting the changes

/approve


Make assets:precompile skip database-connecting initializer code.

Build teams says there’s no stable way to detect build vs runtime. This is a gross, global workaround.
@ped please review

ugh indeed, but good call documenting/etc :+1:


[SPARK-31032][ML] GMM compute summary and update distributions in one job

What changes were proposed in this pull request?
1, compute summary and update distributions in one pass;
2, remove logic related to check shouldDistributeGaussians
Why are the changes needed?
In current impl, GMM need to trigger two jobs at one iteration:
1, one to compute summary;
2, if shouldDistributeGaussians = ((k - 1.0) / k) * numFeatures > 25.0, trigger another to update distributions;
shouldDistributeGaussians is almost true in practice, since numFeatures is likely to be greater than 25.
We can use only one job to impl above computation, by following the logic in KMeans: using reduceByKey to compute statistics for each center
Does this PR introduce any user-facing change?
No
How was this patch tested?
existing testsuites

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/24014/
Test PASSed.

Test build #119275 has started for PR 27784 at commit 930edd6.

Test build #119275 has finished for PR 27784 at commit 930edd6.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/119275/
Test PASSed.

Merged to master


Fcrepo 2407 v2

Includes one extra commit over FCREPO-2407, which adds FcrepoResponse.getEtag(), and adds setter methods which take entityTag objects in order to handle the change from strong to weak etags in responses.

@bbpennel I'm going to suggest that you revert the last commit. I am definitely 👎  to requiring JAX-RS in client code. It's fine to use this in test code, but please not the client code.
If you go down that route, it will mean I'll need to write a new fcrepo-client for all of the camel code, and I don't want to do that.

Okay, was keeping it in a separate PR for that reason.  I'll look at #24 some more then.


Missing transcripts

When fetching transcripts for https://www.youtube.com/watch?v=gdsUKphmB3Y, I only get a subset of the available transcripts.
Using library:
>>> from youtube_transcript_api import YouTubeTranscriptApi
>>> video_id = 'gdsUKphmB3Y'
>>> transcript_list = YouTubeTranscriptApi.list_transcripts(video_id)
>>> for t in transcript_list:
...     print(t)
...
en ("English - DTVCC1")[TRANSLATABLE]
rm ("Romansh - DTVCC3")
en ("English (auto-generated)")[TRANSLATABLE]

On YouTube:

Hi @xenova, thanks for reporting this.
The problem here seems to be that both English - CC1 and English - DTVCC1 use the language code en (same for the Romansh). The TranscriptList object holds the transcripts in a dict where the language code is the key. Therefore, there can only be one transcript per language code in that dict. I wasn't aware that multiple transcripts using the same language key is a thing 😱
I am afraid this can't be fixed without introducing breaking changes, as we apparently can no longer consider the language code a reliable identifier. Have you encountered multiple instances of this happening? How big of a problem is this? 🤔

Oh wow that's quite surprising!
I have downloaded > 1 million transcripts for an ML project I'm working on (https://GitHub.com/xenova/SponsorBlock-ml) and only had 1 problem with this, so, it is most likely not that big of an issue.

Thanks for reporting back! It's good to know, that this isn't too much of an issue. I have never encountered it myself, although I have scraped quite a few of transcripts.
I might just leave this as is. To fix this we would have to return a list from all calls which currently just retrieve a single transcript, to account for the unlikely event that multiple transcripts could be returned. This would require quite a bit of rewriting and would most likely break a lot of code depending on this module. The other option is to retrieve transcripts for a given language using its vssId, however, this seems way more impractical, as that would require the user (of this module) to first find out the vssId of the language he/she is looking for.
I guess the only practical option is adding the vssId as an optional param to fetch, or a separate fetchByVssId method, which would at least provide a way to work around this in case you are encountering this issue. This still requires a bit of rewriting as the TranscriptList can no longer use dicts  internally. The fetch method could then throw an exception when it is asked to retrieve a transcript for a language code it has multiple transcripts for, to let the user know, that vssId must be used here.
Any thoughts on this?

Right, this is definitely a simple problem with an anything-but-simple solution.
As you mentioned, the most important thing is not to break code that breaks modules which depend on it, so your second option seems quite practical.
I have seen implementations (in django I believe) of a "MultiDict" (or something like that) which acts exactly as a dictionary (allowing for indexing), but allows for duplicate keys. This is usually implemented with an auxiliary dictionary used to map keys to the index of their first appearance (so that you can still index normally), but allows for iterating over the container if you need a specific item.
For example, you could have a multidict:
`python
d = {
'a': 1,
'b': 2,
'a': 3
}
such that `d['a']` returns 1 and  `d['b']` returns 2. As mentioned above, this would be implemented by storing a list of values `x = [1,2,3]`, and a dictionary `y = {'a': 1, 'b': 2}`, such that `d['a'] = x[y['a']]=1`


[Question] Isomorphic code upgrade path.

Previously we could have routes on both the server and the client (the same route).
Given the server route obviously runs first, it was useful in the case of redirects or 404's depending on the GET parameters used.
With the new<EMAIL_ADDRESS>this paradigm is slightly confusing:
It looks like if you don't define a route in the isomorphic namespace then the server will serve 404's for all routes (since nothing is defined on the server), likewise if there is a server route and no client route this is also a problem.
If the code is in the isomorphic namespace neither of action, onBeforeAction, etc will run on the server. This is a bit confusing since the code is defined in the isomorphic namespace, yet it only runs on the client.
Is there a way to get onBeforeAction to run on the server as well as the client? This can then be used for our short word redirects. (We have nicer URL's using abbreviations) for example:
https://www.eventedmind.com/feed/preview-layouts-and-regions-in-iron-router can also be https://www.eventedmind.com/feed/lesson-40 (In our case though- EventedMind is just an example), where it redirects to the newer one.
This is useful in the case where pages are moved (such as eventedmind too- many old links don't work)
Previously this was possible since you could have two route's with the same path. One would run on the client and one on the server. Now its not possible to do this anymore, is there an upgrade path to do this?
I hope you guys can help I have my site at http://eato.co.in in a bit of limbo because of the issue :(

I hope there's been some thought on this? This is a very serious issue for us


Add City of Newcastle Scouts

Added City of Newcastle Scouts district GitHub organisation, and our 2022 API docs for OSM

Thanks!
A


Update library

Hello, nice package! If you update lightweight-charts to 3.8.0 yourself, will nothing break?

Can you please tell me how to update the lightweight charts library in your package?

Hi, you can just install 3.8.0 using npm install<EMAIL_ADDRESS>or any other version. This should work as there are no breaking changes in minor releases. If something goes wrong, feel free to post a question.
I haven't yet released a new version of svelte-lightweight-charts with support for the new series type (baseline). It's already in the master branch, but I want to fix a little bug with the refs.

Thanks for the help! I'm still studying your package, before that I tried to implement it myself, but there was a problem with the ref of the Chart object and and child Series.

I released 1.2.0 version with support for the <BaselineSeries> component.


make Emulated OPL to run on a different thread so the main thread is free to do other things

I don't think is running on a different thread....

not only opl, but all the emulated hardware. (MT32, pcspeaker, ....)

well those run on the "Audio processing thread" that for e.g. is a separated thread with SDL2....
not sure it can be done more than this anyway,
as the emulator is running only when asks to read data from it.
unless creating sorts of caches and buffers. to be quicker to retrieve the data like if it is just a PCM to render to the audio...


Add position to zwave rollershutter

This PR adds a "move_position" command to the Zwave rollershutter. With this I am able to set up an automation script to open my shutter only half-way every morning!
Note: I'll submit a PR to the frontend repo soon that exposes this functionality to the UI in the form of a slider but it would still be great if this were merged since it's useful for users to call this as part of an automation.

Please add tests to make sure that the new service works correctly.

@balloob updated the PR. Added tests to demo rollershutter as instructed.

Closes #1697

Looks good! :dolphin:


AttributeError: 'NoneType' object has no attribute 'friendlyName'

When trying to run this in docker, i get this error: AttributeError: 'NoneType' object has no attribute 'friendlyName'

Add your config or pass the username and password. The error is because it can’t get your Plex Media Server


D3: Create a Scatterplot with SVG Circles - Test is Passing But Should Fail

Describe your problem and - if possible - how to reproduce it
Problem
Test is passing but it should fail. Circles are not rendered.
Reproduce
Insert the code below to pass test:
// Add your code below this line
       .data(dataset)
       .enter()
       .append('circle')
// Add your code above this line

Add a Link to the page with the problem
https://learn.freecodecamp.org/data-visualization/data-visualization-with-d3/create-a-scatterplot-with-svg-circles
Tell us about your browser and operating system

Browser Name: Firefox
Browser Version: 61.0 (64-bit)
Operating System: Windows 10 Pro (64-bit)

If possible, add a screenshot here

I just did this challenge - the code that's shown in the picture is the default code and the tests pass without the user adding any additional code, I think the default code should have the three methods (.data, .enter, .append) removed - and have a note added at the bottom of the description saying something like...
"The circles wont be visible yet, because we haven't applied any style. We will do that in the next few challenges"

this is the file https://github.com/freecodecamp/curriculum/blob/dev/challenges/04-data-visualization/data-visualization-with-d3.json#L1866 - it looks like the methods have already been removed from the setup code and just not on the live site yet - So we just need to add that message

I would like to work on this, if someone else has not picked it up yet.

@moT01 @nischaldutt @mtrivera looks like the issue has already been resolved!

@sdabhi23  methods issue has been resolved but the Note below the description has not been added, as suggested by @moT01

@nischaldutt looks like no one has taken it up, so go right ahead!


ENH: Files add accepts unused filename filter

#49

@whereswaldon I am not sure about the regex .* as default, it can be changed to [a-zA-Z-0-9.-_] that also works
>>> import re
>>> re.match('[a-zA-Z-0-9.-]*', 'ipfs.py')
<_sre.SRE_Match object; span=(0, 7), match='ipfs.py'>
>>> re.match('[a-zA-Z-0-9.-]*', 'go-ipfs.py')
<_sre.SRE_Match object; span=(0, 10), match='go-ipfs.py'>
>>> re.match('[a-zA-Z-0-9.-_]*', 'go-ipfs.py')
<_sre.SRE_Match object; span=(0, 10), match='go-ipfs.py'>
>>> re.match('[a-zA-Z-0-9.-_]*', 'go_ipfs.py')
<_sre.SRE_Match object; span=(0, 10), match='go_ipfs.py'>
>>> re.match('[a-zA-Z-0-9.-_]*', 'go_ipfs.py')

Thanks @heaven00 for looking into this! This thing is really overdue…
After reading through the diff, I can see one (and only one) problem: You seem to have mixed up regular expressions (in particular PCRE) and fnmatch. These aren't the same thing; in particular: fnmatch:* == pcre:.*, fnmatch:*ipfs* == pcre:.*ipfs.* and fnmatch:.ipfs. == pcre:\.ipfs\.. Also check out the Python documentation on this.
Finally regarding you comment about [a-zA-Z-0-9.-_]*: Yes, it will match ipfs.py, but what about Things to do: A short list.txt or That über cool 寿司 recipe.doc? * would match both, while the example you provided (there is no equivalent of that in fnmatch actually) is both more complex and would not work.
Note to self: We should probably extend fnmatch functionality in the future (not this PR), by:

Allowing multiple patterns to be passed as a list
Allowing a raw regular expression to be passed instead

@alexander255 yes I have, thanks for the info :)
will change re.match to fnmatch.fnmatch that will also change the patterns back to *
P.S. thanks for the quick review, will push out the changes asap

That was very soon indeed! Code now looks good to me! :+1:

YaY! :D


fixing the .zip problem

https://github.com/SheepTester/htmlifier/wiki/Downloading-as-a-.zip for this i fount usefull ishttps://github.com/dream8826/a1-webhost

is this ok


fix(tekton): update tekton version in the documentation

Resolves:
https://github.com/janus-idp/backstage-plugins/issues/948
Updated tekton version from v1beta1 to v1
https://github.com/janus-idp/backstage-plugins/assets/22490998/36029d4d-6a0f-49eb-8b1c-24fd5e699c4e

@debsmita1 you might need to update
models like https://github.com/janus-idp/backstage-plugins/blob/main/plugins/tekton/src/models.ts#L4, test data as well

@invincibleJai updated the PR, PTAL

there are two references missed
https://github.com/janus-idp/backstage-plugins/blob/main/plugins/topology/src/__fixtures__/workloadNodeData.ts#L1254
https://github.com/janus-idp/backstage-plugins/blob/main/plugins/topology/src/__fixtures__/workloadNodeData.ts#L1695


API to retain bundle components on entities

What problem does this solve or what need does it fill?
Sometimes we want to remove all components except for a select few from an entity. One use case I've encountered this myself when trying to do events as entities because I want to remove/rest all the data from event entities while keeping the Event marker that annotates the entity is an event entity. This comes up for less experimental use cases too.
What solution would you like?
A fn retain<T: Bundle>(&mut self) -> &mut Self API for EntityWorldMut & EntityCommands.
What alternative(s) have you considered?
let components = world.entity(e).take::<B>().unwrap();
world.despawn(e);
world.get_or_spawn(e).insert(components);

This will only work if the entity has all of the components in B. The retain API should work regardless of if all components in B are present.

Something critical to document: you can pass in () as the Bundle type, and all components will be removed.


add dns record for vault.nixos.org

In preparation for an upcoming PR deploying vaultwarden

Why did you choose the plural form?

Hmm I don't know, a vaultwarden instance may host several vaults that can be shared with different people in function of the need, but I don't have any strong feeling.

I can see myself using the singular instead of the plural by mistake. But you get to pick since you're deploying it. It could also be pass.nixos.org, bitwarden.nixos.org or bw.nixos.org.
Let me know :)

Changed to vault.nixos.org, less confusing :)

Thanks


Copied styles/ scripts/ directory in gh-pages branch to apply style

Checklist

[ ] At least one test case is included for this feature or bug fix.
[ ] ReleaseNotes has added or is not needed.
[ ] This PR has passed all of the test cases on Nodejs and Chrome Browser.
[ ] This PR has passed all of the test cases on QT/QML.
[ ] This is an API breaking change.
[ ] Requires a major version change.

Issue Resolved / Feature Added
I'm not sure if it's appropriate or not.
Copied styles/ scripts/directories in the gh-pages branch to apply style.
Resolution
Links

closing this PR. It is not appropriate.


For IntegerField or FloatField when required the 0 should be an accepted value.

and not allowing the empty value '' but the 0 should be a valid number..

@crast Why exactly is this invalid?!
class MyForm(wtf.Form):
  amount = wtforms.FloatField('Amount', [wtforms.validators.required()])
  count = wtforms.IntegerField('Count', [wtforms.validators.required()])

In the above form, I can add any value to the amount and count except 0 or None.. which is a bit strange because 0 is perfectly accepted input when required and None should be not allowed.. since it's not a number.
If I have these field optional then of course 0 is allowed.. but it also accepts the empty string (or None) which is not a number and I'll have to do an extra action in order to validate it (even though I'm asking for Integer or Float)

@crast ?!

I get this issue too. Why is "0" not a valid value for FloatField and IntegerField when the validator DataRequired is applied?

@NixonInnes That is exactly my point :D None or `` or any non numerical string should be forbidden.. not 0 :)

+1 keep up

I've found a somewhat workaround, if you set the default value to 0.0 in the model and don't use any validators on the form definition; it will accept 0, and still error on "Not a valid float value".

@lipis this is a well-documented issue with the "required" validator,  there's two paragraphs of notes on it:  http://wtforms.readthedocs.org/en/2.1/validators.html#wtforms.validators.DataRequired
For back-compatibility reasons, we cannot change the behaviour of the "required"/"data_required" validator in the 2.x series, because it would be a breaking change and that is a violation of semantic versioning policy.
We do have another validator called InputRequired which works for integer 0 and float 0.0 because it checks the form input is specified, not the value truthiness.
WTForms 3.0 is a pretty hefty re-design and it addresses many common issues, and will address the "required" issue.
I'm reopening this and setting the milestone as 3.0 so that it's tracked

Thanks @crast for clearing this up.

We do have another validator called InputRequired which works for integer 0 and float 0.0 because it checks the form input is specified, not the value truthiness.

What changed?
from wtforms import Form, IntegerField, FloatField
from wtforms.validators import InputRequired

class MyForm(Form):
    amount = FloatField('Amount', validators=[InputRequired()])
    count = IntegerField('count', validators=[InputRequired()])

form = MyForm()
form.process(amount='0', count='0')
form.validate()
print(form.errors)

{'amount': ['This field is required.'], 'count': ['This field is required.']}

My minimal example doesn't reflect the way the form is instantiated in my real application. I had default values in my client-side form that were not strings and Flask-WTF will pass request.get_json() as formdata.
While investigating this, I did find that validation fails when using data, kwargs, or obj with zeros:
from werkzeug.datastructures import ImmutableMultiDict
from wtforms import Form, IntegerField, FloatField
from wtforms.validators import InputRequired

class MyForm(Form):
    amount = FloatField('Amount', validators=[InputRequired()])
    count = IntegerField('Count', validators=[InputRequired()])

class MyObject:
    def __init__(self, *, amount, count):
        self.amount = amount
        self.count = count

def process(*args, **kwargs):
    form = MyForm(*args, **kwargs)
    form.validate()
    print(form.errors)

# Normal POST data
process(ImmutableMultiDict(dict(amount='0', count='0')))  # ✅
# Flask-WTF will call request.get_json()
process(ImmutableMultiDict(dict(amount=0, count=0)))  # ✅
print()

# Documentation states these should already be coerced, but it fails validation
process(data=dict(amount=0, count=0))  # ❌
process(amount=0, count=0)  # ❌
process(obj=MyObject(amount=0, count=0))  # ❌
print()

# For completeness, these also fail (as documented).
process(data=dict(amount='0', count='0'))  # ✅
process(amount='0', count='0')  # ✅
process(obj=MyObject(amount='0', count='0'))  # ✅

{}
{'amount': ['This field is required.'], 'count': ['This field is required.']}

{'amount': ['This field is required.'], 'count': ['This field is required.']}
{'amount': ['This field is required.'], 'count': ['This field is required.']}
{'amount': ['This field is required.'], 'count': ['This field is required.']}

{'amount': ['This field is required.'], 'count': ['This field is required.']}
{'amount': ['This field is required.'], 'count': ['This field is required.']}
{'amount': ['This field is required.'], 'count': ['This field is required.']}

Up

Suggestion :
Replace :
if not field.raw_data or not field.raw_data[0]:
with :
if not field.raw_data or field.raw_data[0] is None:
at
https://github.com/wtforms/wtforms/blob/master/src/wtforms/validators.py#301

@adrian410 Maybe submit a PR with this change instead, since this issue is closed.

Well it's the first time I try to do a PR. And I get a 403.
Trying to do a PR on master => 403
Creating a new branch => 403

If somebody can to do the PR request or show me the right steps to do it, I would be really thankfull.

What happens when you try to click the edit button from here:
https://github.com/wtforms/wtforms/blob/master/src/wtforms/validators.py

Great it worked, Thanks ! :)


Profiling.logEvent accumulating memory space

Calls to Profiling.logEvent accumulate over time and fill up memory if it is not dumped into external file, which can slow down or freeze simulations (or the machine running it).
This can happen when running a test case in python without solving a proteus model for example while still using code that has logEvent calls (e.g. in proteus.mbd)

Tristan, you have to set Profiling.flushBuffer=True I think. When we run proteus, this is switched on by the default_s module, but when you do tests, this has to be switched on manually. I do not know if it is worth keeping it False as default.
https://github.com/erdc/proteus/blob/master/proteus/Profiling.py#L38

@adimako @cekees  Profiling.flushBuffer = True does not solve the issue, but setting Profiling.procID to something else than None solves it. The only thing is that there is still nothing printed on stdout then, but it can be solved by setting the other options like logLevel, verbose, and logFile, so I think that is okay as a workaround.


When will there be support for multiple objects?

Hello @aniki-ly,
Thank you for your patience. We're pleased to announce that the multiple objects feature has been released. You can access the commands to utilize this feature here, and view the corresponding results here.
If you encounter any issues or have any feedback, please don't hesitate to let us know. We're here to assist you.
Best


Update Android SDK's cmake

Tool name
Android SDK's cmake
Tool license
BSD 3-clause License
Add or update?

[ ] Add
[X] Update

Desired version
3.31.0
Approximate size
No response
Brief description of tool
https://github.com/actions/runner-images/blob/d22a5ec4c17b7417e8014e6911344df7ca68b86e/images/ubuntu/toolsets/toolset-2004.json#L90-L92
URL for tool's homepage
No response
Provide a basic test case to validate the tool's functionality.
No response
Platforms where you need the tool

[ ] Azure DevOps
[X] GitHub Actions

Runner images where you need the tool

[X] Ubuntu 20.04
[X] Ubuntu 22.04
[X] Ubuntu 24.04
[ ] macOS 12
[ ] macOS 13
[ ] macOS 13 Arm64
[ ] macOS 14
[ ] macOS 14 Arm64
[ ] macOS 15
[ ] macOS 15 Arm64
[X] Windows Server 2019
[X] Windows Server 2022

Can this tool be installed during the build?
No response
Tool installation time in runtime
No response
Are you willing to submit a PR?
#10932

Hi @yujincheng08, Thank you for bringing this issue to our attention. We are looking into this issue and will update you on this issue after investigating.

Hi
thank you for contacting us and we are working on to  upgrade the latest version


custom time interval

How can we have a custom time interval like 1h, 30min and etc in the lightweight charts?

Duplicate of #784


Finding a specific build log is incredibly slow

I have a script where I am trying to retrieve build logs for all PRs we have that are failing so I can parse the logs and collate the data.
I can get all of the PRs that are failing a particular check with the Github API pretty easily. I end up with detail links which all point to our internal ADO project.
It when I need to pull the logs from ADO that things get really slow. The code basically looks like this:
# PHASE 2: Collect logs for failed LintDiff runs from Azure DevOps
failure_logs = []
ado = get_ado_client()
for run in failed_lint_diff_runs:
    link = run.details_url
    build_id = get_build_id(link)
    build_client = ado.clients_v7_1.get_build_client()
    build_logs = build_client.get_build_logs("internal", build_id)
    for log in build_logs:
        lines = build_client.get_build_log_lines("internal", build_id, log.id)
        if "Starting: LintDiff" in lines[0]:
            print(f"Found LintDiff log for build {build_id} at log {log.id}")
            failure_logs.append(lines)
            break

When I run this, it takes about 20 minutes to run... all of the time is spent repeatedly calling get_build_log_lines to examine just the first line of the build log to see if it is the one I care about. The output looks like:
PRs with LintDiff failures: 16
Found LintDiff log for build 3497966 at log 297
Found LintDiff log for build 3493487 at log 375
Found LintDiff log for build 3497244 at log 242
Found LintDiff log for build 3471732 at log 295
Found LintDiff log for build 3468386 at log 417
Found LintDiff log for build 3468168 at log 395
Found LintDiff log for build 3459808 at log 307
Found LintDiff log for build 3475219 at log 296
Found LintDiff log for build 3469709 at log 307
Found LintDiff log for build 3497648 at log 310
Found LintDiff log for build 3462035 at log 212
Found LintDiff log for build 3370030 at log 342
Found LintDiff log for build 3349947 at log 391
Found LintDiff log for build 3328138 at log 306
Found LintDiff log for build 3327852 at log 304
Found LintDiff log for build 3327331 at log 306

You can see, we have a lot of build logs, so much of the time is wasted. I couldn't find anything about the build log object that is identifiable. The ID changes all the time, and while in the UI it has a consistent name, that name doesn't seem to be included here. If it were, it would save a ton of time.
Is there a better way to collect this information?

@tjprescott for LintDiff build logs you can query our pipeline witness Kusto table.
Example query:
let start = ago(6h);
let end = now();
let buildIds = "*";
SpecsPipelinesBuildsJobLogs("LintDiff", start, end, buildIds)
| where Message has "Starting: LintDiff"

This is using my function of SpecsPipelinesBuildsJobLogs


Modify default timeouts for livenessProbe and readinessProbe

Currently livenessProbe and readinessProbe have set timeoutSeconds to default kubernetes value: 1.
We got information from IBM support, that they recommend to set this value to higher number because sometimes network packets are lost and they are resent after 1 second. Because of that, pods can be restarted because probes will fail because of timeout.
It would be good to set it to 3 or 5 seconds.

issue was addressed.


Support of serde v1.x.x

Hi @abonander,
Thanks for the great work on library. Are there any plans to support first stable release of serde?

Yeah, it's in the works along with #6. I'm still working on https://github.com/abonander/multipart-async though.

Nice! Do you accept third party contributions?

On which project?

Anterofit.

Yeah, if you want an upgrade of Serde now feel free to try it. I was thinking I'd lump all these changes into one release but it doesn't have to be that way.


Support Incremental Unmanaged in Native

This would allow users to do append only inserts. We want to make sure in documentation that we recommend users explore other incremental models before using unmanaged.

What are clear examples where you recommend this?

Why couldn't you do this with incremental by time already?


only include the instance methods and callbacks.

only include the instance methods and callbacks.
Because of the version of mongoid we are on the :scope argument on validates_uniqueness_of :att are not respected from sub classes.
This causes an issue since there is no module InstanceMethods to include the InstanceMethods and Callbacxks but not the validations.
This change allows us to do:
extend Clearance::User::ClassMethods
include Clearance::User::InstanceMethods
include Clearance::User::Callbacks
include Clearance::PasswordStrategies::SHA1

Word. Merged. Thanks, Gus.