Troubles if octant launched behind reverse-proxy (nginx)

We trying to share one octant installation across the team. But, if octant launched behind nginx, it not works and shows a white screen instead of the main area (namespace selector and left menu shows correctly).

Nginx config:
    location / {
        proxy_pass http://localhost:7777;
        proxy_redirect off;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Server $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_read_timeout 300s;
        proxy_send_timeout 300s;
        proxy_request_buffering off;
        proxy_buffering off;
    }

    location /api/v1/stream {
      proxy_pass http://localhost:7777;
      proxy_http_version 1.1;
      proxy_set_header Upgrade "websocket"; #prevent error websocket: the client is not using the websocket protocol: 'websocket' token not found in 'Upgrade'
      proxy_set_header Connection "keep-alive, Upgrade";
      proxy_set_header Origin "";
      proxy_request_buffering off;
      proxy_buffering off;
    }

If I go to http://localhost:7777 - all work correctly.
In logs I see this:
2019-10-24T08:53:31.186Z        DEBUG   api/content_manager.go:117      generating content      {"client-id": "78159ed4-f63b-11e9-9509-0242ac1b0002", "contentPath": "overview/namespace/default/workloads/pods/XXXXXX", "elapsed": "1.914502146s"}

Octant 0.8.0, Nginx 1.13.7

We have some environment variables that can be set to aid in getting Octant to work when being viewed from a location other than localhost, https://github.com/vmware-tanzu/octant/blob/master/docs/getting-started.md#environment-variables
You can get the listener address to all hosts, like <IP_ADDRESS> or you can add explicit allowed hosts.

Got 404 for this link and can't see the docs folder in the repo.

can you show your nginx config

We have some environment variables that can be set to aid in getting Octant to work when being viewed from a location other than localhost, https://github.com/vmware-tanzu/octant/blob/master/docs/getting-started.md#environment-variables
You can get the listener address to all hosts, like <IP_ADDRESS> or you can add explicit allowed hosts.

can you show your nginx config ?

Got 404 for this link and can't see the docs folder in the repo.

right url https://github.com/vmware-tanzu/octant/blob/master/site/docs/master/getting-started.md

@strangeman any luck getting things working with those environment variables?

No luck yet. Looks like something wrong with websockets, because all other
static and dynamic content (like list of namespaces) works well.
On Thu, 31 Oct 2019, 21:52 Wayne Witzel III<EMAIL_ADDRESS>wrote:

@strangeman https://github.com/strangeman any luck getting things
working with those environment variables?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/vmware-tanzu/octant/issues/365?email_source=notifications&email_token=AAIIROBVEFHUQ5NB7EXPUMLQRMSNVA5CNFSM4JEQ52B2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOECY32QI#issuecomment-548519233,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAIIROGTH3IEYW7OMCYS7E3QRMSNVANCNFSM4JEQ52BQ
.

We figured out this issue, had a problem with Nginx.

@strangeman do you figure it out? I have the same issue. Somehow websocket doesn't work .

@maxisam yeah, we just put "magic websocket settings for nginx" to the root location instead of /api/v1/stream

@strangeman do you figure it out? I have the same issue. Somehow websocket doesn't work .
/api/v1/stream' failed: Error during WebSocket handshake: Unexpected response code: 403
--solved by adding the following config.
  proxy_set_header Upgrade "websocket";
  proxy_set_header Connection "keep-alive, Upgrade";
  proxy_set_header Origin "";
  proxy_request_buffering off;
  proxy_buffering off;

You saved my day. Thanks

Anyone able to get this working through nginx-ingress ?
2020-09-12T06:24:57.395Z	ERROR	api/websocket_service.go:43	create websocket client	{"err": "websocket: the client is not using the websocket protocol: 'upgrade' token not found in 'Connection' header"}
github.com/vmware-tanzu/octant/internal/api.serveWebsocket
/__w/octant/octant/internal/api/websocket_service.go:43
github.com/vmware-tanzu/octant/internal/api.websocketService.func1
/__w/octant/octant/internal/api/websocket_service.go:35
net/http.HandlerFunc.ServeHTTP
/usr/local/go/src/net/http/server.go:2012
github.com/vmware-tanzu/octant/internal/api.rebindHandler.func1.1
/__w/octant/octant/internal/api/middleware.go:121
net/http.HandlerFunc.ServeHTTP
/usr/local/go/src/net/http/server.go:2012
github.com/gorilla/mux.(*Router).ServeHTTP
/go/pkg/mod/github.com/gorilla/mux@v1.7.4/mux.go:210
github.com/vmware-tanzu/octant/pkg/octant.noCacheRootMiddleware.func1
/__w/octant/octant/pkg/octant/options.go:85
net/http.HandlerFunc.ServeHTTP
/usr/local/go/src/net/http/server.go:2012
github.com/gorilla/mux.(*Router).ServeHTTP
/go/pkg/mod/github.com/gorilla/mux@v1.7.4/mux.go:210
github.com/gorilla/handlers.(*cors).ServeHTTP
/go/pkg/mod/github.com/gorilla/handlers@v1.4.2/cors.go:138
net/http.serverHandler.ServeHTTP
/usr/local/go/src/net/http/server.go:2807
net/http.(*conn).serve
/usr/local/go/src/net/http/server.go:1895
panic: runtime error: invalid memory address or nil pointer dereference
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x50 pc=0x17a1c62]
goroutine 208 [running]:
github.com/vmware-tanzu/octant/internal/api.(*WebsocketClient).readPump.func1(0x0)
/__w/octant/octant/internal/api/websocket_client.go:128 +0x22
panic(0x1a9c8a0, 0x45f3360)
/usr/local/go/src/runtime/panic.go:967 +0x15d
github.com/vmware-tanzu/octant/internal/api.(*WebsocketClient).readPump(0x0)
/__w/octant/octant/internal/api/websocket_client.go:140 +0x7f
created by github.com/vmware-tanzu/octant/internal/api.serveWebsocket
/__w/octant/octant/internal/api/websocket_service.go:47 +0xac

kind: Ingress
apiVersion: extensions/v1beta1
metadata:
  name: octant
  namespace: octant
  annotations:
    nginx.ingress.kubernetes.io/auth-url: "https://$host/oauth2/auth"
    nginx.ingress.kubernetes.io/auth-signin: "https://$host/oauth2/start?rd=$escaped_request_uri"
spec:
  rules:
    - host: octant.livspace.com
      http:
        paths:
          - path: /
            backend:
              serviceName: octant-svc
              servicePort: 3309
---
kind: Ingress
apiVersion: extensions/v1beta1
metadata:
  name: octant-stream
  namespace: octant
  annotations:
    nginx.ingress.kubernetes.io/auth-url: "https://$host/oauth2/auth"
    nginx.ingress.kubernetes.io/auth-signin: "https://$host/oauth2/start?rd=$escaped_request_uri"
    nginx.org/websocket-services: octant-svc
spec:
  rules:
    - host: octant.livspace.com
      http:
        paths:
          - path: /api/v1/stream
            backend:
              serviceName: octant-svc
              servicePort: 3309

Hi @strangeman,
Can you please share how did you configure Nginx as a reverse proxy for octant?
Thank you

Hi @sunnythepatel
    location / {
        proxy_pass http://localhost:OCTANT_PORT;
        proxy_set_header Upgrade "websocket";
        proxy_set_header Connection "keep-alive, Upgrade";
        proxy_http_version 1.1;
        proxy_redirect off;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Server $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_read_timeout 300s;
        proxy_send_timeout 300s;
    }

Hi @strangeman
Thanks for the help, It works but I have 2 questions

Do I need to use this below  thing?
location /api/v1/stream {
proxy_pass http://localhost:7777;
proxy_http_version 1.1;
proxy_set_header Upgrade "websocket"; #prevent error websocket: the client is not using the websocket protocol: 'websocket' token not found in 'Upgrade'
proxy_set_header Connection "keep-alive, Upgrade";
proxy_set_header Origin "";
proxy_request_buffering off;
proxy_buffering off;
}
I want to serve octant as /octant subpath Can you please let me know how I can do it?
Thank you

No, if you use / location, nginx will apply these rules for all subpaths
Simply change location / to location /octant, it should help I think

Hi @strangeman  here is the nginx.conf I am using
server {
    listen 80;
    server_name xx.com;
    return 301 https://$server_name$request_uri;
}

server {

    listen 443 ssl http2;
    server_name xx.com;

    ssl_certificate           /etc/ssl/private/xx.pem;
    ssl_certificate_key       /etc/ssl/private/xx.key;

    ssl_session_cache  builtin:1000  shared:SSL:10m;
    ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
    ssl_prefer_server_ciphers on;

    access_log            /var/log/nginx/access.log;

  location /octant/ {
        proxy_pass http://localhost:7777;
        proxy_redirect off;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Server $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_read_timeout 300s;
        proxy_send_timeout 300s;
        proxy_set_header Upgrade "websocket";
        proxy_set_header Connection "keep-alive, Upgrade";
        proxy_set_header Origin "";
        proxy_request_buffering off;
        proxy_buffering off;
    }

    location /api/v1/stream {
      proxy_pass http://localhost:7777;
      proxy_http_version 1.1;
      proxy_set_header Upgrade "websocket"; #prevent error websocket: the client is not using the websocket protocol: 'websocket' token not found in 'Upgrade'
      proxy_set_header Connection "keep-alive, Upgrade";
      proxy_set_header Origin "";
      proxy_request_buffering off;
      proxy_buffering off;
    }
  }

Seems you don't need last location block and don't need trailing slash in location /octant/ {
  location /octant {
        proxy_pass http://localhost:7777;
        proxy_redirect off;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Server $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_read_timeout 300s;
        proxy_send_timeout 300s;
        proxy_set_header Upgrade "websocket";
        proxy_set_header Connection "keep-alive, Upgrade";
        proxy_set_header Origin "";
        proxy_request_buffering off;
        proxy_buffering off;
    }

that should work correctly.

Hi @strangeman
If I removed the second part I tend to get connection lost with octant service and using /octant I thought seems to have worked but it doesn't work somehow
location /octant {
        proxy_pass http://localhost:7777;
        proxy_set_header Upgrade "websocket";
        proxy_set_header Connection "keep-alive, Upgrade";
        proxy_http_version 1.1;
        proxy_redirect off;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Server $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_read_timeout 300s;
        proxy_send_timeout 300s;
    }
    location /api/v1/stream {
      proxy_pass http://localhost:7777;
      proxy_http_version 1.1;
      proxy_set_header Upgrade "websocket"; #prevent error websocket: the client is not using the websocket protocol: 'websocket' token not found in 'Upgrade'
      proxy_set_header Connection "keep-alive, Upgrade";
      proxy_set_header Origin "";
      proxy_request_buffering off;
      proxy_buffering off;
    }

@sunnythepatel hmm, check the official Nginx documentation, may be you miss something
https://docs.nginx.com/nginx/admin-guide/web-server/reverse-proxy/
https://www.nginx.com/blog/websocket-nginx/
I don't use Octant for a while, so I cannot check it by myself

Thanks, @strangeman  but I checked the configuration is right not sure why it  doesn't work

Did anyone get octant work behind a proxy?


Minor pad wrapper updates

This introduces two small changes:

The polarity to the Xilinx IOBUF T port was wrong
The simulation model of the pad wrapper is changed to disallow simultaneous assertion of PD and PU attributes (it just defaults to high-Z in that case). This partially addresses #1831.

This should implement version 2. of @GregAC's proposal.

I am pulling this guy in in order to unblock the padctrl PR #2114 (@eunchan would like to branch out Bronze soon).
But we can discuss further on issue #1831 whether this needs to be amended. It does anyway not completely address the issue, since we still need to figure out how the actual pads are going to behave.

This does indeed match what I had envisioned


add test harness utilities

There are a few docker compose files and scripts that facility running the erebus test harness.

address with https://github.com/xtuml/munin/pull/244


Team update - Jul 12, 2023

This is a @Quansight-Labs/czi-a11y-grant team sync 🎉🎉🎉! This is a way for the Team Members to provide status reports on what they've been up to this week and request help and attention for things they are working on. This issue will be closed at the end of the day.
Copy and paste the template below, and answer questions as you wish!

Response Template
**Thanks I'd like to give 🙌**
- So-and-so helped me out a lot with foo...

**Updates from last week :heavy_check_mark:**
- I worked towards deliverable: <link-to-deliverable>

**Challenges I faced and things I'd like assistance with 🙏**
- I had a hard time figuring out ...

**My availability for next week**
- I'll be off on foo day...

**Important items for discussion 💬**
- I have a question about goal <link-to-goal>
- Can @foo give a comment on issue #NN ?
- I opened #NN for discussion, please chime in
- I need to discuss foo

:mag: Needs Triage
The Needs Triage issues require an initial assessment and labeling.
No issues need triage! 🎉
:dart: Project boards
Please make sure the boards reflect the current status of the project.
Jupyter a11y grant project

Thanks I'd like to give 🙌
Updates from last week :heavy_check_mark:

#184 Thanks to @gabalafou for the review! I've made replies and think I know what to do for most of the changes.
#178 I'm working on adding the JupyterLab 3.4.4 accessibility statement to the JupyterLab docs. Pre-review on this and/or if you have tips on how to check the docs are building, please let me know. I have a PR on my own JupyterLab fork for easier pre-review.

Challenges I faced and things I'd like assistance with 🙏

I don't have anything right now.

My availability for next week

I'll be here all week.

Important items for discussion 💬

I don't think I have anything right now.

Thanks I'd like to give 🙌

Thanks @steff456 for patience with my reviewing. It's going a little slowly.

Updates from last week :heavy_check_mark:

Almost done reviewing Stephannie's PRs listed in last week's update
Reviewed Isabela's user testing results

My availability for next week

I'll be off on Monday, July 17

Important items for discussion 💬

Came up in the Jupyter Accessibility call: Notebook 7 draft blog post


[BEAM-9634] Add natural language analysis transform

Thank you for your contribution! Follow this checklist to help us incorporate your contribution quickly and easily:

[ ] Choose reviewer(s) and mention them in a comment (R: @username).
[x] Format the pull request title like [BEAM-XXX] Fixes bug in ApproximateQuantiles, where you replace BEAM-XXX with the appropriate JIRA issue, if applicable. This will automatically link the pull request to the issue.
[ ] Update CHANGES.md with noteworthy changes.
[ ] If this contribution is large, please file an Apache Individual Contributor License Agreement.

See the Contributor Guide for more tips on how to make review process smoother.

R: @tysonjh

Thanks for the input! I decided to go with feature parity with Python - in that SDK we also don't output the elements analyzed. If you think it's something worth adding in general, we can pull Kamil into this conversation.

Thanks for the input! I decided to go with feature parity with Python - in that SDK we also don't output the elements analyzed. If you think it's something worth adding in general, we can pull Kamil into this conversation.

You're welcome. Going for parity is good, thanks for explaining.

@tysonjh I added an entry in CHANGES.md and squashed the commits. Please give your final approval and I'll merge this PR.
Thank you for the code review!


New store!

I have a new merchandise store.
https://www.designbyhumans.com/shop/codingtrain
We should change the link at the bottom to point to it. I also have this new image in case it's useful:
https://drive.google.com/file/d/18rwiHAi3ySDpw7N8H1G7kwQ4PigEd3Dz/view?usp=sharing

The new link shouldn't be a problem!
About the image: It might look weird on a white background since the shirts are just "cut off"... 🤔

Yes, I've asked the designer to help make something that fits with the site. More soon!
(Also, I'm doing a pass over the README, CONTRIBUTING, and language on the homepage. Pull request coming soon!)

How is this?

Yes! That's perfect!

This is now available for anyone to take on. The graphics are here under "promos":
https://drive.google.com/drive/folders/0B_AnqhTfj4qjQmhsOXcxazFGNkU?usp=sharing

Re-opening this as I don't think the image needs some tweaks to fit into the website design. Will be back to report when I have a new one!


Typos in deployment flow

Azure Data Studio Version: Stable/GA build

Steps to Reproduce:

Open Connection viewlet
Click "..." in Connection view
Click "New deployment"
Select "Azure SQL" tile

Issues in Azure SQL Database flow:

Tile titled "Azure SQL" should be titled "Azure SQL Database" and description should be "Create a SQL database, database server, or elastic pool in Azure."
Button in bottom right should say "Select" when "Single database" is selected to match experience for other similar selections
Sentence casing should be used:
- Dropdown options should be sentence cased, i.e. "Single database", "Elastic pool", "Database server"
- Wizard step 1 - title should be sentence cased - "Azure SQL Database - Azure account settings"
- Wizard step 1 - "Azure Account" should be "Azure account"; "Sign In" should be "Sign in"
Wizard step 2 - Firewall rule should be optional
Wizard step 2 - Add a description somewhere (bottom of page?) saying "Create a firewall rule for your local client IP in order to connect to your database through Azure Data Studio after creation is completed."

@ninarn I am closing this issue. I will use #12955 to track the issues in insiders.


Providing salt length input to RSA_SSA_PSS verifty message via PSA APIs

Suggested enhancement
I am trying to use PSA APIs to implement RSASSA_PSS singature verification.
I am referring to the documentation PSA Cryptography API 1.0
I am generating a signature with a salt length(slen) = hash_len.
When I try to verify this signature via RSASSA-PSS, I find that the salt length check is altogether skipped.
I am calling:
                status = psa_verify_message(key, PSA_ALG_RSA_PSS(PSA_ALG_SHA_256), p_PlainTextPtr_pU8,
                                            p_PlainTextLength_U32, p_SigPtr_pU8, p_SigLength_U32);

This internally sets some PSA elements and calls:
    return( mbedtls_rsa_rsassa_pss_verify_ext( ctx, f_rng, p_rng, mode,
                                       md_alg, hashlen, hash,
                                       mgf1_hash_id, MBEDTLS_RSA_SALT_LEN_ANY,
                                       sig ) );

When I read the documentation, in the description of PSA_ALG_RSA_PSS (macro), there is a generic statement:
The salt length is equal to the length of the hash.

Hence can we instead of avoiding the salt length check altogether, can we either accept salt length as an argument to a PSA API or at least check for salt_len=hash_len.
Justification
Mbed TLS needs this because RSASSA_PSS is slowing gaining pace and we would require a salt length check in PSA APIs so that we do not revert back to MBEDTLS only APIs like mbedtls_rsa_rsassa_pss_verify_ext.

We had an internal discussion on the PSS salt length and decided to go into a different direction for the salt length. The soon-to-be-published draft of version 1.0.2 of the PSA Crypto API specification states:

When creating a signature, the salt length is equal to the length of the hash, or the largest possible salt length for the algorithm and key size if that is smaller than the hash length.
When verifying a signature, any salt length permitted by the RSASSA-PSS signature algorithm is accepted.

We decided to go this route because the salt is not a critical security parameter in PSS: I'm not aware of any reason to prefer a salt other than a slightly tighter proof. PSA implementations need to be able to verify PSS signatures produced by a non-PSA implementation, and without salt. Another reason we went this route is that it matches the behavior of the reference implementation.
Why do you want to verify the salt length? Do you have a compliance requirement to reject other salt lengths?
If there is demand for it, we may add a variant of PSA_ALG_RSA_PSS for which verification requires a specific salt length (probably just the hash-size-up-to-what-fits, and not the flexibility of arbitrary salt lengths, because that's what gets used in practice).

I pushed a documentation fix (because in any case, it's a bug that the documentation and the behavior of Mbed TLS do not match): https://github.com/ARMmbed/mbedtls/pull/4949

Hello @gilles-peskine-arm
Thanks a lot for the prompt response and the quick fix of the documentation.
Why do you want to verify the salt length? Do you have a compliance requirement to reject other salt lengths?
Sadly we do have a compliance requirement to check if salt_length=hash_length. The test case for the requirements requests us to check if at least salt_len !=0. I do not have the expertise to know the background behind the compliance requirements.
If there is any possiblity of the salt check to be added as a variant of PSA_ALG_RSA_PSS please do keep me informed,
As this is not something which can be added immediately, I would temporarily change the rsa.c in my fork to adapt to this requirement.
To be precise i would change the function mbedtls_rsa_rsassa_pss_verify in rsa.c from:
    return( mbedtls_rsa_rsassa_pss_verify_ext( ctx, f_rng, p_rng, mode,
                                       md_alg, hashlen, hash,
                                       mgf1_hash_id, MBEDTLS_RSA_SALT_LEN_ANY,
                                       sig ) );

to:
    return( mbedtls_rsa_rsassa_pss_verify_ext( ctx, f_rng, p_rng, mode,
                                       md_alg, hashlen, hash,
                                       mgf1_hash_id, hashlen,
                                       sig ) );

P.S:
If there is a demand for the requirement and it is being added, I would love to get a notification. Thank you so much for your time and support.

We had an internal discussion and we've decided to change the upcoming version of the specification. On closer inspection, we felt that it was too big a change. The current published specification is:

The salt length is equal to the length of the hash.

We intend to amend that to something like:

The salt length is equal to the length of the hash if possible, or the largest possible salt length for the algorithm and key size if that is smaller than the hash length.

And we'll add a variant, tentatively called PSA_ALG_RSA_PSS_ANY_SALT, which has the same signature behavior but allows any salt (including an empty salt) during verification.
For Mbed TLS, this means that the current behavior will become the implementation of PSA_ALG_RSA_PSS_ANY_SALT, and we'll change PSA_ALG_RSA_PSS to be strict on verification.

This is a small behavior change which is applicable to Mbed TLS 2.2x so we should schedule it in time for the 2.2x LTS.


Un-acked application buffers not freed by destroy_stream()

In my tests, when fully destroying a quicly connection when some frames sent are not ack-ed, they are not properly freed. At least the provided free_cb is not invoked.
Working with latest master (commit 321b4f46bac49c0342737b4f9b015e11a4084e20)

Thank you for reporting the issue. Will fix.


(ORCH-2339) Add run_script endpoint to bolt server

In cases where PXP Agent is not installed on a target node and thus
cannot run a script, SSH or WinRM should be used. This commit adds the
POST /run_script endpoint which will delegate either to SSH or to
WinRM accordingly.

CLA signed by all contributors.

Travis errors appear to be rubocop, once those are fixed I am 👍 to merge


September Blogpost 1: The Role of Women and Girls in Sustainable Climate Solutions

          I choose this topic:

The Role of Women and Girls in Sustainable Climate Solutions
On Thu, Sep 5, 2024, 12:59 PM Yigakpoa Samuel @.***>
wrote:

Hi @Obutorbeatrice https://github.com/Obutorbeatrice Please pick a
topic here:
https://github.com/clentafrica/marketing-and-comms/blob/main/ContentCalendar/2024/blogpost-Sept-Dec.md
and i will assign it to you
—
Reply to this email directly, view it on GitHub
https://github.com/clentafrica/marketing-and-comms/issues/42#issuecomment-2331336324,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/BJ3CXF2VRTTNJQES6ESSKTLZVBBSRAVCNFSM6AAAAABNWHBA42VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDGMZRGMZTMMZSGQ
.
You are receiving this because you were mentioned.Message ID:
@.***>

Originally posted by @Obutorbeatrice in https://github.com/clentafrica/marketing-and-comms/issues/42#issuecomment-2331360411

Hi Team @clentafrica/wg-marketing-comms, @Obutorbeatrice will be working on this blogpost to be published on the 13th of September. Due date for assets will be the 13th of September.
CC - @erioc , @Okpeelizabeth1989 @AXELLEDONGNI .

Please when is the deadline for submission and who will I submit to? Thank
you 🙏 Pardon my too many questions, I need to be guided properly
On Thu, Sep 5, 2024, 4:03 PM Yigakpoa Samuel @.***>
wrote:

Hi Team @clentafrica/wg-marketing-comms
https://github.com/orgs/clentafrica/teams/wg-marketing-comms,
@Obutorbeatrice https://github.com/Obutorbeatrice will be working on
this blogpost to be published on the 13th of September. Due date for assets
will be the 13th of September.
CC - @erioc https://github.com/erioc , @Okpeelizabeth1989
https://github.com/Okpeelizabeth1989 @AxelleDongni
https://github.com/AxelleDongni .
—
Reply to this email directly, view it on GitHub
https://github.com/clentafrica/marketing-and-comms/issues/43#issuecomment-2331953619,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/BJ3CXF7C7L53ONGQW5NC7MLZVBXC7AVCNFSM6AAAAABNWWCDW2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDGMZRHE2TGNRRHE
.
You are receiving this because you were mentioned.Message ID:
@.***>

That’s never a problem @Obutorbeatrice . Thank you for your question. Due date is the 10th of September. You can either put it in a google doc, give edit/comment access and share here or you paste it directly on this thread.
For reviews, please use ( @ wg-marketing-comms) or mention me, @erioc , @axelledongni or @Okpeelizabeth1989 .
Does this work for you?

Ok
On Fri, Sep 6, 2024, 10:43 AM Yigakpoa Samuel @.***>
wrote:

That’s never a problem @Obutorbeatrice https://github.com/Obutorbeatrice
. Thank you for your question. Due date is the 10th of September. You can
either put it in a google doc, give edit/comment access and share here or
you paste it directly on this thread.
For reviews, please use ( @ wg-marketing-comms) or mention me, @erioc
https://github.com/erioc , @AxelleDongni
https://github.com/AxelleDongni or @Okpeelizabeth1989
https://github.com/Okpeelizabeth1989 .
Does this work for you?
—
Reply to this email directly, view it on GitHub
https://github.com/clentafrica/marketing-and-comms/issues/43#issuecomment-2333679334,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/BJ3CXF3GPMYNLLD2OHB6LXLZVF2NJAVCNFSM6AAAAABNWWCDW2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDGMZTGY3TSMZTGQ
.
You are receiving this because you were mentioned.Message ID:
@.***>

Hi @Obutorbeatrice the blogpost looks good to me 💃. However can you please copy its content out and paste here for easier review from the team leads of the marketing team? Additionally, please check your email for an invite to the blog as an author to enable you post this by yourself.
CC @erioc & @Okpeelizabeth1989 please can you review the above blog?
Also @clentafrica/wg-design please can someone create assets for this blogpost?  The assets created will serve for both the blog and our social media posts at once.
Please coordinate with the CMO @erioc for this.
Thanks.

Will do, thanks!
On Fri, Sep 13, 2024, 1:09 PM Yigakpoa Samuel @.***>
wrote:

Hi @Obutorbeatrice https://github.com/Obutorbeatrice the blogpost looks
good to me 💃. However can you please copy its content out and paste here
for easier review from the team leads of the marketing team? Additionally,
please check your email for an invite to the blog as an author to enable
you post this by yourself.
CC @erioc https://github.com/erioc & @Okpeelizabeth1989
https://github.com/Okpeelizabeth1989 please can you review the above
blog?
Also @clentafrica/wg-design
https://github.com/orgs/clentafrica/teams/wg-design please can someone
create assets for this blogpost? The assets created will serve for both the
blog and our social media posts at once.
Please coordinate with the CMO @erioc https://github.com/erioc for this.
Thanks.
—
Reply to this email directly, view it on GitHub
https://github.com/clentafrica/marketing-and-comms/issues/43#issuecomment-2348802667,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/BJ3CXF2X7DRB7SJSZSJGRE3ZWLIYDAVCNFSM6AAAAABNWWCDW2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDGNBYHAYDENRWG4
.
You are receiving this because you were mentioned.Message ID:
@.***>

Hi @Obutorbeatrice just following up on this to see if you’ve been able to post on the blog.

@clentafrica/wg-design following up on this issue

Hi @Obutorbeatrice following up on this issue again to see if there’s any blockers

Sorry I haven't been active lately, having issues with my device


Pulsar IO: implement --retain-key-ordering (KEY_SHARED subscription) for Sinks

Motivation
Currently (2.9) you cannot use a KEY_SHARED subscription for Pulsar Sinks.
You can already do it for Functions, by using --retain-key-ordering
Modifications
This patch implements --retain-key-ordering for Sinks, the same way we do for Functions
Verifying this change
This patch added tests
Documentation

[x] doc-required

LGTM

Hi @eolivelli for the doc side, the parameter explanation has been added to code files and shown on the pulsar-admin page (https://pulsar.apache.org/tools/pulsar-admin/2.10.0-SNAPSHOT/#sinks)

But this PR is still labeled w/ doc-required, do we need to explain/highlight it in Pulsar documentation?
If no, can you label this PR w/ doc since it already contains doc changes, thanks.

Cool!
I didn't know that we generate that documentation automatically!
I removed the doc label


Some emojis not working + better autocomplete

Tried to select from the drop down, but the resulting comment is just text

Looks like it's some emojis, but I think most work.

yeah some may be unsupported? would have to dig into the emoji library

[ ] I wanted to just type :heart:, but it's way down below.  I would assume the ending colon would result in an exact match


refactor: check topics upon receive

Description
Use this branch for testing the POI radio, manually filtering messages to be subscribed content topic
Issue link (if applicable)
Resolves graphops/poi-radio#39

Great stuff! Just opened this companion PR https://github.com/graphops/graphcast-sdk/pull/104 that I think we should merge into this one


RN47.0 has removed createJSModules method

RN47.0 change log https://github.com/facebook/react-native/releases/tag/v0.47.0

The fix for this is now in master: https://github.com/lwansbrough/react-native-camera/commit/02eb51d962c8b55ffd46f256d223aa41cd2df4a4 (PR #821)

Is the fix for this going to be released on npm soon?

@rt2zz when we can expect a new release?

You can always use the git has if wanting to run later code available before the release is cut
https://docs.npmjs.com/files/package.json#repository


BENCH: Failing benchmark tests

Reproducing Code Example
I am working on the meson branch of https://github.com/rgommers/scipy and built scipy using the instructions from https://github.com/rgommers/scipy/blob/meson/MESON_BUILD.md
After building and installation, I ran the benchmark tests and saw a few failing/timeout tests. Complete results are at: https://drive.google.com/file/d/1mpqNEdzy9eml8FFVNMf3v0r_EMv_NMJ-/view?usp=sharing
Some of the failing results can be reproduced by:

[x] $ python runtests.py -n --bench optimize_qap.QuadraticAssignment.track_score

Traceback

Running benchmarks for Scipy version 1.8.0.dev0+1529.461f198 at /home/smit/Smitlunagariya/scipy/installdir/lib/python3.9/site-packages/scipy/__init__.py
· No `environment_type` specified in asv.conf.json. This will be required in the future.
· Discovering benchmarks
· Running 1 total benchmarks (1 commits * 1 environments * 1 benchmarks)
[  0.00%] ·· Benchmarking existing-py_home_smit_anaconda3_envs_scipy-dev_bin_python
[100.00%] ··· optimize_qap.QuadraticAssignment.track_score                failed
[100.00%] ··· ======== ============= ========
               Method   QAP Problem
              -------- ------------- --------
                faq        bur26a     failed
                faq        bur26b     failed
                faq        bur26c     failed
                faq        bur26d     failed
                faq        bur26e     failed
                faq        bur26f     failed
                faq        bur26g     failed
                faq        bur26h     failed
                faq        chr12a     failed
                faq        chr12b     failed
                faq        chr12c     failed
                faq        chr15a     failed
                faq        chr15b     failed
                faq        chr15c     failed
                faq        chr18a     failed
                faq        chr18b     failed
                faq        chr20a     failed
                faq        chr20b     failed
                faq        chr20c     failed
                faq        chr22a     failed
                faq        chr22b     failed
                faq        chr25a     failed
                faq        els19      failed
                faq        esc16a     failed
                faq        esc16b     failed
                faq        esc16c     failed
                faq        esc16d     failed
                faq        esc16e     failed
                faq        esc16g     failed
                faq        esc16h     failed
                faq        esc16i     failed
                faq        esc16j     failed
                faq        esc32e     failed
                faq        esc32g     failed
                faq        esc128     failed
                faq        had12      failed
                faq        had14      failed
                faq        had16      failed
                faq        had18      failed
                faq        had20      failed
                faq        kra30a     failed
                faq        kra30b     failed
                faq        kra32      failed
                faq       lipa20a     failed
                faq       lipa20b     failed
                faq       lipa30a     failed
                faq       lipa30b     failed
                faq       lipa40a     failed
                faq       lipa40b     failed
                faq       lipa50a     failed
                faq       lipa50b     failed
                faq       lipa60a     failed
                faq       lipa60b     failed
                faq       lipa70a     failed
                faq       lipa70b     failed
                faq       lipa80a     failed
                faq       lipa90a     failed
                faq       lipa90b     failed
                faq        nug12      failed
                faq        nug14      failed
                faq        nug16a     failed
                faq        nug16b     failed
                faq        nug17      failed
                faq        nug18      failed
                faq        nug20      failed
                faq        nug21      failed
                faq        nug22      failed
                faq        nug24      failed
                faq        nug25      failed
                faq        nug27      failed
                faq        nug28      failed
                faq        nug30      failed
                faq        rou12      failed
                faq        rou15      failed
                faq        rou20      failed
                faq        scr12      failed
                faq        scr15      failed
                faq        scr20      failed
                faq        sko42      failed
                faq        sko49      failed
                faq        sko56      failed
                faq        sko64      failed
                faq        sko72      failed
                faq        sko81      failed
                faq        sko90      failed
                faq       sko100a     failed
                faq       sko100b     failed
                faq       sko100c     failed
                faq       sko100d     failed
                faq       sko100e     failed
                faq       sko100f     failed
                faq        ste36b     failed
                faq        ste36c     failed
                faq        tai12a     failed
                faq        tai12b     failed
                faq        tai15a     failed
                faq        tai15b     failed
                faq        tai17a     failed
                faq        tai20a     failed
                faq        tai20b     failed
                faq        tai25a     failed
                faq        tai25b     failed
                faq        tai30a     failed
                faq        tai30b     failed
                faq        tai35a     failed
                faq        tai40a     failed
                faq        tai40b     failed
                faq        tai50a     failed
                faq        tai50b     failed
                faq        tai60a     failed
                faq        tai60b     failed
                faq        tai64c     failed
                faq        tai80a     failed
                faq       tai100a     failed
                faq       tai100b     failed
                faq       tai150b     failed
                faq       tai256c     failed
                faq        tho30      failed
                faq        tho40      failed
                faq        tho150     failed
                faq        wil50      failed
                faq        wil100     failed
                2opt       bur26a     failed
                2opt       bur26b     failed
                2opt       bur26c     failed
                2opt       bur26d     failed
                2opt       bur26e     failed
                2opt       bur26f     failed
                2opt       bur26g     failed
                2opt       bur26h     failed
                2opt       chr12a     failed
                2opt       chr12b     failed
                2opt       chr12c     failed
                2opt       chr15a     failed
                2opt       chr15b     failed
                2opt       chr15c     failed
                2opt       chr18a     failed
                2opt       chr18b     failed
                2opt       chr20a     failed
                2opt       chr20b     failed
                2opt       chr20c     failed
                2opt       chr22a     failed
                2opt       chr22b     failed
                2opt       chr25a     failed
                2opt       els19      failed
                2opt       esc16a     failed
                2opt       esc16b     failed
                2opt       esc16c     failed
                2opt       esc16d     failed
                2opt       esc16e     failed
                2opt       esc16g     failed
                2opt       esc16h     failed
                2opt       esc16i     failed
                2opt       esc16j     failed
                2opt       esc32e     failed
                2opt       esc32g     failed
                2opt       esc128     failed
                2opt       had12      failed
                2opt       had14      failed
                2opt       had16      failed
                2opt       had18      failed
                2opt       had20      failed
                2opt       kra30a     failed
                2opt       kra30b     failed
                2opt       kra32      failed
                2opt      lipa20a     failed
                2opt      lipa20b     failed
                2opt      lipa30a     failed
                2opt      lipa30b     failed
                2opt      lipa40a     failed
                2opt      lipa40b     failed
                2opt      lipa50a     failed
                2opt      lipa50b     failed
                2opt      lipa60a     failed
                2opt      lipa60b     failed
                2opt      lipa70a     failed
                2opt      lipa70b     failed
                2opt      lipa80a     failed
                2opt      lipa90a     failed
                2opt      lipa90b     failed
                2opt       nug12      failed
                2opt       nug14      failed
                2opt       nug16a     failed
                2opt       nug16b     failed
                2opt       nug17      failed
                2opt       nug18      failed
                2opt       nug20      failed
                2opt       nug21      failed
                2opt       nug22      failed
                2opt       nug24      failed
                2opt       nug25      failed
                2opt       nug27      failed
                2opt       nug28      failed
                2opt       nug30      failed
                2opt       rou12      failed
                2opt       rou15      failed
                2opt       rou20      failed
                2opt       scr12      failed
                2opt       scr15      failed
                2opt       scr20      failed
                2opt       sko42      failed
                2opt       sko49      failed
                2opt       sko56      failed
                2opt       sko64      failed
                2opt       sko72      failed
                2opt       sko81      failed
                2opt       sko90      failed
                2opt      sko100a     failed
                2opt      sko100b     failed
                2opt      sko100c     failed
                2opt      sko100d     failed
                2opt      sko100e     failed
                2opt      sko100f     failed
                2opt       ste36b     failed
                2opt       ste36c     failed
                2opt       tai12a     failed
                2opt       tai12b     failed
                2opt       tai15a     failed
                2opt       tai15b     failed
                2opt       tai17a     failed
                2opt       tai20a     failed
                2opt       tai20b     failed
                2opt       tai25a     failed
                2opt       tai25b     failed
                2opt       tai30a     failed
                2opt       tai30b     failed
                2opt       tai35a     failed
                2opt       tai40a     failed
                2opt       tai40b     failed
                2opt       tai50a     failed
                2opt       tai50b     failed
                2opt       tai60a     failed
                2opt       tai60b     failed
                2opt       tai64c     failed
                2opt       tai80a     failed
                2opt      tai100a     failed
                2opt      tai100b     failed
                2opt      tai150b     failed
                2opt      tai256c     failed
                2opt       tho30      failed
                2opt       tho40      failed
                2opt       tho150     failed
                2opt       wil50      failed
                2opt       wil100     failed
              ======== ============= ========

[100.00%] ···· For parameters: 'faq', 'bur26a'
               Traceback (most recent call last):
                 File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/asv/benchmark.py", line 1184, in main_run_server
                   main_run(run_args)
                 File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/asv/benchmark.py", line 1058, in main_run
                   result = benchmark.do_run()
                 File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/asv/benchmark.py", line 537, in do_run
                   return self.run(*self._current_params)
                 File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/asv/benchmark.py", line 766, in run
                   return self.func(*param)
                 File "/home/smit/Smitlunagariya/scipy/benchmarks/benchmarks/optimize_qap.py", line 59, in track_score
                   score = int(res['score'])
               KeyError: 'score'

               For parameters: 'faq', 'bur26b'
               Traceback (most recent call last):
                 File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/asv/benchmark.py", line 1184, in main_run_server
                   main_run(run_args)
                 File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/asv/benchmark.py", line 1058, in main_run
                   result = benchmark.do_run()
                 File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/asv/benchmark.py", line 537, in do_run
                   return self.run(*self._current_params)
                 File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/asv/benchmark.py", line 766, in run
                   return self.func(*param)
                 File "/home/smit/Smitlunagariya/scipy/benchmarks/benchmarks/optimize_qap.py", line 59, in track_score
                   score = int(res['score'])
               KeyError: 'score'

               For parameters: 'faq', 'bur26c'
               Traceback (most recent call last):
                 File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/asv/benchmark.py", line 1184, in main_run_server
                   main_run(run_args)
                 File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/asv/benchmark.py", line 1058, in main_run
                   result = benchmark.do_run()
                 File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/asv/benchmark.py", line 537, in do_run
                   return self.run(*self._current_params)
                 File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/asv/benchmark.py", line 766, in run
                   return self.func(*param)
                 File "/home/smit/Smitlunagariya/scipy/benchmarks/benchmarks/optimize_qap.py", line 59, in track_score
                   score = int(res['score'])
               KeyError: 'score'

[x] $ python runtests.py -n --bench stats.DistributionsAll.time_distribution

Traceback

[100.00%] ···· For parameters: 'alpha', 'fit'
               /home/smit/Smitlunagariya/scipy/installdir/lib/python3.9/site-packages/scipy/stats/_distn_infrastructure.py:2606: RuntimeWarning: invalid value encountered in double_scalars
                 Lhat = muhat - Shat*mu

               For parameters: 'beta', 'fit'
               /home/smit/Smitlunagariya/scipy/installdir/lib/python3.9/site-packages/scipy/stats/_continuous_distns.py:641: RuntimeWarning: invalid value encountered in sqrt
                 sk = 2*(b-a)*np.sqrt(a + b + 1) / (a + b + 2) / np.sqrt(a*b)

               For parameters: 'betaprime', 'fit'
               /home/smit/Smitlunagariya/scipy/installdir/lib/python3.9/site-packages/scipy/stats/_continuous_distns.py:803: RuntimeWarning: divide by zero encountered in true_divide
                 a/(b-1.0),
               /home/smit/Smitlunagariya/scipy/installdir/lib/python3.9/site-packages/scipy/stats/_continuous_distns.py:807: RuntimeWarning: divide by zero encountered in true_divide
                 a*(a+1.0)/((b-2.0)*(b-1.0)),
               /home/smit/Smitlunagariya/scipy/installdir/lib/python3.9/site-packages/scipy/stats/_distn_infrastructure.py:2606: RuntimeWarning: invalid value encountered in double_scalars
                 Lhat = muhat - Shat*mu

               For parameters: 'burr12', 'fit'
               /home/smit/Smitlunagariya/scipy/installdir/lib/python3.9/site-packages/scipy/stats/_distn_infrastructure.py:2606: RuntimeWarning: invalid value encountered in double_scalars
                 Lhat = muhat - Shat*mu

               For parameters: 'erlang', 'fit'
               /home/smit/Smitlunagariya/scipy/installdir/lib/python3.9/site-packages/scipy/stats/_continuous_distns.py:2806: RuntimeWarning: The shape parameter of the erlang distribution has been given a non-integer value 23.1.
                 warnings.warn(
               /home/smit/Smitlunagariya/scipy/installdir/lib/python3.9/site-packages/scipy/stats/_continuous_distns.py:2806: RuntimeWarning: The shape parameter of the erlang distribution has been given a non-integer value 20.9.
                 warnings.warn(
               /home/smit/Smitlunagariya/scipy/installdir/lib/python3.9/site-packages/scipy/stats/_continuous_distns.py:2806: RuntimeWarning: The shape parameter of the erlang distribution has been given a non-integer value 19.799999999999997.
                 warnings.warn(
               /home/smit/Smitlunagariya/scipy/installdir/lib/python3.9/site-packages/scipy/stats/_continuous_distns.py:2806: RuntimeWarning: The shape parameter of the erlang distribution has been given a non-integer value 20.53333333333333.
                 warnings.warn(
               /home/smit/Smitlunagariya/scipy/installdir/lib/python3.9/site-packages/scipy/stats/_continuous_distns.py:2806: RuntimeWarning: The shape parameter of the erlang distribution has been given a non-integer value 19.066666666666663.
....
For parameters: 'ncf', 'entropy'
               /home/smit/Smitlunagariya/scipy/installdir/lib/python3.9/site-packages/scipy/stats/_distn_infrastructure.py:2621: IntegrationWarning: The occurrence of roundoff error is detected, which prevents
                 the requested tolerance from being achieved.  The error may be
                 underestimated.
                 h = integrate.quad(integ, _a, _b)[0]

               For parameters: 'nchypergeom_fisher', 'stats_s'
               Traceback (most recent call last):
                 File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/asv/benchmark.py", line 1184, in main_run_server
                   main_run(run_args)
                 File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/asv/benchmark.py", line 1058, in main_run
                   result = benchmark.do_run()
                 File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/asv/benchmark.py", line 537, in do_run
                   return self.run(*self._current_params)
                 File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/asv/benchmark.py", line 627, in run
                   samples, number = self.benchmark_timing(timer, min_repeat, max_repeat,
                 File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/asv/benchmark.py", line 663, in benchmark_timing
                   timing = timer.timeit(number)
                 File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/timeit.py", line 177, in timeit
                   timing = self.inner(it, self.timer)
                 File "<timeit-src>", line 6, in inner
                 File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/asv/benchmark.py", line 599, in <lambda>
                   func = lambda: self.func(*param)
                 File "/home/smit/Smitlunagariya/scipy/benchmarks/benchmarks/stats.py", line 182, in time_distribution
                   self.method(*self.args, **self.kwds)
                 File "/home/smit/Smitlunagariya/scipy/installdir/lib/python3.9/site-packages/scipy/stats/_distn_infrastructure.py", line 1149, in stats
                   mu, mu2, g1, g2 = self._stats(*goodargs,
                 File "/home/smit/Smitlunagariya/scipy/installdir/lib/python3.9/site-packages/scipy/stats/_discrete_distns.py", line 1537, in _stats
                   m, v = _moments1(M, n, N, odds) if ("m" in moments
               TypeError: cannot unpack non-iterable NoneType object

               For parameters: 'nchypergeom_fisher', 'stats_k'
               Traceback (most recent call last):
                 File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/asv/benchmark.py", line 1184, in main_run_server
                   main_run(run_args)
                 File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/asv/benchmark.py", line 1058, in main_run
                   result = benchmark.do_run()
                 File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/asv/benchmark.py", line 537, in do_run
                   return self.run(*self._current_params)
                 File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/asv/benchmark.py", line 627, in run
                   samples, number = self.benchmark_timing(timer, min_repeat, max_repeat,
                 File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/asv/benchmark.py", line 663, in benchmark_timing
                   timing = timer.timeit(number)
                 File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/timeit.py", line 177, in timeit
                   timing = self.inner(it, self.timer)
                 File "<timeit-src>", line 6, in inner
                 File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/asv/benchmark.py", line 599, in <lambda>
                   func = lambda: self.func(*param)
                 File "/home/smit/Smitlunagariya/scipy/benchmarks/benchmarks/stats.py", line 182, in time_distribution
                   self.method(*self.args, **self.kwds)
                 File "/home/smit/Smitlunagariya/scipy/installdir/lib/python3.9/site-packages/scipy/stats/_distn_infrastructure.py", line 1149, in stats
                   mu, mu2, g1, g2 = self._stats(*goodargs,
                 File "/home/smit/Smitlunagariya/scipy/installdir/lib/python3.9/site-packages/scipy/stats/_discrete_distns.py", line 1537, in _stats
                   m, v = _moments1(M, n, N, odds) if ("m" in moments
               TypeError: cannot unpack non-iterable NoneType object

               For parameters: 'nchypergeom_wallenius', 'stats_s'
               Traceback (most recent call last):
                 File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/asv/benchmark.py", line 1184, in main_run_server
                   main_run(run_args)
                 File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/asv/benchmark.py", line 1058, in main_run
                   result = benchmark.do_run()
                 File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/asv/benchmark.py", line 537, in do_run
                   return self.run(*self._current_params)
                 File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/asv/benchmark.py", line 627, in run
                   samples, number = self.benchmark_timing(timer, min_repeat, max_repeat,
                 File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/asv/benchmark.py", line 663, in benchmark_timing
                   timing = timer.timeit(number)
                 File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/timeit.py", line 177, in timeit
                   timing = self.inner(it, self.timer)
                 File "<timeit-src>", line 6, in inner
                 File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/asv/benchmark.py", line 599, in <lambda>
                   func = lambda: self.func(*param)
                 File "/home/smit/Smitlunagariya/scipy/benchmarks/benchmarks/stats.py", line 182, in time_distribution
                   self.method(*self.args, **self.kwds)
                 File "/home/smit/Smitlunagariya/scipy/installdir/lib/python3.9/site-packages/scipy/stats/_distn_infrastructure.py", line 1149, in stats
                   mu, mu2, g1, g2 = self._stats(*goodargs,
                 File "/home/smit/Smitlunagariya/scipy/installdir/lib/python3.9/site-packages/scipy/stats/_discrete_distns.py", line 1537, in _stats
                   m, v = _moments1(M, n, N, odds) if ("m" in moments
               TypeError: cannot unpack non-iterable NoneType object

               For parameters: 'nchypergeom_wallenius', 'stats_k'
               Traceback (most recent call last):
                 File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/asv/benchmark.py", line 1184, in main_run_server
                   main_run(run_args)
                 File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/asv/benchmark.py", line 1058, in main_run
                   result = benchmark.do_run()
                 File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/asv/benchmark.py", line 537, in do_run
                   return self.run(*self._current_params)
                 File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/asv/benchmark.py", line 627, in run
                   samples, number = self.benchmark_timing(timer, min_repeat, max_repeat,
                 File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/asv/benchmark.py", line 663, in benchmark_timing
                   timing = timer.timeit(number)
                 File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/timeit.py", line 177, in timeit
                   timing = self.inner(it, self.timer)
                 File "<timeit-src>", line 6, in inner
                 File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/asv/benchmark.py", line 599, in <lambda>
                   func = lambda: self.func(*param)
                 File "/home/smit/Smitlunagariya/scipy/benchmarks/benchmarks/stats.py", line 182, in time_distribution
                   self.method(*self.args, **self.kwds)
                 File "/home/smit/Smitlunagariya/scipy/installdir/lib/python3.9/site-packages/scipy/stats/_distn_infrastructure.py", line 1149, in stats
                   mu, mu2, g1, g2 = self._stats(*goodargs,
                 File "/home/smit/Smitlunagariya/scipy/installdir/lib/python3.9/site-packages/scipy/stats/_discrete_distns.py", line 1537, in _stats
                   m, v = _moments1(M, n, N, odds) if ("m" in moments
               TypeError: cannot unpack non-iterable NoneType object

               For parameters: 'pareto', 'fit'
               /home/smit/Smitlunagariya/scipy/installdir/lib/python3.9/site-packages/scipy/stats/_distn_infrastructure.py:2606: RuntimeWarning: invalid value encountered in double_scalars
                 Lhat = muhat - Shat*mu

               For parameters: 'studentized_range', 'rvs'

               asv: benchmark timed out (timeout 60.0s)

               For parameters: 'studentized_range', 'fit'
               /home/smit/Smitlunagariya/scipy/installdir/lib/python3.9/site-packages/scipy/integrate/quadpack.py:879: IntegrationWarning: The maximum number of subdivisions (50) has been achieved.
                 If increasing the limit yields no improvement it is advised to analyze
                 the integrand in order to determine the difficulties.  If the position of a
                 local difficulty can be determined (singularity, discontinuity) one will
                 probably gain from splitting up the interval and calling the integrator
                 on the subranges.   This will be required in the future.
· Discovering benchmarks
· Running 1 total benchmarks (1 commits * 1 environments * 1 benchmarks)
[  0.00%] ·· Benchmarking existing-py_home_smit_anaconda3_envs_scipy-dev_bin_python
[ 50.00%] ··· Running (stats.NumericalInverseHermite.time_fni--).
[100.00%] ··· stats.NumericalInverseHermite.time_fni               12/108 failed
...
[100.00%] ···· For parameters: ['beta', (2.3098496451481823, 0.6268795430096368)]
               Traceback (most recent call last):
                 File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/asv/benchmark.py", line 1184, in main_run_server
                   main_run(run_args)
                 File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/asv/benchmark.py", line 1058, in main_run
                   result = benchmark.do_run()
                 File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/asv/benchmark.py", line 537, in do_run
                   return self.run(*self._current_params)
                 File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/asv/benchmark.py", line 627, in run
                   samples, number = self.benchmark_timing(timer, min_repeat, max_repeat,
                 File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/asv/benchmark.py", line 663, in benchmark_timing
                   timing = timer.timeit(number)
                 File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/timeit.py", line 177, in timeit
                   timing = self.inner(it, self.timer)
                 File "<timeit-src>", line 6, in inner
                 File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/asv/benchmark.py", line 599, in <lambda>
                   func = lambda: self.func(*param)
                 File "/home/smit/Smitlunagariya/scipy/benchmarks/benchmarks/stats.py", line 428, in time_fni
                   raise NotImplementedError("skipped")
               NotImplementedError: skipped

               For parameters: ['gausshyper', (13.7637716041307, 3.118963664868143, 2.514598035018302, 5.1811649903971615)]
               Traceback (most recent call last):
                 File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/asv/benchmark.py", line 1184, in main_run_server
                   main_run(run_args)
                 File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/asv/benchmark.py", line 1058, in main_run
                   result = benchmark.do_run()
                 File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/asv/benchmark.py", line 537, in do_run
                   return self.run(*self._current_params)
                 File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/asv/benchmark.py", line 627, in run
                   samples, number = self.benchmark_timing(timer, min_repeat, max_repeat,
                 File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/asv/benchmark.py", line 663, in benchmark_timing
                   timing = timer.timeit(number)
                 File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/timeit.py", line 177, in timeit
                   timing = self.inner(it, self.timer)
                 File "<timeit-src>", line 6, in inner
                 File "/home/smit/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/asv/benchmark.py", line 599, in <lambda>
                   func = lambda: self.func(*param)
                 File "/home/smit/Smitlunagariya/scipy/benchmarks/benchmarks/stats.py", line 428, in time_fni
                   raise NotImplementedError("skipped")
               NotImplementedError: skipped

[ ] $ python runtests.py -n --bench integrate.Quad.time_quad_cffi (because of cffi)

Traceback

Traceback (most recent call last):
                 File "/opt/hostedtoolcache/Python/3.9.6/x64/lib/python3.9/site-packages/asv/benchmark.py", line 1184, in main_run_server
                   main_run(run_args)
                 File "/opt/hostedtoolcache/Python/3.9.6/x64/lib/python3.9/site-packages/asv/benchmark.py", line 1058, in main_run
                   result = benchmark.do_run()
                 File "/opt/hostedtoolcache/Python/3.9.6/x64/lib/python3.9/site-packages/asv/benchmark.py", line 537, in do_run
                   return self.run(*self._current_params)
                 File "/opt/hostedtoolcache/Python/3.9.6/x64/lib/python3.9/site-packages/asv/benchmark.py", line 627, in run
                   samples, number = self.benchmark_timing(timer, min_repeat, max_repeat,
                 File "/opt/hostedtoolcache/Python/3.9.6/x64/lib/python3.9/site-packages/asv/benchmark.py", line 663, in benchmark_timing
                   timing = timer.timeit(number)
                 File "/opt/hostedtoolcache/Python/3.9.6/x64/lib/python3.9/timeit.py", line 177, in timeit
                   timing = self.inner(it, self.timer)
                 File "<timeit-src>", line 6, in inner
                 File "/home/runner/work/scipy/scipy/benchmarks/benchmarks/integrate.py", line 114, in time_quad_cffi
                   quad(self.f_cffi, 0, np.pi)
               AttributeError: 'Quad' object has no attribute 'f_cffi'

SciPy/NumPy/Python version information
1.8.0.dev0+1529.461f198 1.21.0 sys.version_info(major=3, minor=9, micro=5, releaselevel='final', serial=0)

Hmm... this might not be specific to meson. Looks like score should be fun. @asaadeldin11 if you would be willing to check this out and submit a PR for this, I would review and merge it.

I think this is good to close; integrate.Quad.time_quad_cffi now runs under meson and stats.NumericalInverseHermite.time_fni no longer exists.