Fix Tox test execution on Windows

Running the tests is not currently possible on Windows, and will fail with ERROR: InvocationError for command could not find executable python3. This is because Tox executes pytest using python3, which isn't a valid python command on Windows. Since the Tox runs the tests in a virtual environment, plain python can be safely used.
Tested against Python 3.6 and 3.6 on Windows (PowerShell) and 3.7 in Ubuntu (WSL).

Thanks! I've been doing all the dev on MacOS so I never ran into this.


Use elastic-elastic_stack for repo management

Fixes #901

Pull request acceptance prerequisites:

[ ] Signed the CLA (if not already signed)
[ ] Rebased/up-to-date with base branch
[ ] Tests pass
[ ] Updated CHANGELOG.md with patch notes (if necessary)
[ ] Updated CONTRIBUTORS (if attribution is requested)

Thanks for taking this on @baurmatt, that's a lot of work and much appreciated!
The CI failures look legitimate, there's some spots where repo_version was still being defined.

Sorry, thought after the last commit everything would be fine and went of for the weekend. I've fixed two failures (string2array stuff). I'm not quite sure how to handle the rest. Most of them come from ES 5/6 not supporting site plugins anymore, am I supposed to remove those tests (and elasticsearch::plugin)?
Also: Is there an easy way to only deploy the docker container and investigate what Puppet did? That would drastically ease the fixes which are needed for the PID files path/systemd changes.

Thanks @baurmatt, I'll keep an eye on the CI failures and figure out which issues are unrelated to your changes.
Regarding iterating faster on tests, you can run the rake rspec tasks prefixed with BEAKER_destroy=no rake ... in order to preserve the image after the tests have run in order to hop back into the container and look around.

Sadly BEAKER_destroy=no doesn't help a lot, as elasticsearch gets uninstalled in the last tasks:
[root@centos-7-x64 log]# tail -n 1 yum.log
Dec 11 18:02:22 Erased: elasticsearch-5.6.5-1.noarch

Is there another way?

Yeah, stopping Beaker from destroying the image doesn't circumvent the teardown. Some options:

You can read the log output from a failed test run and re-apply the manifest. Beaker scp's the manifest over and puppet applys it, so you can do the same to recreate the issue. This is a simple way that works reliably for me.
Alternatively I think you could drop a hard exit(0) somewhere in the rspec tests to drop out of the tests before completing them, or inject a require 'pry' ; binding.pry to stall the tests while you look.

Admittedly I'm not an rspec expert so these aren't elegant and there may be easier ways. Generally I'd suggest the BEAKER_destroy=no method and applying the bad manifest as there hasn't been a case that hasn't worked me using that method yet.

I highly recommend the use of binding.pry, for what it's worth. 👍

Just using puppet apply one of the files in /tmp/apply_manifest* works good, thanks! :) Now i'm blocked with the next bug in puppet-elastic-stack -> https://github.com/elastic/puppet-elastic-stack/issues/5

Ok I think after the last change in puppet-elastic-stack it looks good now. As far as I can tell the errors left are related to changes in ES 5/6 regarding the plugin system and configuration changes for X-Pack/Shield.

@baurmatt yeah, those are spurious failures after some travis-ci updates. Would you mind terribly merging in master into your branch? I spent yesterday fixing the build so it should be clean now. Merging in master should let us see if there are any lingering problems.

Done. Lets see what happens :)

Alright, cool - we've got legitimate failures again. Note that some of the Travis tests don't have enough output so they get killed by Travis so the errors don't get summarized, but see these tests results for Ubuntu 16.04 as an example where they get through. tl;dr, there are still some acceptance failures where repo_version is being used.

Sorry, i think we have a little misunderstanding here. I aware of the last repo_version2x in spec/acceptance/004_plugin_spec.rb, it just seems like it doesn't make any difference removing it as ES 5/6 isn't supporting those plugins anymore. That's why i wrote:

I'm not quite sure how to handle the rest. Most of them come from ES 5/6 not supporting site plugins anymore, am I supposed to remove those tests (and elasticsearch::plugin)?

Without "fixed" spec/acceptance/004_plugin_spec.rb:
mbaur@puppet-development:~/Sources/puppet-elasticsearch (feature/elastic_stack_repo) $ rspec spec/acceptance/004_plugin_spec.rb
...
Finished in 4 minutes 14.9 seconds (files took 41.57 seconds to load)
19 examples, 18 failures
...

With "fixed" spec/acceptance/004_plugin_spec.rb:
mbaur@puppet-development:~/Sources/puppet-elasticsearch (feature/elastic_stack_repo *) $ rspec spec/acceptance/004_plugin_spec.rb
...
Finished in 5 minutes 11 seconds (files took 37.51 seconds to load)
19 examples, 18 failures
...

Anyway, i just pushed the commit removing the last existence of repo_version2x in those tests.

Technically (unfortunately) this module will still need to support 2.x officially as it hasn't yet gone end-of-life yet, so we'll need to keep around 2.x tests for a few months still. Keeping them working is kind of a pain but I'll also look into the failures along with you here to try and figure out the best way to update them. I'm working on a branch to ease testing across versions (2.x, 5.x, and 6.x) but it still isn't quite ready yet.
Some of the failures look like bogus Java version errors; a few days ago I fixed some Java dependency problems on master; if you merge master into your branch those should get fixed. Also as a heads up many of us are heading into holiday vacation so I'll try and keep responsive here but I do apologize if there's a slower turnaround time over the next couple of weeks. 😄

Thanks! :) I've already have my branch up2date with the current master of puppet-elasticsearch. I'm not quite sure how to support 2.x while using elastic_stack. Should i implement 2.x support into it? I'm also not really sure why this module is supposed to support 2.x until it's official EOL if puppet-logstash isn't. Shouldn't it be enough to keep and old version of this module for people using already/almost EOL versions?
I'm also heading off for vacations until the beginning of January :)

Thanks, I'll coordinate on the elastic_stack side to ensure we're all on the same page. We'll find a way to make a all the pieces work.


Added function to copy notebooks to specified path

Looks good to me.  Should it be just examples(), in case we someday or in some packages have non-notebook examples?  Either is fine by me.

Renamed to examples. Merging now.

Ok, good.  Just need to update the README now?


fixed syntax for multi-node

Signed-off-by: Galonza Peter<EMAIL_ADDRESS>Description
This changes fixed mistake in opensearch.yml(opensearch-multi-node.yml) "IllegalStateException[only value lists are allowed in serialized settings]"
Check List
[X ] Commits are signed per the DCO using --signoff
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.

@pgalonza  Could you please explain when you faced the below issue?  what is the value which provides this error?
IllegalStateException[only value lists are allowed in serialized settings]
Current setting with [] is working fine and its explicitly mentioned based on below doc,
https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-node.htmlhttps://www.elastic.co/guide/en/elasticsearch/reference/current/modules-node.html

@pgalonza Could you please explain when you faced the below issue? what is the value which provides this error?
IllegalStateException[only value lists are allowed in serialized settings]
Current setting with [] is working fine and its explicitly mentioned based on below doc,
https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-node.htmlhttps://www.elastic.co/guide/en/elasticsearch/reference/current/modules-node.html

@saravanan30erd I faced this problem when checked usual installation on 3 VMs with centos8. When open opensearch configuration file i saw this node.roles: [['ingest', 'data']], because {{ hostvars[inventory_hostname]['roles'] }} return the list with correct syntax, i think it is usual type conversion the list to string.
Tested on:

Python 3.10.0
Ansible 3.0.5, 4.10.0, 5.0

Screenshots:
https://disk.yandex.ru/i/9lj058BYoPe-ZQ
https://disk.yandex.ru/i/JBWsGZQcsf5k9A

@pgalonza ok, when I was tested with python 2.7 and python 3.6 this is not the case and thats why I explicitly mentioned list in config file. Currently we are working on support for Amazon linux & ubuntu PR's. Once thats merged, then we will look into this issue bcoz this requires some more time as it needs to be tested against different versions of python & ansible to reproduce the issue, also we need to check for backward compatibility.

I`m tested with inventory in yaml format and attribute was be a list not a string


Fix Wording

Very minor

Oh, this is a pretty valid change. I would be open to merging this! Not sure why you closed it but it’s not too small if that was your worry 😄


Exception handling

Using propagate_many on the full space-track catalog is very likely to throw RuntimeErrors due to decayed satellites or unphysical values (e.g. negative eccentricity). These errors are thrown in sgp4lib. Ideally these errors are caught by cysgp4, allowing the offending TLEs to be skipped.

Good point. I've had no issues so far, when one uses relatively up-to-date TLEs, but if one has outdated TLEs the chance to get an exception is high indeed. Handling this in the propagate_many function is not straightforward, unfortunately. First of all, the output arrays are created before all calculations (to allow numpy broadcasting). One could try to circumvent this via an additional flag array, which is set to True or False depending on the success of the calculation. The other problem could be speed. Right now, everything happens inside a Cython "nogil" block. Exception handling needs the GIL, which one can temporarily acquire, but only at the cost of the concurrently running OpenMP threads. Perhaps one can handle the C++ exceptions somehow, but I don't know yet.
I'll leave this issue open, until I have come up with a good solution.

These are up-to-date TLEs, but some are close to decay, which throws these Satellite decayed and Error: (e <= -0.001) errors. I verified this using a modified version of runtest from the sgp4 c++ code.  The runtest tool does catch these exceptions.
Would it help to uses nans for position and velocity for those satellites that thew an exception?

I think, I figured out a solution. Unfortunately, I couldn't find a way to solve this in the Cython code (dealing with C++ exceptions is not well documented), but by adding a wrapper to the underlying SGP C++ code directly, I created a new function "findPositionNaN", which does the trick.
One can now use the on_error parameter to choose between "raise" and "coerce_to_nan". Default is the former, because not all user may be aware of such problems and it's better to have an error in the first place.

Many thanks for that solution! It works great.


Help

The test result of Don't Kill my app is 100% and the running app closes by itself how it can happen

Hello, can you explain in more details? By "running app closes itself" you mean the DKMA app? How doe sit look liek when the app closes itself. Can you explain that in detail pelase?

Hello, can you explain in more details? By "running app closes itself" you mean the DKMA app? How doe sit look liek when the app closes itself. Can you explain that in detail pelase?

http://github.com/urbandroid-team/dont-kill-my-app/issues/281#issuecomment-757686174
how doe sit look liek


bug with the texture of insect

i have a bug with the texture of insect

You seem to have the incorrect param files.
Delete the following files:
1. InsectAppearParam.bin
2. FishAppearSeaParam.bin
3. FishAppearRiverParam.bin
4. CreatureAppearSeaParam.bin
Then restart ANCHPokerCore and connect while you are in the game.
Press the "Read Critter Data" button to dump the correct param files once again.

Owner

I did what you said but it doesn't work

and i have this problem with acnhpoke

r

I have dropped the support of the old ACNHPoker.
These are the correct Param files if you have trouble dumping them yourself.
Please also check what system modules you might have installed on your Switch.
Things like SaltyNX might interfere with sys-botbase and cause problems with ACNHPokerCore.

thank you i have used your param files and it works

but now i don't understand how to use

AMS System 14.1.1
After paste the latest sys-botbase to contents
Switch is getting error.
Take out SD card and delete the folder:<PHONE_NUMBER>00000B
Then only can turn on my switch.
Any advise? How should I do?
Thanks

Use "Disable All" to disable all spawns first.
Select the one you want and put it to "Max Spawn"
Run around the map to find them.

If you can't find it. Please make sure you meet the additional requirement for that critter. For example, butterflies need some flowers to spawn.


Support file and folder drag-and-drop

It would be convenient to have behaviour similar to what VSCode does where if you drag and drop a file from explorer onto the editor, it just opens it. If you drag and drop a folder, it opens it as a workspace.

Related to #586 - @zbaylin is adding primitives to Revery to support this.

The first part has been in Oni for a while now, but the directory/folder dropping I'm adding in #2155!

Since #2155 is merged, I'm going to close this now. Let us know if you have any other issues!


Change highlight for stylusExplicitVariable to Identifier

Stylus variables highlighted as NonText now. NonText highlight rule is for non printable chars like line breaks or tabs, it usually has low contrast and it is not easily readable. I've changed it to Identifier to make it easy to read.
Before:

After:

Accepted.
I just used this NonText highlight rule because I wanted stylus variables to differ from classes and ids. I actually haven't thought about this issue because NonText is pretty readable and looks very nice in the color scheme that I currently use. And this is, probably, not the case for the vast majority of vim users.
Thank you.


No freezing ?!

@iBLiSSINYT Thank you :heart: :smile:
So have you actually found what was causing the freezing or since new update from developers it doesn't freeze anymore ?


Correct Rectangular Duct Waf range of valid values

From ticket #5698
["monitoringLocationData.0.rectangularDuctWAFData.0.[DEFAULT-80-D] - The [wafValue] for [Rectangular Duct Waf] is not within the range of valid values.  This value must be greater than 0 and less than 1." ],
Excel: Min 0 - Max 99.9999
[Jason W] correct excel/schema/dto to allow min 0 & max 1

On dev, DEFAULT-80-D works as listed, preventing the user from saving WAF values <=0 and >=1; the value must be between 0 and 1.

The check specifications also provide other results for DEFAULT-80, and these were tested as well:

A: Leaving WAF value blank produces DEFAULT-80-A in the modal, but it also produces a second error.

B: Unable to produce DEFAULT-80-B informational message. (Requires evaluation?)

C: Unable to produce DEFAULT-80-C informational message. (Requires evaluation?)

Testing completed. The correct Rectangular Duct Waf range (between 0 and 1) is being properly verified.


revisiting closed inquiry with additional questions…

Hello, sorry, it's me again.
You closed my issue, so I'm writing anew. I have a few more questions that I haven't received answers to..!
I noticed in the documentation that there was fine-tuning using the blendedMVS for the T&T dataset. Would you be willing to share the fine-tuned pretrained model? I'm eager to test its performance on a room-scale as soon as possible. If it's not possible to share the model, could you at least inform me about the duration of the fine-tuning process on the blendedMVS dataset?
+
The room-scale dataset using your code and the resulting .ply file exceeded 10GB (I got about 400 million points...). I wanted to confirm if such a file size is typical for this scale. The writing process for the .ply file also seemed quite lengthy. Comparing this to the point cloud files you've provided, which are about 500MB at an object-scale, it suggests to me that a 10GB file size for room-scale might be reasonable. Nevertheless, I would like to ensure that this is expected and that there are no errors in the process.

I don't have a fine-tuned pre-trained model here.
~10h for 4 V100 cards.
10G is reasonable, but you should do the point cloud filter post-process yourself.


getting php to render properly in html

First off, awesome tool! 👍 Setup was easy and it runs flawlessly in MAMP as well.
I'm using code blocks with pure php, and php mixed with html. The php works perfectly after a few tweaks to the CSS. I'm also using Rainbow.linenumbers.js from Blender, so not sure if that's causing any issue. It just appears to be wrapping things in table tags.
When doing html with php inside of it I'm not sure how to color things like parens, curly braces, brackets, and semicolons, because the php tag isn't inside of it's own span. Therefor all that stuff is colored the same as the php tags which looks funky.
I tried using php as the data-language instead of html, but then I can't target the html tag to give it its own color as the < > are given the classes of "keyword operator" with the tag's name floating loose in the parent span. This obviously conflicts with the php "keyword" and "operator" classes, so I can't do it that way.
This first image shows how things render with php as the data-language (awesome):

This one shows what happens with html as the data-language with php in it (not so awesome):

As you can see the ( ) of the function and the ; are orange because they're in the primary span for php with the "source php embed" classes.
Is there any way to get around this? I have no knowledge of javascript or how to add new rules for the highlighting or I'd just edit the rainbow-custom.min.js that I generated from your website. ;)
thanks, and hope you can help with this. It's the only snag I've run into so far.

By the way, I saw in the docs about doing this, but any way I tried to add it as an extend to the rainbow.js file (or even my php footer) didn't work.
advice welcome.
thanks

Thanks for the report! I will take a look in a little bit. I have a rainbow playground page I have been working on, but it doesn't exist anywhere on the internet at this moment, but should be easy enough to test.
As for extending it should be something like:

I think that should work, but I haven't tested it. You may have to explicitly pass in 'php' as the third argument to the extend call

I'll give it a shot. Thanks for the fast reply.
By the way, I'm an artist, so if you do decide to put the playground live at some point, let me know and maybe I can pimp the pixels a bit for ya ;)

No luck with your code, man. I tried adding the php stuff to your code also, but I'm most likely doing it totally wrong. I have no idea what the syntax or patterns are supposed to be. It might as well be written in Swahili. -_-

HTML actually already has a native rule for including PHP inside of it:
https://github.com/ccampbell/rainbow/blob/3374f1322bfa01885ce7d19a7c5021336af09513/src/language/html.js#L7-L15
So you shouldn't have to do that. That was just an example in the docs to explain how you could insert a language inside of another language.
The example I sent in this ticket was how to actually extend the rules for an existing language. I am not sure this bug is something that can be fixed by changing the language rules.

Ok.
So this is a bug then? ...that the opening and closing  inside of html are not being wrapped in their own spans? That's all that's needed for this to work.
If so, then I'll just keep my eyes peeled for a bug fix, and I'll try to manually add my own spans for now as hack.
thanks

Hmm so this is actually working correctly for me. I wonder if it is related to the linenumbers plugin. If I include these languages:

Then use your sample markup and highlight it the resulting code is:
<article><?php somefunction() ?></article>

Do you have a sample page or jsfiddle where you can show me it not working?

I generated the js file from your website (https://craig.is/making/rainbows) , where I chose javascript, html, css, and php from that list that expands. Maybe the way it's generating the js file it's messing up something? I only got 1 file that was minified when I downloaded it this way.

Let me try using the minified file with those language one off and see what happens…

sounds good.
I only have it on a local install right now, but if it's not happening to you with the minified version then I'll upload it to my server.

Here is a jsfiddle of it working:
https://jsfiddle.net/cdh0wjwy/1/
Hopefully that helps

yeah, same as I get, no spans around the php tags.

Sorry man, maybe I need to clarify, I'm trying to get something like this:
<?php myfunction(); ?>

see how the opening and closing php tags are wrapped in spans so they can be colored, and the ( ) and ; are just floating loose in the parent span

Ahhh I see what you mean. So basically the highlighting of the php tags themselves is inconsistent when using html vs. php as the language. The (); is correct to be floating loose and not highlighted though.
So the other difference is that when it is embedded in html the entire php block is wrapped in a .
I am working on a fix right now for the open and closing php tags, but I hope that is what you want

So when it is done it will be what you want except the first span will have source-php-embedded class on it:
<?php myfunction(); ?>

Yeah man! Now we're on the same page.
Yes, when embedded in HTML it is wrapped in that source php embed, but the php tags themselves are floating along with the rest. As you said, the other stuff being loose is fine, because all that stuff you'd want to be the same color. :)
The rest of the way you have it formatted has been working just fine here, though I haven't tried any complex php inside of html tags. If I see anything else I'll let you know.
And thanks so much for working this out and for the fast responses. Really appreciate it. 👍

No problem. I will let you know when the fix is live

Okay if you download a new package from http://rainbowco.de then it should have the fix. I also updated the jsfiddle: https://jsfiddle.net/cdh0wjwy/2/

cool.
hmmm. I'm not seeing it working here in the fiddle...
Is that the right link?

ah nevermind. I'm blind (long day)...

Yes it is. You can inspect:

yeah, I saw. I forgot you didn't add any css.
I grabbed the file from your site but I'm not seeing the tags here in my local install. Maybe the page is cached or something. I have caching turned off here. I'll see if I missed something and flush everything, restart and reboot MAMP and see how it goes.
Much thanks again

Awesome man. Now it's working. Rock on!
Thanks so much. If you ever need some help with graphics, just holler!


Follow hierarchical schematics

Would be good to follow sub-schematics when inserting

Hierarchical schematics are now supported in version 0.1.5.


Y24-391 - Create an automated method to generate  “Limber-Htp – GBS” library preparation submissions for “LANS-96 Lysate” plates generated by the “Limber-Htp – ANOSPP Lysate Prep” extraction pipeline

User Story
As R&D (Scott T) I would like an automated method to generate  “Limber-Htp – GBS” library preparation submissions for “LANS-96 Lysate” plates generated by the “Limber-Htp – ANOSPP Lysate Prep” extraction pipeline, in order to simplify and speed up the ANOSPP GBS submission process, as well as reduce the burden on the SSRs.
RT Ticket - https://rt.sanger.ac.uk/Ticket/Display.html?id=811574
Who are the primary contacts for this story
Scott T (R&D)
Knowledge or Stake holders
Lena H-H (SSR)
Liz H (SSR)
Lynda D (Sample Prep)
Acceptance Criteria
In order to be successful, this story should:
Remove the requirement for a separate  “Limber-Htp – GBS” submission template to be completed for LANS-96 Lysate plates created by the “Limber-Htp – ANOSPP Lysate Prep”  extraction process.
Assign the correct primer panel to the LANS-96 Lysate plate.
LANS-96 Lysate plates containing samples from the ANOSPP study will require primer panel “ANO_SPP_v1.0”.
Allow some method to change the primer panel associated with this automated request in the event that the ANOSPP panel gets an updated version in the future.
Additional context or information
For the LANS-96-Stock plates, two sequencescape submissions are required in total. One submission is required for the extraction process (where a LANS-96-Stock plate generates a LANS-96 Lysate plate), and a separate submission is required for the LANS-96 Lysate plate to proceed to GBS library preparation.
We are currently aiming for 24 plates per week to be submitted for the ANOSPP project through the “Limber-Htp – ANOSPP Lysate Prep” extraction pipeline.
This story would halve the number of submissions for the SSR and enable the process to scale up throughput in the future.
This feature should bring the submission approach  in line with other Non-Destructive Extraction pipelines (e.g. “Limber-Htp – Bioscan Lysate Prep” DPL-903)
No well-level fails are required.
Process maps for the “Limber-Htp – ANOSPP Lysate Prep” extraction pipeline are attached.
One for the pipeline itself, one to indicate how the Lysate Prep pipeline interacts with the start of GBS.
The second process map also includes Faculty’s later, separate submission of samples for WGS based on GBS sequencing results, which is not relevant to this story, but gives wider context.

Refined User Story after meeting with Scott, the primary contact.
New Pipeline Automation for Submissions
Description of the Problem:
To Create an automated method to generate “Limber-Htp – GBS” library preparation submissions for “LANS-96 Lysate” plates generated by the “Limber-Htp – ANOSPP Lysate Prep” extraction pipeline
Currently, the process of customer submissions involves a manifest submission followed by a non-destructive extraction submission. This workflow has inefficiencies, particularly regarding the lack of automation in the second submission. This results in unnecessary back-and-forth communication between teams, leading to time wastage and potential delays in processing.
Contact Person:
Scott Thurston
User Story:
As R&D (Scott T) I would like an automated method to generate “Limber-Htp – GBS” library preparation submissions for “LANS-96 Lysate” plates generated by the “Limber-Htp – ANOSPP Lysate Prep” extraction pipeline, in order to simplify and speed up the ANOSPP GBS submission process, as well as reduce the burden on the SSRs.
Acceptance Criteria:

Remove the requirement for a separate “Limber-Htp – GBS” submission template to be completed for LANS-96 Lysate plates created by the “Limber-Htp – ANOSPP Lysate Prep” extraction process.
Assign the correct primer panel to the LANS-96 Lysate plate.
LANS-96 Lysate plates containing samples from the ANOSPP study will require primer panel “ANO_SPP_v1.0”.
Allow some method to change the primer panel associated with this automated request in the event that the ANOSPP panel gets an updated version in the future.
The system automatically triggers the second submission upon the completion of the non-destructive extraction.
Back-and-forth communication requirements between teams are minimized, allowing for faster processing times.
The automation must be tested with existing submissions to ensure compatibility and correctness.

Dependencies:
We are currently aiming for 24 plates per week to be submitted for the ANOSPP project through the “Limber-Htp – ANOSPP Lysate Prep” extraction pipeline. This story would halve the number of submissions for the SSR and enable the process to scale up throughput in the future.
This feature should bring the submission approach in line with other Non-Destructive Extraction pipelines (e.g. “Limber-Htp – Bioscan Lysate Prep” DPL-903)
No well-level fails are required.
Process maps for the “Limber-Htp – ANOSPP Lysate Prep” extraction pipeline are attached.
One for the pipeline itself, one to indicate how the Lysate Prep pipeline interacts with the start of GBS. The second process map also includes Faculty’s later, separate submission of samples for WGS based on GBS sequencing results, which is not relevant to this story, but gives wider context.
Out of Scope (To be considered later)

Notifications are sent to relevant teams when the second submission is initiated.
A confirmation log is generated for each automated submission for tracking and auditing purposes.


chore(deps): update typescript - abandoned

This PR contains the following updates:

Package
Type
Update
Change

@types/node (source)
devDependencies
patch
20.14.12 -> 20.14.13

@types/node (source)
dependencies
patch
20.14.12 -> 20.14.13

gdata-vaas
dependencies
patch
7.1.8 -> 7.1.9

:warning: Warning
Some dependencies could not be looked up. Check the warning logs for more information.

Release Notes

GDATASoftwareAG/vaas (gdata-vaas)
v7.1.9
Compare Source

Configuration
:date: Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
:vertical_traffic_light: Automerge: Disabled by config. Please merge this manually once you are satisfied.
:recycle: Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
:ghost: Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.

[ ] If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

Edited/Blocked Notification
Renovate will not automatically rebase this PR, because it does not recognize the last commit author and assumes somebody else may have edited the PR.
You can manually request rebase by checking the rebase/retry box above.
:warning: Warning: custom changes will be lost.

Autoclosing Skipped
This PR has been flagged for autoclosing. However, it is being skipped due to the branch being already modified. Please close/delete it manually or report a bug if you think this is in error.


Slider moves more than a swipe when the value range of Slider is small

Description
If the value range of the slider is small, the slider moves more than a swipe. Happens on both IOS / android.
CodeSandbox/Snack link
No response
Steps to reproduce
I wrote the following code, but when I check the operation, the problem described in the title occurs.
If the Step is reduced to about 100 steps, the misalignment is reduced, but still there seems to be misalignment when moving from one end to the other.
Is this a bug? Is it a problem in the way the code is written?
Also, is there a prop to add memory to the slider?
https://gluestack.io/ui/docs/components/forms/slider
import {
  Slider,
  SliderFilledTrack,
  SliderThumb,
  SliderTrack,
} from '@gluestack-ui/themed';

.....

        <Slider
          defaultValue={1}
          step={1}
          minValue={0}
          maxValue={10}
          size="md">
          <SliderTrack>
            <SliderFilledTrack />
          </SliderTrack>
          <SliderThumb />
        </Slider>

gluestack-ui Version
"@gluestack-style/react": "^1.0.0",
Platform

[ ] Expo
[x] React Native CLI
[ ] Next
[ ] Web
[X] Android
[X] iOS

Other Platform
No response
Additional Information
"@gluestack-ui/config": "^1.0.1",
"@gluestack-ui/themed": "^1.0.5",
"react-native": "0.72.5",

Hey @s-i27, Thanks for reporting this issue. We will look into it.

This issue has been fixed in the lastest version of @gluestack-ui/themed. Please upgrade it and let us know if it is fixed.


Add button to open link in welcome modal

@bhavyaus is there an issue this should be linked to?

This is a one-off change we're making to use for user studies tomorrow.


sail down is not a graceful shutdown

Description:
The script /usr/local/bin/start-container does not hand-off PID 1 responsibilities to supervisord.  When a container stop signal is sent, the bash ignores the SIGTERM, and after waiting for the specified grace period, docker will effectively kill -9 all the processes in the container.
Steps To Reproduce:
The can be seen by adding stop_grace_period: 2m to the docker-compose file and then running time sail down.          Ss     0:00 bash /usr/local/bin/start-container
     17 ?        S      0:00 /usr/bin/python3 /usr/bin/supervisord -c /etc/super
     18 ?        S      0:00  \_ /usr/bin/php -d variables_order=EGPCS /var/www/
     25 ?        S      0:00      \_ /usr/bin/php8.0 -S <IP_ADDRESS>:80 /var/www/html

PID 1 is the bash file which doesn't trap signals
time ./vendor/bin/sail down
Stopping project_laravel.test_1 ...
Stopping project_mysql_1        ...
Stopping project_redis_1        ...
Removing project_laravel.test_1 ... done
Removing project_mysql_1        ... done
Removing project_redis_1        ... done
Removing network project_sail

real    1m36.763s   ##  this 2m matches the stop_grace_period: 2m in docker-compose
user    0m1.587s
sys     0m0.230s

If the supervisord line is start-container is preceded with exec, then the bash file will exit and the supervisord process will be promoted to PID 1 and properly respond to docker stop's SIGTERM and shutdown all services.
# ...
chmod -R ugo+rw /.composer
if [ $# -gt 0 ]; then
    exec gosu $WWWUSER "$@"
else
    exec /usr/bin/supervisord -c /etc/supervisor/conf.d/supervisord.conf
fi

You can use docker-compose volumes to bind in your own copy of start-container for testing without having to rebuild the image.
          volumes:
              - '.:/var/www/html'
              - './config/docker/start-container:/usr/local/bin/start-container'

$ docker-compose exec laravel.test ps fax
    PID TTY      STAT   TIME COMMAND
     24 pts/0    Rs+    0:00 ps fax
      1 ?        Ss     0:00 /usr/bin/python3 /usr/bin/supervisord -c /etc/super
     16 ?        S      0:00 /usr/bin/php -d variables_order=EGPCS /var/www/html
     23 ?        S      0:00  \_ /usr/bin/php8.0 -S <IP_ADDRESS>:80 /var/www/html/ven

$ time ./vendor/bin/sail down

Stopping project_laravel.test_1 ...
Stopping project_mysql_1        ...
Stopping project_redis_1        ...
Removing project_laravel.test_1 ... done
Removing project_mysql_1        ... done
Removing project_redis_1        ... done
Removing network project_sail

real    0m7.492s  # seven seconds
user    0m1.025s
sys     0m0.140s

Please fill out the entire issue template when submitting issues and don't ignore it.

@driesvints can I add missing details from issue template here so you can open this issue again?


Minor doc improvements

See commit messages

Current coverage is 81.45% (diff: 100%)

Merging #4657 into master will decrease coverage by 0.08%

@@             master      #4657   diff @@
==========================================
  Files          1307       1307
  Lines         44949      44949
  Methods           0          0
  Messages          0          0
  Branches       7070       7070
==========================================
- Hits          36651      36615    -36
- Misses         5601       5636    +35
- Partials       2697       2698     +1

Powered by Codecov. Last update 20f76b8...b49a8ec


Pluggable policy engine.

resolve: #19
cc @bpradipt

@bpradipt Hi, does this looks good to you? We can try to get it merged :-)


single_threaded_property should not be externally writeable

single_threaded_property is intended for readonly properties ({ get; };). single_threaded_rw_property should be used for settable properties ({ get; set; };).
However, the current implementation of single_threaded_property can be used for settable properties because it contains operator()(T&&).
The fix is to remove that overload.

This is also fixed now, right?

No, I'm looking into this now.

Fixed by #366

Fixed in #366, thanks!


count() support like in Python

Hello,
Counting items in the least would be a useful feature.
Example:
List<bool> items = [true, false, true, true];

As in Python, you can use the .count(true) method and it will return 3.
However, in dart, I would need to use something like:
totalCorrect.where((e) => e == true).length

I guess the count method is similar to the contains method in spirit.
It's not something we have, and not something we have previously had requests for, but it should be easy to add to, e.g., the package:collection extensions. Whether it's worth it is a question.
I don't think .where((e) => e).length is that bad. There is no limit to the number of specialized methods you can add to iterables, but most can be implemented mainly using where, map or expand. If the function isn't going to see significant use, I'm not certain it carries its own weight in maintenance.

Hmm...
I mean it isn't a big deal, but still worth mentioning.
But thanks anyway for informing!


Azure CLI example should include location parameter

First of all, thanks for the great contents!
I tried the example and found the workspace got deployed in a different region than the one I passed to my resource group creation. Turned out I have to pass location parameter to the deployment as well, like:
az group create --name examplegroup --location "East US"
az group deployment create \
  --name exampledeployment \
  --resource-group examplegroup \
  --template-file azuredeploy.json \
  --parameters workspaceName=exampleworkspace location=eastus

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

ID: 6bb762e3-f0ac-c0de-baaf-393093c4ff69
Version Independent ID: 35020248-277f-167b-9ff4-ed8ca8cc4478
Content: Use an Azure Resource Manager template to create a workspace - Azure Machine Learning service
Content Source: articles/machine-learning/service/how-to-create-workspace-template.md
Service: machine-learning
Sub-service: core
GitHub Login: @Blackmist
Microsoft Alias: larryfr

@loomlike Thank you for your feedback on document, I will fix it.

@loomlike You should see the change now. Thank you for your feedback again.
We will now proceed to close this thread. If there are further questions regarding this matter, please respond here and @YutongTie-MSFT and we will gladly continue the discussion.


Netlist issues from klayout

Netlist generated by klayout while running LVS generates .cir file. The .cir netlist's terminal order for (say for transistor) does not match the terminal order of xschem's netlist for same transistor (nfet, pfet). This causes LVS error in Klayout. Need a script to correct terminal order in .cir with ones in .cdl

That probably something to report against https://github.com/KLayout/klayout, but I don't think it affect the LVS checks anymore as we got the device properly imported from xschem now that https://github.com/google/globalfoundries-pdk-libs-gf180mcu_fd_pr/issues/101 is fixed.


FeatureUsing Awaitility for Asynchronous Testing

Search before asking

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

Description
Currently our test codes include a lot of thread.sleep test codes, but this is not a recommended test method.

On one hand, Thread.sleep can lead to unstable test cases. On the other hand, it can also cause test cases to run longer than necessary.
https://github.com/awaitility/awaitility
Thread.sleep vs Awaitility
Using Awaitility instead of Thread.sleep for asynchronous testing in Java offers several advantages:
Readability and Intent:
Awaitility: Using Awaitility makes the test code more readable and expressive. It clearly communicates the intention to wait for a certain condition to be met.

Awaitility.await().until(() -> someConditionIsMet());
Thread.sleep: Using Thread.sleep adds an arbitrary delay without indicating why the delay is necessary, making the code less readable and harder to understand.

Thread.sleep(1000);
Reliability:
Awaitility: Waits until a specific condition is met, which makes the tests more reliable and less prone to intermittent failures. It ensures that the test only proceeds when the expected condition is true.
Thread.sleep: Introduces a fixed delay, which can lead to flaky tests. If the condition is met sooner than the sleep time, the test unnecessarily waits. Conversely, if the condition is met after the sleep time, the test will fail.
Timeout Management:
Awaitility: Allows for configuring timeouts and poll intervals, giving fine-grained control over how long to wait and how frequently to check the condition.
Awaitility.await().atMost(5, TimeUnit.SECONDS).until(() -> someConditionIsMet());

Thread.sleep:
Error Messages:
Awaitility: Provides clear error messages when a condition is not met within the specified timeout, making it easier to diagnose issues.
Thread.sleep: If the condition is not met, the test may fail without a clear explanation, making debugging more challenging.
Best Practices:
Awaitility: Encourages best practices for writing asynchronous tests, such as waiting for conditions rather than introducing arbitrary delays.
Thread.sleep: Using Thread.sleep is generally considered a bad practice in tests because it can lead to non-deterministic behavior and inefficiencies.
In summary, Awaitility improves test readability, reliability, and maintainability by allowing precise control over waiting for asynchronous conditions, making it a better choice than using Thread.sleep.
Related issues
No response
Are you willing to submit PR?

[ ] Yes I am willing to submit a PR!

Code of Conduct

[X] I agree to follow this project's Code of Conduct

I want to try this issue, can you assign it to me?

I want to try this issue, can you assign it to me?↳

Sure!
Feel free to contribute. Since this work involves a lot, you can break it down into small PRs and submit them. Of course, it’s best to comment below on which test cases you plan to refactor.

@CalvinKirs Hi , i have raise few MR for this task. pls help to review. thanks.


Bug in resolving TxOutDatumInTx in BabbageEra

Summary
In AlonzoEra datums which were provided in the transaction were resolved for the TxBodyContent when converting from a ledger ValidatedTx. This is not the case anymore in BabbageEra, even though we are using TxOutDatumInTx now.
I could trace it down to different handling for Alonzo/Babbage in fromLedgerTxOuts here: https://github.com/input-output-hk/cardano-node/blob/a1e947e6e281f1b3739d34c74356f1b93ecc1d50/cardano-api/src/Cardano/Api/TxBody.hs#L2241-L2252
Expected behavior
Any transaction with a datum hash at an output and the datum included in the transaction, should get resolved to a TxOutDatumInTx in BabbageEra as well. Just as it was with AlonzoEra.
Version info
This was observed not on released code, but on a branch which contains BabbageEra features, e.g. on commit https://github.com/input-output-hk/cardano-node/tree/aebd6334b765a9d3030fbd5749343b2767ae906c/

I thought I could work on this today!?
@JaredCorduan @Jimbo4350 My approach would be to copy the way fromLedgerTxOuts is handled for AlonzoEra and resolve datums for TxOutDatumInTx the same was there. Currently the signature for BabbageEra is simpler, but will need to be extended with information about the datums in the tx, just like it's done for AlonzoEra.

That sounds reasonable to me, @ch1bo , thanks for helping with this!

@ch1bo go for it :+1:

bors merge


Warning when starting to play game

Screenshot as seen in the CMD
2017-05-12 13:55:18|ASF-1468|WARN|Hennihenner|Init() System.IO.InvalidDataException: An internal error occurred when attempting to parse the response from the WebAPI server. This can indicate a change in the VDF format. ---> System.Exception: LoadFromBuffer: missing {
at SteamKit2.KVTextReader..ctor(KeyValue kv, Stream input)
at SteamKit2.KeyValue.ReadAsText(Stream input)
at SteamKit2.WebAPI.AsyncInterface.d__7.MoveNext()
--- End of inner exception stack trace ---
Server stack trace:
at SteamKit2.WebAPI.AsyncInterface.d__7.MoveNext()
Exception rethrown at [0]:
at SteamKit2.WebAPI.Interface.TryInvokeMember(InvokeMemberBinder binder, Object[] args, Object& result)
at CallSite.Target(Closure , CallSite , Object , UInt64 , String , String , String , Boolean )
at ArchiSteamFarm.ArchiWebHandler.<>c__DisplayClass41_0.b__0()
No futher issues, it worked fine afterwards.

Warnings related to Valve fuckups are not worth reporting.


Category stats view always rendered and then checking visibility if show_stats is enabled or not

Possibility to change the visibility of the category stats view, right now, if show_stats was false, the view was not added and there was not possibility to show it again.
Fixes #246.
CR: @javierarce

ping!

:+1: LGTM


[FP]: CVE-2022-21704, a log4js (node.js) dependency, gets flagged in a log4j (Java) dependency

Package URl
<EMAIL_ADDRESS>CPE
cpe:2.3:a:apache:log4j:2.23.1:::::::*
CVE
CVE-2022-21704
ODC Integration
{"label"=>"Gradle Plugin"}
ODC Version
9.2.0
Description
Vulnerability CVE-2022-21704, which applies to log4js (with an s at the end, a Node.js library) gets flagged on a Log4j (Java) dependency:
log4j-slf4j2-impl-2.23.1-sources.jar<EMAIL_ADDRESS>cpe:2.3:a:apache:log4j:2.23.1:*:*:*:*:*:*:*, cpe:2.3:a:log4js_project:log4js:2.23.1:*:*:*:*:*:*:*) : CVE-2022-21704

Strangely enough, this suddenly got flagged (along with a bunch of other vulnerabilities) while I tried to upgrade a project from Kotlin 1.9.x to Kotlin 2.0. But the dependencies that suddenly got flagged with that upgrade weren't related to the Kotlin 2.0 upgrade.
Also worth noting: according to NIST, the CPE should in fact be cpe:2.3:a:log4js_project:log4js:*:*:*:*:*:node.js:*:*, but both CPEs that the DendencyCheck Gradle plugin flags have a wildcard in place of the node.js part. Perhaps that's what's causing this false positive?

This is one of multiple FPs of Node.js vulnerabilities that suddenly got flagged on Java/JVM dependencies while I was upgrading Kotlin from 1.9.x to 2.0, apparently because the CPE had an asterisk in the third position, which should have contained the string node.js, according to NIST:

CVE-2021-3765, FP reported at https://github.com/jeremylong/DependencyCheck/issues/6692
CVE-2017-16111, FP reported at https://github.com/jeremylong/DependencyCheck/issues/6693
CVE-2016-10543, FP reported at https://github.com/jeremylong/DependencyCheck/issues/6694
CVE-2022-21704, FP reported at https://github.com/jeremylong/DependencyCheck/issues/6695

approved

@jeremylong This suppression didn't work, apparently. the FP is still getting flagged, even with the suppression added to my project:
log4j-slf4j2-impl-2.23.1-sources.jar<EMAIL_ADDRESS>cpe:2.3:a:log4js_project:log4js:2.23.1:*:*:*:*:*:*:*) : CVE-2022-21704


Unique questions stored in server

Related Issuse
Allowing only unique questions to be sent to the database.
Closes: #137
Describe the changes you've made
I have made changes to the question model such that only unique questions are sent to the database.
Checklist:

[x] My code follows the style guidelines of this project.
[x] I have performed a self-review of my own code.
[x] I have commented my code, particularly in hard-to-understand areas.
[x] I have made corresponding changes to the documentation.
[x] My changes generate no new warnings.

Hi @aavishkarmishra, please review the PR and let me know if any changes are required.
Thanks

Hi @aavishkarmishra , please review the PR and let me know if any changes are required.
Thanks

Hi @aavishkarmishra, please let me know in case any other changes are required.
Thanks


 What is important is that we start them in a certain sequence, the download however can happen in parallel.

Doesn't make a difference :(


Left and right mouse button clicks not possible?

TV info:
Model: LG OLED55C11LB
WebOS version: 6.2.0-35 (kisscurl-kavir)
System version: 3.21.20
Rooted with https://rootmy.tv/
PC info:
Some little older desktop PC with i7-4770 and Archlinux
First of all thanks for great app.
Unfortunately, these are only 3 things which are working for me out of box:

Cursor moving by moving remote as usual
UP/DOWN/LEFT/RIGHT via big circle on remote
PageUP/PageDOWN via Channel +/- on remote

From my point of view, just Left Click/Right Click are missing here. I mean, this cannot be fully comfortable experience as with real keyboard and mouse, but on the other hand you will not programming or 3d modeling on TV 😂, so I suppose for most of the people would be sufficient to have scrolling, left/right click, and some key shortcut/macro to call virtual on-screen keyboard, while using PC as media center.
I was try to remap middle button on remote to be left click, but without success. This middle button on remote is sending ENTER event (Return). I tried with Linux Input Remapper. I can see in Input Remapper that your app is creating 3 virtual devices - keyboard, mouse and touchpad, but it seems it is not possible to assign mouse event (BTN_LEFT) to keyboard button (Return). I mean, it is possible to assign and apply it inside Input Remapper, but it has no effect. Just for note: I can assign some keyboard event to this middle button, e.g. if I assign letter "a", this is working - clicking on remote middle button is typing "a" on PC screen, but assigning BTN_LEFT is not working - keyboard continues to "typing" default option - ENTER.

If I run sudo evtest ....

..... there is no BTN_xxxx events, as supported for magic4linux-keyboard
BTN_xxxx events could be found in magic4linux-mouse, but unfortunately, magic4linux-mouse is not sending any event on any remote button click.

Sorry if this post is confused, in short: Is it anyhow possible to enable left and right mouse clicks on remote?
Many thanks.

Actually, this is not a bug I think. I read later today that keyboard and mouse events are different and it seems it is normal they cannot be mixed. On top, it seems that middle button on remote, one which sending Return event, cannot be assigned to everything. I had success to assign it to letters and numbers, but nothing happen if I assign some hotkey combo with Ctrl, Alt, etc. I ended with some combination of this app, AutoKey and Input Remapper, added left click, right click and hotkey combo for Onboard to red, yellow and blue remote buttons, and I am happy with this. Return is already on middle button and scrolling is working via UP/DOWN and PageUP/PageDOWN. One thing is missing for me, drag and drop, but this will be little more complicated. Closing this.

Hi @stiw47, nice to see your interest in the project. This started as a PoC and I haven't really worked on it since. My goal was to ultimately allow remapping keys within magic4linux in various ways.
If you want to avoid using additional software, all the relevant code for key/mouse presses are located here: https://github.com/mafredri/magic4linux/blob/ccfe1c2ba80c023dc88ba4bb03df259ac6774a84/cmd/magic4linux/main.go#L81-L187
For instance here: https://github.com/mafredri/magic4linux/blob/ccfe1c2ba80c023dc88ba4bb03df259ac6774a84/cmd/magic4linux/main.go#L95
You can replace key = uinput.KeyEnter with:
if m.Input.Parameters.IsDown {
	tp.LeftPress()
else {
	tp.LeftRelease()
}
return

This would send mouse clicks instead of enter.


[doc] rename rest of the request handlers

Renamed the rest of the request handlers according to #5513
Please don't delete this checklist! Before submitting the PR, please make sure you do the following:

[ ] It's really useful if your PR references an issue where it is discussed ahead of time. In many cases, features are absent for a reason. For large changes, please create an RFC: https://github.com/sveltejs/rfcs
[x] This message body should clearly illustrate what problems it solves.
[ ] Ideally, include a test that fails without this PR but passes with it.

Tests

[ ] Run the tests with pnpm test and lint the project with pnpm lint and pnpm check

Changesets

[ ] If your PR makes a change that should be noted in one or more packages' changelogs, generate a changeset by running pnpm changeset and following the prompts. All changesets should be patch until SvelteKit 1.0

Thank you. Looks like there are two posts in the env var sections of adapter-cloudflare and adapter-cloudflare-workers READMEs could you get those as well.

good catch, thank you!


VnVReport Peer Review - Feedback for Usability Survey

In Section 11.3, it is mentioned that the users were confused after the submission of their grocery trip took a very long time. A UI suggestion I thought would be helpful is to include a progress bar, or some sort of similar indicator that helps users have a form of feedback that the page is loading to avoid confusion.
@samm82

fixed


Remove usage of run primitive in obj_store.

Merge activity

Aug 16, 4:58 PM EDT: @rohinb2 started a stack merge that includes this pull request via Graphite.


Loss of variable name using COLLECT + KEEP statement

My Environment

ArangoDB Version:        3.1.10-1 enterprise
Deployment Mode:       Single Server
Deployment Strategy:   Manual Start
Configuration:
Infrastructure:               own
Operating System:        Ubuntu 22.04.4 LTS
Total RAM in your machine:        128Gb
Disks in use:        HDD
Used Package:              Ubuntu .deb

Component, Query & Data
Affected feature:
COLLECT with KEEP option
AQL query (if applicable):
FOR o IN z_obs
    filter o.geoloc.lat
    filter o.geoloc.lon

    limit 10

    LET xyz = o.computed.valid

    LET obs_lat = o.geoloc.lat
    LET obs_lon = o.geoloc.lon

    LET test_aa = o.computed.current_name

    let year = DATE_YEAR(o.date_obs)
    COLLECT by = year INTO geoBy KEEP xyz, obs_lat, obs_lon, test_aa

    RETURN geoBy

AQL explain and/or profile (if applicable):
Query String (379 chars, cacheable: true):
 FOR o IN z_obs
     filter o.geoloc.lat
     filter o.geoloc.lon

     limit 10

     LET xyz = o.computed.valid
     LET obs_lat = o.geoloc.lat
     LET obs_lon = o.geoloc.lon

     LET test_aa = o.computed.current_name

     let year = DATE_YEAR(o.date_obs)
     COLLECT by = year INTO geoBy KEEP xyz, obs_lat, obs_lon, test_aa

     RETURN geoBy

Execution plan:
 Id   NodeType                     Est.   Comment
  1   SingletonNode                   1   * ROOT
  2   EnumerateCollectionNode   3199156     - FOR o IN z_obs   /* full collection scan (projections: `computed`.`current_name`, `computed`.`valid`, `date_obs`, `geoloc`.`lat`, `geoloc`.`lon`)  */   FILTER (o.`geoloc`.`lat` && o.`geoloc`.`lon`)   /* early pruning */
  3   CalculationNode           3199156       - LET #8 = o.`geoloc`.`lat`   /* attribute expression */   /* collections used: o : z_obs */
  5   CalculationNode           3199156       - LET #10 = o.`geoloc`.`lon`   /* attribute expression */   /* collections used: o : z_obs */
  7   LimitNode                      10       - LIMIT 0, 10
  8   CalculationNode                10       - LET xyz = o.`computed`.`valid`   /* attribute expression */   /* collections used: o : z_obs */
 11   CalculationNode                10       - LET test_aa = o.`computed`.`current_name`   /* attribute expression */   /* collections used: o : z_obs */
 12   CalculationNode                10       - LET year = DATE_YEAR(o.`date_obs`)   /* simple expression */   /* collections used: o : z_obs */
 13   CollectNode                     8       - COLLECT by = year INTO geoBy KEEP xyz, #8, #10, test_aa   /* hash */
 15   SortNode                        8       - SORT by ASC   /* sorting strategy: standard */
 14   ReturnNode                      8       - RETURN geoBy

Indexes used:
 none

Functions used:
 Name        Deterministic   Cacheable   Uses V8
 DATE_YEAR   true            true        false

Optimization rules applied:
 Id   RuleName
  1   move-calculations-up
  2   move-filters-up
  3   remove-redundant-calculations
  4   remove-unnecessary-calculations
  5   move-calculations-up-2
  6   move-filters-up-2
  7   move-filters-into-enumerate
  8   reduce-extraction-to-projection

81 rule(s) executed, 2 plan(s) created, peak mem [b]: 0, exec time [s]: 0.01970

Dataset:
Document collection - 3.2M documents
Wait for sync: No
Type: document
Status: loaded
Cache enabled: No
System collection: No
Uses revision trees: No
Key generator: autoincrement
Estimated documents size: 2.96 GB
Number of indexes: 43
Estimated size of indexes: 1.85 GB
Size of your Dataset on disk:
Estimated documents size: 2.96 GB
Replication Factor & Number of Shards (Cluster only):
Steps to reproduce

run the query

Problem:
[
  [
    {
      "8": 43.67188,
      "10": 2.29312,
      "xyz": true,
      "test_aa": "Cymbalaria muralis P.Gaertn., B.Mey. & Scherb."
    },
    {
      "8": 43.67333,
      "10": 2.28668,
      "xyz": true,
      "test_aa": "Picea abies (L.) H.Karst."
    },
    {
      "8": 43.66638,
      "10": 2.29307,
      "xyz": true,
      "test_aa": "Asplenium ceterach subsp. ceterach"
    },
    {
      "8": 43.66377,
      "10": 2.29666,
      "xyz": true,
      "test_aa": "Clematis vitalba L."
    },
    {
      "8": 43.67124,
      "10": 2.29344,
      "xyz": true,
      "test_aa": "Convallaria majalis L."
    },
    {
      "8": 43.55433,
      "10": 2.33022,
      "xyz": true,
      "test_aa": "Rhamnus alaternus L."
    }
  ],
  [
    {
      "8": 43.55527,
      "10": 2.4127,
      "xyz": true,
      "test_aa": "Picea sitchensis (Bong.) Carrière"
    }
  ],
  [
    {
      "8": 46.21594,
      "10": 4.64162,
      "xyz": true,
      "test_aa": "Silene nutans L."
    },
    {
      "8": 47.84528,
      "10": -4.33497,
      "xyz": true,
      "test_aa": "Pulicaria dysenterica (L.) Bernh."
    },
    {
      "8": 48.30972,
      "10": 2.091,
      "xyz": true,
      "test_aa": "Groenlandia densa (L.) Fourr."
    }
  ]
]

The name of two variables is not kept and seems to change according to the other elements of the query (number of filters, sorting...).
Expected result:
Get the correct variable names
Best regards,
AA

Hi @AntoineAA,
Is that a typo? Are you using  3.1.10 or  3.11.10?

Hi @apetenchea , sorry for the late answer. I believe it was 3.11.10 (I work wih @AntoineAA ) − bug confirmed in 3.11.11 but cannot reproduce on 3.12.2
However, upgrading to v3.12 is not an option until #20841 is fixed for good in our case


UILabel: [UILabel adjustTextLayerSize] does more work than necessary

We should apply most of the properties to the _textBlock as they're set (within setText, setFont, etc.) rather than doing it within adjustTextLayerSize (which is called quite frequently by most of UILabel's setters).

adjustTextLayerSize is being renamed as _updateXamlElement

And now _updateXamlElement is being renamed to _updateXamlElementWithAdjustedFont.  Maybe we should fix this bug as part of the rename.

Not sure what the correct fix is here, but doing minimal work in _updateXamlElementWithAdjustedFont is the goal.

_updateXamlElementWithAdjustedFont is break out to smaller functions and setting correponding properties only calls into corresponding smaller functions. e.g., setTextColor only setting color and only calls setNeedsDisplay.

fixed with 6fcf514c273d32104026c0a973a10ca84d36a5f3


Upgrade to Rails 7

This is still a draft because we may need to wait on the paper trail gem to be updated for Rails 7, plus some minor fixes needed in Rails 7.0.0 itself.
This PR does the following:

Upgrades the app to Rails 7
Completes Sprockets removal that started in #2424
Removes Spring.
Regenerates type signatures.

Either this issue needs to be resolved in sonder-rails (https://github.com/chanzuckerberg/sorbet-rails/issues/479) or I need to move to Tapioca's DSL generators.

Closing this to try again


When running docker rootless, result is a bad error message

I'm using docker rootlessly (https://docs.docker.com/engine/security/rootless/), which means that many of the standard expectations aren't there. Specifically, when suggesting I need to do something with 'sudo' this will not work by default, because DOCKER_HOST is unpopulated (and the user's environment variables don't carry through).
When running rootlessly, you need to set the following in your .bashrc:
export DOCKER_HOST=unix:///run/user/1000/docker.sock
You can see that docker is running fine either when you run docker or sudo docker, but only when you:
sudo su
dapr init

does it actually work.
Expected Behavior
Ideally, it would 'just work' since docker is there and running fine, but, if not, it'd be great to check for DOCKER_HOST in the bash script (or notify the user).
Actual Behavior
❯ sudo dapr init
⌛  Making the jump to hyperspace...
❌  could not connect to Docker. Docker may not be installed or running

Steps to Reproduce the Problem

Install docker rootlessly
Download dapr
Try to do dapr init.

Seems like this is likely related to how dapr is currently checking for Docker also covered in Issue https://github.com/dapr/cli/issues/257


Multiple images for single subject

Is it possible to give multiple images for a single subject to enhance the outputs?

A straightforward way is to average the clip embedding of multiple images. As MS-Diffusion supports multiple inputs, we also test to input them directly with the same box and phrase:
prompt="a dog on the beach"
boxes=[[0.25, 0.25, 0.6, 0.6], [0.25, 0.25, 0.6, 0.6]]
phrases=[["dog", "dog"]]
input images:

results:


Standardize themeStyles to styles in App

We are using two different names, let's only use one
cc @chrispader

@chrispader maybe we combine this change with these?
https://github.com/Expensify/App/issues/29911
https://github.com/Expensify/App/issues/29910

@chrispader maybe we combine this change with these? #29911 #29910

yes 👍

@grgia can we merge this one? :)

closing!


Documentation is a little misleading and it should be updated

(Was redirected here at https://github.com/protocolbuffers/protobuf/issues/8090#issue-750929662)
See https://developers.google.com/protocol-buffers/docs/reference/go-generated#invocation

If the --go_opt=paths=source_relative flag is given to protoc, the output file is placed in the same relative directory as the input file. For example, the file protos/foo.proto results in a file named protos/foo.pb.go.
When you run the proto compiler like this:
protoc --proto_path=src --go_out=build/gen --go_opt=paths=source_relative src/foo.proto src/bar/baz.proto
the compiler will read the files src/foo.proto and src/bar/baz.proto. It produces two output files: build/gen/foo.pb.go and build/gen/bar/baz.pb.go.

The problem here is

the output file is placed in the same relative directory as the input file

and then

It produces two output files: build/gen/foo.pb.go and build/gen/bar/baz.pb.go.

Why are the new files not placed where the docs say they should be placed i.e. src/ and are instead placed where the flag --go_out=build/gen dictates? It seems if both flags are provided there is special behavior where the compiler doesn't guess the output directory based on the package name, but it doesn't necessarily put the output files where --go_opt=paths=source_relative dictates they should go. Seems like the special behavior is when both are provided just use --go_out to calculate the output directory from the root.
Either way, can we please make this more clear? I can't find the repo for the google-developers documentation as it is probably not open.

This is because of the option --proto_path=src, which tells the compiler to consider filenames under src as relative to that directory.
The documentation here could probably be clearer.

So

the output file is placed in the same relative directory as the input file

But with --proto_path, the "input file" is the argument to --proto_path. And output files go in the same relative directory as the argument to --proto_path.
Is this sounding correct?
If it is I'll play with protoc to make sure it checks out. Then I can leave some sentences here to clarify the docs a bit.

Every .proto file touched by protoc essentially has two filenames: The one in the local filesystem, and the one in the protobuf namespace. The name in the protobuf namespace is the one that import statements in other .proto files use.
For example, on my laptop, google/protobuf/descriptor.proto has the local filename  /usr/local/include/google/protobuf/descriptor.proto.
protoc looks in a list of directories on the local filesystem for files to compile. By default, I think this is the current directory and the common include directory for the system. (So /usr/local/include on my laptop.) The --proto_path or -I flag adds a directory to this list.
When you give protoc a filename to compile, it looks in all the search directories to find the file. Then it strips off the longest search directory prefix matching that filename. (If no search directory prefix matches the filename, it prints an error and exits.)
So:
protoc --proto_path=src src/foo.proto

protoc will look for a file to compile in the following locations (I think in this order, but I could be wrong):

src/foo.proto (current directory)
/usr/local/include/src/foo.proto (system include dir)
src/src/foo.proto (src, provided on the command line)

It finds the file named src/foo.proto. Then it goes down its list of search prefixes, looking for the longest one which can be stripped. That's 'src', so the filename becomes "foo.proto".
This all happens before protoc-gen-go is invoked; all we ever see is foo.proto.
(I think this is how it all works, but you should trust the implementation over my recollection.)

Thanks for the thorough explanation. I'm thinking:
To get protoc set up I consulted the documentation where I quoted above. Then I got a little confused while using the different flags. It seems like the docs there can be much clearer.
In general the flags of protoc should be thoroughly explained somewhere in one place and maybe they are. I couldn't find one place to rule them all.
We can either

Improve or add to the sentences here.
Link to the place where the flags of protoc are thoroughly explained.
Do both.
Do neither (but eh).

I initially opened this directly in protobuf but it was closed right away.
What would be coolest?

If I saw this while I was reading I would have figured out what I needed to quicker me thinks.

If the --go_opt=paths=source_relative flag is given to protoc, the output file is placed in the same relative directory as the input file. For example, the file protos/foo.proto results in a file named protos/foo.pb.go which is then appended (first minus anything that was passed in -I or --proto_path) to what was passed in the  --go_out flag .

I added to the last part. This is compared to what is currently there to read:

If the --go_opt=paths=source_relative flag is given to protoc, the output file is placed in the same relative directory as the input file. For example, the file protos/foo.proto results in a file named protos/foo.pb.go.

Now, the "minus" part is how I understand what is going on, and you explain it here:

Then it goes down its list of search prefixes, looking for the longest one which can be stripped. That's 'src', so the filename becomes "foo.proto".

Did you mean:

That's 'src/src' so the filename becomes "foo.proto"

any.proto has package directive and go_pacakge file option.
run protoc --go_out=paths=source_relative:. path-to/any.proto, any.pb.go isn't put into the same directory where the protofile is.
What's the meaning of source_relative?
Doesn't it mean the same directory of proto file?
I think I misunderstand it.

Hi, as @neild  said,

When you give protoc a filename to compile, it looks in all the search directories to find the file. Then it strips off the longest search directory prefix matching that filename. (If no search directory prefix matches the filename, it prints an error and exits.)

In my testcase, I found that it didn't strip off the longest search directory, it behaves like that only the first matched search directory is stripped off, which maybe not the longest match.
Let me show the testcase:
this is my test script:
protoc \
    --proto_path=$HOME/test/pb/proto \
    --proto_path=$HOME/test/pb/proto/trpc/video_app_short_video/subscribe \
    --go_out=paths=source_relative,Msubscribe_backend_rpc.proto=git.code.oa.com/vlib/go/proto/trpc/video_app_short_video/subscribe,Mcom/tencent/qqlive/protocol/pb/subscribe_rpc.proto=git.code.oa.com/vlib/go/proto/com/tencent/qqlive/protocol/pb:. \
    $HOME/test/pb/proto/trpc/video_app_short_video/subscribe/subscribe_backend_rpc.proto

As we see that, I passed paths=source_relative option, and I expect the generated subscribe_backend_rpc.pb.go will be in current directory.
the filepath is $HOME/test/pb/proto/trpc/video_app_short_video/subscribe/subscribe_backend_rpc.proto,
the longest matched search path is --proto_path=$HOME/test/pb/proto/trpc/video_app_short_video/subscribe,
so the generated *.pb.go should be $(pwd)/subscribe_backend_rpc.pb.go.
If I run protoc as mentioned above, the generated *.pb.go is at $(pwd)/trpc/video_app_short_video/subscribe, but if I swap the two --proto_path options, it works as expected.
I haven't check the protoc-gen-go source code. There may be a bug.

In my testcase, I found that it didn't strip off the longest search directory, it behaves like that only the first matched search directory is stripped off, which maybe not the longest match.

I probably was mistaken about that, then. This behavior is implemented by protoc, not protoc-gen-go, and I'm significantly less familiar with its internals.
In the interest of clarity, it is probably best to avoid overlapping --proto_path options.

Documentation has been updated.


Bump pemfile

Obsoletes #1259 and builds on #1515 .
Opening now to parallelize CI with sanity testing.

Based on these sanity test results I think this is merge ready:
        PASS [ 341.944s] libtonode-tests::concrete slow::witness_clearing
------------
     Summary [1157.508s] 332 tests run: 332 passed (109 slow), 31 skipped
1731625837 || shofth nattyb bump_bytes[ ]
REDACTED/bump_bytes: 0 $
git show -s
commit 13ceef9a5b366fe9460e18a6aa3809ae0d19fb7c (HEAD -> bump_bytes, zancos/bump_pemfile)
Author: zancas<EMAIL_ADDRESS>Date:   Thu Nov 14 15:46:58 2024 -0700

    update the rustls-pemfile version, AND move it to a dev-dependency in netutils


What to do when rdkit.Chem.AssignStereochemistry does not add chiral code in Molecule.to_rdkit()?

Likely related to #146 and #156 .
With certain molecules, (e.g. DrugBank_6355, which is molecule 156 in the MiniDrugBank test set) this call of rdkit.Chem.Chem.AssignStereochemistry results in
>>> rdatom.GetChiralTag()
rdkit.Chem.rdchem.ChiralType.CHI_UNSPECIFIED

If the code continues, this line results in KeyError: '_CIPCode'.
Differently from from_rdkit(), we already know what stereochemistry that atom should have so it doesn't make much sense to raise an exception.
Is there a different way of setting the stereochemistry using S and R convention in RDKit? Alternatively, is there a way we can save the (read-only) chirality information in our Atom class using the CW/CCW notation alongside the S/R convention?

Some potential fixes would be:

If R or S can't be achieved by trying CW/CCW, force-add them with rdatom.SetProp('_CIPCode', 'R'). Note, however, that this won't affect the rdmol's actual topology, and would be overwritten if Chem.AssignStereochemistry is run again on the rdmol.
As an alternative to the above, set CW/CCW in these cases, where CW means 'R', and CCW means 'S. Then, implement checks for these cases in OFFMol.from_rdkit. Note that there would be undefined behavior if the user ran Chem.AssignStereochemistry` on this.
Hope that it's not critically important that this stereochemistry be defined, and just lose the information while converting the OFFMol to an RDmol.

S and R are perceived in the sense that they're "global". CW/CCW are local in that they only look at the adjacent 4 neighbors. What exactly are you trying to do?

So, this is a surprisingly deep issue. For for background: https://github.com/openforcefield/openforcefield/issues/146
Short version: The essential problem arises from the idea that an OFFMol has completely defined stereochemistry. After all, a person could make a stero-specific SMARTS, and we'd be expected to match it. However, while OpenEye records stereochemistry around groups like R=NH (primary imine) and N(R1)(R2)(R3) (pyramidal nitrogen), RDKit doesn't. So, when we take molecules with completely-defined stereo and try to turn them into rdmols, our conversion function gets confused and raises this exception.

I see - am I correct in understanding that RDKit doesn't allow for over-specification of Stereochemistry, where as OEChem does?

PS - CIP is completely undefined to start with.  The two major toolkit differences are

stereo around primary imines and
stereo around pyramidal nitrogens.

So, one question is: Should these be "defining" features of a molecular topology in the context of an MD simulation? Inversion rates for pyramidal nitrogens are on the order of 1/microsecond, and can vary a lot depending on substituents. So, maybe. And if in doubt, yes.
Another questions is: Is there physical justification for assigning different parameters due to atom (not bond) stereochemistry? Yes, if there are two or more chiral atoms in a molecule, it can have different properties.

Yeah, I also don't like CIP. But it would take a long time to implement local stereochemistry, and we're already behind schedule. To stay on track we're going to stick with R/S.
https://github.com/openforcefield/openforcefield/issues/139

I'm implementing solution 1:

If R or S can't be achieved by trying CW/CCW, force-add them with rdatom.SetProp('_CIPCode', 'R'). Note, however, that this won't affect the rdmol's actual topology, and would be overwritten if Chem.AssignStereochemistry is run again on the rdmol.

@andrrizzi Sounds good.
You probably already caught this, but, when we have to do that override, make sure to do it after our last AssignStereochemistry call, otherwise I think all the _CIPCode fields may be overwritten.

Implemented in #209 .


RFC: letrec

Rendered
In another note about the motivation.
While making an attempt to teach Rust as first programming language,
I looked into existing arts of teaching first programming language.
"Structure and Interpretation of Computer Programs" (a.k.a. SICP)
by Harold Abelson and Gerald Jay Sussman,
is one of the best one I have ever known.
It is written for the dynamic language Scheme.
I am trying to translate it to idiomatic Rust,
also adding some narratives about Rust's type system and borrow checker.
Hopefully, at least I can provide some good reading materials for new programmers
who wish to study Rust as her or his first programming language.
While making this attempt, this "letrec problem" occurs.
Please review the RFC for details about letrec.

First of all, thanks for your contribution!
The RFC as written doesn't seem detailed enough IMHO. The motivation section seems a bit short. I personally have never run into the need for a recursive local binding.
Also, the RFC never discusses interactions with the borrow checker. A closure that calls itself sounds self-referential, which could be hard to implement without the Pin API. What does such a closure compile down to?

The example in the motivation section doesn't seem to be very convincing either. It is already doable with existing features without too much boilerplate, like
fn sum<Term, Next>(
    term: &Term,
    a: f64,
    next: &Next,
    b: f64,
) -> f64
where
    Term: Fn(f64) -> f64,
    Next: Fn(f64) -> f64,
{
    struct SumIter<'a> {
        term: &'a Term,
        next: &'a Next,
        b: f64,
    }
    impl SumIter {
        fn sum_iter(&self, a: f64, result: f64) -> f64 {
            if a > self.b {
                result
            } else {
                self.sum_iter(self.next(a), self.term(a) + result)
            }
    }
    SumIter { term, next, b }.sum_iter(a, 0.)
}

First of all, thanks for your contribution!
The RFC as written doesn't seem detailed enough IMHO. The motivation section seems a bit short. I personally have never run into the need for a recursive local binding.
Also, the RFC never discusses interactions with the borrow checker. A closure that calls itself sounds self-referential, which could be hard to implement without the Pin API. What does such a closure compile down to?

Thanks for your reply!
It is quick!
The motivation section is short, because the motivation is simple.
I personally only uses about 60% of rust's features too. Language features are just like this.
A closure that calls itself sounds about the same self-referential as a function that calls itself. it is Ok.
I know many ways to implement letrec,
I do not know which of them is appropriate for rust compiler's architecture,
detailed discussions about implementation will need rust compiler maintainers' help.

The motivation section is short, because the motivation is simple.
I personally only uses about 60% of rust's features too. Language features are just like this.

I disagree here. All of rust's features either solve some major ergonomic problem or fundamentally improve some major use case. I'm not yet convinced that recursive local closures do that.

A closure that calls itself sounds about the same self-referential as a function that calls itself. it is Ok.

No, they are not the same. Functions are not closures in rust (they don't close over the environment). Implementation-wise, a function compiles down to straight assembly, whereas a closure compiles down to a struct with the Fn()/FnMut/FnOnce trait implemented. Historically, it has been extremely hard to implement self-referential types soundly (https://github.com/rust-lang/rfcs/blob/26197104b7bb9a5a35db243d639aee6e46d35d75/text/2349-pin.md).

I know many ways to implement letrec

It would be appropriate, I think, to have these in the Reference-level guide section.

The motivation section is short, because the motivation is simple.
I personally only uses about 60% of rust's features too. Language features are just like this.

I disagree here. All of rust's features either solve some major ergonomic problem or fundamentally improve some major use case. I'm not yet convinced that recursive local closures do that.

A closure that calls itself sounds about the same self-referential as a function that calls itself. it is Ok.

No, they are not the same. Functions are not closures in rust (they don't close over the environment). Implementation-wise, a function compiles down to straight assembly, whereas a closure compiles down to a struct with the Fn()/FnMut/FnOnce trait implemented. Historically, it has been extremely hard to implement self-referential types soundly (https://github.com/rust-lang/rfcs/blob/26197104b7bb9a5a35db243d639aee6e46d35d75/text/2349-pin.md).

I know many ways to implement letrec

It would be appropriate, I think, to have these in the Reference-level guide section.

I am only willing to extend this RFC,
if people think it is useful.
This is a feature suggestion, not an implementation PR.
I can not add this feature to rust by my own.
If most feedbacks are negative.
You can close it whenever you see fit.

To learn more about the ways to implement letrec,
reading the following references is more helpful then reading me repeating them :

"Fixing Letrec: A Faithful Yet Efficient Implementation of Scheme’s Recursive Binding Construct†"

by Oscar Waddell, Dipanwita Sarkar and R. Kent Dybvig

"Fixing Letrec (reloaded)"

by Abdulaziz Ghuloum and R. Kent Dybvig

Exercise 3.40 of "Essentials of Programming Languages, third edition"

by Daniel P. Friedman and Mitchell Wand

Sometimes I'd like to use recursive closures, they could simplify code (not passing them lot of arguments).
But instead of this syntax:
letrec sum_iter = |a, result| {
    if a > b {
        result
    } else {
        sum_iter(next(a), term(a) + result)
    }
};

I prefer something more like this one:
letrec sum_iter = |a, result| {
    if a > b {
        result
    } else {
        self(next(a), term(a) + result)
    }
};

Relevant reading: https://internals.rust-lang.org/t/proposal-explicit-reference-to-self-for-closures/7467

I do not understand the safety concerns discussion in the thread linked by @Centril   If any arise then does Pin help?
Anyways, if we had structural records with nameable types, then you could do this with negligible boilerplate, provided you need not float outwards any lifetimes from rec_borrows.
let rec_borrows = struct { &a, &mut b, .. };
impl ??rec_borrows?? {
    fn f(&mut self, ..) { .. }
    fn g(&mut self, ..) { .. }
}
foo( |..| f(&mut rec_borrows, ..) )

Arguably, our only boilerplate here is naming the borrows early in the structural record, but that improves readability which sounds helpful in such a complex situation.
I think structural records sound far more widely useful than letrec alone, especially if you start considering delegation, fn arguments, etc.  Also, letrec incurs similar safety concerns since doing getters and setters almost gives you structural records.

I will leave questions about whether we want to do this or not unanswered from my part at the moment.
However, as for the technical aspects, closures which can refer to themselves should not in general have problem with borrowing I think (there might be, but I'd like to see examples...). For example, if we would write something like this (using self as the straw-man syntax):
struct NoCopy(u8);
let start = NoCopy(1);
let fib = |&self, n| if let 0 = n { start.0 } else { self(n - 1) };
let _ = fib(0u8);

This would desugar roughly to:
struct NoCopy(u8);
let start = NoCopy(1);

struct TheClosure {
    start: NoCopy,
}

impl Fn<u8> for TheClosure {
    type Output = u8;

    extern "rust-call" fn call(&self, (n,): (u8,)) -> Self::Output {
        if let 0 = n { self.start.0 } else { self(n - 1)
    }
}

let fib = TheClosure { start };
let _ = fib.call(0u8);

As for FnMut and FnOnce closures, we can understand the semantics through similar desugarings.
Some cases will be rejected due to for example creating two mutable borrows to TheClosure, but that would be the same cases as when you had written the closure manually in the desugared style.

I'd definitely like stronger motivation here than "this is what you do in LISP".  Translating something as dynamic as Scheme directly into rust feels like a recipe for trouble.
Aside: While I certainly want become, you can always use a combinator to do tail recursion in rust.  Here's a demonstration of factorial, and this combinator-closure version even generates better code than the basic RangeInclusive+product version does: https://play.rust-lang.org/?gist=25d5e3b596fe1fc81a51e5b4fc4e760f&version=nightly&mode=release&edition=2015
pub fn factorial(x: usize) -> usize {
    tail_recurse((x, 1), |(a, b)| {
        if a == 0 { RecursionResult::Return(b) }
        else { RecursionResult::Continue((a - 1, a * b)) }
    })
}

I feel like that the feature of this RFC can be achieved either by unwrapping the recusion into a loop or by using fold on an iterator. As well as that, the proposed syntax introduces a new keyword into the language.

I gave up the "sicp in rust" project.
some notes before closing.

proper tail calls and recursive local binding are two different features.

the feature come from lisp and ocaml, but the feature is just a feature.

@xieyuheng Of course, you're free to do what you wish, but I would actually encourage you to keep going with your project if it still interests you. Translating idiomatic Lisp to idiomatic rust is a great way to learn the differences between the languages and idioms. I ended up doing something similar with C++ and learned a lot!


Parameter #1 $code of function abort expects int|Symfony\Component\HttpFoundation\Response, JsonResource given.

Larastan Version: 0.2.7
--level used: 5

Description:
abort helper function in Laravel has a docblock like \Symfony\Component\HttpFoundation\Response|int for the $code parameter.
But in the code, $code parameter is being checked for Responsable interface. So anything that implements Responsable is valid here.
Maybe this is Laravel's fault rather than larastan/phpstan.
Laravel code where the issue was found:
abort(new Illuminate\Http\Resources\Json\JsonResource([]))

@canvural Try sending a PR to @laravel with adding Responsable to PHPDoc.

This is fixed in Laravel.


[stable/mediawiki] Don't force creation of https port

Is your feature request related to a problem? Please describe.
The https port is always created in the service
Describe the solution you'd like
The https port should not always be created. This doesn't service a purpose when using istio, and given istio's issues with Services with the same port name, it may cause a problem.

Hi @nesl247
You're right. There are many scenarios where opening this port doesn't add any value (e.g. when you're handling TLS through an Ingress Controller). Could you please submit a PR addressing this issue? I'll be glad to review it.


Feat/focus trap specified

Linked Issue
Closes #2190
Description
The goal is to allow focusTrap to focus on a specified element. If no element is specified, focusTrap will focus on the first focusable element, taking into consideration the tabindex attributes:
https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex
Focus specified elements are targeted thanks to their data-tabindex attribute, which don't conflict with the tabindex attribute.
Changsets
Instructions: Changesets automate our changelog. If you modify files in /packages/skeleton, run pnpm changeset in the root of the monorepo, follow the prompts, then commit the markdown file. Changes that add features should be minor while chores and bugfixes should be patch. Please prefix the changeset message with feat:, bugfix: or chore:.
Checklist
Please read and apply all contribution requirements.

[X] This PR targets the dev branch (NEVER master)
[X] Documentation reflects all relevant changes
[X] Branch is prefixed with: docs/, feat/, chore/, bugfix/
[X] Ensure Svelte and Typescript linting is current - run pnpm check
[X] Ensure Prettier linting is current - run pnpm format
[X] All test cases are passing - run pnpm test
[X] Includes a changeset (if relevant; see above)

Thanks @doic everyone looks good with a quick scan. I tend to do proper PR reviews on Fridays, so expect at least at least some preliminary feedback tomorrow. When you're ready for a proper review, tap the "ready for review" option here. Thanks!

Done. I had run pnpm check before messing with the Modal, sorry :-(

@doic so a few issues here -

svelte-check appears to still be in a failing state. Check the UI just below this comment for details.
Supplying a tabIndex in drawerSettings or modalSettings seems to work, but only if it's a value greater than 0. Remember Javascript treats 0 as a falsey state, so check your conditional logic.
Supplying tabIndex as a prop does not appear to be working at all for the either the Drawer or Modal components. I'd recommend checking the flow the data to locate where this is failing
I have some suggestions per the documentation (both page and JSDoc comments), but we can return to these after the functional issues are sorted.

Per issues 2 and 3 above, this can be tested by inserted focusable elements with data-tabindexes that are presented out of numeric order:
<input type="text" placeholder="test-1" data-tabindex={1} />
<input type="text" placeholder="test-2" data-tabindex={0} />
<input type="text" placeholder="test-3" data-tabindex={2} />

When you set data-tabIndex={0}, I expect it to select the second item, but instead it selects the first
When you set data-tabIndex={2}, it will correctly select the third item
When you set tabIndex: 0, I expect it to select the second item, but instead it defaults to the first
When you set tabIndex: 2, I'd expect it to select the third item, but instead it defaults to the first

One other quick suggestion - making the value of data-tabindex a string might be more familiar to folks, to better match the native iteration, ex:tabindex="3". Not totally required, but it may also fix the issue with 0 being treated as a falsey statement.

One more quick ask - can you put a space between feat: and the description in the changelog? This is the line item text that will be inserted into our auto-generated changelog. So it'll be provided verbatim:

Weird. Check command worked on my machine. I'll check everything tomorrow morning. Thanks for the feedback 👍

OK - I had run pnpm check in packages dir, but not in svelte.dev dir. Makes sense now 😅.
I did choose to work with numbers because it felt more practical for some logic, like:
someBool ? tabIndex : tabIndex + 1

Obviously, this makes tabIndex = 0 falsey, which is the perfect default value.
But it makes impossible to target a data-tabindex="0" 😑
If you think working with string is the best, let's do this.
I didn't take into consideration passing tabIndex to Modal and Drawer components as a prop, I will work on it !

By the way, the more I see tabindex and data-tabindex HTML attributes side by side, the more I think using tabIndex as a parameter for this feature is wrong. It can be very confusing.
It's not an index, and it has nothing to do with TAB...
Can we find a better name ? I think "focus + target" sounds good 😁

Hey @doic I handle PR reviews on Sundays now. Just gave this a quick scan. I see you received some feedback from Mahmoud, but I don't see any commits beyond that. I'll try to squeeze in another review on Tuesday (our next release) otherwise expect a follow up later in the week.

Yes sorry, I've been quite busy these days. I'll try to get back to it during the week.

Hey @doic - it's my next round of reviews so just checking in. I think this is a positive change and would like to see it added, but we may have to put a deadline on this PR if we ever wish to see it added. If this is still pending for my next review (in 2 weeks) I'll likely go ahead and close this out. But will welcome you to resubmit at any time.
Not trying to rush you, I know how busy life can be, but don't want our pending PRs to languish forever ;)

Hi @endigo9740 !
Yes I want to do it soon. Life and stuff.
I'm still new at PR - I'll need to find out the correct way to sync the current branch to mine - I guess there were a few changes since my fork.
I'll be busy on Monday but will try my best to get back at it on Tuesday 🙏

By the way, the more I see tabindex and data-tabindex HTML attributes side by side, the more I think using tabIndex as a parameter for this feature is wrong. It can be very confusing. It's not an index, and it has nothing to do with TAB... Can we find a better name ? I think "focus + target" sounds good 😁

I'm back 😁
Nobody answered this comment - can someone please give some feedback ?
After reading a bit more about other ways to handle this, I found this createOptions.initialFocus idea:
https://www.npmjs.com/package/focus-trap
I'm not talking about the whole implementation, only the name of it.
I find it easier to understand - initialFocus / data-initialfocus instead of tabindex / data-tabindex.

The easiest way - imo - to do this would be with css selectors (allowing to use id attributes if we prefer):
<form use:focusTrap={{ enabled: true, initialFocus: 'input[type=email]' }}>
	<input type="text" placeholder="Name" />
	<input type="email" placeholder="Email" />
	<button class="btn variant-filled-primary">Submit</button>
</form>

@doic I'll plan to do PR reviews tomorrow. I'll dive into this then.

@doic a lot of the original ideas were trying to replicate a proper tabindex-like system, something that would handle fallbacks and conditional statements where the focusable element might change as state updates.
Imagine you had a conditional statement inside a Drawer or Modal content like this:
<!-- drawer contents -->
<div>
    {#if someBool}
        <button data-tabindex="0">Button 1</button >
    {#else}
        <button data-tabindex="1">Button 2</button >
    {/if}
    <button data-tabindex="2">Button 3</button >
</div>

Based on the state of someBool either Button1 or 2 will be the top-most focusable element, but that will differ based on state that may or may not change before this UI is rendered to the screen. With the data-tabindex system we can handle this easily. Including any scope of complexity (multiple conditionals, etc).
However, I do agree the naming is not quite semantic. As we're appending attributes purely meant to be used by the focus trap. As such, I'd recommend we do keep the same goal with functionality, but provide more semantic naming.
I tend to favor shorter, single word values whenever possible. Then let JSDocs provide more context via Intellesense. So I'd recommend something like:

initialFocus -> focus
data-initialfocus -> data-focus (or data-focusindex)

Let me know if that makes sense.

@endigo9740, in your example, we'll have either 0 or 1 as an available data-focusindex.
So what focus value should we pass to the focusTrap action ?
We currently have something that behaves like this:

But I sense (in your example) that the focus/tabIndex value passed to the focusTrap action is not needed anymore, because the action has to determine what is the smallest data-focusindex value within the element.
If I'm correct, then this feels very tabindex-like and easier to use. We just need to use tabindex and/or data-focusindex and let focusTrap decide which element to focus on.
It will be more consistent with the previous focusTrap signature - no need to pass a boolean | object parameter as I was doing.

But I sense (in your example) that the focus/tabIndex value passed to the focusTrap action is not needed anymore, because the action has to determine what is the smallest data-focusindex value within the element.

Yeah sorry, two different thoughts there that bled together. Yeah if we have the index model we go for the smallest index and a specified value is not required.

If I'm correct, then this feels very tabindex-like and easier to use. We just need to use tabindex and/or data-focusindex and let focusTrap decide which element to focus on.

Yep, exactly this.

@doic the code looks good to me, I would just suggest changing the description in the docs to something like this:

Focus order
Specify the order of focusable elements by assigning a value to the data-focusindex attribute. The element with the lowest value will be focused first.

@Mahmoud-zino done 🙏

@doic I know this issue is waiting on me, but my schedule has blown up lately. I have some free time coming up in a couple weeks, so worst case I'll jump on this again then. Thanks so much for your patience, I'm very excited to get this implemented when possible!

@endigo9740 sure, no problem :-) I hope this will make it to one of the next releases !

@doic I'm actually doing PR reviews as we speak today! So far we're down from 14 - 5. So I'm slowly inching my way in this direction :)

@doic with the smaller PRs sorted today I'm going to aim to jump on yours and the few other remaining tomorrow post-release. Your PR is a bit more broad in scope so I want to make sure I devote enough time to testing, rather than to rush it in last minute.
Expect some updates on this tomorrow. If things are close enough I may go ahead and make a few modifications myself direction to help wrap this up. But keep an eye out for my updates.

@doic @Mahmoud-zino I've pushed some very minor changes to the documentation info and examples. If you two sign off on this I'm happy to merge. The feature is working exactly as expected. Great job!


doc: update quick start in readme

Signed-off-by: qinyer<EMAIL_ADDRESS>
What type of PR is this?

What this PR does / why we need it:
Which issue(s) this PR fixes:

Fixes #
Special notes for reviewers:

Does this PR introduced a user-facing change?

Additional documentation, usage docs, etc.:

/lgtm
/approve


ocean fishing fix

The fishing spot/place during ocean fishing changes while fishing. Set it on every cast regardless of whether it has already been set to handle this.
This should also fix #1075 as the ocean fish data has already been added.
Only tested in one voyage but it worked, and regular fishing looks like it still works.

Works on my end 👍

Thanks! I didn't test this myself, but the code looks good to my eyes.


Middlware - Too many open files

I have been running in to many problems with this middleware, especially random freezing and performance issues. I solved some of the freezing problems by not using Mongodb in my pipeline.
However now i encountered a big problem that keeps coming back:
GliB - Too many open files.
I know what the error means, what i dont know is why? It seems that this keeps happening at the gtk.main() loop.
Best Regards
Pontus

Hey @pontagon24,
GTK version is discontinued; it lives in a branch now (https://github.com/scrapinghub/scrapyjs/tree/gtk).


bug: bad argument to ipairs

it looks like there was a breaking change somewhen that broke my winbar when I open neovim with out a file (just nvim in terminal)
I unfortunately don't have much time to debug it
only thing I can say is that the error is that here:
https://github.com/rebelot/heirline.nvim/blob/489aa37a6aec30c43217bd4ddc75ef9f945c9d0d/lua/heirline/statusline.lua#L323-L323
tree is nil
my config:
https://github.com/max397574/omega-nvim/blob/3bacaac462dc7c6ccb672b92d3c9f7889e0a640d/lua/omega/modules/ui/heirline.lua#L133-L348
this is the complete error:
E5108: Error executing lua ...k/packer/start/heirline.nvim/lua/heirline/statusline.lua:323: bad argument #1 to 'ipa
irs' (table expected, got nil)
stack traceback:
        [C]: in function 'ipairs'
        ...k/packer/start/heirline.nvim/lua/heirline/statusline.lua:323: in function 'eval'
        ...te/pack/packer/start/heirline.nvim/lua/heirline/init.lua:72: in function <...te/pack/packer/start/heirli
ne.nvim/lua/heirline/init.lua:69>

should be fixed, sorry for the inconvenience!


Fix testing framework for queue processors.

Fixes #6542.
Still has some mypy error I'll deal with shortly.

@timabbott updated.
The additional #ignore needed is inconvenient, yet the only option I found:
consume_wrapperrequireseventto be a dict. queue_json_publish callsconsume_wrapperiff call_consume_in_tests is True. In an ideal world, we could overload queue_json_publish based on the value of that parameter. However, currently mypy does not check the body of the function against all overloads (see https://github.com/python/mypy/issues/3360). The other alternative, changingeventfromUnion[Dict[str, Any], str]toDict[str, Any]`, doesn't work either, since at some places like middleware.py, the event is in fact a string.
I decided against adding this lengthy explanation to the code :)

Sounds good.  Merged, thanks @derAnfaenger!  I modified the first commit to not close #6542 because I think that task will only really be finished when we've migrated most of the publish call sites.
I think our goal should be to (1) move all the publish call sites that we can do easily, (2) once that's done, make the lambda: None argument a kwarg rather than positional, so we don't need it cluttering the call sites that aren't using that function, (3) move over any other call sites that we think should move over (it seems possible there will be 1-2, for things that have a delay built in, where we never migrate).