post-02 code no longer working - github actions also failing

I'm seeing an error when I try to run post-02 on qemu at the very end of the post. I got the same error when cloning the post-02 solution. I saw the same error on the Github Actions nightly build. I suspect something changed on rust nightly?
The error on local,
 = note: rust-lld: error: bootloader.ew8rconr-cgu.1:(.boot-first-stage+0x81): relocation R_X86_64_16 out of range: 87040 is not in [-32768, 65535]; references _rest_of_bootloader_end_addr
rust-lld: error: bootloader.ew8rconr-cgu.1:(.boot+0x6A): relocation R_X86_64_16 out of range: 87040 is not in [-32768, 65535]; references _kernel_start_addr
>>> defined in /Users/HOMEUSER//blog_os/target/bootimage/bootloader/x86_64-bootloader/release/deps/libbootloader-8ac18532d8298d1d.rlib(kernel_bin-blog_os.o)

Here is the github action, seems like its been failing for a little while now. https://github.com/phil-opp/blog_os/runs/2072692829?check_suite_focus=true and the log,
 = note: rust-lld: error: bootloader.4qapia1c-cgu.0:(.boot+0x6A): relocation R_X86_64_16 out of range: 88576 is not in [-32768, 65535]; references _kernel_start_addr
>>> defined in /home/runner/work/blog_os/blog_os/target/bootimage/bootloader/x86_64-bootloader/release/deps/libbootloader-0765bc7ffa1f3620.rlib(kernel_bin-blog_os.o)
rust-lld: error: bootloader.4qapia1c-cgu.0:(.boot+0x85): relocation R_X86_64_16 out of range: 365520 is not in [-32768, 65535]; references _kernel_size

Here is the post-02 code: https://github.com/phil-opp/blog_os/tree/post-02
Does anyone know what the cause of this issue is, and how it can be fixed? I would love to get Hello World working :)
Thank you!

This issue should be fixed.


Add exception-handling to interactions with servlet writers

See https://groups.google.com/forum/#!topic/hystrixoss/4o6VqIW0b7Y
I don't believe implementations of servlet writers should be throwing, but if they do, this code is now more resilient.

Thanks for the review, @mattnelson .  Changed per your suggestion


 This process may be super fast: apparently faster than realtime for video (which means stupid-fast for a few screenshots).
It may be simple enough to simply detect any faces within a filmstrip and extract them into a new faces array which can be viewed separately somehow (would need UI work -- unsure what it would look like yet).
~Possibly the best solution: https://github.com/tehnokv/picojs~
~Another alternative is: https://github.com/eduardolundgren/tracking.js but it hasn't been updated since 2018~ 😕
~Another alternative is:~ https://github.com/justadudewhohacks/face-api.js/ (see Tiny Face Detector), but it requires TensorFlow and I don't want some heavy dependencies for this minor feature 😅
Someday in far future, we could get very advanced with face recognition too: https://github.com/justadudewhohacks/face-api.js/
🤔 🤷♂ 😁

Feature is further postponed until I release version 3.0.0 - see #456 🙆♂

This feature is not abandoned. I've been wanting to work on it for 3 years now, but after moving to another state, continuing a full-time developer job, and spending time on fixing up the house, I've just not had time to resume this feature yet 😓
But in 2024 I intend to find time for it 🤞


[Network Drive] Extension asks to install Samba, while macOS Samba is already installed

Extension
https://www.raycast.com/SuoweiHu/network-drive
Raycast Version
1.76.0
macOS Version
14.5
Description
Thanks for developing this extension. AFAIK Apple is using Samba to mount network drives. So Samba is probably installed. The extensions doesn't recognize this and asks to install Samba via Homebrew. This feels superfluous and might cause conflicts by installing it again. Maybe there's a way to recognize the already installed Samba or just tap into it. Thanks
Steps To Reproduce

install extension
configure extension
extension asks to install Samba

Current Behaviour
Extension asks to install Samba
Expected Behaviour
Extensions uses build in macOS Samba.

Hello @j-peeters,
I have spent some time investigating the suggested built-in samba, I cannot find anything except for the smbutils, it is produce similar to what I am trying to do with smbclient (from samba installed via brew) but with no control over the format of the output it.
And I recon it is a old version of smbutils as well. As it have no logout sub-command which  seems to appear on the man-page for smbutil https://man.freebsd.org/cgi/man.cgi?query=smbutil&format=html.
Hence, for all the reasons, I feel like there's some proper reasons for us to use the smbclient (from samba installed via brew) in this instance. Please let me know what you think on this matter :)
Kind Regards,
Simon Hu

Hello @j-peeters, I have address your suggestion on pull-#12923. Appreciated your suggestion !

Hello @j-peeters, I have address your suggestion on pull-#12923.

Thank you so much for your research and considerations, Simon. I will try it out once the pull is merged by Raycast team.


it would be cool if you could pass arguments directly into a coroutine as it starts

Not really sure why I took so long to merge this, but ah, thanks!


meilisearch: init at 0.9.0

Motivation for this change
https://meilisearch.com/
https://github.com/meilisearch/MeiliSearch/releases/tag/v0.9.0
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[x] NixOS
[ ] macOS
[x] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

@GrahamcOfBorg build meilisearch

@GrahamcOfBorg build meilisearch

Built for me,
distributed web content,
Not sure if I just didn't have something to search or if  the search wasn't working, though.


Query Size Limit

There is a superficial limit of 1000 characters in the library.  It should be extended to 8000, the SQL Server limit.

More importantly - thank you!  This is a great library for DP!  Had a job that needed it and this pushed the project forward!

I also changed line 44 to remove any weird characters that were screwing up my calls:   $apiResponse = json_decode(json_encode(simplexml_load_string(preg_replace ('/[^\x{0009}\x{000a}\x{000d}\x{0020}-\x{D7FF}\x{E000}-\x{FFFD}]+/u', ' ', $apiResponse))), true);


callbacks fail when invoked in parallel

I tried to put some stress on mock-server and noticed it fails as soon as 2 requests come in the same time. I didn't see the issue when mock-server returned plain response. But it happens when mock-server returns a response through callback.
Logs show, that mock-server "is returning" 2 answers. The first client receives the answer. However the second client doesn't get any byte in its http connection. It times out on socket read.
I demonstrate the issue in a simple project: https://github.com/jarekczek/simpleMockServer/tree/master/bug-report
mock-server looks great for my purpose. I can use it successfully even now, but I need fully functional callbacks to accomplish all the goals. I hope we will be able to fix it. Thank you James for this useful software.

Seems like the issue is gone in 5.3.1-SNAPSHOT. So I'll just wait for a release. Thank you and looking forward to 5.3.1.

this issue is now resolved and released the fix is in both 5.3.0 and 5.4.1

@jamesbloomnektan the issue seems to be resolved using version 5.4.1 but the issue is back since 5.5.0


Maintainance/docker dev env

Adds docker container for usage in development.
Why?

Since there are dependencies in the package that are not automatically resolved using conda in M1 macs, an alternative is to use a container for development, where all local test runs occur within the container.

Specification for dev containers:
https://containers.dev/overview

Is this PR still needed with #35?

I really like the concept of this pr but ... since right now I am experiencing a weird issue where the tests occasionally stall. Which I believe could be somehow related to the way that nextflow detects that a spawned process has finished, which might be weird when running docker inside groovy inside python inside docker .... So it think we can leave this in the back burner for a while and just document the patch for MSSTATS on mac.

@wfondrie

Is this PR still needed with #35?

It still has a place, but i dont think its worth the effort right now, although i do believe we need to document how to patch the msstats situation in m1 macs ... (because I will forget immediately ...)


Add Linea to UIs

Problem
Please do this in staging so we can test
Proposed Solution
[OPTIONAL] Thoughts on solution design. We could do  to solve this problem.
Acceptance Criteria
From an end user perspective, the below criteria must be met to consider this done:

[ ] Able to add and remove liquidity to Pools
[ ] Able to ad and remove liquidity to routers
[ ] Able to bridge to and from Linea
[ ] Able to see updates in Explorer

from #5052

We were unable to update the SDK version to add Linea support, as mentioned in this Discord post.


What's the best way to pass information from one route to another?

Hey there,
Basically, I'm using express in a REST API, and have been implementing a payment processor. The basic flow is something like this;
ROUTE: /payment

Client submits some data like the product information. Server receives and validates it against database. The server then calls the Payment Processor API and initialises the session with information like price, order number, etc... and then gets a "paymentSession". We then return this session to the client.
The client then do the payment, which then gets an encrypted payload from the payment processor. We then send this payload to another route on our server, /payment/verify, and here we can check if the payment was successful. If it was, we then want to grant the user permission to whatever it is they bought.

Here is where the problem comes in. The information I need in order to "grant the user permission" in the 2nd route, was created in the first route. Stuff like Order #, product information, etc...
What would be the best way for me to pass some data from the first endpoint to the second despite them being separate routes?
Thanks! Any help is appreciated. Let me know if more information is required!

Hey @marbuser,
This sounds like a question you should ask in the Express Gitter or on StackOverflow.  It sounds to me like you are not asking an Express specific method, because you are sending the response back to the browser.  If so, then you can use any of the normal methods for passing data through requests, the request body, query string params, etc.
If I am wrong and this is fully server side within a single request, you can use res.locals to pass data down the middleware stack.
Good Luck.


feat: export PDT HealthCert v2.0 schemas

What does this PR do?
Exports PDT HealthCert v2.0 schemas so they can be imported by other services.
Use case
PR: Notarise-gov-sg/api-notarise-healthcerts/pull/503 (context)
JSON schema validation will be very costly if the schema is fetched over the network upon every validation. As such, it is proposed to export schemas from the oa-schemata package so they can be imported locally by other services.

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


[MPI] If a remote function receives a dictionary with a tuple key as an argument, an exception is thrown.

import unidist

unidist.init()

@unidist.remote
def f(params):
    return params

data = {
    'a': [0, 1, 2, 3],
    'b': {('a', 'b', 'c', 'd'): "value"},
}

print(unidist.get(f.remote(data)))

Originally found in https://github.com/modin-project/modin/pull/5507#issuecomment-1370988248.


Section of pdf missing from xml output

Hi again,
Another "error case". For the published pdf for https://pubmed.ncbi.nlm.nih.gov/27917460/ (not the freely available author manuscript), the "Trial Registration" located just under the abstract on page 1 is missing from Grobid's xml output. Just checking if there is an easy fix, and happy to chat more or send more info through if it helps.

This issue is partially mentioned in the #1142, that this information that does not have a specific standardized place in the header is lost and we should keep it or find a place for it.

Hello! We could add the trial information in the data availability section. I think the issue is that we don't have text content about trial registration in the training corpus for data availability section currently, so it's ignored or it goes under the funding section. Having better recognition of the information about clinical trials is also an objective of the French Open Science Monitor.

That would be amazing! We're interested in general statements about preregistration, which includes clinical trial registration, so it would be great to capture the broader statements if at all possible!


Rendering larger csv files in Pivot Table Enhancement

Hi Nicolas,
First I want to say Pivottable.js is fantastic!!
So I ran into issues rendering csv files when the data being used reached 30MB+ or around 82,000 x 39; the browser would simply lock up and consume an ungodly amount of memory. In firefox it would eventually end up loading, in chrome however it would crash every single time.
So at first I said to myself hmmm maybe its just a browser limitation!
Then I decided to sniff further and realized that the issue with memory usage was the parsing being done by jquery-csv.
Browsing online I found another parsing library by the name of papa parse:
https://github.com/mholt/PapaParse
Using Papa Parse instead of jquery-csv the memory consumption was around 30% - 40% of what jquery-csv was consuming. The library has a lot of options and natively allows the streaming of a large csv (this was used for example 3) and overall parses the data at a much faster rate.
Code:
$.get("mps.csv", function(mps) {
var input = Papa.parse(mps, {skipEmptyLines: true, config: {
step: function(results,parser) {
row++;
$('#pp').html(row);
}
} });
			$("#output").pivotUI( input.data, {
                        renderers: $.extend(
                        $.pivotUtilities.renderers,
                        $.pivotUtilities.gchart_renderers,
						$.pivotUtilities.c3_renderers,
                        $.pivotUtilities.d3_renderers,
						$.pivotUtilities.export_renderers
                        )
                    });
                });
			});

Example 1 file with 82k rows using Papa Parse (notice memory consumption):

Example 2 file with 82k rows using jquery-csv:

Example 3 file with 247k rows using Papa Parse:

Cool! I'll take a look at PapaParse and maybe upgrade the examples :) Thanks!

Using pivottable with large data, I was running into a problem where my browser would crash, ostensibly on the toArrays csv load of a very large .csv file (>150mb). I saw that most of the time was spent on the var input = ... toArrays call and I found this solution.  Thanks for pointing this out, it was relatively painless to use.

OK, I've migrated all the examples to PapaParse, it is indeed much faster :)
Thanks for the push!


(compatible) Add local precomputed block logging to individual files

Explain your changes:

This PR adds a local precomputed block logging functionality to the daemon. To use it, simply set the flags --precomputed-blocks-path PATH and --log-precomputed-blocks true when you run the daemon. Block names are consistent with the gcloud naming convention {network}-{height}-{state_hash}.json.

The new functionality is only triggered when PATH is a Unix directory. Otherwise, precomputed blocks will be appended to a single file as before.

The --precomputed-blocks-file flag is changed to --precomputed-blocks-path.

Explain how you tested your changes:

I built the mainnet daemon, connected to the network, and confirmed that precomputed blocks were logged to the provided directory as expected.

Checklist:

[x] Dependency versions are unchanged

Notify Velocity team if dependencies must change in CI

[ ] Modified the current draft of release notes with details on what is completed or incomplete within this project
[x] Document code purpose, how to use it

Mention expected invariants, implicit constraints

[ ] Tests were added for the new behavior

Document test purpose, significance of failures
Test names should reflect their purpose

[ ] All tests pass (CI will check this if you didn't)
[x] Serialized types are in stable-versioned modules
[ ] Does this close issues? List them

To see the specific tasks where the Asana app for GitHub is being used, see below:

https://app.asana.com/0/0/1204406714391537

!ci-build-me

!ci-build-me

Reformatted


Transition away from graphviz

Few functions in Tellurium (namely draw()) utilizes graphviz which is an external application to Python.
It would be nice to transition into something purely Python as graphviz support in Windows is not ideal.
Something like networkx or plotly might do it.

Talk to Matthias about this.
Herbert
On Mon, Apr 10, 2017 at 4:14 PM, Kiri Choi<EMAIL_ADDRESS>wrote:

Few functions in Tellurium (namely draw()) utilizes graphviz which is an
external application to Python.
It would be nice to transition into something purely Python as graphviz
support in Windows is not ideal.
Something like networkx or plotly might do it.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/sys-bio/tellurium/issues/172, or mute the thread
https://github.com/notifications/unsubscribe-auth/ABAZDj_-0eD-lCjYZydFi5ZUZr7NLZBcks5rurfhgaJpZM4M5bvE
.

I am thinking of keeping graphviz functionality but add a Python-based graphing tool and set that as the default. Using graphviz as backend can be done through something like:
rr.draw(backend='graphviz')
@matthiaskoenig: how does that sound?

Sounds good to me.
On Apr 13, 2017 2:23 AM, "Kiri Choi"<EMAIL_ADDRESS>wrote:

I am thinking of keeping graphviz functionality but add a Python-based
graphing tool and set that as the default. Using graphviz as backend can be
done through something like:
rr.draw(backend='graphviz')
@matthiaskoenig https://github.com/matthiaskoenig: how does that sound?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/sys-bio/tellurium/issues/172#issuecomment-293743279,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AA29ur2j2z15d3KjT7Zaife6Ww5SRItUks5rvWr0gaJpZM4M5bvE
.

Did some preliminary work on this and realized that networkx using matplotlib backend is functional but very limited and ugly. It might be even better to focus on figuring out good way to distribute graphviz. Another solution might be utilizing our network viewer.

NetworkX now supports directed graph. I have a simple package I built that takes antimony strings and plots out network diagrams and it looks okay.

Can you post an image.
H
On Mon, Oct 15, 2018 at 1:53 PM Kiri Choi<EMAIL_ADDRESS>wrote:

NetworkX now supports directed graph. I have a simple package I built that
takes antimony strings and plots out network diagrams and it looks okay.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/sys-bio/tellurium/issues/172#issuecomment-430008899,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABAZDol204xGE55NUh0GeDMpRINjp3Bwks5ulPWLgaJpZM4M5bvE
.

--
Herbert Sauro, Associate Professor
University of Washington, Bioengineering
206-685-2119, www.sys-bio.org
<EMAIL_ADDRESS>Books: http://books.analogmachine.org/

Looks something like this:

Still needs a lot of polishing, but seems functional and the fact that it does not require any external binaries is a huge plus.

Looks ok. What does it do for bimolecualar reactions?
H
On Mon, Oct 15, 2018 at 2:57 PM Kiri Choi<EMAIL_ADDRESS>wrote:

Looks something like this:
[image: image]
https://user-images.githubusercontent.com/7672320/46980693-32bb4c80-d08a-11e8-97db-28c23d9b17cd.png
Still needs a lot of polishing, but seems functional and the fact that it
does not require any external binaries is a huge plus.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/sys-bio/tellurium/issues/172#issuecomment-430028533,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABAZDkqNRXC8GpEYJr47YazJ39j0ogw2ks5ulQSFgaJpZM4M5bvE
.

--
Herbert Sauro, Associate Professor
University of Washington, Bioengineering
206-685-2119, www.sys-bio.org
<EMAIL_ADDRESS>Books: http://books.analogmachine.org/

I am working on those right now. I should be able to implement activation and inhibition in next few days. Also working on curved arrows.


Update declaration to explain statutory charge

What
Link to story
Update both client and provider declaration to explain statutory charge
Checklist
Before you ask people to review this PR:

[ ] Tests and rubocop should be passing: bundle exec rake
[ ] Github should not be reporting conflicts; you should have recently run git rebase master.
[ ] There should be no unnecessary whitespace changes. These make diffs harder to read and conflicts more likely.
[ ] The PR description should say what you changed and why, with a link to the JIRA story.
[ ] You should have looked at the diff against master and ensured that nothing unexpected is included in your changes.
[ ] You should have checked that the commit messages say why the change was made.

Codecov Report

Merging #2694 (3389cc9) into master (7026c75) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##            master     #2694   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files          531       531
  Lines        11034     11034
=========================================
  Hits         11034     11034

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 7026c75...3389cc9. Read the comment docs.


test: Wait for IPCache entries in testSessionAffinity

We need to wait for an IPCache entry of the restarted pod. Otherwise, a next testSessionAffinity test invokation (with fromOutside = true) might fail, as it could take up to 10s for the entry to appear. See [1] for more details.
This is a temporary fix to get rid of the session affinity flakes.
[1]: https://github.com/cilium/cilium/issues/11751
Fix #11698

retest-net-next

Coverage increased (+0.02%) to 36.85% when pulling b04ec747581e830edd602078e6077d2e2d53bf76 on pr/brb/fix-session-affinity-flake into 05daeef1c29a48928391cb1820c77752675d6bcd on master.

CI provisioning timeout.

retest-net-next

CI net-next hit https://github.com/cilium/cilium/issues/11741 flake. We can merge this PR.


[Feature]: Support Cloudflare

Tell us about your feature request
Tweak paddle-node-sdk so that it runs on Cloudflare.
What problem are you looking to solve?
paddle-node-sdk does not run on Cloudflare because it imports crypto without a node: prefix. Node.js compatibility in Cloudflare requires the node: prefix per https://developers.cloudflare.com/workers/runtime-apis/nodejs/
paddle-node-sdk is cjs and node:crypto on Cloudflare seems to be esm. Cjs must use a dynamic import to import esm.
Additional context
No response
How important is this suggestion to you?
Critical

Hi @mw10013,
Brilliant feedback and thank you for the Pull request.
We will do some testing and get back to you.
Thank you.

Hi @mw10013,
We checked your PR and we agree that changing the two offending imports might fix the problem for now. However, there is a good chance we could start using some other Node JS feature breaking the ESM compatibility.
As a strategic solution, We have updated the package to export both CommonJS and ESM format so that the build systems can pick up the appropriate format.
We have released a beta version 1.3.0-beta.0 to trial this approach. We will move it to the main branch after it is field tested for a while.
Please use the new version and let us know how it goes.
Thank you.

@vijayasingam-paddle 1.3.0-beta.0 works in my paddle-cloudflare-worker smoke test (https://paddle-cloudflare-worker.mw10013.workers.dev/ displays the first page of products). Also, in the project I'm working on which includes reconciling database with paddle, changing subscriptions, and webhook. Gratitude!


Android Firefox presents obscured modal view

Description
When starting the flow with Android Firefox, it presents the modal iframe (even though Android Firefox should support popups). When it does, it looks like this:

Latest version of checkout.js.

[x] Screenshots or videos that show the issue
[ ] Your code
[x] The version of checkout.js you're using (or the paypalobjects url)
[ ] A link to your page with the issue, if possible
[ ] All console logs during the time of the issue, especially error messages
[ ] Does the issue also occur at developer.paypal.com/demo/checkout?

Steps to reproduce
Download Firefox on an Android device. Start the PayPal flow.
Affected browsers

[ ] Chrome
[ ] Safari
[x] Firefox (Android only)
[ ] Edge
[ ] IE
[ ] Chrome Mobile/Tablet
[ ] Safari Mobile/Tablet
[ ] Web View / Safari ViewController
[ ] Other

I have just tried this on my Galaxy S7 running Nougat 7.0 with latest Firefox 54.0.1 and I get the popup and it works as expected. I am however seeing this issue in my Cordova app #420. Seems there is something not right in the browser/environment detection.

Should be fixed. Please let me know if you see the issue again.


Data Factory: repeated Breaking Changes to an API version from 2018

:wave:
There’s currently two versions of the Data Factory API:

2017-09-01-preview - a Preview API that hasn’t received any notably changes in several years
2018-06-01 - a Stable API that regularly receives new features and breaking changes.

Now firstly, I enjoyed 2018 as much as anyone else, but it was also 6 years ago at this point.. frankly I find it surprising that a service that’s still in active development is still making changes, let alone breaking changes to a six year old API version on a regular basis.
Per the ARM Specification and Breaking Change processes - breaking changes are supposed to be introduced in a new API version, but perusing the Git history for this API version, regularly make it into this existing API Version, here’s a selection from the past year:

2 days ago, changing the type from string -> objects https://github.com/Azure/azure-rest-api-specs/pull/28210
2 weeks ago: breaking change to the models (introducing a new new discriminated type ServicePrincipalCredentialResource - in addition to ManagedIdentityCredentialResource) - but crucially this doesn’t work since both models use the same Discriminator Value - https://github.com/Azure/azure-rest-api-specs/pull/28122
2 months ago: - breaking change to remove SalesforceV2SourceReadBehaviour https://github.com/Azure/azure-rest-api-specs/pull/27412
2 months ago: changing the type from object -> list https://github.com/Azure/azure-rest-api-specs/pull/27180
3 months ago: the field pwd is removed: https://github.com/Azure/azure-rest-api-specs/pull/26965/files#diff-61ee9b50b0c4813e20b82ed9cd1cae9ce5fcabe739eec9aa61293957bc9b9c93L5312 - this could be because the field isn’t valid, but there’s no context in the PR so how can consumers know the reasoning for this?
4 months ago: breaking changes to the types https://github.com/Azure/azure-rest-api-specs/pull/26846
6 months ago: Properties are removed and aren’t called out by the PR reviewers - in a PR containing 10 lines of changes - which was then fixed in this PR where it’s claimed these were “accidentally removed”.
9 months ago: breaking change to change mongoDbAtlasDriverVersion to driverVersion https://github.com/Azure/azure-rest-api-specs/pull/24709
10 months ago: Constants are removed in favour of making the fields a string type that returns those same values https://github.com/Azure/azure-rest-api-specs/pull/24226
11 months ago: breaking change - string to object https://github.com/Azure/azure-rest-api-specs/pull/23684
11 months ago: breaking change - boolean to object https://github.com/Azure/azure-rest-api-specs/pull/23396

This happens so regularly that in order to populate this list, I haven’t even clicked onto the second page of Git history!
Each of these breaking changes has been approved, meaning that it must have gone through the breaking change process - yet in the PR description there’s no explanation of the reasoning for the change.
In addition to that the Data Factory API is documented using custom format values, for example:
"type": {
  "type": "string",
  "description": "The read setting type."
},
"maxConcurrentConnections": {
  "type": "object",
  "x-ms-format": "dfe-int",
  "description": "The maximum concurrent connection count for the source data store. Type: integer (or Expression with resultType integer)."
},
"disableMetricsCollection": {
  "type": "object",
  "x-ms-format": "dfe-bool",
  "description": "If true, disable data store metrics collection. Default is false. Type: boolean (or Expression with resultType boolean)."
}

As mentioned above, fields get accidentally removed which is missed at review time despite the PR containing 10 lines of changes - and then in a follow up PR to reintroduce these a complaint is raised about the type and discarded.
This PR updates a model so that it’s no longer marked as a Discriminated Type (and all implementations) and then later reintroduces them because it turns out people were using these types.
I can’t speak to each of these Swagger PRs because unfortunately they don’t contain the full context - but my point here is that for a Stable API version from 2018 there sure are a lot of changes, particularly Breaking Changes happening.
Questions
I understand the unique nature of this API is adding new Entity Types etc, so I understand adding (and potentially deprecating) Discriminator Values. However, at the same time, I can’t help but notice that the Data Factory API seems to regularly get breaking changes approved.
Whilst some older API versions do get a free pass with regards to fixing linting issues and similar, I suspect that because there hasn’t been another API version in so long that the Data Factory API is intentionally running below the radar here.
As such:

Can the ARM Team confirm what’s happening here? Why there’s been so many breaking changes to this API version?
Can the Service Team confirm when a new API version will be introduced? As much as I appreciate reminiscing about 2018, it was 6 years ago at this point, so it feels like there should be a 2024 version ;)
Why is this Service using custom format values? There’s a perfectly good type field in the Swagger/OpenAPI specification for this purpose, and outputting booleans as object is.. unique.
Are there plans to fix this Swagger definition? In particular most of the Discriminated Types don’t define a x-ms-discriminator-value value.

Thanks!

cc @mikekistler and @JeffreyRichter for awareness.

@tombuildsstuff re this:

Each of these breaking changes has been approved, meaning that it must have gone through the breaking change process - yet in the PR description there’s no explanation of the reasoning for the change.

We recently switched to a model where the approval labels provide general reason in them why given approval happened:

https://github.com/Azure/azure-sdk-tools/issues/6374

Another breaking change: https://github.com/Azure/azure-rest-api-specs/pull/28538

@mikekistler @JeffreyRichter

Mike & I are talking to the Data Factory team about all these breaks to see how we can improve the customer experience.
@tombuildsstuff: Please keep reporting these and it gives the team evidence of the problems and customer pain to raise the importance of fixing their versioning strategy.

Another breaking change here: https://github.com/Azure/azure-rest-api-specs/pull/28294
Once again there's no details in the readme for the why:

But apparently this has been approved by the ARM Breaking Changes team?

This is exposed as a hard field rename:

Which shows for us here:
https://github.com/hashicorp/pandora/pull/4138/files#diff-a46695a73172fc26f0a3fb681b1298f7c4b002386c5f80aa4459fd6d943d568dR23


std_meson_args: add --wrap-mode=nofallback

Otherwise projects may download missing dependencies and build and
install them. GNOME projects do this a lot in particular.

[x] Have you followed the guidelines in our Contributing document?
[x] Have you checked to ensure there aren't other open Pull Requests for the same change?
[x] Have you added an explanation of what your changes do and why you'd like us to include them?
[x] Have you written new tests for your changes? Here's an example.

[x] Have you successfully run brew tests with your changes locally?

Thanks @tschoonj!


Connect to snowflake using pivate_key instead of password

With the snowflake python connector, it's possible to create a connection using a private key, for examlpe in this how-to. Does an equivalent exist here? I see references to using a private key in the ADBC documentation

The same keys in ADBC documentation are supported here. So please give it a try and let us know how it goes.

Thank you for the information Jose. I gave it a shot and failed. I apologize if I'm way off on this, I'm a novice Elixir user! I tried the following snippet to test:
kw = [
  {:driver, :snowflake},
  {:username, "..."}
  {:"adbc.snowflake.sql.account", "..."},
  {:"adbc.snowflake.sql.client_option.jwt_private_key", "/path/to/key"}
]

{:ok, db} = Adbc.Database.start_link(kw)

Which produced
{:error, #Adbc.Error<message: "[Snowflake] AdbcDatabaseInit: Go panic in Snowflake driver (see stderr): \"invalid memory address or nil pointer dereference\"", vendor_code: 0, ...>}

This is probably a separate issue but I also tried to connect w/ SSO. In that case Adbc.Database.start_link(...) runs successfully, but Adbc.Connection.start_link(database: db) results in [Snowflake] authentication timed out, and the browser popup that should appear never does.

Hi @mckuzyk, thanks for reporting this. I’ll try to set up one and see how it goes with snowflakes.


:zap: [qodana] QD-9162 Set QODANA_ORGANISATION_ID_HASH env from organ…

…izationIdHash field of response for license request.
Pull Request Details

Description

Related Issue

Motivation and Context

How Has This Been Tested

Types of changes

[ ] Docs change / refactoring / dependency upgrade
[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Checklist

[ ] I have read the CONTRIBUTING document.
[ ] My code follows the code style of this project.
[ ] My commit messages are styled with gitmoji
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[ ] I have added tests to cover my changes.
[ ] All new and existing tests passed.

See my comments in https://github.com/JetBrains/qodana-cli/pull/416


Moving under the official organizazion?

Hi there!
I am one of the maintainers of https://github.com/nextauthjs and I am writing to you because I saw that you created this custom adapter for NextAuth.js.
We have created a home for community adapters here: https://github.com/nextauthjs/adapters
Are you interested in moving your package under @next-auth/sanity-adapter so others can discover it much easier?
You will get full maintainership of the package if you wish, and I can provide you all the help necessary to migrate your code into the repository. We will take care of releases and bundling and all that stuff for you.
Looking forward to hearing from you!

Hello @balazsorban44, the idea of moving it to the community repository seems great, I had seen it but I needed to launch this package quickly and I did not want to wait for times when the pr will be accepted, etc.
If you can provide me with the documentation or something to be able to migrate it to the next auth repo it would be helpful.
Thanks.

@balazsorban44 Sorry I just remembered, this module, in addition to an adapter, also returns methods for authentication with credentials, is it still correct to send it to the adapters?

Ah, I see! The adapters repo is meant for only adapters, so you could extract only that and redistribute it through our organization, while you could keep everything else separate.
What you would need to do is create a PR in which you move your code to a folder called sanity here:
https://github.com/nextauthjs/adapters/tree/canary/packages
You can have a look at the prisma adapter to get a good idea of how an adapter is structured.
We are still working out some small parts, but once you create a PR, I think we will be able to get a release out at worst case in 1 or 2 days. 🙂 If that sound good, let me know!
If you are on Twitter, I have the same name there, ping me and we can talk if you need more help with the migration! ☺


Epic: Staking and Slashing

Leonidas needs an update to have staking and slashing.
### Tasks
- [ ] https://github.com/AztecProtocol/aztec-packages/issues/8754
- [ ] feat: Implement staking to add to validator set
- [ ] feat: Implement slashing a punish / remove from validator set

Closing this for an aggregate "Incentives" issue as a lot of this seems to fall under that catagory.


navd: don't use empty last step banner instructions

According to https://docs.mapbox.com/api/navigation/directions/#banner-instruction-object, bannerInstructions refer to the following maneuver, so the last step will have empty instructions, leading to the issue in  (https://github.com/commaai/openpilot/pull/29032#issuecomment-1641558518)
Example bannerInstructions list by self.route: [[{'primary': {'components': [{'type': 'text', 'text': 'You will arrive at your destination'}], 'type': 'arrive', 'modifier': 'straight', 'text': 'You will arrive at your destination'}, 'distanceAlongGeometry': 101.639}, {'primary': {'components': [{'type': 'text', 'text': 'You have arrived at your destination'}], 'type': 'arrive', 'modifier': 'straight', 'text': 'You have arrived at your destination'}, 'distanceAlongGeometry': 68.056}], []]
And that last step is:
{'intersections': [{'bearings': [180], 'entry': [True], 'in': 0, 'admin_index': 0, 'geometry_index': 6, 'location': [-117.154707, 32.716486]}], 'bannerInstructions': [], 'speedLimitUnit': 'mph', 'maneuver': {'type': 'arrive', 'instruction': 'You have arrived at your destination.', 'bearing_after': 0, 'bearing_before': 360, 'location': [-117.154707, 32.716486]}, 'speedLimitSign': 'mutcd', 'name': '11th Avenue', 'weight_typical': 0, 'duration_typical': 0, 'duration': 0, 'distance': 0, 'driving_side': 'right', 'weight': 0, 'mode': 'driving', 'geometry': {'coordinates': [[-117.154707, 32.716486], [-117.154707, 32.716486]], 'type': 'LineString'}}
You can see the maneuver turns into an "arrival" maneuver, and there are no further instructions.

Before:
https://github.com/commaai/openpilot/assets/25857203/80d42943-1c7d-4aac-bcc7-a014e72afff8
After:
https://github.com/commaai/openpilot/assets/25857203/0c171ab2-0fdd-44c9-a3c3-20606fbdb73a

adeeb's comment on https://github.com/commaai/openpilot/pull/29032 refers to the change in this PR. @jnewb1 instead of clipping the banner instructions to the second to last step, maybe it's cleaner to check if the step's maneuver type is arrive and use its text instead of the banner?
I want to check/make sure:

[ ] Is only the last step always a maneuver type of "arrive"? Docs should hopefully say
[ ] What text is in the current step, why not use that all the time? Banner instructions are for following step, so perhaps they're  all future texts except the last

Probably better visualized:
maneuver {'type': 'depart', 'instruction': 'Drive east on E Street.', 'bearing_after': 90, 'bearing_before': 0, 'location': [-117.15762, 32.714677]} 274.068 50.433
bannerInstructions [{'primary': {'components': [{'type': 'text', 'text': '11th Avenue'}], 'type': 'turn', 'modifier': 'left', 'text': '11th Avenue'}, 'distanceAlongGeometry': 274.068}]

maneuver {'type': 'turn', 'instruction': 'Turn left onto 11th Avenue.', 'modifier': 'left', 'bearing_after': 360, 'bearing_before': 89, 'location': [-117.154694, 32.714695]} 465.665 83.079
bannerInstructions [{'primary': {'components': [{'type': 'text', 'text': 'You will arrive at your destination'}], 'type': 'arrive', 'modifier': 'straight', 'text': 'You will arrive at your destination'}, 'distanceAlongGeometry': 465.665}, {'primary': {'components': [{'type': 'text', 'text': 'You have arrived at your destination'}], 'type': 'arrive', 'modifier': 'straight', 'text': 'You have arrived at your destination'}, 'distanceAlongGeometry': 68.056}]

maneuver {'type': 'arrive', 'instruction': 'You have arrived at your destination.', 'bearing_after': 0, 'bearing_before': 360, 'location': [-117.154725, 32.718878]} 0 0
bannerInstructions []

This is without the hysteresis fix:
https://github.com/commaai/openpilot/assets/25857203/7d8b66a9-b139-4e3b-99f9-474a6210645f


iOS: SAFARI: INTERMITTENT?: Audio doesn't resume after opening link or switching tabs

Version

Phaser Versions:
Phaser v3.20.1 (WebGL | Web Audio)
Phaser v3.20.0-FB (WebGL | Web Audio)
Phaser v3.19.0-FB (WebGL | Web Audio)

Operating system:
Reproduced on iOS 10.3.3, 12.1.4, 12.2, 12.3.1, 12.4.1, 12.4.2, 13.0

Browser:
Safari

Devices reproduces this issue consistently:
iPhone X (Safari 12.4.1)
iPhone 7 (Safari 13.0)
iPhone 6 Plus (Safari 12.4.2)
iPhone 6 (Safari 12.3.1)
iPad 4 (Safari 10.3.3, MD514LL/A)

Devices NOT REPRODUCED (could have sworn it did reproduce at one point, meh):
iPhone 5 (Safari 10.3.3) ... may be intermittent or some other factor?

Description
Steps:

On the iPhone, inside of Safari, go to https://adidasbaseballsnextlevel.com/
(also, bare-bones reproduction is available at https://micsun-al.github.io/tests/phaser3-ios-audio-issue/index.html)
Tap once to begin the background audio loop.
Tap one of the logos to open a link in a new tab.
Close the new tab and return to the game.

Expected Behavior:
The audio should resume playing.
Current Behavior:
Returning to the app tab does not resume audio ... sometimes.  It doesn't seem consistent for some reason.  Sometimes minimizing the game using the home button, and then returning to it has the same behavior.  I can't seem to get this to reproduce, or not reproduce 100% of the time on any of the iPhones.
Here's a video of it reproducing on the iPhone X:
https://youtu.be/QvzvDy2yAyo
Example Test Code
Code:
https://github.com/micsun-al/phaser3-test-audio-ios
Preview:
https://micsun-al.github.io/tests/phaser3-ios-audio-issue/index.html
...But basically, a looping sound will reproduce this issue, and also any new audio play seems to not be audible also.
function preload(){
  this.load.audio('music', ['music.mp3'])
}

function create(){
  const someMusic = this.sound.add('music')
  someMusic.play({ loop: true })
}

Additional Information
This reproduces on https://adidasbaseballsnextlevel.com/
This does NOT seem to reproduce with the Phaser 2.13.3 music example: https://phaser.io/examples/v2/audio/play-music

I have also recreated this issue on iOS 12 and 13 - and setting pauseOnBlur = false has no effect

I wonder if iOS just disposes of the AudioContext and so all future sounds fail?
This new commit may help: https://github.com/photonstorm/phaser/commit/5e1d86b75b2b8a93e4f9f11f9e548df1179506e1
If you pass in a new context when you detect it coming back.

A temporary solution to this issue: use a custom audioContext, then put a listener in for the app 'focus', and wait a bit before calling resume():
`window.addEventListener("focus", function(event)
{
setTimeout(function(){
console.log('resuming...')
audioContext.resume();
}, 1000);
}, false);`

@paulsymphony have you had luck with the above setTimeout approach working?

Yes! No loss of sound on iOS 12 or 13 with this patch. I've reduced the timeout to 500ms with no problems. I also put in a listener for 'blur', and pause() the context.

Thank you for submitting this issue. We have fixed this and the fix has been pushed to the master branch. It will be part of the next release. If you get time to build and test it for yourself we would appreciate that.

I installed using yarn add -D phaser@beta and it seems to install Phaser v3.54.0-dev.
This still seems to reproduce on the following configurations:
iPhone 7, iOS 14.4.1
...coworker tested it on a newer iPhone X (or higher?) and it seems to reproduce for him too. I'll update this once they tell me what model and iOS they have.

With Phaser v3.54.0-dev, setting the following seems to make audio work as expected (it resumes playing after tab switching):
this.sound.pauseOnBlur = false

Setting it to false made it keep playing audio while tab was switched on Android, but not iOS (but it made audio resume correctly on iOS after coming back to the tab).
My workaround for now is:
scene.sound.pauseOnBlur = !scene.sys.game.device.os.iOS

Give the new version in master a go (you will have to build it, it's not on npm yet)

I was googling for an hour, stumbled upon this issue. I just couldn't figure out why my iPhone audio wasn't working. I even cloned the repo, built it and tested out the new version. Nothing worked. Turns out the phone was silent because of the physical silence switch 🤦.

While play the html 5 game  in chrom/firefox browsers, the sounds plays well iphone & ipad version 16.6.
Once minimize & return to the game page, the sound is not playing.
Immediately again minimize & return to the game page, the sound is playing well.
As like this happen alternatively.
Note: The same html 5 game plays and check in iPhone 7, version V 15.7.7 - audio plays properly.
html5gamelink

Use the above link, to check in the ios device directly as i mentioned above.
Can anyone help to resolve this issue? Thanks in advance.


Unix socket support?

Using eredis, can I connect to local redis server through unix socket? e.g. /var/run/redis/redis.sock
I heard that communicating with redis by unix socket has better performance.
Thanks

This kinda possible but will require to use an external library like https://github.com/tonyrog/afunix. I don't think introducing this kind of dependency to this library is wise, but maybe something like pluggable connection handlers may come in handy.

what about erlang 19, and native unix sockets(testing)?

erts/kernel:
Experimental support for Unix Domain Sockets
Example: gen_udp:open(0, [{ifaddr,{local,"/tmp/socket"}}])

Thanks to @igors for #108. Merged!


[Bug]: filament tour js error

What happened?
the filament tour return this error message:
filament-tour-scripts.js?v=<IP_ADDRESS>:2 Uncaught TypeError: Cannot convert undefined or null to object
at getOwnPropertyNames ()
at V (filament-tour-scripts.js?v=<IP_ADDRESS>:2:627)
at s (filament-tour-script…s?v=<IP_ADDRESS>:2:14278)
at Object.drive (filament-tour-script…s?v=<IP_ADDRESS>:2:15107)
at m (filament-tour-script…s?v=<IP_ADDRESS>:2:24002)
at c (filament-tour-script…s?v=<IP_ADDRESS>:2:19654)
at filament-tour-script…s?v=<IP_ADDRESS>:2:19121
at handler4 (livewire.js?id=cc800bf4:4665:7)
at dispatchEvent (livewire.js?id=cc800bf4:4675:12)
at dispatch3 (livewire.js?id=cc800bf4:4642:5)

How to reproduce the bug
my code is simply this:
public function tours(): array
{
return [
Tour::make('dashboard')
->steps(
Step::make(".prova")
->title('Woaw ! Here is your avatar !')
->description('You look nice !')
->icon('heroicon-o-user-circle')
->iconColor('primary')
),
];
}
use HasTour;
 i use a class Dahsbord that extends filament's Page class

Package Version
3.0.0
PHP Version
8.3.8
Laravel Version
11
Which operating systems does with happen with?
No response
Notes
No response

Out of curiosity, does this ...(".prova") element exist in your Dashboard?


Add support for SGEN to precompile classes for XmlSerializer

Currently the XmlSerializer used in LINQBridgeVs uses the old .net framework 4 version which tries to compile serialization assemblies on the fly. Add sgen as a build task:
https://mikhail.io/2014/05/21/sgen-to-precompile-classes-for-xmpserializer/
https://www.codeproject.com/Articles/526956/All-about-XmlSerializer-Performance-and-Sgen

done this, and didn't bring any benefit. I believe the current .net 4 xml serializer still compiles the serialization dll from scratch.


Too many invoice lines causes UnmappableXComLengthPushed exception

On a recent test run for getting all the paid invoice lines for a new bookplate fund, the output of getting those invoice lines was too many for airflow dynamic task mapping to create mapped tasks for the next task. Of all the bookplate funds with funds in folio, this is the only one that failed. The log shows:
[2024-10-24, 07:35:48 UTC] {_client.py:1038} INFO - HTTP Request: POST https://okapi-test.stanford.edu/authn/login-with-expiry "HTTP/1.1 201 Created"
[2024-10-24, 07:35:48 UTC] {invoices.py:161} INFO - Getting paid invoice lines for 5f6e44fe-1129-4962-8406-0fcc60adf98d
[2024-10-24, 07:35:48 UTC] {_client.py:1038} INFO - HTTP Request: GET https://okapi-test.stanford.edu/invoice-storage/invoice-lines?query=%28fundDistributions%3D%3D%2A%225f6e44fe-1129-4962-8406-0fcc60adf98d%22%2A%29%20and%20invoiceLineStatus%3D%22Paid%22&limit=500&offset=0 "HTTP/1.1 200 OK"
[2024-10-24, 07:35:49 UTC] {_client.py:1038} INFO - HTTP Request: GET https://okapi-test.stanford.edu/invoice-storage/invoice-lines?query=%28fundDistributions%3D%3D%2A%225f6e44fe-1129-4962-8406-0fcc60adf98d%22%2A%29%20and%20invoiceLineStatus%3D%22Paid%22&limit=500&offset=500 "HTTP/1.1 200 OK"
[2024-10-24, 07:35:49 UTC] {_client.py:1038} INFO - HTTP Request: GET https://okapi-test.stanford.edu/invoice-storage/invoice-lines?query=%28fundDistributions%3D%3D%2A%225f6e44fe-1129-4962-8406-0fcc60adf98d%22%2A%29%20and%20invoiceLineStatus%3D%22Paid%22&limit=500&offset=1000 "HTTP/1.1 200 OK"
[2024-10-24, 07:35:50 UTC] {_client.py:1038} INFO - HTTP Request: GET https://okapi-test.stanford.edu/invoice-storage/invoice-lines?query=%28fundDistributions%3D%3D%2A%225f6e44fe-1129-4962-8406-0fcc60adf98d%22%2A%29%20and%20invoiceLineStatus%3D%22Paid%22&limit=500&offset=1500 "HTTP/1.1 200 OK"
[2024-10-24, 07:35:50 UTC] {_client.py:1038} INFO - HTTP Request: GET https://okapi-test.stanford.edu/invoice-storage/invoice-lines?query=%28fundDistributions%3D%3D%2A%225f6e44fe-1129-4962-8406-0fcc60adf98d%22%2A%29%20and%20invoiceLineStatus%3D%22Paid%22&limit=500&offset=2000 "HTTP/1.1 200 OK"
[2024-10-24, 07:35:50 UTC] {python.py:202} INFO - Done. Returned value was: [{'id': 'cd02c884-33bb-4ac8-9e02-006d10096ab4', 'adjustments': [{'description': 'TAX_9125', 'exportToAccounting': False, 'fundDistributions': [],
<snip>
[2024-10-24, 07:35:51 UTC] {taskinstance.py:2731} ERROR - Task failed with exception
Traceback (most recent call last):
  File "/home/airflow/.local/lib/python3.11/site-packages/airflow/models/taskinstance.py", line 452, in _execute_task
    _record_task_map_for_downstreams(
  File "/home/airflow/.local/lib/python3.11/site-packages/airflow/models/taskinstance.py", line 932, in _record_task_map_for_downstreams
    raise UnmappableXComLengthPushed(value, max_map_length)
airflow.exceptions.UnmappableXComLengthPushed: unmappable return value length: 1706 > 1024

https://sul-libsys-airflow-dev.stanford.edu/log?dag_id=digital_bookplate_instances&task_id=invoice_lines_paid_on_fund&execution_date=2024-10-24T00:50:16.600813%2B00:00
The fund name is LINDER.

Some options are to write out the too many things returned into a file or if it's too many, somehow break up the list into manageable chunks of 500 for mapping to tasks.


Update 2016-01-19-week-one-we-go-to-vermont.md

Hi Melody,
Just put in some indenting for ease of reading, and added a link to Jessamyn's (I'm a friend of hers, as are most people!) website.
Great project, very happy to be a part of it.
Tamara (VT)

Thanks!! This made it much better! :)


fix version requirement for serde_bytes

also add serde tests

Codecov Report

Merging #3 (aff90ca) into main (4cb996f) will increase coverage by 0.61%.
The diff coverage is 100.00%.

:exclamation: Your organization is not using the GitHub App Integration. As a result you may experience degraded service beginning May 15th. Please install the Github App Integration for your organization. Read more.
@@            Coverage Diff             @@
##             main       #3      +/-   ##
==========================================
+ Coverage   97.04%   97.66%   +0.61%
==========================================
  Files          13       13
  Lines        1963     2097     +134
==========================================
+ Hits         1905     2048     +143
+ Misses         58       49       -9

Files Changed
Coverage Δ

src/bytes/serde.rs
100.00% <100.00%> (ø)

src/string/serde.rs
93.85% <100.00%> (+16.39%)
:arrow_up:


Bump mlir-air; fixup nondeterministic AIE routing error

Summary of the issue:

With GEMM E2E tests big enough to use 4x4 AIE tiles and 4 AIE memtiles, nondeterministic failures happen indicating failure to generate a legal routing.

Summary of the fix:

Identified an MLIR-AIR pass which buffers memref.alloc ops for code motion using std::map<Operation *, Operation *>.
std::map sorts the keys, leading to nondeterministic sequence of memref.alloc ops being generated after the code motion.
Those output IRs, with some memref.alloc ops randomly permutated, are all legal MLIR-AIR designs. But when AIE memtile buffer allocator maps them to physical memtiles as round robin, there are scenarios where the routings become unnecessarily complicated, and encountered routing congestion.
Current solution is to replace the use of std::map<Operation *, Operation *> with std::vector<std::pair<Operation *, Operation *>>, which comes with a deterministic ordering of elements.

@yzhang93 , @nirvedhmeshram , the CI was repeated for 10 times and did not trigger the error anymore.


Split the github workflow in CI and CD

What does this implement/fix? Explain your changes
The general idea is that we want to run a CI workflow that is more lightweight, hence,  allows for faster turnover rates, and a CD workflow that runs more tests, computes the coverage, and maybe in the future directly pushes the latest package version to PyPi.
Does this close any currently open issues?
No.
Any relevant code examples, logs, error output, etc?
See the actions.
Any other comments?
I chose to run the pre-commit hooks in a different way than in test.yml such that we only need to specify one container and do everything in it.
For the first checks, the CD workflow will run on draft PRs. This should be changed when this PR is close to acceptance.
Let's debate on the CD workflow running the slow tests.
Checklist
Put an x in the boxes that apply. You can also fill these out after creating
the PR. If you're unsure about any of them, don't hesitate to ask. We're here to
help! This is simply a reminder of what we are going to look for before merging
your code.

[x] I have read and understood the contribution
guidelines
[x] I agree with re-licensing my contribution from AGPLv3 to Apache-2.0.
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have added tests that prove my fix is effective or that my feature works
[x] I have reported how long the new tests run and potentially marked them
with pytest.mark.slow.
[x] New and existing unit tests pass locally with my changes
[x] I performed linting and formatting as described in the contribution
guidelines
[x] I rebased on main (or there are no conflicts with main)

I like the idea of running the slow tests during CD to make sure they are run at all.
Did you test how big the impact of running with/without coverage is? The downside of running CI without coverage would be that we don't get a notification if a PR reduces test coverage significantly.

Did you test how big the impact of running with/without coverage is? The downside of running CI without coverage would be that we don't get a notification if a PR reduces test coverage significantly.

I very much agree. I am thinking of putting the coverage back in for CI, especially since the CD will only run once a PR is merged (if it stays as I intended)
I did not check the difference in cov with included slow tests

Even though this PR is not marked as a draft any more, it still is. The reason is that I want to debug the if clause for ignoring draft PRs but first I need to make sure that the respective workflow triggers at all xD

Ignoring draft PRs works

@janfb how do you feel about creating a config file for codecov? It keeps raising a warning cause we don't specify one. Here is an example of one that I did a while ago. The benefit is that you can ignore certain folders, specify min cov percentages etc...

@janfb how do you feel about creating a config file for codecov? It keeps raising a warning cause we don't specify one. Here is an example of one that I did a while ago. The benefit is that you can ignore certain folders, specify min cov percentages etc...

Yes, if this gives us for flexibility in handling what code cov complaints about - great! Thanks! 🙏

Did you already try to run the CD workflow? I'm curious how long the conversion of the notebook takes.

Thanks for adding the docs building as well, that's great.
I think it would be good to get @tomMoral or @plcrodrigues input here as they have been working on the docs/, see #1019

Thanks for adding the docs building as well, that's great. I think it would be good to get @tomMoral or @plcrodrigues input here as they have been working on the docs/, see #1019

I'm glad you like it. My vision is that one beautiful day we will publish dev docs from the CD pipeline and stable docs from a release workflow (which is yet to come). For this we could to use mike which keeps track of multiple doc versions. This will be a seperate PR though, best after the hackthon wave is over
Yes, I've seen that PR and think that it's orthogonal to this in the sence that we can combine them it easily.

Why would you like to skip the slow tests on the pull requests?
This would mean that you can merge in main changes which might break the package.
As the main bottleneck for merging new contributions is usually the reviews, I don't think having a fast CI is necessary (not that the CI is already quite fast compared to many open-source projects).

Why would you like to skip the slow tests on the pull requests? This would mean that you can merge in main changes which might break the package.
As the main bottleneck for merging new contributions is usually the reviews, I don't think having a fast CI is necessary (not that the CI is already quite fast compared to many open-source projects).

I wouldn't like it, but this is the way it is right now.
Slow CI runs are definitely a bottleneck in developing. There is no need for an additional bottleneck, even if reviews are the main one.

@tomMoral @janfb @Baschdl I now configured it to run only the fast tests for every push and the fast+slow tests for every push on a PR. Note, that this will lead to double execution of tests. I don't have a strong opinion in this and can easily revert it. As said before

I don't think we should do that in the CD workflow as its purpose is a bit of a different one (computing max coverage, doc, etc.). Moreover, I think that it is very unlikely that there is a failure introduced due to Python version incompatibility which only occurs in the slow tests and not the others.

I don't believe that we will catch too many error's with this

To quote myself (https://github.com/sbi-dev/sbi/pull/1063#discussion_r1537319533):

I think @michaeldeistler had a strong opinion against increasing the runtime of our CI.

and increasing it to over 30min is quite a lot. I would be in favor of running the slow tests as well as tests on other Python versions somewhere but an improvement to the current state would already be if that means running them only once a day etc.

Interesting test fail. I think it is unrelated to this PR. What do you think @Baschdl ?

To quote myself (#1063 (comment)):

I think @michaeldeistler had a strong opinion against increasing the runtime of our CI.

and increasing it to over 30min is quite a lot. I would be in favor of running the slow tests as well as tests on other Python versions somewhere but an improvement to the current state would already be if that means running them only once a day etc.

Yeah sure, I mean my original proposal was to only run them once a PR is merged (not ideal, but minimally invasive from the current state)

Interesting test fail. I think it is unrelated to this PR. What do you think @Baschdl ?

Quick summary for everyone who doesn't want to look at CI. This test fails for sim_batch_size=1, num_workers=10 but works for all other configurations:
https://github.com/sbi-dev/sbi/blob/c383d7f95b29067a885ba250cfac8104c38583ba/tests/multiprocessing_test.py#L28-L31
I also had a look and wanted to open an issue for it. I could imagine multiple reasons for it: overhead of creating 10 workers (on a machine with only 2 cores) is not worth it if we only have 1 sample per batch or problems with running this test with -n auto. I think the first is more likely because all other variants work.

I also had a look and wanted to open an issue for it. I could imagine multiple reasons for it: overhead of creating 10 workers (on a machine with only 2 cores) is not worth it if we only have 1 sample per batch or problems with running this test with -n auto. I think the first is more likely because all other variants work.

It is a bit unintuitve though that it fails for the smallest batch size.
Anyhow, I think one could safely use 2 or 3 workers instead of 10. It proves the same point.

A bit late to the party but here is my input:

slow tests used to be really slow, like 8h or so. Therefore, we really wanted to run them separately, usually before every new release.
they are much faster now, but I still like the separation and the possibility to add more extensive functional tests without having to worry so much about CI time.
Thus, I think we should stick with -m "not slow and not gpu" tests during the "CI" phase
But it would be good to run all tests before merging into main, or before each new release at least. Thus, I really like the separation into CI and CD.
However, we would still need to test GPU tests locally, right?

However, we would still need to test GPU tests locally, right?

Yes, they aren't run anywhere currently. We could set up a self-hosted runner with a GPU but we would need to think about long-term maintenance.

they are much faster now, but I still like the separation and the possibility to add more extensive functional tests without having to worry so much about CI time.

Thus, I think we should stick with -m "not slow and not gpu" tests during the "CI" phase

But it would be good to run all tests before merging into main, or before each new release at least. Thus, I really like the separation into CI and CD.

OK, so this PR is almost ready then. Just a few questions / points from my side. I added the verbose -v flag, however, I am not sure if we really want this in the CI tests, since we just care if one fails. The -x (exit on first fail) flag seems to be ineffective with parallelism. Finally, the new workflow which just tests can not be tested before it's merged (quite ironic). The idea here is to run the slow tests manually if desired. I can also make CD run the low non-GPU tests, but this workflow will only happen when a PR is merged, i.e., the damage has been done.

So, what is left to do here? The PR is still missing a review... :pray:  @Baschdl @janfb

The main difference between CI and CD are the slow tests and building the docs, right? I.e., codecov is checked in both?

Yes, but there is also a difference in when they are triggered:

CI as soon an ppl are committing on a non-draft PR
CD as soon as a PR is merged (actually on every push to main)

Both compute and upload the coverage, but under different (new) names, i.e., codecov-sbi-fast-cpu and codecov-sbi-all-cpu
Moreover, CI runs the OS-PyTorch matrix, while CD only runs the combination Python3.8 and pip's choice for the torch version.
CD also builds the docs to check if that process runs without any errors. However, it does not upload.


when moon

I want to buy this exciting new web3.0 currency
where to buy dear sir

You cant. It was long ago abandoned

SAD!


Solution wide stylecop.json file

Is it possible to have only one stylecop.json file which is valid for all projects within the solution? I think in legacy StyleCop it checked the parent folders for the settings file and took this one if it was found. Something similar would be nice, otherwise the file has to be copied to each and every project and it has to be made sure that for new projects this is done as well.

We currently implemented such a solution for this project using linked files. You'll need to add the same stylecop.json file to each of your projects as a linked file, but then it will work.

Ok, is it likely that it will stay this way or is it planned to somewhen have the same behavior as legacy StyleCop had?

This (simpler ability to configure analyzers) is something the Roslyn team is discussing as a new feature which would benefit many analyzer developers. Right now the process is manual but I hope to have more information in the "reasonably near" future. :smile:

Ok thank you, then I guess we will go with the "linked file" approach until there are further news ;-)

Any progress?

@xperiandri You can follow dotnet/roslyn#7071 for updates on this.

Also experiencing the same issue, that solution-wide stylecop would be really very useful for big solutions with big teams.
The linked file approach feels more like workaround or a trick.

@d1mnewz, looks like it is deprecated in favor of .editorconfig which is supported in VS2017

@xperiandri Currently .editorconfig is only supported for some of the built in analyzers that ship with Visual Studio 2017 (the ones that have diagnostic IDs IDExxxx). We're working to expand .editorconfig to everyone, and which point it will become the recommended approach for analyzers that require configurability.

Directory.Build.props is directory based as well, but it's certainly helpful to be able to include a props file explicitly too; surely people have to be considerate of how they organize these when order matters, but the presence of one does not ignore the usefulness of another. I understand this isn't the same thing and I understand that there's a certain amount of expectation defined by the standard that is agnostic from visual studio, but I'm not so much asking to change anything about the directory-oriented inheritance hierarchy, though I'm sure there are plenty of other valuable improvements to focus on. My first hope was that the editor would honor linked files (which have explicit directory locations and function just like a file actually existing at that location for the purpose of literally every single other tool I know of in the editor). It appears this feature worked in previous incarnations of coding standards and has been lost in migrating to .editorconfig.
We're discussing other options, but it's really very unfortunate that there's no way for a team to share a single version of .editorconfig across many repositories without just copy/pasting one to the root of the C drive (or some glorified/maintenance-multiplied version of that). Package Management solves exactly this problem for so many other similar problems (code analysis configuration and tooling, linters, aspect tooling/configuration), this is literally the only coding standard configuration we're not able to control from a package at the moment. For the teams that are currently sharing a single .editorconfig across multiple repositories guaranteeing this is a point of a lot of additional maintenance and scripting where it could otherwise be quite simple. Admittedly the file itself is less likely to change than most, but changing it is still quite a tax when the same settings either need to be replicated everywhere or a script that only has any work to do once a year is running on every build or every time we get latest from source.
All that said, I also see that this is an older conversation on the subject and I was mostly hoping to find a solution to a problem we have struggled with multiple times and have yet to find an ideal simple solution. If none exists then none exists. If there's no intention to support any other method of sharing this configuration then no solution will exist (at least for the foreseeable future). That answers enough of my questions for now so I can at least stop searching. Thanks kindly for the help.

@sharwell I've seen .editorconfig mentioned as becoming the common source for analyzer devs to write points to, at least as var back as 2017. Did .editorconfig ever actually replace stylecop.json? If so, where is the documentation that points to how to configure it appropriately? The Documentation folder here still only refers to stylecop.json

@sharwell I've seen .editorconfig mentioned as becoming the common source for analyzer devs to write points to, at least as var back as 2017. Did .editorconfig ever actually replace stylecop.json? If so, where is the documentation that points to how to configure it appropriately? The Documentation folder here still only refers to stylecop.json

@Jothay Eventually https://github.com/DotNetAnalyzers/StyleCopAnalyzers/pull/3285 should allow .editorconfig to replace stylecop.json.

@Jothay Eventually https://github.com/DotNetAnalyzers/StyleCopAnalyzers/pull/3285 should allow .editorconfig to replace stylecop.json.


chore: release 1.2.91

:robot: I have created a release *beep* *boop*
1.2.91 (2022-04-22)
Bug Fixes

buildah_backend: bump copyrec, fix broken windows build (cefeb72)
git worktree switch invalidation loop (e698bff)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/werf/werf/releases/tag/v1.2.91 :sunflower:


the username, password, street, city, state.... are always null

No matter what I input in the registration.html form, those personal data are never posted to this RegistrationForm and they are always null.
https://github.com/habuma/spring-in-action-5-samples/blob/c016b0cc0fac7200e55e5172a810667c9fb495be/ch04/tacos/src/main/java/tacos/security/RegistrationForm.java#L20

My guess is that this is a byproduct of not having Lombok installed in your IDE. I'd wager that if you run it from the command line (./mvnw clean package; java -jar target/tacocloud-0.0.4-SNAPSHOT.jar) that it will work. Or if you were to install Lombok in your IDE, I'd bet it would work.
I'll leave this one open for now, pending more information.

Having no further information to go on, and having exercised this code myself many times tonight, I'm going to close this issue. If this is still a problem and there's more info to help debug it, please reopen and provide as much detail as possible.


Score needs to be more visible, display after every turn

Should probably have a toast or score button on header to display score, then a dialog that shows the score change after a turn is played.

Fixed this.  Removed app name (CrosSwords) from header and replaced it with updating score with highlights to indicate current turn.


Integrate with Firebase database

Might it be possible to support integration with Firebase database?

Since Firebase is not backed by a SQLite storage, perhaps it would mean having to write an additional DBHelper for ClusteringHelper


Certain velocity speed will create jitterness when a sprite is moving

This took forever to isolate. @photonstorm , please take a look into this! I finally setup an example:
http://liveweave.com/vk7KmA
Hold down D and S (or any diagonal movement) and wait 1 second while moving your character will start to jitter. I initially thought that changing the rotation of the sprite is causing this, but its not.
If you change the playerspeed variable to 240 the jitterness goes away.  Some numbers will create jitter, and some will not. I'm not sure how to further isolate this. This is what I've got so far though, hopefully it sheds light on something.

Isolated this a bit more.
Jitterness only starts to happen when the camera is panning.

Update:
Isolated this issue more.
I added  game.renderer.renderSession.roundPixels = true to the render function and it seems to stop the jitter. Great! But when you apply a rotation to your sprite (sprite.angle=31), example:
http://liveweave.com/r55DO9
The jitter is back... Lol

Another Update:
This seems like a WebGL issue.
Look here:
http://jsfiddle.net/Dillybob/7LLqnxw1/19/
There is no jitter whatsoever. But if you do: Phaser.WEBGL instead of CANVAS, the jitterness happens... What in the world?

Hey. Looked at your last example and I'm only able to recreate the jitterness if roundPixels is set to True.  It also seem to happen regardless of camera movement, but less noticeable. Otherwise it works here. Probably some kind of rounding issue in WEBGL ?

@nexiuhm Oops I posted the wrong one. I meant http://jsfiddle.net/Dillybob/7LLqnxw1/26/
@nexiuhm Yep, can confirm about camera. I just disabled game.camera.follow and the jitterness is still there.
To further isolate this:

Happens only in WEBGL
Camera panning is irrelevant
if game.renderer.renderSession.roundPixels is true and the sprite IS NOT rotated, no jitterness.
if game.renderer.renderSession.roundPixels is true and the sprite IS rotated, jitterness occurs

@Dillybob92  Indeed. Seems like the pixels dosnt get rounded properly when the sprite is rotated. Edited your example abit to further demonstrate this: https://jsfiddle.net/7LLqnxw1/28/

@nexiuhm Thanks.
Check this out:
http://jsfiddle.net/Dillybob/7LLqnxw1/29/
Disabled the arcade physics, and moving with x, y positions only, no velocity.  And rotated. No jitterness?
Seems like, a body.velocity issues with physics inside WebGL. Weird....

The jitter may be due to the camera setting the follow position a frame late or something similar. If that is happening, it would cause what you are seeing here.

The jitter may be due to the camera setting the follow position a frame late or something similar. If that is happening, it would cause what you are seeing here.

Yeah, that's what I thought initially. Again, sorry for this cesspool of a bug issue. I've just been trying to isolate this bug because its been throwing me in every direction.
Except even if we disable the camera: http://jsfiddle.net/Dillybob/7LLqnxw1/30/
The jitterness is still there? I'm really not sure what else to test. If we change the velocity it seems like the jitterness actually is less. I have a feeling the velocity of arcade physics is making it jitter. Except, if the renderer is a CANVAS, the jitterness doesn't happen at all.

@Dillybob92 I think what we are seeing here is that when using 'roundPixels = true' , the verticies are just stripped of fractions not caring on how approximate it is to it's closest integer.  Which means that the verticies are not coordinated in finding the right pixel to snap to. Changing this behavoir might be a huge performance hit to the rendering part.
My suggestion is have roundPixels always be false in WEBGL and just make sure the data supplied to the renderer is not a float number. Maybe the physics engine should take this into account ? Idk. This is far beyond my abilites to even suggest.

Created a new, more professional issue:
https://github.com/photonstorm/phaser/issues/2885


Added deprecation annotation

These classes are currently used only for the deprecated WindowsAzureTableStorage, so imo should be marked as deprecated too.

Seems fine and there is already an alternative for WindowsAzureTableStorage a user can switch to. Will WindowsAzureTableStorage and its dependent classes removed in a future version of KeyValueStore? Should the KeyValueStore version in that the classes and the interface are removed named inside the deprecation message?

In the first release it will be still included and removed from v2 (https://github.com/doctrine/KeyValueStore/issues/46).
The AzureSdkTableStorage should be used instead of the WindowsAzureTableStorage, do you suggest to write it in these annotations too?

I suggest to name the version inside the deprecation messages when they will be removed. In that case v2.

:+1:


Hide CacheControlBuilder from the public API

Motivation:
We moved Client/ServerCacheControl* into the common package in #1816.
This means we can make protected methods package-local.
Modifications:

Make CacheControlBuilder package-local
Make all protected methods package-local
Rename ArmeriaHttpUtil.parseCacheControl() to parseDirectives()
for future reuse
Rename ArmeriaHttpUtil.parseCacheControlSeconds() to
parseDirectiveValueAsSeconds() for future reuse.
Remove type parameter from CacheControlBuilder for cleaner Javadoc
generation

Result:

Leaner public API which hides the stuff which was unnecessarily
visible from users.

LGTM once more!


fleet: running fleet via Ignition

Describe how to set up systemd units for running fleet via rkt, making use of Ignition.
Fixes https://github.com/coreos/bugs/issues/1669

Capturing OOB discussion: @dongsupark is going to add the fleet-wrapper script (from https://github.com/coreos/bugs/issues/1669) to the fleet repository, then we will have the ignition config pull down that script so that we don't need to embed a horrible systemd file in-line.

LGTM but I'd like @crawford to take a pass on it

@crawford Fixed. PTAL

typical

I tested, and this works, with one caveat: fleet's gonna hang until etcd is started. @dongsupark how about adding a Requires=etcd2.service in this one, since it's a stand-alone example (i.e. without other configuration to make it point to a different etcd)?

@jonboulle Yeah, right. Pushed one more commit.

LGTM


Create basic combinatorics module

There are some fundamental combinatorics stuff that is and would be useful:

binominal coefficient calculation
factorial calculation (integers only)

I'd like to see these under a Statisaur.combinatorics namespace.

I'm happy to jump in on this one.


Add MakeWidgetList

Adds functions to convert impl IntoIterator<Item = impl MakeWidget>
directly into Stack, Layers, etc.

I'm not opposed to this, but it's really replacing WidgetList::from_iter(vec!["hello", "button"]), not .into_iter().collect::<WidgetList>().
We should go further and make any type that implements this implement IntoValue<WidgetList> and IntoDynamic<WidgetList>. This will cause conflicting implementations, but we can remove the duplicate code paths.

Sorry for the delay, somehow I didn't notice there were new changes!


GuiTextBox() extended should be reviewed

raygui allows defining RAYGUI_TEXTBOX_EXTENDED for an advance GuiTextBox() implementation. Actually, that implementation is a quite complete text editor with cut-copy-paste and advance features. It also implies a bunch of additional usage functions.
I'm considering moving this control to an independent portable module gui_texbox_edit.h, similar to other windows/layouts I use on my tools development. That way, users could choose to add this advance control jut including:
#define GUI_TEXTBOX_EDITOR_IMPLEMENTATION
#include "gui_textbox_editor.h"

Some related work already done in the example: text_editor
It requires further work on it... there are some TODO notes on it.


Background color does not work with scroll

https://cl.ly/022L3k1p2O15
The background color only covers the initial, visible portion of the screen. When scrolling down, the background is not colored.

This is due to position: absolute; style of the decorator's element. Need to change to fixed as before. Or even better make it possible to pass an option

https://github.com/jakelazaroff/react-storybook-decorator-background/compare/master...infu:patch-1


fix(native-filters): fix loop caused by external state handler

SUMMARY
#14710 caused a regression that sometimes froze the browser due to overly complex use of useEffect hooks. This PR does the following:

replace all references to defaultValue with filterState as per #14785
remove local management of filter state and defer handling to application (now the application can fully control what the filter state is)

BEFORE/AFTER SCREENSHOTS OR ANIMATED GIF

TESTING INSTRUCTIONS

ADDITIONAL INFORMATION

[ ] Has associated issue:
[ ] Changes UI
[ ] Includes DB Migration (follow approval process in SIP-59)

[ ] Migration is atomic, supports rollback & is backwards-compatible
[ ] Confirm DB migration upgrade and downgrade tested
[ ] Runtime estimates and downtime expectations provided

[ ] Introduces new feature or API
[ ] Removes existing feature or API

Could you improve types after recent changes? I'm getting a few new TS errors after the previous PR

Could you improve types after recent changes? I'm getting a few new TS errors after the previous PR

Hmm, these should have been fixed by the superset-ui bump in #14710

Hmm, these should have been fixed by the superset-ui bump in #14710

I re-pulled the changes and rerun npm install just to be sure, but I'm getting those errors anyway 🙁

Hmm, these should have been fixed by the superset-ui bump in #14710

I re-pulled the changes and rerun npm install just to be sure, but I'm getting those errors anyway 🙁

This is what I get:

Hmm, these should have been fixed by the superset-ui bump in #14710

I re-pulled the changes and rerun npm install just to be sure, but I'm getting those errors anyway 🙁

I got these errors before. however, run npm ci, these errors are no more.

Hmm, these should have been fixed by the superset-ui bump in #14710

I re-pulled the changes and rerun npm install just to be sure, but I'm getting those errors anyway 🙁

I got these errors before. however, run npm ci, these errors are no more.

No errors for me also

Hmm, these should have been fixed by the superset-ui bump in #14710

I re-pulled the changes and rerun npm install just to be sure, but I'm getting those errors anyway 🙁

I got these errors before. however, run npm ci, these errors are no more.

Thanks Yongjie, that solved the errors!


There's no way to color phone field hint

When using phone authentication there's no way to change color of the phone field hint.
From the sources:
<style name="FirebaseUI.TextInputEditText.PhoneField">
        <item name="android:hint">@string/fui_phone_hint</item>
        <item name="android:inputType">phone</item>
        <item name="android:imeOptions">actionNext</item>
        <item name="android:paddingBottom">16dp</item>
        <item name="android:paddingTop">16dp</item>
  </style>

android:textColorHint is not present and thus is not connected to any color.

Android device: Xiaomi Mi5S
Android OS version: 7.1.2
Firebase/Play Services SDK version: 11.0.4
FirebaseUI version: 2.3.0

@charlag Why would you want to only change the hint text color? If you want to change the entire look and feel of the sign-in experience, make sure to use AppCompat and define a colorPrimary and colorAccent.

@SUPERCILEX the problem is that our login flow screens have a dark background and if the background is black the hint is simply not visible.

@charlag is your entire app dark themed? If so, you should be using AppCompat's DayNight theme which FirebaseUI fully supports. Otherwise, I believe this example dark theme works:
https://github.com/firebase/FirebaseUI-Android/blob/9dc4c120f33d4f4acc42b2a0c2195e130e8b1076/app/src/main/res/values-v21/styles.xml#L17-L31

Closing because there hasn't been a response in a while and we likely can't support this type of customization anyway,


Remove reference to English from Sophia conversation tree

About the PR
Sophia no longer refers to English, but instead Galactic Common to fit in with the vast majority of SS13/14 lore.
Also fixes a moth typo. *chitters
Media
No media, no fun.

[X] I have added screenshots/videos to this PR showcasing its changes ingame, or this PR does not require an ingame showcase

Changelog
No CL, no fun.

"with the majority of SS13/SS14 lore"
???

goonstation exists
ok


More colors in the syntax

Is it possible to "add more colors" to the syntax?
E.g make if/else/each one color, strings another, this etc?

Do I have to update the packege or is it just some CSS? :grin:

This is another example (using Atom Dark syntax theme). Different colors for 'handlebars blocks' and html tags would be nice!


No indication and validation in the taker about valid order range

the new UI lost the ability to communicate about the available offers from the maker.
I tried ordering $103 from the maker, and it failed during contract setup with a really confusing error:
Failed to setup contract with maker: CET signatures don't verify: no enc sig from other party for price range 55360..=55363

I'm not sure the error fits to what you are describing:
If you got that far, the maker has accepted the order  already (i.e. it was a valid request) but you failed during contract setup.
This error should not happen though and would rather indicate a bug.

I'll spawn the error as a separate bug. but the issue raised here still stands (I had no idea whether maker was being able to accept, or whether I had enough money in my wallet to get transaction - both of these conditions are not checked/communicated to the user in case it fails.


spacy implementation with certain verb types removed

thanks for sharing! here's the rake.py file edited to use spacy instead of nltk. it removes certain verb types in _get_phrase_list_from_words, which i found to improve performance a bit (in small sample size).
# -*- coding: utf-8 -*- """Implementation of Rapid Automatic Keyword Extraction algorithm. As described in the paper Automatic keyword extraction from individual
documents` by Stuart Rose, Dave Engel, Nick Cramer and Wendy Cowley.
"""
ADAPtED tO USE SPACY INStEAD OF NLtK
import string
from collections import Counter, defaultdict
from itertools import chain, groupby, product
from enum import Enum
import spacy
from spacy.lang.en.stop_words import STOP_WORDS
nlp = spacy.load('en_core_web_sm')
class Metric(Enum):
"""Different metrics that can be used for ranking."""
DEGREE_TO_FREQUENCY_RATIO = 0  # Uses d(w)/f(w) as the metric
WORD_DEGREE = 1  # Uses d(w) alone as the metric
WORD_FREQUENCY = 2  # Uses f(w) alone as the metric

class Rake(object):
"""Rapid Automatic Keyword Extraction Algorithm."""
def __init__(
    self,
    stopwords=None,
    punctuations=None,
    language="english",
    ranking_metric=Metric.DEGREE_TO_FREQUENCY_RATIO,
    max_length=100000,
    min_length=1,
    verb_tags_to_rm=None
):
    """Constructor.
    :param stopwords: List of Words to be ignored for keyword extraction.
    :param punctuations: Punctuations to be ignored for keyword extraction.
    :param language: Language to be used for stopwords
    :param max_length: Maximum limit on the number of words in a phrase
                       (Inclusive. Defaults to 100000)
    :param min_length: Minimum limit on the number of words in a phrase
                       (Inclusive. Defaults to 1)
    """

    # By default use degree to frequency ratio as the metric.
    if isinstance(ranking_metric, Metric):
        self.metric = ranking_metric
    else:
        self.metric = Metric.DEGREE_TO_FREQUENCY_RATIO

    # If stopwords not provided we use language stopwords by default.
    self.stopwords = stopwords
    if self.stopwords is None:
        self.stopwords = list(STOP_WORDS)

    # If punctuations are not provided we ignore all punctuation symbols.
    self.punctuations = punctuations
    if self.punctuations is None:
        self.punctuations = string.punctuation

    """
    RM: VB  VERB    VerbForm=inf    verb, base form
    RM: VBD VERB    VerbForm=fin Tense=past verb, past tense
    KEEP: VBG VERB    VerbForm=part Tense=pres Aspect=prog    verb, gerund or present participle
    KEEP: VBN VERB    VerbForm=part Tense=past Aspect=perf    verb, past participle
    RM: VBP VERB    VerbForm=fin Tense=pres verb, non-3rd person singular present
    RM: VBZ VERB    VerbForm=fin Tense=pres Number=sing Person=3    verb, 3rd person singular present
    """
    self.verb_tags_to_rm = verb_tags_to_rm
    if self.verb_tags_to_rm is None:
        self.verb_tags_to_rm = set(['VB','VBD','VBP','VBZ'])

    # All things which act as sentence breaks during keyword extraction.
    self.to_ignore = set(chain(self.stopwords, self.punctuations))

    # Assign min or max length to the attributes
    self.min_length = min_length
    self.max_length = max_length

    # Stuff to be extracted from the provided text.
    self.frequency_dist = None
    self.degree = None
    self.rank_list = None
    self.ranked_phrases = None

def extract_keywords_from_text(self, text):
    """Method to extract keywords from the text provided.
    :param text: Text to extract keywords from, provided as a string.
    """
    sentences = [str(s) for s in nlp(text.lower()).sents if str(s) not in {'.!?'}]
    # sentences = nltk.tokenize.sent_tokenize(text)
    self.extract_keywords_from_sentences(sentences)

def extract_keywords_from_sentences(self, sentences):
    """Method to extract keywords from the list of sentences provided.
    :param sentences: Text to extraxt keywords from, provided as a list
                      of strings, where each string is a sentence.
    """
    phrase_list = self._generate_phrases(sentences)
    self._build_frequency_dist(phrase_list)
    self._build_word_co_occurance_graph(phrase_list)
    self._build_ranklist(phrase_list)

def get_ranked_phrases(self):
    """Method to fetch ranked keyword strings.
    :return: List of strings where each string represents an extracted
             keyword string.
    """
    return self.ranked_phrases

def get_ranked_phrases_with_scores(self):
    """Method to fetch ranked keyword strings along with their scores.
    :return: List of tuples where each tuple is formed of an extracted
             keyword string and its score. Ex: (5.68, 'Four Scoures')
    """
    return self.rank_list

def get_word_frequency_distribution(self):
    """Method to fetch the word frequency distribution in the given text.
    :return: Dictionary (defaultdict) of the format `word -> frequency`.
    """
    return self.frequency_dist

def get_word_degrees(self):
    """Method to fetch the degree of words in the given text. Degree can be
    defined as sum of co-occurances of the word with other words in the
    given text.
    :return: Dictionary (defaultdict) of the format `word -> degree`.
    """
    return self.degree

def _build_frequency_dist(self, phrase_list):
    """Builds frequency distribution of the words in the given body of text.
    :param phrase_list: List of List of strings where each sublist is a
                        collection of words which form a contender phrase.
    """
    self.frequency_dist = Counter(chain.from_iterable(phrase_list))

def _build_word_co_occurance_graph(self, phrase_list):
    """Builds the co-occurance graph of words in the given body of text to
    compute degree of each word.
    :param phrase_list: List of List of strings where each sublist is a
                        collection of words which form a contender phrase.
    """
    co_occurance_graph = defaultdict(lambda: defaultdict(lambda: 0))
    for phrase in phrase_list:
        # For each phrase in the phrase list, count co-occurances of the
        # word with other words in the phrase.
        #
        # Note: Keep the co-occurances graph as is, to help facilitate its
        # use in other creative ways if required later.
        for (word, coword) in product(phrase, phrase):
            co_occurance_graph[word][coword] += 1
    self.degree = defaultdict(lambda: 0)
    for key in co_occurance_graph:
        self.degree[key] = sum(co_occurance_graph[key].values())

def _build_ranklist(self, phrase_list):
    """Method to rank each contender phrase using the formula
          phrase_score = sum of scores of words in the phrase.
          word_score = d(w)/f(w) where d is degree and f is frequency.
    :param phrase_list: List of List of strings where each sublist is a
                        collection of words which form a contender phrase.
    """
    self.rank_list = []
    for phrase in phrase_list:
        rank = 0.0
        for word in phrase:
            if self.metric == Metric.DEGREE_TO_FREQUENCY_RATIO:
                rank += 1.0 * self.degree[word] / self.frequency_dist[word]
            elif self.metric == Metric.WORD_DEGREE:
                rank += 1.0 * self.degree[word]
            else:
                rank += 1.0 * self.frequency_dist[word]
        self.rank_list.append((rank, " ".join(phrase)))
    self.rank_list.sort(reverse=True)
    self.ranked_phrases = [ph[1] for ph in self.rank_list]

def _generate_phrases(self, sentences):
    """Method to generate contender phrases given the sentences of the text
    document.
    :param sentences: List of strings where each string represents a
                      sentence which forms the text.
    :return: Set of string tuples where each tuple is a collection
             of words forming a contender phrase.
    """
    phrase_list = set()
    # Create contender phrases from sentences.
    for sentence in sentences:
        word_list, words_to_rm = [], set()
        for d in nlp(sentence):
            tok_str = str(d).lower()
            if tok_str not in {'.!?'}:
                word_list.append(tok_str)
            if d.tag_ in self.verb_tags_to_rm:
                words_to_rm.add(tok_str)
        # word_list = [word.lower() for word in wordpunct_tokenize(sentence)]
        phrase_list.update(self._get_phrase_list_from_words(word_list, words_to_rm))
    return phrase_list

def _get_phrase_list_from_words(self, word_list, words_to_rm):
    """Method to create contender phrases from the list of words that form
    a sentence by dropping stopwords and punctuations and grouping the left
    words into phrases. Only phrases in the given length range (both limits
    inclusive) would be considered to build co-occurrence matrix. Ex:
    Sentence: Red apples, are good in flavour.
    List of words: ['red', 'apples', ",", 'are', 'good', 'in', 'flavour']
    List after dropping punctuations and stopwords.
    List of words: ['red', 'apples', *, *, good, *, 'flavour']
    List of phrases: [('red', 'apples'), ('good',), ('flavour',)]
    List of phrases with a correct length:
    For the range [1, 2]: [('red', 'apples'), ('good',), ('flavour',)]
    For the range [1, 1]: [('good',), ('flavour',)]
    For the range [2, 2]: [('red', 'apples')]
    :param word_list: List of words which form a sentence when joined in
                      the same order.
    :return: List of contender phrases that are formed after dropping
             stopwords and punctuations.
    """
    # would rather use an index of word instead of words_to_rm, but can't figure it out
    groups = groupby(word_list, lambda x: x not in self.to_ignore and x not in words_to_rm)
    phrases = [tuple(group[1]) for group in groups if group[0]]
    return list(
        filter(
            lambda x: self.min_length <= len(x) <= self.max_length, phrases
        )
    )`

also, this is a wrapper that consolidates very similar keywords, based on word vector similarity. curious what you think! -Chris
def _get_consolidated_phrases_based_on_similarity(self, ranked_phrases, threshold=0.9):
    """
    ranked_phrases is list of str, ordered by first is best keyword, last is worst keyword
    """

    grouped_phrases = []
    already_grouped_phrases = set()
    ranked_phrases_nlp = [nlp(p) for p in ranked_phrases]
    for row_p_idx, row_phrase in enumerate(ranked_phrases_nlp):
        if row_phrase in already_grouped_phrases:
            continue
        current_group = [row_phrase]
        for col_p_idx, col_phrase in enumerate(ranked_phrases_nlp):
            if col_p_idx <= row_p_idx:
                continue
            if col_phrase in already_grouped_phrases:
                continue
            if row_phrase.similarity(col_phrase) >= threshold:
                current_group.append(col_phrase)
                already_grouped_phrases.add(col_phrase)
            already_grouped_phrases.add(row_phrase)
        grouped_phrases.append(current_group)

    if self.debug:
        for gp in grouped_phrases:
            if len(gp) > 1:
                print('\tmerged phrases into one group: {}')

    return [p[0] for p in grouped_phrases]


[feat] update CLN to v24.11.1 and switch pay plugin to experimental xpay

CLN v24.11 Release Notes

xpay is a new, experimental plugin for payments. It's rewritten from the ground up, on top of another plugin called askrene, which provides advanced routing advice for payments. The two play together: xpay tells askrene about the results of payment attempts, so it learns over time. The hard work was done by @Lagrang3 who wrote and refined the minimum-cost-flow solver which is the heart of askrene.
For reckless souls, xpay-handle-pay can be set to true (even at runtime, using setconfig) to have xpay take over the simple variants of pay.

Similar to: https://github.com/raspiblitz/raspiblitz/issues/4777

pushing Core Lighthning v24.11.1 to RaspiBlitz v1.12.0 - see https://github.com/raspiblitz/raspiblitz/pull/4882#issuecomment-2554140097


Add knative-monitoring to the namespaces that system commands use

don't show as error if namespace not found, just print as info

Fixes #834

Merged as 4ed17398340f5aa06471045009778f26d21ff139.


refactoring limit rules

https://github.com/aws-cloudformation/cfn-python-lint/pull/1271
extracted 14+ of the 26 main limit rules into src/cfnlint/rules/limits.py

I really like this.  The other idea is that there is also idea that you can keep embedding classes.
We did this for the Lambda EOL checks.
https://github.com/aws-cloudformation/cfn-python-lint/blob/master/src/cfnlint/rules/resources/lmbd/DeprecatedRuntimeEnd.py#L10
Not sure if that would make life easier or just a different way to get to the same result or if I'm just way off.