fix: pass headers when connecting sockets

Fixing https://github.com/Chainlit/chainlit/issues/1279. Tested it on GCP with session affinity + 2 instances with this docker file
# Build stage for Python application
FROM python:3.11-slim

# Install system dependencies
RUN apt-get update && apt-get install -y \
    git \
    nodejs \
    npm \
    && rm -rf /var/lib/apt/lists/*

# Install pnpm
RUN npm install -g pnpm

# Set working directory
WORKDIR /app

# Copy your application files
COPY app.py .

# Install Python dependencies
RUN pip install --no-cache-dir git+https://github.com/Chainlit/chainlit.git@willy/sticky-sessions#subdirectory=backend/

# Set environment variables
ENV PORT=8000
ENV HOST=<IP_ADDRESS>

# Expose the port
EXPOSE 8000

# Start the application
CMD ["chainlit", "run", "app.py", "--host", "<IP_ADDRESS>", "--port", "8000", "-h"]

This is failing for any origin that is the not the server's origin (typically Chainlit embedded as a copilot on a website) because withCredential does not support '*' cross origin.
Access to XMLHttpRequest at 'https://chainlit-sticky-182925357376.europe-west2.run.app/ws/socket.io/?EIO=4&transport=polling&t=PEh9E88' from origin 'http://localhost:9000/' has been blocked by CORS policy: The value of the 'Access-Control-Allow-Origin' header in the response must not be the wildcard '*' when the request's credentials mode is 'include'. The credentials mode of requests initiated by the XMLHttpRequest is controlled by the withCredentials attribute.

The issue is fixed. For cross origin use cases, it is now mandatory to allow it in the project config (I had to update the copilot test for example) as the wildcard "*" is not supported with credentials.

Here is the doc PR https://github.com/Chainlit/docs/pull/199

I gave this branch a try within our application, but every request I made is rejected:

Clint WS message: {"message":"Connection rejected by server"}
Server: {"type":"LOG","log":{"level":"INFO","message":"Authentication failed"}}

We have a custom data layer, but I tried removing it with the same (failing) results. Any tips?

Note: Poetry install line for pyproject.toml
chainlit = { git =<EMAIL_ADDRESS>branch = "willy/sticky-sessions", subdirectory = "backend" }

Note: Poetry install line for pyproject.toml
chainlit = { git =<EMAIL_ADDRESS>branch = "willy/sticky-sessions", subdirectory = "backend" }

Convenient one-liner - not requiring authentication/write access to the repo:
poetry add git+https://github.com/Chainlit/chainlit.git@willy/sticky-sessions#subdirectory=backend/

I gave this branch a try within our application, but every request I made is rejected:

Clint WS message: {"message":"Connection rejected by server"}
Server: {"type":"LOG","log":{"level":"INFO","message":"Authentication failed"}}

We have a custom data layer, but I tried removing it with the same (failing) results. Any tips?

Could you share a screendump of the browser's console and network requests from the debugger? Particularly the websocket initialisation process. Details on the first non-successful request from the network debugger would also help.

@dvdr00t  This probably also solves #1407. Any chance you could give it a try? More eyes on this the better. :)

Sure!  We are using a FastAPI application & mount_chainlit
Server Logs:
10:00:54 api.1       | INFO:     <IP_ADDRESS>:57431 - "GET /api/v1/users/me HTTP/1.1" 200 OK
10:00:54 api.1       | INFO:     <IP_ADDRESS>:57431 - "GET /chat/auth/config HTTP/1.1" 200 OK
10:00:54 api.1       | {"type":"LOG","log":{"level":"WARN","message":"Translated markdown file for en-US not found. Defaulting to chainlit.md."}}
10:00:54 api.1       | INFO:     <IP_ADDRESS>:57431 - "GET /chat/auth/config HTTP/1.1" 200 OK
10:00:54 api.1       | INFO:     <IP_ADDRESS>:57434 - "GET /chat/project/settings?language=en-US HTTP/1.1" 200 OK
10:00:54 api.1       | INFO:     <IP_ADDRESS>:57434 - "GET /api/v1/chat/auth HTTP/1.1" 200 OK
10:00:55 api.1       | INFO:     <IP_ADDRESS>:57434 - "GET /api/v1/chat/auth HTTP/1.1" 200 OK
10:00:55 api.1       | {"type":"LOG","log":{"level":"WARN","message":"Translated markdown file for en-US not found. Defaulting to chainlit.md."}}
10:00:55 api.1       | INFO:     <IP_ADDRESS>:57434 - "GET /chat/auth/config HTTP/1.1" 200 OK
10:00:55 api.1       | INFO:     <IP_ADDRESS>:57431 - "GET /chat/project/settings?language=en-US HTTP/1.1" 200 OK
10:00:55 api.1       | {"type":"LOG","log":{"level":"WARN","message":"Translated markdown file for en-US not found. Defaulting to chainlit.md."}}
10:00:55 api.1       | INFO:     <IP_ADDRESS>:57434 - "GET /chat/auth/config HTTP/1.1" 200 OK
10:00:55 api.1       | INFO:     <IP_ADDRESS>:57431 - "GET /chat/project/settings?language=en-US HTTP/1.1" 200 OK
10:00:55 api.1       | INFO:     <IP_ADDRESS>:57434 - "POST /chat/project/threads HTTP/1.1" 200 OK
10:00:55 api.1       | INFO:     <IP_ADDRESS>:57431 - "POST /chat/project/threads HTTP/1.1" 200 OK
10:00:55 api.1       | INFO:     <IP_ADDRESS>:57431 - "OPTIONS /chat/ws/socket.io/?EIO=4&transport=polling&t=rp6pmpfx HTTP/1.1" 200 OK
10:00:55 api.1       | INFO:     <IP_ADDRESS>:57434 - "GET /chat/ws/socket.io/?EIO=4&transport=polling&t=rp6pmpfx HTTP/1.1" 200 OK
10:00:55 api.1       | INFO:     <IP_ADDRESS>:57434 - "OPTIONS /chat/ws/socket.io/?EIO=4&transport=polling&t=rp6qz0a3&sid=ochdon-Bc-f-hV5YAAAA HTTP/1.1" 200 OK
10:00:55 api.1       | INFO:     ('<IP_ADDRESS>', 57441) - "WebSocket /chat/ws/socket.io/?EIO=4&transport=websocket&sid=ochdon-Bc-f-hV5YAAAA" [accepted]
10:00:55 api.1       | INFO:     <IP_ADDRESS>:57431 - "OPTIONS /chat/ws/socket.io/?EIO=4&transport=polling&t=rp6r0pdd&sid=ochdon-Bc-f-hV5YAAAA HTTP/1.1" 200 OK
10:00:55 api.1       | INFO:     connection open
10:00:55 api.1       | {"type":"LOG","log":{"level":"INFO","message":"Authentication failed"}}
10:00:55 api.1       | INFO:     <IP_ADDRESS>:57443 - "POST /chat/ws/socket.io/?EIO=4&transport=polling&t=rp6qz0a3&sid=ochdon-Bc-f-hV5YAAAA HTTP/1.1" 200 OK
10:00:55 api.1       | INFO:     <IP_ADDRESS>:57434 - "GET /chat/ws/socket.io/?EIO=4&transport=polling&t=rp6r0pdd&sid=ochdon-Bc-f-hV5YAAAA HTTP/1.1" 200 OK
10:00:55 api.1       | INFO:     <IP_ADDRESS>:57434 - "OPTIONS /chat/ws/socket.io/?EIO=4&transport=polling&t=rp6td00j&sid=ochdon-Bc-f-hV5YAAAA HTTP/1.1" 200 OK
10:00:55 api.1       | INFO:     <IP_ADDRESS>:57443 - "GET /chat/ws/socket.io/?EIO=4&transport=polling&t=rp6td00j&sid=ochdon-Bc-f-hV5YAAAA HTTP/1.1" 200 OK
10:00:55 api.1       | INFO:     <IP_ADDRESS>:57443 - "OPTIONS /chat/ws/socket.io/?EIO=4&transport=polling&t=rp6v2btm&sid=ochdon-Bc-f-hV5YAAAA HTTP/1.1" 200 OK
10:00:55 api.1       | INFO:     <IP_ADDRESS>:57434 - "GET /chat/ws/socket.io/?EIO=4&transport=polling&t=rp6v2btm&sid=ochdon-Bc-f-hV5YAAAA HTTP/1.1" 200 OK
10:00:55 api.1       | INFO:     connection closed

Some screenshots from the browser console:

Incidentally, a prior PR for this issue was already open #1339. Should close it once we merge this.

Sure! We are using a FastAPI application & mount_chainlit
Server Logs:
10:00:54 api.1       | INFO:     <IP_ADDRESS>:57431 - "GET /api/v1/users/me HTTP/1.1" 200 OK
10:00:54 api.1       | INFO:     <IP_ADDRESS>:57431 - "GET /chat/auth/config HTTP/1.1" 200 OK
10:00:54 api.1       | {"type":"LOG","log":{"level":"WARN","message":"Translated markdown file for en-US not found. Defaulting to chainlit.md."}}
10:00:54 api.1       | INFO:     <IP_ADDRESS>:57431 - "GET /chat/auth/config HTTP/1.1" 200 OK
10:00:54 api.1       | INFO:     <IP_ADDRESS>:57434 - "GET /chat/project/settings?language=en-US HTTP/1.1" 200 OK
10:00:54 api.1       | INFO:     <IP_ADDRESS>:57434 - "GET /api/v1/chat/auth HTTP/1.1" 200 OK
10:00:55 api.1       | INFO:     <IP_ADDRESS>:57434 - "GET /api/v1/chat/auth HTTP/1.1" 200 OK
10:00:55 api.1       | {"type":"LOG","log":{"level":"WARN","message":"Translated markdown file for en-US not found. Defaulting to chainlit.md."}}
10:00:55 api.1       | INFO:     <IP_ADDRESS>:57434 - "GET /chat/auth/config HTTP/1.1" 200 OK
10:00:55 api.1       | INFO:     <IP_ADDRESS>:57431 - "GET /chat/project/settings?language=en-US HTTP/1.1" 200 OK
10:00:55 api.1       | {"type":"LOG","log":{"level":"WARN","message":"Translated markdown file for en-US not found. Defaulting to chainlit.md."}}
10:00:55 api.1       | INFO:     <IP_ADDRESS>:57434 - "GET /chat/auth/config HTTP/1.1" 200 OK
10:00:55 api.1       | INFO:     <IP_ADDRESS>:57431 - "GET /chat/project/settings?language=en-US HTTP/1.1" 200 OK
10:00:55 api.1       | INFO:     <IP_ADDRESS>:57434 - "POST /chat/project/threads HTTP/1.1" 200 OK
10:00:55 api.1       | INFO:     <IP_ADDRESS>:57431 - "POST /chat/project/threads HTTP/1.1" 200 OK
10:00:55 api.1       | INFO:     <IP_ADDRESS>:57431 - "OPTIONS /chat/ws/socket.io/?EIO=4&transport=polling&t=rp6pmpfx HTTP/1.1" 200 OK
10:00:55 api.1       | INFO:     <IP_ADDRESS>:57434 - "GET /chat/ws/socket.io/?EIO=4&transport=polling&t=rp6pmpfx HTTP/1.1" 200 OK
10:00:55 api.1       | INFO:     <IP_ADDRESS>:57434 - "OPTIONS /chat/ws/socket.io/?EIO=4&transport=polling&t=rp6qz0a3&sid=ochdon-Bc-f-hV5YAAAA HTTP/1.1" 200 OK
10:00:55 api.1       | INFO:     ('<IP_ADDRESS>', 57441) - "WebSocket /chat/ws/socket.io/?EIO=4&transport=websocket&sid=ochdon-Bc-f-hV5YAAAA" [accepted]
10:00:55 api.1       | INFO:     <IP_ADDRESS>:57431 - "OPTIONS /chat/ws/socket.io/?EIO=4&transport=polling&t=rp6r0pdd&sid=ochdon-Bc-f-hV5YAAAA HTTP/1.1" 200 OK
10:00:55 api.1       | INFO:     connection open
10:00:55 api.1       | {"type":"LOG","log":{"level":"INFO","message":"Authentication failed"}}
10:00:55 api.1       | INFO:     <IP_ADDRESS>:57443 - "POST /chat/ws/socket.io/?EIO=4&transport=polling&t=rp6qz0a3&sid=ochdon-Bc-f-hV5YAAAA HTTP/1.1" 200 OK
10:00:55 api.1       | INFO:     <IP_ADDRESS>:57434 - "GET /chat/ws/socket.io/?EIO=4&transport=polling&t=rp6r0pdd&sid=ochdon-Bc-f-hV5YAAAA HTTP/1.1" 200 OK
10:00:55 api.1       | INFO:     <IP_ADDRESS>:57434 - "OPTIONS /chat/ws/socket.io/?EIO=4&transport=polling&t=rp6td00j&sid=ochdon-Bc-f-hV5YAAAA HTTP/1.1" 200 OK
10:00:55 api.1       | INFO:     <IP_ADDRESS>:57443 - "GET /chat/ws/socket.io/?EIO=4&transport=polling&t=rp6td00j&sid=ochdon-Bc-f-hV5YAAAA HTTP/1.1" 200 OK
10:00:55 api.1       | INFO:     <IP_ADDRESS>:57443 - "OPTIONS /chat/ws/socket.io/?EIO=4&transport=polling&t=rp6v2btm&sid=ochdon-Bc-f-hV5YAAAA HTTP/1.1" 200 OK
10:00:55 api.1       | INFO:     <IP_ADDRESS>:57434 - "GET /chat/ws/socket.io/?EIO=4&transport=polling&t=rp6v2btm&sid=ochdon-Bc-f-hV5YAAAA HTTP/1.1" 200 OK
10:00:55 api.1       | INFO:     connection closed

Some screenshots from the browser console:

Thanks. That was quick! Could you send the browser's Console as well?
I am about to test with a similar setup for our own application RN.

@evantahler The auth error comes from here: https://github.com/Chainlit/chainlit/blob/8b2d4bacfd4fa2c8af72e2d140d527d20125b07b/backend/chainlit/socket.py#L117
Could you remove the try/except there, or change it into console.exception() to get the underlying Exception?

On my setup (no custom data layer, but using mount_chainlit(), with a single instance, I don't get authorization errors.

The browser console for this page is just tons of react errors about tooltips and mimetypes.  Here's the output in a gist - https://gist.github.com/evantahler/171f6aa0a9f862c0122ec0728d8c430c

GTG now, happy to look again tomorrow. Any discriminating factors (what auth are you using) and/or feedback from other users greatly appreciated.

@evantahler The auth error comes from here:
https://github.com/Chainlit/chainlit/blob/8b2d4bacfd4fa2c8af72e2d140d527d20125b07b/backend/chainlit/socket.py#L117
Could you remove the try/except there, or change it into logger.exception() to get the underlying Exception?

Looks like my auth is none:
``
10:45:00 api.1       | {"type":"LOG","log":{"level":"ERROR","message":"Authentication failed\nTraceback (most recent call last):\n  File "/Users/evan/Library/Caches/pypoetry/virtualenvs/app---U6Ca7R-py3.10/lib/python3.10/site-packages/socketio/async_server.py", line 555, in _handle_connect\n    success = await self._trigger_event(\n  File "/Users/evan/Library/Caches/pypoetry/virtualenvs/app---U6Ca7R-py3.10/lib/python3.10/site-packages/socketio/async_server.py", line 637, in _trigger_event\n    ret = await handler(*args)\nTypeError: connect() missing 1 required positional argument: 'auth'\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n  File "/Users/evan/Library/Caches/pypoetry/virtualenvs/app---U6Ca7R-py3.10/lib/python3.10/site-packages/chainlit/socket.py", line 97, in connect\n    token = auth.get("token")\nAttributeError: 'NoneType' object has no attribute 'get'"}}

Perhaps I'm still using an older version of the UI... any way to confirm that it has been re-compiled/re-built?

Perhaps I'm still using an older version of the UI... any way to confirm that it has been re-compiled/re-built?
Edit:
I /think/ that the fact that the websocket request is not including any cookie header matches this

Yes, that seems most likely. Can you share your Dockerfile?
Normally, poetry install should trigger npm buildUi, which builds the UI - then it copies it to chainlit/backend/chainlit/frontend/dist` from where chainlit serves it.
However, if you are running a chainlit install from the repo (as should be the case for source builds), AFAIK it serves from frontend/dist instead.
The obvious way is to add a console.log() somewhere. ;)

Most likely using an old version of the UI. The auth change happens in the react-client (which is supposed to be rebuilt as well by pnpm run buildUi).

@willydouhard @dokterbob Just installed chainlit from main branch and got the same message about TypeError: connect() missing 1 required positional argument: 'auth'\n\n

I am not able to reproduce, did you rebuild the entire UI including the react client? The auth change is actually in the react client which is a dependency of the main frontend.

The pre-release is available @evantahler @asvishnyakov.
pip3 install -U --pre chainlit

Let me know if it works on your end.

@willydouhard Thank you! This resolved the issue. Glad to be able use new version, it has amazing features!

We are using a custom frontend (@chainlit/react-client), and it looks like a new version of the frontend hasn't been pushed to NPM yet https://www.npmjs.com/package/@chainlit/react-client?activeTab=versions

I just released it, version 0.2.1.

We are using a custom frontend (@chainlit/react-client), and it looks like a new version of the frontend hasn't been pushed to NPM yet https://www.npmjs.com/package/@chainlit/react-client?activeTab=versions


Update Reek config to make it's Rails-friendly when using engines

What happened
Update Reek's configuration to make it's Rails-friendly when using engines
Insight
Reeks' official documentation recommend to add this to its configuration when working with Rails:
directories:
  "app/controllers":
    IrresponsibleModule:
      enabled: false
    NestedIterators:
      max_allowed_nesting: 2
    UnusedPrivateMethod:
      enabled: false
    InstanceVariableAssumption:
      enabled: false
  "app/helpers":
    IrresponsibleModule:
      enabled: false
    UtilityFunction:
      enabled: false
  "app/mailers":
    InstanceVariableAssumption:
      enabled: false
  "app/models":
    InstanceVariableAssumption:
      enabled: false

This PR adds a missing config for models and also support Rails engines
Proof Of Work
N/A

@ankitkalia1195 let's make sure that we delete the branch once it's merged, to keep the remote branches clean & easy to navigate around.


homebrew module loop deprecation warning

The homebrew module used by this role is capable of installing multiple packages without a loop construct.
TASK [geerlingguy.homebrew : Ensure configured homebrew packages are installed.] ***********************
[DEPRECATION WARNING]: Invoking "homebrew" only once while using a loop via squash_actions is
deprecated. Instead of using a loop to supply multiple items and specifying `name: {{ item.name |
default(item) }}`, please use `name: u'{{ homebrew_installed_packages }}'` and remove the loop. This
feature will be removed in version 2.11. Deprecation warnings can be disabled by setting
deprecation_warnings=False in ansible.cfg.

The problem is, the stanza dealing with installing packages via brew needs to also deal with the install_options variant of specifying the homebew_installed_packages
# Brew.
- name: Ensure configured homebrew packages are installed.
  homebrew:
    name: "{{ item.name | default(item) }}"
    install_options: "{{ item.install_options | default(omit) }}"
    state: present
  with_items: "{{ homebrew_installed_packages }}"
  notify:
    - Clear homebrew cache

Yeah... that's why I haven't fixed it in this role yet, because I'm not sure hwo to easily do that when changing the structure. Maybe call the task in a loop, but that feels all kinds of wrong.

If I understood this correctly... it's not that looping won't be possible anymore. It's that squash_actions won't be used to condense the loop into a single action. You should still be able to loop over these packages with custom install options for each package. It just won't happen in a single brew install command.

To clarify, if you want to bypass this deprecation warning, consider investigating https://docs.ansible.com/ansible/2.7/reference_appendices/config.html?highlight=squash_actions#default-squash-actions until Ansible 2.11 is released

So I guess... this would still work after 2.11? I was thinking something might break, but reading further, maybe it won't. And if not, for this role at least, I'm willing to live with the deprecation warning for a few versions.

I needed to rebuild my system, but I'll PR a config change to the ANSIBLE_SQUASH_ACTIONS setting to at least confirm that this warning can be safely ignored.

@geerlingguy Even attempting to override squash_actions triggers the deprecation warning. They want us to upgrade to use loop instead of with_X constructs. This will remove the deprecation warnings as a side-effect. See #112 for the fix.


use latest electon-docs-linter

~/git/electron/electron-typescript-definitions master
$ np patch
 ✔ Prerequisite check
 ✔ Git
 ✔ Cleanup
 ✔ Installing dependencies using npm
 ✔ Running tests
 ✔ Bumping version using npm
 ✔ Publishing package
 ✔ Pushing tags

 electron-typescript-definitions 1.2.11 published 🎉


Are any pretrained model weights provided?

I want to confirm whether any pretrained model weights are available. I noticed that a .pth file was provided based on the previous issue, but I can't seem to find it now.
Thank you very much!

同问


Compute: HashiCorp Nomad

Hi,
We'd like to use Funnel to schedule jobs on a HashiCorp Nomad cluster.
Are there plans to support this? Or are there any resources available on how we could implement this?
Thanks
M

We haven't looked at it yet. How hard is it to set up a test cluster?

Fairly easy, they have quite the comprehensive manual, with pre-built vagrant (obviously) boxes,
so a test cluster is just a matter of minutes.
https://learn.hashicorp.com/nomad

From what I gather, the approach should be fairly similar to AWS batch. They also have a native go API to talk to the cluster, which should make it even more smooth.

We're doing some work on a Kubernetes backend at the moment. We might have some time after that, but we'd need to be able to build a test cluster first. For some of the other backends, we had some luck with building docker based test environments, so that backend could be tested as part of the Travis continuous integration. I'm just curious how much work getting that kind of testing environment would take.

If you let me know what you need I might be able to cook something up. As opposed to go, I am used to working with docker etc.
Cheers
M

although, running a nomad test cluster in travis would require docker-in-docker, which I'm not sure Travis allows...
M

Congrats on the new release!
Any updates on the nomad front? Is there anything we can do to help?
Thanks
M

Hi guys!
Were you ever able to put this on the roadmap?
Thanks
M

We've been concentrating on updating to TES API compatibility v1.1 (making sure we have full conformance), and supporting NextFlow.  Most of that work can be seen in #749


fix: update q1 2023 output templates (#1273)

Ticket #1273
Description
Ohio informed us that Treasury has new output templates. I followed the procedure here to add update the templates to the ones sent by Ohio.
Screenshots / Demo Video
N/A
Testing
I uploaded "SDE 2.27 Q1 2023 FINAL_Fixed.xlsm" from CT, then clicked "Download Treasury Report" and verified that the csv was the correct format.
Automated and Unit Tests

[ ] Added Unit tests
N/A

Manual tests for Reviewer

[x] Added steps to test feature/functionality manually

Checklist

[x] Provided ticket and description
[x] Provided screenshots/demo
[x] Provided testing information
[x] Provided adequate test coverage for all new code
[x] Added PR reviewers

Okay, things look good and can move to Prod. I was able to validate the following specific Output Files:

expendituresGT50000BulkUpload
expendituresLT50000BulkUpload
project18_229233BulkUpload
project236BulkUpload
project4142BulkUpload
subawardBulkUpload
subRecipientBulkUpload


feat: log godwoken components before testing

Description
This PR adds a step to request and print the version of Godwoken components.
Relavent issue:

https://github.com/nervosnetwork/godwoken-tests/issues/165


Driver support for virtio objects

While the specification mentions how virtio objects can be imported and exported, the guest driver does not support this yet. The main obstacle is figuring out how to test this with an upstream kernel, and probably virtio-gpu.

Let me bring to your attention, in case it helps, that rust-vmm has a relatively new, WiP implementation of virtio-gpu that may be useful for testing this feature: https://github.com/rust-vmm/vhost-device/tree/main/staging/vhost-device-gpu
Testing is indeed going to be a challenge, but when the time comes, we can work together to figure it out.
cc: @dorindabassey @mtjhrc


What should the website look like? - home page mock-up

This is the overview of the entire website and what it entails:

[ ] What all pages should the website contain?
[ ] What should be the basic theme of the website? - design, background, color combination
[ ] Basic mock-up of the home page.

What all pages should the website contain?

A Landing Page.
Login Page.
Sign Up Page.
Search Results.
Mentor's Profile.
Mentee's Profile.
About.
How it works.
Chat Page?

These are the basic pages I can think of right now.

What should be the basic theme of the website? - design, background, color combination

Grey Background with black and blue accent for Mentors and black and pink accent for Mentees.
I think that it should work, any thoughts?

This is not what I suggested initially but I've gone with this.
Let me know how you like it?

This looks great, @pransh15! Can you add this to the repo? Thanks! :)

@ipsha21 is it helpful to still add comments about this landing page and the site? What would be valuable?

Yes, absolutely! Would love more inputs. @amirad
@pransh15 could you post the new layout here for reference and improvement? Thanks. :)

Ok great, will wait for the new layout from @pransh15 before I give feedback!

Hey, @amirad and @ipsha21 ! 👋
Here's the landing page mock-up.

Great! Here are some thoughts:
•I love the logo and think it needs to be bigger or have a bigger pop. Maybe give it lots of space?
•What is guide for? That is the same as learn to me.
•Can search be a search box in the top instead of it's own tab?
•Can we stick to the two colours used in the logo for other things on the page? Like the buttons and the text at the bottom? It will make it look more crisp!
•I really like that the focus is on two quick calls to action

Increase the logo size? Can do!

Guide is for the mentors. If you have a skill to guide mentees on, click on that!

Find a mentor too, serves the same purpose as searching so we thought we don't really need a search box, since anyone who wants to learn will click on the Find a Mentor button and will be redirected to the same page. #KeepingItDirect 🆙

We can, that's what we decided initially but this is just a mock-up so didn't really go into the detailed color scheme yet. But will surely do!

Yes, it was @ipsha21's idea to keep it simple and straight!

@amirad thanks for the feedback!
Although @pransh15 has covered it, just to be crystal clear, a few pointers:

What is guide for? That is the same as learn to me.

Clicking on "guide" (as in the verb, guide) would redirect to the same page as clicking on "be a mentor".  And, "learn" is essentially the same as "find a mentor"; they both redirect to the same page. The reason why we have a guide and a learn link at the header is because the header would remain constant throughout the website, giving the users the freedom to easily access those pages at any time while browsing the website.
Do you think we could do better with the naming, if it's confusing? Suggestions are welcome. :)

Can search be a search box in the top instead of it's own tab?

We could, but then we thought there should be page listing all the mentors as well.
So, the search tab redirects to a page (search.html) containing the list/grid of database of the mentors. We'll have a search box on this page, to search a mentor through some keyword, tag, skill, language, location, etc.
Like this, https://github.com/ipsha21/altruism-in-tech/issues/15
Also, now that I think of it, the "learn" tab and the "search" tab both are redirecting to search.html so we'll omit one of them. Thanks for bringing this up!
Do you still think there should be a search box at the home page?

It doesn't sound like we need a search box on the main page (especially if there is a search for mentors!).
Others sound good!


Request for Non-Destructive Processing in AlignFaceUsingLandmarks Function

Dear [Developer/Support Team]
My source images are relatively large, and they need to be processed multiple times. To optimize performance and ensure data integrity, I would like the AlignFaceUsingLandmarks function to not modify the input source image but instead return the processed result as a new image.
Currently, the function modifies the input image directly, which can lead to inefficiencies when the same image needs to be processed repeatedly. Returning a new image would allow me to maintain the original source image and reduce the overhead associated with cloning or creating multiple copies of the image.
Could you please consider updating the AlignFaceUsingLandmarks function to return the processed image rather than modifying the input? This change would greatly enhance the usability and efficiency of the function in scenarios where images need to be processed multiple times.
Thank you for your consideration.
Best regards

Hey @cxf567,
I think modifying it in this way would actually decrease performance for a lot of users and that is why it works how it currently does. To be able to return a modified copy of the image instead of working in-place, AlignFaceUsingLandmarks itself would need to perform Clone. If you call clone or FaceAiSharp does internally does not have any impact on performance. Thus, FaceAiSharp is designed as it currently is because this way, users who don't need to maintain an unmodified copy don't need to pay the cost for cloning. Users who need to maintain an unmodified copy would need to pay the cost of cloning in any way, but the current design enables all use cases in the most efficient way possible with just one API.
If you have any more specific ideas how to optimize this process, please let me know!

It could be possible that Clone(op) (what you propose) is faster than Clone().Mutate(op) (what you are currently forced to do). I'm not sure about that though and would be interested in seeing a quick benchmark before changing the API 🤔

Hello,
My project frequently involves processing images with a resolution of around 6 million pixels, containing approximately 50 faces. Currently, I handle this as follows:
1foreach (var face in faces){
Image clonedImage = img.Clone();
rec.AlignFaceUsingLandmarks(clonedImage, face.Landmarks);
float[] embedding = rec.GenerateEmbedding(clonedImage);
// ...
}
If the processing result is returned, it can be written like this:
foreach (var face in faces){
float[] embedding = rec.GenerateEmbedding(rec.AlignFaceUsingLandmarks(img, face.Landmarks));
// ...
}
I am not sure about the internal process of the AlignFaceUsingLandmarks function. When dealing with images containing multiple faces, I wonder if this approach is better.
Most programmers don't care about the intermediate process; we need the final result. I think the most straightforward workflow would be something like this: :-)
var faces = det.DetectFaces(img).ToArray();
var imgs = rec.AlignFaceUsingLandmarks(img, faces);
var Embeddings = rec.GenerateEmbedding(imgs);
I'm not sure if my idea is correct, but I hope it serves as a reference.
Best regards!

I did some Benchmarks and they indeed seem to indicate that Clone(op) is faster in most cases - contrary to what I expected often even faster than Mutate(op), not only faster than Clone().Mutate(op). Thus it would make sense to change the API so that AlignFaceUsingLandmarks returns a cloned portion of the image: I will probably think about this a bit more, but probably implement something like you proposed. Thanks!


[Bug] (-l all -m audio) adding the English Dub when it isn't matching

-m audio - adds only English Dubs even when it isn't match.
Others are ignored, only English always added.
I've tried using this command:
app.exe archive --resolution best -l all -m audio --directory "Season {season_number}" --output "{series_name} [S{season_number}E{episode_number}] - {title} - [{resolution}][{audio}][{subtitle}].mkv" %stream%
and tried on Classroom of the Elite.
https://beta.crunchyroll.com/series/GRVN8MNQY

It adds all of the matching ones, and English, which isn't match.

What exactly are you trying to do?

I'm trying to make a video with multiple dubs.
When i'm choosing to merge the audio,
It says which dubs accurite to the jp video,
And merge them together.
The only problem is that it isn't detect that the English dub has different video, and it isn't accurate to the jp video source.

You have to remove the -m audio flag. It forces crunchy-cli to download just a single video (in this case, the japanese) and for all other dubs, store only their audio. You have to remove it if you want matching english video and dubs.
There is also a tiny wiki section about this issue (down at Archive, before the flag table).

Oh, okay.
So it doesn't check if dubs is the same length as the jp-video?
And i have another request, can you add an option to download and mux fonts?
Because when, for example, you are download an Arabic Subtitles, it uses a font that Crunchyroll sends to the client.

Oh, and Crunchyroll tagged wrong the first season, they call it "S2 - Platinum End",
when i do try to use "-m audio" it isn't merge, i think because you programmed it to find dubs by season number.
I don't know what is going on Crunchyroll...


Android build fails with gradle 8

usabilla-u4a-android-sdk deployed 8.0.2 version. They removed a few constants which that are used by usabilla-u4a-react-native
node_modules/usabilla-react-native/android/src/main/java/com/usabilla/reactnative/ubform/UsabillaBridge.java:289: error: cannot find symbol
        LocalBroadcastManager.getInstance(getReactApplicationContext()).registerReceiver(closingFormReceiver, new IntentFilter(UbConstants.INTENT_CLOSE_FORM));
                                                                                ^
  symbol:   variable INTENT_CLOSE_FORM
  location: class UbConstants
node_modules/usabilla-react-native/android/src/main/java/com/usabilla/reactnative/ubform/UsabillaBridge.java:290: error: cannot find symbol
        LocalBroadcastManager.getInstance(getReactApplicationContext()).registerReceiver(closingCampaignReceiver, new IntentFilter(UbConstants.INTENT_CLOSE_CAMPAIGN));
                                                                                ^
  symbol:   variable INTENT_CLOSE_CAMPAIGN
  location: class UbConstants

hardcoding to use  implementation 'com.usabilla.sdk:ubform:8.0.0' in node_modules/usabilla-react-native/android/build.gradle helps to resolve the problem 🙂
"expo": "49.0.5",
"react-native": "0.72.3",

sorry... didn't update to the latestusabilla-u4a-react-native version.


Add PPROF_MUTEX_PROFILING_PERCENT env var details

PPROF_MUTEX_PROFILING_PERCENT enables the ability to retrieve data from the pprof mutex endpoint. It needs to be set to a whole number, for example 50 would profile 50% of the mutexes. 5 is likely a sufficient value. By default we sample 0.01 percent.
PPROF_BLOCK_PROFILING_RATE also allows tracking of mutexes for arcane reasons 1 tracks everything, 0 tracks nothing. Any value over 1 is treated as track anything over  nanoseconds. By default we apply 10,000 for tracking.
Originally posted by @mattdurham in https://github.com/grafana/alloy/issues/1137#issuecomment-2206532926

@mattdurham A question about the description provided for PPROF_MUTEX_PROFILING_PERCENT. The env var needs to be set to a while number (integer)? But... the default is 0.01 percent? Those two things don't add up for me. 0.01 isn't a whole number... should that have been 1 (meaning 1%)?


[🐛 Bug]: new NextResponse() ignoring 2xx status codes, always returning 404

next-on-pages environment related information
"@cloudflare/next-on-pages": "0.0.0-f879ffd"
Description
Returning a new Response with a status code of 200 will always return status code 404.
E.g:
return new NextResponse(
      `Hello, world`,
      {
        status: 200,
        headers: {
          'content-type': 'text/html',
        },
      },
    )

If you return a status code of 400 it will work, but a 200 status code does not and will always result in 404.
The bug seems to be caused by this line:
https://github.com/cloudflare/next-on-pages/blob/f879ffd7f6031bdff6420ad53047aa31c3c39f97/packages/next-on-pages/templates/_worker.js/routes-matcher.ts#L564
Removing the this.status < 400 check fixes the issue, but I assume this is here for other reasons.
Reproduction
No response
Pages Deployment Method
None
Pages Deployment ID
No response
Additional Information
No response
Would you like to help?

[ ] Would you like to help fixing this bug?

Hey there, thank you for raising this issue.
It appears I didn't quite bail out of routing completing when I added the change to account for returning new NextResponse 🙈, so it would have always gone through the check for the route existing in the build output.
I have just opened a PR that should resolve this, and I would welcome you to try out the prerelease in https://github.com/cloudflare/next-on-pages/pull/342#issuecomment-1609165186 🙂.


Airflow sqlalchemy.exc.InvalidRequestError: Table 'ab_permission_view_role' is already defined for this MetaData instance. Specify 'extend_existing=True' to redefine options and columns on an existing Table object

Checks

[X] I have checked for existing issues.
[X] This report is about the User-Community Airflow Helm Chart.

Chart Version
8.7.1
Kubernetes Version
AKS- 1.25.6

Helm Version
version.BuildInfo{Version:"v3.7.2", GitCommit:"663a896f4a815053445eec4153677ddc24a0a361", GitTreeState:"clean", GoVersion:"go1.16.10"}

Description
I am trying to install airflow 1.26.0 using 8.7.1 helm chart
I am getting errors in sync user pod and airflow web pod
airflow-sync-users-b8dc65576-j55b5.log
airflow-web-7469d4449b-h46gd.log
Relevant Logs
airflow sync logs

/home/airflow/.local/lib/python3.8/site-packages/airflow/configuration.py:468 FutureWarning: The 'dag_default_view' setting in [webserver] has the old default value of 'tree'. This value has been changed to 'grid' in the running config, but please update your config before Apache Airflow 3.0.
/home/airflow/.local/lib/python3.8/site-packages/airflow/configuration.py:468 FutureWarning: The 'log_filename_template' setting in [logging] has the old default value of '{{ ti.dag_id }}/{{ ti.task_id }}/{{ ts }}/{{ try_number }}.log'. This value has been changed to 'dag_id={{ ti.dag_id }}/run_id={{ ti.run_id }}/task_id={{ ti.task_id }}/{% if ti.map_index >= 0 %}map_index={{ ti.map_index }}/{% endif %}attempt={{ try_number }}.log' in the running config, but please update your config before Apache Airflow 3.0.
/home/airflow/.local/lib/python3.8/site-packages/airflow/configuration.py:347 DeprecationWarning: The auth_backend option in [api] has been renamed to auth_backends - the old setting has been used, but please update your config.
/home/airflow/.local/lib/python3.8/site-packages/airflow/configuration.py:468 FutureWarning: The 'log_id_template' setting in [elasticsearch] has the old default value of '{dag_id}-{task_id}-{execution_date}-{try_number}'. This value has been changed to '{dag_id}-{task_id}-{run_id}-{map_index}-{try_number}' in the running config, but please update your config before Apache Airflow 3.0.
/home/airflow/.local/lib/python3.8/site-packages/airflow/configuration.py:370 DeprecationWarning: The auth_backend option in [api] has been renamed to auth_backends - the old setting has been used, but please update your config.
/home/airflow/.local/lib/python3.8/site-packages/airflow/configuration.py:384 FutureWarning: The auth_backends setting in [api] has had airflow.api.auth.backend.session added in the running config, which is needed by the UI. Please update your config before Apache Airflow 3.0.
/home/airflow/.local/lib/python3.8/site-packages/airflow/settings.py:338 DeprecationWarning: The sql_alchemy_pool_enabled option in [core] has been moved to the sql_alchemy_pool_enabled option in [database] - the old setting has been used, but please update your config.
/home/airflow/.local/lib/python3.8/site-packages/airflow/settings.py:345 DeprecationWarning: The sql_alchemy_pool_size option in [core] has been moved to the sql_alchemy_pool_size option in [database] - the old setting has been used, but please update your config.
/home/airflow/.local/lib/python3.8/site-packages/airflow/settings.py:357 DeprecationWarning: The sql_alchemy_max_overflow option in [core] has been moved to the sql_alchemy_max_overflow option in [database] - the old setting has been used, but please update your config.
/home/airflow/.local/lib/python3.8/site-packages/airflow/settings.py:363 DeprecationWarning: The sql_alchemy_pool_recycle option in [core] has been moved to the sql_alchemy_pool_recycle option in [database] - the old setting has been used, but please update your config.
/home/airflow/.local/lib/python3.8/site-packages/airflow/settings.py:370 DeprecationWarning: The sql_alchemy_pool_pre_ping option in [core] has been moved to the sql_alchemy_pool_pre_ping option in [database] - the old setting has been used, but please update your config.
/home/airflow/.local/lib/python3.8/site-packages/airflow/settings.py:401 DeprecationWarning: The sql_engine_encoding option in [core] has been moved to the sql_engine_encoding option in [database] - the old setting has been used, but please update your config.
/home/airflow/.local/lib/python3.8/site-packages/airflow/utils/retries.py:28 DeprecationWarning: The max_db_retries option in [core] has been moved to the max_db_retries option in [database] - the old setting has been used, but please update your config.
/home/airflow/.local/lib/python3.8/site-packages/airflow/models/base.py:27 DeprecationWarning: The sql_alchemy_schema option in [core] has been moved to the sql_alchemy_schema option in [database] - the old setting has been used, but please update your config.
/home/airflow/.local/lib/python3.8/site-packages/airflow/settings.py:338 DeprecationWarning: The sql_alchemy_pool_enabled option in [core] has been moved to the sql_alchemy_pool_enabled option in [database] - the old setting has been used, but please update your config.
/home/airflow/.local/lib/python3.8/site-packages/airflow/settings.py:345 DeprecationWarning: The sql_alchemy_pool_size option in [core] has been moved to the sql_alchemy_pool_size option in [database] - the old setting has been used, but please update your config.
/home/airflow/.local/lib/python3.8/site-packages/airflow/settings.py:357 DeprecationWarning: The sql_alchemy_max_overflow option in [core] has been moved to the sql_alchemy_max_overflow option in [database] - the old setting has been used, but please update your config.
/home/airflow/.local/lib/python3.8/site-packages/airflow/settings.py:363 DeprecationWarning: The sql_alchemy_pool_recycle option in [core] has been moved to the sql_alchemy_pool_recycle option in [database] - the old setting has been used, but please update your config.
/home/airflow/.local/lib/python3.8/site-packages/airflow/settings.py:370 DeprecationWarning: The sql_alchemy_pool_pre_ping option in [core] has been moved to the sql_alchemy_pool_pre_ping option in [database] - the old setting has been used, but please update your config.
/home/airflow/.local/lib/python3.8/site-packages/airflow/settings.py:401 DeprecationWarning: The sql_engine_encoding option in [core] has been moved to the sql_engine_encoding option in [database] - the old setting has been used, but please update your config.
/home/airflow/.local/lib/python3.8/site-packages/airflow/models/dag.py:395 DeprecationWarning: The dag_concurrency option in [core] has been renamed to max_active_tasks_per_dag - the old setting has been used, but please update your config.
/home/airflow/.local/lib/python3.8/site-packages/airflow/models/dag.py:3471 DeprecationWarning: The dag_concurrency option in [core] has been renamed to max_active_tasks_per_dag - the old setting has been used, but please update your config.
Traceback (most recent call last):
  File "/mnt/scripts/sync_users.py", line 141, in <module>
    flask_app = www_app.create_app()
  File "/home/airflow/.local/lib/python3.8/site-packages/airflow/www/app.py", line 129, in create_app
    init_api_experimental_auth(flask_app)
  File "/home/airflow/.local/lib/python3.8/site-packages/airflow/www/extensions/init_security.py", line 60, in init_api_experimental_auth
    auth = import_module(backend.strip())
  File "/usr/local/lib/python3.8/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
  File "<frozen importlib._bootstrap>", line 991, in _find_and_load
  File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 843, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/opt/airflow/keycloak_auth.py", line 27, in <module>
    from flask_appbuilder.security.sqla.models import User
  File "/home/airflow/.local/lib/python3.8/site-packages/flask_appbuilder/security/sqla/models.py", line 48, in <module>
    assoc_permissionview_role = Table(
  File "<string>", line 2, in __new__
  File "/home/airflow/.local/lib/python3.8/site-packages/sqlalchemy/util/deprecations.py", line 375, in warned
    return fn(*args, **kwargs)
  File "/home/airflow/.local/lib/python3.8/site-packages/sqlalchemy/sql/schema.py", line 596, in __new__
    raise exc.InvalidRequestError(
sqlalchemy.exc.InvalidRequestError: Table 'ab_permission_view_role' is already defined for this MetaData instance.  Specify 'extend_existing=True' to redefine options and columns on an existing Table object.

Airflow web pod logs

/home/airflow/.local/lib/python3.8/site-packages/airflow/configuration.py:468 FutureWarning: The 'dag_default_view' setting in [webserver] has the old default value of 'tree'. This value has been changed to 'grid' in the running config, but please update your config before Apache Airflow 3.0.
/home/airflow/.local/lib/python3.8/site-packages/airflow/configuration.py:468 FutureWarning: The 'log_filename_template' setting in [logging] has the old default value of '{{ ti.dag_id }}/{{ ti.task_id }}/{{ ts }}/{{ try_number }}.log'. This value has been changed to 'dag_id={{ ti.dag_id }}/run_id={{ ti.run_id }}/task_id={{ ti.task_id }}/{% if ti.map_index >= 0 %}map_index={{ ti.map_index }}/{% endif %}attempt={{ try_number }}.log' in the running config, but please update your config before Apache Airflow 3.0.
/home/airflow/.local/lib/python3.8/site-packages/airflow/configuration.py:347 DeprecationWarning: The auth_backend option in [api] has been renamed to auth_backends - the old setting has been used, but please update your config.
/home/airflow/.local/lib/python3.8/site-packages/airflow/configuration.py:468 FutureWarning: The 'log_id_template' setting in [elasticsearch] has the old default value of '{dag_id}-{task_id}-{execution_date}-{try_number}'. This value has been changed to '{dag_id}-{task_id}-{run_id}-{map_index}-{try_number}' in the running config, but please update your config before Apache Airflow 3.0.
/home/airflow/.local/lib/python3.8/site-packages/airflow/configuration.py:370 DeprecationWarning: The auth_backend option in [api] has been renamed to auth_backends - the old setting has been used, but please update your config.
/home/airflow/.local/lib/python3.8/site-packages/airflow/configuration.py:384 FutureWarning: The auth_backends setting in [api] has had airflow.api.auth.backend.session added in the running config, which is needed by the UI. Please update your config before Apache Airflow 3.0.
/home/airflow/.local/lib/python3.8/site-packages/airflow/settings.py:338 DeprecationWarning: The sql_alchemy_pool_enabled option in [core] has been moved to the sql_alchemy_pool_enabled option in [database] - the old setting has been used, but please update your config.
/home/airflow/.local/lib/python3.8/site-packages/airflow/settings.py:345 DeprecationWarning: The sql_alchemy_pool_size option in [core] has been moved to the sql_alchemy_pool_size option in [database] - the old setting has been used, but please update your config.
/home/airflow/.local/lib/python3.8/site-packages/airflow/settings.py:357 DeprecationWarning: The sql_alchemy_max_overflow option in [core] has been moved to the sql_alchemy_max_overflow option in [database] - the old setting has been used, but please update your config.
/home/airflow/.local/lib/python3.8/site-packages/airflow/settings.py:363 DeprecationWarning: The sql_alchemy_pool_recycle option in [core] has been moved to the sql_alchemy_pool_recycle option in [database] - the old setting has been used, but please update your config.
/home/airflow/.local/lib/python3.8/site-packages/airflow/settings.py:370 DeprecationWarning: The sql_alchemy_pool_pre_ping option in [core] has been moved to the sql_alchemy_pool_pre_ping option in [database] - the old setting has been used, but please update your config.
/home/airflow/.local/lib/python3.8/site-packages/airflow/settings.py:401 DeprecationWarning: The sql_engine_encoding option in [core] has been moved to the sql_engine_encoding option in [database] - the old setting has been used, but please update your config.
/home/airflow/.local/lib/python3.8/site-packages/airflow/cli/cli_parser.py:905 DeprecationWarning: The namespace option in [kubernetes] has been moved to the namespace option in [kubernetes_executor] - the old setting has been used, but please update your config.
/home/airflow/.local/lib/python3.8/site-packages/airflow/models/base.py:27 DeprecationWarning: The sql_alchemy_schema option in [core] has been moved to the sql_alchemy_schema option in [database] - the old setting has been used, but please update your config.
/home/airflow/.local/lib/python3.8/site-packages/airflow/models/base.py:49 MovedIn20Warning: Deprecated API features detected! These feature(s) are not compatible with SQLAlchemy 2.0. To prevent incompatible upgrades prior to updating applications, ensure requirements files are pinned to "sqlalchemy<2.0". Set environment variable SQLALCHEMY_WARN_20=1 to show all deprecation warnings.  Set environment variable SQLALCHEMY_SILENCE_UBER_WARNING=1 to silence this message. (Background on SQLAlchemy 2.0 at: https://sqlalche.me/e/b8d9)
/home/airflow/.local/lib/python3.8/site-packages/airflow/utils/retries.py:28 DeprecationWarning: The max_db_retries option in [core] has been moved to the max_db_retries option in [database] - the old setting has been used, but please update your config.
/home/airflow/.local/lib/python3.8/site-packages/airflow/models/dag.py:396 DeprecationWarning: The dag_concurrency option in [core] has been renamed to max_active_tasks_per_dag - the old setting has been used, but please update your config.
/home/airflow/.local/lib/python3.8/site-packages/airflow/models/dag.py:3483 DeprecationWarning: The dag_concurrency option in [core] has been renamed to max_active_tasks_per_dag - the old setting has been used, but please update your config.
/home/airflow/.local/lib/python3.8/site-packages/airflow/jobs/scheduler_job.py:124 DeprecationWarning: The processor_poll_interval option in [scheduler] has been renamed to scheduler_idle_sleep_time - the old setting has been used, but please update your config.
/home/airflow/.local/lib/python3.8/site-packages/airflow/settings.py:338 DeprecationWarning: The sql_alchemy_pool_enabled option in [core] has been moved to the sql_alchemy_pool_enabled option in [database] - the old setting has been used, but please update your config.
/home/airflow/.local/lib/python3.8/site-packages/airflow/settings.py:345 DeprecationWarning: The sql_alchemy_pool_size option in [core] has been moved to the sql_alchemy_pool_size option in [database] - the old setting has been used, but please update your config.
/home/airflow/.local/lib/python3.8/site-packages/airflow/settings.py:357 DeprecationWarning: The sql_alchemy_max_overflow option in [core] has been moved to the sql_alchemy_max_overflow option in [database] - the old setting has been used, but please update your config.
/home/airflow/.local/lib/python3.8/site-packages/airflow/settings.py:363 DeprecationWarning: The sql_alchemy_pool_recycle option in [core] has been moved to the sql_alchemy_pool_recycle option in [database] - the old setting has been used, but please update your config.
/home/airflow/.local/lib/python3.8/site-packages/airflow/settings.py:370 DeprecationWarning: The sql_alchemy_pool_pre_ping option in [core] has been moved to the sql_alchemy_pool_pre_ping option in [database] - the old setting has been used, but please update your config.
/home/airflow/.local/lib/python3.8/site-packages/airflow/settings.py:401 DeprecationWarning: The sql_engine_encoding option in [core] has been moved to the sql_engine_encoding option in [database] - the old setting has been used, but please update your config.
/home/airflow/.local/lib/python3.8/site-packages/airflow/utils/retries.py:28 DeprecationWarning: The max_db_retries option in [core] has been moved to the max_db_retries option in [database] - the old setting has been used, but please update your config.
/home/airflow/.local/lib/python3.8/site-packages/airflow/settings.py:338 DeprecationWarning: The sql_alchemy_pool_enabled option in [core] has been moved to the sql_alchemy_pool_enabled option in [database] - the old setting has been used, but please update your config.
/home/airflow/.local/lib/python3.8/site-packages/airflow/settings.py:345 DeprecationWarning: The sql_alchemy_pool_size option in [core] has been moved to the sql_alchemy_pool_size option in [database] - the old setting has been used, but please update your config.
/home/airflow/.local/lib/python3.8/site-packages/airflow/settings.py:357 DeprecationWarning: The sql_alchemy_max_overflow option in [core] has been moved to the sql_alchemy_max_overflow option in [database] - the old setting has been used, but please update your config.
/home/airflow/.local/lib/python3.8/site-packages/airflow/settings.py:363 DeprecationWarning: The sql_alchemy_pool_recycle option in [core] has been moved to the sql_alchemy_pool_recycle option in [database] - the old setting has been used, but please update your config.
/home/airflow/.local/lib/python3.8/site-packages/airflow/settings.py:370 DeprecationWarning: The sql_alchemy_pool_pre_ping option in [core] has been moved to the sql_alchemy_pool_pre_ping option in [database] - the old setting has been used, but please update your config.
/home/airflow/.local/lib/python3.8/site-packages/airflow/settings.py:401 DeprecationWarning: The sql_engine_encoding option in [core] has been moved to the sql_engine_encoding option in [database] - the old setting has been used, but please update your config.
/home/airflow/.local/lib/python3.8/site-packages/airflow/models/base.py:27 DeprecationWarning: The sql_alchemy_schema option in [core] has been moved to the sql_alchemy_schema option in [database] - the old setting has been used, but please update your config.
/home/airflow/.local/lib/python3.8/site-packages/airflow/models/dag.py:396 DeprecationWarning: The dag_concurrency option in [core] has been renamed to max_active_tasks_per_dag - the old setting has been used, but please update your config.
/home/airflow/.local/lib/python3.8/site-packages/airflow/models/dag.py:3483 DeprecationWarning: The dag_concurrency option in [core] has been renamed to max_active_tasks_per_dag - the old setting has been used, but please update your config.
[2023-05-16 10:58:26,537] {keycloak_auth.py:37} INFO - Initializing Custom Api Auth Backend
/home/airflow/.local/lib/python3.8/site-packages/airflow/jobs/scheduler_job.py:124 DeprecationWarning: The processor_poll_interval option in [scheduler] has been renamed to scheduler_idle_sleep_time - the old setting has been used, but please update your config.
Traceback (most recent call last):
  File "/usr/local/lib/python3.8/runpy.py", line 194, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/usr/local/lib/python3.8/runpy.py", line 87, in _run_code
    exec(code, run_globals)
  File "/home/airflow/.local/lib/python3.8/site-packages/gunicorn/__main__.py", line 7, in <module>
    run()
  File "/home/airflow/.local/lib/python3.8/site-packages/gunicorn/app/wsgiapp.py", line 67, in run
    WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run()
  File "/home/airflow/.local/lib/python3.8/site-packages/gunicorn/app/base.py", line 231, in run
    super().run()
  File "/home/airflow/.local/lib/python3.8/site-packages/gunicorn/app/base.py", line 72, in run
    Arbiter(self).run()
  File "/home/airflow/.local/lib/python3.8/site-packages/gunicorn/arbiter.py", line 58, in __init__
    self.setup(app)
  File "/home/airflow/.local/lib/python3.8/site-packages/gunicorn/arbiter.py", line 118, in setup
    self.app.wsgi()
  File "/home/airflow/.local/lib/python3.8/site-packages/gunicorn/app/base.py", line 67, in wsgi
    self.callable = self.load()
  File "/home/airflow/.local/lib/python3.8/site-packages/gunicorn/app/wsgiapp.py", line 58, in load
    return self.load_wsgiapp()
  File "/home/airflow/.local/lib/python3.8/site-packages/gunicorn/app/wsgiapp.py", line 48, in load_wsgiapp
    return util.import_app(self.app_uri)
  File "/home/airflow/.local/lib/python3.8/site-packages/gunicorn/util.py", line 412, in import_app
    app = app(*args, **kwargs)
  File "/home/airflow/.local/lib/python3.8/site-packages/airflow/www/app.py", line 176, in cached_app
    app = create_app(config=config, testing=testing)
  File "/home/airflow/.local/lib/python3.8/site-packages/airflow/www/app.py", line 153, in create_app
    init_appbuilder(flask_app)
  File "/home/airflow/.local/lib/python3.8/site-packages/airflow/www/extensions/init_appbuilder.py", line 648, in init_appbuilder
    AirflowAppBuilder(
  File "/home/airflow/.local/lib/python3.8/site-packages/airflow/www/extensions/init_appbuilder.py", line 160, in __init__
    self.init_app(app, session)
  File "/home/airflow/.local/lib/python3.8/site-packages/airflow/www/extensions/init_appbuilder.py", line 206, in init_app
    self.sm = self.security_manager_class(self)
  File "/home/airflow/.local/lib/python3.8/site-packages/airflow/www/security.py", line 193, in __init__
    super().__init__(appbuilder)
  File "/home/airflow/.local/lib/python3.8/site-packages/airflow/www/fab_security/sqla/manager.py", line 68, in __init__
    user_datamodel = SQLAInterface(self.user_model)
  File "/home/airflow/.local/lib/python3.8/site-packages/flask_appbuilder/models/sqla/interface.py", line 68, in __init__
    for prop in class_mapper(obj).iterate_properties:
  File "/home/airflow/.local/lib/python3.8/site-packages/sqlalchemy/orm/base.py", line 448, in class_mapper
    mapper = _inspect_mapped_class(class_, configure=configure)
  File "/home/airflow/.local/lib/python3.8/site-packages/sqlalchemy/orm/base.py", line 427, in _inspect_mapped_class
    mapper._check_configure()
  File "/home/airflow/.local/lib/python3.8/site-packages/sqlalchemy/orm/mapper.py", line 1941, in _check_configure
    _configure_registries({self.registry}, cascade=True)
  File "/home/airflow/.local/lib/python3.8/site-packages/sqlalchemy/orm/mapper.py", line 3527, in _configure_registries
    _do_configure_registries(registries, cascade)
  File "/home/airflow/.local/lib/python3.8/site-packages/sqlalchemy/orm/mapper.py", line 3566, in _do_configure_registries
    mapper._post_configure_properties()
  File "/home/airflow/.local/lib/python3.8/site-packages/sqlalchemy/orm/mapper.py", line 1958, in _post_configure_properties
    prop.init()
  File "/home/airflow/.local/lib/python3.8/site-packages/sqlalchemy/orm/interfaces.py", line 231, in init
    self.do_init()
  File "/home/airflow/.local/lib/python3.8/site-packages/sqlalchemy/orm/relationships.py", line 2150, in do_init
    self._process_dependent_arguments()
  File "/home/airflow/.local/lib/python3.8/site-packages/sqlalchemy/orm/relationships.py", line 2245, in _process_dependent_arguments
    self.target = self.entity.persist_selectable
  File "/home/airflow/.local/lib/python3.8/site-packages/sqlalchemy/util/langhelpers.py", line 1113, in __get__
    obj.__dict__[self.__name__] = result = self.fget(obj)
  File "/home/airflow/.local/lib/python3.8/site-packages/sqlalchemy/orm/relationships.py", line 2112, in entity
    argument = self._clsregistry_resolve_name(self.argument)()
  File "/home/airflow/.local/lib/python3.8/site-packages/sqlalchemy/orm/clsregistry.py", line 393, in _resolve_name
    rval = d[token]
  File "/home/airflow/.local/lib/python3.8/site-packages/sqlalchemy/util/_collections.py", line 746, in __missing__
    self[key] = val = self.creator(key)
  File "/home/airflow/.local/lib/python3.8/site-packages/sqlalchemy/orm/clsregistry.py", line 352, in _access_cls
    return _determine_container(key, decl_class_registry[key])
  File "/home/airflow/.local/lib/python3.8/site-packages/sqlalchemy/orm/clsregistry.py", line 313, in _determine_container
    value = value.attempt_get([], key)
  File "/home/airflow/.local/lib/python3.8/site-packages/sqlalchemy/orm/clsregistry.py", line 144, in attempt_get
    raise exc.InvalidRequestError(
sqlalchemy.exc.InvalidRequestError: Multiple classes found for path "Permission" in the registry of this declarative base. Please use a fully module-qualified path.

Custom Helm Values
No response

Dear community,
Can any one help me with this issue.
Is there any workaround to avoid this errors?
Thanks

Yeah we are also facing the same issue. Anyone able to find workaround?

Please check your Airflow version as there might be several deprecated variables that need to be updated. You can verify the variables using your Airflow.
It is recommended to review the changes made after version 2.3.0, as there have been significant updates.
You can find more information on the official Apache Airflow documentation: link.

@naani10 @PankushSharma @crotielwf I have a suspicion that the issue is related to the webserver_config.py.
Are you using a custom webserver_config.py (which  is configured with the web.webserverConfig.* values)?
If so, can you share it here?
If you are not using a custom webserver_config.py, I bet that our default one is not working properly.
Can try setting the webserver config to a slightly different default by using the values:
web:
  webserverConfig:
    stringOverride: |
      from airflow.www.fab_security.manager import AUTH_DB
      AUTH_TYPE = AUTH_DB

@naani10 actually looking at your logs, the issue is in your custom /opt/airflow/keycloak_auth.py file.
The issue is the same as this user's problem (https://github.com/apache/airflow/issues/27138), where they were importing from flask_appbuilder.security.sqla.models import User, but the correct User module for airflow 2.3.0+ is from airflow.www.fab_security.sqla.models import User.

Hi @thesuperzapper  please find the webserver_config.py below.
  import os

  from flask_appbuilder.security.manager import AUTH_DB

  # from flask_appbuilder.security.manager import AUTH_LDAP
  # from flask_appbuilder.security.manager import AUTH_OAUTH
  # from flask_appbuilder.security.manager import AUTH_OID
  # from flask_appbuilder.security.manager import AUTH_REMOTE_USER

  basedir = os.path.abspath(os.path.dirname(__file__))

  # Flask-WTF flag for CSRF
  WTF_CSRF_ENABLED = True

  # ----------------------------------------------------
  # AUTHENTICATION CONFIG
  # ----------------------------------------------------
  # For details on how to set up each of the following authentication, see
  # http://flask-appbuilder.readthedocs.io/en/latest/security.html# authentication-methods
  # for details.

  # The authentication type
  # AUTH_OID : Is for OpenID
  # AUTH_DB : Is for database
  # AUTH_LDAP : Is for LDAP
  # AUTH_REMOTE_USER : Is for using REMOTE_USER from web server
  # AUTH_OAUTH : Is for OAuth
  AUTH_TYPE = AUTH_DB
  # Uncomment to setup Full admin role name
  AUTH_ROLE_ADMIN = 'Admin'

  # Uncomment to setup Public role name, no authentication needed
  AUTH_ROLE_PUBLIC = 'Op'

  # Will allow user self registration
  # AUTH_USER_REGISTRATION = True

  # The recaptcha it's automatically enabled for user self registration is active and the keys are necessary
  # RECAPTCHA_PRIVATE_KEY = PRIVATE_KEY
  # RECAPTCHA_PUBLIC_KEY = PUBLIC_KEY

  # Config for Flask-Mail necessary for user self registration
  # MAIL_SERVER = 'smtp.gmail.com'
  # MAIL_USE_TLS = True
  # MAIL_USERNAME =<EMAIL_ADDRESS>  # MAIL_PASSWORD = 'passwordformail'
  # MAIL_DEFAULT_SENDER =<EMAIL_ADDRESS>
  # The default user self registration role
  # AUTH_USER_REGISTRATION_ROLE = "Public"

  # When using OAuth Auth, uncomment to setup provider(s) info
  # Google OAuth example:
  # OAUTH_PROVIDERS = [{
  #   'name':'google',
  #     'token_key':'access_token',
  #     'icon':'fa-google',
  #         'remote_app': {
  #             'api_base_url':'https://www.googleapis.com/oauth2/v2/',
  #             'client_kwargs':{
  #                 'scope': 'email profile'
  #             },
  #             'access_token_url':'https://accounts.google.com/o/oauth2/token',
  #             'authorize_url':'https://accounts.google.com/o/oauth2/auth',
  #             'request_token_url': None,
  #             'client_id': GOOGLE_KEY,
  #             'client_secret': GOOGLE_SECRET_KEY,
  #         }
  # }]

  # When using LDAP Auth, setup the ldap server
  # AUTH_LDAP_SERVER = "ldap://ldapserver.new"

  # When using OpenID Auth, uncomment to setup OpenID providers.
  # example for OpenID authentication
  # OPENID_PROVIDERS = [
  #    { 'name': 'Yahoo', 'url': 'https://me.yahoo.com' },
  #    { 'name': 'AOL', 'url': 'http://openid.aol.com/<username>' },
  #    { 'name': 'Flickr', 'url': 'http://www.flickr.com/<username>' },
  #    { 'name': 'MyOpenID', 'url': 'https://www.myopenid.com' }]

  # ----------------------------------------------------
  # Theme CONFIG
  # ----------------------------------------------------
  # Flask App Builder comes up with a number of predefined themes
  # that you can use for Apache Airflow.
  # http://flask-appbuilder.readthedocs.io/en/latest/customizing.html#changing-themes
  # Please make sure to remove "navbar_color" configuration from airflow.cfg
  # in order to fully utilize the theme. (or use that property in conjunction with theme)
  APP_THEME = "bootstrap-theme.css"  # default bootstrap
  # APP_THEME = "amelia.css"
  # APP_THEME = "cerulean.css"
  # APP_THEME = "cosmo.css"
  # APP_THEME = "cyborg.css"
  # APP_THEME = "darkly.css"
  # APP_THEME = "flatly.css"
  # APP_THEME = "journal.css"
  # APP_THEME = "lumen.css"
  # APP_THEME = "paper.css"
  # APP_THEME = "readable.css"
  # APP_THEME = "sandstone.css"
  # APP_THEME = "simplex.css"
  # APP_THEME = "slate.css"
  # APP_THEME = "solar.css"
  # APP_THEME = "spacelab.css"
  # APP_THEME = "superhero.css"
  # APP_THEME = "united.css"
  # APP_THEME = "yeti.css"

@naani10 while you probably should update your webserver_config.py to use the new import locations for things like AUTH_LDAP, that is NOT the cause of your pods failing.
The issue is caused by your custom script at /opt/airflow/keycloak_auth.py. Clearly, it's not compatible with airflow since 2.3.0 for the reasons described in https://github.com/airflow-helm/charts/issues/747#issuecomment-1570748218.
You must either remove that script if you don't need it, or update it to support newer airflow.

This was working after we updated below configs
Thanks @thesuperzapper for support
web:
webserverConfig:
stringOverride: |
from airflow.www.fab_security.manager import AUTH_DB
AUTH_TYPE = AUTH_DB


don't look for charset json asset

this fix fixes an error message where go is looking for an asset that should be included by default

here's the specific message:
charset: cannot open "charsets.json": open /usr/local/lib/go-charset/datafiles/charsets.json: no such file or directory


test.passWithNoTests has no effect with workspaces

Describe the bug
While the CLI arg --passWithNoTests works, the config option test.passWithNoTests has no effect when running in a workspace environment.
However, it should work in circumstances where all active projects include this config option.
Reproduction
import {defineConfig, defineWorkspace} from 'vitest/config';

export default defineWorkspace([
  defineConfig({test: {passWithNoTests: true, name: 'batch-a'}}),
  defineConfig({test: {passWithNoTests: true, name: 'batch-b'}}),
]);

Then run pnpm vitest run. It should exit with 0, but it exits with 1.
System Info
System:
    OS: macOS 14.5
    CPU: (12) arm64 Apple M2 Max
    Memory: 20.41 GB / 96.00 GB
    Shell: 5.9 - /bin/zsh
  Binaries:
    Node: 20.14.0 - ~/.local/state/fnm_multishells/25047_1722535431047/bin/node
    pnpm: 9.6.0 - ~/.local/state/fnm_multishells/25047_1722535431047/bin/pnpm
    bun: 1.1.21 - /opt/homebrew/bin/bun
  Browsers:
    Chrome: 127.0.6533.89
    Edge: 127.0.2651.86
    Safari: 17.5
  npmPackages:
    vitest: 2.0.5 => 2.0.5

Used Package Manager
pnpm
Validations

[X] Follow our Code of Conduct
[X] Read the Contributing Guidelines.
[X] Read the docs.
[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
[X] Check that this is a concrete bug. For Q&A open a GitHub Discussion or join our Discord Chat Server.
[X] The provided reproduction is a minimal reproducible example of the bug.

the config option test.passWithNoTests has no effect when running in a workspace environment.

This is expected behavior: https://vitest.dev/config/#passwithnotests
passWithNoTests needs to be set in the global config.


URL address in Response log

Hello @ihsanbal !!!
We`ve been using your library for a while in our android team and we really like it =))
But sometimes we got in unconvinient situations, when we're having couple request before responses. For example,  lets say we are have to make 3-5 net requests in a same time. And then we get 3-5 reordered responses back and sometimes it's not very easy to find out which response belongs to which request.
I have investigated your interceptor code and think  that I can add this feature. BTW I saw an open issue (#33) about that.
Don't you mind if your library have this functional ? Would be such PR welcomed ?

Yeah! I know multiple network threads hard to read at logcat but now I just moved-in new home and new country so if I can get a break in this complicated move-in life I will contribute about issue #33 but Your contributions are always a priority :)

Okay )) Yeah. I`ve got some troubles with free time too =)
So I'll drop a line, when I start to work with this feature.

Hi @ihsanbal. I've started to work on this issue and just want make sure you don't =))

No I don't :) I am waiting your pr. @mrArtCore

fixed with 0b2b8157fb


Handling failures with iis_config

I'm using the iis_config resource to define a periodic recycle time with the following:
iis_config "/section:system.applicationHost/applicationPools /+\"applicationPoolDefaults.recycling.periodicRestart.schedule.[value='02:00:00']\"" do
    action :set
end

This works the first time, but if I run the recipe again once it's already configured, I get the following error:
Mixlib::ShellOut::ShellCommandFailed
------------------------------------
Expected process to exit with [0], but received '183'
---- Begin output of C:\Windows\System32\inetsrv\appcmd.exe set config /section:system.applicationHost/applicationPools +"applicationPoolDefaults.recycling.periodicRestart.schedule.[value='02:00:00']" ----
STDOUT: ERROR ( message:New add object missing required attributes. Cannot add duplicate collection entry of type 'add' with unique key attribute 'value' set to '02:00:00'    . )
STDERR:
---- End output of C:\Windows\System32\inetsrv\appcmd.exe set config /section:system.applicationHost/applicationPools /+"applicationPoolDefaults.recycling.periodicRestart.schedule.[value='02:00:00']"---
Ran C:\Windows\System32\inetsrv\appcmd.exe set config /section:system.applicationHost/applicationPools /+"applicationPoolDefaults.recycling.periodicRestart.schedule.[value='02:00:00']" returned 183

What's the best way to handle this error?

iis_config is not idempotent, meaning everytime chef-client runs (30
minutes) it will be attempting to re run the above command.
a lot of people are using powershell to protect this with an if, but for
your request, it sounds like the scheduling logic needs to also be in
iis_root and not just iis_pool with regards to recycle_at_time.
On Thu, Feb 25, 2016 at 11:30 AM, Jared Kauppila<EMAIL_ADDRESS>wrote:

I'm using the iis_config resource to define a period recycle time with
the following:
iis_config "/section:system.applicationHost/applicationPools /+"applicationPoolDefaults.recycling.periodicRestart.schedule.[value='02:00:00']" /commit:apphost" do
action :set
end
This works the first time, but if I run the recipe again once it's already
configured, I get the following error:
Mixlib::ShellOut::ShellCommandFailed
Expected process to exit with [0], but received '183'
---- Begin output of C:\Windows\System32\inetsrv\appcmd.exe set config /section:system.applicationHost/applicationPools +"applicationPoolDefaults.recycling.periodicRestart.schedule.[value='02:00:00']" ----
STDOUT: ERROR ( message:New add object missing required attributes. Cannot add duplicate collection entry of type 'add' with unique key attribute 'value' set to '02:00:00'    . )
STDERR:
---- End output of C:\Windows\System32\inetsrv\appcmd.exe set config /section:system.applicationHost/applicationPools /+"applicationPoolDefaults.recycling.periodicRestart.schedule.[value='02:00:00']"---
Ran C:\Windows\System32\inetsrv\appcmd.exe set config /section:system.applicationHost/applicationPools /+"applicationPoolDefaults.recycling.periodicRestart.schedule.[value='02:00:00']" returned 183
What's the best way to handle this error?
—
Reply to this email directly or view it on GitHub
https://github.com/chef-cookbooks/iis/issues/251.

Okay, guess I didn't realize it wasn't idempotent.
Is there any plans to add an additional provider that utilizes the *-WebConfigurationProperty cmdlets for the resources or do I just need to roll my own powershell_script for it?

The current plan is to build a new system completely using the DSC from
microsoft which wraps the appcmd and powershell.  This branch isn't started
yet, but will be coming in the future,  in the meantime adding this to
iis_root isn't a huge task if that is the request.
On Thu, Feb 25, 2016 at 11:46 AM, Jared Kauppila<EMAIL_ADDRESS>wrote:

Okay, guess I didn't realize it wasn't idempotent.
Is there any plans to add an additional provider that utilizes the
*-WebConfigurationProperty cmdlets for the resources or do I just need to
roll my own powershell_script for it?
—
Reply to this email directly or view it on GitHub
https://github.com/chef-cookbooks/iis/issues/251#issuecomment-188872404.

Yeah, that'd probably be the easiest thing to do right now.

Closing as not fixing in this version


Better handling of infinite loops in repetitions

Chevrotain currently detects infinite loops in repetitions (MANY/AT_LEAST_ONE).
If this is detected an error will be thrown at runtime.
There are some problems with this approach:

If Error Recovery is enabled than such an error should not stop the parsing process.

See: https://github.com/SAP/chevrotain/issues/956

Even in a regular parsing flow (no recovery) such an error is less than useful for the grammar's end user. it is more of "development helper error".

Instead of throwing an error when we encounter an infinite loop we could simply gracefully
exit the repetition's loop and "carry on", this would resolve both issues described above:

No error would be thrown to break the error recovery flow.
If a syntax error would occur due to gracefully exiting the repetition, it would be a "regular"
syntax error with full position information so it would be much more useful for a grammar's end user.

The one disadvantage to this approach is that we would be losing the clear indication
of infinite loops for grammar developers. While this is unfortunate as long as we actually avoid the infinite loops than such grammar issues would still be far easier for grammar developers to debug versus the original situation which caused the infinite loop detection to be implemented.

Resolved in https://github.com/SAP/chevrotain/pull/959
and released in 4.4.0


No access to Internet after running POX  and connected to OpenWRT router

Hello
Dear @MurphyMc
I have installed POX on ubuntu 20.04  + have installed OVS on the OpenWRT router . .
I have set the OpenWRT router as an access point,  but when I  run POX and connect the OpenWRT through ovs , I cant access the internet!
actually, when using this command: "/ usr/share/openvswitch/scripts/ovs-ctl start"  to start listening to pox  , the host they connected to OpenWRT router can't access the internet
did you know why?. before running pox the router worked fine
thanks in advanced

This is a difficult question to answer more precisely than "it's configured wrong".
You're starting OVS.  Does OVS connect to POX?  (It should show up in the POX logs; make sure to run with the POX logging turned to DEBUG level for testing.)
Also, what configuration are you using for POX?

thank you for response

Does OVS connect to POX?

yes it does
the pox working fine , but I notice  that:
1- if the OpenWRT router worked as a wireless repeater, after started the command
"/ usr/share/openvswitch/scripts/ovs-ctl start"    >>>  the pox just shows me the main router's logs but not the OpenWRT and also OpenWRT have no access to the internet
2-  if I connect OpenWRT router to the main router through an Ethernet cable,   hosts can access the internet for some wireless zones but not all zones and the loges of openwrt shows.
show the screenshots:

StC_2021 : Main Router
HassanSDN zone :  Main wireless network for openWrt
the other Zones as shows inside red rectangle  have no access to internet after running the commands :  "/ usr/share/openvswitch/scripts/ovs-ctl start"
the pox logs ;

I'm sorry I know this makes you confusing, but let me know if you need other details.

I don't have any idea how OpenWRT's zones work or what the OVS configuration is like, so I am missing some important information.
One thing I'd try is running l2_learning instead of l3_learning.


Full functionality not available on M1

Hello,
I installed this as an oh-my-zsh plugin. However, only the shift + arrow function works, the highlighting of whole words and all of the other features don't. This is still better than nothing, but it'd be great if I could get the full word/line highlighting available. Your input is appreciated. Thanks :)
System:
Macbook M1

Hi, this has nothing to do with CPU architecture, but with terminal settings. See Known Issues in the readme. What terminal emulator do you use?


Restored Coderwall code as added by higebu https://github.com/higebu

Last import into pelican-themes overwrote this contribution by higebu.

@higebu Please check if this is what you wanted to add. I just added an 'alt' and 'title' attribute to the badge images.

@lgiordani I confirmed this. 'alt' and 'title' attributes are nice! Thanks!

Hi @DandyDev , may you please find a minute to merge this PR? It is just a restore of old code overwritten in the main repository. Thanks!


Updated class to remove form from ad column

https://www.pivotaltracker.com/story/show/171288178
Product form is appearing on blog pages, instead of just directory and product pages. Removed page-rail reference.

Current:

@Alixers505
This was my bad.  I didn't vet that the directory right rail directory block was there before adding the opticat form on the directory page so it was finding in on other non-directory pages.  I update the code in GTM and this should be fixed.


Cardinality changes

details: https://docs.google.com/spreadsheets/d/1i7UX0MV-VIHgNFu4qdKhIrK6-qLiwvOH/edit#gid=1487123901
Changes required:

Patient.identifier slice should only be 0..1  (just s single instance at most)
Patient.managingOrganization should be changed to mandatory (1..1)
Reasons for assessment must be 1..*
Presentation must be 1..1

Scope for changes:


Deploy of hashnode theme fails on local build

Steps to Reproduce:

git clone (this repo)
cd to hashnode directory
pnpm install
pnpm run dev

Error: You are creating an urql-client without a url.
Error Log below:
`This error happened while generating the page. Any console logs will be displayed in the terminal window.
Source
Object.Client
file:///Users/aditya/Desktop/projects/hblog/node_modules/.pnpm/@urql+core@4.1.4_graphql<EMAIL_ADDRESS>(1010:11)
initUrqlClient
file:///Users/aditya/Desktop/projects/hblog/node_modules/.pnpm/next-urql@5.0.2_react<EMAIL_ADDRESS>(48:23)
pages/index.tsx (201:35) @ getUrqlClientConfig
199 | export const getStaticProps = async () => {
200 | 	const ssrCache = createSSRExchange();

201 | 	const urqlClient = initUrqlClient(getUrqlClientConfig(ssrCache), false);
| 	                                 ^
202 | 	const host = process.env.NEXT_PUBLIC_HASHNODE_PUBLICATION_HOST;
203 | 	const homePageInitialQueryVariables: HomePageInitialQueryVariables = {
204 | 		host,`

Complete call stack on Pastebin No such error on the enterprise theme though.

I don't get the prev error anymore, but now it's has switched to this for all the themes
Server Error
TypeError: Cannot read properties of undefined (reading 'document')

This error happened while generating the page. Any console logs will be displayed in the terminal window.
Source
parseRequestExtendedArgs
file:///Users/aditya/Desktop/projects/fakeblog/starter-kit/node_modules/.pnpm/graphql-request<EMAIL_ADDRESS>(32:25)
request
file:///Users/aditya/Desktop/projects/fakeblog/starter-kit/node_modules/.pnpm/graphql-request<EMAIL_ADDRESS>(301:28)
pages/index.tsx (107:2) @ GQL_ENDPOINT

  105 | export const getStaticProps: GetStaticProps<Props> = async () => {
  106 | 	const data = await request<PostsByPublicationQuery, PostsByPublicationQueryVariables>(
> 107 | 		GQL_ENDPOINT,
      | 	^
  108 | 		PostsByPublicationDocument,
  109 | 		{
  110 | 			first: 20,
Call Stack
<unknown>
file:///Users/aditya/Desktop/projects/fakeblog/starter-kit/node_modules/.pnpm/next@13.5.5_react-dom<EMAIL_ADDRESS>(39:4097)
<unknown>
file:///Users/aditya/Desktop/projects/fakeblog/starter-kit/node_modules/.pnpm/next@13.5.5_react-dom<EMAIL_ADDRESS>(121:36)
NoopContextManager.with
file:///Users/aditya/Desktop/projects/fakeblog/starter-kit/node_modules/.pnpm/next@13.5.5_react-dom@18.2.0_react<EMAIL_ADDRESS>(1:7057)
ContextAPI.with
file:///Users/aditya/Desktop/projects/fakeblog/starter-kit/node_modules/.pnpm/next@13.5.5_react-dom@18.2.0_react<EMAIL_ADDRESS>(1:516)
NoopTracer.startActiveSpan
file:///Users/aditya/Desktop/projects/fakeblog/starter-kit/node_modules/.pnpm/next@13.5.5_react-dom@18.2.0_react<EMAIL_ADDRESS>(1:18086)
ProxyTracer.startActiveSpan
file:///Users/aditya/Desktop/projects/fakeblog/starter-kit/node_modules/.pnpm/next@13.5.5_react-dom@18.2.0_react<EMAIL_ADDRESS>(1:18847)
<unknown>
file:///Users/aditya/Desktop/projects/fakeblog/starter-kit/node_modules/.pnpm/next@13.5.5_react-dom<EMAIL_ADDRESS>(110:107)
NoopContextManager.with
file:///Users/aditya/Desktop/projects/fakeblog/starter-kit/node_modules/.pnpm/next@13.5.5_react-dom@18.2.0_react<EMAIL_ADDRESS>(1:7057)
ContextAPI.with
file:///Users/aditya/Desktop/projects/fakeblog/starter-kit/node_modules/.pnpm/next@13.5.5_react-dom@18.2.0_react<EMAIL_ADDRESS>(1:516)
NextTracerImpl.trace
file:///Users/aditya/Desktop/projects/fakeblog/starter-kit/node_modules/.pnpm/next@13.5.5_react-dom<EMAIL_ADDRESS>(110:32)
eZ
file:///Users/aditya/Desktop/projects/fakeblog/starter-kit/node_modules/.pnpm/next@13.5.5_react-dom<EMAIL_ADDRESS>(39:4009)
process.processTicksAndRejections
node:internal/process/task_queues (95:5)
Hide collapsed frames

I cannot isolate the issue yet, as both of these happened on fresh git cloned repos with no changes to the code, and the deployed versions on vercel works fine.


overwrite.bbs=TRUE doesn't appear to download the bbs data again

Describe the bug
It appears that using overwrite.bbs = TRUE does not allow `download_bbs() to download the data
suppressMessages(download_bbs(country.names="USA", data.dir = bbsDir, overwrite.bbs = TRUE, overwrite.routes = TRUE))
[1] "Data already exists. No data downloaded. To force installation, specify overwrite.bbs=TRUE, or delete local files."
[1] "Data already exists. No data downloaded. To force installation, specify overwrite.bbs=TRUE, or delete local files."
sessionInfo()
R version 3.6.1 (2019-07-05)
Platform: x86_64-apple-darwin15.6.0 (64-bit)
Running under: macOS Mojave 10.14.6
Matrix products: default
BLAS:   /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib
LAPACK: /Library/Frameworks/R.framework/Versions/3.6/Resources/lib/libRlapack.dylib
locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base
other attached packages:
[1] bbsAssistant_1.0.0
loaded via a namespace (and not attached):
[1] Rcpp_1.0.3        pillar_1.4.2      compiler_3.6.1    prettyunits_1.0.2 remotes_2.1.0     tools_3.6.1       testthat_2.3.0    digest_0.6.23     pkgbuild_1.0.6
[10] pkgload_1.0.2     tibble_2.1.3      memoise_1.1.0     evaluate_0.14     pkgconfig_2.0.3   rlang_0.4.2       cli_1.1.0         rstudioapi_0.10   curl_4.2
[19] yaml_2.2.0        xfun_0.11         withr_2.1.2       dplyr_0.8.3       knitr_1.26        desc_1.2.0        fs_1.3.1          devtools_2.2.1    tidyselect_0.2.5
[28] rprojroot_1.3-2   glue_1.3.1        here_0.1          R6_2.4.1          processx_3.4.1    rmarkdown_1.16    sessioninfo_1.1.1 purrr_0.3.3       callr_3.3.2
[37] magrittr_1.5      backports_1.1.5   ps_1.3.0          ellipsis_0.3.0    htmltools_0.4.0   usethis_1.5.1     assertthat_0.2.1  crayon_1.3.4

This was resolved by removing an else() statement which defined overwrite.bbs, when it should not have been defined.


ARROW-10202: [CI][Windows] Use sf.net mirror for MSYS2

Because repo.msys2.org is still down.

+1
@nealrichardson FYI: We can revert this change once http://repo.msys2.org/ is up again.


[MNT] add sklearn to tests dependency set

This explicitly adds sklearn to tests dependency set, as it is required in some tests for compatibility.

Codecov Report

Merging #172 (a2f618b) into main (c94e769) will increase coverage by 0.39%.
The diff coverage is n/a.

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
@@            Coverage Diff             @@
##             main     #172      +/-   ##
==========================================
+ Coverage   82.46%   82.85%   +0.39%
==========================================
  Files          39       39
  Lines        2777     2777
==========================================
+ Hits         2290     2301      +11
+ Misses        487      476      -11

see 3 files with indirect coverage changes


luci-proto-qmi: add PDP type option

Signed-off-by: Nicholas Smith<EMAIL_ADDRESS>

Thanks merged


[beta] Code editor cannot display full seed code if it is large

No scrollbar here, and I cannot access the end of the code in the editor.

Browser: Google Chrome latest on Linux Mint.

probably need to remove overflow: hidden; in body element style. that will be solve.

or in class="challenges-editor" could use overflow-x: hidden; overflow-y: scroll;.


Update Prometheus to scrape data and control plane

The existing telemetry pipeline relies on Prometheus scraping the
Telemetry service, which will soon be removed.
This change configures Prometheus to scrape the conduit proxies directly
for telemetry data, and the control plane components for control-plane
health information. This affects the output of both conduit install
and conduit inject.
Fixes #428, #501
Signed-off-by: Andrew Seigner<EMAIL_ADDRESS>This PR depends on and is blocked by #569.

@brancz, this PR enables Prometheus collection from all Conduit proxy instances. We have some concerns around label cardinality that we'd like your input on.
Our goal is to measure request/response metrics between Conduit proxy instances, running as a sidecar in every pod. Assuming a k8s cluster with 100 services, each with 100 replicas/pods/instances, our response_total metric has the following labels and cardinality:

label
cardinality

dst
100

status_code
20

instance
100 services * 100 replicas

This yields 20,000,000 time series. If we assume 25-bucket histograms, we get 500,000,000. We have further plans to record per-request path information, assuming 50 paths per service, worst case we have 50B time series.
You've given us feedback in https://github.com/runconduit/conduit/pull/448#issuecomment-371044946 that instance is important to Prometheus. As it's the highest-cardinality label in our setup, what strategies would you recommend here?

Histograms are generally very expensive, so it's something we recommend to enable only when needed. Prometheus has no problem with having metrics that appear/disappear on subsequent scrapes.
I'm slightly confused what the dst_deployment label is. From what I can tell 10000 Pods (100 deployments * 100 replicas) * 20 metrics = 20k time-series is something Prometheus can easily ingest.
Please correct me if I'm wrong, but what I understand is that you're trying to capture which requests are coming from and to which deployment. This is something that is better captured as metrics in the client, and the proxy unconditionally captures all traffic incoming, at that point, as long as paths contain non variable information (like HTTP2 paths of gRPC services) then there's no issue in exposing that as a label (but as mentioned in the call we had a big risk if you just expose metrics for any path, as this allows users to inject data that may crash your monitoring stack).

Thanks for the quick reply @brancz. You are correct we're trying to capture which requests are coming from and to which deployments.
dst_deployment is the the destination of a request made from a conduit proxy. This is how we know where requests are going to/from.
It's possible I'm missing something around how time series and labels work, let me demonstrate with an example:
Assume:

100 deployments, call them deploy1, deploy2, ... deployD, where D == 100
100 replicas per deployment
20 status codes, call them 200, 201, 219
20 metrics

This implies we have 100 deployments * 100 replicas, yielding 10,000 unique instance labels. Call them instance1, instance2, ... instanceN, where N == 10,000.
Given a metric, response_total on instance1, and assuming that at some point instance1 will make a request to every deployment in the cluster, we will count the following...
1 responses_total{instance="instance1", dst_deployment="deploy1", status_code=200}
2 responses_total{instance="instance1", dst_deployment="deploy2", status_code=200}
...
D responses_total{instance="instance1", dst_deployment="deployD", status_code=200}
Expanding this to N instances, we get D * N == 100 * 10,000 == 1,000,000  time series. Assuming 20 status codes, and 20 metrics, we get 1,000,000 * 20 * 20 == 400,000,000 time series.

You are correct we're trying to capture which requests are coming from and to which deployments.

I would recommend to just expose the total communication, not fine grained in detail to which deployment the traffic went, most important are things like 99 percentile which are still affected when a particular connection in the mesh is too slow.
Realistically you will also only see a very small subset of metrics actually appearing in your scenario, it's unlikely that every deployment in a cluster talks to every other deployment.  If you expand the cardinality to all sending and receiving identifiers, then I can imagine you may run into trouble.

D * N == 100 * 10,000 == 1,000,000

This is not quite correct, the deployment label is a subset of the identifier of the instance label, so your number of targets is still 10k. Similarly with the metrics and status relationship, you just end up with 20 metrics as the status label and metric name together make up the unique identification of the time-series, meaning you actually just end up with 20 time-series per target.
My calculation was indeed incorrect as in 10000 * 20 is not 20k but 200k :slightly_smiling_face:, which is still something Prometheus can easily ingest, if you just look at just incoming requests. This would double if you also look as outgoing requests, but even then Prometheus can easily handle 400k.
I would personally hold off on adding the incoming/outgoing deployment labels and just add a label of the deployment the particular pod belongs to. With that detail you're rather going into tracing than metrics.
Sorry for the wall of text, hope it helps! :slightly_smiling_face:

@brancz The wall of text is helpful, thanks!
Definitely agree that given N deployments, seeing an NxN request pattern is just a theoretical upper-bound.
To clarify:

D * N == 100 * 10,000 == 1,000,000

In that case, D refers to dst_deployment, not the deployment of the pod itself. A more complete metric looks like this:
responses_total{instance="instance1", deployment="deploy1", dst_deployment="deploy2", status_code=200}

I agreee that instance is invariant with deployment, but both of those vary with dst_deployment. This is the closer to the tracing use case you alluded to, where you mentioned we could run into trouble. A core requirement for Conduit as a service mesh is to provide topology information to our users. We do not intend to build full tracing capabilities on top of Prometheus, but we do want to at least record dst_deployment, and would prefer to avoid including a secondary data store for this purpose.
To that end, some more specific questions:

What are the upper-bounds of time series cardinality we can expect from Prometheus? (We realize this is dependent on many factors, just interested in order-of-magnitude.)
In the face of high cardinality, what mitigating strategies should we employ? Higher collection intervals? Federation? Dynamic filtering of metrics at scrape time?

What are the upper-bounds of time series cardinality we can expect from Prometheus? (We realize this is dependent on many factors, just interested in order-of-magnitude.)

We've seen Prometheus 2.0 in the wild on tiny 100mb to large machine 128-256Gb ram machines, our experience so far is that it's primarily bound by the amount of resources you can give it.
If you really want the dst_deployment visibility I suggest to just try it, I believe in practice it will just work :tm:, but only practice will show.
If it doesn't then

In the face of high cardinality, what mitigating strategies should we employ? Higher collection intervals? Federation? Dynamic filtering of metrics at scrape time?

All of these are a good mitigation of over collecting. If it does really become a problem I personally would start with higher scrape intervals and possibly allowing users to only dynamically add the dst_deployment dimension.

@brancz All great suggestions, thanks so much for all the support on this. I'm going to copy some of this content into #604, where we can continue the discussion beyond this PR.


Why not just use Discourse?

It's FOSS and you don't have to develop anything: https://www.discourse.org/

Thank you for the feedback - great idea. We are going to move forward with this due to the simplicity of deployment. If any of the discourse developers want to merge in features, we would love that

PS: In parallel, chatting with them to see if we can make deploys easier


[Link list cards section with tabs]: Create the functional specifications for this new component to be used on the Geo Home Page

User Story

As a [user role below]:
DDS developer

I need to:
have the Link list cards section with tabs functional specs

so that I can:
so that I can properly code the Link list cards section with tabs component that meets the Design functions and intent

Additional information
This should be broken out into 2 pieces of functional specs:

Vertical tabs
Card link - alternative design. Name needed

Acceptance criteria

[ ] Documented Link list cards section with tabs functional specifications
[ ] Sent and/or presented the specs to Design and Engineering for their review and comments
[ ] Comment is added with link to functional specs

This will be ready for review Aug 2nd refinement for engineers to size and build for Sprint 16. This would realistically be delivered for v1.24.0.

https://github.com/carbon-design-system/carbon-for-ibm-dotcom-website/wiki/Tabs-extended
https://github.com/carbon-design-system/carbon-for-ibm-dotcom-website/wiki/Card-link


Unable to retrieve child resources.

Issue.txt

@carterbellew The error you may be due to some DNS issue. Please verify if you are behind a proxy and if so enable proxy in Storage Explorer settings. If not, please try to lookup the DNS to see if it can be correctly resolved. If not, you may need to contact your internet service provider or network admin for help.

Hi @JasonYeMSFT ,
I have also received the same error after update to 1.25.1 upon clicking on Blob Containers of Emulator - Default Ports node. Please find the file in the attachments Issue21092022.txt. I have checked whether this is a VPN related issue, but unfortunately the result is the same.
Regards,
Tomasz Mankin

@Duch003 are you working with the Windows Storage Emulator (not Azurite)? If so then your issue is known and we will be shipping a fix for it in our next major update. That said, we very much recommend that you move to Azurite.

Hi
I'm having the exact same issue @MRayermannMSFT, I have moved to Azurite but still have the exact same issue when I try to expand any of service in the emulator section

@aksoftware98 so to confirm you are using Azurite and seeing an error like:

The specified resource name contains invalid characters

Can you please share what version of Azurite you are using?

I have been using Azure Storage Emulator for a quite long time and was happy with it but this issue suddenly happened and tried to install Azurite but still the same
Azurite version 3.19.0
I ended up downgrading to version 1.24 of the Azure Storage Explorer and now all fine for me

@aksoftware98 can you share exactly what error you are seeing with Storage Explorer 1.26 and Azurite 3.19?


Add ErrorFmt, a FrozenSpace containing fields supported by error format string of Rephraser

Rather than inserting these format fields as plain string ({error} and {param_list}), you can use ErrorFmt. It improves Cloup in two ways:

you get auto-completion and don't risk a run-time error because of a typo
ErrorFmt gives a natural home to docstrings for these replacement fields.

from cloup.constraints import ErrorFmt

mutually_exclusive.rephrased(
    error=f"{ErrorFmt.error}.\nUse --renderer, the other two options are deprecated."
)

This PR also improves quite a bit the "Constraints" chapter of the docs. I'm pretty satisfied with it!

Codecov Report

Merging #55 (e03562b) into master (e6dd178) will increase coverage by 0.01%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##           master      #55      +/-   ##
==========================================
+ Coverage   96.29%   96.30%   +0.01%
==========================================
  Files          20       20
  Lines        1294     1298       +4
==========================================
+ Hits         1246     1250       +4
  Misses         48       48

Impacted Files
Coverage Δ

cloup/constraints/__init__.py
100.00% <100.00%> (ø)

cloup/constraints/_core.py
96.17% <100.00%> (+0.07%)
:arrow_up:

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 e6dd178...e03562b. Read the comment docs.


fix Charlist <-> String conversion to use unicode

Fix #25

Sorry :-/ Done

At some point, I’ll get the comment conventions...


[6.0] Fix type lowering of ~Copyable and ~Escapable generics.

--- CCC ---
Explanation: Fix type lowering of ~Copyable and ~Escapable generics.
Scope: Required to correctly suppress move-only diagnostics of conditionally copyable types when the type is statically copyable. Required to allow the definition of nonescapable enums.
Radar/SR Issues: rdar://125950218 ([nonescapable] support conditionally escapable enums)
Original PR: #72866
Risk: This only suppresses move-only diagnostics in some cases. It allows the use of ~Escapable on enums, which would always crash before.
Testing: Unit tests added
Reviewer: @slavapestov

@swift-ci test

@swift-ci test


Trace[IO]

Starting with https://github.com/typelevel/cats-effect/pull/1393, cats-effect (just like other effect systems) has a way to propagate fiber-local state without ReaderT using FiberLocal[F, A].
Additionally, to encapsulate the common pattern of having essentially ReaderT[F, Ref ...], @raasahsan has opened https://github.com/typelevel/cats-effect/pull/1822.
We should investigate how/if these could be used to get, say, IO[Trace[IO]].

Yeah we should be able to go from EntryPoint to Trace[IO]. I'll hack that up.