Fix - Remove @expensify.sms from SMS mentions

Details

Fixed Issues

$ https://github.com/Expensify/App/issues/33902
PROPOSAL: https://github.com/Expensify/App/issues/33902#issuecomment-1875886313
Tests

Precondition:
Run npm i to install the recent  changes on expensify-common

Go to any room and type @
Select a user with phone number login
Verify that the phone number inserted in the compose doesn't have the sms domain suffix @expensify.sms
Send message and verify that the phone number is correct mention doesn't have the suffix and hover hover it and check the tooltip doesn't have it too
Click on it and verify the profile page displays the phone number without the suffix
On the system message click on invite the user to the room and on the message that indicates the user is invited check the tooltip displays without the suffix and click on it and verify the details page displays it without the suffix

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

Offline tests

QA Steps

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

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 approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[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(themeColors.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 form input styles:

[x] I verified that all the inputs inside a form are aligned with each other.
[x] I added Design label 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/38649957/e4526c7b-cadc-49a8-9305-9ed983048ca6

Android: mWeb Chrome

https://github.com/Expensify/App/assets/38649957/f1a8f3d1-a641-4346-b219-333798f2ef58

iOS: Native

https://github.com/Expensify/App/assets/38649957/780f3a9d-7768-4ad8-bce9-4326287fc94d

iOS: mWeb Safari

https://github.com/Expensify/App/assets/38649957/ff7eb454-371b-4fb2-a757-57836299afcc

MacOS: Chrome / Safari

https://github.com/Expensify/App/assets/38649957/93de4b5e-8d0b-4656-bb16-b439bd3d44be

MacOS: Desktop

https://github.com/Expensify/App/assets/38649957/7912395f-c7b8-4f54-a09e-506d1e38aa74

@c3024 @jasperhuangg There are places I used formatPhoneNumber on display names this is because in cases where the user has no display name BE was populating it with the login so the sms suffix was appearing in profile page or tooltips.

I mean the disadvantage of this is if the user inputs something that resembles a phone number it would format it too but there is already an instance we have used this like here
https://github.com/Expensify/App/blob/28f2bdf414d2c7def14b36bb373bb9dc828d6a54/src/pages/RoomMembersPage.tsx#L192-L193
otherwise the data BE returning should be fixed.

The failing tests are from main

@FitseTLT
Changes look good. 👍
Yes, we use formatNumber extensively. I think a user sending some message resembling a phone number gets formatted with this but it is something that cannot be avoided IMO.
I think we should remove @expensify.sms everywhere on the frontend. These still have the sms part.

This can be fixed by adding formatNumber for displayName here
https://github.com/Expensify/App/blob/0c098039f1615c2e1a3ea5b5499756d0bc9d18b8/src/libs/ReportUtils.ts#L1683

We should add formatNumber for result.alternateText at these three places
https://github.com/Expensify/App/blob/0c098039f1615c2e1a3ea5b5499756d0bc9d18b8/src/libs/SidebarUtils.ts#L328
https://github.com/Expensify/App/blob/0c098039f1615c2e1a3ea5b5499756d0bc9d18b8/src/libs/SidebarUtils.ts#L330
https://github.com/Expensify/App/blob/0c098039f1615c2e1a3ea5b5499756d0bc9d18b8/src/libs/SidebarUtils.ts#L357

Add formatPhoneNumber here
https://github.com/Expensify/App/blob/0c098039f1615c2e1a3ea5b5499756d0bc9d18b8/src/components/SelectionList/UserListItem.tsx#L84
and here
https://github.com/Expensify/App/blob/0c098039f1615c2e1a3ea5b5499756d0bc9d18b8/src/components/SelectionList/UserListItem.tsx#L96
Feel free to make different changes if there are better ways.
Please fix conflicts and merge main. There are no typechecks failing on main now.

I suspect that the reason the BE is returning the displayName same as the login is to avoid Hidden on display b/c when the display name is empty we display Hidden
One approach I suggest is to only formatPhoneNumber or removeSMSDomain when the display name is same as login and the login isSMSLogin here
https://github.com/Expensify/App/blob/450d460b00595c57ebd1ad6842c7975acc192903/src/libs/PersonalDetailsUtils.ts#L27-L28

I suspect that the reason the BE is returning the displayName same as the login is to avoid Hidden on display b/c when the display name is empty we display Hidden One approach I suggest is to only formatPhoneNumber or removeSMSDomain when the display name is same as login and the login isSMSLogin here
https://github.com/Expensify/App/blob/450d460b00595c57ebd1ad6842c7975acc192903/src/libs/PersonalDetailsUtils.ts#L27-L28

@FitseTLT I think this is a sound approach, thanks for proposing!

@c3024 friendly bump on the review–we'd like to avoid conflicts where possible.

@jasperhuangg I had reviewed the PR. Changes look fine but there are a few places where the @expensify.sms still remains.
ReportScreen header, LHN username and last message text, and Search results usernames and last message texts need to be fixed as mentioned in this comment.
Comparing username and login to remove the @expensify.sms works for the header detail and username details. But the last message texts should be stripped of the sms part with the formatPhoneNumber in all cases.

@c3024 Got it, sorry I had assumed that we had already addressed those fixes, appreciate you being thorough.
@FitseTLT please prioritize fixing those other parts of this PR.

@c3024 U can proceed

@FitseTLT
Still not fixed for Search

@c3024 Updated

@c3024 Updated

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 form input styles:

[ ] I verified that all the inputs inside a form are aligned with each other.
[ ] I added Design label 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

@FitseTLT sorry, conflicts–do you mind fixing them?

@FitseTLT sorry, conflicts–do you mind fixing them?

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.

🚀 Deployed to staging by https://github.com/jasperhuangg in version: 1.4.51-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production by https://github.com/luacmartins in version: 1.4.51-3 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅


Permissions specs

The specs for managing a user's permissions.

The technical details look pretty good to me, just a bit of nitpicking on the specs layout and wording.


Update to cfg.toml - adding myself to "try" list

:pushpin: Commit bc25e90 has been approved by jdm

@bors-servo: r+

:hourglass: Testing commit bc25e90 with merge 6f705d5...

:broken_heart: Test failed - travis

@metajack Any idea what's up with https://travis-ci.org/servo/saltfs/jobs/101849039 ?

@jdm looks like a travis networking error.

@bors-servo retry

:hourglass: Testing commit bc25e90 with merge 3680e30...

:sunny: Test successful - travis

yay!


4/12/2019 Publish

Docs Build status updates of commit ddb4817:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs-ref-conceptual/azure-cli-extensions-list.md
:white_check_mark:Succeeded
View (azure-cli-latest) View (azure-cli-2017-03-09-profile) View (azure-cli-2018-03-01-hybrid)

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


refactor: type virtual:server-routes

#557  👈
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @hi-ogawa and the rest of your teammates on  Graphite


Enable python3 build

Hi Simon,
I was able to build on windows using msys2 environment. Only thing to change was this python script to run with python 3.
Best,
Oliver

Looks good! Thanks for the PR.
What else was necessary to build on Windows? Did you get the arm toolchain directly from the webpage? I rarely use Windows for development so I'm just curious.

I use gnu-mcu-eclipse and msys2, neatly integrated into vscode (see https://github.com/SloBloLabs/performer/commit/7f2572c0755662b474cde7ef856a25605d1d0e10).
You need to use cmake from msys2 to make it work. As msys2 comes with python3 by default, I was not able to buid without this change, as md5 package is deprecated and encoding issues take higher attention. What I mean by that is that e.g. the sequencer.bin file was initially read using utf-8 encoding in line 16, but this collided with unrepresentable characters in the bin file. Thus I switched to binary read and write in the patch.
My app files turn out to be slightly slimmer than the originals - around 20kb - due to different compiler versions, I guess.


Write a Rust program to merge two strings

Description
Write a Rust program to merge two strings
Input  : ABC DEF
Output : ABCDEF

How to contribute

Save the solution in merge_two_strings.rs file
Add merge_two_strings.rs file in program/merge-two-strings folder

!assign


Use private git repository

Problem Summary
Currently, zplug can be used with some famous repositories and local files.
I have an own gitlab server, and I would like to use it.
I also note that in some servers I am using, https connection has limited.
Therefore, I would like to chose git or ssh protocol.
Could you implement the from command to expand such situations?

+1 from me. I use a private git server to distribute my config files between different computers as well, and it would be great to use zplug to update the configuration etc. Basically the same functionality you already have with github etc., just without the hardcoded prefix.

Is zplug open to adding this feature via PR? Is anyone currently working on this?
What would be the preferred interface?
zplug private/repo
zplug private/repo from:gh-private
zplug git@github.com:private/repo.git from:git

Hi @razor-x ,
just a small comment: I think this feature would best not be implemented for private github repos, but rather for any kind of private git server. The OP mentioned a private gitlab server, which would not be<EMAIL_ADDRESS>The third syntax line would work, if you could also write
zplug user@wherever.xyz:prefix/my-privat-repo.git from:git

@stweller I agree. I was honestly surprised this was not already a feature! I think this would be pretty simple to implement by reusing most of the github functions (e.g., how the bitbucket source is written).


Instances are no longer reset properly when deploying

While working this week on #40 and fixing demo.plone.org because we forgot to pin plone.distribution and other packages, I noticed the instances don't get reset properly when doing a deploy to the cluster with docker-stack-deploy.  I had to remove the stack before deploy to see my plone.distribution fixes getting deployed.
@ericof did something clever in the past by generating a SEED variable, passing this in to the Dockerfiles and then generating new images every day.  But this no longer seems to work reliably.  Also, it costs a lot of CI/CD energy and we stuff our organisational plone GHCR account with new images.
Can we do something smarter here?  Maybe using a docker cronjob solution like https://github.com/crazy-max/swarm-cronjob to  restart our backend demo containers.   Then  we let the container do a create site  on startup in the docker-entrypoint.sh and then start the site could solve our problem.
[side note: I also don't like the current 12 hour period between restarts from a security perspective. And the reset is not reliable at the moment, so created 'demo' content could survive for days.
What  is happening now is that we call the create-site at the end of the docker file, so the site state is in the generated container image.
The  downside: when we regenerate the site (with plone.distribution) on every container startup is that if for whatever reason the container is roaming to another worker the instance is reset.  So people testing the site with some demo content would loose their content at an unpredictable time if the cluster decides to restart the image.   But that should be more exception than default.
Thoughts? Then I'll start implementing this.

I like the idea of resetting the content when the container starts. It'd be nice to trigger a new docker stack deploy so that the new container fully starts before the service routes traffic there (to avoid downtime). We'll need to tweak the startup time to be sufficient for generating the content. I wouldn't worry too much about people losing content at unpredictable times; it's a demo site.


Update 04_encrypted_kms_fs.rst

Issue #, if available:
Description of changes:
In your sample configurations you refer to this role by the name ParallelClusterInstanceRole. Anyone following your docs exactly may get thrown by this.
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Docs are not handled as part of this package any more..closing..


🗣Oral  - The combination of NLP and Quantitative Investment

AMC Seminar Sign Up

Link to previous seminar meeting minutes issue:

#176
1. Oral / Poster Selection

Select one of the following selections for Oral or Poster:

Oral should be prepared for 15 - 30 minutes, and no more than 45 minutes, including Q/A.
Posters should be prepared for 5 - 10 minutes, and no more than 15 minutes, including Q/A.

[x] 🗣 Oral (15 MIN)
[ ] 📰 Poster (5 MIN)

2. Paper Information

Please fill the follow table and provide all the information as many as possible, for sharing with others better. (delete the rows that you did not fill)

Paper
Information

Name
No paper title, it is a project

Recommendation
The basic knowledge of practical application in finance

Prior Knowledge
Microeconomics, Macroeconomics, stock tradings, LSTM

Year
2018

Author
Zhengyuan Zhu, et. al.

GitHub
https://github.com/824zzy/Quantitative_Model_v3.1

Blog
To be continued

3. After Party 🍻

Everyone will be welcome. You can join or not join as you want (not required by the AMC), and change your mind at any time.

After Party will be started right after all the meeting agenda had been fulfilled.
We will find a bar and drink beers and talk whatever we want. (we can expect that it will be related to meeting topics of the day)
The bill will be paid AA

[x] 🍻 YES! I'll definitely join the After Party!
[ ] 🤔 Maybe. I'd like to decide later.
[ ] 🛌 No, I'm afraid not this time.

4. New Friend

Whether you have a new friend comes with you to the club.

[x] 👥 I'll bring a new friend
[ ] 👤 There's no new friend from me

Please fill the following table for the new friend sign up(if any), or delete it.

Referrer
Newcomer
Bio

@824zzy
@ZavierHan
计算机学院研究生一年级，研究方向为异构计算。

@824zzy
@TODO
TODO

@824zzy
@TODO
TODO

Artificial Intelligence & Machine Learning CLUB, 2018 - 2019 AI ML Club - AMC Member Manual

Dear Zhengyuan @824zzy,
Please allow me to attend our seminar this week with your permission.
Thank you very much!

My pleasure if you can review my pull request 😄

And make server run smoothly!~


Updated .vscode/settings with GitHub Funding schema

Current dependencies on/for this PR:

main

PR #476   👈

This comment was auto-generated by Graphite.


[Request-for-external] Table 7000019 Fee Range - GetTotalPmtOrdCollExpensesAmt

Can you remove [Scope('OnPrem')] from procedure GetTotalPmtOrdCollExpensesAmt in Table 7000019 Fee Range?

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. Please do not reply to this, as we do not monitor closed issues. If you have follow-up questions or requests, please create a new issue where you reference this one.


feat: Make use of CSS layers

Relates to #422, #338

Created component mixin that applies component layer and normalize CSS
Restructured styles and split them into global and mixins. This avoid repeated includes of global styles.
Applied mixin for all components and removed redundant styles
Updated screenshots as the fieldset had an unintentional margin

Added developer documentation in https://github.com/SchwarzIT/onyx/wiki/Contribution-Coding-Guidelines#css-layers

The bundle sizes is increasing by around 100kb. Is it possible that all the layers styles are redundantly copied to every component?

The bundle sizes is increasing by around 100kb. Is it possible that all the layers styles are redundantly copied to every component?

Yes, the include happens for every component. The 100kb increase is only for uncompressed build outputs. We could optimize this with some build scripts, but the payoff is not worth it right now.

Yes, the include happens for every component. The 100kb increase is only for uncompressed build outputs. We could optimize this with some build scripts, but the payoff is not worth it right now.

Hmm I think we should find a way to prevent this. 100kb is a lot in comparisson for the benefits we get when using the layers

@larsrickert As discussed, added follow-up issue to reduce CSS duplication: https://github.com/SchwarzIT/onyx/issues/812


Use Tarpaulin for Tarpaulin?

Would be neat seeing Tarpaulin gather code coverage on itself in Travis. Or are there any obstacles in "testing the tester"? Not sure how binary-level coverage testing works.
Let me know if this is a no can do. Let me know if you want help with this in some way.

So this is essentially a duplicate of #44. Currently, I can run tarpaulin on all my unit tests but the integration tests don't work. That's because when the test runs, tarpaulin is running a test binary that is running tarpaulin running a test binary. One of these tarpaulin instances steals signals meant for the other, or maybe they just get lost.
If #44 was sorted tarpaulin would be able to tarpaulin itself. It is something I'd appreciate help on because I've seen no evidence of this use case covered in the ptrace documentation.
But yeah if you want to move any discussion to #44 I'll close this as a duplicate :+1:

Missed the previous issue. Sorry for making noise. :)


Screwdrivers & Crates

Likely has to do with a priority in placing the screwdriver in the crate like a regular item and then it triggering the deconstruction. Screwdriving (or drilling) a crate will place the screwdriver in it first, and then start deconstructing. If you do multiple, same happens but the doafter briefly cancels them all before going back and continuing all of them.
If you don't know what I mean, just try to screwdriver open crates. It's rather annoying but doesn't really effect much

this is an extremely common issue stemming from the fact that tools aren't predicted at all. This happens with tables, lockers, crates, and probably more things whenever you try to deconstruct them.

Update: Screwdriver now just goes in the crate and it just won't deconstruct at all.


Malfunction of the context menu: "Inspect UI5 control"

Hi there,
I am experiencing an issue with the context menu "Inspect UI5 control". It is supposed the component selected in the view should be automatically highlighted in the XML tree window of the extension but it does not happen.
I have tested the scenario with several Fiori applications and disabling all chrome extensions except "UI5 Inspector" but when I select the context menu option "Inspect UI5 control" over any component, it never discovers the location of that component in the extension's XML tree.

Thanks,
José Carlos

Duplicate of #184

Thanks @Frank683

Hi @JoseCarlosGZ, as described in mentioned issue, this was fixed but not yet released to the chrome web store. To consume the fix earlier, follow the steps described in the duplicated issue. Release to the chrome store is expected soon.
Kind Regards,
Dobrin


add helm repo update

Right now, there's no possibility in updating the repo

I don't think this is needed anymore, helm repo add seems to download the latest repo index anyway - so every run starts with an updated repository?

This is the default behavior for helm now and can probably be closed, see kubernetes/helm#1142
From the PR's author:

Just as a reminder: this PR changes the default behaviour for helm repo add so that it updates existing repository entries. I've also added a --no-update flag for those who prefer the old behaviour.


Allow EL to suggest local execution

This PR adds a boolean field shouldOverrideBuilder to engine_getPayload. This provides a way for the EL to indicate that the CL should consider using this payload and not rely in any externally provided one. Arbitrary heuristics are allowed, and the CL may or may not use this information.
Rationale: We have currently a circuit breaker to prevent using a relayer in case blocks are missing under certain scenarios. These scenarios are purely based on consensus data. I propose that we let the EL weigh in this decision based on its local view of execution data. Examples of this are

A particular transaction, paying much more than the usual priority fee, has not been included for several slots
A particular transaction has been included in many blocks and those have been reorged out systematically.
A particular transaction has been included in blocks that have been invalid systematically.

EL clients that do not want to implement any changes can simply return false in this field and behavior would be as before.

A possible extension to this is also to return the "reason" of the override

We've just had our last testnet in theory, is there a critical issue this is solving? Otherwise can it wait till next fork?

I agree with @ralexstokes and @rolfyone views.
I am not against this change, but I do think that we should be mindful when adding "extra" or "non-critical" information on the interface, especially when the core protocol does not require it.
And the timing isn't great as we are all ready and set for Capella. Adding new non-critical changes atm to me only adds unnecessary risk to the fork.

You could also achieve the same kind of signalling that a local block should be used by giving it an absurdly high value. Not as conceptually clean obviously but would be an effective way to show these kinds of censorship detection are viable before we change the protocol to support them.

Could we make it an optional field? So missing or null value would be considered false? Then we could add it at any time without the need to bump the version.

having an optional field was my first reaction, but @mkalinin mentioned that even if the field is optional we should bump the version since the semantics is different. I am not an API person, but since implementing this is absolutely trivial, I would want to see this before Cancun, and of course not necessarily right now. If there's a path for clients to ship this without a hardfork I would advocate for this and it seems that bumping the version is the easiest way to do that.

No if you make it optional in the shangai version :)

Included into the Cancun spec by https://github.com/ethereum/execution-apis/pull/425


[Bug] Dark/Light mode button is not placed proper position #536

Fixes Issue🛠  #536

Closes #536
Description👨💻

Toggle button position is changed
Type of change📄

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)

How this has been tested✅

Checklist✅

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have added demonstration in the form of GIF/video file
[x] I am an Open Source Contributor

Screenshots/GIF📷

Fix the button position in every pages, it is only fixed in home page @AftabMankapure

pls check this PR

Fix the button position on every components cards page as well.

And why the menu items went little up, fix this @AftabMankapure

Fix the 2nd mentioned change in the above comment @AftabMankapure

menu is not going upper when we hover on it it match the size of toggle button
if we make same with of menu to toggle then after hover to menu it will go outside of nav bar

Navbar should not be altered in any case as it is now in the website, you can decrease the size of the button slightly and make sure not to increase the height of the navbar @AftabMankapure

I have fixed and merged ✨ @AftabMankapure


Refactor the code to separate the "generating" code from run time matching code better.

will fix at this time - different refactoring coming up.


Fix the quilt docker hub readme

https://hub.docker.com/r/quilt/quilt/
It's using the github README, which ends up looking a bit odd.  We'll nee to put it in its own directory to give it its own README.

Migrated to Trello.
https://trello.com/c/gf9I1yEn


Trying to figure out why the patch is failing to apply in CI

Looks like the patch works now
Hmm...  Looks like a unified diff to me...
The text leading up to this was:
--------------------------
|--- a/qtwebengine/src/3rdparty/chromium/third_party/webrtc/webrtc.gni     2023-09-28 16:19:25.269453200 -0700
|+++ b/qtwebengine/src/3rdparty/chromium/third_party/webrtc/webrtc.gni     2023-09-28 16:22:05.654520200 -0700
--------------------------
Patching file qtwebengine/src/3rdparty/chromium/third_party/webrtc/webrtc.gni using Plan A...
Hunk #1 succeeded at 179.
done


SDKMAN

a selfupdate to sdkman would be nice :-)
http://sdkman.io/

This is on my personal backlog but currently I have no time left for this.
With the renaming of posh-gvm to posh-sdkman (or sdkman-posh) the repository will also move to the SDKMAN organization and therefore I need to do some testing (the client currently reads a file from this repository to check for new versions).
I also have to check if the update mechanism is flexible enough for renaming the the dot-folder; probably it will take two self-updates or something like this.
Therefore the renaming will have to wait a bit. Luckily everything is still working so that the name is only a inconvenience.

I do agree - btw: posh-gvm is awesome! :-)


Work with Marcy to install a pre-commit hook that runs black

@sarponce Let me know when you are free so we can do this

c2e3bb911bcd79ec7a3266b748ab7fd3e2f1bfe

fc2e3bb911bcd79ec7a3266b748ab7fd3e2f1bfe
1243f72b2205ebc854f070e3d5e6cfaa985424ea

Opening this back up:
One of these things need to happen.

@sarponce  do a PR on this from whatever the main branch. And close issue when that PR is merged to main.
If you and @walkerh  decided this is a part of a bigger effort (a PR solving many issues), then keep this open until that PR is approved and merged to main. In this case, i see you are doing all this in the config branch. Keep this open until config branch is merged to main.

@walkerh  if you say otherwise or have any other ideas

Resolved by #25.


Fortran physics diagnostics not always saved out

I ran into an issue in which some recent prognostic runs completed running over an entire year but only had sfc_dt_atmos data saved for the first few segments.
ex.

When we looked at the logs it appeared that the fortran diagnostics for the sfc_dt_atmos netcdfs was not being output after the initial first 5 segments.
I added an example in this debugging branch that reproduces the issue: make enter_prognostic_run, cd workflows/prognostic_c48_run/reproduce-issue, ./test.sh. This executes two prognostic runs: one using the IC from one segment into the longer prognostic run, which successfully saves out the sfc_dt_atmos.tile*.nc diagnostics, and another which uses the IC from later on after this data stops being saved, which does not save these netcdfs. The fv3config.yml in the reproducible example is copied directly from the prognostic run used for the ICs, with the exception of changing the layout to (1,1) and shortening the total run time.
Another thing to note is that multiple prognostic runs using different ML models all stopped saving the sfc_dt_atmos netcdfs at the same segment of the run.

@AnnaKwa ah I think I may know what's going on.  Try setting atmos_model_nml.fhmax to something larger than 1024.0 (ideally it should be at least the number of hours you plan to run the entire simulation for, not just a single segment).  I believe the fortran model will stop writing out physics diagnostics once it has run fhmax total hours (this is consistent with when things stopped in your run).  I think the reason we did not see this before was https://github.com/ai2cm/fv3config/issues/147.
Assuming that works, we should probably pick a better default for that parameter.

Great, thanks- it was exactly that. I'll update the defaults to use a bigger number.

See ai2cm/fv3gfs-fortran#302 for the implementation of a flag that would allow for the indefinite output of physics diagnostics at a regular frequency.


Feature: slice versions

Is there any plan to add functions to operate on string slice, instead of one string?

No plan right now. I'd like to know what's your requirement. It could be included in this package if feasible.

OK, I see. If there is no strong reason to add new api, I would prefer not to do so. Thanks for your input anyway. :)


Add option to use temporary table for the intermediate block outputs for SQL block

Original thread

Hey, hope everyone is having a great week!
So in a sql block it will convert the pandas df to a table. Is there anyway to change that table to either a temporary table or a transient table? I use snowflake and want to get around having a failsafe storage created each time that table is created/replaced

Slack Message

Not sure what library Mage is using to write the df's to snowflake.
But it looks like here that the snowflake-connector-python was updated to be able to take in a create_temp_table  boolean.
I think that might solve the problem?

Hello, in order to assist further, we would need some additional information. Could you please clarify how the conversion from pandas dataframes to SQL tables is currently handled in the codebase? Specifically, is there a particular part of the codebase where this conversion is happening, or does this rely on external tools or services?

The conversion from pandas dataframe to SQL table happens here: https://github.com/mage-ai/mage-ai/blob/master/mage_ai/io/snowflake.py#L209

Any word on this? It seems that there was a PR made, but was closed and not merged.


Vimeo: ignore album in video URL

Hi.
https://github.com/rg3/youtube-dl/blob/master/youtube_dl/extractor/vimeo.py#L577 here some little bit wrong logic.
We have protected album, right?
But it not necessary we have protected video in protected album. :)
URL: https://vimeo.com/album/[albumId]/video/[videoId].
albumId is some of protected albums, videoId is public. We should ignore album b/c we already know video ID: https://vimeo.com/[videoId].
So album should be ignored in video URL.

Post an example URL.

Closing as no response for a long time.


Zombies react to bullet impact

Is this possible with Godot?
Also what about ragdoll physics on death? What do I do to get that working?

Just looked into the ragdoll system https://docs.godotengine.org/en/stable/tutorials/physics/ragdoll_system.html
Didn't get good results. The zombie became 1000x bigger and started spassing out. I'm just going to forget about the ragdoll system.


[Feature] Unify HTTP Source Connector and eventmesh-webhook module

Search before asking

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

Feature Request
For the eventmesh-webhook module, it currently has these shortcomings:

It only supports GitHub webhook protocol for now and it needs to support a more general protocol;
Its implementation is too unique in EventMesh, which is hard to manage and extend
It has some redundancy in functionality with the HTTP Source Connector and GitHub Source Connector, which needs to be revamped.

This issue brings about a change from thinking of the Runtime as an HTTP Webhook server to thinking of the Connector as an HTTP Webhook server for enhanced extensibility and manageability.
This issue can be resolved in the following steps:

[ ] Use the existing implementation of Webhook as an enhancement to the HTTP Source Connector, needs to be able to support the user's own implementation of a customized Webhook protocol.
[ ] Supporting GitHub webhook protocol may supersed the webhook function of GitHub Source Connector, which means that there's no need to support Webhook in https://github.com/apache/eventmesh/issues/4416.
[ ] Deprecate eventmesh-webhook module and its special usages in eventmesh-runtime.

Are you willing to submit PR?

[ ] Yes I am willing to submit a PR!

Code of Conduct

[X] I agree to follow this project's Code of Conduct *

@Pil0tXia I want to do it! Can you please assign it to me?

@scwlkq You may start understanding eventmesh-webhook module from InsertWebHookConfigHandler class.


Update .pre-commit-config.yaml

adding shell check to openverse repo

Yep, I'll do that.

hey @dhruvkb, can you check the why error still persist? or shall I just disable that error by # shellcheck disable = SC1091

I'll check soon 👍

Thanks @MustkimKhatik, we'll merge it once it has another approval.

Sure I'll look for other repos in a while.


Add functionality to Load/Unload Modules on /tb load presets

right now if you /tb load preset and a module is unloaded it does not get loaded proper.
similar thing happens when you have a module loaded and then /tb load preset and the preset have it unloaded... sometimes work, sometimes not, depends on the module.
delegating config status to loaded module checkbox gives problems as it is with different configs.

Thanks for the ticket, but this is difficult to understand. Do you have an example of a module that doesn’t unload properly?

the problem is of more occurrence when loading a preset that uses a module that has been deactivated beforte in the default config
lets say...
you have pcons module deactivated on stamdard layout, trhen /tb load config1, who has it enabled.. well in that case it does not load the module.
"Do you have an example of a module that doesn’t unload properly?" ill have to make tests again, it happened to me when i was configuring my presets, not every module had that problem, let me do some more tests and ill add the info here.


New futures markets

Description
This PR cleans up instances of the new futures markets on v2. It adds icons and fixes issues with truncated names, on the markets and positions tables, as well as the markets dropdown.
Related issue
N/A
Motivation and Context
This PR prepares for the launch of new futures markets on mainnet.
How Has This Been Tested?
N/A
Screenshots (if appropriate):

we should map this to sOIL.png and rename to OIL-PERP

avax, matic and oil missing from this table

Also showPagination does not seem to work for this table? Seems to be limited to 5 markets, while there are now 7 markets on Kovan. We should decide to either show all 7, or implement the pagination.

avax, matic and oil missing from this table

showPagination does not seem to work for this table. Table is limited to 5 markets, while there are now 7 markets on Kovan. We should decide to either show all 7, or implement the pagination.

we should just show all 7

Asset names missing here- should be "X Perpetual"

Asset names missing here- should be "X Perpetual"

same here

icons showing up in the dropdown but not in the selector itself

we are still parsing the first letter of the asset in the market info bar


[BUG] Active Directory LDAP integration does not work

What is the bug?
Active Directory LDAP integration does not work !

What is your host/environment?

OS: CentOS/Redhat 7.9
OpenSearch Version: 2.8.0
OpenSearch Security Version: <IP_ADDRESS>

How can one reproduce the bug?
First, configure AD integration part here /usr/share/opensearch/config/opensearch-security/config.yml like that:
config:
  dynamic:
    http:
      anonymous_auth_enabled: false
    authc:
      ..................
      ldap:
        order: 1
        description: "Authenticate via LDAP or Active Directory"
        http_enabled: true
        transport_enabled: true
        # ------------------------
        http_authenticator:
          type: basic
          challenge: false
        # ------------------------
        authentication_backend:
          type: ldap
          config:
            enable_ssl: false
            enable_start_tls: false
            enable_ssl_client_auth: false
            verify_hostnames: false
            hosts:
            - <ldap_server>:389
...

Second, start the instance and try to make a basic check
curl https://localhost:9200 -ku <ldap_user>:<ldap_password>

After that you will get in the log the following messages:
[2023-07-06T07:57:41,849][WARN ][c.a.d.a.l.b.LDAPAuthorizationBackend] [opensearch] Unable to connect to ldapserver <ldap_server>:636 due to OpenSearchException[Empty file path for plugins.security.ssl.transport.truststore_filepath]. Try next.
[2023-07-06T07:57:41,851][WARN ][o.o.s.a.BackendRegistry  ] [opensearch] Authentication finally failed for <ldap_user> from <IP_ADDRESS>:19811

The first bug is that despite of two parameters below in the config it tries to connect to LDAP server trough 636 port Unable to connect to ldapserver <ldap_server>:636

enable_ssl: false
hosts: - <ldap_server>:389

The second bug is related to next message in the log
OpenSearchException[Empty file path for plugins.security.ssl.transport.truststore_filepath]

When you update you SSL\TLS configuration  to use keystore/trustedstore and thus to use plugins.security.ssl.transport.truststore_filepath option then you will met the issue is opened here
https://github.com/opensearch-project/security/issues/2934

[Triage] Hi @Demon-DK, thank you for taking the time to file this issue. Someone will review your message shortly and share their findings.

LDAP isn't working for me too. When I go to the overview at /app/security-dashboards-plugin#/auth there is nothing from my configs. It seems the problem is that config/opensearch-security/config.yml is not read.

Hello, is this a problem with 2.9.0 as well?

@LucasCiocari I see my configuration now in 2.9.0! 🎉


DTU demo scene is flipped upside down

Hi,
I tried to reproduce the "Train your first model" steps in the README, i.e. I executed the following command:
ns-train neus-facto --pipeline.model.sdf-field.inside-outside False --vis viewer --experiment-name neus-facto-dtu65 sdfstudio-data --data data/sdfstudio-demo-data/dtu-scan65

However, the input images are loaded upside down. Hence I could not reproduce the viewer state that is shown in the README image https://github.com/autonomousvision/sdfstudio/blob/master/media/viewer_screenshot.png. As the viewer does not allow a full 180 degree flip, it was not possible to view the scene in the correct orientation.
I could fix the problem by setting auto_orient in the file nerfstudio/data/dataparsers/sdfstudio_dataparser.py to True. However, I'm not sure if this is a bug or intended, hence I opened this issue.

Hi, I think that's not the bug. It's because DTU dataset has different orientations with viewer and you can set auto-orient to True to the end of your training command --auto-orient True. We set the default value of auto-orient to False to make it consistent with pervious work (e.g. volsdf and monosdf).

Ok, I was not aware that this is available as a command line parameter. Thanks :)

Hi, I think that's not the bug. It's because DTU dataset has different orientations with viewer and you can set auto-orient to True to the end of your training command --auto-orient True. We set the default value of auto-orient to False to make it consistent with pervious work (e.g. volsdf and monosdf).

ns-train neus-facto --pipeline.datamanager.train-num-rays-per-batch 1024   --pipeline.model.sdf-field.use-grid-feature False  --pipeline.model.mono-depth-loss-mult 0.5 --pipeline.model.mono-normal-loss-mult 0.05   --vis wandb --pipeline.model.sdf-field.inside-outside False --pipeline.model.background-model grid --trainer.steps_per_save 5000  --trainer.steps-per-eval-image 5000  --trainer.max-num-iterations 300000 --experiment-name hasmaskmodifyvidbat2 sdfstudio-data --data /workspace/processdata/hasmaskmodifyvidbat --auto_orient True


Update cluster chart to v0.17.0

What this PR does / why we need it
Update cluster chart to v0.17.0. This updates:

cilium app from v0.21.0 to v0.22.0.
network-policies app from v0.0.4 to v0.1.0.

Checklist

[x] Update changelog in CHANGELOG.md.

Trigger e2e tests

/run cluster-test-suites

Just in case after rebase (I really don't wanna debug potential other issues on main 😬\
/run cluster-test-suites


GH-69: Honor Boot Retry Properties in Producers

Fixes #69
Add a RetryTemplate to producer RabbitTemplates if spring.rabbitmq.template.retry.enabled=true.
cherry-pick to 1.2.x

... and cherry-picked.


Update maven groupId

fix(maven groupId): Updated the groupId to point to the correct location.
Fix for #12755.

Can one of the admins verify this patch?


Ability to post to MULTIPLE Text Channels using Webhooks!

I would like the ability to possibly post using MULTIPLE Webhooks. Or using one webhook instance for MULTIPLE Text Channels. For example: Text Channel A is for Master/Full Release Notes. While Text Channel B is for Pre-Alpha or some other branch of the game!

I'll look into this! Thanks for the suggestion! :)


[blog-new-training] fix typo

This PR fixes a typo in the training announcement blog.
What type of PR is this?
/kind content
Any specific area of the project related to this PR?
/area blog

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by: pmusa
Once this PR has been reviewed and has the lgtm label, please assign vjjmiras for approval. For more information see the Kubernetes Code Review Process.
The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

content/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: fe18bd9366b8fde6fc4fcab0934551f70359e661

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: Issif, pmusa
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:

content/OWNERS [Issif]

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


Picking after adding a reference channel is broken for Epochs

First reported on the forum at https://mne.discourse.group/t/can-not-reorder-channels-after-adding-a-reference-channel/5180
Works:
# %%
import mne

sample_dir = mne.datasets.sample.data_path()
sample_fname = sample_dir / 'MEG' / 'sample' / 'sample_audvis_raw.fif'

raw = mne.io.read_raw_fif(sample_fname).crop(tmax=10).load_data()
raw.add_reference_channels(['REF'])
raw.pick_types(eeg=True)

Doesn't work:
# %%
import mne

sample_dir = mne.datasets.sample.data_path()
sample_fname = sample_dir / 'MEG' / 'sample' / 'sample_audvis_raw.fif'

raw = mne.io.read_raw_fif(sample_fname).crop(tmax=60).load_data()
events = mne.find_events(raw, stim_channel='STI 014')
epochs = mne.Epochs(raw, events=events, preload=True)

epochs.add_reference_channels(['REF'])
epochs.pick_types(eeg=True)

and yields:
IndexError                                Traceback (most recent call last)
Input In [30], in <cell line: 12>()
     10 epochs = mne.Epochs(raw, events=events, preload=True)
     11 epochs.add_reference_channels(['REF'])
---> 12 epochs.pick_types(eeg=True)

File <decorator-gen-43>:12, in pick_types(self, meg, eeg, stim, eog, ecg, emg, ref_meg, misc, resp, chpi, exci, ias, syst, seeg, dipole, gof, bio, ecog, fnirs, csd, dbs, include, exclude, selection, verbose)

File ~/Development/mne-python/mne/channels/channels.py:681, in UpdateChannelsMixin.pick_types(self, meg, eeg, stim, eog, ecg, emg, ref_meg, misc, resp, chpi, exci, ias, syst, seeg, dipole, gof, bio, ecog, fnirs, csd, dbs, include, exclude, selection, verbose)
    597 """Pick some channels by type and names.
    598
    599 Parameters
   (...)
    672 .. versionadded:: 0.9.0
    673 """
    674 idx = pick_types(
    675     self.info, meg=meg, eeg=eeg, stim=stim, eog=eog, ecg=ecg, emg=emg,
    676     ref_meg=ref_meg, misc=misc, resp=resp, chpi=chpi, exci=exci,
    677     ias=ias, syst=syst, seeg=seeg, dipole=dipole, gof=gof, bio=bio,
    678     ecog=ecog, fnirs=fnirs, csd=csd, dbs=dbs, include=include,
    679     exclude=exclude, selection=selection)
--> 681 self._pick_drop_channels(idx)
    683 # remove dropped channel types from reject and flat
    684 if getattr(self, 'reject', None) is not None:
    685     # use list(self.reject) to avoid RuntimeError for changing
    686     # dictionary size during iteration

File <decorator-gen-46>:12, in _pick_drop_channels(self, idx, verbose)

File ~/Development/mne-python/mne/channels/channels.py:855, in UpdateChannelsMixin._pick_drop_channels(self, idx, verbose)
    852     _check_preload(self, msg)
    854 if getattr(self, 'picks', None) is not None:
--> 855     self.picks = self.picks[idx]
    857 if getattr(self, '_read_picks', None) is not None:
    858     self._read_picks = [r[idx] for r in self._read_picks]

IndexError: index 376 is out of bounds for axis 0 with size 376

I agree, let's get 1.1 out the door ASAP!


cluster: backupmanager tolerate controller restore

Previously, bm creation resides in isNewCluster block.
This won't tolerate controller restore case.
We should create it outside.

CI failed.

lgtm


Question: interaction with env

Hei!
Apologies if this is the wrong repository but I have a general question.
Im familiar with agent.based modeling where each object can interact with each other.
In this implementation light interception is possible to calculate using the ray tracer, but can we also calculate temperature, CO2, wind, humidity and etc interactions with the surrouding air/env? if yes, in which node is done?
Thanks!

TLDR: No, it is not available yet. Answer here


[BUG] Get-PnPWebHeader - The property or field has not been initialized. It has not been requested or the request has not been executed. It may need to be explicitly requested.

Reporting an Issue or Missing Feature
When I try to use Get-PnPWebHeader on a group-connected Site, I recieve the following error.
"Get-PnPWebHeader: The property or field has not been initialized. It has not been requested or the request has not been executed. It may need to be explicitly requested."
I tested it on multiple tenants and asked my colleagues to try as well.
Expected behavior
It should return the properties of the Site Header.
Actual behavior

Steps to reproduce behavior
Connect-PnPOnline -Url $GroupConnectedSiteURL -Interactive
Get-PnPWebHeader

What is the version of the Cmdlet module you are running?
2.5.0
Which operating system/environment are you running PnP PowerShell on?

[x] Windows
[ ] Linux
[ ] MacOS
[ ] Azure Cloud Shell
[ ] Azure Functions
[ ] Other : please specify

@FlorianReinprecht  thanks for raising this issue. Has been fixed and will be available in tomorrow's nightly builds as well as the next major version


FRONTPAGE AND A DATABASE SETUP

hi guys, so i used this project at my school but the lecturer said it needed a frontend what i mean is at school there is always a backend where the lecturer inputs the marks or data and the frontpage where the students can only see there marks with no access to alter it..so is it possible to add a frontend??? because to me this seems like a backend..kindly get back to me ..i need assistance my due date is almost near

Hi, yes it's possible. How soon do you need it and is this a paid service?
On Thu, Nov 25, 2021, 11:20 AM FROST03-cyber @.***>
wrote:

hi guys, so i used this project at my school but the lecturer said it
needed a frontend what i mean is at school there is always a backend where
the lecturer inputs the marks or data and the frontpage where the students
can only see there marks with no access to alter it..so is it possible to
add a frontend??? because to me this seems like a backend..kindly get back
to me ..i need assistance my due date is almost near
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/adigunsherif/Django-School-Management-System/issues/34,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AHHL6TFTOP7LFJ2GPOMXTNDUNYEW5ANCNFSM5IYE2DDQ
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

no its just for a school project .but if you can do it how much can you ask for???

Please send me a mail at<EMAIL_ADDRESS>


Buffered tests

Just a wip for #305.  Do not land yet.

These tests produce no output, and should at least produce something.
$ find test/test/*-buffer* -size 1c
test/test/empty-bail-buffer.tap
test/test/empty-buffer.tap
test/test/plan-too-many-bail-buffer.tap
test/test/plan-too-many-buffer.tap
test/test/throw-bail-buffer.tap
test/test/throw-buffer.tap
test/test/unfinished-bail-buffer.tap
test/test/unfinished-buffer.tap

Coverage decreased (-0.6%) to 93.55% when pulling 2aad61c7b00d10c8f881e6e60f02c4f50d739f2e on buffered-tests into c7c21af90a45c08cb853f119cc4df1d22aadf862 on master.

Coverage decreased (-0.6%) to 93.703% when pulling 38712d5b075cb88a990b0ac90978759c7e2661f4 on buffered-tests into b5a18bf32c5671e7aa1055e5e533100e59117583 on master.

Coverage decreased (-0.6%) to 93.703% when pulling f00523d8ccc03f902903ebc56f0ce49e393bf263 on buffered-tests into d49c84071c65cb7dace121d136dcb15fb75c64c4 on master.

Coverage increased (+0.2%) to 93.581% when pulling d5ef88302b3894a368c94b0b87108e5cfbd6e40b on buffered-tests into 81f08e3eebea1e3e59aa4e40b2a610e785e0c119 on master.

Coverage increased (+0.2%) to 93.581% when pulling d5ef88302b3894a368c94b0b87108e5cfbd6e40b on buffered-tests into 81f08e3eebea1e3e59aa4e40b2a610e785e0c119 on master.

Coverage increased (+0.2%) to 93.581% when pulling d5ef88302b3894a368c94b0b87108e5cfbd6e40b on buffered-tests into 81f08e3eebea1e3e59aa4e40b2a610e785e0c119 on master.

Coverage increased (+0.2%) to 93.581% when pulling 9ea5a528cfbcdaffe287a069cdbb4f8100d2bbcf on buffered-tests into 0c8b42665bd412c5ca6943df8a22e297e9e89af7 on master.

Coverage increased (+0.3%) to 93.707% when pulling c40ed06677dbd8876fcad2d5236a64163aaa9af8 on buffered-tests into 0c8b42665bd412c5ca6943df8a22e297e9e89af7 on master.

Coverage increased (+0.3%) to 93.707% when pulling c40ed06677dbd8876fcad2d5236a64163aaa9af8 on buffered-tests into 0c8b42665bd412c5ca6943df8a22e297e9e89af7 on master.

Coverage increased (+0.3%) to 93.707% when pulling c40ed06677dbd8876fcad2d5236a64163aaa9af8 on buffered-tests into 0c8b42665bd412c5ca6943df8a22e297e9e89af7 on master.

Coverage increased (+0.2%) to 93.631% when pulling 2ed6355deebab878cbd0156ba2395855ce21c777 on buffered-tests into 0c8b42665bd412c5ca6943df8a22e297e9e89af7 on master.

Coverage increased (+0.2%) to 93.631% when pulling 2ed6355deebab878cbd0156ba2395855ce21c777 on buffered-tests into 0c8b42665bd412c5ca6943df8a22e297e9e89af7 on master.

Coverage increased (+0.2%) to 93.631% when pulling 8aeb886b72edb0c12d7052fe13ae0ee3194029fd on buffered-tests into 0c8b42665bd412c5ca6943df8a22e297e9e89af7 on master.


reclaim.tcl: don't ask for partial removal

This patch eliminates the possibility for the user to choose which
unrequested/inactive port to remove in the reclaim phase. Now the user
can either remove all ports on none at all.
This was done so we can safely force-remove all ports and avoid asking
confirmation to the user.

Thank you for your contribution!


Added the ability to filter the list of locales in the Remap tab.

With this PR no longer need to scroll through the list of all ~350 locales supported by godot.

With filter

Without filter

Why not putting that in the Localization tab ?

@groud good idea. thank you.
I'll go fix it.

@groud where would you like to see this setting?

Well in fact I may have a better solution :)
Instead of adding a new option in the editor filtering the languages, we could display the already used languages (for other resources) at the top of the popup. We could also reduce the height of the popup.
What do you think ?

@groud I'm not sure it will be comfortable.

Also, the project will support only the languages for which the developer or team will be able to translate their game.
They are not randomly selected from the list of languages. It will be a thoughtful list of supported languages.
I'm thinking about adding a button with a pop-up window where you can easily choose the desired languages. Something like this(but with different buttons):

Or leave as is.

Yeah, sure going up the popup would not be comfortable. But if you reduce the height of the popup it's ok.
The point is that adding this option is bloating the configuration menu for little gain. My philisophy on that is avoiding options that impact other options. Usually, when you have to do that it means that your GUI is not well designed.
An other approch would be to keep this filter, but remove the selection dropdown: if you select "fr, en, es" you've got in the bottom view a list with only those three locales with either a file name (if the remap is set) or nothing (if not). With an edit button to change the value.

@groud
Hmm
What do you think if I rename this parameter and make it available in the game?
For Example: "Supported Languages"
And add function to retrieve list of supported languages.
And maybe add functions to modify this list directly from the game, for example, to support mods.
Like this:
get_supported_locales()
get_supported_locale_names()
set_supported_locales(Array)
is_supported_locale(String)
remove_supported_locale(String)
append_supported_locale(String)

An other approch would be to keep this filter, but remove the selection dropdown: if you select "fr, en, es" you've got in the bottom view a list with only those three locales with either a file name (if the remap is set) or nothing (if not). With an edit button to change the value.

Yes, i know. This is because the filtered list does not contain titles that have been removed.

But if you reduce the height of the popup it's ok.

I think it's impossible.
Need help and advice how best to do this PR

I think it's impossible.

It probably can be modified into tree.cpp (line 1779) I guess.

It probably can be modified into tree.cpp (line 1779) I guess.

Nope. It doesn't work. And that's a completely different class that requires a separate PR. So you can not just change the size of the pop-up window.
What about this comment?

@akien-mga maybe you have an idea of how best to do?

@akien-mga maybe you have an idea of how best to do?

I suggest something like this, in the locales tab:

I disagree. Jedi speak English, Spanish, etc last I checked, so we should just use those languages, but Klingon and Ogre make sense to keep in the list.

working functionality

check it out please

Could you squash the commits together? See http://docs.godotengine.org/en/latest/community/contributing/pr_workflow.html#mastering-the-pr-workflow-the-rebase

fixed, I hope


Smart pointers and guard types should eagerly implement common traits

Calls for another guideline probably. cc https://github.com/rust-lang/rust/issues/24372

If possible, I would try to roll this into a single guideline that covers all aspects of how to implement smart pointers and guard types correctly.


Convert enum counter_status to enum class

Convert enum counter_status to enum class counter_status and remove status_ prefixes from status values.

@hkaiser Ah... I wanted to open a draft because I get an error here:
https://github.com/STEllAR-GROUP/hpx/pull/5857/files#diff-f3eaea65580273671882d4ec78512dc450029c8886cdeaa6cd88ba744ed7be8dR205
‘enum class hpx::performance_counters::counter_status’ is not a class or namespace

@hkaiser Ah... I wanted to open a draft because I get an error here:
https://github.com/STEllAR-GROUP/hpx/blob/9ca801475733aad99410614b3a38c140ff735487/libs/full/performance_counters/include/hpx/performance_counters/counters_fwd.hpp#L205
‘enum class hpx::performance_counters::counter_status’ is not a class or namespace
I tried both and without return by ref.

Sure, enum classes can't have function members. You will need to create a free function to do what you want.

@hkaiser Ah... I wanted to open a draft because I get an error here:
https://github.com/STEllAR-GROUP/hpx/blob/9ca801475733aad99410614b3a38c140ff735487/libs/full/performance_counters/include/hpx/performance_counters/counters_fwd.hpp#L205
‘enum class hpx::performance_counters::counter_status’ is not a class or namespace
I tried both and without return by ref.

Sure, enum classes can't have function members. You will need to create a free function to do what you want.

Turns out the operator overloading wasn't needed after all. Overloading << was needed instead. All tests pass locally. Please verify.

bors merge


Unable to run server after updating Ubuntu 18.04

Hi,
After upgrading on Ubuntu 18.04, our app does not start. This is the log.
LoadError: libicuuc.so.57: cannot open shared object file: No such file or directory - /home/djoulin/.rbenv/versions/2.2.7/lib/ruby/gems/2.2.0/extensions/x86_64-linux/2.2.0-static/charlock_holmes-0.7.5/charlock_holmes/charlock_holmes.so
I've tried the gem in 0.7.5 and 0.7.6
Do you have any ideas ?

@ionosphere , I'm facing the same problem

@ionosphere , which Ruby version are you using ?? Try some version greater than 2.3


Feature request: generate username ala LastPass

In the interest of privacy I've begun generating unique usernames for all new logins. It would be neat if gopass generate presented an option for generating a unique username too.
See:
https://www.lastpass.com/username-generator

Thanks for making this happen @dominikschulz!
I've been experimenting with ways of generating memorable, anonymous usernames since I first opened this request and LastPass' usernames are, in general, pretty poor, since they are hard to pronounce and not memorable.
Then I found a-type/adjective-adjective-animal, a library that generates usernames randomly using two adjectives and an animal. Can this be considered as an alternative to generation just like we have the -x flag for generating xkcd-style usernames?

If we have a Go library do this, it's easy. Otherwise someone will have to contribute such a library.


Feature/PAI-70 Learning Center

Updating the author url
Test URLs:

Before: https://main--pricefx-eds--pricefx.hlx.live/
After: https://feature-pai-70-learning-center-filter--pricefx-eds--pricefx.hlx.live/style-guide/components/learning-center

@iSupercell Can you check the performance again?


[BUG] Genshin Impact Unhandled Error

Yet another bug (I am actually thinking of sharing with you my Discord to contact about the issues I'm finding because I'm finding quite a lot of issues recently, and I do apologize for that)

Hi,
No need to worry. Though, thank you for the feedback and the reports to this launcher. It's really useful for me to improve this launcher overtime.
I could say that this issue is related to the outdated Dispatcher key for Genshin, which is still using 3.0. It's not automatic and I have to update it manually. I will update it once I go home (still working in the office here lol)

I just updated the Dispatcher key in metadata for Genshin 3.1 update and it should fix this issue.
Please click Update Metadata button in the notification to update the metadata.

Can't confirm if it works since I had already updated the game in the meantime

Anyway, the method that got bugged before is actually being used in "Repair Game:" feature. You can either try that to confirm if the issue still persist or not.
In my case, the issue itself has already been solved.

In Genshin or in Honkai?

I mean, In Genshin.

I don't see the repair function on Genshin Global

It's been a while and sorry for my very late reply.
I just noticed that the previous build will be mistakenly remove the Repair Button on Game Settings.
Can you try the latest commit I just pushed? and see if the button is there.

System.Text.Json.JsonException: '0x00' is invalid after a single JSON value. Expected end of data. Path: $ | LineNumber: 1 | BytePositionInLine: 0.
---> System.Text.Json.JsonReaderException: '0x00' is invalid after a single JSON value. Expected end of data. LineNumber: 1 | BytePositionInLine: 0.
at System.Text.Json.ThrowHelper.ThrowJsonReaderException(Utf8JsonReader& json, ExceptionResource resource, Byte nextByte, ReadOnlySpan1 bytes)    at System.Text.Json.Utf8JsonReader.ConsumeNextToken(Byte marker)    at System.Text.Json.Utf8JsonReader.ReadSingleSegment()    at System.Text.Json.Utf8JsonReader.Read()    at System.Text.Json.Serialization.JsonConverter1.ReadCore(Utf8JsonReader& reader, JsonSerializerOptions options, ReadStack& state)
--- End of inner exception stack trace ---
at System.Text.Json.ThrowHelper.ReThrowWithPath(ReadStack& state, JsonReaderException ex)
at System.Text.Json.Serialization.JsonConverter1.ReadCore(Utf8JsonReader& reader, JsonSerializerOptions options, ReadStack& state)    at System.Text.Json.Serialization.JsonConverter1.ReadCoreAsObject(Utf8JsonReader& reader, JsonSerializerOptions options, ReadStack& state)
at System.Text.Json.JsonSerializer.ReadFromSpan[TValue](ReadOnlySpan1 utf8Json, JsonTypeInfo jsonTypeInfo, Nullable1 actualByteCount)
at System.Text.Json.JsonSerializer.ReadFromSpan[TValue](ReadOnlySpan`1 json, JsonTypeInfo jsonTypeInfo)
at System.Text.Json.JsonSerializer.Deserialize(String json, Type returnType, JsonSerializerContext context)
at Hi3Helper.Data.GenshinDispatchHelper.LoadDispatchInfo() in F:\myGit\CollapseLauncher\Hi3Helper.Core\Classes\Data\Tools\GenshinDispatchHelper\GenshinDispatchHelper.cs:line 50
at CollapseLauncher.InstallManagement.InitializeNewGenshinDispatch() in C:\myGit\CollapseLauncher\CollapseLauncher\Classes\InstallManagement\InstallManagement.cs:line 710

When trying to repair Genshin

I compiled the launcher up to 09385dac03dd8d06f6145dbb2f96517feb1965c1 commit and the repair function works without giving me any error, and it's actually downloading extra files, probably those I miss for the time I was off from Genshin

Glad to hear that.
If you feel that the issue is now fixed, I think we can close this issue then.

Yup, so I'm going ahead and declare this issue fixed, until we need a new dispatcher key


Fix navbar toggle

CSS rules for the toggle had been useless since .navbar-toggle is not inside .navbar-brand in the html code.
This resulted in a too high navbar in mobile view.
Furthermore the toggle was not in the middle.

What's wrong about it?

I think this one got fixed in another pull request

No, not completely.
4.6666667px instead of 4 makes it vertically centered.

Oh I understand now. I am going to merge it for this version of the theme, but the whole toggle element will be updated soon, but for legacy versions or people using this version it will be fixable. Thanks for the clarification!


Who's streaming right now?

I imagine the majority of code streams do so on twitch/youtube.
What do people think about taking this awesome repo even further and having a little page that realtime displays which streamers are currently streaming right now. Could categorise based on stream title if language included?

CodebaseAlpha is working on a bot so you can find the schedule of streamers. There should be some collaboration with him

I added some Twitch categories to the end of the listing, to show who is streaming in Programming, Game, Mobile, Software and Web Development categories. There is also a link to the Science and Technology category.

I've submitted a ticket to Twitch to ask them whether this information would be available via an API.

#193 adds Twitch streaming status badges.
If you're interested in how to access the info from Twitch API, see https://github.com/badges/shields/pull/3683.

@surlydev is there a link to this ticket?

The main problem of having that inside of the repo is that you can't use jekyll for that as its static pages.
So there there should be a website hosted on github like a pages that would be built in python with js for live updating of the streams so we dont need to refresh all the time to see who is online.


[Bug] Wrong first column height

Bug report
What I did
Just upgraded from the 5.x to 6.x and carefully switched to the Tabler theme.
What I expected to happen
The table columns should be working as before.
What happened
The leftmost column should have the same height of the other columns.
The HTML of my columns is:
// column 1

    Printer #1

23%

// column 2

Milano

    etichette totali: 0

// column 3

        assegnato: 0

        in stampa: 0

        stampato: 0

What I've already tried to fix it
Removing the display: flex from the first td.
I know this is not a definitive solution since it might break something else.
Context to replicate the bug - Backpack, Laravel, PHP, DB version
When I run php artisan backpack:version the output is:
backpack/basset: 1.1.1
backpack/crud: 6.1.5
backpack/generators: v4.0.2
backpack/pro: 2.0.10
backpack/theme-tabler: 1.0.8 (carefully cleaned the basset cache)

Oopsie, noticed that it belongs to the CRUD repository.
I'm opening it there.


Bind samplers to each shader stages

This patch enables each SamplerInterfaceBlock can be bound each shader stages. We can avoid the sampler overflow by binding samplers to necessary shader stages.
Fixes #5035

It will be better getting review after #4999 is merged.

Could this change be made independent of the morph targets change? It makes the review difficult. Note that there's a GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS in OpenGL ES that defines the max number of textures across all stages. That said I believe the minimum is 32 so we should be fine.

@pixelflinger I have done push-force including your comments. The reason is that a morphing related file is remained after detaching this PR from morphing branch. Sorry about this.

Could this change be made independent of the morph targets change? It makes the review difficult. Note that there's a GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS in OpenGL ES that defines the max number of textures across all stages. That said I believe the minimum is 32 so we should be fine.

Ok it's done. :)

Did you test this change on GLES? I'm surprised there is no changes needed in the shader generation or gl backend?

Did you test this change on GLES? I'm surprised there is no changes needed in the shader generation or gl backend?

@pixelflinger Yes I have tested. It works well because the way assigning TMU in OpenGL ES is exactly same to calculate global offset at SamplerBindingMap.

As I am going through this change again, I am wondering if it shouldn't be structured differently. So this comment is more about discussing a slightly different approach.
The main issue I have here is that I don't think the "stage flags" should be set on SamplerInterfaceBlock. That is, a SamplerInterfaceBlock shouldn't care whether it's going to be set in the fragment, vertex or both stages.
Instead, it seems to me that the stage should be passed to Program::setSamplerGroup.
What do you think?

@pixelflinger I agree that SamplerInterfaceBlock don't have to have ShaderStageFlags.  However SamplerBindingMap::populate is needed ShaderStageFlags of SamplerInterfaceBlock  to calculate SamplerBindingInfo::globalOffset. If we can pass 'Program' to call SamplerBindingMap::populate then we can remove ShaderStageFlags from SamplerInterfaceBlock. However Program needs the binding index from SamplerBindingMap to add a sampler group. Also after reading your comments, I have realized SamplerBindingInfo doesn't need ShaderStageFlags so I deleted it.

@pixelflinger I agree that SamplerInterfaceBlock don't have to have ShaderStageFlags. However SamplerBindingMap::populate is needed ShaderStageFlags of SamplerInterfaceBlock to check overflow. If we can pass 'Program' to call SamplerBindingMap::populate then we can remove ShaderStageFlags from SamplerInterfaceBlock. However Program needs the binding index from SamplerBindingMap to add a sampler group. Also after reading your comments, I have realized SamplerBindingInfo doesn't need ShaderStageFlags so I deleted it.

Okay, I see the problem here. Could you leave a comment in both SamplerBindingMap::populate and in SamplerInterfaceBlock explaining the situation? Thanks.

Yeap I add comments to explain this situation

This looks good to me for the filament side of things. @prideout is coming back soon and will review the Vulkan changes. @bejado will review the Metal changes. Thank you all, this is a wonderful improvement.

Ok I add comments to explain this situation. If you think comments are not enough, please let me know.

This is great work, but it adds a new cache to the Vulkan backend so I want to ask a quick question about that.
Instead of creating new pipeline layouts on the fly, I wonder if we can instead modify our fixed über-layout so that it has 16 vertex samplers and 16 fragment samplers.
This would make the map key large, but it would avoid complexity and potential performance hiccups at run time.
What do you think @daemyung ?

Yes Modifying uber-layout is very nice. Actually I had tried this approch at first. But it needs very big changes.
First we need to have two SamplerBindingMap. One is for vertex and the other is for fragment. SamplerBindingMap is used in many places.
Second CodeGenerator::generateSamplers needs to generate code with the different set qualifier. For instance 2 is vertex and 4 is fragment.(3 is reserved for the input attachment)
and others which I don't find.
I agree it increase code complexity. About the run-time performance, it will be fine because unordered_multimap takes a constant amount of time in theoretically.

About the run-time performance, it will be fine because unordered_multimap takes a constant amount of time in theoretically.

I'm not worried about the multimap, I'm worried about creating lots of pipeline layouts.  In the past we only created 1.

First we need to have two SamplerBindingMap.

I think it would be possible to still have only one SamplerBindingMap, but it would manage two descriptor sets, one for fragment (set = 2) and one for vertex (set = 1).

I think it would be possible to still have only one SamplerBindingMap, but it would manage two descriptor sets, one for fragment (set = 1) and one for vertex (set = 2).

How's about variable name conflication? Code will be generated like below.
// For the vertex shader
layout(set = 1, location = 0) uniform sampler2D light_shadowMap;

// For the fragment shader
layout(set = 2, location = 0) uniform sampler2D light_shadowMap;

Do you know any niceway renaming variable names? I'm looking for this at glslang but can't find.
Or we can add the prefix like below.
layout(set = 1, location = 0) uniform sampler2D vs_light_shadowMap;
layout(set = 2, location = 0) uniform sampler2D fs_light_shadowMap;

It needs to change all shader code and it looks not good as I think.

@daemyung We need to maintain support for ALL_SHADER_STAGE_FLAGS so let's keep your new layout cache stuff in the Vulkan backend. However there are a few problems that need to be addressed before we can merge this:

This causes a segfault when closing gltf_viewer -a vulkan.  To fix this I think you need to clear  mLayouts in destroyLayoutsAndDescriptors().

Thanks for your report. It's fixed. I didn't clear mLayouts after all resources are destroyed.

Layouts are never evicted from the cache.  I would suggest performing LRU eviction in onCommandBuffer, using an approach that is similar to what we already do for mPipelines.

Yes it's done.

For mDescriptorSetArena, please avoid std::unordered_multimap and instead use std::robin_map with a custom value type, and give the map a type alias similar to LayoutMap, PipelineMap, and DescriptorMap.  Maybe this would be called ArenaMap.

Yes it's done.

Let's augment the existing warning in destroyLayoutsAndDescriptors() so that it reports the number of layout objects that need to be evicted.  If this number is large, then we'll need to make this more efficient, perhaps by implementing a hybrid approach that uses our old fixed über-layout, except when necessary.

Yes it's done. Yeah your idea is also fine. I think the pipeline layout can be shared to VulkanPipelineCache so creating VulkanPipelineLayoutPool will be helpful creating a lot of the pipeline layout.

This PR needs to be rebased and/or squashed against main.

Yes it's done.

@prideout Sorry some changes are missing... I updated it. Thanks.

@pixelflinger Could you approve this PR if there is nothing to modify?

@bejado Currently the release build is broken on Metal. Because resource binding indices are different between debug and release.
Debug
fragment main0_out main0(main0_in in [[stage_in]], constant FrameUniforms& frameUniforms [[buffer(0)]], constant MaterialParams& materialParams [[buffer(7)]], texturecube<float> light_iblSpecular [[texture(3)]], texturecube<float> materialParams_skybox [[texture(8)]], sampler light_iblSpecularSmplr [[sampler(3)]], sampler materialParams_skyboxSmplr [[sampler(8)]])

Release
fragment main0_out main0(main0_in in [[stage_in]], constant FrameUniforms& frameUniforms [[buffer(0)]], constant MaterialParams& materialParams [[buffer(7)]], texturecube<float> light_iblSpecular [[texture(0)]], texturecube<float> materialParams_skybox [[texture(1)]], sampler light_iblSpecularSmplr [[sampler(0)]], sampler materialParams_skyboxSmplr [[sampler(1)]])

Could you tell me what make these differnt?

@bejado I have realized that spirv is generated via fullOptimization on release build and unused variables are removed in this case. And Metal's resource binding logic is changed to support binding resources to specified shader stages. So binding indices are reordered support this. If we don't to this, some texture binding index will be greater than 16 and it's not allowed by Metal spec. The resource binding index is calculated based on Program::getSamplerGroupInfo() and this information doesn't know which variables are not used. Thus if we remove unused variables by optimization passes. It will make resource binding indices are different(Program::getSamplerGroupInfo() and [[texture(N)]] in MSL).
To fix this problem, I have modified optimization passes. But I'm not sure it's a right way. Please check this.

@bejado Instead of modifying optimization passes, I rewrite generating binding resource indices in Metal. Please review this.

@daemyung, I think this will cause a problem in OpenGL as well.
If you look at OpenGLContext.h line 310:
            } units[MAX_TEXTURE_UNIT_COUNT];

This represents the OpenGL state, but it only has 16 entries for texture units. However, now we can have up to 32 texture unites per program.
We need to figure out if we need to set MAX_TEXTURE_UNIT_COUNT to 32 or if we need two sets for each stage. I am not sure yet.

@pixelflinger Thanks for your finding. It's updated.

Thanks for the updates @daemyung, I will review more thoroughly tomorrow.