Wrapped bot throws exception

Hi! I'd like to start by thanking you for your continued work on Robocode. I've had a lot of fun with it for almost a decade now.
While evaluating the new Tank Royale platform, I attempted to port some legacy (non-publically-available) bots using the API bridge. They all trigger the same exception at runtime:
dev.robocode.tankroyale.botapi.BotException: StatusEventMapper.map: Could not get robot status from map
	at dev.robocode.tankroyale.bridge.StatusEventMapper.map(StatusEventMapper.java:14)
	at dev.robocode.tankroyale.bridge.AllEventsMapper.lambda$map$0(AllEventsMapper.java:28)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
	at dev.robocode.tankroyale.bridge.AllEventsMapper.map(AllEventsMapper.java:21)
	at dev.robocode.tankroyale.bridge.BotPeer.getAllEvents(BotPeer.java:535)
	at dev.robocode.tankroyale.bridge.BotPeer.getScannedRobotEvents(BotPeer.java:613)
	at robocode.AdvancedRobot.getScannedRobotEvents(AdvancedRobot.java:889)
	at infovk.repro.TankRoyaleRepro.getScannedRobotEvents_(TankRoyaleRepro.java:34)
	at infovk.repro.TankRoyaleRepro.act(TankRoyaleRepro.java:72)
	at infovk.repro.TankRoyaleRepro.run(TankRoyaleRepro.java:51)
	at dev.robocode.tankroyale.bridge.BotPeer$BotImpl.runRobot(BotPeer.java:732)
	at dev.robocode.tankroyale.bridge.BotPeer$BotImpl.run(BotPeer.java:721)
	at dev.robocode.tankroyale.botapi.internal.BotInternals.lambda$startThread$3(BotInternals.java:118)
	at java.base/java.lang.Thread.run(Thread.java:1583)

I have tried to create a minimal reproducing sample bot that triggers the behavior and am attaching a
packaged jar. You can find the source in this gist. The bot is expected to do nothing except maintain a radar lock in a 1v1, it neither moves nor fires.
The issue seems to stem from requesting the robot's event queue, but not to be related to ScannedRobotEvents specifically. In the "full framework", we handle all event types, but this does not seem to trigger any additional errors.
The reason for the admittedly somewhat odd event handling is that this is the above example is the result of taking a framework and stripping away everything that was not needed to trigger the exception. (Background Info: At my university, the stundents organize a one week introductory programming course for new students before actual classes start. We've found that event handlers were a difficult concept to grasp for many, so we wanted to move everything into the main loop and are storing events in a queue. It's been a few years since I wrote those abstractions, so I unfortunately do not recall why we have our own queue, but also reference AdvancedRobot#getScannedRobotEvent.)
Everything works on legacy Robocode and I'm decently confident we're not violating any laws of Robocode, but I wouldn't guarantee it 100%. I have done my best to strip down everything that is not needed to reproduce the issue.
Thank you in advance for looking into this!

@Cu3PO42
I am happy to hear that you have had a lot of fun with Robocode! 😊
And thank you for both reporting the issue, and providing a lot of details for how to reproduce it, which is crucial for getting the issues fixed. It sounds like a generic bug with the bridge that needs to be fixed.
Regarding not using event handler, and instead using the main loop and reading out events from there is a perfectly legal way to do it in Robocode. You can use the event handlers, if you want, or just extract the current events from the main method or any other method.
I will have a look into this issue and see if I can fix it. 🙂

@Cu3PO42
I have now fixed the issue in the (robocode-api) causing the issue you encountered. And the TankRoyaleRepro you provided seems to run fine with the fixed version. :+1:
I have put the new robocode-api-0.2.0.jar for you here into a zip file (GitHub does not allow me to upload jar files directly)
robocode-api-0.2.0.zip
If you encounter more issues, if will be very happy if you raise more tickets about it so we can improve the bridge and be able to support as many legacy robots as possible. 😊

Thanks for getting to this so quickly! I can confirm the reproduction bot now runs correctly in the first round, and so do other bots based on the same framework.
Unfortunately, they all stop working in the second round due to issues I suspect are related. I'll open another issue when I have the time to do a proper write up for this (probably tomorrow).

Preview of the issue
The reproduction bot I included fails with the exception
```
java.util.ConcurrentModificationException
	at java.base/java.util.LinkedList$LLSpliterator.forEachRemaining(LinkedList.java:1253)
	at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:735)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
	at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921)
	at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
	at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682)
	at infovk.repro.TankRoyaleRepro.getScannedRobotEvents_(TankRoyaleRepro.java:35)
	at infovk.repro.TankRoyaleRepro.run(TankRoyaleRepro.java:49)
	at dev.robocode.tankroyale.bridge.BotPeer$BotImpl.runRobot(BotPeer.java:729)
	at dev.robocode.tankroyale.bridge.BotPeer$BotImpl.run(BotPeer.java:718)
	at dev.robocode.tankroyale.botapi.internal.BotInternals.lambda$startThread$3(BotInternals.java:118)
	at java.base/java.lang.Thread.run(Thread.java:1583)
java.util.ConcurrentModificationException
	at java.base/java.util.LinkedList$LLSpliterator.forEachRemaining(LinkedList.java:1253)
	at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:735)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
	at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921)
	at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
	at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682)
	at infovk.repro.TankRoyaleRepro.getScannedRobotEvents_(TankRoyaleRepro.java:35)
	at infovk.repro.TankRoyaleRepro.run(TankRoyaleRepro.java:49)
	at dev.robocode.tankroyale.bridge.BotPeer$BotImpl.runRobot(BotPeer.java:729)
	at dev.robocode.tankroyale.bridge.BotPeer$BotImpl.run(BotPeer.java:718)
	at dev.robocode.tankroyale.botapi.internal.BotInternals.lambda$startThread$3(BotInternals.java:118)
	at java.base/java.lang.Thread.run(Thread.java:1583)
```
Other bots fail with
```
The thread of the bot could not be interrupted causing the bot to hang.
So the bot was stopped by force.
```
I assume the thread running the bot for the first round keeps running even after it is complete. This seems to align with the infinite main-loop. Might it be necessary to throw some termination exception? I'll need to look into how that currently work.

@Cu3PO42
Let us continue on this thread with the second issue as well. 🙂
A ConcurrentModificationException should be easy to fix as soon as I figure out where it happens. I will have a look at this as well.

Sure, if that works better for you I'm happy to continue here! I have been able to create a simple reproduction for the other exception
The thread of the bot could not be interrupted causing the bot to hang.
So the bot was stopped by force.

as well.
Compared to the previous version, I have added basic linear targeting. You can find the source here and a packaged version
in this ZIP.
I suspect that the actual implementation of linear targeting is irrelevant and the different error is simply caused by slightly different timing.

@Cu3PO42
I have already found several issues that I am trying to solve within the Bot APIs for Java and C#. The most critical one is the one you already mentioned, that it seems that old threads are not stopping in new rounds. And another where the bridged bots cannot be restarted as they disconnect from the WebSocket and exits.

I appreciate the update! I didn't mean to convey any urgency. Once you believe you have resolved the problems you are aware of, I'll resume testing!

With Release 0.27.0 lots of bugs has been fixed.
A lot of bugs has also been fixed with the Robocode Bridge. But some still remains.

Thank you! I can confirm that the bots I tested are now working correctly :-)
I also tested some bots from LiteRumble. DrussGT seems to work perfectly, but BeepBoop crashes immediately:
2024-12-03 21:09:40.493 java[56579:12301144] WARNING: Secure coding is automatically enabled for restorable state! However, not on all supported macOS versions of this application. Opt-in to secure coding explicitly by implementing NSApplicationDelegate.applicationSupportsSecureRestorableState:.
Connected to: ws://localhost:7654
Connection error with ws://localhost:7654
java.lang.NullPointerException: Cannot invoke "java.util.List.add(int, Object)" because "previousStates" is null
	at kc.mega.game.GameState.updateStates(GameState.java:193)
	at kc.mega.game.GameState.updateMyStates(GameState.java:213)
	at kc.mega.game.GameState.updateWithoutScan(GameState.java:70)
	at kc.mega.BeepBoop.onSkippedTurn(BeepBoop.java:205)
	at dev.robocode.tankroyale.bridge.BotPeer$BotImpl.onSkippedTurn(BotPeer.java:875)
	at dev.robocode.tankroyale.botapi.internal.EventHandler.publish(EventHandler.java:26)
	at dev.robocode.tankroyale.botapi.internal.BaseBotInternals$WebSocketListener.handleSkippedTurn(BaseBotInternals.java:953)
	at dev.robocode.tankroyale.botapi.internal.BaseBotInternals$WebSocketListener.onText(BaseBotInternals.java:858)
	at java.net.http/jdk.internal.net.http.websocket.WebSocketImpl$ReceiveTask.processText(WebSocketImpl.java:635)
	at java.net.http/jdk.internal.net.http.websocket.WebSocketImpl$ReceiveTask.run(WebSocketImpl.java:443)
	at java.net.http/jdk.internal.net.http.common.SequentialScheduler$CompleteRestartableTask.run(SequentialScheduler.java:149)
	at java.net.http/jdk.internal.net.http.common.SequentialScheduler$SchedulableTask.run(SequentialScheduler.java:207)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
	at java.base/java.lang.Thread.run(Thread.java:1583)

While the stack trace seems to indicate a problem with BeepBoop itself, it does work correctly in legacy Robocode.
I'll see about conducting a more extensive test of all bots in the rumble soon.

@Cu3PO42 Thank you for the confirmation.
There are still some issues I currently hunt down. One of them is that the cannon seems to point in the wrong direction for some bots. So I do expect a bug somewhere in the bridge. But I have had a hard time spotting it.


feat: Add support for custom block time

Closes #606
Adds an optional parameter to produce_blocks to set the start time and the interval of the produced blocks.
As can be seen from the included test, querying the node to find out block times could use some UX improvements.
This PR also includes two new types that act as wrappers/anti-corruption layer for the corresponding gql-client types:

Block (added to improve UX around retrieving block times)
TransactionResponse (added for consistency)

The types expose a reasonable subset of the fields provided in the client types as methods. If the need should arise, we can cache the conversion of the fields instead of performing it on each method call.
Until now the client Block type was not exposed by the provider, if some external code makes use of it, it does so via the client method directly. Therefore this is a safe change and won't annoy any users.
The same is not true for 'TransactionResponse' since this was returned by some provider methods and has now been swapped for our wrapper. We can of course choose postpone this change to a separate issue since it is a breaking change but at the same time not relevant for enabling custom block times.
An open question is do we also want to wrap types like Message, Coin, ChainInfo?

I've added chrono for the timestamp and removed the TransactionResponse wrapper to avoid introducing a breaking change in this PR. The plan is to make a new PR for it which will also include wrappers for Resource, ChainInfo etc.


Fix C# distribtest on centos7

Fixes #8070.

I'd only imagine that after the fix happens on mono end, we might want to change again

@apolcyn  yes, after mono on centos is fixed we can remove the workaround.


LocationProvider.Network not working

{String locationServiceProvider:
LocationServiceProvider.LocationManagerBasedLocation,
String locationProvider: LocationProvider.Network}
Some example but its not working.

How did you invoke it ?


I can't send anything

My balance: 0.10080223
When I try to send $32 (0.01240478), I get the error "Transaction failed because 1240478 exceeds the total amount of coins in this wallet. Please add some funds and then try again."

Thanks for reporting this, I'll give it a look.
Meanwhile, if you need to send a transaction ASAP you can extract a mnemonic code (app menu -> wallet settings -> view mnemonic code) and use it to restore a balance in MultiBit HD for desktop (our wallets are compatible, use BIP32 option when restoring).

Thank you!

I've tried MultiBit, but a lot of my balance comes out as 'unconfirmed' and when I repair the wallet, that amount changes, sometimes less, sometimes more. Sometimes more than half the balance!

Also, still getting the original issue.

Can't reproduce an issue in my test environment.
May I ask if the total balance of BTC 0.10080223 in your wallet consists of a large number of very small transactions?

Also, there indeed was a UI bug at the very least.
My suspicion is that somehow wallet adds a ridiculously high fee to 0.01240478 which results in final transaction value exceeding a wallet balance (large number of small incoming transactions may be the reason but still it seems like resulting fee is way too high even if that's the case).
I've just issued an update via Google Play which will be reporting by how much exactly a final transaction sum + fees exceeds a wallet balance. Please let me know what it says once an app is updated.

Yes, it does consist of a large number of small transactions.

Thanks, the fee was the issue. Apparently the transaction was 26-27 kB so the fees were enormous.
Why was the size so large? Because it was an accumulation of many small transactions?
The lowest fee option was also 0.001. Maybe you can add more options for that? MultiBit lets me set it lower with their slider.

Yes, a transaction is constructed from inputs (which use unspent outputs from previous incoming transactions) and each input contributes a lot to the overall transaction size in kB so when a lot of small incoming transactions is used to form a new outgoing one it's fee may indeed be extremely large compared to value transferred.
Have you managed to spend the funds using either of wallets? My wallet is optimized for simplicity so fee options are very basic and it works most of the time, plus setting a feerate too low increases a risk of miners not accepting a transaction at all.
But such a large transactions are a bit special in a way that miners do have an incentive to accept them even if the fee is very low (because a lot of unspent outputs are eliminated). I think I'll consider using more detailed options for such a special transactions.

Closing this, let me know if nay help is still needed.


Compilation of Bend development tools

Is your feature request related to a problem? Please describe.
The community is already building a lot of interesting tooling for Bend, but at the moment this is all dispersed.
Describe the solution you'd like
A file documenting know tools for working with Bend. Things like syntax highlighting, LSP, editor and terminal extensions, containers, etc.
Describe alternatives you've considered

Having it in a discussion page.
Having it in a wiki.
Putting it in a gist and linking it in the readme

Additional context
Eventually this should be moved elsewhere, but in the beginning I think this is sufficient.

I suppose i can dump them here for the time being.
Tools:
Tree sitter grammar: https://github.com/LaBatata101/tree-sitter-bend.git
Zed plugin: https://github.com/mrpedrobraga/zed-bend
NeoVim plugin: https://github.com/SergioBonatto/bend-vim
Vscode plusin: https://github.com/RohanVashisht1234/bend-syntax-highlighter
LSP: https://github.com/matheuslenke/bend-lsp
Alternative import tool: https://github.com/FayCarsons/Wiggle
Docker (podman) image: https://github.com/Wolfsauge/podman_build_bend
Tools integrated to upstream repos:
Lite-XL plugin: https://github.com/lite-xl/lite-xl-plugins/pull/440 (merged)
Zed plugin: https://github.com/zed-industries/extensions/pull/878 (PR open)
Nix package: https://github.com/NixOS/nixpkgs/pull/312972 (merged, see https://github.com/HigherOrderCO/Bend/pull/499)
Other tools:
Inet visualization: https://github.com/tjjfvi/interactive-nets

@developedby I thinkg create a new repository in HigherOrderCO as HigherOrderCO/awesome-bend. just like every other awesome-x repository it will have a README.md and all the contents. there. I have created as gist for an example https://gist.github.com/KunalSin9h/c234622dcf73427a6929d24f00e0e6c8.
Then that repo can be added in the holy grail of awesomeness https://github.com/sindresorhus/awesome

@developedby I thinkg create a new repository in HigherOrderCO as HigherOrderCO/awesome-bend. just like every other awesome-x repository it will have a README.md and all the contents. there. I have created as gist for an example https://gist.github.com/KunalSin9h/c234622dcf73427a6929d24f00e0e6c8.
Then that repo can be added in the holy grail of awesomeness https://github.com/sindresorhus/awesome

Sure, that sounds great.


Display user's quite and survey attempts on progress & ranking pages

display table of quizzes/surveys
allow to drill down into a single quiz/survey to see all of its details
create a new cards on P&R page to link to the quiz/survey attempt page
if associated to a skill then provide a way to navigate from a skill to its attempts

wording on ticket is OBE.  Was decided not to do this:

if associated to a skill then provide a way to navigate from a skill to its attempts

:+1:


Use typeof to simplify JSDoc class types

Replaces all but one use of function(new: ... with typeof to simplify JSDoc class types. The remaining case in WKT.js throws tsc errors like Type 'typeof Point' is not assignable to type 'typeof Geometry'.. With tsc this is usually caused by the constructor signatures not matching.

The build passed, but status didn't update here.


fix calculation of wal write buffer size

What problem does this PR solve?
Issue Number: close #5721
Problem Summary: The write buffer size of LogWriter is not right under some case.
What is changed and how it works?
Check List
Tests

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

Side effects

[ ] Performance regression: Consumes more CPU
[ ] Performance regression: Consumes more Memory
[ ] Breaking backward compatibility

Documentation

[ ] Affects user behaviors
[ ] Contains syntax changes
[ ] Contains variable changes
[ ] Contains experimental features
[ ] Changes MySQL compatibility

Release note

None

/run-all-tests

/rebuild

/rebuild

/run-all-tests


[WIP] Avena ansible

This is a work in progress tracking PR for Avena's initial Ansible scripts.
I do believe that (most?) everything we need is here now, but these scripts have issues still. I will fix those, but leaving this here for others to start getting some exposure.
This does not call docker-compose -- we need think about how to appropriately structure that.
Ideas:

have nodes pull a git repo with the docker-compose.yml file in it and run docker-compose up -d. Then changes to the docker services would not be through Ansible, but rather by periodically pulling a git.

have Ansible copy a docker-compose.yml file from somewhere and start it. We would have a playbook that would update those docker-compose files.

Something to keep in mind: We will likely have a large fleet of "avena" nodes, but there could be many configurations of the docker-compose services ... thinking ISOBlue HD, wifi test, etc.

Merging this without review ... it's our starting point :shrug:


[BUG] Unnecessary scraping at the end of the run

Bug Description
Output of kube-burner version
kube-burner-ocp v1.2.3 which leverages kube-burner v1.9.5
Describe the bug
With some workloads we observe an unnecessary (and duplicate) scrapping at the end of the run (those lines were marked with ==>):
 $ kube-burner-ocp web-burner-node-density --gc=false --sriov=true --alerting=true --probe=false --bfd=false --limitcount=35 --scale 2 --crd=false --es-server=https:/elasticserver.com:443 --es-index=myindex --profile-type regular
...
time="2024-04-11 14:46:48" level=info msg="Indexing finished in 120ms: created=1" file="metadata.go:66"
time="2024-04-11 14:46:48" level=info msg="Evaluating alerts for prometheus: https://prometheus-k8s-openshift-monitoring.apps.vlan607.rdu2.scalelab.redhat.com" file="alert_manag
er.go:120"
time="2024-04-11 14:46:49" level=info msg="🔍 Scraping https://prometheus-k8s-openshift-monitoring.apps.vlan607.rdu2.scalelab.redhat.com Profile: config/metrics.yml Start: 2024-
04-11T14:35:38Z End: 2024-04-11T14:46:39Z" file="prometheus.go:64"
time="2024-04-11 14:46:49" level=info msg="Scraping metrics for job: cluster-density" file="prometheus.go:80"
time="2024-04-11 14:47:01" level=info msg="Scraping metrics for job: app-job-1" file="prometheus.go:80"
time="2024-04-11 14:47:11" level=info msg="Scraping metrics for job: app-job-2" file="prometheus.go:80"
time="2024-04-11 14:47:21" level=info msg="Scraping metrics for job: app-job-3" file="prometheus.go:80"
time="2024-04-11 14:47:31" level=info msg="Scraping metrics for job: app-job-4" file="prometheus.go:80"
time="2024-04-11 14:47:41" level=info msg="Scraping metrics for job: app-job-5" file="prometheus.go:80"
time="2024-04-11 14:47:52" level=info msg="Indexing [0] documents from metric nodeCPUSeconds-Infra-start" file="prometheus.go:227"
time="2024-04-11 14:47:52" level=info msg="Indexing skipped due to 0 docs" file="prometheus.go:233"
...
time="2024-04-11 14:52:18" level=info msg="Indexing [31] documents from metric prometheus-ingestionrate" file="prometheus.go:227"
time="2024-04-11 14:52:22" level=info msg="Indexing finished in 3.755s: created=31" file="prometheus.go:233"
time="2024-04-11 14:52:22" level=info msg="🔍 Scraping https://prometheus-k8s-openshift-monitoring.apps.vlan607.rdu2.scalelab.redhat.com Profile:  Start: 2024-04-11T14:35:38Z En
d: 2024-04-11T14:46:39Z" file="prometheus.go:64"
==> time="2024-04-11 14:52:22" level=info msg="Scraping metrics for job: cluster-density" file="prometheus.go:80"
==> time="2024-04-11 14:52:22" level=info msg="Scraping metrics for job: app-job-1" file="prometheus.go:80"
==> time="2024-04-11 14:52:22" level=info msg="Scraping metrics for job: app-job-2" file="prometheus.go:80"
==> time="2024-04-11 14:52:22" level=info msg="Scraping metrics for job: app-job-3" file="prometheus.go:80"
==> time="2024-04-11 14:52:22" level=info msg="Scraping metrics for job: app-job-4" file="prometheus.go:80"
==> time="2024-04-11 14:52:22" level=info msg="Scraping metrics for job: app-job-5" file="prometheus.go:80"
time="2024-04-11 14:52:22" level=info msg="Finished execution with UUID: f667957e-561c-4536-9711-03958b2eb541" file="job.go:278"
time="2024-04-11 14:52:22" level=info msg="Indexing cluster metadata document" file="helpers.go:144"
time="2024-04-11 14:52:22" level=info msg="Indexing finished in 121ms: created=1" file="helpers.go:152"
time="2024-04-11 14:52:22" level=info msg="👋 Exiting kube-burner f667957e-561c-4536-9711-03958b2eb541" file="helpers.go:112"

To Reproduce
Steps to reproduce the behavior:

Download kube-burner-ocp v1.2.3
Run (with a proper ES server/index):

 $ kube-burner-ocp web-burner-node-density --gc=false --sriov=true --alerting=true --probe=false --bfd=false --limitcount=35 --scale 2 --crd=false --es-server=https:/elasticserver.com:443 --es-index=myindex --profile-type regular

Expected behavior
No unnecessary scrapping at the end of the run.

https://github.com/kube-burner/kube-burner/pull/617 seems to solve the issue.
Grabbing the web-burner-node-density workload as an example:

Time before the fix: 140 min
Time after the fix: 125 min


Inconsistent contributor "title" elements

In cases where the author has multiple suffixes to their name, such as "MD" and "PhD", declaration varies between:

Just picking one or the other.
Using multiple "TITLE" types.
Using a single "TITLE" and joining the suffixes with a comma.

E.g. Some variations for Aiden Abidov:
https://github.com/preston/vha-kbs-knarts/blob/612e893c65226b306a71c1b9869c39f53554a3af/content/cardiology_chest_paincad_clinical_white_paper/b35/CDSK_KRprt_CRDT_B35CPCAD.XML#L316
https://github.com/preston/vha-kbs-knarts/blob/612e893c65226b306a71c1b9869c39f53554a3af/content/cardiology_electrophysiology_ep_implanted_cardiac_device/b10/CDSK_KRprt_OS_B10EPICDFu.xml#L184
This also happens for Megan Gerber (o22/o4), and probably others.

Should now be consistent across all artifacts. All current artifacts have been revalidated.


Add ARM Batch swagger spec.

Hi @xingwu1, I'm your friendly neighborhood Azure Pull Request Bot (You can call me AZPRBOT). Thanks for your contribution!

It looks like you're working at Microsoft (xingwu). If you're full-time, we DON'T require a contribution license agreement.

If you are a vendor, DO please sign the electronic contribution license agreement. It will take 2 minutes and there's no faxing! https://cla.azure.com.

TTYL, AZPRBOT;

Hi @xingwu1, I'm your friendly neighborhood Azure Pull Request Bot (You can call me AZPRBOT). Thanks for your contribution!

It looks like you're working at Microsoft (xingwu). If you're full-time, we DON'T require a contribution license agreement.

If you are a vendor, DO please sign the electronic contribution license agreement. It will take 2 minutes and there's no faxing! https://cla.azure.com.

TTYL, AZPRBOT;

Fixed most comments.

@xingwu1 - Are you planning to fix more comments or are you done fixing them?

@amarzavery I fixed all the comments (reviewed by our team tech writer).


Stops playing after a few songs, FIX

I realized that after a whle the songs would stop playing, so I began to play with some settings and I found out that the music continues after muting and unmuting the volume. So I created a simple script to do this https://gist.github.com/oscar-chavez/b285b9f98d852aba1dee02b76967bdbc
once you have that .sh file, run _crontab -e _ and type */3 * * * * Desktop/raspotifyfix.sh
Hope this helps, it worked for me.

@oscar-chavez The fix does not work and it's also not really a nice solution. But the issue is real. I also have the problem. If you change the volume the sound is back. The songs seem to play but there is no sound output produced. I also found out that restarting the service will solve the issue too.
But actually this bug breaks the general functionality and makes it nearly unusuable. Someone a working fix?


provision http.handlers.waf: invalid WAF config from string: failed to readfile: open path: invalid argument

here is Caddyfile:
/coraza # cat Caddyfile
{
	debug
	auto_https off
	order coraza_waf first
}

<IP_ADDRESS>:443 {
	tls internal

	coraza_waf {
		directives `
		Include /ruleset/coraza.conf
		Include /ruleset/sites/test/*.conf
		Include /ruleset/coreruleset/rules/*.conf
		`
	}
	reverse_proxy <IP_ADDRESS>:4443 {
	}
}

config file exists:
/coraza # ls /ruleset/coraza.conf
/ruleset/coraza.conf

caddy doesn't see config:
/coraza # caddy reload
2023/04/26 08:01:04.459	INFO	using adjacent Caddyfile
Error: sending configuration to instance: caddy responded with error: HTTP 400: {"error":"loading config: loading new config: loading http app module: provision http: server srv0: setting up route handlers: route 0: loading handler modules: position 0: loading module 'subroute': provision http.handlers.subroute: setting up subroutes: route 0: loading handler modules: position 0: loading module 'waf': provision http.handlers.waf: invalid WAF config from string: failed to readfile: open path: invalid argument"}

Hi, thanks for the report. Just sharing that most likely it is the same (open) issue reported https://github.com/corazawaf/coraza/discussions/662#discussioncomment-5493467 🧐

Please retry @vladget


Project dead ?

Is this project dead?
The last commit was on Nov 3, 2016.

This implementation is quite limited, only a few simple queries are supported. Maybe they are working on something more general.

#850

any news from the team?

They shut down but Linux Foundation took over the RethinkDB company
I really hope the project will continue <3

:worried:

For anyone trying to access the official project website http://horizon.io (without https) works.
Can anyone from the core contribution / dev team take a stand on the projects future?

So sad to see this die out.....

This is cool. Someone does not maintain this any longer?

So sad... such good tech. 😿

@ItsEcholot "Can anyone from the core contribution / dev team take a stand on the projects future?"
@deontologician @neumino @Tryneus any idea who we can tag/ask? :D

The project is basically community driven now (as any other RethinkDB projects)
cc @marshall007 @KittyBot

Thanks for dropping by @neumino, I knew you would know who to mention in this to get people their answers.
Yes it is quite sad :(

quite sad :(

The official site is no longer works seems like..

horizon.io is still up

Huh, I get

Oh, you're right. I had to bust my cache. Whoops!

Any chance to turn the documentation site on again or move it elsewhere?

Same question here. Do the docs exist anywhere else?

I don't know, technically the source of the webpage should be a part of one of the repos for rethinkdb

as far as i can tell the sources for the docs are here:
https://github.com/rethinkdb/horizon-docs

I'd like to host the docs somewhere, but I have no idea how you're supposed to turn that repo into a website.  Its README doesn't really help.

Alright, I figured out how to turn that repo into a website.  I went through and edited all the links to point at .html files and then I made a little static website demonstration script.
I've got the docs hosted at http://samuelhughes.com/rethinkdb/horizon-docs/docs/
If you pester me I might improve the CSS a bit :-)
The source for building the static website is at my fork https://github.com/srh/horizon-docs/

I've just ran into the #533 I've noticed that there are plenty of fixes done (half a year of development) on next branch. Is anyone using the latest build?

RethinkDB has found a new home at the Linux Foundation.
Maybe Horizon will follow.

I guess Horizon has been... sunset? 🤡

We have partially restored the horizon site from the web archive. Some content is missing and there are probably some broken links.
https://support.arcx.com/horizon/
http is also supported at the moment.

I refactor the website from web archive and host it on a CDN.
https://horizon-io.surge.sh
the repo at
https://github.com/rethinkdb-mirror/horizon.io

Note: Old RethinkDB changed to RethinkDB-legacy
and a new healthy developing taking place in RethinkDB as a Rebrand of RebirthDB.
With This, I Hope many projects that depend on RethinkDB will revamp without fear. :-)


Enabling tweak injection breaks application permissions

After respring, the mobile app cannot receive push notifications, and the app cannot be found in the settings
disable tweak and re-able tweek enabler , app can  receive push notifications

Any mention on widgets, icons, and normal permissions? Why do these break?

Bit of a side effect, but tweaks that list user applications (namely for enabling tweak functionality) will cease to function unless given a 'global injection' (inject into all apps) feature. iGameGod as an example. You can't enable tweak injection into an app (that is now system) and use a tweak that specifically targets a user application. There is no point in time where both can occur, being tweak injection, and the tweak recognizing the user app and enabling its functionality. Most tweaks are globally injected, not requiring you to choose specific applications in its preferences.

com.apple.Preferences cannot be launched through spotlight or shortcuts with tweak injection enabled (tested on A13 17.0 with PreferenceLoader and known working tweaks that contain preference bundles). Launches fine from homescreen.

well, it does not get notifications after rebooting the device or rebuilding the apps, and we'll try to fix that.

So have you found out the solution to that issue yet? The push notifications of App Store apps after enabling the tweak.

There is currently no permanent fix.

This issue is kind of tricky. For one, the issue with notifications has been fixed. On the other hand, rebuilding applications in the Bootstrap application will essentially reset permissions for applications, prompting you to allow them when next requested by the application, though it seems to be only all TrollStore apps.
Will close. Mitigation to this issue is as simple as setting up the applications again, or simply not rebuilding the applications, as issues that would be fixed by this button are usually fixable by other means.


typo in vdc storage nodes screen

Description
Small type in the Storage node list.
Title mentions "Expose Storgae Controller" i.o. "Expose Storage Controller"

Version information

Browser: Chrome

should be fixed in b2a8ddce4cd7ceecbe95eca10ebfadc9c1b117d0


docs(textarea): add corrected guidelines link and rootClass

Description

Similar to progress bar and meter, text field and text area are now "nested" components. Recently, meter was updated to include its own rootClass argument to ensure it was delivering the correct Spectrum guidelines URL. Text area will need the same treatment. Before these changes, the text area guidance resource link was navigating to the text field page instead of the text area page.

Adds a .spectrum-Textfield--multiline rootClass to textarea component. It doesn't have any styles, is strictly an addition and shouldn't overwrite/interfere with the textfield component in the text area template.
adds an additional spectrum object to contain the text area guidance link

How and where has this been tested?
Please tag yourself on the tests you've marked complete to confirm the tests have been run by someone other than the author.
Validation steps

[x] Pull down the branch to run locally, or use the deploy preview
[x] On the text area docs page, click on the "Spectrum guidelines" resource link.
[x] This link should navigate you to this page: https://spectrum.adobe.com/page/text-area/

Previously, it was navigating to the text field guidance: https://spectrum.adobe.com/page/text-field/

[ ] When inspecting any of the text area templates, the additional spectrum-Textfield--multiline--sizeM class has been added to the parent container. (this has no other styles, besides the styles for spectrum-Textfield--multiline)
[ ] Styles for .spectrum-Textfield should still be applied. No visual regressions should have been introduced.

Regression testing
Validate:

The documentation pages for at least two other components are still loading, including:

[ ] The pages render correctly, are accessible, and are responsive.

If components have been modified, VRTs have been run on this branch:

[ ] VRTs have been run and looked at.
[ ] Any VRT changes have been accepted (by reviewer and/or PR author), or there are no changes.

Screenshots

To-do list

[x] I have read the contribution guidelines.
[x] I have updated relevant storybook stories and templates.
[ ] I have tested these changes in Windows High Contrast mode.
[x] If my change impacts other components, I have tested to make sure they don't break.
[ ] If my change impacts documentation, I have updated the documentation accordingly.
[ ] ✨ This pull request is ready to merge. ✨

@marissahuysentruyt I wasn't sure about this test case, is this still accurate with the --sizeM at the end?

When inspecting any of the text area templates, the additional spectrum-Textfield--multiline--sizeM class has been added to the parent container. (this has no other styles, besides the styles for spectrum-Textfield--multiline)


wire up new vote-counter function

Replaces direct redis writes for voting, with a POST to a new votes topic via the http-gateway which increments the vote tallies via a new vote-counter function.

LGTM; I assume we can remove the redis-writer.yaml now?

ja, i wasn't sure if you were still using it for the redis-writer java implementation testing - it's the only function that accepts arbitrary redis keys - the new vote-counter is wired to a hash key.

I can re-add it as a sub-directory. We might have a use for it (need to decide what else listens to votes... maybe recording the moving average of voter activity per candidate)


[IR] [WIP] Steel-thread example for pandas iloc get

This is the steel-thread for Phase 0 pandas. The goal is to have iloc get working. I tried to cover all the row + columns cases (just recording the values).

This now looks complete – just needs a test in tests/ast.


Seeing OTUs in Recent that do not exist in my project

Describe the bug
When I looking at recent OTUs in Comprehensive, I am seeing newly added OTUs from other projects.
To Reproduce
Steps to reproduce the behavior:

When I am in Ciomprehensive, doing digitization.
Then I look at my "Recent" OTUs.
See OTUs that are not in my project
Verified by going to Browse Nomenclature and Browse OTUs.

OTU/Taxon Name in Comprehensive:

Browse Nomenclature:

Expected behavior
I shouldn't see OTUs from other projects.
Environment (please identify where you experience this bug:
*** One of ***

Production
Chrome

@proceps @LocoDelAssembly this is fairly critical.  It could be that this is a remnant of the cross-project OTU contamination that occured a while back, but we need to check the recent methods to ensure they are being scoped properly.

To confirm, is this bit of code that generates that list?
  # @params target [String] required, one of nil, `AssertedDistribution`, `Content`, `BiologicalAssociation`, 'TaxonDetermination'
  # @return [Hash] otus optimized for user selection
  def self.select_optimized(user_id, project_id, target = nil)
    r = used_recently(user_id, project_id, target)
    h = {
      quick: [],
      pinboard: Otu.pinned_by(user_id).where(project_id: project_id).to_a,
      recent: []
    }

    if target && !r.empty?
      h[:recent] = (Otu.where('"otus"."id" IN (?)', r.first(10) ).to_a +
          Otu.where(project_id: project_id, created_by_id: user_id, created_at: 3.hours.ago..Time.now)
              .order('updated_at DESC')
              .limit(3).to_a
              ).uniq.sort{|a,b| a.otu_name <=> b.otu_name}
      h[:quick] = (Otu.pinned_by(user_id).pinboard_inserted.where(project_id: project_id).to_a +
          Otu.where('"otus"."id" IN (?)', r.first(4) ).to_a).uniq.sort{|a,b| a.otu_name <=> b.otu_name}
    else
      h[:recent] = Otu.where(project_id: project_id).order('updated_at DESC').limit(10).to_a.sort{|a,b| a.otu_name <=> b.otu_name}
      h[:quick] = GeographicArea.pinned_by(user_id).pinboard_inserted.where(pinboard_items: {project_id: project_id}).to_a.sort{|a,b| a.otu_name <=> b.otu_name}
    end

    h
  end

Tried to replicate in Sandcastle but couldn't replicate so far.

If it helps, everytime I loaded the page, new names appeared. Was someone loading a large list of names to another project today?

Still happening.

Dipemura Dworakowska, 2011 both the Protonym and the OTU  last updates are from Nov 2018 and belong to "3i World Auchenorrhyncha Database" project.

@tmcelrath do you still see this problem?

@LocoDelAssembly don't see this problem anymore. Closing.


Peer address

Am I missing something where you set the Peer Wireguard Address?
This part in the old system:

There is currently no part of this implementation that necessitates knowing the address of the peer itself.

Closing this. We will make an announcement when peer address configuration has a use-case here (think peer exporting, etc.)


Kitten Tricks installed after restoring iOS Device

So the strangest thing just happened to me. I restored my iPhone X to iOS 12.1.3 through iTunes on my Mac, allowing Apple to fetch the IPSW from it's own servers. I did not restore from any backup and I set the phone up as a new phone.
I went through the standard device setup process. Then, to my absolute surprise and without opening any apps, I see that "Kitten Tricks" is already installed onto my completely wiped device.
I've never heard of Kitten Tricks before this moment. How did this happen? To my knowledge this is not possible.

That's really interesting, @zanesc
Any steps to reproduce? 😄


Store Gateway query minio for index file with illegal characters (backslash)

Thanos, Prometheus and Golang version used:
thanos version 0.33.0, prometheus version 2.48.1

Object Storage Provider:
s3 (minio)
What happened:
When store gateway qyeries minio for chunk index file the file path includes backslash witch is illegal character. Log lines:
ts=2024-02-01T09:41:12.4362379Z caller=bucket.go:745 level=warn msg="loading block failed" elapsed=1.9361ms id=01HNHQFG94B87WRW5RBT3916VF err="create index header reader: write index header: new index reader: get object attributes of 01HNHQFG94B87WRW5RBT3916VF\index: Object name contains unsupported characters."
What you expected to happen:
No errors
How to reproduce it (as minimally and precisely as possible):
running both thanos and minio on windows servers
Full logs to relevant components:

Anything else we need to know:

Thanks for the report! It seems like the fix should be as simple as avoiding filepath.Join and using /.

Maybe just using path.Join? It should be seperating with a forwardslash on all operating systems.

What's the Minio version here? Since when is this a problem?

this is a completely new setup, so I am on the latest release of minio.


Remove UserAcess.active attribute

The UserAcess.active attribute serves the same purpose as the Django User.is_active attribute.

@pkdash would you please close this issue if you think it is fixed? Thanks


feat: adding support for AWS Connect as one of the event source for Zappa

Description
Adds ability to set AWS connect as an event trigger.
GitHub Issues
Resolves issue #1473

Coverage decreased (-0.009%) to 74.06% when pulling c36fe72eb13dd82fe4054f932b82325378e55ef2 on jnoortheen:master into 3c53a35b45badf03a4efc7fa40c002288baa9ab7 on Miserlou:master.

Coverage decreased (-0.009%) to 74.06% when pulling c36fe72eb13dd82fe4054f932b82325378e55ef2 on jnoortheen:master into 3c53a35b45badf03a4efc7fa40c002288baa9ab7 on Miserlou:master.

Coverage decreased (-0.009%) to 74.06% when pulling c36fe72eb13dd82fe4054f932b82325378e55ef2 on jnoortheen:master into 3c53a35b45badf03a4efc7fa40c002288baa9ab7 on Miserlou:master.

Coverage decreased (-0.009%) to 74.06% when pulling c36fe72eb13dd82fe4054f932b82325378e55ef2 on jnoortheen:master into 3c53a35b45badf03a4efc7fa40c002288baa9ab7 on Miserlou:master.

Coverage decreased (-0.009%) to 74.06% when pulling c36fe72eb13dd82fe4054f932b82325378e55ef2 on jnoortheen:master into 3c53a35b45badf03a4efc7fa40c002288baa9ab7 on Miserlou:master.


[POC] Use DynamoDB as a metadata store for Flow Framework system indices

This PR is for educational/reference purposes only.
Do not merge this PR.

Description
Demonstrates the ability to use DynamoDB in place of OpenSearch system indices for the Flow Framework plugin

Migrated all APIs except “search”
Minimal changes to plugin code for create, index, get, and delete APIs using a wrapper client
Some changes required to WorkflowState class to handle updating state with get/modify/put sequence

Setup

Uses a local DynamoDB instance running in a Docker container.  Follow setup instructions here: https://github.com/awslabs/amazon-dynamodb-local-samples?tab=readme-ov-file#running-dynamodb-local-as-a-docker-image
Update src/main/plugin-metadata/plugin-security.policy as appropriate (this PR got a minimal config needed, it can probably be tuned or better restricted)

Demo
Created (POST) and updated (PUT) a template for a chat agent using ML Commons.  Used GET to read the template and (unprovisioned) state. Provisioned the template and queried the resources:
{
    "workflow_id": "Gk9Ako4Bqm_TOBvIrImu",
    "state": "COMPLETED",
    "provisioning_progress": "DONE",
    "provision_start_time":<PHONE_NUMBER>907,
    "provision_end_time":<PHONE_NUMBER>738,
    "resources_created": [
        {
            "resource_id": "G09Ako4Bqm_TOBvIsYkc",
            "resource_type": "connector_id",
            "workflow_step_id": "create_connector_1",
            "workflow_step_name": "create_connector"
        },
        {
            "resource_id": "Hk9Ako4Bqm_TOBvIw4kO",
            "resource_type": "model_id",
            "workflow_step_name": "register_remote_model",
            "workflow_step_id": "register_model_2"
        },
        {
            "resource_id": "Hk9Ako4Bqm_TOBvIw4kO",
            "resource_type": "model_id",
            "workflow_step_id": "register_model_2",
            "workflow_step_name": "deploy_model"
        },
        {
            "resource_id": "IE9Ako4Bqm_TOBvIzYmZ",
            "resource_type": "agent_id",
            "workflow_step_name": "register_agent",
            "workflow_step_id": "sub_agent"
        },
        {
            "resource_id": "IU9Ako4Bqm_TOBvIz4kU",
            "resource_type": "agent_id",
            "workflow_step_id": "root_agent",
            "workflow_step_name": "register_agent"
        }
    ]
}

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

Closing this PR as it's served its purpose and is unlikely to be iterated on.
It will remain here for reference for a potential future datastore-as-index integration!


Fix: allow [m, n] labels over [1, n] labels

Removes reshaping the y dimensions along the same axis as x (effectively cloning the labels). This means we can now support [m, n] shaped labels yielding multiple categories for labels, rather than just [n] shaped labels.
Uncertain about whether to reshape y such that when there is only one dimension it's shape is [1, n] rather than [n] (i.e. a vector rather than a 1D array). Looked at using torch.atleast_2d but returns values extended along the row rather than column (opposite of when labels are already 2d). No way to know in advance dimensions should be transposed or not.

This behaviour of the atleast functions is a continual gripe of mine -- they'd be far more useful imo if it expanded rightwards. Anyway, I think you should squeeze the labels such that when they're 1-dimensional they're simply of shape [N,].  The batch dimension should always come first, by the way, such that y`` is of shape [N, M]whenM > 1``.

At some point we might want to make it so that y and s can take forms other than tensors so we can rely on keys/attributes instead of ordering for selecting the different targets.

Does the new test pass? (It's not run by the CI because it's marked as slow.)

Does the new test pass? (It's not run by the CI because it's marked as slow.)

I've just checked out the branch and run both tests. They pass


[ERROR] Failed to stop ttop.timer: Unit ttop.timer not loaded.

I don't know what happened, I just was trying to stop it
ttop --off

output:
systemctl is-active --quiet /
systemctl --user stop 'ttop.timer'
Failed to stop ttop.timer: Unit ttop.timer not loaded.

cmd error code: 5
onoff.nim(141)           cmd

nim 1.6.14
ubuntu 20.04.01 LTS

You can check timers with
systemctl list-timers --user

and if the ttop.timer was not activated - no needs to deactivate it

but deactivates it from another user?
I think so,

Thank you so much, I understood my mistake, now it works find


Getting Cannot find module when vite build --watch in a monorepo.

Describe the bug
One of my package,ui, feeds my other packages throughout my monorepo. In order to feed ui to my other packages, I vite build --watch, expecting that when changing something in that repo, the changes are reflected in the other packages. From the get go, it works BUT when actually developing, if I change something in this ui repo, there is small timeframe in which the build file seems to disappear and I'm getting Cannot find module "ui" error along an error like Failed to read source code from ../packages/ui/dist/index.js in those other packages.
My guess is that there is small timeframe in which the build is not completely built and led my other packages in a state where there isn't an index.js file anymore or something along those lines.
Is there anything I can do to prevent this from happening ?
ps: I haven't had the time yet to make a Codesanbox but will do in the following days.
Reproduction
[Coming Soon]
Steps to reproduce
No response
System Info
System:
    OS: macOS 14.0
    CPU: (10) arm64 Apple M1 Max
    Memory: 468.84 MB / 32.00 GB
    Shell: 5.9 - /bin/zsh
  Binaries:
    Node: 21.6.2 - ~/.proto/shims/node
    Yarn: 4.1.1 - /opt/homebrew/bin/yarn
    npm: 10.5.0 - ~/.proto/shims/npm
    pnpm: 8.5.1 - ~/.proto/shims/pnpm
    bun: 1.0.29 - ~/.bun/bin/bun
  Browsers:
    Chrome: 122.0.6261.112
    Safari: 17.0

Used Package Manager
yarn
Logs
No response
Validations

[X] Follow our Code of Conduct
[X] Read the Contributing Guidelines.
[X] Read the docs.
[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
[X] Make sure this is a Vite issue and not a framework-specific issue. For example, if it's a Vue SFC related bug, it should likely be reported to vuejs/core instead.
[X] Check that this is a concrete bug. For Q&A open a GitHub Discussion or join our Discord Chat Server.
[X] The provided reproduction is a minimal reproducible example of the bug.

同样问题，在pnpm的monorepo环境中，UI库增加一个组件时，vite无法识别到新增加的文件导致编译报错找不到文件，实际已经同步到node_modules中，重启vite服务可以消除报错，但是很麻烦。

@zeta-core Have you find a way to fix it ?


fix: press Tab to move around magic code input

Details

Fixed Issues

$ https://github.com/Expensify/App/issues/45416
PROPOSAL: https://github.com/Expensify/App/issues/45416#issuecomment-2260635899
Tests

Open staging.new.expensify.com
Enter the email address of any account
When the focus is on any of the inputs for the magic code except the last one press Tab key
Verify that: The cursor moves to the next input for magic code

[x] Verify that no errors appear in the JS console

Offline tests

QA Steps

Open staging.new.expensify.com
Enter the email address of any account
When the focus is on any of the inputs for the magic code except the last one press Tab key
Verify that: The cursor moves to the next input for magic code

[x] Verify that no errors appear in the JS console

PR Author Checklist

[x] I linked the correct issue in the ### Fixed Issues section above
[x] I wrote clear testing steps that cover the changes made in this PR

[x] I added steps for local testing in the Tests section
[x] I added steps for the expected offline behavior in the Offline steps section
[x] I added steps for Staging and/or Production testing in the QA steps section
[x] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
[x] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[x] I included screenshots or videos for tests on all platforms
[x] I ran the tests on all platforms & verified they passed on:

[x] Android: Native
[x] Android: mWeb Chrome
[x] iOS: Native
[x] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[x] MacOS: Desktop

[x] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[x] I followed proper code patterns (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[x] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

[x] If any non-english text was added/modified, I verified the translation was requested/reviewed in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:

[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is either coming verbatim from figma or has been approved by marketing (in order to get marketing approval, ask the Bug Zero team member to add the Waiting for copy label to the issue)
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I followed the guidelines as stated in the Review Guidelines
[x] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] I verified that if a function's arguments changed that all usages have also been updated correctly
[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[x] If the PR modifies the UI (e.g. new buttons, new UI components, changing the padding/spacing/sizing, moving components, etc) or modifies the form input styles:

[x] I verified that all the inputs inside a form are aligned with each other.
[x] I added Design label and/or tagged @Expensify/design so the design team can review the changes.

[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.

Screenshots/Videos

Android: Native
https://github.com/user-attachments/assets/cb21e8a5-e5f3-41e2-841f-d3f8dfee0db1

Android: mWeb Chrome
https://github.com/user-attachments/assets/5bf1a892-9bcc-4b14-b67a-97525082d2ba

iOS: Native
https://github.com/user-attachments/assets/6fce64c9-d9f7-4e52-8002-affacecf5bc4

iOS: mWeb Safari
https://github.com/user-attachments/assets/b619d590-07fb-40d4-9571-6b1c37dad60b

MacOS: Chrome / Safari
https://github.com/user-attachments/assets/fc4847f7-81a6-4f9f-aadd-de99ce837d7f

MacOS: Desktop
https://github.com/user-attachments/assets/1874f98f-1717-403b-86ac-fb9f095a5049

:hand: This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release.

Note: This PR probably hasn't introduced the recession. The regression has been introduced at an earlier point, and the CI system will report any PR that follows this faulty PR as a regression.

🚀 Deployed to staging by https://github.com/srikarparsi in version: 9.0.20-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

FYI I believe this was deployed to prod yesterday, from this checklist - #47356


Review HTTP codes and error names

Will review on an ongoing basis, but pretty happy with current implementation.


Could not respond to message. Reason: OpenAI::CreateModeration failed with: Request failed with status code 429

Any tip will be much appreciated.
2023-08-04 13:06:50 fetch failed TypeError: fetch failed
2023-08-04 13:06:50     at Object.fetch (node:internal/deps/undici/undici:11576:11)
2023-08-04 13:06:50     at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
2023-08-04 13:06:50     at async ChromaClient.heartbeat (/app/server/node_modules/chromadb/dist/main/ChromaClient.js:67:26)
2023-08-04 13:06:50     at async Object.connect (/app/server/utils/vectorDbProviders/chroma/index.js:23:21)
2023-08-04 13:06:50     at async Object.totalIndicies (/app/server/utils/vectorDbProviders/chroma/index.js:35:24)
2023-08-04 13:06:50     at async /app/server/endpoints/system.js:169:27 {
2023-08-04 13:06:50   cause: Error: connect ECONNREFUSED <IP_ADDRESS>:8000
2023-08-04 13:06:50       at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1495:16) {
2023-08-04 13:06:50     errno: -111,
2023-08-04 13:06:50     code: 'ECONNREFUSED',
2023-08-04 13:06:50     syscall: 'connect',
2023-08-04 13:06:50     address: '<IP_ADDRESS>',
2023-08-04 13:06:50     port: 8000
2023-08-04 13:06:50   }
2023-08-04 13:06:50 }

You are connected to a Chroma instance that should be running on <IP_ADDRESS>:8000 that does not exist on such a URL.
If you are running AnythingLLM and Chroma in docker at the same time use http://host.docker.internal:8000 as your URL. Otherwise if you are running AnythingLLM outside of a docker container ensure that you are running a chroma instance at http://localhost:8000 and you should be able to hit http://localhost:8000/api/v1/heartbeat in your browser.


NTRN-387 add more wasmbindings

TASK
TEST RUN
Here is implementation of the bindings for the rest types of proposals we're gonna support

to be fair, I actually don't know why this appears. it seems not reproducible locally

pls update the test run

FRESH RUN


Node monitoring for prometheus

Is your feature request related to a problem? Please describe.
I am looking for a way to monitor node hardware where k3os is running on.
Describe the solution you'd like
As prometheus is a go to monitoring solution for kubernetes I think having the ability to run node_exporter would be great.
Describe alternatives you've considered
none

I use https://github.com/helm/charts/tree/master/stable/prometheus:
helm install stable/prometheus

After install Helm 3 to /usr/local/bin/helm: https://helm.sh/docs/intro/install/

The node-exporter can run inside Kubernetes as a daemonset, there is no need to install it directly on k3os. I'm not a fan of helm, but the helm chart linked by dweomer does exactly that. You may need to set toleration
    - effect: NoExecute
      key: k3s-controlplane
      value: "true"

to run node-exporter also on master nodes.


Incorrect Fonts under "Set Prices for sub-agents"(Agent Panel)

Description of the Bug
Incorrect Fonts under "Set Prices for sub-agents"(Agent Panel)
Steps to Reproduce:-

Go to 'https://www.pulseptt.com/agent.html'
Login with valid credential:- 1. User name: john 2. Password: 12345678
Navigate to Sub-agent management.
Click on Set Prices for sub-agents.
See error.

Expected Result:-
Proper Layout. (Ptt user prices, Dispatcher user prices etc)
Screenshot:-

Desktop
OS: Windows 10
Browser :Version 100.0.4896.60 (Official Build) (64-bit)
Version [0.1.1]

Fields are also accepting alphanumeric values. Will fix this issue in the next update.

No ,at my side Price fields are not accepting Alphanumeric values. This issue has already resolved.


Model concern breaks devise reconfirmable

Because the model concern sets email_changed? to always be false, Devise's reconfirmable portion of :confirmable will never trigger.  I found this issue saying that it was necessary to override the redirect_url.  Does that mean that breaking reconfirmable is an unfortunate but necessary side effect?

I need that reconfirmable to work, I dont need that redirect_url in confirmations controller. How could I fix it ?

something new ? What redirect_url is involved in this problem ? Could somebody present what is colliding with each other ?

Just ran into this issue myself. Would be nice there's a way to play nice with reconfirmable.

Same issue here.

ditto

Same issue here ! Any fix planned ? :slightly_smiling_face:

I just overrode email_changed? this way in User model to revert it to the original behavior:
class User < ActiveRecord::Base
  devise :database_authenticatable, :registerable, :confirmable,
         :recoverable, :rememberable, :trackable, :validatable

  include DeviseTokenAuth::Concerns::User

  #...

  def email_changed?
    super
  end

  #...

end

and everything seems to work just fine for me (using Rails in api mode + separate React app).
In #229 @lynndylanhurley is concerned about redirect url, but I couldn't find any side effect at least for my case from the above change - confirmation email is being sent fine, it contains correct url in the confirmation link, after following the link a new email is being confirmed and I'm being redirected to correct sign-in url in the front-end app and can successfully sign in using the new email.
May be @lynndylanhurley could better explain what is wrong with this ?

May be having some configurable option for a redirect url would solve the issue with changing redirect url ? Since for me overriding email_changed? in User from false to super and having a custom redirect in ConfirmationsController#show works just fine. Then you could define that overriding method only in case redirect url is not specified in config. Just an idea...

https://github.com/lynndylanhurley/devise_token_auth/issues/1013


fix(toggle): removes margin from toggle

Removes horizontal margin from Toggle
Added

Example of Toggle with label

Changed

Switched from margin: 1rem; to margin: 1rem 0;

👍


Bug/227 staging exception freeze

:tada: This issue has been resolved in version 0.21.0-development.8 :tada:
The release is available on:

npm package (@development dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This issue has been resolved in version 0.22.0-rc.1 :tada:
The release is available on:

npm package (@testnet dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This issue has been resolved in version 0.22.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


⚠ Bofrost.fr has degraded performance

In 7545112, Bofrost.fr (https://www.bofrost.fr) experienced degraded performance:

HTTP code: 200
Response time: 854 ms

Resolved: Bofrost.fr performance has improved in 198a879 after 6 minutes.


feat: add kubeflow-dashboard sidebar relation

Adds the sidebar relation for kubeflow-dashboard, plus the library to manage it.  This allows this charm to request a link in the kubeflow dashboard's sidebar.

After discussion within the team, we decided to reduce the testing here. Each application using the kubeflow-dashboard-links lib will have no integration tests for that in the charm itself, and instead we will catch that at bundle-level tests (captured as issue https://github.com/canonical/bundle-kubeflow/issues/636)


[MAD][DATA1018][Visualizing real world data]AlbertoCastellanos

Belen,
please find the required jupyter notebook along with the csv files that have been loaded to complete the exercise.
Thanks,

Good job Alberto!!
Some tips on binning, binning is a very important phase of analyzing data whatever you do it for clustering or histograms.  There are a few general rules for choosing bins:

Bins should be all the same size. For example, groups of ten or a hundred.
Bins should include all of the data, even outliers. If your outliers fall way outside of your other data, consider lumping them in with your first or last bin. This creates a rough histogram —make sure you note where outliers are being included.
Boundaries for bins should land at whole numbers whenever possible (this makes the chart easier to read).
Choose between 5 and 20 bins. The larger the data set, the more likely you’ll want a large number of bins. For example, a set of 12 data pieces might warrant 5 bins but a set of 1000 numbers will probably be more useful with 20 bins. The exact number of bins is usually a judgment call.
If at all possible, try to make your data set evenly divisible by the number of bins. For example, if you have 10 pieces of data, work with 5 bins instead of 6 or 7.


Stuck on loading.

Not sure why this is happening. Followed all steps as described. Spotify logo is shown with the word "Loading..." displayed ontop even with music playing on spotify.

I have the same issue. Have made sure call back is set properly too.

was this resolved? if so, how?


Site error: the ionCube PHP Loader needs to be installed

While using nginx (TimmeHosting)
Execute: php ../bin/console plentyconnector:backlog:info
Site error: the ionCube PHP Loader needs to be installed. This is a widely used PHP extension for running ionCube protected PHP code, website security and malware blocking.
Please visit get-loader.ioncube.com for install assistance.

this is not a mistake in the code


Issue 104

I'm opening this pull request on behalf of some of the American developers working on the ADEPT Call for Code project

@rahme-butaineh @Mohamed-E please work with the repo maintainers on any; I'm going to give both of your write access to our fork so you can work with


Moved dependencies metadata rules into buildSrc

Refactored script into a per-subproject plugin

@eskatos Branch acceptance build is green: https://builds.gradle.org/viewLog.html?buildId=11599639&tab=buildResultsDiv&buildTypeId=Gradle_Check_Stage_BranchBuildAccept_Trigger
This is also part of an effort to have the scope of all our internal plugins either be per-root or per-subproject.


[Networking] Gossipsub content-addressed messages

Currently, gossipsub uses source_peer_id + sequence_number to address the messages sent across the gossipsub network. If a client re-publishes a seen message, this will look like a new message to all other peers. This can lead to duplicate messages on the network, which then needs to be filtered at the application layer.
Rust and go (https://github.com/libp2p/go-libp2p-pubsub/pull/248) now have the ability to customise  the message id of gossipsub messages. I propose we set the gossipsub message id to:
base64(sha256(data)) where data is the gossipsub protobuf data field which typically contains our ssz-encoded data or snappy-compressed data.
This way, gossipsub will filter out duplicate messages before notifying the application layer. In principle, we then just need to verify the hash at the application layer to ensure duplicates aren't sent/received.

@AgeManning

If a client re-publishes a seen message,

Is it considered to be malicious client behavior? Or you mean some real use case?
If this is to protect from malicious clients then I don't understand why it's a problem to filter the stuff on the application layer? The duplicates would be filtered on app layer and would not be propagated. The same way as any other invalid payload (e.g. invalid validator signature or whatever) would be filtered on the app layer and not propagated to the network

As a real use case, Prysm for all gossip messages are re-publishing them, which changes the source id and sequence number making old messages look like new ones. As I understand, this is because the API to validate messages in go doesn't simply provide a method for validation then re-propagation.
Currently there is nothing in the specification that prevents clients from re-publishing seen messages, so I don't think this is strictly malicious behaviour.
For our use, we don't particularly care about the source of the message, mainly just it's contents, so it makes sense (at least to me) to content-address messages to prevent duplication at the gossip layer.

As a fun side-effect, messages will be a few bytes smaller also :)

As I understand, this is because the API to validate messages in go doesn't simply provide a method for validation then re-propagation.

IMHO validating and re-publishing doesn't look like the way the Gossip is intended to be used :(
Otherwise content-addressing looks ok but we may need to consider hashing computation overhead and possible related DoS attacks

This isn't true, the go implementation has validators; messages are only propagated if they pass validation.

Note that the validators don't have to return at once, they can take a while to complete and that's is fine.

I support this and the base64(sha256(data)) looks good. Want to put together a PR @AgeManning?
In the general case, it seems that libp2p pubsub should handle this for us as long as we don't re-publish messages after validation. That said, there are cases in which messages might very well be published by two independent nodes and in that case, it would be advantageous to see them as the same message within pubsub.
The example I'm thinking of is one ValidatorClient (VC) connected to multiple BeaconNodes (BN). In this type of setup a VC might simultaneously publish signed messages to more than one BN to add some redundancy and potentially some speed gains in propagation.
It should be noted that we still need application layer validation of non-duplicates for the AggregateAndProof messages on beacon_aggregate_and_proof pubsub topic. Two "aggregators" might compute the same aggregate attestation but have a different "proof" signature in the wrapper container. A naive base64(sha256(data)) would not catch the duplicate attestation in this case. This validation is already in the networking spec and should remain there.

If you are using the hash as the message ID, then they won't get republished (as long as they are within the time cache window).

closed via #1538


Update just-install reference on README.md

Reference was pointing to the wrong page, causing a 404 error

Nice, merging!


Fixed bitcount operations

This PR attempts to close #663 however I realised rewrite would be a better option. This passes all tests under tcl (only for bitcount) and all integration tests. While this also fixes other issues, I don't want to overstep.
I've added comments wherever necessary but can elaborate wherever necessary
What has changed?

Added better argument validation
Changed counting in a loop to count using a bitmask
Added better handling of start and end indices.

@lucifercr07 as mentioned, this does fix the other bitcount issues, lmk what you think. I believe this is a better way to fix the errors (fixing a single test would've made it messier if you get what I mean)
Happy to change the approach just to fix the single test.

LGTM, it's more cleaner than prior implementation. @JyotinderSingh shall we merge this?
@VedWhat on other note what are your thoughts on using go inbuilt function i.e. OnesCount8 rather than the popcount implementation?

Nice, makes sense to use a lookup instead of any operations. Made the change!

LGTM, it's more cleaner than prior implementation. @JyotinderSingh shall we merge this?

@VedWhat on other note what are your thoughts on using go inbuilt function i.e. OnesCount8 rather than the popcount implementation?

Nice, makes sense to use a lookup instead of any operations. Made the change!

thanks, could you take a look at the linter issues too?

right, was pushing with a no-verify due to an issue. already pushed the change.


changing reject to accept introduce stack increaseing

Hi William and Mihai
I am trying to use p4x-xdp to make a simple loadbalancer. I found the stack increases if I change the "reject" to "accept" in parser. The stack increase from from 248byte to 440byte. It means I can only process one or two type of packets
I am not sure if it is llvm issue. Did you found a workaround for it?
parser Parser(packet_in packet, out Headers hd) {
    state start {
        packet.extract(hd.ethernet);
        transition select(hd.ethernet.protocol) {
            ETH_P_IPV4: parse_ipv4;
            default: accept; //change reject to accept, the stack size increase from 248 to 440
        }
    }
    state parse_ipv4 {
        packet.extract(hd.ipv4);
        transition select(hd.ipv4.protocol) {
            IPPROTO_TCP: parse_tcp;
            default: reject;
        }
    }

    state parse_tcp {
        packet.extract(hd.tcp);
        transition accept;
    }
}

the entire p4 example(
xdp_test.txt
) is uploaded. Please rename xdp_test.txt to xdp_test.p4.
The following command I used to compiled and load:
~/work/p4c_view1/p4c/extensions/p4c-xdp/p4c-xdp --target xdp -o ./xdp_test.c xdp_test.p4  && clang -g -D__KERNEL__ -D__ASM_SYSREG_H  -Wno-unused-value -Wno-pointer-sign -Wno-compare-distinct-pointer-types -Wno-gnu-variable-sized-type-not-at-end -Wno-tautological-compare -O2 -emit-llvm -c /root/work/p4_vgw/xdp_test.c -o -| llc -march=bpf -filetype=obj -o ./xdp_test.o && ip -force  link set dev ens160 xdp obj ./xdp_test.o verb

My env is :
Ubuntu 18.04
root@gzhenyu-ubuntu:~/work/p4_vgw# llc --version
LLVM (http://llvm.org/):
  LLVM version 6.0.0

  Optimized build.
  Default target: x86_64-pc-linux-gnu
  Host CPU: sandybridge

root@gzhenyu-ubuntu:~/work/p4_vgw# clang --version
clang version 6.0.0-1ubuntu2 (tags/RELEASE_600/final)
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/bin

Upload the llvm-objdump -S -no-show-raw-insn xdp_test.o files:
xdp_test_smallstack.txt
xdp_test_bigstack.txt

ping......

I don't know if there is much we can say about this; we do not have any control on how clang generates code.

OK....I found a workaround.
I rewrite some logical in ControlBodyTranslator::compileEmitField to consume memcpy, and eliminate the write_byte. It helps reduce the stack from about 350 to 128byte. And performance is better also.
I also rewrite some logical in ControlBodyTranslator::preorder to help to judge if we should rewrite re-populate a header.
And also fix the issue that using if-else in control.("if" emit a useless ";" in if-else statement which cause compile error)
I found the counter only support 32bit which is too small, so increase it from 32bit to 64bit if using counterArray which type is hash.

introducing 64bit counter: 2.7Mpps -->2.5Mpps
using memcpy and eliminating write_byte & avoid re-populate packet's header: 2.5Mpps --> 2.8Mpps

Do you plan to contribute these changes to our code?

It is draft code and I am afraid I don't have enough time to make it become a accepted patch recently.
I will upload my draft code diff first in case  someone need it.

if you're allowed to change kernel, then you can increase MAX_BPF_STACK to a little larger value.

Not only the linux stack size, the llvm-6 and llvm-7 would hit error in compiling if the stack size above 512bytes...


Add windows 11 to applies to field in slow-page-file-growth-memory-allocation-errors.md

update applies to, to include windows 11

#sign-off


[Program Card Images] Add a "Delete image" option for admins.

Description
This PR allows admin to delete the current program image for any given program. A "Delete image" button is added to the program image edit page. When that button is clicked, a confirmation modal appears. If the user confirms in that modal, the program definition is updated to no longer have an image file key stored.
In this PR, the image filekey is removed from the database, but the image itself is not removed from cloud storage. The next PR will remove the image from cloud storage.
Release notes
Checklist
General
Read the full guidelines for PRs here

[x] Added the correct label: < feature | enhancement | bug | dependencies | infrastructure | ignore-for-release | database >
[x] Assigned to a specific person, civiform/developers, or a more specific round-robin list.
[x] Created unit and/or browser tests which fail without the change (if possible)
[x] Performed manual testing (Chrome and Firefox if it includes front-end changes)

User visible changes

[x] Manually tested at 200% size
[x] Manually evaluated tab order

Instructions for manual testing

Enable the PROGRAM_CARD_IMAGES flag.
Edit a program then click "Edit program image" on the program's edit page.
Verify that the "Delete image" button is initially disabled because no image was set on the program.
Upload and save an image.
When the page reloads, verify that the "Delete image" button is enabled.
Click "Delete image" and then click "Delete image" on the confirmation modal.
Verify that when the page reloads, the program card preview no longer shows an image and a success toast saying "Image removed" is shown.
Publish the program.
Logout and verify that the homepage that the applicant sees does not show the image.

Issue(s) this completes
Part of epic #5676
Part of sub-task #6293

main

#6314   👈

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @caitlinshk and the rest of your teammates on  Graphite

Merge activity

Jan 17, 10:58 AM: @caitlinshk started a stack merge that includes this pull request via Graphite.


remove default assignment all roles for main user

This PR fixes issue https://github.com/SAP-samples/btp-setup-automator/issues/344 around the default assignment to all roles by the user who is calling the script.

That makes sense Christian. I've added a comment and removed the commented code lines.


[feature] 把欄位類型改為多項類型

Codecov Report

Merging #48 (70cbc5e) into main (5e2e968) will increase coverage by 0.00%.
The diff coverage is 100.00%.

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
@@           Coverage Diff           @@
##             main      #48   +/-   ##
=======================================
  Coverage   88.10%   88.11%
=======================================
  Files          59       59
  Lines        2253     2254    +1
=======================================
+ Hits         1985     1986    +1
  Misses        183      183
  Partials       85       85

Impacted Files
Coverage Δ

sheeter/fields/field.go
100.00% <100.00%> (ø)

sheeter/fields/fieldBool.go
100.00% <100.00%> (ø)

sheeter/fields/fieldBoolArray.go
100.00% <100.00%> (ø)

sheeter/fields/fieldEmpty.go
100.00% <100.00%> (ø)

sheeter/fields/fieldFloat.go
100.00% <100.00%> (ø)

sheeter/fields/fieldFloatArray.go
100.00% <100.00%> (ø)

sheeter/fields/fieldInt.go
100.00% <100.00%> (ø)

sheeter/fields/fieldIntArray.go
100.00% <100.00%> (ø)

sheeter/fields/fieldPkey.go
100.00% <100.00%> (ø)

sheeter/fields/fieldString.go
100.00% <100.00%> (ø)

... and 1 more

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


Feature Implement QLearner

New Features

implement QLearner in the policy module, which first estimates the expected reward function (or the q function) from the logged bandit data, and then use that estimator to make new decisions on the test data (such as via argmax or softmax)
See example 1 of in Appendix A of https://arxiv.org/pdf/2002.08536v2.pdf for the definition of QLearner implemented here
add some tests corresponds to the inputs and performance of the QLearner class in tests/policy
implement "Gumbel softmax trick" (see Section 4.1 of https://arxiv.org/pdf/2105.00855.pdf) in IPWLearner/QLearner/NNPolicyLearner (of obp.policy) to efficiently sample a ranking of actions from the plucket luce ranking distribution

Minor Fix

unify some test functions to delete repetitive training of a same policy in tests/policy/test_offline_learner_performance.py to reduce the time needed to run the tests
fix some numpy/pandas/sklearn warnings (now the tests will run without any warnings)

@fullflu Thanks!

@fullflu Thanks again for your thoughtful comments! I'll address some recent minor comments in the following ongoing PR.
https://github.com/st-tech/zr-obp/pull/145


Provide access to remote IP address in incoming server requests

When writing a server in Hyper I should be able to retrieve the remote IP address from the request.
@seanmonstar mentioned in #1410 that an API similar to the client (#1402) might be relevant?
API usage could then look like this:
fn respond_with_sender_ip(request: Request<Body>) -> BoxFut {
    let remote_address = request
        .extensions()
        .get::<HttpInfo>()
        .expect("something something sets HttpInfo")
        .remote_addr();

    Box::new(future::ok(Response::new(Body::from(remote_address))))
}

(Please edit this to make the proposed API usage correct :-)

+1 for this request, ip address info is very useful for a network service

See also https://github.com/carllerche/tower-web/issues/71

The idea of passing an argument to the NewService is being explored here: https://github.com/tower-rs/tower/issues/108
If that change is done, we could pass &Incoming::Item or something, and then the NewService could grab the remote address and anything else it wants (like TLS context info) to then be used in the constructed Services.

I need to support client side certificates and it'd be great if the incoming context contains enough information for me to do that as well

I did some exploration of converting NewService to MakeService<Ctx>, such that you can access the transport when creating a Service. The WIP is here: https://github.com/hyperium/hyper/commit/94cc8065490497dcaf6bbb9862c0b1f28bf10126
Here's how the API worked out (mostly so as to not be a breaking change for NewService):
let server = Server::bind(&addr)
    .serve(make_service_fn(|conn: &AddrStream| {
        let remote_addr = conn.remote_addr();
        service_fn_ok(move |_: Request<Body>| {
            Response::new(Body::from(format!("Hello, {}", remote_addr)))
        })
    }))

I'm working on a reverse proxy using hyper (new version for https://github.com/brendanzab/hyper-reverse-proxy), and this is quite useful to implement x-forwarded-for header. The former version was hooked directly to TcpListener, which is quite low level.


modify package.json to include --no-source-maps for parcel

Sending a PR as other issues seem to have this.

This change solved my issue when trying to run yarn watch!


Add announce command

Doesn't work. Messages look like this:
<discord.message.Message object at 0x7f723c4b7828>

Don't know about the master branch, but in review branch had to make the following changes:

async def cmd_announce(self, *, message): -> async def cmd_announce(self, message, *, message_content):
await self.send_message(server.default_channel, message) -> await self.send_message(server.default_channel, message_content)`

We already document how to do this on the modification page. The gist for it is here. It won't be added as a native feature, at least not now anyway.


Unable to compile TypeScript when use typescript 2.4.0

import { test as testFn } from 'app'
import { assert } from 'chai'
import { suite, test } from 'mocha-typescript'

@suite class Test {
  @test testMethod (): void {
    assert.deepEqual(NaN, NaN)
    assert.equal(testFn(2), 2)
  }
}

Throw error in typescript2.4.0
nyc mocha --compilers ts:ts-node/register -r tsconfig-paths/register src/test --ui mocha-typescript --require source-map-support/register --timeout=60000

/home/ruiming/Documents/typescript-starter/node_modules/ts-node/src/index.ts:300
        throw new TSError(formatDiagnostics(diagnosticList, cwd, ts, lineOffset))
              ^
TSError: ⨯ Unable to compile TypeScript
src/test/test.ts (7,2): Argument of type 'typeof Test' is not assignable to parameter of type 'SuiteTrait'.
  Type 'typeof Test' provides no match for the signature '(this: ISuiteCallbackContext, ctx: ISuiteCallbackContext, ctor: Function): void'. (2345)
    at getOutput (/home/ruiming/Documents/typescript-starter/node_modules/ts-node/src/index.ts:300:15)
    at /home/ruiming/Documents/typescript-starter/node_modules/ts-node/src/index.ts:330:16
    at Object.compile (/home/ruiming/Documents/typescript-starter/node_modules/ts-node/src/index.ts:489:17)
...

but work fine in typescript 2.3.4

Hi @ruiming,
Hope all is well with +<EMAIL_ADDRESS>Could you give it a try?
I am closing this issue as I've moved the whole project (code + tests) to typescript 2.4.0. The new version introduced covariant checking for callback parameters. I guess this is what failed the type checking. I couldn't figure a nice way to preserve both the call overloads with single trait (e.g. the result of slow() and timeout()) and the ClassDecorator like signature here: https://github.com/pana-cc/mocha-typescript/blob/bfefa2d7a09385c981503bedbf31cf5aa0fcc5d1/index.d.ts#L42 so I had to go for an any.

Upgrade mocha-typescript solved the problem. Thanks.


Profile tab and UI for setting away status

Based on #3263
Includes a new Profile card, and UI for setting 'away' and 'status text'.

And #3263 is merged!

The first 5 commits are ready for review (one is the same as the other PR)
The rest could be reviewed but are still being changed a bit.

Closing as the original review was done on 4 commits that are very outdated compared to what is currently in. Opening #3344


Override getproperty and setproperty!

Codecov Report
Base: 76.25% // Head: 72.54% // Decreases project coverage by -3.70% :warning:

Coverage data is based on head (298e81d) compared to base (bc816b0).
Patch coverage: 59.21% of modified lines in pull request are covered.

Additional details and impacted files
@@            Coverage Diff             @@
##             main       #6      +/-   ##
==========================================
- Coverage   76.25%   72.54%   -3.71%
==========================================
  Files           3        3
  Lines         240      295      +55
==========================================
+ Hits          183      214      +31
- Misses         57       81      +24

Impacted Files
Coverage Δ

src/annotatedprofile.jl
63.07% <40.00%> (-22.29%)
:arrow_down:

src/omicsprofile.jl
85.05% <71.73%> (-2.45%)
:arrow_down:

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

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


Box2D ChainShape is broken

Issue details
The latest Box2D version (1.9.7) fails to create correct chain shapes that used to work with previous versions.
Reproduction steps/code
import com.badlogic.gdx.ApplicationAdapter;
import com.badlogic.gdx.math.Vector2;
import com.badlogic.gdx.physics.box2d.BodyDef;
import com.badlogic.gdx.physics.box2d.ChainShape;
import com.badlogic.gdx.physics.box2d.FixtureDef;
import com.badlogic.gdx.physics.box2d.World;

public class Test extends ApplicationAdapter {
	@Override
	public void create () {
		World world = new World(new Vector2(), true);
		BodyDef bodyDef = new BodyDef();
		FixtureDef fixtureDef = new FixtureDef();
		ChainShape shape = new ChainShape();
		float[] vertices = {0f, 0f, 1f, 1f, 0f, 1f};
		shape.createChain(vertices);
		fixtureDef.shape = shape;
		world.createBody(bodyDef).createFixture(fixtureDef);
	}
}

This code snippet works correctly on LibGDX 1.9.6, but fails on LibGDX 1.9.7 with a native error.
Version of LibGDX and/or relevant dependencies
1.9.7 (LibGDX + Box2D).
Stacktrace
java: /var/lib/jenkins/workspace/libgdx/extensions/gdx-box2d/gdx-box2d/jni/Box2D/Collision/Shapes/b2ChainShape.cpp:62: void b2ChainShape::CreateChain(const b2Vec2*, int32): Assertion `count >= 2' failed.

Affected platforms
Note that I checked only on Linux Mint, but other platforms are expected to be affected as well.

[ ] Android
[ ] iOS (robovm)
[ ] iOS (MOE)
[ ] HTML/GWT
[ ] Windows
[x] Linux
[ ] MacOS

https://github.com/libgdx/libgdx/issues/4940

@Tom-Ski Is a hotfix release planned or should we wait a few months for 1.9.8?

Yup.

Is there any schedule for the hotfix?

Yes, I wanted to wait for the 2017.3 release of IDEA to solve #4698, but as this has been released without fix we'll have a release this week in the meantime.

I thought this fix will be included in the libGDX release 1.9.8, as it has been closed 1 month before the release was made. However, it's not included. Will it be included in the next release? Is there any schedule for the next release? Minewhile, I have to stay at 1.9.6. :(

This issue is a duplicate. See issue referred too for the tracking of this issue.


Icon names aren't lining up

I really like this app.  I was searching for a gift icon, and it came up with one (inset window).  When I tried using the icon name (matCardGiftcard) in my app, it broke.  I then went to the quasar docs for icon, followed the material design link, searched for gift again and got the outer set that used card_giftcard and redeem, both of which worked.
https://www.screencast.com/t/Sd7UqUJ8
Also, copying the button code yields the below text which breaks by default because matCardGiftcard is not defined.  I think it should be icon="" without the colon.
<q-btn :icon="matCardGiftcard" />

@Daemach On your image, that is the name of the icon when using the webfont (woff, woff2).
In order to get the icon to work, you have to import it:
import { matCardGiftcard } from '@quasar/extras/material-icons'

If you didn't know, you can have the Icon Explorer create your imports for you.

I didn’t know.  It would be good to add all of that info somewhere. Great
tool!
On Thu, Dec 2, 2021 at 3:38 PM Jeff Galbraith @.***>
wrote:

If you didn't know, you can have the Icon Explorer create your imports for
you.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/hawkeye64/iconexplorer.app/issues/13#issuecomment-985089480,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AC7Y5YMA43IQWDXMS7C43PTUO77QXANCNFSM5JEZN75A
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

Thanks. If you have any thoughts where the info can be added in listening.

https://www.screencast.com/t/CxNaqkIwSxor
FWIW, since the same icon exists in the default material icons that are
already included (using the webfont), it would be great to use those and
only import where absolutely necessary.
On Fri, Dec 3, 2021 at 6:09 AM Jeff Galbraith @.***>
wrote:

Thanks. If you have any thoughts where the info can be added in listening.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/hawkeye64/iconexplorer.app/issues/13#issuecomment-985549871,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AC7Y5YICEM7EFHF354FMAU3UPDFQLANCNFSM5JEZN75A
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

Looks nice. You may not also know that if you add several icons to the library and then click the cart icon, you can create imports for all of them:

Then click the Imported button and paste directly into your code:
import { matAddAPhoto, matAddAlert, matAddShoppingCart } from '@quasar/extras/material-icons'
import { antOutlinedAudioMuted, antOutlinedAudio } from 'quasar-extras-svg-icons/ant-design-icons'

FWIW, since the same icon exists in the default material icons that are already included (using the webfont), it would be great to use those and only import where absolutely necessary.

Yes, but that's not how it is done in quasar/extras. I am following the same conventions. This is so that QIcon can determine if it is a font or SVG icon. There are different protocols at play here where it has to make decisions.


Check if online library are blocked (censorship)

Right now it is not so easy to understand that mirrors are blocked by provider. Program yields something like this:
$ libgen -s "Stephen Siklos Advanced Problems in Mathematics: Preparing for University"                                                                                Searching for: 'Stephen Siklos Advanced Problems in Mathematics: Preparing for University
Search didn't return any results.

or that:
During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/bin/libgen", line 11, in <module>
    load_entry_point('libgen.py==0.1.0', 'console_scripts', 'libgen')()
  File "/usr/lib/python3.7/site-packages/libgen/__main__.py", line 38, in main
    MirrorFinder().run(args.search, args.non_interactive)
  File "/usr/lib/python3.7/site-packages/libgen/__main__.py", line 16, in run
    mirror = self.find_active_mirror()
  File "/usr/lib/python3.7/site-packages/libgen/__main__.py", line 27, in find_active_mirror
    r = requests.get(homepage)
  File "/usr/lib/python3.7/site-packages/requests/api.py", line 75, in get
    return request('get', url, params=params, **kwargs)
  File "/usr/lib/python3.7/site-packages/requests/api.py", line 60, in request
    return session.request(method=method, url=url, **kwargs)
  File "/usr/lib/python3.7/site-packages/requests/sessions.py", line 533, in request
    resp = self.send(prep, **send_kwargs)
  File "/usr/lib/python3.7/site-packages/requests/sessions.py", line 668, in send
    history = [resp for resp in gen] if allow_redirects else []
  File "/usr/lib/python3.7/site-packages/requests/sessions.py", line 668, in <listcomp>
    history = [resp for resp in gen] if allow_redirects else []
  File "/usr/lib/python3.7/site-packages/requests/sessions.py", line 247, in resolve_redirects
    **adapter_kwargs
  File "/usr/lib/python3.7/site-packages/requests/sessions.py", line 646, in send
    r = adapter.send(request, **kwargs)
  File "/usr/lib/python3.7/site-packages/requests/adapters.py", line 516, in send
    raise ConnectionError(e, request=request)
requests.exceptions.ConnectionError: HTTPSConnectionPool(host='ambry.pw', port=443): Max retries exceeded with url: / (Caused by NewConnectionError('<urllib3.connection.VerifiedHTTPSConnection object at 0x7f29b46ab160>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution'))

It would be great if libgen checks for existence of specific element on page to understand whether URL is blocked and downloaded for analyses page isn't providers info about blocking.
In case of absence of such element it would be very convenient to make a guess about blocking and suggests something like torify (see #15).

A more reliable means of detecting censorship would be to use the data from the Ooni project by either doing a live measurement on failure or using existings measurements available thru their API.


docs(progress): fix the title and example's imports

This PR fixes the title of the Progress component doc that was Alert and fixes the imported components shown in the example.

Before
After

UPDATE
Other component had similar issue: Collapsible, HoverCard and ScrollArea

@donaminos Haha, thanks for fixing my mistakes. Appreciate the PR :)


New keyword: Download file from attachment

Hi,
At first I want to say thank you for your job and for your library! it's very useful
And I want to suggest you to add new keyword which would download the file from mail's attachment.

That's a great idea, @Necrosium. Let me look into it.

Hi, @rickypc
Did you take a look into it? maybe you have some news about this issue?


'bpy_prop_collection[key]: key "Light" not found'

Many meshes seem to have no Light, which leads to the error in add_lighting function.

And also, in reset_scene(), why not delete light?


ModuleNotFoundError: No module named 'data.loader'

Thanks for this awesome work and your code.
The following error message is displayed when main_brain.py is executed.
###Error message ###
from data.loader import imageHandle
ModuleNotFoundError: No module named 'data.loader'
Could you please tell me how to solve this problem?

Is there already an answer to this issue? I would also be interested in a solution to execute your code.

Hi,
Thank you for your interesting in the work. The data.loader library is relevant to our private code, thus was not uploaded. I will provide a template in the coming update for you to tailor your own version.
Thank you
Matheo