Add Pay as Business option for invoices sent to an individual who is admin of their primary workspace

Details

This PR implements the Pay as business option in the App for the individuals who are admins of their primary workspace.
Fixed Issues

$ https://github.com/Expensify/App/issues/40438
PROPOSAL: N/A
Tests

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

Login to the app as User A. The user should be the admin of any workspace.
Go to FAB -> Select "Send invoice"
Send Invoice to the User B (user should be the admin of his primary workspace)
Login as User B and open the invoice room from step 3.
Tap Pay button and select Pay as business -> Pay elsewhere
Verify that:

the invoice got paid
the room is turned into B2B invoices room, the title and avatars got updated.

Login as User A and open the same invoice room. Verify B2B invoices room looks as expected for the invoice sender as well.

Offline tests

Repeat steps 5-7 from the Tests section.
QA Steps

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

Same as in the Tests section
PR Author Checklist

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Screenshots/Videos

Android: Native

https://github.com/Expensify/App/assets/23176449/c17c9e34-ca85-4602-8041-68cee1ab197a

Android: mWeb Chrome

https://github.com/Expensify/App/assets/23176449/bf753af6-0113-4643-b033-537ad5e3cdbd

iOS: Native

https://github.com/Expensify/App/assets/23176449/ef317379-1a1f-430f-96c4-0c2fa3695b60

iOS: mWeb Safari

https://github.com/Expensify/App/assets/23176449/c37be27f-f410-4316-af60-4e31a94b7850

MacOS: Chrome / Safari

https://github.com/Expensify/App/assets/23176449/afad9566-916d-4428-9aee-e3a61148171c

MacOS: Desktop

https://github.com/Expensify/App/assets/23176449/cad3000f-e1d8-43bf-afc9-dc10e84ab851

Reviewer Checklist

[ ] I have verified the author checklist is complete (all boxes are checked off).
[ ] I verified the correct issue is linked in the ### Fixed Issues section above
[ ] I verified testing steps are clear and they cover the changes made in this PR

[ ] I verified the steps for local testing are in the Tests section
[ ] I verified the steps for Staging and/or Production testing are in the QA steps section
[ ] I verified the steps cover any possible failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[ ] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)

[ ] I checked that screenshots or videos are included for tests on all platforms
[ ] I included screenshots or videos for tests on all platforms
[ ] I verified tests pass on all platforms & I tested again on:

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

[ ] If there are any errors in the console that are unrelated to this PR, I either fixed them (preferred) or linked to where I reported them in Slack
[ ] I verified proper code patterns were followed (see Reviewing the code)

[ ] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick).
[ ] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[ ] I verified that comments were added to code that is not self explanatory
[ ] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[ ] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method
[ ] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[ ] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is either coming verbatim from figma or has been approved by marketing (in order to get marketing approval, ask the Bug Zero team member to add the Waiting for copy label to the issue)
[ ] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[ ] I verified the JSDocs style guidelines (in STYLE.md) were followed

[ ] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[ ] I verified that this PR follows the guidelines as stated in the Review Guidelines
[ ] I verified other components that can be impacted by these changes have been tested, and I retested again (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar have been tested & I retested again)
[ ] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[ ] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[ ] If a new component is created I verified that:

[ ] A similar component doesn't exist in the codebase
[ ] All props are defined accurately and each prop has a /** comment above it */
[ ] The file is named correctly
[ ] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[ ] The only data being stored in the state is data necessary for rendering and nothing else
[ ] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[ ] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[ ] All JSX used for rendering exists in the render method
[ ] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[ ] If any new file was added I verified that:

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

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

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

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

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

[ ] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[ ] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
[ ] I have checked off every checkbox in the PR reviewer checklist, including those that don't apply to this PR.

Screenshots/Videos

Android: Native

Android: mWeb Chrome

iOS: Native

iOS: mWeb Safari

MacOS: Chrome / Safari

MacOS: Desktop

@VickyStash Testing well so far! I'm seeing an issue though, where the first invoice sent initially displays with the correct (personal) avatar of User B. However, once the SendInvoice request completes it switches to this avatar without any title:

User B sees the correct avatars:

Refreshing also fixes the issue.

Testing well so far! I'm seeing an issue though, where the first invoice sent initially displays with the correct (personal) avatar of User B. However, once the SendInvoice request completes it switches to this avatar without any title

@jjcoffee It's a known issue caused by API returns empty invoiceReceiver for the invoice room report in the SendInvoice response. Since in this PR uses room invoiceReceiver data to show avatars it's so noticeable.
cc @cristipaval Have you had a chance to take a look at it?

@VickyStash Gotcha, thanks! One other thing, should it work to send a new invoice within the workspace-to-individual chat that's initially created after you send the first invoice? It doesn't seem to come through for User B.

As User A, go to FAB -> Send invoice to User B
As User B pay the invoice
As User A, switch back to the chat created in step 1
Use the inline + in the composer to send a new invoice
Check User B's chat

BUG?: After sending the initial invoice from Workspace 1, invoices sent (using FAB -> Send Invoice) from any other workspace (e.g. Workspace 2) don't come through to User B.

@VickyStash Gotcha, thanks! One other thing, should it work to send a new invoice within the workspace-to-individual chat that's initially created after you send the first invoice? It doesn't seem to come through for User B.

As User A, go to FAB -> Send invoice to User B
As User B pay the invoice
As User A, switch back to the chat created in step 1
Use the inline + in the composer to send a new invoice
Check User B's chat

I think I've tested this use case and it worked for me, could you provide a video please 🙏

I think I've tested this use case and it worked for me, could you provide a video please 🙏

@VickyStash Sure! It's most likely a pusher issue as I don't see anything coming through. (The invoice that shows for User B is an older request)
https://github.com/Expensify/App/assets/27287420/7dba164b-8f92-4c70-b77f-fa031c8f18f9

BUG?: After sending the initial invoice from Workspace 1, invoices sent (using FAB -> Send Invoice) from any other workspace (e.g. Workspace 2) don't come through to User B.

@jjcoffee It looks like it works for me, did I miss something?
https://github.com/Expensify/App/assets/23176449/04a4c0d2-05ff-4085-9969-0a523b7a4493

It looks like it works for me, did I miss something?

@VickyStash Hmm, interesting! What if you try with User B as a new account that User A has never chatted with before?

@VickyStash I guess this is related to the empty invoiceReceiver from here? User A briefly sees their own workspace name as the payer in the ... paid: text.
https://github.com/Expensify/App/assets/27287420/ca6c8323-a740-4197-bdcc-fd507ceca305

@VickyStash Have we considered this scenario?

Two invoices sent by User A to user B
User B pays one invoice via business
User B pays the other one as personal

Currently after (2) we switch to a B2B chat, but it's still possible to pay as personal (3). Doing (3) switches User B back to person-to-workspace chat, but User A remains on a B2B chat.
https://github.com/Expensify/App/assets/27287420/5cf246ba-240b-4fb2-9dad-8ef2ac8adec7

@VickyStash Have we considered this scenario?

Two invoices sent by User A to user B
User B pays one invoice via business
User B pays the other one as personal

Currently after (2) we switch to a B2B chat, but it's still possible to pay as personal (3). Doing (3) switches User B back to person-to-workspace chat, but User A remains on a B2B chat.
desktop-app-mixed-personal-business-2024-06-14_11.41.58.mp4

I was able to reproduce it, the reason is in the optimistic data on the FE.
But before I implement the fix I just want to confirm:
@cristipaval  Should user be able to Pay as individual in B2B room?  Right now it's possible, and the room continue to be B2B.

@VickyStash Another thing I'm wondering is should there be a new workspace chat created each time a new invoice is sent (personally to User B)? It seems like ideally if there's an existing B2B chat, the invoice should be added to it to avoid cluttering the LHN like this:

@cristipaval Should user be able to Pay as individual in B2B room? Right now it's possible, and the room continue to be B2B.

This is a great question! The backend doesn't support this Pay as Individual for an invoice sent to a B2B room. Let's fix this on the front end for now and discuss on Slack if we want to enable this feature in separate PRs.

I guess this is related to the empty invoiceReceiver from https://github.com/Expensify/App/pull/43036#issuecomment-2165889167? User A briefly sees their own workspace name as the payer in the ... paid: text.

@jjcoffee I've checked - it's truly related invoiceReceiver: null issue

@VickyStash Another thing I'm wondering is should there be a new workspace chat created each time a new invoice is sent (personally to User B)? It seems like ideally if there's an existing B2B chat, the invoice should be added to it to avoid cluttering the LHN like this:

@jjcoffee I think you're referring to the invoice rooms (they are similar but different than workspace chats 😅 ).
I had an internal discussion with @VickyStash and we think it makes sense to implement the Pay feature in a way that there are at most one b2b and one b2c invoice rooms between the userB as an individual and their primary workspace.

Just to summarise issues as for now (I'll update this comment as we move forward):

[API] API returns empty invoiceReceiver for the invoice room report in the SendInvoice response, which results in:
1.1 invoice sent initially displays with the correct (personal) avatar of User B - comment
1.2 User A briefly sees their own workspace name as the payer in the ... paid: text. - comment
[Need to reproduce] Sending a new invoice within the workspace-to-individual chat that's initially created after you send the first invoice - comment
[Need to reproduce] After sending the initial invoice from Workspace 1, invoices sent (using FAB -> Send Invoice) from any other workspace (e.g. Workspace 2) don't come through to User B. - comment
[DONE] Bug with paying as individual in B2B room - comment
[Additional updates are needed] B2B invoice rooms duplicates - comment

The PR is on hold till the API updates to support at most one b2b and one b2c invoice room between the sender and the receiver are implemented. (comment)

Note: I'll be OOO on Monday (24.06) 🌴

@jjcoffee Could you please take another look at the PR?

BUG: Avatars and name for the room don't update for User A after User B pays as business.

After refreshing this is resolved:

This might be more one for a followup. For cases where we send an invoice to user B again (directly to their personal email), we probably want to redirect to the invoice room if one already exists.

As User A, go to FAB -> Send invoice to User B
As User B pay the invoice
As User A, repeat step 1 making sure to use User B's email, not the newly created invoice room
As User B pay the invoice
Observe as User A that the room becomes empty (as the invoice is moved to the invoice room)

https://github.com/Expensify/App/assets/27287420/80e883ef-8d38-46a2-bee2-1e7525c423e5

Just to cover all bases, if User B has no workspace set up yet should they actually be able to pay as business? Currently this will create a B2B room with User B's Expenses as the title. cc @cristipaval

Just to cover all bases, if User B has no workspace set up yet should they actually be able to pay as business? Currently this will create a B2B room with User B's Expenses as the title. cc @cristipaval

@jjcoffee The user should be able to pay as a business only if he is an admin of his primary workspace for now. There is a condition in the app, but it doesn't work for you, right?
I can double-check in 1-2 hours.

BUG: I'm still seeing the issue with the avatar and name (shows as User A's workspace) initially displaying incorrectly after User B pays. I'm seeing this when User B is a completely new account.
https://github.com/Expensify/App/assets/27287420/268c6d84-795a-4a28-b8de-c5b06b055ee0

A few issues still outstanding.

Thank you! I'll look through them tomorrow.

Just to cover all bases, if User B has no workspace set up yet should they actually be able to pay as business? Currently this will create a B2B room with User B's Expenses as the title. cc @cristipaval

@jjcoffee I've re-checked and I don't see option to Pay as business in the account without workspaces. Is there anything special about your account?

BUG: If the workspace that User A sends the invoice from has a custom avatar, this does not reflect in User B's chat.

Same issue is reproduced on the main branch, so it would be better to fix it separately

Issues, that should be fixed by API updates:

BUG: Avatars and name for the room don't update for User A after User B pays as business. This happens when the invoice room doesn't already exist. (link)
BUG: I'm still seeing the issue with the avatar and name (shows as User A's workspace) initially displaying incorrectly after User B pays. I'm seeing this when User B is a completely new account. (link)

Bug exists on main, should be tracked in a separate ticket:

BUG: If the workspace that User A sends the invoice from has a custom avatar, this does not reflect in User B's chat. (link)

Let's leave it to a follow up:

This might be more one for a followup. For cases where we send an invoice to user B again (directly to their personal email), we probably want to redirect to the invoice room if one already exists. (link)

Fixed in the app:

User is able to Pay as business without workspaces set up (link)

@jjcoffee @cristipaval
Note: I'm going to be OOO Jul 1- Jul 7 🌴

Thanks for the summary @VickyStash!
@jjcoffee, I think you can approve the PR, and I can test it when the backend fixes get into production. If nothing else occurs, I'll merge this PR and @VickyStash will create a follow-up issue to fix the redirection when the invoice is moved to an existing b2b invoice room. This way you can go ooo and don't worry about this PR.

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

🚀 Deployed to staging by https://github.com/cristipaval in version: 9.0.4-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Cherry-picked to staging by https://github.com/tgolen in version: 9.0.4-5 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

@Expensify/applauseleads please QA this PR and check it off on the deploy checklist if it passes.

🚀 Deployed to staging by https://github.com/cristipaval in version: 9.0.5-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to staging by https://github.com/cristipaval in version: 9.0.5-2 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
failure ❌

🍎 iOS 🍎
failure ❌

🕸 web 🕸
success ✅

@mountinyThe QA team is only seeing the "Pay as individual" option. This was reverted in this PR. Are we good to check it off?

@cristipaval could you please verify this before closing the issue? In the meantime I am checking this off our checklist as it isn't a blocker.

@mountinyThe QA team is only seeing the "Pay as individual" option. This was reverted in this PR. Are we good to check it off?

@cristipaval could you please verify this before closing the issue? In the meantime I am checking this off our checklist as it isn't a blocker.

This PR was reverted, @Julesssss

This is the PR that should not have been added to the checklist, it was reverted


[release-2.0] Rename the deployment from controller-manager to controller

/cc @yevgeny-shnaidman

/override pull-kernel-module-management-check-commits-count

/override pull-kernel-module-management-check-commits-count

/override pull-kernel-module-management-check-commits-count


message:docker: network plugin is not ready: cni config uninitialized

What you expected to happen?
Pod created in the worker node
What happened?
pod stuck in  "containercreating" status
How to reproduce it?
standard k8-installation steps
install weave net CNI
launch an app ( in this case k8-dashboard)
Anything else we need to know?
AWS. Spun up three VMs and have created a 1-Head Node and 2 -Worker Node cluster
Versions:
$ weave version
ubuntu@ip-172-31-37-222:~$ sudo weave version
This is WEAVE, Version 4.4 (TeX Live 2017/Debian)
weave: fatal: web file `version.web' not found.

$ docker version
ubuntu@ip-172-31-37-222:~$ sudo docker version
Client:
 Version:           18.06.1-ce
 API version:       1.38
 Go version:        go1.10.4
 Git commit:        e68fc7a
 Built:             Fri Oct 19 19:43:14 2018
 OS/Arch:           linux/amd64
 Experimental:      false

Server:
 Engine:
  Version:          18.06.1-ce
  API version:      1.38 (minimum version 1.12)
  Go version:       go1.10.4
  Git commit:       e68fc7a
  Built:            Thu Sep 27 02:39:50 2018
  OS/Arch:          linux/amd64
  Experimental:     false

$ uname -a
Linux ip-172-31-37-222 4.15.0-1021-aws #21-Ubuntu SMP Tue Aug 28 10:23:07 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

$ kubectl version
Client Version: version.Info{Major:"1", Minor:"12", GitVersion:"v1.12.2", GitCommit:"17c77c7898218073f14c8d573582e8d2313dc740", GitTreeState:"clean", BuildDate:"2018-10-24T06:54:59Z", GoVersion:"go1.10.4", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"12", GitVersion:"v1.12.2", GitCommit:"17c77c7898218073f14c8d573582e8d2313dc740", GitTreeState:"clean", BuildDate:"2018-10-24T06:43:59Z", GoVersion:"go1.10.4", Compiler:"gc", Platform:"linux/amd64"}

Logs:
$ kubectl logs -n kube-system <weave-net-pod> weave
ubuntu@ip-172-31-37-222:~$ kubectl describe pods weave-net-9kwpm -n kube-system
Name:               weave-net-9kwpm
Namespace:          kube-system
Priority:           0
PriorityClassName:  <none>
Node:               ip-172-31-35-246/<IP_ADDRESS>
Start Time:         Thu, 15 Nov 2018 08:52:13 +0000
Labels:             controller-revision-hash=577f8b9cc5
                    name=weave-net
                    pod-template-generation=1
Annotations:        <none>
Status:             Running
IP:                 <IP_ADDRESS>
Controlled By:      DaemonSet/weave-net
Containers:
  weave:
    Container ID:  docker://abb9f4329cb7b8966c9aac4e90323ff3196a0a13ccc09adb48c3392e62c3baf7
    Image:         docker.io/weaveworks/weave-kube:2.5.0
    Image ID:      docker-pullable://weaveworks/weave-kube@sha256:f1b6edd296cf0b7e806b1a1a1f121c1e8095852a4129edd08401fe2e7aab652d
    Port:          <none>
    Host Port:     <none>
    Command:
      /home/weave/launch.sh
    State:          Running
      Started:      Thu, 15 Nov 2018 08:52:20 +0000
    Ready:          True
    Restart Count:  0
    Requests:
      cpu:      10m
    Readiness:  http-get http://<IP_ADDRESS>:6784/status delay=0s timeout=1s period=10s #success=1 #failure=3
    Environment:
      HOSTNAME:   (v1:spec.nodeName)
    Mounts:
      /host/etc from cni-conf (rw)
      /host/home from cni-bin2 (rw)
      /host/opt from cni-bin (rw)
      /host/var/lib/dbus from dbus (rw)
      /lib/modules from lib-modules (rw)
      /run/xtables.lock from xtables-lock (rw)
      /var/run/secrets/kubernetes.io/serviceaccount from weave-net-token-74slw (ro)
      /weavedb from weavedb (rw)
  weave-npc:
    Container ID:   docker://892a9ccbbd20866d83bd477060c15736b9de335db0ad38189bd4e8412bbf5e26
    Image:          docker.io/weaveworks/weave-npc:2.5.0
    Image ID:       docker-pullable://weaveworks/weave-npc@sha256:5bc9e4241eb0e972d3766864b2aca085660638b9d596d4fe761096db46a8c60b
    Port:           <none>
    Host Port:      <none>
    State:          Running
      Started:      Thu, 15 Nov 2018 08:52:23 +0000
    Ready:          True
    Restart Count:  0
    Requests:
      cpu:  10m
    Environment:
      HOSTNAME:   (v1:spec.nodeName)
    Mounts:
      /run/xtables.lock from xtables-lock (rw)
      /var/run/secrets/kubernetes.io/serviceaccount from weave-net-token-74slw (ro)
Conditions:
  Type              Status
  Initialized       True
  Ready             True
  ContainersReady   True
  PodScheduled      True
Volumes:
  weavedb:
    Type:          HostPath (bare host directory volume)
    Path:          /var/lib/weave
    HostPathType:
  cni-bin:
    Type:          HostPath (bare host directory volume)
    Path:          /opt
    HostPathType:
  cni-bin2:
    Type:          HostPath (bare host directory volume)
    Path:          /home
    HostPathType:
  cni-conf:
    Type:          HostPath (bare host directory volume)
    Path:          /etc
    HostPathType:
  dbus:
    Type:          HostPath (bare host directory volume)
    Path:          /var/lib/dbus
    HostPathType:
  lib-modules:
    Type:          HostPath (bare host directory volume)
    Path:          /lib/modules
    HostPathType:
  xtables-lock:
    Type:          HostPath (bare host directory volume)
    Path:          /run/xtables.lock
    HostPathType:  FileOrCreate
  weave-net-token-74slw:
    Type:        Secret (a volume populated by a Secret)
    SecretName:  weave-net-token-74slw
    Optional:    false
QoS Class:       Burstable
Node-Selectors:  <none>
Tolerations:     :NoSchedule
                 node.kubernetes.io/disk-pressure:NoSchedule
                 node.kubernetes.io/memory-pressure:NoSchedule
                 node.kubernetes.io/network-unavailable:NoSchedule
                 node.kubernetes.io/not-ready:NoExecute
                 node.kubernetes.io/unreachable:NoExecute
                 node.kubernetes.io/unschedulable:NoSchedule
Events:          <none>

$ journalctl -u docker.service --no-pager
$ journalctl -u kubelet --no-pager
g: No networks found in /etc/cni/net.d
Nov 15 08:52:23 ip-172-31-37-222 kubelet[24528]: E1115 08:52:23.747298   24528 kubelet.go:2167] Container runtime network not ready: NetworkReady=false reason:NetworkPluginNotReady message:docker: network plugin is not ready: cni config uninitialized

-->

@ezspamat kublet log says No networks found in /etc/cni/net.d, Do you see the file /etc/cni/net.d/10-weave.conflist? or the folder is empty?
Also please share the logs for weave-net pods.

@murali-reddy  i do see the file . I am unable to get logs for the weave-net pods.
ubuntu@ip-172-31-37-222:~$ cat  /etc/cni/net.d/10-weave.conflist
{
    "cniVersion": "0.3.0",
    "name": "weave",
    "plugins": [
        {
            "name": "weave",
            "type": "weave-net",
            "hairpinMode": true
        },
        {
            "type": "portmap",
            "capabilities": {"portMappings": true},
            "snat": true
        }
    ]
}

ubuntu@ip-172-31-37-222:~$ kubectl logs weave-net-9kwpm -n kube-system
Error from server (BadRequest): a container name must be specified for pod weave-net-9kwpm, choose one of: [weave weave-npc]

I have found the issue. Feel really dumb.I just realized that the ports were blocked. I unblocked the ports and now everything seem to be working fine. Thanks a ton for your help and guidance. Sincerely appreciate it :slightly_smiling_face:
"Before installing Weave Net, you should make sure the following ports are not blocked by your firewall: TCP 6783 and UDP 6783/6784"


Update all copyright headers

Will likely require a short code freeze, since it'll modify the top of a lot of files and break git change tracking

addressed in f645dcc4e61f91ab74a87ebf07f1502a66acbde8


add training section

hi Falco team,
here are the proposed changes to embed the 3 current Falco hands-on labs in the website. One of the labs was released weeks ago and for the other two there's going to be a PR with changes to fix them. So, I believe is a good idea to start moving this at the same time for you to test the proposed changes.
Thanks for your time! :)
What type of PR is this?
/kind user-interface
/kind content
Any specific area of the project related to this PR?
/area training
What this PR does / why we need it:
This PR creates a new section in the Falco website to host the hands-on labs. It creates a new section with an introduction to the content with links to one different page for every lab. This way we avoid loading the lab if the user is just viewing the intro. And this way we keep Katacoda infra usage low.

@pabloopez: The label(s) area/training cannot be applied, because the repository doesn't have them.

In response to this:

hi Falco team,
here are the proposed changes to embed the 3 current Falco hands-on labs in the website. One of the labs was released weeks ago and for the other two there's going to be a PR with changes to fix them. So, I believe is a good idea to start moving this at the same time for you to test the proposed changes.
Thanks for your time! :)
What type of PR is this?
/kind user-interface
/kind content
Any specific area of the project related to this PR?
/area training
What this PR does / why we need it:
This PR creates a new section in the Falco website to host the hands-on labs. It creates a new section with an introduction to the content with links to one different page for every lab. This way we avoid loading the lab if the user is just viewing the intro. And this way we keep Katacoda infra usage low.

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by: pabloopez
To complete the pull request process, please assign kris-nova after the PR has been reviewed.
You can assign the PR to them by writing /assign @kris-nova in a comment when ready.
The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

Find here a preview of the changes, not great resolution but it helps to get an idea if you do not want to test it. I checked with make serve that all the changes are working fine.

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by: mstemm, pabloopez
To complete the pull request process, please assign kris-nova after the PR has been reviewed.
You can assign the PR to them by writing /assign @kris-nova in a comment when ready.
The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

LGTM label has been added.  Git tree hash: 6e7625da5b1d5ec71380d18875171b1bb7ebcec6

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by: pabloopez
To complete the pull request process, please ask for approval from radhikapc after the PR has been reviewed.
The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

Thank @radhikapc for your suggestions, I included a new commit with those changes.

LGTM label has been added.  Git tree hash: bc04137999c8da8057c014fd26eb0d8d0895ce2f

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: pabloopez, radhikapc
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [radhikapc]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

I'm not sure about the context, but it sounds like @pabloopez talked to other maintainers about adding a training/labs section. @pabloopez, which other maintainers did you talk to? But I did review it using make serve and it looks great.

Hi @mstemm, thanks for your time to review this. Your question sounds reasonable to me. Let me add more context:

An issue was opened in falco/evolution to discuss the possibility of unarchiving the existing Falco hands-on labs.
Some weeks ago in one of the Falco Community Calls, I introduced the possibility to embed the labs into the Falco website. It was registered in the meeting agenda (please, check date: 2021-05-26).

@mstemm  you can find there a list of the assistants, some of them are maintainers of this repository too. If I remember well, I even shared a mockup (slightly different to the final result committed here) to show how we can embed the labs in the Falco website.
Let me know if more clarification is required to proceed. Thank you.

No other info needed, I read the issue and I'm all caught up now. Thanks!


Can't find classes in JAR because of addClassLoader in ConfigurationBuilder

I create a instance of Reflections with this piece of code:
val reflections = Reflections(ConfigurationBuilder().addUrls(URL("file:" + jarFile.path)).addClassLoader(urlClassLoader))
But it can't find any classes (actually it can find, but it can't resolve the type) because of missing classloader.
See this line of method addClassLoader:
https://github.com/aschoerk/reflections8/blob/97c5820b44a8607da418cdbac7f6f0a71525589a/src/main/java/org/reflections8/util/ConfigurationBuilder.java#L342
If classloader isn't present (Optional.empty()), it returns, without even adding the classloader!
I compared with original Reflections project:
https://github.com/ronmamo/reflections/blob/43ee4af53a654006d230bb667ba2cf166ef1e2a8/src/main/java/org/reflections/util/ConfigurationBuilder.java#L301
Obviously it always adds the new classloader.
My workaround is calling the setter directly, and that makes Reflections resolve the classes:
val configurationBuilder = ConfigurationBuilder().setUrls(URL("file:" + jarFile.absolutePath))
configurationBuilder.classLoaders = Optional.of(arrayOf(urlClassLoader))

The suggested fix above makes it works again, finding the type of the classes using the classloader.

Solved by issuer


Update version string for experimental GPU metrics branch builds

Description
Update the version string for testing builds based off the feature branch. The feature branch's base is newer than v2.23.0 but does not include all changes in V2.24.0 so temporarily have this as 2.23.0+pre.gpu.1.
Related issue

How has this been tested?

Checklist:

Unit tests

[x] Unit tests do not apply.
[ ] Unit tests have been added/modified and passed for this PR.

Integration tests

[x] Integration tests do not apply.
[ ] Integration tests have been added/modified and passed for this PR.

Documentation

[x] This PR introduces no user visible changes.
[ ] This PR introduces user visible changes and the corresponding documentation change has been made.

Minor version bump

[ ] This PR introduces no new features.
[ ] This PR introduces new features, and there is a separate PR to bump the minor version since the last release already.
[x] This PR bumps the version.

Lgtm!


Excessively recursive resolution when redirecting dnslink to local gateway in WebExtension version

When we open a link pointing to DNS name that has a dnslink in TXT record (with DNSLINK Support enabled in Preferences), it causes redirection to value of this dnslink, although the preferred behaviour would be to keep the [readable] DNS name in the urlbar.
For example, http://dist.ipfs.io/go-ipfs/versions is redirected to [local_gateway]/ipfs/QmeqJJqSyNKt6d9SFRR1Rec6MNGJX6hdfnhUi2Bphec79Y/go-ipfs/versions, although one would expect redirecting to [local_gateway]/ipns/dist.ipfs.io/go-ipfs/versions instead. If we make a bookmark with such link, then we obviously will not be able to receive any updates!
On the other hand, always static IPFS links may be useful in (semi-)isolated network segments when we can not talk with whole IPFS network... but IPNS is especially designed for mutable content, right? And we expects that we will able to receive updates in the future using the same link.

This is a very good question! "Losing updates" is a big pain point.
DNSLINK experiment in v2.0.14 redirects to a value from TXT record (dnslink={value}). It can be either an immutable /ipfs/{cid} or a mutable /ipns/{peerid} (after https://github.com/ipfs/go-ipfs/issues/4293 is fixed 🙃 ).
I agree, from the UX perspective it makes sense to redirect to {local gateway}/ipns/{fqdn} instead and leave it up to the gateway to load the correct path from IPFS network behind the scenes.
Pros

Clean URL that follows both IPNS and dnslink updates.

This change would fix #288 today, without waiting for https://github.com/ipfs/go-ipfs/issues/4293.

Greatly improved dnslink refresh time.
Current implementation caches and re-uses dnslink value  which introduces artificial delay in dnslink updates.  This means browser extension will redirect to a cached path even if a new one is available in TXT record.
Switching to /ipns/{fqdn} would remove this problem. Value cached by browser extension could be a simple boolean flag and actual value would be looked up by go-ipfs.

Cons

?

@lockedshadow I've just released v2.0.15rc1 with this change, feel free to give it a try :-)


Update slf4j to 1.7.32

Coverage remained the same at 50.509% when pulling f0fcbfdaaa7a2e4da894ebfbb3328603a8f49a98 on sepe81:update-to-slf4j-1.7.32 into 9ca84ca02f9049d1e1ab68a338a2886052ec57e9 on apache:master.

LGTM 👍


Favicons

So I have favicon generation up and running on the express server, but it comes with a pretty harsh dependency that requires cairo on the server.  The generator is in coffee script and uses a canvas like api, so it should be pretty straightforward to get it working in the browser, so that if the client gets a 404 on the favicon it can download it, generate it's own and then try and put it to the server.  Is there any interest in this?  Or should we keep it as a server side thing, and i'll look for a lighter way to generate them in node?
--nick

I would like to see the favicon generated client side so long as we can get that generation done at a convenient point during the server install.
One strategy would be to use the image from default-data/status/favicon.png until a better one is chosen.
I favor generating favicons with gradients because that gives all federated wiki sites a family resemblance and they look good as backgrounds in the fork [ f ] actions.
I once considered retrieving only the specification for a gradient from the server and always rendering it client side. This fails because the generated icon doesn't show in tabs and browser history.

Cool, i'm going to put this on the back burner for a bit, but I will revisit it unless someone else gets to it before I do.  It should be a fairly easy port from favicon.coffee to a client side script.  I like both the gradients and Sven's idea of pointing the favicon at a gravitar, I think as long as they are unique it proves a great visual way of quickly telling where resources are and where they came from.


WIP: drc on high_speed_comparator

Hi @Lastdayends , this branch reproduces the via spacing issue on high_speed_comparator.
align.cell_fabric.drc WARNING : ("Vertical space violation on V2: ([2384, 992, 2416, 1024], 'clk') ([2384, "
"1076, 2416, 1108], 'clk') 136")
align.cell_fabric.drc WARNING : ("Horizontal space violation on V3: ([4620, 5608, 4660, 5648], 'vyy') ([4700, "
"5608, 4740, 5648], 'vyy') 120")

@854768750
Hi Yishuang,
Can you help to check the via space issue in this branch?
Yaguang

@Lastdayends @soneryaldiz
The first drc error occurs because empty internal via in lef.
align.cell_fabric.drc WARNING : ("Vertical space violation on V2: ([2384, 992, 2416, 1024], 'clk') ([2384, "
"1076, 2416, 1108], 'clk') 136")

The second is same routing net via spacing error.

@854768750
I can fixed the second one.
Yaguang

@soneryaldiz @arvuce22
For the via empty issue in lef file, maybe we should include Arvind here.
Yaguang

Same net via spacing error is fixed.

Thanks for promptly addressing this issue. Two DRC violations left:
align.cell_fabric.drc WARNING : ("Horizontal space violation on V1: ([1184, 6536, 1216, 6568], 'vxx') align.cell_fabric.drc WARNING : ("Vertical space violation on V2: ([2384, 992, 2416, 1024], 'clk')

For the via empty issue in lef file...

What do you mean by above? Do you mean that the vias should also be added as obstructions in the LEF? Adding @arvuce22 to the thread.

Yes. Because via in primitive cells is not included in input files, then there may be via spacing error between cell internal via and routing via.

@soneryaldiz
If the vias is not includes in the lef file, the placer and router can not see the via. However, if the via does exist in gds file, then there will be something drc issue due to the mismatching between lef and gds file.
Yaguang

@Lastdayends
I pushed a commit which includes both metals and vias in the LEF as obstruction. DRC error still exists. Could you please try?

@Yaguang Li<EMAIL_ADDRESS>If we include vias in the lef file, would it
resolve the issue?
On Tue, Apr 7, 2020 at 2:09 PM Yaguang Li<EMAIL_ADDRESS>wrote:

@soneryaldiz https://github.com/soneryaldiz
If the vias is not includes in the lef file, the placer and router can not
see the via. However, if the via does exist in gds file, then there will be
something drc issue due to the mismatching between lef and gds file.
Yaguang
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/ALIGN-analoglayout/ALIGN-public/pull/403#issuecomment-610568228,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AKTUJYMRM42OKBVDJFS3USTRLN243ANCNFSM4MCZSJGA
.

@soneryaldiz
Thank you. I can see vias in lef now. I will include vias into router.

@arvuce22
Sure.
Yaguang

@arvuce22
What about the via enclosure?
Yaguang

@soneryaldiz
Is it possible to add via metals into lef file?
Via's lower/upper enclosure metals  are connected to pin/obstruction metals.
Is it possible to add via enclosure metal into OBS if it connects to a obstruction metal
and add via enclosure metal into PIN if it connects to a pin metal?
Thank you

For example, the via's lower metal connects to an internal obstruction m2 metal, then the via's lower metal(blue box) should be added into OBS metal part.
The via's upper metal (green box) connects to a pin m3 metal (grey box), then it should be added into PIN metal part.

@Yaguang Li<EMAIL_ADDRESS>What about the via enclosure?: I have to check
about this.
On Tue, Apr 7, 2020 at 3:20 PM Yaguang Li<EMAIL_ADDRESS>wrote:

@arvuce22 https://github.com/arvuce22
What about the via enclosure?
Yaguang
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/ALIGN-analoglayout/ALIGN-public/pull/403#issuecomment-610600112,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AKTUJYMN6R4EKI65NOXQRTLRLODH5ANCNFSM4MCZSJGA
.

@Lastdayends
I could not follow. Let's talk thru an example primitive: Switch_NMOS_n12_X4_Y4. S/D/G pins on m3. B on m2. Except these pins, all internal routing is added as obstruction to LEF. Could you please point to what is missing in the LEF?

@soneryaldiz
Let's take the via in primitives as an example. The placer takes the lef file as input, every internal information of the primitive should be included in the lef file. However, currently, the via information is empty in lef file now.
As you can see those vias in primitives in Intel viewer, that's because the json file for the viewer is generated from gds.json file. Every internal information is here in gds.json file, including via information.
What's happening now is that, lef file is not consistent with gds.json file. Via information is empty in lef. So the placer do not think there are some vias while those vias acutally exist.
Yaguang

@soneryaldiz
If you look into the lef file (not in json for Intel view),  every via in primitives is missing. There are just metals.
Yaguang

I obviously picked a bad/big example. If I compare Switch_NMOS_n12_X1_Y1.json with its macro definition in the lef, I see same number of v0's and v1's. Let's resolve this in Tomorrow's meeting.

@soneryaldiz
I think there is no need to add via enclosure metals into lef because the via enclosure metals (blue box) are already covered by pin/internal metals (green box) in lef file.

@soneryaldiz
Yes. Now there are there, I can observe.
Yaguang

@Yaguang Li<EMAIL_ADDRESS>I think after including the vias in the lef
file Soner was still getting DRCs as he mentioned: "I pushed a commit which
includes both metals and vias in the LEF as obstruction. DRC error still
exists. Could you please try?"
On Tue, Apr 7, 2020 at 5:15 PM Yaguang Li<EMAIL_ADDRESS>wrote:

@soneryaldiz https://github.com/soneryaldiz
Yes. Now there are there, I can observe.
Yaguang
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/ALIGN-analoglayout/ALIGN-public/pull/403#issuecomment-610647097,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AKTUJYJCFCSHKIZBUH4S343RLOQY3ANCNFSM4MCZSJGA
.

@arvuce22
The vias are now in lef. And I am adding some lines to read the vias in lef.
Yishuang

@arvuce22
Yes. The placer and router also need to import those via from lef file after you include those via in lef.
Yishuang is working on that part.
Yaguang

Thank you! @Yaguang Li<EMAIL_ADDRESS>@Yishuang Lin<EMAIL_ADDRESS>On Tue, Apr 7, 2020 at 5:31 PM Yaguang Li<EMAIL_ADDRESS>wrote:

@arvuce22 https://github.com/arvuce22
Yes. The placer and router also need to import those via from lef file
after you include those via in lef.
Yishuang is working on that part.
Yaguang
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/ALIGN-analoglayout/ALIGN-public/pull/403#issuecomment-610652462,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AKTUJYLZ5S43MKCT427VOWTRLOSULANCNFSM4MCZSJGA
.

thank you all! I am looking forward to the fix :)

Looks like this branch is almost ready for review & merge.
Do we need to create a new MockPDK instead of editing FinFET14nm_Mock_PDK?

There are still DRC violations and there are failures in CircleCI. Let's wait for the resolution.

@Lastdayends
I have updated via reader. There is now one min spacing error between m4 power grid and m4 routing metal.

@854768750
Thanks. The M4 routing metal is for power routing metal or singal routing metal?
Yaguang

It is signal.
DRC ERROR MinSpace violation on M4: vcom[600, -20, 2360, 20] x vdd[2380, -20, 6820, 20]

@Lastdayends @854768750
All DRC errors are resolved on this branch. I suggest not to merge this branch to master as the changes in mock PDK break circleci. Do you have another branch thru which you can PR and merge changes to master?

I have another branch. But it also failed circleci.

I have another branch. But it also failed circleci.

That is probably due to the changes in mock PDK. Let me revert those changes.

Deleting this branch as all fixes are on master.


Does aideml supports Windows?

Hi,
When i am trying to run it via windows, it is giving me this bug:
{
"name": "PermissionError",
"message": "[WinError 5] Access denied",
"stack": "---------------------------------------------------------------------------
Empty                                     Traceback (most recent call last)
File c:\Users\Hp\Desktop\AIDE\venv\Lib\site-packages\aide\interpreter.py:236, in Interpreter.run(self, code, reset_session)
234 try:
235     # check if the child is done
--> 236     state = self.event_outq.get(timeout=1)  # wait for state:finished
237     assert state[0] == "state:finished", state
File ~\AppData\Local\Programs\Python\Python311\Lib\multiprocessing\queues.py:114, in Queue.get(self, block, timeout)
113     if not self._poll(timeout):
--> 114         raise Empty
115 elif not self._poll():
Empty:
During handling of the above exception, another exception occurred:
PermissionError                           Traceback (most recent call last)
Cell In[8], line 7
1 exp = aide.Experiment(
2     data_dir="data_dir",  # replace this with your own directory
3     goal=mygoal,  # replace with your own goal description
4     eval="MAPE"  # replace with your own evaluation metric
5 )
----> 7 best_solution = exp.run(steps=25)
9 print(f"Best solution has validation metric: {best_solution.valid_metric}")
10 print(f"Best solution code: {best_solution.code}")
File c:\Users\Hp\Desktop\AIDE\venv\Lib\site-packages\aide\init.py:52, in Experiment.run(self, steps)
50 def run(self, steps: int) -> Solution:
51     for _i in range(steps):
---> 52         self.agent.step(exec_callback=self.interpreter.run)
53         save_run(self.cfg, self.journal)
54     self.interpreter.cleanup_session()
File c:\Users\Hp\Desktop\AIDE\venv\Lib\site-packages\aide\agent.py:292, in Agent.step(self, exec_callback)
287 else:
288     result_node = self._improve(parent_node)
290 self.parse_exec_result(
291     node=result_node,
--> 292     exec_result=exec_callback(result_node.code, True),
293 )
294 self.journal.append(result_node)
File c:\Users\Hp\Desktop\AIDE\venv\Lib\site-packages\aide\interpreter.py:261, in Interpreter.run(self, code, reset_session)
258 assert reset_session, "Timeout ocurred in interactive session"
260 # send interrupt to child
--> 261 os.kill(self.process.pid, signal.SIGINT)  # type: ignore
262 child_in_overtime = True
263 # terminate if we're overtime by more than a minute
PermissionError: [WinError 5] Access denied"
}
i think this is about "os.kill(self.process.pid, signal.SIGINT)"  line
i dont think this works with  windows.

Can you run with docker? https://github.com/WecoAI/aideml/pull/18/files

You should be able to run on Windows with Docker now but let me know if any issues persist


[Feature] improve parameters for crawl function for DPK-Connector

Search before asking

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

Component
Other
Feature
crawl([MY_CONFIG.CRAWL_URL_BASE],
          on_downloaded,
          user_agent=user_agent,
          depth_limit = MY_CONFIG.CRAWL_MAX_DEPTH,
          path_focus = True,
          download_limit = MY_CONFIG.CRAWL_MAX_DOWNLOADS)

crawl function should take download directory location
and arguments like depth_limit  , download_limit  should be made available to callback function on_downloaded.  Currently on_downloaded checks these arguments using global variables.  They should be from the arguments passed in

sample code : https://github.com/sujee/data-prep-kit/blob/html-processing-1/examples/notebooks/html-processing/1_download_site.ipynb
Are you willing to submit a PR?

[ ] Yes I am willing to submit a PR!

CC : @Qiragg

@Qiragg @hmtbr Let's discuss this in context of other requirements we are aware of. I am not sure we want to do what @sujee is asking for but open to suggestions how we can reconcile various requirements

@touma-I

crawl function should take download directory location

The data-prep-connector is intended to work without any persistent layer. Introducing this would be against the design.

arguments like depth_limit , download_limit should be made available to callback function on_downloaded

I'm not sure why this is required. These static values can be embedded inside the callback function in defining it. Implementing this would just introduce redundancy into our library.

@sujee @Bytes-Explorer I will be closing this issue with no action.  We need to decide at some point if we want to expose the crawl function to the notebook users. I don't think it is a good idea for now.

the crawl function is not one we thought to expose to the notebook users. We will revisit this at some future time.


no automatic rebuild of container images on docker hub

The current container image on docker hub is already 3 months old. The latest commit fixed a problem I have with the current image.
Please enable automatic container image build after git push.

My main concern with this is the open-ness of this org - there are over 250 people in this org, and they aren't all necessarily on the same page re: security conscience.  Will have to investigate the impacts of wiring up Docker Hub to Git Hub when the GH org is so wide and diverse.

(but I 💯 agree that auto-builds would make everyone's lives easier)


Small improvement of the german Readme.md

The last sequence of words did not made a complete sentence. I just added the verb of the sentence to this sequence.

This is perfect, thanks @domi877 !

I have noticed that there are missing quite a few translations for Germany. I guess I will create them in the next days and make a big PR.


Better modal image display

Currently, extremely wide image in modal cannot be displayed entirely (Exceeds to right side of screen).
This change allows to show entire of such image.

Ooh, good fix! I replicated the issue and confirmed this PR fixes it. Great work, thank you!


The icons are not weird and not user friendly.
I've couldn't find half of what I needed.
Those 480 icons are not even 300, because half of them are the same.
Don't believe me?
Check the filled and outlined versions of: arrows, paper clips, bar charts, chevrons, corners, diagonal arrows, menu and so on.

@zsolt-tracknamic so any alternative

@zsolt-tracknamic so any alternative

Yes: https://www.npmjs.com/package/@expo/vector-icons


Add msg.PrepareAndSubmit

Codecov Report

Merging #159 (91ed420) into main (d0fe7b6) will decrease coverage by 0.24%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##             main     #159      +/-   ##
==========================================
- Coverage   96.56%   96.31%   -0.25%
==========================================
  Files          44       44
  Lines        2123     2143      +20
==========================================
+ Hits         2050     2064      +14
- Misses         41       46       +5
- Partials       32       33       +1

Impacted Files
Coverage Δ

dtmcli/barrier.go
96.42% <100.00%> (+0.68%)
:arrow_up:

dtmcli/msg.go
100.00% <100.00%> (ø)

dtmsvr/trans_type_msg.go
93.33% <100.00%> (+6.66%)
:arrow_up:

dtmutil/utils.go
95.58% <100.00%> (ø)

dtmsvr/storage/sql/sql.go
93.26% <0.00%> (-6.74%)
:arrow_down:

dtmgrpc/dtmgimp/grpc_clients.go
88.88% <0.00%> (-5.56%)
:arrow_down:

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 d0fe7b6...91ed420. Read the comment docs.


ABIChecker: diagnose mangled name changes

Moving generic constraint from extension to its member or vice versa may change the mangled name
of the member without changing the generic signature, thus introducing ABI breakages. This change
teaches the ABI checker to diagnose USR (mangled name) changes to cover such cases.
rdar://78276290

@swift-ci please smoke test

@swift-ci please smoke test

@swift-ci Please smoke test Linux platform

https://github.com/apple/swift-driver/pull/802
@swift-ci please smoke test


Remove link to custom documentation website

Hi! Thanks for you crate!
I have been using LangChain previously in Java and Python, and I am happy that there is a crate for Rust too!
However, please, could you remove documentation link on crates.io from the custom website to classic docs.rs?
https://langchain-rust.sellie.tech/get-started/quickstart seems severely underdeveloped. IMHO doc.rs is much used in Rust community and everyone is relying on it and used to it.
https://docs.rs/langchain-rust/latest/langchain_rust/ - it seems this is probably the right link to Rust documentation. Rust documentation facilities really show the API you have and it allows to quickly search through what langchain-rust have

This refs https://github.com/Abraxas-365/langchain-rust/issues/255


Coordinate Future CIF Survey

Instead of putting out a CIF survey at the CPI workshop on Feb. 24, we would like to capture an opportunity to combine our external user survey with the CIF's program review survey closely following the Emissions Performance stream's launch.

[ ] Review discovery documentation
[ ] Review external user research goals
[ ] Get scrum team's input about what they want to know
[ ] Work with CIF team to identify how we can combine our goals
[ ] Define aims & goals of the survey
[ ] Brainstorm potential outcomes (e.g., user journey, empathy maps)
[ ] Help to design survey

Are there any questions documented from the team's initial work last sprint that can feed into this?

Great point, see ticket #242

@Peirist - can you remind us the timeline on the CIF survey.

@LindsayMacfarlane It's been up in the air for a while due to the delayed launch and other minor crises over the past couple weeks.  I can get clarification next week when Kym is back from GLOBE.  I'll send over what we have thus far.


[doc]Add document for debug connector

Fixes https://github.com/apache/pulsar/issues/3624
Master Issue: https://github.com/apache/pulsar/issues/3624
Motivation
If the current user encounters problems when using the connector, there is not a reasonable debugging process. This document attempts to provide a debugging process for the connector.
Modifications

Add debugging document for the connector.

Documentation

Does this pull request introduce a new feature? (yes / no)
If yes, how is the feature documented? (not applicable / docs / JavaDocs / not documented)
If a feature is not applicable for documentation, explain why?
If a feature is not documented yet in this PR, please create a followup issue for adding the documentation

@Anonymitaet Could you please help review this PR? Thank you.

@Jennifer88huang glad to help

I've updated the guide based on the following structure:

---
id: io-debug
title: How to debug Pulsar connectors
sidebar_label: Debug
---

This guide explains how to debug connectors in localrun or cluster mode and gives a debugging checklist.

To better demonstrate how to debug Pulsar connectors, here takes a Mongo sink connector as an example.

**Deploy a Mongo sink environment**

1. Start a Mongo service.

    ```bash
    docker pull mongo:4
    docker run -d -p 27017:27017 --name pulsar-mongo -v $PWD/data:/data/db mongo:4
    ```

2. Create a DB and a collection.

    ```bash
    docker exec -it pulsar-mongo /bin/bash
    mongo
    > use pulsar
    > db.createCollection('messages')
    > exit
    ```

3. Start Pulsar standalone.

    ```bash
    docker pull apachepulsar/pulsar:2.4.0
    docker run -d -it -p 6650:6650 -p 8080:8080 -v $PWD/data:/pulsar/data --link pulsar-mongo --name pulsar-mongo-standalone apachepulsar/pulsar:2.4.0 bin/pulsar standalone
    ```

4. Configure the Mongo sink with the `mongo-sink-config.yaml` file.

    ```bash
    configs:
    mongoUri: "mongodb://pulsar-mongo:27017"
    database: "pulsar"
    collection: "messages"
    batchSize: 2
    batchTimeMs: 500
    ```

    ```bash
    docker cp mongo-sink-config.yaml pulsar-mongo-standalone:/pulsar/
    ```

5. Download the Mongo sink nar package.

    ```bash
    docker exec -it pulsar-mongo-standalone /bin/bash
    curl -O http://apache.01link.hk/pulsar/pulsar-2.4.0/connectors/pulsar-io-mongo-2.4.0.nar
    ```

## Debug in localrun mode

Start the Mongo sink in localrun mode using the `localrun` command.

> #### Tip
>
> For more information about the `localrun` command, see [`localrun`](reference-connector-admin.md/#localrun-1).

```bash
./bin/pulsar-admin sinks localrun \
--archive pulsar-io-mongo-2.4.0.nar \
--tenant public --namespace default \
--inputs test-mongo \
--name pulsar-mongo-sink \
--sink-config-file mongo-sink-config.yaml \
--parallelism 1

Use connector log
Use one of the following methods to get a connector log in localrun mode:

After executing the localrun command, the log is automatically printed on the console.

The log is located at:
logs/functions/tenant/namespace/function-name/function-name-instance-id.log

Example
The path of the Mongo sink connector is:
logs/functions/public/default/pulsar-mongo-sink/pulsar-mongo-sink-0.log

To clearly explain the log information, here breaks down the large block of information into small blocks and add descriptions for each block.

This piece of log information shows the storage path of the nar package after decompression.
08:21:54.132 [main] INFO  org.apache.pulsar.common.nar.NarClassLoader - Created class loader with paths: [file:/tmp/pulsar-nar/pulsar-io-mongo-2.4.0.nar-unpacked/, file:/tmp/pulsar-nar/pulsar-io-mongo-2.4.0.nar-unpacked/META-INF/bundled-dependencies/,

Tip
If class cannot be found exception is thrown, check whether the nar file is decompressed in the folder file:/tmp/pulsar-nar/pulsar-io-mongo-2.4.0.nar-unpacked/META-INF/bundled-dependencies/ or not.

This piece of log information illustrates the basic information about the Mongo sink connector, such as tenant, namespace, name, parallelism, resources, and so on, which can be used to check whether the Mongo sink connector is configured correctly or not.
08:21:55.390 [main] INFO  org.apache.pulsar.functions.runtime.ThreadRuntime - ThreadContainer starting function with instance config InstanceConfig(instanceId=0, functionId=853d60a1-0c48-44d5-9a5c-6917386476b2, functionVersion=c2ce1458-b69e-4175-88c0-a0a856a2be8c, functionDetails=tenant: "public"
namespace: "default"
name: "pulsar-mongo-sink"
className: "org.apache.pulsar.functions.api.utils.IdentityFunction"
autoAck: true
parallelism: 1
source {
typeClassName: "[B"
inputSpecs {
    key: "test-mongo"
    value {
    }
}
cleanupSubscription: true
}
sink {
className: "org.apache.pulsar.io.mongodb.MongoSink"
configs: "{\"mongoUri\":\"mongodb://pulsar-mongo:27017\",\"database\":\"pulsar\",\"collection\":\"messages\",\"batchSize\":2,\"batchTimeMs\":500}"
typeClassName: "[B"
}
resources {
cpu: 1.0
ram:<PHONE_NUMBER>
disk:<PHONE_NUMBER>0
}
componentType: SINK
, maxBufferedTuples=1024, functionAuthenticationSpec=null, port=38459, clusterName=local)

This piece of log information demonstrates the status of the connections to Mongo and configuration information.
08:21:56.231 [cluster-ClusterId{value='5d6396a3c9e77c0569ff00eb', description='null'}-pulsar-mongo:27017] INFO  org.mongodb.driver.connection - Opened connection [connectionId{localValue:1, serverValue:8}] to pulsar-mongo:27017
08:21:56.326 [cluster-ClusterId{value='5d6396a3c9e77c0569ff00eb', description='null'}-pulsar-mongo:27017] INFO  org.mongodb.driver.cluster - Monitor thread successfully connected to server with description ServerDescription{address=pulsar-mongo:27017, type=STANDALONE, state=CONNECTED, ok=true, version=ServerVersion{versionList=[4, 2, 0]}, minWireVersion=0, maxWireVersion=8, maxDocumentSize=16777216, logicalSessionTimeoutMinutes=30, roundTripTimeNanos=89058800}

This piece of log information explains the configuration of consumers and clients, including the topic name, subscription name, subscription type, and so on.
08:21:56.719 [pulsar-client-io-1-1] INFO  org.apache.pulsar.client.impl.ConsumerStatsRecorderImpl - Starting Pulsar consumer perf with config: {
"topicNames" : [ "test-mongo" ],
"topicsPattern" : null,
"subscriptionName" : "public/default/pulsar-mongo-sink",
"subscriptionType" : "Shared",
"receiverQueueSize" : 1000,
"acknowledgementsGroupTimeMicros" : 100000,
"negativeAckRedeliveryDelayMicros" : 60000000,
"maxTotalReceiverQueueSizeAcrossPartitions" : 50000,
"consumerName" : null,
"ackTimeoutMillis" : 0,
"tickDurationMillis" : 1000,
"priorityLevel" : 0,
"cryptoFailureAction" : "CONSUME",
"properties" : {
    "application" : "pulsar-sink",
    "id" : "public/default/pulsar-mongo-sink",
    "instance_id" : "0"
},
"readCompacted" : false,
"subscriptionInitialPosition" : "Latest",
"patternAutoDiscoveryPeriod" : 1,
"regexSubscriptionMode" : "PersistentOnly",
"deadLetterPolicy" : null,
"autoUpdatePartitions" : true,
"replicateSubscriptionState" : false,
"resetIncludeHead" : false
}
08:21:56.726 [pulsar-client-io-1-1] INFO  org.apache.pulsar.client.impl.ConsumerStatsRecorderImpl - Pulsar client config: {
"serviceUrl" : "pulsar://localhost:6650",
"authPluginClassName" : null,
"authParams" : null,
"operationTimeoutMs" : 30000,
"statsIntervalSeconds" : 60,
"numIoThreads" : 1,
"numListenerThreads" : 1,
"connectionsPerBroker" : 1,
"useTcpNoDelay" : true,
"useTls" : false,
"tlsTrustCertsFilePath" : null,
"tlsAllowInsecureConnection" : false,
"tlsHostnameVerificationEnable" : false,
"concurrentLookupRequest" : 5000,
"maxLookupRequest" : 50000,
"maxNumberOfRejectedRequestPerConnection" : 50,
"keepAliveIntervalSeconds" : 30,
"connectionTimeoutMs" : 10000,
"requestTimeoutMs" : 60000,
"defaultBackoffIntervalNanos" : 100000000,
"maxBackoffIntervalNanos" :<PHONE_NUMBER>0
}

Debug in cluster mode
You can use the following methods to debug a connector in cluster mode:

Use connector log

Use admin CLI

Use connector log
In cluster mode, multiple connectors can run on a worker. To find the log path of a specified connector, use the workerId to locate the connector log.
Use admin CLI
Pulsar admin CLI helps you debug Pulsar connectors with the following subcommands:

get

status

topics stats

Create a Mongo sink
./bin/pulsar-admin sinks create \
--archive pulsar-io-mongo-2.4.0.nar \
--tenant public \
--namespace default \
--inputs test-mongo \
--name pulsar-mongo-sink \
--sink-config-file mongo-sink-config.yaml \
--parallelism 1

get
Use the get command to get the basic information about the Mongo sink connector, such as tenant, namespace, name, parallelism, and so on.
./bin/pulsar-admin sinks get --tenant public --namespace default  --name pulsar-mongo-sink
{
  "tenant": "public",
  "namespace": "default",
  "name": "pulsar-mongo-sink",
  "className": "org.apache.pulsar.io.mongodb.MongoSink",
  "inputSpecs": {
    "test-mongo": {
      "isRegexPattern": false
    }
  },
  "configs": {
    "mongoUri": "mongodb://pulsar-mongo:27017",
    "database": "pulsar",
    "collection": "messages",
    "batchSize": 2.0,
    "batchTimeMs": 500.0
  },
  "parallelism": 1,
  "processingGuarantees": "ATLEAST_ONCE",
  "retainOrdering": false,
  "autoAck": true
}

Tip
For more information about the get command, see get.

status
Use the status command to get the current status about the Mongo sink connector, such as the number of instance, the number of running instance, instanceId, workerId and so on.
./bin/pulsar-admin sinks status
--tenant public \
--namespace default  \
--name pulsar-mongo-sink

{
"numInstances" : 1,
"numRunning" : 1,
"instances" : [ {
    "instanceId" : 0,
    "status" : {
    "running" : true,
    "error" : "",
    "numRestarts" : 0,
    "numReadFromPulsar" : 0,
    "numSystemExceptions" : 0,
    "latestSystemExceptions" : [ ],
    "numSinkExceptions" : 0,
    "latestSinkExceptions" : [ ],
    "numWrittenToSink" : 0,
    "lastReceivedTime" : 0,
    "workerId" : "c-standalone-fw-5d202832fd18-8080"
    }
} ]
}

Tip
For more information about the status command, see status.
If there are multiple connectors running on a worker, workerId can locate the worker on which the specified connector is running.

topics stats
Use the topics stats command to get the stats for a topic and its connected producer and consumer, such as whether the topic has received messages or not, whether there is a backlog of messages or not, the available permits and other key information. All rates are computed over a 1-minute window and are relative to the last completed 1-minute period.
./bin/pulsar-admin topics stats test-mongo
{
  "msgRateIn" : 0.0,
  "msgThroughputIn" : 0.0,
  "msgRateOut" : 0.0,
  "msgThroughputOut" : 0.0,
  "averageMsgSize" : 0.0,
  "storageSize" : 1,
  "publishers" : [ ],
  "subscriptions" : {
    "public/default/pulsar-mongo-sink" : {
      "msgRateOut" : 0.0,
      "msgThroughputOut" : 0.0,
      "msgRateRedeliver" : 0.0,
      "msgBacklog" : 0,
      "blockedSubscriptionOnUnackedMsgs" : false,
      "msgDelayed" : 0,
      "unackedMessages" : 0,
      "type" : "Shared",
      "msgRateExpired" : 0.0,
      "consumers" : [ {
        "msgRateOut" : 0.0,
        "msgThroughputOut" : 0.0,
        "msgRateRedeliver" : 0.0,
        "consumerName" : "dffdd",
        "availablePermits" : 999,
        "unackedMessages" : 0,
        "blockedConsumerOnUnackedMsgs" : false,
        "metadata" : {
          "instance_id" : "0",
          "application" : "pulsar-sink",
          "id" : "public/default/pulsar-mongo-sink"
        },
        "connectedSince" : "2019-08-26T08:48:07.582Z",
        "clientVersion" : "2.4.0",
        "address" : "/<IP_ADDRESS>:57790"
      } ],
      "isReplicated" : false
    }
  },
  "replication" : { },
  "deduplicationStatus" : "Disabled"
}

Tip
For more information about the topic status command, see topic status.

Checklist
This checklist indicates the major areas to check when you debug connectors. It is a reminder of what to look for to ensure a thorough review and an evaluation tool to get the status of connectors.

Does Pulsar start successfully?

Does the external service run normally?

Is the nar package complete?

Is the connector configuration file correct?

In localrun mode, run a connector and check the printed information (connector log) on the console.

In cluster mode：

Use the get command to get the basic information.

Use the status command to get the current status.

Use the topics stats command to get the stats for a specified topic and its connected producers and consumers.

Check the connector log.

Enter into the external system and verify the result.

run cpp tests

run integration tests


Question about license status.

Hello,
This software is labeled as [GPL-3.0 License] by Github. On the other hand I found in source code something lke this:
This is a licence-free software, it can be used by anyone who try to build a better world.

So, what is the actual state of licensing? :)
Regards,
d3

I just found the answer in closed issues.


Server Redundancy

https://cloakedpost.org/status -> can see what server you are on
fbb56e58220b20417d44ba72b84ea5ef48b364a9 has nginx config for easier deployment setups


rustfmt, clippy warnings, docs.rs improvement

This pull request builds atop the change in #1. Outside of the commit from #1, the changes in this pull request are:

Executed cargo fmt
Fixed all warnings from cargo clippy
Specifying the "use_rustls" feature flag for docs.rs. This will allow the rustls_helper module be visible.

Thank you!


Aerie got stuck at the login page when we turned on "CAM" authentication with JWT disabled

Checked for duplicates
Yes - I've already checked
Is this a regression?
No - This is a new bug
Version
1.7.0
Describe the bug
Unable to login to Aerie when JWT authentication is disabled.
Reproduction
Not sure if this is something Aeire support, but we tried to turn off JWT authentication by commenting out all the "SECRET" environment variables in the docker-compose file.
When we tried to deploy Aeire with the "CAM" authentication, Aerie got stuck on the login page, and there were errors from the gateway log(see below);
On the other hand, it works if we set Aerie authentication to "none." However, we will still see a login page asking for a username and password.
Logs
SyntaxError: Unexpected end of JSON input
    at JSON.parse (<anonymous>)
    at generateJwt (file:///app/dist/packages/auth/functions.js:37:36)
    at login (file:///app/dist/packages/auth/functions.js:81:28)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async file:///app/dist/packages/auth/routes.js:42:26
Error: Authorization header does not include 'Bearer' prefix
    at authorizationHeaderToToken (file:///app/dist/packages/auth/functions.js:13:19)
    at decodeJwt (file:///app/dist/packages/auth/functions.js:22:23)
    at session (file:///app/dist/packages/auth/functions.js:147:32)
    at file:///app/dist/packages/auth/routes.js:82:32
    at Layer.handle [as handle_request] (/app/node_modules/express/lib/router/layer.js:95:5)
    at next (/app/node_modules/express/lib/router/route.js:144:13)
    at Route.dispatch (/app/node_modules/express/lib/router/route.js:114:3)
    at Layer.handle [as handle_request] (/app/node_modules/express/lib/router/layer.js:95:5)
    at /app/node_modules/express/lib/router/index.js:284:15
    at Function.process_params (/app/node_modules/express/lib/router/index.js:346:12)
Error: Authorization header does not include 'Bearer' prefix
    at authorizationHeaderToToken (file:///app/dist/packages/auth/functions.js:13:19)
    at decodeJwt (file:///app/dist/packages/auth/functions.js:22:23)
    at session (file:///app/dist/packages/auth/functions.js:147:32)
    at file:///app/dist/packages/auth/routes.js:82:32
    at Layer.handle [as handle_request] (/app/node_modules/express/lib/router/layer.js:95:5)
    at next (/app/node_modules/express/lib/router/route.js:144:13)
    at Route.dispatch (/app/node_modules/express/lib/router/route.js:114:3)
    at Layer.handle [as handle_request] (/app/node_modules/express/lib/router/layer.js:95:5)
    at /app/node_modules/express/lib/router/index.js:284:15
    at Function.process_params (/app/node_modules/express/lib/router/index.js:346:12)
Error: Authorization header does not include 'Bearer' prefix
    at authorizationHeaderToToken (file:///app/dist/packages/auth/functions.js:13:19)
    at decodeJwt (file:///app/dist/packages/auth/functions.js:22:23)
    at session (file:///app/dist/packages/auth/functions.js:147:32)
    at file:///app/dist/packages/auth/routes.js:82:32
    at Layer.handle [as handle_request] (/app/node_modules/express/lib/router/layer.js:95:5)
    at next (/app/node_modules/express/lib/router/route.js:144:13)
    at Route.dispatch (/app/node_modules/express/lib/router/route.js:114:3)
    at Layer.handle [as handle_request] (/app/node_modules/express/lib/router/layer.js:95:5)
    at /app/node_modules/express/lib/router/index.js:284:15
    at Function.process_params (/app/node_modules/express/lib/router/index.js:346:12)

System Info
Mac OS, Chrome

Severity
Moderate

We will fix this by adding an environment flag to the UI to enable/disable the login page as needed.
After this fix, to turn of all auth this will require:

Commenting out HASURA_GRAPHQL_ADMIN_SECRET and HASURA_GRAPHQL_JWT_SECRET in Hasura
Setting AUTH_TYPE to none in the Gateway
Setting PUBLIC_LOGIN_PAGE to disabled in the UI

The stack trace reported in this issue is a little different. It's happening because the HASURA_GRAPHQL_JWT_SECRET for the gateway is not provided, which is required (even if not used by Hasura!). We will put in an additional fix to make sure this error is not thrown.


Create a CLI script to be able to validate from the command line

Something like this node validator-cli.js --schema=/path/to/schema --json=/path/to/object.
That would print out Validation successful! if there were no errors
or
Validation error: ....

Implementation could be found here: https://github.com/elixir-europe/bio-validator/pull/6


Link to the official ponyfill page

https://ponyfill.com
I coined the term ponyfill, and was finally able to create a page for it.

Thank you!


Stack trace on iOS is not shown by default in the OS logs

I'm running a Kotlin multiplatform as a library within a React Native application.
With Kermit's default settings, which uses XcodeSeverityWriter, the stack trace is not shown anywhere. I'm looking in Console.app. However, according to https://stackoverflow.com/questions/10165641/how-can-i-get-the-console-logs-from-the-ios-simulator, standard output will only be shown in the XCode debug window.
This seems to be a poor default. Should the default be to use the OSLogWriter so that at least some stack trace is shown in all cases, and then allow users to specify XcodeSeverityWriter if they wish to see full traces in the XCode debug console?

Should the default be to use the OSLogWriter so that at least some stack trace is shown in all cases, and then allow users to specify XcodeSeverityWriter if they wish to see full traces in the XCode debug console?

I would expect many more Xcode users to complain that the stack trace was truncated. Using a KMP library in a react native application would certainly seem to be the less likely scenario vs an iOS dev using a KMP library from Swift and Xcode. Would it not make sense to let you specify a different writer for an uncommon use case rather than making a less common use case the default?

To follow up, that is what OSLogWriter is for. XcodeSeverityWriter is the "default" for iOS because 99% (guessing, but not far off) of people starting with KMP are running from Xcode. The default factory function platformLogWriter, as described in the comment describing it:

Factory function to return a default LogWriter for each platform. The LogWriter is targeted at local development.

The variety of platform loggers makes a "sensible default" an exercise in compromise. Specifically the XcodeSeverityWriter adds color emojis, etc, to make it "more usable" from Xcode specifically.

That's fair. The logging situation on iOS seems to be a bit of a mess.

They're all a mess in their own way. The xcode situation is weird, though.
I wonder if there's value in having different default functions. Not sure how it would work, but if you knew the consumer of the code would be calling from react native, you could call the "reactNativePlatformLogWriter()" factory function instead to init loggers inside the KMP code.


{Pipeline} Support regression test based on private SDK

Description

With this PR, regression test pipeline can be triggered with a private SDK package by specifying a download link to CUSTOM_WHL_URL variable

This checklist is used to make sure that common guidelines for a pull request are followed.

[ ] The PR title and description has followed the guideline in Submitting Pull Requests.

[ ] I adhere to the Command Guidelines.

[ ] I adhere to the Error Handling Guidelines.

Pipeline


Initial implementation

what
Initial implementation

Provide a consistent way to map regions, availability zones, and local zones to abbreviations that do not have delimiters

why

IDs have length limits, and avoiding delimiters helps people and scripts with semantic tokenizing

/test all


// amazon open amazon in chrome // amazon pixel  there is nothing

📝 Provide a description of the new feature
What is the expected behavior of the proposed feature?  What is the scenario this would be used?

If you'd like to see this feature implemented, add a 👍 reaction to this post.

@zerols
Can you please fill instead a bug report issue by choosing the bug report template?
We neef more information about your system and please upload screenshots.
Question:
Does pt run shows no results when you typing // Amazon pixel or does the result not opening your internet program when clicking on it?

@zerols
Can you please fill instead a bug report issue by choosing the bug report template?
We neef more information about your system and please upload screenshots.
Question:
Does pt run shows no results when you typing // Amazon pixel or does the result not opening your internet program when clicking on it?

Closing this out as this isn't a helpful bug

Closing this out as this isn't a helpful bug


Implement filtering of [non-]canceled trains

Add arguments --train-canceled and --train-not-canceled to CLI app.
Implement optional canceled argument for filtering in async_get_train_stop(...) and async_get_next_train_stop(...)

This could possible be implemented for ferries as well, but they do not have a "Canceled" property. Instead they have something called "Deleted", but it is unclear what it does.

I would suggest you only add --train-canceled with true as default and thereby you already have the option to set false to skip cancelled trains.
Should not be mixed with deleted which is something else

I would suggest you only add --train-canceled with true as default and thereby you already have the option to set false to skip cancelled trains.
But wouldn't that break backwards compatibility? How would you then request both canceled and non-canceled, as it is originally?

I would see it like this with --train-canceled

True: Skip the filter and return full result (also default behavior)
False: Add the filter and return only results where canceled = False

Probably we should reverse this and call it --exclude-canceled or something

Ah I get it, see my new commit. We do lose the ability to filter by canceled trains, but that is a feature that will probably never be used anyway.

Thanks for your review. I applied your suggested changes and also bumped up the version.

Did you test it?

I thought so. Now I tested it again, by finding a canceled departure, querying it with -date-time and toggling it with -exclude-canceled-trains.
$ python3 pytrafikverket.py -key <my-key>  -method get-next-train-stop -from-station "Stockholm C" -to-station "Norrköping C" -date-time "2022-11-27T21:38:00"
from_station_signature: Cst
to_station_signature:   Nr
advertised_time_at_location = 2022-11-27 21:38:00+01:00
canceled = True
deviations = ['Inställt']
estimated_time_at_location = None
id = 1500adde-115d-43e5-08da-c443c281f393
modified_time = 2022-11-27 15:32:03.108000
other_information = ['Movingo gäller.']
product_description = ['Mälartåg']
time_at_location = None

$ python3 pytrafikverket.py -key <my-key>  -method get-next-train-stop -from-station "Stockholm C" -to-station "Norrköping C" -date-time "2022-11-27T21:38:00" -exclude-canceled-trains
from_station_signature: Cst
to_station_signature:   Nr
advertised_time_at_location = 2022-11-27 21:54:00+01:00
canceled = False
deviations = []
estimated_time_at_location = None
id = 1500adde-115d-43e5-08da-c443d1e13afd
modified_time = 2022-11-13 06:24:58.810000
other_information = ['Movingo gäller ej.']
product_description = ['SJ InterCity']
time_at_location = None

-get-train-stop` behaves similarly but throws an exception for the canceled departure.

I guess it would make sense to get an exception when filtering out canceled but you hit a canceled on the result.

ValueError: No TrainAnnouncement found

thrown by get_train_stop(...) itself: https://github.com/farbro/pytrafikverket/blob/master/pytrafikverket/trafikverket_train.py#L262


HSEARCH-3384 Search 6 groundwork - Restore support for ClassLoaderService

https://hibernate.atlassian.net//browse/HSEARCH-3384

Pull Request Test Coverage Report for Build 1

72 of 200 (36.0%)  changed or added relevant lines in 11 files are covered.
2 unchanged lines in 1 file lost coverage.
Overall coverage decreased (-0.8%) to 85.923%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

engine/src/main/java/org/hibernate/search/engine/common/impl/SearchIntegrationBuilderImpl.java
13
14
92.86%

mapper/orm/src/main/java/org/hibernate/search/mapper/orm/bootstrap/impl/HibernateSearchSessionFactoryObserver.java
7
8
87.5%

engine/src/main/java/org/hibernate/search/engine/environment/service/impl/ServiceManagerImpl.java
6
8
75.0%

engine/src/main/java/org/hibernate/search/engine/environment/classpath/spi/ClassLoadingException.java
0
4
0.0%

mapper/orm/src/main/java/org/hibernate/search/mapper/orm/bootstrap/impl/HibernateOrmBeanContainerBeanResolver.java
0
5
0.0%

engine/src/main/java/org/hibernate/search/engine/environment/classpath/impl/AggregatedClassLoader.java
5
23
21.74%

mapper/orm/src/main/java/org/hibernate/search/mapper/orm/bootstrap/impl/HibernateOrmClassLoaderServiceClassAndResourceResolver.java
5
25
20.0%

engine/src/main/java/org/hibernate/search/engine/environment/classpath/spi/DefaultClassAndResourceResolver.java
16
46
34.78%

engine/src/main/java/org/hibernate/search/engine/environment/classpath/spi/ClassLoaderHelper.java
12
59
20.34%

Files with Coverage Reduction
New Missed Lines
%

mapper/orm/src/main/java/org/hibernate/search/mapper/orm/bootstrap/impl/HibernateOrmBeanContainerBeanResolver.java
2
0.0%

Totals

Change from base Build 24:
-0.8%

Covered Lines:
10187

Relevant Lines:
11856

💛  - Coveralls

Applied your suggestions and merged. Thanks!


What's the best font for calcure?

What's the best font for calcure?

By default, it should work with any font, because it uses the unicode icons included in most default fonts.
In my screenshot, I used NerdFont, just to have a bit nicer icons.
Also in some terminals, there are issues with unicode, then you can switch off unicode icons in the parameters.
However, I am puzzled by your screenshot, because it does show the icon and then shows a missing one after, but I don't think there should be any icon after the holidays icon... I'll check. This is on Windows, right?

Thanks for your explanation
The problem is with the default Windows console.

Calcure on eDEX-UI


Explicitly require application_job

Webhooks inconsistently fail before applying this fix.
See https://trello.com/c/evILNjid

Modified this PR for a cleaner fix. @mib32 can you take another look? I've confirmed it works as well as the last.


Decorations not applying to custom widgets

I have a simple custom script that prints out the percentage of memory currently being used. Technically Qtile's Memory widget works just fine, but I wanted the percentage to be calculated as Active/Total, like htop or bottom do.
Below is the script:
class MemoryPercentage(base.ThreadPoolText):
    defaults = [
        (
            "format",
            # Default value to be returned
            "{Percentage:.1f}%",
            "Formatting for field names.",
        ),
        ("update_interval", 1.0, "Update interval for the Memory"),
    ]

    def __init__(self, **config):
        super().__init__("", **config)
        self.add_defaults(MemoryPercentage.defaults)

    def poll(self):
        mem_info = psutil.virtual_memory()
        val = {}
        val["Percentage"] = mem_info.active / mem_info.total * 100
        return self.format.format(**val)

The code is identical to the default script for the Memory widget, I just added the Percentage field.
I have a RectDecoration to get the effect with darker background and rounded edges, and it works correctly with the Memory widget and all the other default Qtile widgets. However, it does not work with custom scripts.
Below is the code for the decoration:
decor = {
    "decorations": [
        RectDecoration(
            colour=colors[14], radius=15, filled=True, padding_y=10, group=True
        ),
    ]
}

Then I add my widget to the bar:
# CPU widget,
MemoryPercentage(
        **decor,
        fmt="{} ",
        mouse_callbacks={"Button1": lambda: qtile.cmd_spawn("alacritty -e btm")},
),
# Spacer, Volume widget

This is what is printed in the bar:

RectDecorations should also include MemoryPercentage and then close itself, rather than end abruptly.
This happens to me with all the other custom widgets I have written, such as one for a "Do Not Disturb" button or another one for music play and pause buttons.
I don't know if this is actually a qtile-extras problem or something I am doing wrong, I apologize if this is the case. I can't figure out where the issue is coming from, especially in this case where the custom script was written identically to how it is done in qtile.

https://qtile-extras.readthedocs.io/en/stable/manual/how_to/decorations.html#adding-decorations-to-user-defined-widgets

I'm dumb, sorry about that. Should have read the documentation more attentively.


update woof

Please note: This repository is being rebuilt to accept the new volume of token additions and modifications. PR merges will be delayed.

I agree to not ping anybody on Discord/Twitter/email about this pull request. Instead I will inquire by posting a new comment in the pull request if needed.

PRs are reviewed in bulk and and can take up to two weeks to be merged.
This repository is managed using an auto merge action. Please ensure your PR has no deleted lines, and it will be merged.
Please provide the following information for your token.
Please include change to the src/tokens/solana.tokenlist.json file in the PR.
DON'T modify any other token on the list.
At minimum each entry should have

Token Address:
Token Name:
Token Symbol:
Logo: (logo should be uploaded under assets/mainnet//*.<png/svg>)
Link to the official homepage of token:
Coingecko ID if available (https://www.coingecko.com/api/documentations/v3#/coins/get_coins__id_):

Auto merge requirements
Your pull request will be automatically merged if the following conditions are met:

Your pull request only adds new tokens to the list. Any modification to existing
tokens will require manual review to prevent unwanted modifications.

Your pull request does not touch unrelated code. In particular, reformatting changes to unrelated
code will cause the auto merge to reject your PR.

Any asset files added correspond to the token address you are adding. Asset files
must be PNG, JPG or SVG files.

Your change is valid JSON and conforms to the schema. If your change failed validation,
read the error message carefully and update your PR accordingly.

No other tokens shares the same name, symbol or address.

For example, this change would be rejected due to unrelated changes:

The bot runs every 60 minutes and bulk-merges all open pull requests to prevent conflicts.
This means that you need to wait up to 60 minutes for your pull request to be merged or reprocessed.

@bartosz-lipinski
I was asked by the leader of Woof to do some PR for them.
Can you please do a manual merge?

[](url

)
Hey guys, I am from the WOOF team and we would like to ask if you could change our logo to this updated, Solana colored one as we already changed it everywhere except onchain?
Also we would like to change the name from WOOFENOMICS to just WOOF please.
Can this be done by this comment request or can I clone and edit any files too and just commit changes?
Thank you a lot in advance!
All the Best
Nyk

whoever originally committed woof should affirm that this is ok in this comment thread

whoever originally committed woof should affirm that this is ok in this comment thread

Hello! I am the one who committed the original woof PR in this link > https://github.com/solana-labs/token-list/pull/165
This change is valid. It is approved by me. Thank you for the response

upon recent review, this logo is too big (2.3 MB). please submit a PR sizing it down or it will be deleted


Update Pages “home”

Automatically generated by Netlify CMS

👷 Deploy Preview for parsimony-dev processing.
🔨 Explore the source changes: d63000c46dc11811c548511ab7037334049ef066
🔍 Inspect the deploy log: https://app.netlify.com/sites/parsimony-dev/deploys/61b1012c81f43900070e6f58


Switch to cargo zigbuild for Linux releases

We've been resorting to increasingly convoluted workarounds to get nextest compiling against glibc 2.27. So far we have:

Use an ubuntu 18.04 container as defined in https://github.com/nextest-rs/docker/tree/main/ubuntu-18.04
Pin actions/checkout to v3 since v4 pulls in node 20, which needs glibc 2.28.

The list of hacks is only going to grow, but we are ultimately limited by the fact that we need to support at least glibc 2.28 (minimum of versions supported across CentOS, Debian, and Ubuntu LTS).
It seems like cargo zigbuild might be able to solve our problems here by letting us build against glibc 2.27 (or 2.28?), and I did a basic check (strings target/release/cargo-nextest | grep GLIBC) to ensure it works. Some notes:

The docker container at https://hub.docker.com/r/messense/cargo-zigbuild has rustc 1.70 which is a bit outdated. I think we should manage the Rust version ourselves.
https://github.com/taiki-e/upload-rust-binary-action supports cargo zigbuild and is likely our best bet.

ccing @NobodyXu in case you have thoughts.

We use cargo-zigbuild with cargo-auditable and cargo-hack (<=0.6.10, newer version use new cargo subcommand which cargo-zigbuild doesn't support forwarding yet https://github.com/rust-cross/cargo-zigbuild/issues/195) by setting env CARGO
https://github.com/cargo-bins/cargo-binstall/blob/dc20cb7eb37d0bc4b498ade18a4e78a52358c6ad/justfile#L46

Fixed in commits leading up to https://github.com/nextest-rs/nextest/commit/d80d85fbfa3dce4e22330a8fff2b31c95826fee7. Verified that this worked in an Ubuntu 18.04 container:
root@5ab2a8b65fd0:/# curl -fsSL https://github.com/nextest-rs/nextest/releases/download/cargo-nextest-0.9.62-a.2/cargo-nextest-0.9.62-a.2-x86_64-unknown-linux-gnu.tar.gz | tar zx
root@5ab2a8b65fd0:/# ./cargo-nextest


Better Argument Error Message For String Module

Currently, the argument error message in the string module is kind of confusing.

With this PR, the message will be much clearer like this:

Thanks @Tarbetu! And thanks to @edenbynever for the report 🙏