TypeError: $request is undefined only in DEV environment

While I'm using Symfony in dev environment (app_dev.php) Select2 throw TypeError: $request is undefined
Framework / Libraries version:

Symfony 3.4.5
jQuery 1.12.4
select2 4.0.0

I've found that in select2entity.js the ajax request does not take place and immediately fail.
https://github.com/tetranz/select2entity-bundle/blob/e8236049744b2f03ee0095f3fe189878930c9e0b/Resources/public/js/select2entity.js#L58
Anyone else is experiencing the same issue? Solutions?
Thanks in advance

I am experiencing the same issue

tetranz/select2entity-bundle 2.9.4
Symfony 3.4.5
jQuery 3.1.1
Select2 4.0.4

Confirmed only occurs in the dev environment.
Downgrading Symfony to 3.3.16 appears to fix the issue.
Upgrading to Symfony 3.4.6 also appears to fix the issue.

Upgrading to Symfony 3.4.6 seems to have solved the problem.


[IMPROVEMENT] Reorganize QA/DevOps Tasks project board and define the workflow for QA/DevOps task tickets.

Is your improvement request related to a feature? Please describe (👍 if you like this request)
The ticket aims to:

Reorganize QA/DevOps Tasks project board to manage the QA/DevOps sprint tasks more effectively and make them easier to visualize.
Define the workflow for QA/DevOps task tickets.

Describe the solution you'd like
Labels
Tickets labeled with kind/test can be categorized into three groups:

Automation e2e tests for issue tickets
Automation e2e tests converted from existing manual test cases
Negative tests

The latter two groups currently have higher priority and will be labeled as area/manual-to-automation-testing and area/negative-testing, respectively. This will allow us to quickly identify and manage these tickets by using the corresponding labels.
Status of an QA/DevOps Ticket

The status of an QA/DevOps ticket will be like a ticket in the Longhorn Sprint board but without Ready For Testing and Testing

New Issues
Icebox
Analysis and Design
Implement
Review

QA needs to update Status field accordingly.
Sprint

QA needs to update the Sprint field accordingly.
The Sprint field of any non-closed ticket will be cleared when starting a new sprint. QA needs to set the Sprint and clearly understand and manage the status of the ticket.

Describe alternatives you've considered

Additional context

cc @longhorn/qa @khushboo-rancher @innobead

Update the Issue Management .
cc @longhorn/dev @longhorn/qa @khushboo-rancher @innobead

Completed.

cc @bk201 @Yu-Jack


nicer API for writing pure Rust tests

We already support non-Solidity tests as shown here, but gotta make the API better: https://github.com/gakonst/dapptools-rs/blob/master/dapp/src/multi_runner.rs#L191-L227.
The nicest way to write Solidity tests, would be to write an ethers-rs middleware that instead of doing RPC requests (https://github.com/gakonst/ethers-rs/blob/master/ethers-providers/src/provider.rs#L124), it’d do direct EVM calls. I think this is doable and tbh is ~equivalent to Solidity tests. All dapp test really does is continuously call all sol functions starting with test* by directly calling the EVM, so really just an abstraction

hey @gakonst, I did some hacking and come up with a forked mode provider for evmodin: https://github.com/guanqun/ethers-forked-evm-provider
so I can write the unit test easily, see this example here:
https://github.com/guanqun/ethers-forked-evm-provider/blob/master/tests/provider.rs#L9-L39

My main use case is for forked mode, so it's quite specialized.

closing this since we now have
https://github.com/foundry-rs/foundry/blob/master/forge/tests/it/config.rs
and all the forgetest! macros utils


Android: notification is not come (+ crash happened) when app process is killed

Is the bug present in the demo Chat SDK project?
dependencies are:
sdk.chat:firebase-app:5.4.2"
sdk.chat:pro-firebase-last-online:5.4.2"

What modifications have you made to the Chat SDK?

Android Version:
Android 10 (API 29)

Steps taken to reproduce the problem:

create thread 1 by 1 (using user firebase id)
user 1 being in foreground from UI (chat details) send message to thread
user 2 being in background (app process was intentionally killed by swiping up from recent) does not get any notification and from time to time get crash (in 50% of cases) - crash output is below

Expected result:
Application being in background (when process was killed swiping up from recents) should get notification

Actual result:
Application is not get any notification and sometimes can even crashes (being in background and killed as process).
In the logcat output we can see the next crash
03-18 19:37:39.418 E/AndroidRuntime( 4883): java.lang.RuntimeException: Unable to start receiver sdk.chat.core.push.DefaultBroadcastReceiver: java.lang.NullPointerException: Attempt to invoke virtual method 'org.greenrobot.greendao.query.QueryBuilder sdk.chat.core.dao.DaoSession.queryBuilder(java.lang.Class)' on a null object reference
03-18 19:37:39.418 E/AndroidRuntime( 4883): 	at android.app.ActivityThread.handleReceiver(ActivityThread.java:4238)
03-18 19:37:39.418 E/AndroidRuntime( 4883): 	at android.app.ActivityThread.access$1700(ActivityThread.java:274)
03-18 19:37:39.418 E/AndroidRuntime( 4883): 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2113)
03-18 19:37:39.418 E/AndroidRuntime( 4883): 	at android.os.Handler.dispatchMessage(Handler.java:107)
03-18 19:37:39.418 E/AndroidRuntime( 4883): 	at android.os.Looper.loop(Looper.java:237)
03-18 19:37:39.418 E/AndroidRuntime( 4883): 	at android.app.ActivityThread.main(ActivityThread.java:8167)
03-18 19:37:39.418 E/AndroidRuntime( 4883): 	at java.lang.reflect.Method.invoke(Native Method)
03-18 19:37:39.418 E/AndroidRuntime( 4883): 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:496)
03-18 19:37:39.418 E/AndroidRuntime( 4883): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1100)
03-18 19:37:39.418 E/AndroidRuntime( 4883): Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'org.greenrobot.greendao.query.QueryBuilder sdk.chat.core.dao.DaoSession.queryBuilder(java.lang.Class)' on a null object reference
03-18 19:37:39.418 E/AndroidRuntime( 4883): 	at sdk.chat.core.session.StorageManager.fetchEntityWithEntityID(StorageManager.java:162)
03-18 19:37:39.418 E/AndroidRuntime( 4883): 	at sdk.chat.core.session.StorageManager.fetchThreadWithEntityID(StorageManager.java:209)
03-18 19:37:39.418 E/AndroidRuntime( 4883): 	at sdk.chat.core.push.BaseBroadcastHandler.onReceive(BaseBroadcastHandler.java:34)
03-18 19:37:39.418 E/AndroidRuntime( 4883): 	at sdk.chat.core.push.DefaultBroadcastReceiver.onReceive(DefaultBroadcastReceiver.java:18)
03-18 19:37:39.418 E/AndroidRuntime( 4883): 	at android.app.ActivityThread.handleReceiver(ActivityThread.java:4229)
03-18 19:37:39.418 E/AndroidRuntime( 4883): 	... 8 more

Comments:

I have investigated this and I'm not able to reproduce the issue. I would need a reliable way to reproduce it to go further.

you can try to add this
if (!ChatSDK.db().isDatabaseOpen) {
        val currentUserId = ChatSDK.auth().currentUserEntityID
        if (currentUserId != null) {
            try {
                ChatSDK.db().openDatabase(currentUserId)
            } catch (e: Exception) {
                Logger.v(e) { "error while open database" }
            }
        }
    }

after a moment when you call ChatSDK.builder()... .activate(context)


[Debug Mode] Add transaction and violation data to debug mode

Details

Fixed Issues

$https://github.com/Expensify/App/issues/50335
PROPOSAL:

Add transaction debug page, with details, json and violations tabs
Add transaction violation page
Add button to redirect user from report debug page to transaction report page
Add button to redirect user from report action debug page to transaction report page

Tests

Enable debug mode in Troubleshoot
Open an expense thread (create one if you don't have any)
Enter debug view then check if there's a button named View transaction in details tab
Click the button and check the details, json and violations tabs
Confirm that any field you modify in details tab is saved correctly
On violations tab, try creating and modifying a violation and check that the UI shows your changes in real time

Offline tests

Same as tests
QA Steps

Same as tests
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 explanatory

[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/user-attachments/assets/3b130905-e03f-4dad-b835-38d7d2c2ffd9

Android: mWeb Chrome

https://github.com/user-attachments/assets/30b6b982-74df-45fe-9b3f-fa36220444e3

iOS: Native

https://github.com/user-attachments/assets/f2f017e6-cd7d-46f9-83f9-ab36ef9429db

iOS: mWeb Safari

https://github.com/user-attachments/assets/b92f2835-c36e-4cb7-8783-0d67669bba93

MacOS: Chrome / Safari

https://github.com/user-attachments/assets/2a0bf059-4056-4bb4-9883-5c4ee6f4d372

MacOS: Desktop

https://github.com/user-attachments/assets/841f4c85-b612-451e-90f2-6b7af2c474b8

Todo:

[ ] Create DebugUtils.validateTransactionDraftProperty plus unit tests
[ ] Finish transaction violations tab
[ ] Add screen recordings
[ ] Add QA testing steps

Today's update:

[x] Create DebugUtils.validateTransactionDraftProperty

Todo:

[ ] Add remaining property validations to DebugUtils.validateTransactionDraftProperty
[ ] Add unit tests for DebugUtils.validateTransactionDraftProperty
[ ] Do some manual tests by modifying transaction data and saving it
[ ] Finish transaction violations tab
[ ] Create button in debug report page to redirect to debug transaction page
[ ] Add screen recordings
[ ] Add QA testing steps

Today's update:

[x] Add remaining property validations to DebugUtils.validateTransactionDraftProperty
[x] Add unit tests for DebugUtils.validateTransactionDraftProperty
[x] Do some manual tests by modifying transaction data and saving it

Todo:

[ ] Create TRANSACTION_FORM_INPUT_IDS
[ ] Finish transaction violations tab
[ ] Create button in debug report page to redirect to debug transaction page
[ ] Add screen recordings
[ ] Add QA testing steps

Today's update:

[x] Create TRANSACTION_FORM_INPUT_IDS
[x] Create button in debug report page to redirect to debug transaction page
[x] Create button in debug report action page to redirect to debug transaction page
[x] Create button in debug transaction to redirect to report

Todo:

[ ] Finish transaction violations tab
[ ] Add screen recordings
[ ] Add QA testing steps

Today's update:

[x] Add transaction violation creation page

Todo:

[ ] Fix issue where newly created transaction violation replaces all existing transaction violations
[ ] Add transaction violation page to allow users to modify data, view JSON data representation and delete data
[ ] Finish transaction violations tab
[ ] Add screen recordings
[ ] Add QA testing steps

Today's update:

[x] Fix issue where newly created transaction violation replaces all existing transaction violations
[x] Add transaction violation page to allow users to modify data, view JSON data representation and delete data
[x] Finish transaction violations tab

Todo:

[ ] Fix stale transaction violation data after updating a violation until the app is refreshed
[ ] Add screen recordings
[ ] Add QA testing steps

Today's update:

[x] Fix stale transaction violation data after updating a violation until the app is refreshed
[x] Refactor debug details constant field options. There are field name collisions between data types

Todo:

[ ] Add screen recordings
[ ] Add QA testing steps

@DylanDylann @puneetlath
The PR is now ready for review 😄

@pac-guerreiro Type errors please

@DylanDylann typecheck errors were resolved 😄

@fabioh8010 all feedback addressed, thanks! 😄
Still waiting for @DylanDylann review 😄

@puneetlath
I fixed the jest unit tests that were failing
Still waiting on additional review from @DylanDylann 😄

@puneetlath @DylanDylann @fabioh8010
Today's update:

[x] Added missing test cases for validateConstantEnum and validateObject (thanks for pointing this @fabioh8010 )
[x] Fixed some expense chats not showing View Transaction button in debug panel

@fabioh8010 feedback applied, thanks 😄

BUG: Don't add a default value in the comment field. Let's add {} as default value
https://github.com/user-attachments/assets/88bf034f-f469-4bc6-8a8a-4591917cbb1a

The same bug on the report debug page, the validation doesn't match the Onyx data
https://github.com/user-attachments/assets/5931ac76-98b1-48b0-b594-583d8325f72b

https://github.com/user-attachments/assets/b37d818d-255a-4a6b-b2b4-082947ea728d
Category and Tag field should be a selected picker instead of a text

The validation doesn't match the Onyx data
https://github.com/user-attachments/assets/1606deb4-b792-41f0-b7c5-0718c6f5ddf6

Screen.Recording.2024-10-30.at.10.53.27.mov
Category and Tag field should be a selected picker instead of a text

Implementing the picker for Category should be doable but I'll need to investigate more! For Tag field it can be complicated since there are dependant tags with at least 3 levels 😅

On transaction validation eidt -> data field. The validation doesn't match the Onyx data.
Screen.Recording.2024-10-30.at.11.38.00.mov

@DylanDylann can you share the data json with me? I think there might be a mismatch between our typescript types and what's coming from the API

@DylanDylann I addressed most of the feedback you left today! There's just a couple of questions that I'll need answers from you 😄
Today I did a major refactor on DebugUtils, in order to help prevent property validations from failing in the future.

@DylanDylann It seems that as a bonus I broke some tests and types 😅 I'll address these tomorrow!

Today's update:

[x] Fixed eslint issues
[x] Fixed transaction violation validation issue reported by @DylanDylann
[x] Fixed unit tests failing

Todo:

[] Add selector for transaction category
[] Investigate how much work it takes to make a selector for transaction tags

Investigate how much work it takes to make a selector for transaction tags

If this is complicated, I think we can skip

Sorry for the late update, here's what I did yesterday:

[x] Add selector for transaction category
[x] Investigate how much work it takes to make a selector for transaction tags
[x] Add selector for transaction tag with only one level

Todo:

[ ] Modify transaction tag selector to allow editing multi-level tags

Here is a preview of the category and tag pickers in action:
https://github.com/user-attachments/assets/154ea6d2-34e8-4e0b-89f4-684cfcc2cc83

@DylanDylann I added the ability to edit multi-level tags in the picker 😄
Let me know if you find any problems!

Back to this PR, today

@pac-guerreiro Can't select VND currency on transaction debug mode

@DylanDylann I just pushed the fix for the currency picker not showing all available currencies!
There are some TODOs that I left in DebugUtils.ts, which I need to resolve before this gets merged

Today I resolved most of the typescript issues that were annotated with the TODO comments. There's still one issue that I need to resolve regarding the keys of a union type, which I'll try to fix tomorrow.

Yesterday I resolved all the typescript issues present in the PR

@pac-guerreiro Many thanks. I will try to review again on this weekend

@pac-guerreiro On the tag picker, let's remove the save button. I think we should update the value and navigate go back right after the user click on the new value
https://github.com/user-attachments/assets/34448fff-5230-4a46-98d0-b9f649637da6

Reviewer Checklist

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

[x] I verified the steps for local testing are in the Tests section
[x] I verified the steps for Staging and/or Production testing are in the QA steps section
[x] 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)
[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 checked that screenshots or videos are included for tests on all platforms
[x] I included screenshots or videos for tests on all platforms
[x] I verified tests pass on all platforms & I tested again on:

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

[x] 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
[x] I verified proper code patterns were followed (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] 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 verified that this PR follows the guidelines as stated in the Review Guidelines
[x] 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)
[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] If a new component is created I verified that:

[x] A similar component doesn't exist in the codebase
[x] All props are defined accurately and each prop has a /** comment above it */
[x] The file is named correctly
[x] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[x] The only data being stored in the state is data necessary for rendering and nothing else
[x] 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)
[x] 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)
[x] All JSX used for rendering exists in the render method
[x] 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

[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 explanatory

[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.
[x] 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

https://github.com/user-attachments/assets/e3e409b6-e7ef-4977-a024-1a438e320a38

iOS: Native

iOS: mWeb Safari

https://github.com/user-attachments/assets/958cb671-7496-4eba-bfb0-4e489b529254

MacOS: Chrome / Safari

https://github.com/user-attachments/assets/c062f113-4fa2-48d4-8b63-d4a78a93b4c9

MacOS: Desktop
https://github.com/user-attachments/assets/a65e8cc1-6246-46db-ae60-a8ff11d5155f

@pac-guerreiro One left comment: https://github.com/Expensify/App/pull/50745#issuecomment-2467409302

@DylanDylann @fabioh8010 Thanks for your feedback!
I addressed all your suggestions, let me know if there's anything else that needs fixing/refactoring 😄

@DylanDylann thanks! 🙏 I just resolved the conflicts 😄

Looks like there are lint failures. Also, this PR is huge. I would love to see in the future, that if we find the PR is growing large like this, to separate it into multiple smaller PRs. One GH issue does not have to mean one PR. It's always a good think to break a big problem into smaller chunks. For example, I think this PR could have been broken down into smaller chunks by:

one PR for showing transaction debug page with transaction details
one PR for showing violation debug page with violation details
one PR for the ability to select different violations
one PR for the ability to create new violations

@puneetlath
Sorry for the delay, I just resolved the remaining conflicts 😄
Today I noticed that debug report page was not saving data properly, can you confirm this?

Thanks for resolving the conflicts! Looks like we have some typescript failures now.

Today I noticed that debug report page was not saving data properly, can you confirm this?

In this PR or in the live app?

@puneetlath just resolved the typescript issues!

In this PR or in the live app?
In main branch, so I guess at least in staging

@puneetlath
I just confirmed that the problem is also present on this PR. I just pushed a fix for it 😄
The problem was that we we're saving debug data using Onyx.merge, which doesn't recognise implicit property removals from objects. So I replaced this method with Onyx.set, which replaces all the data.

@puneetlath conflicts resolved 😄

: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.


Merge Develop into Master.

Multiple improvements and refactors to improve performance and security.

Codecov Report

Merging #8 (a9f2575) into master (bf52da4) will increase coverage by 8.69%.
The diff coverage is 100.00%.

@@             Coverage Diff             @@
##           master        #8      +/-   ##
===========================================
+ Coverage   91.30%   100.00%   +8.69%
===========================================
  Files           7         5       -2
  Lines         230       203      -27
===========================================
- Hits          210       203       -7
+ Misses         20         0      -20

Flag
Coverage Δ

Apex
100.00% <100.00%> (+8.69%)
:arrow_up:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

...app/main/default/classes/BillStatusSchedulable.cls
100.00% <100.00%> (ø)

...main/default/classes/CreateSharedExpenseHelper.cls
100.00% <100.00%> (ø)

...orce-app/main/default/classes/StatusController.cls
100.00% <100.00%> (+6.77%)
:arrow_up:

...rce-app/main/default/classes/TransactionHelper.cls
100.00% <100.00%> (ø)

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 bf52da4...a9f2575. Read the comment docs.


[feature] Set gopath interactively

Is your feature request related to a problem? Please describe.
No
Describe the solution you'd like
Set gopath interactively
Describe alternatives you've considered
-
Additional context
-

<EMAIL_ADDRESS>


Fix a broken link

The link to "File Types Icons Set" is rotten.
This PR replaces the URL with the archived one:
https://web.archive.org/web/20160728061928/http://uifest.com/product/file-types-icons-set

I'm sorry I totally missed this PR.
Thanks for the PR. I still find it surprising to see people interested in this old project of ours.
Maybe we should do an update. /cc @r0mflip

@notlmn No problem and thank you for your merging!
I'm an administrator of the lab of university in Japan and this project will be made good use of sharing our internal thesis archive. ☺

I did get my eyes on this, sorry I was AFK at that time. @notlmn Thus is due of an update/refactor.
@shuuji3 thanks for the fix

@shuuji3 If you are still interested in this project, you might be interested in my recent rewrite https://github.com/ramlmn/Apache-Directory-Listing/commit/34e6f04f80f4ab38f960a09f8c1fe93d835d98c4. Hope you like it!

@notlmn Wow, thank you for nice refactoring I wanted! I was considering to send PR to support mobile devices and add side paddings to the stylesheets. Both are included in it!


Add iterm-tab-navigate extension

Description

Screencast

Checklist

[x] I read the extension guidelines
[x] I read the documentation about publishing
[x] I ran npm run build and tested this distribution build in Raycast
[x] I checked that files in the assets folder are used by the extension itself
[x] I checked that assets used by the README are placed outside of the metadata folder

Hi @karur4n 👋
Wouldn't it make sense to add to the current iTerm extension instead so we don't end up with multiple iTerm extensions 🙂


zoomToShowLayer(layer, callback) issue

As per the document zoomToShowLayer : Zooms to show the given marker (spiderfying if required), calls the callback when the marker is visible on the map.
I have added timeout function in the callback function.
Now the map is not showing till the timeout function is getting executed, but I expected map to open and zoom and then call the callback.

How to reproduce
Leaflet version I'm using: 1.2.0
Leaflet.MarkerCluster version I'm using: 1,2.0
Browser (with version) I'm using: Firefox 57.0.1
OS/Platform (with version) I'm using: Ubuntu 16.04
Minimal example reproducing the issue
markers.zoomToShowLayer(marker, find_m(marker));

function find_m(marker) {
      setTimeout(otherStuff, 2000);
      function otherStuff(marker) {
     ...
     ...
 }
}

Please create a working reproduction: http://leafletjs.com/edit.html

Thanks @danzel , Finally, I know how to create a working reproduction code.
I have updated the code and you need to input container name from Container0 to Container12 and type enter button on keyboard.
Now it waits for  2 seconds in callback and then Zoom into the layer and marker.

Here is updated code: https://plnkr.co/edit/T28jpQnAoP0zcctaeuAx?p=preview

Sorry we aren't here to debug your app, only to find bugs in leaflet.markercluster.
Please create a completely minimal reproduction of the bug in leaflet.markercluster and we can take a look.

To make it clear and I stripped most of the code of my app.
I have added console.log in code to verify exactly after 2 seconds the map zooms to marker.
You need to open browser console and on the app type Container0 and hit enter, it will wait 2 seconds to zoom into the Container0 marker.
This is the best I could do so that you see the bug on the map and timestamp on the console as well.

I removed the minZoom and maxZoom as below and the bug still persists, where it is waiting(2 seconds) for callback function to return and then map Zoom in to the marker.
var map = L.map('leaflet');

I resolved it by moving markers.zoomToShowLayer(marker, find_m(marker)); out of for loop and now map zoom in to marker without delay and setTimeout function fires after that.
@danzel, thanks for your kind cooperation.


fix: add more network to WalletConnect support

Summary
We have predefined list of Etherscan APIs (they have special URLs, can't be generated automatically) and before we only had mainnet and sepolia there, this PR adds all EVM networks we support there.
Also changes bold weight to medium as requested.
Closes: https://github.com/snapshot-labs/workflow/issues/181
How to test

Connect there: http://localhost:8080/#/s:fabien.eth/treasury on uniswap.
Create execution.

Somehow "Confirm" button is disabled for me

Still the same for me 🤔

@bonustrack we were using validation that was incompatible with what we actually are doing when creating transaction, rewrote it so it uses same validation as will be applied when creating transaction.


Add css to detail page

In this PR i have done the following:

[ ] Make  pages responsive

[ ] Add media queries for responsiveness

[ ]  Make necessary styling to make it look like design wireframe provided

sure i will add these changes


VLS server never respawn after being randomly closed in VSCode

System Information
V doctor
OS: linux, Devuan GNU/Linux 4 (chimaera)
Processor: 2 cpus, 64bit, little endian, Pentium(R) Dual-Core  CPU      E5400  @ 2.70GHz
CC version: cc (Debian 10.2.1-6) 10.2.1 20210110

getwd: /home/kiwimoe/Desktop/httptest
vmodules: /home/kiwimoe/.vmodules
vroot: /home/kiwimoe/Desktop/v
vexe: /home/kiwimoe/Desktop/v/v
vexe mtime: 2022-07-17 07:54:17
is vroot writable: true
is vmodules writable: true
V full version: V 0.3.0 b4dedca

Git version: git version 2.30.2
Git vroot status: Error: fatal: not a git repository (or any of the parent directories): .git
.git/config present: false
thirdparty/tcc status: thirdparty-linux-amd64 827f7452

VLS info
vls version 0.0.1.bcbc46c

Problem Description

After editing for certain times VLS automatically close the connection and with the output Connection to server got closed. Server will restart. But the server never restart until I manually do it. It's happening in every few minutes, therefore it's being impossible to use VLS
Expected Output

VLS should reconnect after getting disconnect.
Actual Output

[Info  - 10:19:58 PM] Connection to server got closed. Server will restart.
[Info  - 10:21:05 PM] VLS Version: 0.0.1.bcbc46c, OS: linux 64
[Info  - 10:21:05 PM] VLS executable path: /home/kiwimoe/.vls/bin/vls_linux_x64
[Info  - 10:21:05 PM] VLS build with V a4e0e0f
[Info  - 10:21:05 PM] Client / Editor: Visual Studio Code 1.69.1 (PID: 5639)
[Info  - 10:21:05 PM] Using V path (VROOT): /home/kiwimoe/Desktop/v
[Info  - 10:23:47 PM] Connection to server got closed. Server will restart.
[Info  - 10:23:47 PM] Connection to server got closed. Server will restart.
Steps to Reproduce

Launch VSCode and start editing a V lang file for some time.
Last Recorded LSP Requests

vls.log

Try https://blog.vosca.dev/meet-v-analyzer/ instead, now that it is released.


Plugin stopped workin in Grafana 6?

I am getting following error in my Grafana 6.16 (tested on different systems):

It doesn't disappear even after reinstalling the plugin, is there a problem with ver. 6?
Otherwise it is a very useful plugin.

what do you see in the grafana logs at startup?  Do you see any errors about installing the plugin?
I am using it with v6 without problem...

FYI, check https://github.com/grafana/grafana/pull/17187

Strange, I don't see any errors in the log. Also, all the files were in the /var/lib/grafana/plugins/ryantxu-annolist-panel/ directory, but if you grafana-cli plugins ls, then you didn't see it in the list. Now I tried again to reinstall the plugin via grafana-cli and now it works. If something changes, I'll let you know.


"FAIL: Invalid variable name" when using "Get Variable Value" with variable inside variable

When I use the "Get Variable Value" function with a "variable inside a variable", I get an error message that the "variable inside the variable" is invalid.
Test Example:
I have three test environments for my web application. With a variable ${stage} I can easily select the desired stage via the commandline. If the variable is not assigned via the commandline, "stage 2" should be used in the standard.
*** Variables ***
${URL}     ${EMPTY}
${URL for stage 0}    https://localhost:8080/
${URL for stage 1}    https://123.server.de/
${URL for stage 2}    https://987.server.de/
${stage}    2

*** Keywords ***
Find URL
     ${URL} =    Get Variable Value    ${URL for stage ${stage}}
     Set Global Variable    ${URL}

FAIL : Invalid variable name '${URL for stage ${stage}}'.

@pekkaklarck
This one causes it.
Refactor variable search and validation. from 04.03.2020
https://github.com/robotframework/robotframework/commit/52a0923d422275a7a2f2db05bda59103d1bbd03d

I can reproduce the problem and @Snooz82 seems to be right about the commit that broke this. The logic related to resolving variable name when used with Get Variable Value is somewhat complicated and we clearly didn't have any tests for this particular case. Good news is that I ought to be able to get it fixed.
Although this hopefully will be fixed still before RF 3.2, there are two good workarounds how to avoid the issue:

Instead of ${URL for stage ${stage}} use either \${URL for stage ${stage}} or $URL for stage ${stage} format with Get Variable Value. Why this helps is explained in the documentation of Set Suite Variable and is part of the reason why resolving these variable names is somewhat complicated.

Don't use Get Variable Value at all. You may need it in some other cases, but in this particular case you can simply use:
 Set Global Variable    ${URL}    ${URL for stage ${stage}}

Got this fixed pretty easily. I was already thinking should I create RF 3.2 rc 2 due to earlier smallish changes, but after this regression fix there's no question about it anymore.

Great job and thanks for the quick help and tip in the end.
I changed my keyword. Now it works as a one-liner without "Get Variable Value".
How long does "Set Global Variable" have the argument "* values"?
I have been using Robot Framework for a year and I remember that I had to use "Get Variable Value" in an earlier version of the Robot Framework for this case. Strange but never mind :-)

Good that the tip helped but hopefully you can also validate the fix for your problem once rc2 is out.
Set Global Variable has accepted the variable value for ages, most likely from time when the keyword was implemented.

With pleasure. The old code still exists as a "comment".

Release candidate 2 is now out. Based on the discussion on Slack also others had encountered this issue.

I tested my test cases with rc2. The new release works correctly.


[DO-NOT-MERGE] absl/Status[Or] test

Let's test

grpc_build_artifacts_multiplatform: running

It's proved safe to use Status and StatusOr.


A few typos in the text

Hi,
I work with an IDE that generates a few warnings when compiling projects using the library (all for v.5.2.2):

SX127x.h. line 321. "SX127X_PREAMBLE_DETECTOR_2_BYTE" redefined. I believe that name of macro should be SX127X_PREAMBLE_DETECTOR_3_BYTE.
SX127x.cpp. line 266. "Unused variable 'start'". This variable is really not used anywhere and left from the earlier versions.
SX127x.cpp. line 708. "Type left shift count >= width of type". Type cast
uint32_t raw = (uint32_t)_mod->SPI....
will remove warning.

In your last update, the LoRa mode check is performed before the sensitivity optimization in the files for the SX1277 and SX1278 chips. For SX1276, this check is performed after the specified optimization. Is that right?
Next, regarding  Semtech Errata Note and fuctions setFrequency.
Section 2.1. Sensitivity optimization for BW=500 kHz is performed by setting the values of registers 0x36 and 0x3a.
For the frequency range from 862 to 1020 MHz: 0x02 and 0x64 respectively. This is done correctly in your code.
The frequency range from 410 MHz to 525 MHz must be set to 0x02 and 0x7F respectively, but you set the default values to 0x03 and 0x65 in files for all types of chips. I think it should be correcting.

Library version 5.2.2

All the issues should be fixed in 221d5e0136fccc93334b077e1d8bfeee610311a9
Could you please test with your IDE and see if the warnings are resolved?

Now everithing OK. Good luck Jan!


Fix review button activation (bis)

 Scheduled track bug - reviewer unable to submit review for Stage 1 submission despite it being validated


feat: interior and boundary of a manifold

We use the standard definition, with respect to the preferred charts at each point.
Open-ness of the interior is non-trivial, hence left to a future PR:

for instance, in finite dimensions this requires e.g. knowing the homology of spheres, which mathlib doesn't yet have.

Thanks for writing this PR! All seems quite standard; looks good to me!

TL;DR. This definition seems to be forward compatible with Banach manifolds with boundary.
For the record: there's an established theory of Banach manifolds with boundary and corners also; the openness of the interior and disjointness of interior and boundary still hold in this context. (See e.g. https://arxiv.org/pdf/1910.14580.pdf, Theorem 4.12 (which references the (pay-walled) textbook Differential topology by Roig and Domínguez) for a reference.) Their definition is more specific than mathlib's; they consider a model space E given as the intersection of finitely many half-spaces.
Their proof is different from the standard finite-dimensional proof that interior and boundary are independent of the chart (using homology of spheres/Brouwer fixed point theorem).

Thank you for the review!


Place SVG on one line

Is it possible to place all SVG code on one line?

Sorry, had to set 'pretty' to 'false'.


NRPE check fails because nagios user is not part of the docker group

File that fails: files/plugins/check_contrail_status_controller.py
at:
output = subprocess.check_output("export CONTRAIL_STATUS_CONTAINER_NAME=contrail-status-controller-nrpe ; sudo -E contrail-status", shell=True).decode('UTF-8')
sudo -E tries to preserve the environment, but that is not allowed.
way around: usermod -aG docker nagios

sudo -u nagios /usr/local/lib/nagios/plugins/check_contrail_status_controller.py 5.1
sudo: sorry, you are not allowed to preserve the environment
CRITICAL: Could not get contrail-status. return code: 1 cmd: export CONTRAIL_STATUS_CONTAINER_NAME=contrail-status-controller-nrpe ; sudo -E contrail-status output: b''

Duplicate of #138


add Zandronum packages to nix

Thanks for creating this! I've had a half baked Zandronum nix expression that I've been sitting on for a month or two, but I hadn't gotten it ready for release.
Will self assign to see this merged, thanks again!

It would be really cool if zandronum and zandronum-bin would be compatible with each other. But I can't figure out how to build it the right way. I just get the network protocol outdated warning everytime I try to connect to an online server.


Fix CASE statement when branch expression is of String Datatype.

1. Issue:
Return type of overall CASE expression when branch expression is of String Datatype, is evaluated as per Postgres behaviour, which gives a different Return type as compared to TSQL.
eg. Return type of overall CASE expression is evaluated to become VARCHAR, if all branches are of NVARCHAR type because Postgres tries to coerce result of every branch expression to base type (VARCHAR), whereas in TSQL, overall return type is NVARCHAR in this example.
CREATE TABLE ALLTEXTS(
CODE nvarchar(30) NOT NULL,
LANG nvarchar(2) NOT NULL,
TEXT nvarchar(2000) NULL
)

INSERT INTO ALLTEXTS (CODE, LANG, TEXT)
VALUES ('53075', 'EN', N'Registration Card - Standard');

INSERT INTO ALLTEXTS (CODE, LANG, TEXT)
VALUES ('53075', 'AR', N'بطاقة التسجيل - قياسية');

INSERT INTO ALLTEXTS (CODE, LANG, TEXT)
VALUES ('53075', 'JP', N'登録カード–標準');

SELECT CASE WHEN 1 = 1 THEN TEXT END AS WrongValue2 FROM ALLTEXTS

Return type: varchar
expected type: nvarchar
2. Changes made to fix the issues
tsql_select_common_type_hook() is set to return common_type for all branches when branch expression is of String Datatype, that calculate according to the TSQL precedence, whereas till now it was set according to the PG precedence order (Which was different from TSQL).This hook solved our problem as it returns result according to the TSQL precedence order. We have also fixed the typmod issue, by calculating the common typmod and setting all branches of CASE statement to the calculated typmod.
Task: BABEL-5103, BABEL-4332
Authored-by: yashneet vinayak<EMAIL_ADDRESS>Signed-off-by: yashneet vinayak<EMAIL_ADDRESS>Issues Resolved
Task: BABEL-5103, BABEL-4332
Engine Side PR link: https://github.com/babelfish-for-postgresql/postgresql_modified_for_babelfish/pull/455
Test Scenarios Covered

**Use case based -**Yes

Boundary conditions -

**Arbitrary inputs -**Yes

Negative test cases -

**Minor version upgrade tests -**Yes

**Major version upgrade tests -**Yes

Performance tests -

Tooling impact -

**Client tests -**Yes

Check List

[x] Commits are signed per the DCO using --signoff

By submitting this pull request, I confirm that my contribution is under the terms of the Apache 2.0 and PostgreSQL licenses, and grant any person obtaining a copy of the contribution permission to relicense all or a portion of my contribution to the PostgreSQL License solely to contribute all or a portion of my contribution to the PostgreSQL open source project.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>9
Details

69 of 70 (98.57%)  changed or added relevant lines in 3 files are covered.
1 unchanged line in 1 file lost coverage.
Overall coverage increased (+0.02%) to 73.701%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

contrib/babelfishpg_tsql/src/pltsql_coerce.c
64
65
98.46%

Files with Coverage Reduction
New Missed Lines
%

contrib/babelfishpg_tsql/src/pltsql_coerce.c
1
81.72%

Totals

Change from base Build<PHONE_NUMBER>9:
0.02%

Covered Lines:
43014

Relevant Lines:
58363

💛  - Coveralls


TOMEE-4023 Comparison pages with wrong specs per profile

Tomcat does not include JSTL nor the javax.security.enterprise.* packages.
The documentation should reflect that, and should have these specs into WebProfile.

Thanks @sultan


[FEATURE]: ChatGPT example on Ray

Describe the feature
Provide a minimal example demonstrating how to run the ChatGPT example on Ray.

Appreciate your contribution!


Decorate class

Created a class Nameable.
Implement a method called correct_name that will raise a NotImplementedError.

Turn Person class to Nameable
Person class inherits from Nameable
class has a method correct_name implemented. It should simply return the name attribute.

Prepare base Decorator
inherits from Nameable.
assign a nameable object from params to an instance variable In the constructor.
correct_name method returns the result of the correct_name method of the @nameable.

CapitalizeDecorator and TrimmerDecorator

For the CapitalizeDecorator:

Created a class that inherits from the base Decorator class.
Implemented a method correct_name that capitalizes the output of @nameable.correct_name.

For the TrimmerDecorator:

Created a class that inherits from the base Decorator class.
Implement a method correct_name that makes sure that the output of @nameable.correct_name has a maximum of 10 characters. If it's longer it should trim the word.

decorators in action

person = Person.new(22, 'maximilianus')
  person.correct_name
  capitalizedPerson = CapitalizeDecorator.new(person)
  capitalizedPerson.correct_name
  capitalizedTrimmedPerson = TrimmerDecorator.new(capitalizedPerson)
  capitalizedTrimmedPerson.correct_name

@TedLivist  thanks

@gemmen29 thanks for the review


create multisig: "TypeError: Cannot read properties of undefined (reading 'toString')"

Hi,
Following the documentation on creating a multisig account, https://spl.solana.com/token#multisig-usage
I am facing an error at the part that actually calls the spl-token packages createMultisig function:
const multisigKey = await spl.createMultisig(
    connection,
    payer,
    [
        signer1.publicKey,
        signer2.publicKey,
        signer3.publicKey
    ],
    2
);
console.log(`Created 2/3 multisig ${multisigKey.toBase58()}`);

It throws an error in the spl-token package:
~/node_modules/@solana/web3.js/lib/index.cjs.js:2686
      const key = signer.publicKey.toString();
                                   ^
TypeError: Cannot read properties of undefined (reading 'toString')
    at Transaction.sign (/Users/ari/WebstormProjects/solanatesting/node_modules/@solana/web3.js/lib/index.cjs.js:2686:36)
    at Connection.sendTransaction (/Users/ari/WebstormProjects/solanatesting/node_modules/@solana/web3.js/lib/index.cjs.js:6736:21)
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
    at async sendAndConfirmTransaction (/Users/ari/WebstormProjects/solanatesting/node_modules/@solana/web3.js/lib/index.cjs.js:2976:21)

How to reproduce

Package: "@solana/spl-token": "^0.2.0"
Node: v16.11.1

Script:
// index.js

const spl = require("@solana/spl-token");
const web3 = require("@solana/web3.js");

(async () => {

    const connection = new web3.Connection(web3.clusterApiUrl('devnet'), 'confirmed');

    const payer = new web3.PublicKey("5XkZJg5fEGh1pjvKnX44cL7HygW6ZF1RtpD6R5kVEDCn");
    const signer1 = web3.Keypair.generate();
    const signer2 = web3.Keypair.generate();
    const signer3 = web3.Keypair.generate();

    const multisigKey = await spl.createMultisig(
        connection,
        payer,
        [
            signer1.publicKey,
            signer2.publicKey,
            signer3.publicKey
        ],
        2
    );

    console.log(`Created 2/3 multisig ${multisigKey.toBase58()}`);

})();

then run:
$ node index.js

The above key is the dummy account I setup with some airdropped sol.

I realised my error.
I can't use new PublicKey(). I instead need to load the key from the secret key:
let secretKey = Uint8Array.from([ // secret key value ]);
let payer = web3.Keypair.fromSecretKey(secretKey);

ref: https://docs.solana.com/developing/clients/javascript-api#connecting-to-a-wallet

Thanks for sharing the solution! It's worth noting you can avoid this by using TypeScript 😄 Passing PublicKey where Signer is expected should result in a descriptive compile-time error.


Windows Tests Are All Flakey on git operations

I think this test may need some love, this is the first failure so we'll see if it happens again.
This only failed on AppVeyor, not Travis:
--- FAIL: TestGitSourceListVersionsNoHEAD (0.50s)
	vcs_source_test.go:582: Error on cloning git repo: unable to get repository: Cloning into 'C:\Users\appveyor\AppData\Local\Temp\1\gotest102557298\smcache\sources\file---C--Users-appveyor-AppData-Local-Temp-1-gotest102557298-repo'...
		error: git upload-pack: git-pack-objects died with error.
		fatal: early EOF
		: command failed: [git clone --recursive -v --progress file://C:/Users/appveyor/AppData/Local/Temp/1/gotest102557298/repo C:\Users\appveyor\AppData\Local\Temp\1\gotest102557298\smcache\sources\file---C--Users-appveyor-AppData-Local-Temp-1-gotest102557298-repo]: exit status 1

The windows tests are failing more often, always on git operations. Is it safe to run multiple concurrent git processes at the same time on Windows? This is happening often enough that we need to address it.
https://ci.appveyor.com/project/golang/dep/build/2429
--- FAIL: TestVCSVersion (2.43s)
	test.go:233: go standard error:
	test.go:234: # cd C:\Users\appveyor\AppData\Local\Temp\1\gotest050160048\src\github.com\sirupsen\logrus; git submodule update --init --recursive
		package github.com/sirupsen/logrus: exit status 1

	test.go:237: go [get github.com/sirupsen/logrus] failed unexpectedly: exit status 1
--- FAIL: TestMultiFetchThreadsafe (63.43s)
    --- FAIL: TestMultiFetchThreadsafe/first (0.00s)
        --- FAIL: TestMultiFetchThreadsafe/first/sync:3:gopkg.in/sdboyer/gpkt.v2 (0.26s)
        	manager_test.go:735: https://gopkg.in/sdboyer/gpkt.v2 does not exist in the local cache and fetching failed: unable to get repository: Cloning into 'C:\Users\appveyor\AppData\Local\Temp\1\smcache662811912\sources\https---gopkg.in-sdboyer-gpkt.v2'...
        		: command failed: [git clone --recursive -v --progress https://github.com/sdboyer/gpkt C:\Users\appveyor\AppData\Local\Temp\1\smcache662811912\sources\https---gopkg.in-sdboyer-gpkt.v2]: exit status 1

https://ci.appveyor.com/project/golang/dep/build/2439
--- FAIL: TestGitSourceListVersionsNoDupes (0.38s)
	vcs_source_test.go:627: Error on cloning git repo: unable to get repository: Cloning into 'C:\Users\appveyor\AppData\Local\Temp\1\smcache006789135\sources\https---github.com-carolynvs-deptest--importers'...
		: command failed: [git clone --recursive -v --progress https://github.com/carolynvs/deptest-importers C:\Users\appveyor\AppData\Local\Temp\1\smcache006789135\sources\https---github.com-carolynvs-deptest--importers]: exit status 1

https://ci.appveyor.com/project/golang/dep/build/2453
--- FAIL: TestVCSVersion (3.80s)
	test.go:233: go standard error:
	test.go:234: # cd .; git clone https://go.googlesource.com/crypto C:\Users\appveyor\AppData\Local\Temp\1\gotest453331345\src\golang.org\x\crypto
		Cloning into 'C:\Users\appveyor\AppData\Local\Temp\1\gotest453331345\src\golang.org\x\crypto'...
		package golang.org/x/crypto/ssh/terminal: exit status 1

	test.go:237: go [get github.com/sirupsen/logrus] failed unexpectedly: exit status 1
--- FAIL: TestGetInfoListVersionsOrdering (0.62s)
	manager_test.go:590: Unexpected error from GetInfoAt https://github.com/sdboyer/gpkt does not exist in the local cache and fetching failed: unable to get repository: Cloning into 'C:\Users\appveyor\AppData\Local\Temp\1\smcache444235753\sources\https---github.com-sdboyer-gpkt'...
		: command failed: [git clone --recursive -v --progress https://github.com/sdboyer/gpkt C:\Users\appveyor\AppData\Local\Temp\1\smcache444235753\sources\https---github.com-sdboyer-gpkt]: exit status 1

https://ci.appveyor.com/project/golang/dep/build/2454
--- FAIL: TestGetInfoListVersionsOrdering (0.50s)
	manager_test.go:590: Unexpected error from GetInfoAt https://github.com/sdboyer/gpkt does not exist in the local cache and fetching failed: unable to get repository: Cloning into 'C:\Users\appveyor\AppData\Local\Temp\1\smcache120125627\sources\https---github.com-sdboyer-gpkt'...
		: command failed: [git clone --recursive -v --progress https://github.com/sdboyer/gpkt C:\Users\appveyor\AppData\Local\Temp\1\smcache120125627\sources\https---github.com-sdboyer-gpkt]: exit status 1

yeah, that shit is kinda killing me. i've restarted appveyor builds on i don't even know how many PRs. ugh.
i was toying with the idea of just doing the damn local repo implementation, so that 99% of this stuff no longer need go over the network.


Request for Thesaurus for Graphic Materials

@a-cohen requested and @JeannetteHo1 supported the request to add graphicMaterial vocabulary at id.loc.gov.  This appears to follow the pattern
{
    "label": "Thesaurus for Graphic Materials",
    "uri": "https://id.loc.gov/vocabulary/graphicMaterials",
    "component": "list"
  }

Original request from https://github.com/LD4P/qa_server/issues/208
Data source: Thesaurus for Graphic Materials
URL: http://id.loc.gov/vocabulary/graphicMaterials.html
API: download available at http://id.loc.gov/download/
An important vocabulary used by our metadata team for many ephemeral collections.

@elrayle so this just requires work on Sinopia side, nothing on QA side?

I am fairly sure that is correct.  @jermnelson @justinlittman can confirm that.

No, this resource is not like the other Library of Congress lookups that we directly support in Sinopia. If you go to the page http://id.loc.gov/vocabulary/graphicMaterials.html, you'll see links for RDF downloads(i.e. http://id.loc.gov/static/data/downloads/vocabularygraphicMaterials.nt.both.zip).
For direct lookups like http://id.loc.gov/vocabulary/issuance, Sinopia extracts the vocabulary from the JSON at that page (http://id.loc.gov/vocabulary/issuance.json). The http://id.loc.gov/vocabulary/graphicMaterials.json is just a description similar to the HTML page and does not actually contain the Thesaurus values, those are in the RDF downloads.

@elrayle so it sounds like we need to close this ticket and reopen https://github.com/LD4P/qa_server/issues/208?

Closing this issue.  https://github.com/LD4P/qa_server/issues/208 has been reopened.


pre = EnclosedBy(pre, Whitespace())  makes an error

In this example:
pre = Pregex('a')
pre = EnclosedBy(pre, Whitespace())

what I want is : (?<=\s)a(?=\s) but an error occored : "NonFixedWidthPatternException: Instances of class "Pregex" cannot receive an instance of class "Whitespace" in place of a lookbehind-restriction-pattern as the latter represents a pattern whose width is not fixed.". So where did I do wrong and how to fix it?
Thank you very much !!

pregex.meta.essentials.Whitespace does not represent RegEx pattern \s, that would be pregex.core.classes.AnyWhitespace. The reason you're getting this error is because Whitespace represents a pattern that is able to match any string containing whitespace of any length. This pattern does not have a fixed width, and as such, it cannot be used as a lookbehind assertion pattern due to the Python's built in re module.

Thank you very much! Now I am sure this library should be included in the standard!


build(deps-dev): bump vite and other ledger-browser deps

Bump vite to 4.5.2 to solve security issue reported by dependabot in https://github.com/hyperledger/cacti/pull/2999
Update other vite and build plugins to latest versions.
Update solidjs and solidjs router to fix runtime issues.

Pull Request Requirements

[ ] Rebased onto upstream/main branch and squashed into single commit to help maintainers review it more efficient and to avoid spaghetti git commit graphs that obfuscate which commit did exactly what change, when and, why.
[ ] Have git sign off at the end of commit message to avoid being marked red. You can add -s flag when using git commit command. You may refer to this link for more information.
[ ] Follow the Commit Linting specification. You may refer to this link for more information.

Character Limit

[ ] Pull Request Title and Commit Subject must not exceed 72 characters (including spaces and special characters).
[ ] Commit Message per line must not exceed 80 characters (including spaces and special characters).

A Must Read for Beginners
For rebasing and squashing, here's a must read guide for beginners.

LGTM (already approved by Peter, so skipping on that)


BUG: blacklist not found

Describe the bug
This might be snakemake unable to chain this many files(?), but the blacklist is still not found...
To Reproduce
In branch develop, run the atac-seq workflow with default params.
Screenshots
[Sat Mar 28 13:46:34 2020]
rule alignmentsieve:
    input: /mnt/passer/bank/experiments/2020-04/xt_dr_atacseq_snakemake/bwa/xenTro9-stage16_repl2.samtools-coordinate-unsieved.bam, /mnt/passer/bank/experiments/2020-04/xt_dr_atacseq_snakemake/bwa/xenTro9-stage16_repl2.samtools-coordinate-unsieved.bam.bai, /mnt/passer/bank/genomes/xenTro9/xenTro9.customblacklist.bed
    output: /mnt/passer/bank/experiments/2020-04/xt_dr_atacseq_snakemake/bwa/xenTro9-stage16_repl2.samtools-coordinate-sieved.bam
    log: /mnt/passer/bank/experiments/2020-04/xt_dr_atacseq_snakemake/log/alignmentsieve/xenTro9-stage16_repl2.log
    jobid: 988
    benchmark: /mnt/passer/bank/experiments/2020-04/xt_dr_atacseq_snakemake/benchmark/alignmentsieve/xenTro9-stage16_repl2.benchmark.txt
    wildcards: assembly=xenTro9, sample=stage16_repl2

InputFunctionException in line 349 of /home/siebrenf/git/snakemake-workflows/rules/alignment.smk:
FileNotFoundError: [Errno 2] No such file or directory: '/mnt/passer/bank/genomes/xenTro9/xenTro9.customblacklist.bed'
Wildcards:
assembly=xenTro9
sample=stage16_repl2

running the rule separately (replacing the wildcards with the assembly name and running snakemake [cmds] setup_blacklist) first does work. At least the DAG is generating

That is because checkpoints dont work. Are you doing --dag? Because then it complains about it.

It should work when you execute it.. I hope


Array is too big when I try to begin training

I'm using OpenAI gym, so I installed all the relevant dependencies.
After running ./train.sh Breakout-v0 --environment gym, I get an error from python saying
[2016-06-11 22:19:58,709] Making new env: Breakout-v0
[2016-06-11 22:19:58,780] Using Gym Environment
Traceback (most recent call last):
  File "src/main.py", line 103, in <module>
    mem = ReplayMemory(args.replay_size, args)
  File "/home/ubuntu/Developer/OpenAI/simple_dqn/src/replay_memory.py", line 12, in __init__
    self.screens = np.empty((self.size, args.screen_height, args.screen_width), dtype = np.uint8)
ValueError: array is too big.

Not sure how to fix.

You can decrease the replay memory size if your computer is short of RAM. For example add --replay_size 500000 to command line.


Ignore * keys for findUnused

Fix a part of https://github.com/oliviertassinari/i18n-extract/issues/44
The ternary resolution should come in another PR.

@Kerumen It's a great first pull request on the project 👌🏻. Thank you for giving it a shot!

@oliviertassinari Thanks! 🙌
Can you release as 0.6.1 please?

@Kerumen Sure, I'm on it!

This PR introduces a substantial regression, in that it reports many unused keys which are actually being used.
const Yolo = ({ foo }) => <div>{i18n.t(foo, { scope: 'foo.bar' })}</div>

All keys that match foo.bar.* are reported as unused.

@rpellerin I might be wrong, but at first sight, your comment is exactly what motivated this change.
Going back to your code example. This plugin doesn't know any scope feature. Its considering it's a *. The findUnused method is closd useless in the Doctolib codebase. The change is only surfacing this core issue.

Should I expect it to handle such cases in the near future?

https://github.com/oliviertassinari/i18n-extract/issues/46

Amazing, thanks!


Check jupyter dependency when throwing jupyter err

Fixes #9271

Codecov Report

Merging #9294 (2fc2f69) into main (39c64ec) will decrease coverage by 0%.
The diff coverage is 66%.

@@          Coverage Diff          @@
##            main   #9294   +/-   ##
=====================================
- Coverage     71%     71%   -1%
=====================================
  Files        383     383
  Lines      24836   24831    -5
  Branches    3990    3991    +1
=====================================
- Hits       17760   17755    -5
+ Misses      5481    5475    -6
- Partials    1595    1601    +6

Impacted Files
Coverage Δ

...ience/interactive-common/notebookServerProvider.ts
80% <ø> (ø)

...ractive-window/interactiveWindowCommandListener.ts
36% <ø> (ø)

...e/jupyter/interpreter/jupyterInterpreterService.ts
88% <0%> (-1%)
:arrow_down:

src/client/datascience/jupyter/notebookStarter.ts
75% <ø> (ø)

src/client/datascience/errors/errorHandler.ts
73% <80%> (-2%)
:arrow_down:

...c/client/datascience/errors/jupyterInstallError.ts
100% <100%> (ø)

...er/jupyterInterpreterSubCommandExecutionService.ts
92% <100%> (ø)

...tascience/jupyter/kernels/kernelCommandListener.ts
69% <0%> (-4%)
:arrow_down:

src/client/datascience/jupyter/jupyterWebSocket.ts
53% <0%> (-4%)
:arrow_down:

...t/datascience/notebook/vscodeNotebookController.ts
78% <0%> (-2%)
:arrow_down:

... and 10 more


[BugFix] Fix hermes tool parser output error stream arguments in some cases (#10395)

[BugFix] Fix hermes tool parser output error stream arguments in some cases (#10395)
Use delta_text to return directly to the user, preventing errors caused by partial_json_parser during the incremental computation of parameters.
FIX #9693
FIX #9908
FIX #10395

cc @K-Mistele

The function partial_json_parser is designed to complete right brackets (including }, ], ), etc.), but if the LLM has not generated these brackets, it will lead to an error in the incremental calculation of arguments.

Thanks everyone for making this potential fix!
I'll try on my own examples as soon as tomorrow
In the spirit of testing on the same basis, is it possible to have a minimal a very minimal python codebase requesting vllm with tools and streaming ?

Thanks everyone for making this potential fix! I'll try on my own examples as soon as tomorrow In the spirit of testing on the same basis, is it possible to have a minimal a very minimal python codebase requesting vllm with tools and streaming ?

For the relevant code, please refer to the following link: #10395

Totally missed that, thanks a lot!

Please fix the linter errors.

Don't worry about DXO, we can pass it manually.

Don't worry about DCO, we can pass it manually if you agree to it.

Please fix the linter errors.

I've fixed the linter errors.

I used the hermes_tool_parser.py as tool-parser-plugin and registered the parser as hermes_patched, but still encountered the same problem.
Traceback (most recent call last):
  File "/app/hermes_tool_parser.py", line 228, in extract_tool_calls_streaming
    function_name: Union[str, None] = current_tool_call.get("name")
                                      ^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'get'
Error trying to handle streaming tool call.
Traceback (most recent call last):
  File "/app/hermes_tool_parser.py", line 292, in extract_tool_calls_streaming
    args_delta_start_loc = cur_arguments_json.index(delta_text) \
                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ValueError: substring not found

Here is how I start vllm service:
python3 -m vllm.entrypoints.openai.api_server \
--model /app/Qwen2.5-72B-Instruct-AWQ \
--port 7415 \
--tensor-parallel-size 2 \
--gpu-memory-utilization 0.95 \
--max-model-len 64000 \
--enforce-eager \
--disable_custom_all_reduce \
--enable-auto-tool-choice \
--tool-parser-plugin /app/hermes_tool_parser.py \
--tool-call-parser hermes_patched  \
--chat-template /app/qwen.jinja

I used the hermes_tool_parser.py as tool-parser-plugin and registered the parser as hermes_patched, but still have the same problem.
Traceback (most recent call last):
  File "/app/hermes_tool_parser.py", line 228, in extract_tool_calls_streaming
    function_name: Union[str, None] = current_tool_call.get("name")
                                      ^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'get'
Error trying to handle streaming tool call.
Traceback (most recent call last):
  File "/app/hermes_tool_parser.py", line 292, in extract_tool_calls_streaming
    args_delta_start_loc = cur_arguments_json.index(delta_text) \
                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ValueError: substring not found

Here is how I start vllm service:
python3 -m vllm.entrypoints.openai.api_server \
--model /app/Qwen2.5-72B-Instruct-AWQ \
--port 7415 \
--tensor-parallel-size 2 \
--gpu-memory-utilization 0.95 \
--max-model-len 64000 \
--enforce-eager \
--disable_custom_all_reduce \
--enable-auto-tool-choice \
--tool-parser-plugin /app/hermes_tool_parser.py \
--tool-call-parser hermes_patched  \
--chat-template /app/qwen.jinja

I use docker compose, and entrypoint is:
entrypoint: ["/bin/sh", "-c", "python3 -u -m vllm.entrypoints.openai.api_server   --model /data/models/Qwen2.5-72B-Instruct-AWQ --enable-auto-tool-choice --tool-call-parser hermes  --tensor-parallel-size 2 --gpu_memory_utilization 0.97 --max_model_len 20000 --max_num_seq 40"])


Requirements brainstorm discussion for Federated Bookshelves/Library JSON

This issue thread is to capture comments on the requirement brainstorm page in this repo (https://github.com/andysylvester/federated-bookshelves/blob/main/requirements/brainstorm.md).

Here is my summary of requirements for an app called Booklist Browser and for Booklists used by Booklist Browser:
The Booklist Browser app shall be able to open and read one or more individual booklists
The Booklist Browser app shall be able to read booklists in OPML format or JSON format
Booklist minimum set of elements in OPML format shall be as specified in https://www.zylstra.org/blog/booklist-opml-data-structure/
Booklist minimum set of elements in JSON format shall be as specified in https://tomcritchlow.com/2020/04/15/library-json/
Booklists shall have a classification element to specify topic of interest, genre, language, year, or author
Booklists shall have an element to allow pointing to another booklist from a book entry in a booklist
Booklists shall have an element to allow pointing to author websites
Booklists shall have an element to allow pointing to author publishers
Booklists shall have an element to allow pointing to list sharer’s/reader’s blogposts
The Booklist Browser app shall be able to detect when a change has occurred in a booklist
The Booklist Browser app shall be able to identify if a change to a booklist is an addition
The Booklist Browser app shall be able to identify if a change to a booklist is a deletion
The Booklist Browser app shall be able to identify if an element within a book in a booklist has changed
The Booklist Browser app shall be able to display all the book element values for an OPML format booklist
The Booklist Browser app shall be able to display all the book element values for a JSON format booklist
The Booklist Browser app shall be able to display a reverse-chronologic list of updates to a set of  booklists
The Booklist Browser app shall be able to create a RSS feed containing a reverse-chronologic list of updates to a set of booklists
The Booklist Browser app reverse-chronologic list of updates shall include the following types of updates:

Someone created a booklist (list the books)
Someone just finished reading a book (maybe link to a review)
Someone added a book to their “in progress” list

The Booklist Browser app shall be able to display a list of book reviews for a specified set of booklists (Commentary: booklist would have to contain a review element)
The Booklist Browser app shall allow the user to view a selected booklist
The Booklist Browser app shall allow the user to follow updates to a booklist or set of booklists
The Booklist Browser app shall create a list of the booklists followed by a user, and shall be able to share this list with other users

Closing this issue, moving requirements to https://github.com/andysylvester/federated-bookshelves/blob/main/requirements/Booklist_Browser_App_Requirements


Added Modifier parameter to BottomSheetHost

Added Modifier to BottomShootHost, as discussed in https://github.com/hrach/navigation-compose-ext/issues/32

Please, could you fix:

[standard:trailing-comma-on-call-site] Missing trailing comma before ")"
on two places.

Also, if you want, you may add the same to ModalSheetHost.
Thank you.

Hi @hrach,
fixed it. Regarding ModalSheetHost, there is a Modifier paramter already thats passed into AnimatedContent. I dont know the reason behind this and don't want to break anything.

Thank you 😊


Use FString::Printf along with ARGUS_FUNCNAME and ARGUS_NAMEOF to format messages in test files.

https://forums.unrealengine.com/t/string-formatting-for-text/290626


Example: Adding support for n differences

This is an example of a potential extension for adding n differences. The default 0 would be a model that had the mean of the cases (now fit in model) as mean of the GP. A first order would be a model that had a 0 growth rate as the mean of the GP. A second order would be a model that had r_t-1 as the mean at time t, this would be a logit version of the EpiNow2 default. Higher orders possible and maybe sensible but likely hard to fit (i.e would be assuming change in growth rate continues unless supported by data).

Some tweaks + switched to initialising the growth rates etc with their own parameters.
Some notes:

All versions are slower than the version of the model on master. This is because all versions of the model are now scaled to a global mean which really they should always have been. When I first set the model up I looked at this and dropped due to run-time issues and it not making an apparent difference.
Only the antibody model has been updated. I think we need to discuss what the aim of this is in order to decide what to support and what not to support. If wanting to support models with optional data requirements etc probably better do it in a single model vs supporting lots of sub-models with duplicate parts.
As expected the growth rate model is quite a bit slower than the non-differenced model.

I've made the antibody model optional and renamed it to be the main model. I've also added date and gp approximation to the estimation script as if only interested in now we don't really need to estimate a whole year etc.

@sbfnk it would be good to know how your branch has diverged from this and/or what updates need to be made to support it? I've built subsequent updates on top of it so would be good to make sure makes sense.


Add GNU GTS flag for Graphviz/Homebrew in README?

This isn't an issue with madge, just an idea for the README.
Sometimes installing Graphviz alone isn't enough to make everything work.
The sfdp layout seems to depend on GNU GTS.
Homebrew doesn't include GTS by default.
But it can be installed like this: brew install graphviz --with-gts.
Maybe it would be a good idea to add --with-gts in the README?
Here's what would happen without GTS, which could be confusing:
$ madge -i img.svg -l sfdp .
Processed 166 files (2.9s)

✖ Error: Error: remove_overlap: Graphviz not built with triangulation library

    at g.output (/usr/local/lib/node_modules/madge/lib/graph.js:110:11)
    at ChildProcess.<anonymous> (/usr/local/lib/node_modules/madge/node_modules/graphviz/lib/deps/graph.js:375:21)
    at ChildProcess.emit (events.js:182:13)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:237:12)

Added a note about this in the FAQ: https://github.com/pahen/madge#how-do-i-fix-the-graphviz-not-built-with-triangulation-library-error-when-using-sfdp-layout


BTFS-684: added a function to get metadata dag root

Added  a new function
Added a test to verify it.
All the unit tests passed without error.

Performed go-btfs unit tests and go-unixfs unit tests. All passed.


use vssdk nuget package to build vsix

) Take Microsoft.VSSDK.BuildTools 15.0.26201 nuget package reference
2) Fix the installation directory name (Name will be TestPlatform) under Extension folder

Hi @Faizan2304, I'm your friendly neighborhood Microsoft Pull Request Bot (You can call me MSBOT). Thanks for your contribution!

It looks like you're a Microsoft contributor. If you're full-time or an intern, we DON'T require a Contribution License Agreement. If you are a vendor, please DO sign the electronic Contribution License Agreement. It will take 2 minutes and there's no faxing! https://cla.microsoft.com.

TTYL, MSBOT;


Question about the inspect method.

I have the following code:
registerAction("LPInspectObject", "ctrl shift 9") { AnActionEvent event ->
    show("loaded")
    inspect("loaded")
    inspect(event.project)
    inspect(event)
}

if (!isIdeStartup) show("Plugin Loaded")

The strange things is the first two inspections works, but the last one inspect(event) does not show anything.

Hello,
Thanks a lot for reporting this!
I'll fix inspect method in the next version of the plugin.
As a workaround you can try and paste this code of fixed ObjectInspector into plugin.groovy and use it as ObjectInspector.showPopup(event).
Overall, it looks like the issue is caused by exception while trying to convert of the fields of event object to string. After running inspect(event) there should be red circle blinking in the bottom right of IDE frame. If you click on it, it should have something like this:
method not implemented
java.lang.RuntimeException: method not implemented
	at com.intellij.util.containers.RefValueHashMap.entrySet(RefValueHashMap.java:133)
	at com.intellij.util.containers.WeakValueHashMap.entrySet(WeakValueHashMap.java:24)
	at org.codehaus.groovy.runtime.InvokerHelper.formatMap(InvokerHelper.java:647)
	at org.codehaus.groovy.runtime.InvokerHelper.toMapString(InvokerHelper.java:752)
	at org.codehaus.groovy.runtime.InvokerHelper.toMapString(InvokerHelper.java:741)
	at org.codehaus.groovy.runtime.InvokerHelper.toString(InvokerHelper.java:129)
	at org.codehaus.groovy.runtime.DefaultGroovyMethods.toString(DefaultGroovyMethods.java:13691)
	at org.codehaus.groovy.runtime.dgm$707.invoke(Unknown Source)
	at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoMetaMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:274)
	at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:56)
	at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
	at java_lang_Integer$toString.call(Unknown Source)
	at liveplugin.implementation.ObjectInspector.presentationOf(ObjectInspector.groovy:75)

And it makes sense because RefValueHashMap really doesn't implement this method (see source code).


Add overcommit

Summary:
Fixes https://github.com/fastlane/ci/issues/1001

Add overcommit - https://github.com/brigade/overcommit
Automatically run rspec and rubocop
Run tests before pushing up changes

[x] I have run rspec and corrected all errors
[x] I have run rubocop and corrected all errors
[x] I have tested this change locally and tried to launch the server as well as access a project, and with that at least one build
[x] If there is an existing issue, make sure to add Fixes ... as part of the PR body to reference the issue you're solving

I signed it!

This looks legit, thanks for the PR. I'll change with my team-mates to see what they think 👍

This looks cool to me. I love pre-commit checks 🎉


Can we use LightLLM for distributed serving?

Such as mutli-node multi-gpu serving?
It seems that if we use host as "localhost:xxx", we can not use LightLLM for distributed serve.

You can utilize it for distributed serving, and using Docker for deployment is a better approach.

Thanks~I will try it.


Fix global variables in optimizelyXSummary

The global vars seem to be confusing the minifier in some way in newer builds, and the uglified code throws an exception trying to assign to an undefined variable, which results in the events being discarded. Making the variables local resolves the issue.
Tested & fixed with v2.10.2

Closed/reopened to rerun CI tests (failed due to Intern issues).


Version 0.7.1 is incompatible with Dart SDK

After flutter upgrade I got error with following message as response to flutter packages get:
The current Dart SDK version is 2.1.0-dev.0.0.flutter-be6309690f.
Because app depends on font_awesome_flutter >=4.7.1 which requires SDK version <2.0.0,
version solving failed.

Building failed.

Hey there -- I just published the latest version: 8.0.0, which explicitly supports Dart 2. Please upgrade to the latest version and let me know if ya run into any problems!


factoring _has_valid_move from Game for testing

Current coverage is 76.57% (diff: 80.00%)

Merging #48 into master will increase coverage by 0.16%

@@             master        #48   diff @@
==========================================
  Files             8          8
  Lines           284        286     +2
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
+ Hits            217        219     +2
  Misses           67         67
  Partials          0          0

Powered by Codecov. Last update 62ac8bc...76831e0


[QUESTION] How to get the api path in middleware?

Description
I want to store some analytics data for each hit in my API.
Among the data I need to extract for each  request, I have:

response status code (eg 200)
the request's matched path (eg /users/{user_id}/books)
etc.

I imagined that the best place to do that is in a middleware, after the response is computed:
@app.middleware("http")
async def get_analytics_data(request: Request, call_next):
    response = await call_next(request)
    analytics_data = {
        'response_code': response.status_code,
        'path': ?  # here I need the route path (eg `/users/{user_id}/books`)
    }
    save(analytics_data)
    return response

Inside the middleware I can access the request.url but it's not what I want. The path as I define it in the routes is what I need.
Is there a way to obtain the path of the request in a single place? It doesn't have to happen at the middleware level as long as it is in a single place.
EDIT:
Example:
Let's say I have defined:
@router.get('/users/{user_id}/books')
async def get_user_books(user_id: str):
    return [{book1}, {book2}]

The user hits /users/10/books, so the path /users/{user_id}/books is matched.
In my middleware I need to identify what path had been matched (which, in this case, it's /users/{user_id}/books).

app.url_path_for('get_analytics_data') maybe?
Le ven. 30 août 2019 à 3:48 PM, devtud<EMAIL_ADDRESS>a écrit :

Description
I want to store some analytics data for the hits in my API, and, among the
data I need to extract for each request, I have: response status code (eg
200), the resolved path (eg /users/{user_id}/books) etc.
I imagined that the best place to do that is in a middleware, after the
response is computed:
@app.middleware("http")async def get_analytics_data(request: Request, call_next):
response = await call_next(request)
analytics_data = {
'response_code': response.status_code,
'path': ?
}
save(analytics_data)
return response
Inside the middleware I can access the request.url but it's not what I
want. The path as I define it in the routes is what I need.
Is there a way to obtain the path of the request in a single place? It
doesn't have to happen at the middleware level as long as it is in a single
place.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/tiangolo/fastapi/issues/486?email_source=notifications&email_token=AAINSPV2EJLDM5LX6MRFASLQHEQK7A5CNFSM4ISNQZIKYY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4HIOSC7A,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAINSPX55YURAWAR6JSJ2BDQHEQK7ANCNFSM4ISNQZIA
.

@euri10 , get_analytics_data is the name of the middleware, so I don't see how could I obtain the route's path from it.
I've slightly updated the description hoping it's a bit more clear.

A temporary (or not) solution for my need implies using router and endpoint from request.state. I'm not sure this is an elegant way to do it, but it does the job. Other suggestions are welcomed.
So, to get the matched path of a request, I use this snippet in my middleware.
...
response = await call_next(request)

path = [route for route in request.scope['router'].routes if route.endpoint == request.scope['endpoint']][0].path

print(f'Path is: {path}')
# Path is: /users/{user_id}/books

return response

The downside is that I have to iterate through all the routes for each request, but this can be improved quickly with a cache global variable.

I'm glad you solved your problem @devtud !
You might also want to check how to add custom classes for APIRoute: https://fastapi.tiangolo.com/advanced/custom-request-and-route/

Hi, and how to figure out the path template if several routes are connected to a single endpoint? dummy example:
    @router.get("/x/{param1}/y/{param2}")
    @router.get("/z/{param3}")
    def endpoint(request: Request):
        # here, how to figure out if it's "/x/{param1}/y/{param2}" or "/z/{param3}"?

thanks

Hi, and how to figure out the path template if several routes are connected to a single endpoint? dummy example:
    @router.get("/x/{param1}/y/{param2}")
    @router.get("/z/{param3}")
    def endpoint(request: Request):
        # here, how to figure out if it's "/x/{param1}/y/{param2}" or "/z/{param3}"?

thanks

@Kludex @gwaramadze
Hi, I just figure out the solution:
@app.middleware("http")
async def do_something(request: Request, call_next):
    path = request.scope['path']  # get the request route

    if "xxx"  in path:
        do_something_before_path_operation()

    response = await call_next(request)

    if "xxx"  in path:
        do_something_after_path_operation()
    return response

Hope this helps.


Header variants parameter not being passed to base page template

Header variants parameter not being passed to base page template
Originally posted by @jrbarnes9 in https://github.com/ONSdigital/design-system/discussions/195#discussioncomment-3002485

Covered in #2095


How do I set dependencies for pytest cases across files

I would like to set dependencies across Pytest test cases such that:
foo.py::test_A executes first
and
bar.py::test_B executes next
followed by
foo.py::test_B executes in the end.
With pytest.mark.dependency I am able to achieve the first two steps of executing foo.py::test_A and bar.py::test_B. However, the pytest execution never comes back to foo.py::test_B to complete the test and is completely skipped in the test runs. What I would like to do is be able to move across different files to run tests based on dependencies.
Is there a way to deterministically set dependencies across multiple files to ensure all tests are run in an order as above?

Closing - a related dependency question was meant for the SAI community and not DASH