Divergence in Reported Recall Score for IR and TR Tests

Dear Author,
I have encountered a significant discrepancy between the reported Recall scores for the IR and TR tests in the paper and the scores from my own run. For instance, the paper reports a IR R@10 score of 62.25 with 2000 test samples, but my run yields a much higher recall score, exceeding 95.
Specifically, I used recommended medical 3D ViT weight pretrained_ViT.bin from M3D-CLIP directly and observed the following results, which differ significantly from those reported in Table 2 of the paper:

Test samples
100
500
1000
2000

IR R@1
50.00
86.20
82.20
78.55

IR R@5
84.00
96.80
95.10
93.20

IR R@10
95.00
97.80
97.20
95.75

TR R@1
48.00
86.20
81.70
77.95

TR R@5
89.00
96.40
94.60
93.40

TR R@10
94.00
97.40
96.90
96.25

Upon inspecting the evaluation script for ITR, I noticed that it references a JSON file located at ./Data/data/M3D_Cap_npy/M3D_Cap_eh.json. I assumed this was the same as M3D_Cap.json, as I could not locate the exact file M3D_Cap_eh.json. I suspect this may be contributing to the divergence in the recall scores. Could you please clarify if M3D_Cap_eh.json is a different evaluation file? If so, could you provide guidance on where I can find this file?
Additionally, I would appreciate some clarification regarding the weights used in pretrained_ViT.bin. Are these weights the result of pretraining the 3D Image Encoder, or have they been updated during a fine-tuning process? I have also trained the model from scratch, and the results continue to show significant discrepancies:

Test samples
100
500
1000
2000

IR R@1
36.00
77.40
66.60
57.85

IR R@5
81.00
93.80
89.40
85.75

IR R@10
91.00
96.40
94.10
91.60

TR R@1
38.00
74.00
64.30
56.30

TR R@5
79.00
94.40
88.40
83.90

TR R@10
93.00
96.60
94.00
91.05

Thank you for your time and assistance.
Best regards,

Hi,
In fact, the 3D ViT weight in my HF is a better model I got using a larger batch size for researchers to use. The experimental results and models in the paper have not been updated. We'll continue to update the paper after that, and in the meantime, you can use our stronger model.
M3D_Cap_eh.json is the same as the M3D_Cap.json. You can use the M3D_Cap.json directly.
'pretrained_ViT.bin' is only trained by M3D-Cap in the pretraining.  The weights we provide are not updated by MLLM training.
As for the model's performance, if we use our latest large batch size setting, we will get better results. Your results don't look bad either, but you need a larger batch size and longer training. I still recommend using the latest weights we provide.
If you have any other questions, please feel free to contact me; I have been a little busy recently, so please understand that the reply is not timely.


roc script shebang arg passing

From @KilianVounckx:

When using roc as a shell scripting language with shebang (#!/usr/bin/env roc) at the top, passing args is annoying because the args aren't passed to the script, but to the roc executable. The workaround I have used is to do #!/usr/bin/env -S roc --, so all args are passed to the script, but it would be nice to not have to do this.

We should investigate if we can improve this to get a simplified shebang.

Discussion: https://roc.zulipchat.com/#narrow/channel/304641-ideas/topic/Roc.20for.20scripting.2C.20minor.20annoyance/near/490539086


Duplicate of https://github.com/feross/webtorrent/issues/394


autoSizeColumn - key [columnIndex] doesn't exist in argument scope

Error in version 2.2.0: key [columnIndex] doesn't exist in argument scope. existing keys are [workbook, column, useMergedCells]
Fix:
index 2395600..b55d17b 100644
--- a/Spreadsheet.cfc
+++ b/Spreadsheet.cfc
@@ -629,7 +629,7 @@ component{
                        Throw( type=exceptionType, message="Invalid column value", detail="The value for column must be greater than or equal to 1." );
                /* Adjusts the width of the specified column to fit the contents. For performance reasons, this should normally be called only once per column. */
                var columnIndex = ( arguments.column -1 );
-               getActiveSheet( arguments.workbook ).autoSizeColumn( arguments.columnIndex, arguments.useMergedCells );
+               getActiveSheet( arguments.workbook ).autoSizeColumn( columnIndex, arguments.useMergedCells );
        }

Thanks, good spot.


Mobile search type switcher beta label collides with checkmark

Description

Reproduction

 Select the audio search type on mobile and then open the search type switcher from the header. Notice that the checkmark appears inside/over the beta label.

Additional context

My guess is that this is because the checkmark is absolute positioned inside the VItem component.
https://github.com/WordPress/openverse-frontend/blob/b8c79fdfc114387d504dc6faaa8188dae0ce5c71/src/components/VItemGroup/VItem.vue#L45
I'm not sure it's necessary. The VButton it is rendered into is flex justify-between so theoretically it can just live at the "end" by being logically the last thing in the dom inside the button. Probably it needs to have flex-grow set to 0 and the slot wrapper have flex-grow 1 so that the wrapper always spans the full remaining width of the VItem so long as the checkmark is visible or not.
Resolution

[ ] 🙋 I would be interested in resolving this bug.

@sarayourfriend can`t recreate this. am  i doing something wrong?
https://user-images.githubusercontent.com/29175506/204259614-5bbdd25a-dc05-49ec-96b5-3eec380203ff.mp4

I think the best way to test this would be to switch one of the media types to 'beta' locally and confirm that the alignment issue is still in place.
That would be done by switching one media type from SUPPORTED to BETA in this file, @anton202:
https://github.com/WordPress/openverse-frontend/blob/50eca5355a4853befed281b045f4120f9b1e5722/src/constants/media.ts#L57-L63


Added debugging to load_extension_library

What
If a plugin fails to load, we should inform the user as to why it was not successful. Also remove unwrap() call to ensure that future code changes don't cause a panic!.
Why
Lesser programmers (like myself) sometimes write buggy plugins that have a local sysroot and then blow up when Ripple tries to dlopen their shared objects dependencies which don't exist on the rootfs. It is helpful to output the reason why the the plugin could not be loaded.
How
Output the error message to the log. Also remove the unwrap() and use and_then() to chain the Option processing.
Test
My buggy plugin triggers this and gives the following output:
2023-11-28-20:36:45.397[DEBUG][ripple::bootstrap::extn::load_extn_metadata_step][gateway]-******************Loading /home/workuser/Ripple/target/debug/libsec_manager_extn.so************************
2023-11-28-20:36:45.397[DEBUG][ripple::bootstrap::extn::load_extn_metadata_step][gateway]-Extn not found: DlOpen { desc: "libsaclient.so.3.3.0: cannot open shared object file: No such file or directory" }
2023-11-28-20:36:45.397[WARN][ripple::bootstrap::extn::load_extn_metadata_step][gateway]-file=/home/workuser/Ripple/target/debug/libsec_manager_extn.so doesnt contain a valid extension library

Checklist

[x] I have self-reviewed this PR
[ ] I have added tests that prove the feature works or the fix is effective

@StefanBossbaly I updated the main branch to resolve code coverage pr check failure. Please update your branch with the latest main branch.

@maggie98choy Looks like the tests are passing!

@StefanBossbaly please update your PR and go ahead and merge your changes to main branch


add init.py file to rules dir

Prior to this change, setuptools would not include the rules files in the sdist tarball.

At some point we thought it would be good to declare version-based things like this but didn't follow through. This needs to be revisited at some point, they are noops for now


setup script requires private images

I tried running the setup script per the instructions, but its failing because some of the images are private, e.g. pc-apis-tiler-dev internal
$ ./scripts/setup
==Building images...
[+] Building 5.0s (22/30)
 => [pc-apis-nginx internal] load build definition from Dockerfile                                                                                0.0s
 => => transferring dockerfile: 32B                                                                                0.0s
 => [pc-apis-tiler internal] load build definition from Dockerfile                                                                                0.0s
 => => transferring dockerfile: 1.39kB                                                                                0.0s
 => [pc-apis-stac-dev internal] load build definition from Dockerfile.dev                                                                                0.0s
 => => transferring dockerfile: 192B                                                                                0.0s
 => [pc-apis-tiler-dev internal] load build definition from Dockerfile.dev                                                                                0.0s
 => => transferring dockerfile: 194B                                                                                0.0s
 => [pc-apis-funcs internal] load build definition from Dockerfile                                                                                0.1s
 => => transferring dockerfile: 627B                                                                                0.0s
 => [pc-apis-stac internal] load build definition from Dockerfile                                                                                0.1s
 => => transferring dockerfile: 32B                                                                                0.0s
 => [pc-apis-stac-db internal] load build definition from Dockerfile                                                                                0.1s
 => => transferring dockerfile: 32B                                                                                0.0s
 => [pc-apis-nginx internal] load .dockerignore                                                                                0.1s
 => => transferring context: 2B                                                                                0.0s
 => [pc-apis-tiler internal] load .dockerignore                                                                                0.0s
 => => transferring context: 2B                                                                                0.0s
 => [pc-apis-stac-dev internal] load .dockerignore                                                                                0.0s
 => => transferring context: 2B                                                                                0.0s
 => [pc-apis-tiler-dev internal] load .dockerignore                                                                                0.1s
 => => transferring context: 2B                                                                                0.0s
 => [pc-apis-funcs internal] load .dockerignore                                                                                0.0s
 => => transferring context: 2B                                                                                0.0s
 => [pc-apis-stac internal] load .dockerignore                                                                                0.0s
 => => transferring context: 2B                                                                                0.0s
 => [pc-apis-stac-db internal] load .dockerignore                                                                                0.0s
 => => transferring context: 2B                                                                                0.0s
 => CANCELED [pc-apis-nginx internal] load metadata for docker.io/library/nginx:1.10                                                                              4.5s
 => CANCELED [pc-apis-tiler internal] load metadata for docker.io/library/python:3.9-slim                                                                         4.4s
 => CANCELED [pc-apis-stac-dev internal] load metadata for docker.io/library/pc-apis-stac:latest                                                                  4.4s
 => ERROR [pc-apis-tiler-dev internal] load metadata for docker.io/library/pc-apis-tiler:latest                                                                   4.3s
 => [pc-apis-funcs internal] load metadata for mcr.microsoft.com/azure-functions/python:4-python3.8                                                               0.3s
 => CANCELED [pc-apis-stac-db internal] load metadata for docker.io/library/postgres:13                                                                           4.3s
 => CANCELED [pc-apis-funcs 1/9] FROM mcr.microsoft.com/azure-functions/python:4-python3.8@sha256:89a82768164b22834854b97c194aff9d4494d26969f3673fe4b3a462c36236  4.1s
 => => resolve mcr.microsoft.com/azure-functions/python:4-python3.8@sha256:89a82768164b22834854b97c194aff9d4494d26969f3673fe4b3a462c3623682                       0.0s
 => => sha256:7ae7bb2a534b251b3501f6c25d5f154e848e923441e08454f10dfaa75d62dfdb 10.05kB / 10.05kB                                                                  0.0s
 => => sha256:a603fa5e3b4127f210503aaa6189abf6286ee5a73deeaab460f8f33ebc6b64e2 7.34MB / 31.41MB                                                                   4.2s
 => => sha256:b00aaacf759c581712fa578a6b4e8e0b9fc780919a5d835a168457b754755644 1.08MB / 1.08MB                                                                    1.1s
 => => sha256:372d780866a7e569457582348fbf850edc018b6b015335a4a56403fe299ff04b 7.34MB / 11.34MB                                                                   4.2s
 => => sha256:89a82768164b22834854b97c194aff9d4494d26969f3673fe4b3a462c3623682 2.43kB / 2.43kB                                                                    0.0s
 => => sha256:feb836cf9ff261a0d9feb57f8808540cbb140d6d9e957af5daad2767d65fec36 232B / 232B                                                                        1.3s
 => => sha256:6a0e4abca74a97205cba7ecb141fd4210bfab67dddb55e3a1fdaa6bcefbc44de 3.18MB / 3.18MB                                                                    3.0s
 => => sha256:f185cb5182255c6a037ffb84ac09b3826bebf5f56ed56c2ea08d3ac5211120eb 1.05MB / 131.85MB                                                                  4.2s
 => [pc-apis-funcs internal] load build context                                                                                0.1s
 => => transferring context: 1.93kB                                                                                0.0s
------
 > [pc-apis-tiler-dev internal] load metadata for docker.io/library/pc-apis-tiler:latest:
------
failed to solve: rpc error: code = Unknown desc = failed to solve with frontend dockerfile.v0: failed to create LLB definition: pull access denied, repository does not exist or may require authorization: server message: insufficient_scope: authorization failed

Hi @tonybaloney -- none of the base images for our containers are in a private repository, so I'm not sure where that auth error is coming from. I just successfully built all the images on a fresh OS with no credentials. Could you ensure it wasn't just a transitory error, and if it's repeatable, provide your OS, docker and docker-compose versions?


[BUG] Wrong default fields in exported excel

Prerequisites

[X] Able to reproduce the behaviour outside of your code, the problem is isolated to Laravel Excel.
[X] Checked that your issue isn't already filed.
[X] Checked if no PR was submitted that fixes this problem.

Versions

PHP version: 7.4.5
Laravel version: 7.6.2
Nova version: 3.3.2
Package version: 1.2.1 / 3.1.19

Description
When doing an export I expect to see the same fields as in the they are on the nova resource index table.
Apparently if the  fieldsForIndex() method is present it doesn't take precedence over the fields() resulting different format in the generated excel file compared to what I see on the screen.
This can be seen also as a feature as sometimes is useful to be able to define different fields for the exported excel but I don't think that the plugin should behave like this by default.
Steps to Reproduce
Return different fields in fieldsForIndex() and fields()
Expected behavior:
When doing a excel export I should see the fields defined in fieldsForIndex()
Actual behavior:
When doing a excel export I see the fields defined in fields()

Yeah I don't think we currently do anything with that. I actually haven't even heard of it. Feel free to PR a solution.
In the future I would like a solution where we can include/exclude fields from export. Text::make()->excludeFromExport() But that won't be for soon


The finetuning weights on imagenet

Thanks for your wonderful work! The tutorial is fairly friendly for reproduction, but I also wonder if it is possible for us to get the fine-tuned weights on imagenet?

yes, i think those would be ok in a couple of weeks. i'll work on them (weights & logs like https://github.com/keyu-tian/SparK/tree/main/downstream_d2#fine-tuned-resnet-50-weights-log-files-and-performance) once i finish my current project at hand.


Static pr creator

I want to make more unit tests (mainly for the CSV), figured I'd get this up first though. There's a few things I need to investigate however.

When I test this on my local machine its fine:
31 examples, 0 failures

@WChrisK this is exactly what I wanted, thank you.
The failing test is a little worrisome. Please look into it a bit more. There might be a problem with how results are being found to compute marks - talk to @christinem about this, as she is working on basically the same problem.


Updated ClusterGrainHelloWorld to build in docker

Description
Fixed a little annoyance with static path names when running the example ClusterGrainHelloWorld
Purpose
This pull request is a:

[x] Bugfix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)

There we go :)


Add feature: only download image via Wi-Fi

For issue #1502
Add a feature that only download images via Wi-Fi
Since this option should be parallel with "Always show images" (the option "only download image via Wi-Fi" should have its own value regardless of the value of "Always show images"), so a separate checkbox is added.

Why not just another option to the ShowPictures enum?

@philipwhiuk Thanks for your review :) I think that "download images from anyone only via Wi-Fi" and "download images from contacts only via Wi-Fi" are both possible to be needed by users. If just add it in ShowPictures, users will not be able to set whether only the images from contacts should be downloaded.

@Valodim about the separate checkbox, my opinion is that we will not be able to meet the request like "only download images only when images are from contacts and I'm on Wi-Fi" if we just add an extra option in "show pictures never / always".

I see. Hmm that's a problem, so we have all of these as separate option bits?

only for contact
only on wifi
always

hmm, that's tricky, seems like there will always be constellations that are confusing to the user. Maybe we can solve this via wording, e.g. "Download automatically only while on wifi"?

@Valodim I have made requested changes about code. As for the settings, in my opinion users will also confused about "what will happen if I check both 'Download automatically only while on wifi' and 'Download automatically only from contacts'?". But I have no better idea. :P So I will update this PR as soon as possible if you have determined the way to present these settings.

@Valodim About the settings, do you have a final decision? :)

The approach looks good to me. Unfortunately, our code has changed quite a bit and it's probably easier to reimplement the feature instead of trying to rebase this pull request.


Create specimens endpoint on the web service to serve the sample index.

DOD: the web service renders the table and facets portion of the API on a per sample basis. Unit tests included.

Carlos, this ticket already exists and is assigned to Jim.
I'll let you sort out who is implementing it..


InfrastructureProvider do not pass configSecret

What steps did you take and what happened:
[A clear and concise description on how to REPRODUCE the bug.]
apiVersion: operator.cluster.x-k8s.io/v1alpha2
kind: InfrastructureProvider
metadata:
 name: vsphere
 namespace: capi-system
spec:
 version: v1.10.0
 configSecret:
   name: vsphere-secret

apiVersion: v1
data:
  VSPHERE_PASSWORD: XXXXXX
  VSPHERE_USERNAME: XXXX
kind: Secret

Once provider is installed, resulting bootstrap-secret do not contain provided credentials
apiVersion: v1
data:
  credentials.yaml: dXNlcm5hbWU6ICcnCnBhc3N3b3JkOiAnJw==
kind: Secret
metadata:
  labels:
    cluster.x-k8s.io/provider: infrastructure-vsphere
    clusterctl.cluster.x-k8s.io: ""
  name: capv-manager-bootstrap-credentials
  namespace: capi-system
  ownerReferences:
  - apiVersion: operator.cluster.x-k8s.io/v1alpha2
    kind: InfrastructureProvider
    name: vsphere
    uid: f94a5b43-e7e6-4def-9540-c3d8c178083f
type: Opaque

Which is equal to:
username: ''
password: ''%

What did you expect to happen:
bootstrap-credentials to contain secret data from spec.configSecret
Anything else you would like to add:
[Miscellaneous information that will assist in solving the issue.]
Environment:

Cluster-api-operator version: v0.12.0
Cluster-api version: v1.8.0
Minikube/KIND version: --
Kubernetes version: (use kubectl version):
Client Version: v1.30.2
Kustomize Version: v5.0.4-0.20230601165947-6ce0bf390ce3
Server Version: v1.29.4+rke2r1
OS (e.g. from /etc/os-release):

/kind bug
[One or more /area label. See https://github.com/kubernetes-sigs/cluster-api-operator/labels?q=area for the list of labels]

I did run clusterctl generate and see secret is created properly
apiVersion: v1
kind: Secret
metadata:
  labels:
    cluster.x-k8s.io/provider: infrastructure-vsphere
    clusterctl.cluster.x-k8s.io: ""
  name: capv-manager-bootstrap-credentials
  namespace: capv-system
stringData:
  credentials.yaml: |-
    username: 'foo'
    password: 'bar'
type: Opaque

@k0da can you check the secret namespace. The empty one is in capi-system:
  name: capv-manager-bootstrap-credentials
  namespace: capi-system

And generated with clusterctl generate is from capv-system:
name: capv-manager-bootstrap-credentials
namespace: capv-system


how to disable the boostrap class on a single tag in the form?

The title says the problem, I want the form-control class to not apply to a single tag in the form? I set the class tag, but the library appends the form-control to what I added.
How can I do this?
Thanks

I believe you can override it with the :control_class option. Let me know if that works!


feat(component): added BasketButton

Fixed the linting errors!

Fixed the linting errors!

We have border-radius variables. Could you use it?

Could you update the root branch and resolve conflicts?

I've made the changes you told me.


Geolocation API supported

I have looked through the documentation at http://alibaba.github.io/weex/doc/ and can't find how weex can support Geolocation. I am making a Weather app using Weex like

Swift Weather: https://github.com/JakeLin/SwiftWeather
React Native Weather: https://github.com/JakeLin/ReactNativeWeather

I need to get the current location to display the weather info. In React Native, we can do it like https://github.com/JakeLin/ReactNativeWeather/blob/master/src/components/WeatherView.js#L75
 startLocationSearch() {
    navigator.geolocation.getCurrentPosition(
      location => {
        this.queryOpenWeatherMap(location);
      },
      error => {
        this.setState({
          message: error.message || error
        });
      },
      {enableHighAccuracy: true, timeout: 2000, maximumAge: 1000}
    );
  }

Thanks
Jake

This PR/issue doesn't receive response since Weex migrated to Apache two years ago and this repository is no longer active yet.
Feel free to ask question in new repository and thanks for your contribution.

This issue is outdated for a long time and will be closed now. You can create a new one if you still have questions.

This issue is outdated for a long time and will be closed now. You can create a new one if you still have questions.


When fetching a user thru the API, capabilities should be added to the response

when fetching a user object via one of these routes:
GET /api/$version/user/current
GET /api/$version/users
GET /api/$version/users/:id
the response should include the capabilities of the user in addition to the role. for example:
{
role: 4,
capabilities: [ 'asn-read', 'asn-write' ]
}
otherwise, 2 calls have to be made to fetch the capabilities of a user
GET /api/$version/user/current
GET /api/$version/roles/user.roleID from previous call

@moltzaum is working on this

added to roles and perms project

was this done with the roles/perms project @srijeet0406 @ocket8888 @shamrickus?

Yeah, this was closed with #6124


Event Type Item not listing when using Event Grid Trigger in new designer of Logic App standard.

Customer is trying to create a logic app to handle the key vault events, using the Event Grid Trigger (When a resource event occurs) in logic app standard however, event type item is not listing.

I've also tested at my end and could see same behavior in new designer where we need to hard code event type item(drop down does not show up)

If we use old designer, we can choose event type items from drop down as below:

Please check if any issue in new designer while showing up event type item or is it by design behavior?

This repository has nothing to do with Event Hub


Typescript absolute import not working on new/renamed files until refreshing project or restart

VSCode Version: 1.44.2
OS Version: Windows 10

Having this project structure:
src
|__ folderA
    |__ file1
    |__ file2
|__ folderB
...

Steps to Reproduce:

Set "compilerOptions.baseUrl" property in tsconfig.json to your "src" folder
Set vscode "typescript.preferences.importModuleSpecifier" setting to "non-relative" (or auto)
Create a new file (or rename an existing one) under the src folder (or any subfolder)
On that file try to import something typing its location based on the src folder (ex. folderA/file1)
Autosuggestion doesn't suggest it and filling by hand results in the error "Cannot find module 'folderA/file1/'. ts(2307)"

Workaround:
F1 -> Typescript: Reload project
or
F1 -> Developer: Reload window
or
Restart vscode
I tried also with setting this in tsconfig:
"baseUrl": ".",
"paths": {
  "*": ["src/*"]
}

Does this issue occur when all extensions are disabled?: Yes
Am I missing something? Could you please help me?
Thank you

Does this reproduce in the latest VS Code insiders build with all extensions disabled?

Hi @mjbvz unfortunately it doesn't work even in the insider build

Hi @mjbvz, sorry to bother you, can I ask if this can be marked as a bug? Thank you

It happens also on macOS

Can you share a small example project (a link to a GitHub repo is fine)

Hi @mjbvz, I’m in holiday at the moment and I have no access to my machine, but I don’t think a whole example project is needed, you just have to execute an npm init then install typescript and follow my repro steps. Thanks for the effort

Yes please share an example project. That way we are on the same page


DRILL-8273: Complex typed columns cannot be made implicit (extend unit tests)

DRILL-8273: Complex typed columns cannot be made implicit (extend unit tests)
Description
The first PR (#2615) did not cover all of the affected column types with unit testing. This PR extends the unit tests to dict, repeated list and variant column types.
Documentation
N/A
Testing
This PR consists only of test code.

@cgivre PrimitiveColumnMetadata handles many data types and gets tested by the scalar INT case. DynamicColumn is the one that I can see which remains untested in wildcard projections but I don't know that it ever takes on properties like a wildcard exclusion flag...


How to Keep scrolled area when not at the top

Is there a quick hack or right place in the source code to look into in order to implement this feature?

With the latest merged PR now the table only updates if scrolled at the top, so it should keep the scrolled area


FollowSight not working in follow task

The within sight calculation is very spotty and only partially works. It needs to be redone and tested thoroughly before it is added.

BYU-PCCL/holodeck-engine#176 Reworked the code slightly and tested it much more thoroughly. The task works fine in most worlds but can be glitchy in the CyberPunkCity world. Usually this is because the uav is resting on the ground, which causes it to see the ground or other low level objects. If the uav is flying, it can see the nav agent just fine. This should be fine for the most part.


[💡 FEATURE REQUEST]: Add requeue tag to failed task metric of Jobs plugin

Plugin
JOBS
I have an idea!
I have an idea, listen to me!
I suggest to add requeue param to failed task metric. We have rr_jobs_jobs_err metric in Jobs plugin and could be added tag requeue = 0 || 1 or another metric like rr_jobs_jobs_requeue.
Then we can observe finally failed tasks from requeued ones.

Hey @embargo2710 👋🏻
This FR is not accepted yet, I have to think if we need the metric for the number of queued jobs, since we still won't be able to distinguish them from errors.
If you wanted some task for learning purposes, you may take this one: https://github.com/roadrunner-server/roadrunner/issues/909 (update CORS handler https://github.com/rs/cors in this small middleware: https://github.com/roadrunner-server/headers)


Add i3dm tests and fix some bugs.

Fixes the glTF 1.0 crash I reported here:
https://github.com/CesiumGS/cesium-unreal/pull/1371#issuecomment-2138534687
Before this PR, any errors while loading a glTF would have resulted in a similar crash, and any warnings would have been silently dropped.
I also noticed and fixed two other bugs:

convertI3dmContent was accidentally not returning finishEarly in one case, so it wasn't finishing early. This would result dereferencing an empty optional if it ever actually happened.
EXT_mesh_gpu_instancing was not added to the glTF's extensionsUsed and extensionsRequired lists.

I also wrote a few basic tests of the i3dm converter, because we had none previously.
I'm going to self merge this because it's needed for today's release.

Thanks for getting on this. I started to write similar tests that found the same issue with extensionsUsed et al., but I'll build on yours for additional i3dm tests.


{BP-9757} documentation: Add release notes for 12.2.1 release

Summary
This is a local copy taken from the confluence notes https://cwiki.apache.org/confluence/display/NUTTX/NuttX+12.2.1
Impact
RELEASE
Testing
NONE

This patch just change documentation, let's ignore the strange ci failure.


Create how-to doc on porting salt-pack to other OS/Platforms

In answer to the question ?
"Do we want to, or in the near future do we plan to, add ARMAF support for Ubuntu, Fedora, or Debian?"
Placeholder task for something along lines of an example of how to do it with salt-pack and then leave it up to individuals who might want to do it or other topologies, os's, etc.
It would work for PowerLinux too, that is, example of how to get other platforms / os combinations up and running salt with salt-pack.
Would not be supporting or expending resources other than usual guidance  / responses to emails.

Closing this since moving to salt-bin for Sodium release


SO-74

Apply Create operation via SupaBase for Reciepts

Apply Read operation via SupaBase for Reciepts

Apply Update operation via SupaBase for Reciepts

Apply Delete operation via SupaBase for Reciepts

ERRORS ON THIS FEATURE BRANCH PLEASE FIX ....


UEI Implementation Guide V1.4

Back Story
UEI EV charging implementation guide V1.3 updated with the following below items.

Get an update on the proposed change to move connector specification taggroups from fulfillments to items

Next Steps

An additional point was raised regarding charging options. Some NPs prefer time-based charging, while others prefer energy unit-based or money-based charging. We should add examples demonstrating each of these options.
The above scenario need to add in the implementation guide as part of V1.4

Reference Card
https://github.com/beckn/missions/issues/178 - Previous Iteration Closed Card
MD Link
Click Here
Associated Tickets
https://github.com/beckn/missions/issues/185

Current Status:

The specification team engaged in other spec-related tasks, Version 1.4 is tentatively targeted for release by December 20th.

Next Steps:

Review and update the implementation guide basis discussion with NPs and release as version 1.3.
UEI Implementation Guide V1.4 to prepare and publish  for V1.4 “Time-based charging, energy unit-based” scenario.


Added GSM format support to soxio's save function

Addresses https://github.com/pytorch/audio/issues/1264.

You probably already know this, but the failed tests seem to be flaky for some reason. They're highly likely to go away if you'd trigger CI again.

You probably already know this, but the failed tests seem to be flaky for some reason. The failures are highly likely to go away if you'd trigger CI again.

Yeah, this one is giving me headaches and blocking the release of file-like object support feature for sox-io backend. I will have to make a PR to disable these against release branch soon. It's such a high demand feature so I wanted to release it but the reality is hard

Thanks!


Error after 1.18

Error reading character data for Fakundita, if you are in offline mode you will need to login and update. If you received this error while logging in, the authenticated session may have expired or bad data has been returned by GGG or a network issue may have occurred - Please try again.

Have you used Procurement before?
Make sure you've got a "clean" installation of Procurement ie: extract the 1.18.0 zip into a new empty folder.

did it nothing changes :/

Take out any abyss jewels that you have in stygian vise belts. That's the reason for the crash, and taking it out will (temporarily) avoid this issue.

This has been fixed in Procurement 1.19.0
Please install a clean copy of 1.19.0 and create a new issue if you have further problems.


Dropdown in bs-navbar needs active classbinding

Some users of my app have indicated they find it confusing that all buttons in the bs-navbar have an active state, except for the nav.dropdown one.
I think this is something that should be implemented upstream, but I'm also curious to know how I can extend the nav.dropdown helper manually.
The solution for the helper, if this still works, should be something like this:
App.NavItemComponent = Ember.Component.extend({
    tagName: 'li',
    classNameBindings: ['active'],

    active: function(){
        return this.get('childViews').isAny('active');
<EMAIL_ADDRESS>});

.. although I think the view thing is outdated.
Is there a way that I can extend this helper in a custom component? How would I use it inside the ember bootstrap helper of navbar?
E.g. the last line here:
{{#bs-navbar as |navbar|}}
  {{#navbar.content}}
    {{#navbar.nav as |nav|}}
      {{#nav.dropdown as |dd|}}

If it's possible, it will probably be something like:
import DropdownComponent from 'ember-bootstrap';

Output from ember bootstrap:info (available since 1.0.0-alpha.9):
Npm packages:
ember-bootstrap: ^1.2.2 -> 1.2.2
ember-cli: ~3.1.4 -> 3.1.4
bootstrap: ^4.1.1 -> 4.1.1
bootstrap-sass: n/a
ember-cli-sass: ^7.1.7 -> 7.1.7
ember-cli-less: n/a
Bower packages:
bootstrap: n/a
bootstrap-sass: n/a
ember-bootstrap configuration:
bootstrapVersion: 4
importBootstrapFont: false
importBootstrapCSS: false

Some users of my app have indicated they find it confusing that all buttons in the bs-navbar have an active state, except for the nav.dropdown one.

To clarify, by buttons you mean actually links (or nav items, i.e. <li>s), that get active when the user is on the route they are linking to, right?

.. although I think the view thing is outdated.

yes, childViews is private, and IIRC not reliable to use

Is there a way that I can extend this helper in a custom component?

Yes, you can extend any component in Ember coming from an addon. Just create a component in the same location and name. here it would be app/components/bs-dropdown.js. Inside of it you can import the original to extend from it: import DropdownComponent from 'ember-bootstrap/components/bs-dropdown';

To clarify, by buttons you mean actually links (or nav items, i.e. s), that get active when the user is on the route they are linking to, right?

Yes. When you have a navbar like so:
[link 1] [link 2] [dropdown] [link 5]
                    [link 3]
                    [link 4]

.. and link 3 and 4 are hidden inside the dropdown button, it would be nice if the dropdown button has the 'active' state when any of the links it contains is active, so that it can be styled in a way that is recognized by users, so that the navbar always shows "where you are".

Just create a component in the same location and name. here it would be app/components/bs-dropdown.js. Inside of it you can import the original to extend from it: import DropdownComponent from 'ember-bootstrap/components/bs-dropdown';

Thank you!

I don't think this is supported in Bootstrap. I'm going to close this issue. If I'm wrong and it is supported, please leave a comment. I'm happy to reopen in this case.


Request: Enhanced Heart Emoji for Facebook Messenger and Instagram

The heart emoji (❤) currently appears as a plain black text emoji in both Facebook Messenger and Instagram. This visual discrepancy is inconsistent with the standard red heart emoji used across other platforms.
Could you please consider updating the heart emoji in both apps to a more visually appealing red heart design? This would align with user expectations and improve the overall aesthetic experience.

You are probably using the Inter as your system font. It's causing incorrect rendering of this emoji even with stock or any other emoji pack. This problem has been previously reported (https://github.com/rsms/inter/issues/238, https://github.com/ihfandicahyo/proton-aosp-stuff/issues/1) and there's no known solution.


Fix bug on AddressInput

There is an issue with addressInput in some scenarios.
To reproduce the bug:

Search for any ens address (e.g. atg.eth)
Connect a wallet with a different address (e.g. buidlguidl.carletex.eth)
=> It will still show the old ens

The cause was we weren't resetting enteredEnsName on value change.
This seemed the best way to fix it, and didn't find any consequences.
After you'all review this, I'll create a PR on SE-2 too

Drafting this since it didn't work on the Vercel preview... and not in my local either? Damn, might be some caching thing

Ok, pushed another change. Not use if it's save to clean the enteredEnsNamestate like that or if we need to do a check.


[Feature Request]: New Blog named Getting Stated with Serverless Architecture using AWS Lambda

Is there an existing issue for this?

[X] I have searched the existing issues

Feature Description

Introduction
Key Concepts
Setting Up AWS Lambd
Writing and Deploying Lambda Functions
Lambda Execution Model
Managing Lambda Functions
Advanced Topics
Performance and Scaling
Testing and Debugging
Real-World Examples
Conclusion

Use Case
In tech field.
Benefits
No response
Add ScreenShots
No response
Priority
High
Record

[X] I have read the Contributing Guidelines
[X] I'm a GSSOC'24 contributor
[X] I have starred the repository

@Nayanika1402, I assign you a good level, so I need in-depth and easy-to-understand content for users of all levels.


💥 Let’s break up the Miro adapter, and decide where images should live 💥

This is a tracking ticket for our conversations this morning, and all the bits that need to happen for this to be done:

[x] Write an XML-to-JSON converter service, which takes XML Miro exports and breaks them up into individual JSON files
[x] Write a sorter that spots changes to those files, and decides the final category for each Miro record
[x] Write a Catalogue adapter that spots the category assignment, and copies metadata and assets accordingly

Ah, I remembered why it’s useful to have a single file with all the JSON blobs!
When you want to do analysis of the entire set (e.g. “if I make this change, how many records will be dropped”?) that’s much easier if you can download a single file and work locally than iterate over thousands of files that you’ve had to fetch from S3.

The WI selection rules document is on SharePoint: https://wellcomecloud-my.sharepoint.com/personal/c_henshaw_wellcome_ac_uk/_layouts/15/onedrive.aspx?id=%2Fpersonal%2Fc_henshaw_wellcome_ac_uk%2FDocuments%2FShared+stuff+-+internal%2FWI+migration&FolderCTID=0x012000C157F1E960030E429A435A8C372025FF
Also, feedback from Christy:

In the same folder as the WI selection rules document is a text file with a list of image numbers. These are images with the phrase “title page” in the description, slightly edited to remove a few images that we might want to keep for whatever reason.
This list is for total obliteration – don’t need the images, don’t need the MIRO records, even.

Relevant: #711

Done

Closing as done.


[BUG] Simple keybindings don't work with capslock on

Describe the bug
I upgraded to the latest version and got complaints from some users that hotkeys no longer work. However, it seems like those users just had capslock on.
How are you using react hotkeys components? (HotKeys, GlobalHotKeys, IgnoreKeys etc)
GlobalHotKeys
Expected behavior
A handler for e should work regardless of capslock (like the previous version).
Platform (please complete the following information):

react-hotkeys -> latest
chrome
Mac

Are you willing and able to create a PR request to fix this issue?
Yes, can look into it.

Same problem here, even if I listen to uppercase keys.

I noticed a strange behavior, if my capslock is already active when I focus on the tab, my shortcuts work but if turn my capslock on when I'm on the page, shortcuts don't work anymore.

Hmm, Capslock has always been a bit tricky, @inssein.
This will need looking into.


Paste doesn't work

The issue I opened in below link, it is not fixed yet. The issue is that when I right click the and choose "paste", it doesn't paste anything.
https://github.com/sourcelair/xterm.js/issues/344

Thanks for opening this @goflatworld. I think I have spotted the bug and will get on top of this within the week hopefully.

Thanks Parisk. Great to know that you have spotted the bug. Waiting for your solution.

@goflatworld can you let us know if any of xterm.js' element parents use the transform CSS property?
Seems like this is causing an issue and misplaces the hidden textarea, so the right-click won't work.

fixed
Do not leave space for the element. Instead, position it at a specified position relative to the screen's viewport and don't move it when scrolled. When printing, position it at that fixed position on every page. This value always create a new stacking context. When an ancestor has the transform property set to something different than none then this ancestor is used as container instead of the viewport (see CSS Transforms Spec).

From: https://developer.mozilla.org/en/docs/Web/CSS/position#Values
Also, I am removing this from the milestone, as it will need more work than initially thought, in order to calculate appropriately the position of the hidden textarea on the user's right click.

Hi Parisk,
Below is all the HTML code I have (it is a PHP file). You can see that the CSS are from xterm.js. I suppose that they don't use transform? I also tried to search transform in these CSS. but did not see it.
<!doctype html>

        <title>Stingray Solution</title>
        <link rel="stylesheet" href="xterminal.js/build/xterm.css" />
        <link rel="stylesheet" href="xterminal.js/addons/fullscreen/fullscreen.css" />
        <link rel="stylesheet" href="style.css" />

The main.js is the code from xterm.js example, I modified it a bit. and it is as follow:
var term,
    protocol,
    socketURL,
    socket,
    pid,
    charWidth,
    charHeight;

var terminalContainer = document.getElementById('terminal-container');

createTerminal();

function createTerminal() {

  while (terminalContainer.children.length) {
    terminalContainer.removeChild(terminalContainer.children[0]);
  }

  term = new Terminal({
    cursorBlink: true
  });
  protocol = 'wss://';
  socketURL = 'wss://www.flatworld.com:443';

  term.open(terminalContainer);
  term.fit();

  var initialGeometry = term.proposeGeometry(),
	cols = 80,
	rows = 30;

    charWidth = Math.ceil(term.element.offsetWidth / cols);
    charHeight = Math.ceil(term.element.offsetHeight / rows);

      if (window.WebSocket === undefined)
      {
        state.innerHTML = "sockets not supported";
        state.className = "fail";
      }
      socket = new WebSocket(socketURL);
      socket.onopen = runRealTerminal;
      socket.onclose = onClose;
      socket.onerror = onError;
}

function runRealTerminal() {
  term.attach(socket);
  term._initialized = true;
  socket.send("C");

  term.on('key', function (key, ev) {
    var printable = (
      !ev.altKey && !ev.altGraphKey && !ev.ctrlKey && !ev.metaKey
    );

    var message ="A" + key;

    socket.send(message);

  });

  term.on('paste', function (data, ev) {
    socket.send(data);
  });
}

function onClose()
{
  term.write("\rDisconnected from server.");
}

function onError()
{
  term.write("\rFail: ");
  term.write("Communication error");
}

For the attach.js, I modifed a bit, the modified part is as below:
 term._getMessage = function (ev) {
      if (buffered) {
        term._pushToBuffer(ev.data);
      } else if (ev.data==="Auth-Required")
      {
	socket.send(hash);      } else if (ev.data===" Auth OK!")
      {
 	term.write("Press Enter to Start.");
      } else
      {
        term.write(ev.data);
      }
    };

Would these modification cause any issue?

@goflatworld these modifications do not seem like causing issues.
OK, I put this in the 2.3.0 milestone, in order to find an appropriate solution for this issue.
What would help though are the following details:

The system that you tried this the most times and it didn't work (OS and Browser along with versions)
A production running application where I can get access to try this out as, I can't get it working in the demo

Hi Parisk,
I tried Firefox on MAC the most. However I also tried IE, Chrome on Windows, Linux. None of them worked for me.
The system is not in public domain yet, but you can test it via below:

Modify your windows\system32\driver\hosts file. Point www.flatworld.com to <IP_ADDRESS>
Save below certificate as .cer file and import to you Web Browser.

-----BEGIN CERTIFICATE-----
MIICfzCCAegCCQCvneKQfiJpKDANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMC
QVUxDDAKBgNVBAgMA05TVzEPMA0GA1UEBwwGU3lkbmV5MRMwEQYDVQQKDApGbGF0
IFdvcmxkMRowGAYDVQQDDBF3d3cuZmxhdHdvcmxkLmNvbTEkMCIGCSqGSIb3DQEJ
ARYVc3VwcG9ydEBmbGF0d29ybGQuY29tMB4XDTE2MDkwNDIzMzg1M1oXDTI2MDkw
MjIzMzg1M1owgYMxCzAJBgNVBAYTAkFVMQwwCgYDVQQIDANOU1cxDzANBgNVBAcM
BlN5ZG5leTETMBEGA1UECgwKRmxhdCBXb3JsZDEaMBgGA1UEAwwRd3d3LmZsYXR3
b3JsZC5jb20xJDAiBgkqhkiG9w0BCQEWFXN1cHBvcnRAZmxhdHdvcmxkLmNvbTCB
nzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAtwhi6ubo3dF4R25ztYnBXGyZER1q
mQRf6z9vGA/xxUK6jtqN+kAE/NI51Ofq01hJXCkxOXxRM1i+GW/X0wfFEIfgt+Zn
UWpMQ4bUEqwTyACJOQZvKBdXG/sg7428XvgkDjMrAkdp81t16KtqYMnDW1vXqmNq
ZW9wos9N01MUQCcCAwEAATANBgkqhkiG9w0BAQsFAAOBgQBSKyVKIMQ8UoutpPIq
+wQyf8zi2o8xlR5XM72rIVGIAa1X2MlWyvZHXEHLuyV6t7yN8ltOZdxUH3OBY+OU
Ve3iwjI3+UGazCb9R9HaELvmasdC+cXA9Puu1ej7jt4Vl2sXUQkvkyff1tOzM4VP
vKZfTNAO1toH2jYyU6aeq7bB0g==
-----END CERTIFICATE-----
In IE, you need import it under "Trusted Root Certification Authority". Need do it via the IE "Internet options"->Content -> certificates.
In Firefox, you need import it under "Options->Advanced->View Certificate->Authorities"
The certificate is not publicly signed because the DNS was registered by other party. that's why you need do above. We are working on different names but not now.
Once above is done:
Go to
www.flatworld.com
login username<EMAIL_ADDRESS>password: test1
You can see "Dural" is green (if it is not green, please email me your prefered test time, I can make sure it is green), click it and then click "connect". You can test copy and paste in there.

Basic paste works fine for me, but let me throw a monkey wrench into things.   Use tmux to split the screen into two panes.  Run something that repeatedly updates the display in one pane, such as top (I'm using htop).  Now, try and cut text from either pane.
What happens is that the screen update on one pane either deselects the text before you can cut it or it acts as if you started selecting from the top of the screen and selects multiple lines (I was going for one word).

@uudruid74 no prob. Indeed what you describe is a side-effect of not optimal rendering.
The issue here is that the hidden textarea used for input is not positioned correctly.

@parisk Getting more offtopic, but ... why would it need to be positioned at all?   Aren't you just giving it focus and then stealing keyDown events with it?  So, why would that have anything to do with the mouse?

The textarea needs to be positioned to support IMEs which popup at the cursor position. The only hooks we have to talk to the IME are the oncomposition* events, so we cannot tell the browser/OS where to position the IME.
This is also the reason we are using a textarea over some contenteditable tricks as it was briefly using since they didn't work nicely for internationalization.

Hi Parisk,
I have upgraded the website.  Now, you can reproduce the issue follow below steps:
Go to
www.pickmyinfo.com
Username<EMAIL_ADDRESS>Password: test1
Once you login, on the left pane, click "Menu->City->Stingray->Home Router"
On the Right Pane, click "Connect".
After that, a new window popup and states: "Press Enter to Start.". You can test copy and paste in this window.
Thanks
George

any update?

Do I need node.js to be able to use paste?

No, you do not need node.js to paste. Node.js lives outside the browser, while the paste happens inside the browser :).

I tried the demo application. When the demo server is active. I can paste to the terminal but when I stop the server, I can not paste to the terminal anymore. Do I need to write any special code on the server side to make copy and paste work?

@goflatworld Here is what happens: The demo sends your inputs to a tty process that is spawned by the server. Any input that you make on the console is sent to the server, received by the tty processed, then output from the tty process is generated (for example it will echo the characters you just typed), sent from the tty to the server to the demo frontend client, and then rendered by xterm.js. If you kill the server, the data will never arrive at the tty, and no output from the tty will ever arrive at the client.

Thanks mofux. I get quite lost on this.
So the demo doesn't echo locally and it only display message from server. This is exactly what my application also behaviors. but why my application can not paste even when my server is active?
My client code has been pasted in previous post in the same thread. That code is a slightly modified demo client version. Is there anything wrong with my client code?

function runRealTerminal() {
  term.attach(socket);
  term._initialized = true;
  socket.send("C");

  term.on('key', function (key, ev) {
    var printable = (
      !ev.altKey && !ev.altGraphKey && !ev.ctrlKey && !ev.metaKey
    );

    var message ="A" + key;

    socket.send(message);

  });

  term.on('paste', function (data, ev) {
   term.write(data)   ------------------------------------ Added this line to see if I can see my pasted data, but I can not see anything.
    socket.send(data);
  });
}

Can you please shed some lights on whether the code is correct or not?

No, there is a much simpler way to do things. Instead of listening for the key and paste events,
you should actually listen to the data event. This event is emitted whenever you type or paste in the terminal, and it already contains the correct, xterm compatible data (string):
term.on('data', function(data) {
  socket.send(data);
})

Great mofux!
That fixed the issue after 8 months of wondering what am I doing wrong!... Thanks a lot for your great help.
Cheers
George

(^_^)/

Hi Thomas,
Paste works but I noticed that it doesn't paste "enter". Does it need special handling?
Thanks
George
On Wednesday, 23 August 2017, 22:34, Thomas Zilz<EMAIL_ADDRESS>wrote:

No, there is a much simpler way to do things. Instead of listening for the key and paste events,
you should actually listen to the data event. This event is emitted whenever you type or paste in the terminal, and it already contains the correct, xterm compatible data (string):term.on('data', function(data) {
socket.send(data);
})
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

You mean \n or \r\n? Both should work as the text is filtered through this function: https://github.com/sourcelair/xterm.js/blob/6e9d60d76d6cfb3d279f9e58499ba62ca6af479c/src/handlers/Clipboard.ts#L23

Hi Daniel,
You are correct. I have found that paste works. Now I want to identify \n or \r\n in the text so that I can send this one by one to the server. Do you know a quick way to do it? I'll do my own research if you don't have one.
Thanks
George
On Friday, 25 August 2017, 1:27, Daniel Imms<EMAIL_ADDRESS>wrote:

You mean \n or \r\n? Both should work as the text is filtered through this function: https://github.com/sourcelair/xterm.js/blob/6e9d60d76d6cfb3d279f9e58499ba62ca6af479c/src/handlers/Clipboard.ts#L23—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.


Class does not exist

I'm getting this error with either 5.4 or 5.5 Laravel versions:
"Class pragmarx.google2fa does not exist"
Already tried composer update... Any ideia?

For Laravel integration you should be using https://github.com/antonioribeiro/google2fa-laravel instead of this repo.


Allow txn handler to be set from ssn on same hook

Regression due to recent normalization of hook processing.  If a session handler sets a transaction hook on the same hook point, the transaction handler will no longer get executed.  This scenario is illustrated by the hook_add_plugin.cc test plugin in this PR.
This used to work and is causing problems with some of our customer's plugins.
The problem is that an intermediate data structure was not correctly updated if the transaction's continuation list for the hook point was empty at the start of processing the hook point.
Adding a test to catch regressions here in the future.

@shinrich What change caused the regression?

Looks like it is from this PR: https://github.com/apache/trafficserver/pull/5077

Pushed new version to add license header to test plugin and clean things up based on @bryancall's commemts.

Cherry-picked to v9.0.x branch.


Handle NULL pointer exception while getting ElementInfo list

Handle NULL pointer exception while getting ElementInfo list from IUIAutomationElement* array (fix #379).

Codecov Report

Merging #381 into master will decrease coverage by 0.01%.
The diff coverage is 71.42%.

@@            Coverage Diff            @@
##           master    #381      +/-   ##
=========================================
- Coverage   94.52%   94.5%   -0.02%
=========================================
  Files          49      49
  Lines       19765   19771       +6
=========================================
+ Hits        18682   18684       +2
- Misses       1083    1087       +4


Reading compressed inventory from stdin results in decoding error

Brief description
Trying to display an inventory in the terminal, by curling it and piping it to sphobjinv convert:
curl https://pip.pypa.io/en/latest/objects.inv -o- | sphobjinv convert plain - -

Expected behavior
sphobjinv should read stdin, try to decode it, but catch exceptions and consider it compressed.
Actual behavior
sphobjinv doesn't catch the UnicodeDecodeError.
To reproduce
% curl https://pip.pypa.io/en/latest/objects.inv -o- | sphobjinv convert plain - -
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100  9485  100  9485    0     0  14280      0 --:--:-- --:--:-- --:--:-- 14306
Traceback (most recent call last):
  File "/home/pawamoy/.local/bin/sphobjinv", line 8, in <module>
    sys.exit(main())
  File "/home/pawamoy/.local/pipx/venvs/sphobjinv/lib/python3.10/site-packages/sphobjinv/cli/core.py", line 88, in main
    inv = inv_stdin(params)
  File "/home/pawamoy/.local/pipx/venvs/sphobjinv/lib/python3.10/site-packages/sphobjinv/cli/load.py", line 245, in inv_stdin
    data = sys.stdin.read()
  File "/home/pawamoy/.basher-packages/pyenv/pyenv/versions/3.10.8/lib/python3.10/codecs.py", line 322, in decode
    (result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xdd in position 119: invalid continuation byte

System information

Device: Computer?
OS: ArchLabs

Python environment
Python
3.11
Libraries
% pipx runpip sphobjinv freeze
attrs==22.2.0
certifi==2022.12.7
jsonschema==4.17.3
pyrsistent==0.19.3
sphobjinv==2.3.1

Additional context
Passing a temporary file descriptor to the command does not work either:
% sphobjinv convert plain <(curl -s https://pip.pypa.io/en/latest/objects.inv -o-) -

Error while parsing input file path:
FileNotFoundError: Indicated path is not a valid file

I looked into this a bit when I implemented the stdin stream capability, and something about running a compressed inventory through a pipe appears to mangle it---no matter what I tried, I couldn't get it to recognize correctly.
I'm guessing it has something to do with character encoding, as AFAIK the *nix piping system expects to be passing plaintext, not bytestreams. There could be an env variable out there you can set to change the encoding behavior (a "raw" pipe mode?), in which case it might be workable.
I didn't want to put the work in to figure that out until I was sure it wasn't YAGNI. Which--now, it's not. 😬
If you have any thoughts about things to try, please let me know!

Although this makes me think I'm wrong about this, in which case I'm not sure what went wrong.
Maybe at the *nix/Python interface....

Hm. The feature is already there for pulling inventories directly from URLs.
Did you try:
% sphobjinv convert plain -u https://pip.pypa.io/en/latest/objects.inv -

?

Ah, my bad, I glanced at the issues and the usage (-h) but didn't understand this was possible. Well that's exactly what I needed haha, thanks!

Aha, I need to add to the base help message (sphobjinv -h) to indicate that there's additional help for each subcommand (sphobjinv convert -h and sphobjinv suggest -h).

It's already the case :smile:
% sphobjinv -h
usage: sphobjinv [-h] [-v] {convert,suggest} ...

Format conversion for and introspection of intersphinx 'objects.inv' files.

options:
  -h, --help         show this help message and exit
  -v, --version      Print package version & other info

Subcommands:
  {convert,suggest}  Execution mode. Type 'sphobjinv [mode] -h' for more information on available options. Mode names can be abbreviated to their first two letters.
    convert (co)     Convert intersphinx inventory to zlib-compressed, plaintext, or JSON formats.
    suggest (su)     Fuzzy-search intersphinx inventory for desired object(s).

I had just missed the -u option in the help for the convert subcommand :slightly_smiling_face:

Though -- since you missed it, probably means I should promote that message about subcommand help to someplace more prominent in the overall help message.

I generally print something like this myself:
usage: griffe [GLOBAL_OPTS...] COMMAND [COMMAND_OPTS...]

Signatures for entire Python programs.

Global options:
  -h, --help  Show this help message and exit. Commands also accept the -h/--help option.

Commands:
  COMMAND
    dump      Load package-signatures and dump them as JSON.
    check     Check for API breakages or possible improvements.

Cool - thanks for the suggestion!

Closing since the original issue was resolved, and the help message change spun into #282.


Fix PathFollow3D updating on unit_offset 0

Fixes #35511

Is there a similar issue in 2D?

No, delta_offset does not exist in 2D. Also I tested to make sure and it's fine.

Thanks!

Cherry-picked for 3.2.4.


[WIP] Add numpy windowing functions support (np.bartlett, np.hamming, np.blackman, np.hanning, np.kaiser)

Adding support for np.bartlett to address missing numpy features mentioned in https://github.com/numba/numba/issues/4074.
I will also try to tackle all of the windowing functions since they are quite similar.

@stuartarchibald I think this is ready for an initial review. I've added the implementations for all of the windowing functions, with associated tests and changes to the docs, but since this is my first code contribution to numba, any feedback would be most appreciated. They are all pretty straightforward translations of the numpy source code, except for np.kaiser, which I re-wrote to avoid unifying type errors that seemed baked into the numpy source.

Also, looks like there's some floating point problems on 32bit platforms https://travis-ci.org/numba/numba/jobs/530906188#L3993, perhaps check np.float_ usage and look at the type information for the functions (env var NUMBA_DEBUG_TYPEINFER=1).

@stuartarchibald -- Thank you for the review. I have done the following:

Added comment about numpy version and hash that code was translated from
combined all implementations except np.kaiser into a generator.
combined tests
added integer typing check in implementation and corresponding test
cleaned up spacing around operators and line length to conform to stylistic preference of numba
replaced the code to trick numba into accepting an empty list with an empty tuple as suggested
Removed first 0 arg from np.arange since it can be left out and taken to be implicit.

What still needs to be done:

implement np.i0. I took a shot at this (left the code in the commit) based on np.sinc, but it is more complicated and I don't completely understand how to do this. Scalar arguments return an array and the function raises if it cannot safely cast the input array.

I was not immediately able to figure out what was going on with the floating point comparison for np.kaiser. I need to look into this further.

@synapticarbors thanks for making those changes WRT review, on initial inspection the clean-up patch looks good.
With regards to np.i0, apologies, I should have mentioned that this function can just be an @overload too I think. What you have tried using in the patches above is a low level API, the method that used to be used for adding functionality to Numba, it's useful but somewhat challenging! @overload was invented as an extension API but it turned out to be so useful that we try and write as much of the Numba internals with it as possible!
I think you should be able to do:
@overload(np.i0)
def np_i0(x):
  # you may need to dispatch to different impls based on type, this is fine...
  # define a few impls here and write branches in the typing scope as needed
  if isinstance(x, some_type):
    def impl(x):
      # the impl that was derived from cephes as per NumPy for "some_type"
    return the_result
  if isinstance(x, some_other_type):
    def impl(x):
      # the impl that was derived from cephes as per NumPy for "some_other_type"
    return the_result
  return impl

Once this is working we can take a look at the 32bit floating point issue with source code that is less challenging to manipulate!
Hope this helps, and thanks for your contributions :)

@stuartarchibald it looks like np.i0 uses x.squeeze(), which does not appear to be supported in nopython mode. Is there a sensible workaround for this? For the use of np.i0 in np.kaiser, there's no need to worry about squeezing the array since it's always 1d, but obviously to provide a version of np.i0 for general use, this behavior is important.
Should we punt for now on np.i0 until np.squeeze has been implemented in nopython mode?

@synapticarbors I expect type based dispatch can be used to emulate squeeze, however, in the interests of getting this PR merged I agree with punting it for now.

@synapticarbors thanks for the update! I think this is just failing due to issues on 32bit platforms now, are you happy to look at this (if not, it's no problem, the Numba farm has all these combinations of machines set up!)?

@stuartarchibald I set up a Linux VM last night to run a 32-bit version, since I'm on MacOS and it didn't look like one was available for it natively. I'm hoping I can get that configured today and reproduce the failed tests. If not, is there a recommended way to test 32-bit on MacOS? I looked briefly at Docker, but I'm not that familiar with it so wasn't sure what the best route was there.

@synapticarbors thanks for working on how to reproduce this! I'm not sure about OSX, perhaps VirtualBox? @seibert any ideas? It looks like it's just a floating point problem, but it would be nice to be able to determine if there's something fundamentally wrong where e.g. more extreme inputs would exacerbate the error, or if it is just floating point wobble.

If it is a precision issue that only manifests on 32-bit, then that sounds like some effect of using the x87 instructions (which have 80-bit precision for intermediate values until you flush to memory) vs. SSE instructions (which have 64-bit precision all the time).

To be more specific: If for some reason gcc and LLVM are sequencing things differently, and one is running out of x87 registers and having to evict values at a different point than the other, that could do this.

The difference is 1 ulp, so I think it would be reasonable to loosen up the precision requirement, at least on 32-bit Linux.

Good point, the error is at 1ULP. self.assertPreciseEqual() has a ulps kwarg, perhaps set that to 2 if numba.config.IS_32BITS is True?

Thanks for the suggestion. I just pushed a commit to use a different ulps value for 32-bit. Hopefully that will work.

Unfortunately still failing with ulps=2 for 32-bit:
0.036710892271286669 !=
0.036710892271286676

Ah, I see what is happening.  assertPreciseEqual() is a little counterintuitive (though technically documented).  The default precision (the prec argument) is exact, which ignores ulps and looks for exact match.  What you actually need is prec="double", and then no ulps argument change is required.  Example:
In [57]: t.assertPreciseEqual(0.036710892271286669, 0.036710892271286676, prec='exact', ulps=2)
---------------------------------------------------------------------------
AssertionError                            Traceback (most recent call last)
<ipython-input-57-cb0c14bc8896> in <module>()
----> 1 t.assertPreciseEqual(0.036710892271286669, 0.036710892271286676, prec='exact', ulps=2)

/Users/sseibert/anaconda/lib/python2.7/site-packages/numba/tests/support.pyc in assertPreciseEqual(self, first, second, prec, ulps, msg, ignore_sign_on_zero, abs_tol)
    263             return
    264         # Decorate the failure message with more information
--> 265         self.fail("when comparing %s and %s: %s" % (first, second, failure_msg))
    266
    267     def _assertPreciseEqual(self, first, second, prec='exact', ulps=1,

/Users/sseibert/anaconda/lib/python2.7/unittest/case.pyc in fail(self, msg)
    408     def fail(self, msg=None):
    409         """Fail immediately, with the given message."""
--> 410         raise self.failureException(msg)
    411
    412     def assertFalse(self, expr, msg=None):

AssertionError: when comparing 0.0367108922713 and 0.0367108922713: 0.03671089227128667 != 0.036710892271286676

In [58]: t.assertPreciseEqual(0.036710892271286669, 0.036710892271286676, prec='double')

In [59]:

Thanks for the clarification. Should I be using exact in the other tests and double in the one that is causing issues, or should I be uniformly be using double for theses tests? I'm not sure what the standard is.

ah, thanks @seibert :) totally forgot about that!

Exact is nice and unambiguous, but I think unrealistic for some floating point algorithms, especially when platforms have unpredictable roundoff error like x87 instructions on x86.  I would say it is best to use double on 32-bit x86, and as needed on 64-bit if implementations need to diverge.

So, a combination of prec="double" and increasing the ulps  seems to have fixed the failures I was seeing before, but now there are new failures that I assuming are unrelated, and likely transient.

I have restarted the CI runs.  I think you may have hit some temporary anaconda.org downtime.

Thanks @seibert. It looks like everything ran without error this time. Is this ready to merge now? If so, can this be slipped into the 0.44.0 release?

One failure on Travis -- another network connectivity issue:
CondaHTTPError: HTTP 000 CONNECTION FAILED for url <https://conda.anaconda.org/numba/linux-64/repodata.json>

@synapticarbors This looks great, marking for merge. Thanks for all your efforts with this and congratulations on your first contribution to Numba! :)

Thank you both for all of your help getting this one together. Hopefully I can work on a few more of these soon.
Also technically this is my first code contribution to numba. I had a doc edit that was merged a long time ago (https://github.com/numba/numba/commit/bc16d7788145a893dca19061ce5b30a699e49d9c), but this definitely feels more satisfying :-)

@synapticarbors no problem at all, we look forward to receiving more PRs! Also, you are indeed correct, s/contribution/code contribution/:)


An example required for RDP URI scheme username attribute

Running open 'rdp://full%20address=s:<IP_ADDRESS>&username=s:MYDOMAIN\my.name' fails on OS X:

The URL is not valid. Notify your network administrator.

What is the correct syntax to use enter domain and username with RDP URI scheme?

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

ID: 4cd04fe0-b87d-9c35-638d-8d9971746097
Version Independent ID: be3bf30a-de46-2b88-f829-f729ec49b0d8
Content: Remote Desktop URI scheme
Content Source: WindowsServerDocs/remote/remote-desktop-services/clients/remote-desktop-uri.md
Product: windows-server
Technology: remote-desktop-services
GitHub Login: @Heidilohr
Microsoft Alias: helohr

We hugely appreciate your contribution, feedback, and support to our technical documentation.
We’ve phased out GitHub Issues on this repository as the feedback mechanism for content and have replaced it with a new feedback system. For more information see, Content User Feedback. As part of this rollout, we are migrating your issue where our team will use your comments to improve the documentation experience. Unfortunately, this does mean you won't be able to access this issue after the migration is complete.
All issues will be migrated by Thursday 29th August 2024.
Once again, thank you for your valuable feedback, we hope you’ll continue to contribute using our new feedback system.


merge package template from Kronos-Tools/npm-package-template-minimal

package.json

chore(engines): update<EMAIL_ADDRESS>from template

Codecov Report

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

@@           Coverage Diff           @@
##           master     #122   +/-   ##
=======================================
  Coverage   83.16%   83.16%
=======================================
  Files          11       11
  Lines         594      594
  Branches      181      181
=======================================
  Hits          494      494
  Misses        100      100

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 2140549...1ded1cc. Read the comment docs.


cargo-watch seems to search the debug executable in the wrong folder when trying to execute a test source code

I was watching a web server application tutorial using axum from here.
After installing cargo-watch by using cargo install cargo-watch,
the command cargo watch -q -c -w src/ -x run is issued, and it works by compiling and running the code.
Later, the command cargo watch -q -c -w tests/ -x "test quick_dev -- --nocapture" is used from other terminal, an exception occurred.It says:
 note: LINK : fatal error LNK1104: cannot open file 'C:\Users\<username>\Desktop\rust_projects\http_interceptor\target\debug\deps\http_interceptor.exe'
The exception message in the terminal seems to suggest that it cannot find the debug executable. It says that it has link error.
Apparently, cargo-watch try to find the debug executable in the
target/debug/deps, whereas the executable is in the target/debug directory.
So, what could be done to solve this issue?

It seems that in the target/debug/deps folder there is in fact the executable program named http_interceptor.exe. When i tried to double click it it can run like usual, but cannot be run from the terminal using the above specific command.

found the solution here.
I need to switch the runtime from 32-bit into 64-bit i guess.
'rustup default stable-x86_64-pc-windows-gnu'.
And it kind of work


🐛 Fixed improper time setting in Analytics

Description
The time setting of past 3 days, yesterday and this month returns 0 clicks because of certain miscalculation in Analytics.svelte file
Before:

After:

Type of change

[x] Bug fix (non-breaking change which fixes an issue)

How Has This Been Tested?
Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration

[x] Tested using the Front-end Drop down menu, checked every single option

Checklist:

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[x] My changes generate no new warnings
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] New and existing unit tests pass locally with my changes
[ ] Any dependent changes have been merged and published in downstream modules

WARNING
Please check package.json

A new flag has been added to the dev script, called --openssl-legacy-provider
I did this as I use node v20 and from a stackoverflow, I found out this was a solution

@alvinbengeorge why don't you use nvm to go back to a particular version of node?

WARNING
Please check package.json  A new flag has been added to the dev script, called --openssl-legacy-provider I did this as I use node v20 and from a stackoverflow, I found out this was a solution

REMOVED THE FLAG


add favorite feature

It is recommended that the brother add a favorite feature and add some common options to the favorite, lactation user name, email, password, etc.

You can pin items using Option+P.


xenomai can used by c api ?

Required information
Operating system:
xenomai
version: 5.15.51
Compiler version:
gcc version 10.3.0
Eclipse iceoryx version:
v2.0.2
Observed result or behaviour:
/home/conan/w/prod/BuildSingleReference/.conan/data/iceoryx/2.0.2///build/53d5f0e565104166f721ce6bd8d7cf8bc275295a/source_subfolder/iceoryx_hoofs/source/posix_wrapper/thread.cpp:27 { void iox::posix::setThreadName(pthread_t, const ThreadName_t&) -> iox_pthread_setname_np }  :::  [ 0 ]  Success
This should never happen! Success
Condition: false && "internal logic error" in iox::posix::setThreadName(pthread_t, const ThreadName_t&)::<lambda(auto:1&)> [with auto:1 = iox::posix::PosixCallResult] is violated. (/home/conan/w/prod/BuildSingleReference/.conan/data/iceoryx/2.0.2///build/53d5f0e565104166f721ce6bd8d7cf8bc275295a/source_subfolder/iceoryx_hoofs/source/posix_wrapper/thread.cpp:31)
2023-04-24 15:29:58.603 [ Error ]: ICEORYX error! EXPECTS_ENSURES_FAILED
terminate called without an active exception
Conditions where it occurred / Performed steps:
Demo
panic

@guojun08512 I do not know the OS xenomai, is this an android variant?
I think the problem lies in the non-posix (np) pthread_setname_np. One easy way to fix this is to implement this function as a stub on your platform and just return 0 - for success.
But this has the disadvantage that the threads name is not set which can become a pain during debugging - nevertheless the system should be running.
If the platform where you are on supports to set names for threads you could also use inside the platform abstraction the native call and model the pthread_setname_np behavior with the native API. See this: https://man7.org/linux/man-pages/man3/pthread_setname_np.3.html

xenomai it's linux realtime os
@elfenpiff  thanks, I'll give it a try

@elfenpiff I solved the problem with dynamic linking.
Thank you for the insight.


Cloudwatch logs plugin does not work for default AWS Log configuration

EKS recommends using fluentD -> cloudwatch for monitoring container logs, as described here
https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Container-Insights-setup-logs.html
Flyte has a logs plugin for fluentD, that create log links to cloudwatch. But, these log links do not work with EKS out ouf the box.
following the EKS recommended fluentD setup has logs in the format
<container_name>.
Thus the format should be configurable in the log plugin

We will work on this in 0.5.0

Done

Done


Throttling no returns 'Retry-After' in response header

Laravel Version: 8.5.0
PHP Version: 7.4
Database Driver & Version: SQL Server 14

Description:
When the throttle limit has been reached with custom response Laravel no longer returns a 'Retry-After' header element in the response.

Heya, thanks for reporting.
I'll need more info and/or code to debug this further. Please post relevant code like models, jobs, commands, notifications, events, listeners, controller methods, routes, etc. You may use https://paste.laravel.io to post larger snippets or just reply with shorter code snippets.
Thanks!

ok... I tried to retrieve remaining time from the RateLimiter with some other ways but I couldn't... and also because of my custom response Retry-After header disappeared.
You can see my RouteServiceProvider.php at below (provider file which is in app\providers folder). On "api" named rate limiter return retry-after info (remaining seconds to retry) in header but "onepermin" named rate limiter which have custom response, doesn't return any retry-after data in header or anywhere else (I couldn't found it).
##################################################################
`<?php
namespace App\Providers;
use Illuminate\Cache\RateLimiting\Limit;
use Illuminate\Foundation\Support\Providers\RouteServiceProvider as ServiceProvider;
use Illuminate\Http\Request;
use Illuminate\Routing\Middleware\ThrottleRequests;
use Illuminate\Support\Facades\RateLimiter;
use Illuminate\Support\Facades\Route;
class RouteServiceProvider extends ServiceProvider
{
/**
* The path to the "home" route for your application.
*
* This is used by Laravel authentication to redirect users after login.
*
* @var string
*/
public const HOME = '/home';
/**
 * The controller namespace for the application.
 *
 * When present, controller route declarations will automatically be prefixed with this namespace.
 *
 * @var string|null
 */
 protected $namespace = 'App\\Http\\Controllers';

/**
 * Define your route model bindings, pattern filters, etc.
 *
 * @return void
 */
public function boot()
{
    $this->configureRateLimiting();

    $this->routes(function () {
        Route::prefix('api')
            ->middleware('api')
            ->namespace($this->namespace)
            ->group(base_path('routes/api.php'));

        Route::middleware('web')
            ->namespace($this->namespace)
            ->group(base_path('routes/web.php'));
    });
}

/**
 * Configure the rate limiters for the application.
 *
 * @return void
 */
protected function configureRateLimiting()
{
    RateLimiter::for('onepermin', function (Request $request)
        return [
            Limit::perMinute(1)->by($request->input('email'))->response(function ()  use ($request) {
                $key = $request->fingerprint();
                $secondsRemaining = RateLimiter::availableIn($key);
                return response()->json(['errors'=>['message'=> 'Too many request...', 'retryAfter'=> $secondsRemaining]], 429);
            })
        ];
    });

    RateLimiter::for('api', function (Request $request) {
        return Limit::perMinute(60);
    });
}

}`
#########################################################################################

@ondery
Try using this:

RateLimiter::for('onepermin', function ($request) {
    return Limit::perMinute(1)
        ->by($request->input('email'))
        ->response(function ($request, $headers) {
            return new JsonResponse([
                'errors' => [
                    'message' => 'Too many request...',
                    'retryAfter' => $headers['Retry-After'] ?? 60,
                ],
            ], 429, $headers);
        });
});

As the Limiter was keyed by email this call in your example will return the wrong limit info:
$key = $request->fingerprint();
$secondsRemaining = RateLimiter::availableIn($key);

Also I would remove the ->by($request->input('email')) from your limiter altogether. Laravel's RateLimiter will generate the correct limiter key by each client (browser).
Note in my sample I make use of the $headers parameters that are already passed to the callback. Also if you need any $request info in the callback you can use the instance passed as the callback's first parameter.

I have to limit with an e-mail not by browser; because, if you think that the client clicked the password reset button (to receive an reset email) within a few minutes, first from his desktop and then from his mobile phone (or another device), it will not work as I want....
On the other hand, $headers parameter that are already passed to the callback works good. Thank you...

You're welcome =)

->response(function ($request, $headers) {
            return new JsonResponse([
                'errors' => [
                    'message' => 'Too many request...',
                    'retryAfter' => $headers['Retry-After'] ?? 60,
                ],
            ], 429, $headers);
        });

Why isn't that the default behavior? Why doesn't retry-after get sent if it's already in that variable?

@Stevemoretz it is already sent, as a response header.
If you look at the first code reported, the user was creating a custom response to have the "retry after" also in their response body, but wasn't sending the generated headers on their response.
I am referring to this piece of code:
Limit::perMinute(1)->by($request->input('email'))->response(function ()  use ($request) {
    $key = $request->fingerprint();
    $secondsRemaining = RateLimiter::availableIn($key);
    return response()->json(['errors'=>['message'=> 'Too many request...', 'retryAfter'=> $secondsRemaining]], 429);
})

Note they return a new response()->json() this response won't have any custom headers automatically added.
In summary:

Regular rate limiter response does contain the Retry-After header with the expected value
If a developer wants to customize their response, it is up to them to add any needed headers to this custom response

@Stevemoretz it is already sent, as a response header.
If you look at the first code reported, the user was creating a custom response to have the "retry after" also in their response body, but wasn't sending the generated headers on their response.
I am referring to this piece of code:
Limit::perMinute(1)->by($request->input('email'))->response(function ()  use ($request) {
    $key = $request->fingerprint();
    $secondsRemaining = RateLimiter::availableIn($key);
    return response()->json(['errors'=>['message'=> 'Too many request...', 'retryAfter'=> $secondsRemaining]], 429);
})

Note they return a new response()->json() this response won't have any custom headers automatically added.
In summary:

Regular rate limiter response does contain the Retry-After header with the expected value
If a developer wants to customize their response, it is up to them to add any needed headers to this custom response

Thanks so much for explaining this! I am using Laravel Lighthouse Graphql and it wasn't returning the header itself, weirdly enough using the snippet you provided add the headers I was wondering what was happening there, it's probably just a bug in lighthouse.

No worries, you can point this thread out to them, if they are missing re-adding the headers on their response Have a nice day =)

@rodrigopedra  your suggestion helped a lot and thanks for sharing. Just quick update on my implementation if someone needs or looking for similar.
I am using Laravel 10 and here is how I implemented this.
Add this to your app\Provides\RouteServiceProvider.php  in your boot functio which will look like below. I've set limit to 3 attempts per hour. I am using Mobile Device ID as a key and fallback to IP.

    public function boot(): void
    {

        RateLimiter::for('my-example', function (Request $request) {
            // Device ID (mobile) sent via API endpoint
            $deviceId = $request->device_id ?? $request->ip();
            return Limit::perHour(3)->by($deviceId)
            ->response(function ($request, $headers) {
                return response()->json([
                        'message' => 'You have tried too many times. Try again later.',
                        'status' => 'error',
                        'status_code' => 429,
                        'retryAfter' => $headers['Retry-After'] ?? 60,
                ], 429, $headers);
            });
        });

        // ...
    }

Usage
Define your route in api.php or web.php what ever you use.

Route::post('/your-route', [\App\Http\Controllers\Api\YourController::class, 'test-class'])->middleware(['throttle:my-example']);


Bring back the fallback when run without Docker

Could you please bring back support for running without Docker & docker-compose removed in https://github.com/AndreLouisCaron/pytest-docker/commit/37901fba65759b1d4c7d78525b9590a6b96ce5a6? I was actually using that when running integration tests and it has significant value to me.

The new version doesn't seem to be released yet. I was the one who proposed to delete that to simplify the code (which I want to refactor and extend later), because me and @AndreLouisCaron didn't see the use for this anymore. Also, I've never used that and I couldn't even figure why would anyone want to use this project if they don't have Docker... So can you explain your usecase / process? If it's still valid I could do a PR bringing it back and maybe describing it better.

Sure. I was using this feature when running tests (which involve running docker-compose using your plugin) on a CI server that doesn't have anything installed besides Docker toolchain. That said, my objective is to execute those tests themselves inside a Docker container.
Even though you can have a docker-in-docker setup, it is rather involved to do and complicated things enormously. What I am doing instead is to package my application inside a Docker container using a docker-compose.yml and just override its entrypoint to call pytest in place of the normal main application file. But of course, since it now runs inside a Docker container without docker-compose installed inside, your plugin will complain. Allowing it to fallback and manually overriding hostname and port of the service (which does not change since it's being addressed within the docker-compose network) sorts out the issue.
I understand what I've just described might seem rather complicated, but I strongly believe it's a valid use case. I can prepare a simple example which might clarify might approach further.

Sure, but the high-level scenario is pretty simple: to be able to use pytest calling docker-compose, while the tests itself need to run inside a container.

@butla I am curious as to what approach you'd take to achieve the above.

@petr-k I'm fiddling with a docker-in-docker approach with the -v /var/run/docker.sock:/var/run/docker.sock approach from here and a CI image extending the application's image. It's not working for me at the moment, but I'll report my findings. Afterwards we may argue about what's the more elegant approach :D
Because from what I understand if you're using the fallback you need to [explicitly map the port] (https://github.com/AndreLouisCaron/pytest-docker/commit/37901fba65759b1d4c7d78525b9590a6b96ce5a6#diff-77a03ca9067c4a928e83a4636a92280dL63), e.g. 8080:8080 in docker-compose.yml, right? That's something I'm avoiding in my setups, so that I can have multiple Compose runs at the same time.

See https://github.com/petr-k/pytest-docker-compose-ci
Please note that there's no actual code being tested, just some example "tests" that call PostgreSQL.

OK, I see why the fallback is still valid. @AndreLouisCaron I think you should revert the commit in the end :) But it's good that we uncovered what is the exact usecase. I hope to document that better in the future and make the code more clear about this.
Still, having to run docker-compose yourself in addition to running pytest-docker seems clunky. For the environments that do support mounting docker.sock (@petr-k where you can't do that, BTW?) we could make it work automatically by:

detecting that we are running in docker
if in docker connect the current container to compose's network
if in docker, return the port like in the fallback method

@petr-k Why does adding the Docker and Compose in the image suck? From what I checked on python-alpine that makes the image go from 130 to 160 MBs, which isn't that terrible, I think. You are building an additional image for tests anyway.
With the approach I'd like the Dockerfile for the test image would look more or less like this:
FROM original_app_production_image

RUN apk add docker
RUN pip install docker-compose==1.21.2

# Dependencies of our test code, such as pytest and pytest-docker.
RUN pipenv sync --dev

ADD tests /app/tests

CMD ["pipenv", "run", "pytest", "-v", "tests/"]

Running the tests would look like this:
docker build -f ci/Dockerfile -t app_ci_tests .
docker run --rm -v /var/run/docker.sock:/var/run/docker.sock app_ci_tests

But yeah, that's something for the future.

Well, let's agree that clunkiness and t is in the eyes of the beholder ;) I like the elegance of leveraging docker-compose's --exit-code-from.
I can only further clarify why I believe that approach is superior:

It uses a single Dockerfile for both the app and its tests (albeit slightly adjusted to accommodate the testing scenario).
Installing docker and docker-compose is not a matter of size, but convenience. You might, e.g., have an image based on an OS distribution where installing it is not as straightforward as your example.

It also has downsides I can immediately see:

You need to know how the test service is named in docker-compose.yml (e.g. app) in order to point --exit-code-from parameter to that service.
There is an additional compose file.
There needs to be special logic in the tests to use the correct hostname and port of test-time services.

So yeah, to each his own I guess. I think the idea of autodetecting Docker, or having some kind of a simple switch is worth exploring. That said, this issue is just a suggestion. I understand that you don't want to support code you don't see use for. In that case, I'd have to move elsewhere or roll my own library, which I think would unnecessarily fragment the landscape.

Let me say I'm very glad we've had this discussion, though! It's interesting to see how folks are tackling this (I'd say rather advanced) issue.
 So I feel that you'd have to introduce some explicit support in your plugin to allow this scenario anyway.

No, dude, what I said is that I see the validity of you're way, and I told the maintainer to revert my changes :) You made a good point and I want to leave the fallback in. I just want to make it more uderstandable in the code in the future AND leave another option for people who wanna go my way. But they are both valid and have their tradeoffs. I think it'll be good to list both of those options in the documentation for people to use.
That is, after I have the chance to work on this project and finally get to refactoring/upgrading the core :) I hope I'll have more time in my upcoming job to polish, extend, and document this project :)
And not wanting to fragment the community, so that everyone has a great, versatile, shared, tool is precisely why I did so many maintenance commits here, even though my company used my fork of the project :) So I'm all with you.
And yeah, people need to have more public discussions about their advanced testing strategies. There's soo few good writeups about doing that in the post-lxc era :)


[rv_dm,rtl] The en_ifetch signal is unnecessary

Description
This signal is used to control whether the i_tlul_adapter_reg TL adapter will allow fetch accesses and it is true exactly when lc_hw_debug_en_i == On.
But that adapter is connected to the "mem" TL interface (mem_tl_d_i and mem_tl_d_o), which is gated by u_tlul_lc_gate_rom, and that gate will drop all TL accesses if lc_hw_debug_en_i != On.
As such, I don't believe it's possible to have a access on the TL adapter when en_ifetch is not true. This means we can drop the signal (and wire the en_ifetch_i port of i_tlul_adapter_reg to 1).

Well, that was silly of me... I hadn't realised that the two signals are governed by different copies of lc_hw_debug_en_i:
  assign en_ifetch = mubi4_bool_to_mubi(lc_tx_test_true_strict(lc_hw_debug_en_gated[LcEnFetch]));

and
  tlul_lc_gate #(
    .NumGatesPerDirection(2)
  ) u_tlul_lc_gate_rom (
// ...
    .lc_en_i (lc_hw_debug_en_gated[LcEnRom]),

So the idea is that an attacker that manages to fault one of the multi-bit signals still won't manage to get full access.
Honestly, I'm not sure it matters that much. Even after faulting both of them, the attacker would still need to convince Ibex to try to execute from the debug rom (which would hopefully be useful in some way). But at least now I understand the logic!


14% speed-up by parallelizing multi-head attention

Trades space (for storing att) for performance
Benchmark on my (relatively old) machine (toks/sec):

Try #
Baseline
Parallelized multi-head attention

1
211.6
261.5

2
210.5
218.6

3
233.2
263.6

4
218.4
263.4

5
252.2
272.3

---
---
---

ave.
225.2
255.9

Speed-up of around 14%

Can also confirm @leloykun bench results.

very nice, ty!


fix: corrected gamut-system dependency in gamut-illustrations

Overview

Bumped gamut-system dependency in gamut-illustrations to the latest, 0.2.1.

Pretty sure this is some kind of odd timing issue, where the automation didn't bump the system version as needed.

📬Published Alpha Packages<EMAIL_ADDRESS>
🚀 Styleguide deploy preview ready!https://5fd98801f09e8434f2b13bc3--gamut-preview.netlify.appDeploy Logs