DeleteComment conflict resolver

Details

Any request with command AddXXX that I find, I will try to not perform a request, given that the backend doesn't have information about it.
If there is no AddXXX or it is already processing, I will delete any actions between that processing/existing comment and the DeleteComment. The server just need to delete it and not perform any kind of update like (UpdateComment, AddEmojiReaction, etc)
There is a special case, when the comment will be use to create a thread (an OpenReport is executed) in that case, the safer solution is to send all the requests as planned instead of deleting, given that DeleteComment is by reportActionsID and the logic could be complicated when multiple random actions happens in a thread.
Fixed Issues

$ https://github.com/Expensify/App/issues/50074
PROPOSAL: -
Tests

DeleteComment request:

Send a message (wait for this message to success)

Go to Offline

Edit the message

Add emoji reaction

Remove emoji reaction

Delete the message

Go to online

Just the DeleteComment request should be send

[ ] Verify that no errors appear in the JS console

Offline tests

No requests:

Go to offline
send a message
edit the message
add a emoji reaction
delete the message
Go to online
No requests should be sent

Threads

Go to offline
Send a message
create a thread
delete that message
Go to online
All the request must be sent

QA Steps

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

Android: mWeb Chrome

iOS: Native

iOS: mWeb Safari

MacOS: Chrome / Safari

https://github.com/user-attachments/assets/a88a6cfa-8500-4712-bf97-c484bdaffa9e

MacOS: Desktop

@shubham1206agra let us know what is your eta for this review? thanks!

@shubham1206agra any news?

I think Shubham is going to be busy with some other projects now so in sake of focus I will try to reassign

I found a small problem. Until we process the response, we do not remove the request from PersistentRequests. So, if a request is made, but before the response is received, the client can go offline. So, the request is not removed from PersistentRequests.
So,

Client makes an AddXXX request.
But, before receiving the response for this request, it goes offline.
Now, we do a DeleteXXX action. This DeleteXXX request removes the AddXXX and itself from PersistedRequests.
But, backend receives the request made in step 1 and includes the successful changes in the ReconnectApp when the client goes back online.
But, the DeleteXXX action is lost so the comment is not deleted.

Here is a video with 8kbps download speed
https://github.com/user-attachments/assets/2e891cf3-f647-4d60-9f2f-f5941bec4f9a
I think we should consider not removing a DeleteXXX request if a corresponding Add/Update requests were already tried by the client.

@mountiny @c3024 this is a bug that is happening on main too, I just checked and it sends duplicated AddComment requests.

My code is preventing the duplicated request to be sent, so It can't delete the original because as stated the DeleteComment deletes itself.
Seems something really weird, seems that the ReportActionCompose is adding back the last text, and submitting it.
What should I do? try to fix it or we will create a new issue for this?

I don't think calling AddComment again is a bug.
When a client makes a write request, unless it receives a response it cannot know that the request is successful.
In this case, the first AddComment request succesfully reached backend. But, sometimes the request can also not reach backend. So, it should not be removed from PersistedRequests just after client making the request but should be removed only after receiving the response here.
https://github.com/Expensify/App/blob/f251dbcdfdafc492d9a9908cbf40e4630b7b6d9d/src/libs/Network/SequentialQueue.ts#L99
When the client fails to stay online till the response returns, this ongoing request, AddComment here, is added back to PersistedRequests.
https://github.com/Expensify/App/blob/f251dbcdfdafc492d9a9908cbf40e4630b7b6d9d/src/libs/Network/SequentialQueue.ts#L111
If client sends the AddComment again, I think backend has some way to understand that this is a duplicate request that was already processed. It must not be doing anything.
Also, when we go online, ReconnectApp sends back the latest update which in this case includes the first successful AddComment also, so the message appears again on the screen.
So, I think if we can know that client tried an AddXXX request somehow, we should not remove the DeleteXXX request corresponding to the AddXXX action in this case because AddXXX might have been successful on the backend. So, we should not delete the DeleteXXX request and should send this request to backend.

Ok, will take a look at that case

ok, I will add inside of RequestConflictResolver type a isRollbacked field. I'm testing and trying to create some tests

@c3024 PR updated

Offline behaviour with "Force offline" is different for Threads Test.
https://github.com/user-attachments/assets/f0bb5977-24d1-450f-bf3e-cfe9ab4f231e
This should not be a problem for production because that option does not exist in production but QA will see a different result here for the test on staging.

@gedu, can you please check the above comment? I wonder why "Force offline" is behaving differently from setting offline in Dev Tools or disconnecting network on device settings level.

@c3024 yes, taking a look now

@c3024 Fix it and added a test to cover that case

This issue still remains on iOS Safari.
https://github.com/user-attachments/assets/cd03c33e-6bd2-4890-912f-3b6f7c6a7277
https://github.com/user-attachments/assets/b8434d8b-21c4-433b-bd03-86abfcd86a11

Looking into, I'm seeing that on web (chrome) I have the parentReportActionID which I use to know that a thread is open

but on mobile safari it doesn't have it

Seems that OpenReport is called multiple times on mobile, from ReportScreen. The extras calls don't have the parentReportActionID

Reviewer Checklist

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Screenshots/Videos

Android: Native

Android: mWeb Chrome

iOS: Native

iOS: mWeb Safari

MacOS: Chrome / Safari

MacOS: Desktop

Closing in favor of: https://github.com/Expensify/App/pull/51422, all tests cases moved into it.
@mountiny


bug: Ion-Refresh function doesnot gets called

Type: bug
Ionic Version: 1.x
Platform: android 6.0 browser
Ion-Refresh function doesnot gets called if bounce is set to false.

    <ion-refresher icon="circle"
pulling-text="Pull to refresh..."
on-refresh="loadMore()">

Above code wont make call to loadMore, but if change has-bouncing to true.. it works...

This issue was moved to driftyco/ionic-v1#90


BLD: make OpenBLAS detection work with CMake

This is a fallback detection path, in case pkg-config fails to find openblas. CMake is case-sensitive, so we need to try the camelcase version of the name.
If CMake is installed and it finds OpenBLAS, the result looks like:
Determining dependency 'OpenBLAS' with pkg-config executable '/home/rgommers/anaconda3/envs/scipy-dev/bin/pkg-config'
env[PKG_CONFIG_PATH]:
Called `/home/rgommers/anaconda3/envs/scipy-dev/bin/pkg-config --modversion OpenBLAS` -> 1

CMake binary for 1 is cached.

Determining dependency 'OpenBLAS' with CMake executable '/home/rgommers/anaconda3/envs/scipy-dev/bin/cmake'
Try CMake generator: auto
Calling CMake (['/home/rgommers/anaconda3/envs/scipy-dev/bin/cmake']) in /home/rgommers/code/scipy/build/meson-private/cmake_OpenBLAS with:
  - "-DNAME=OpenBLAS"
  - "-DARCHS=libpyldb-util.cpython-310-x86-64-linux-gnu.so;libpyldb-util.cpython-310-x86-64-linux-gnu.so.2;libpyldb-util.cpython-310-x86-64-linux-gnu.so.2.5.0;libpytalloc-util.cpython-310-x86-64-linux-gnu.so;libpytalloc-util.cpython-310-x86-64-linux-gnu.so.2;libpytalloc-util.cpython-310-x86-64-linux-gnu.so.2.3.3;libsamba-policy.cpython-310-x86-64-linux-gnu.so;libsamba-policy.cpython-310-x86-64-linux-gnu.so.0;libsamba-policy.cpython-310-x86-64-linux-gnu.so.0.0.1"
  - "-DVERSION="
  - "-DCOMPS="
  - "--trace-expand"
  - "--trace-format=json-v1"
  - "--no-warn-unused-cli"
  - "--trace-redirect=cmake_trace.txt"
  - "-DCMAKE_TOOLCHAIN_FILE=/home/rgommers/code/scipy/build/meson-private/cmake_OpenBLAS/CMakeMesonToolchainFile.cmake"
  - "."
  - "-DCMAKE_PREFIX_PATH=/home/rgommers/anaconda3/envs/scipy-dev;/home/rgommers/anaconda3/envs/scipy-dev/x86_64-conda-linux-gnu/sysroot/usr"
using old-style CMake variables for dependency OpenBLAS
Include Dirs:         ['/home/rgommers/anaconda3/envs/scipy-dev/include']
Compiler Definitions: []
Libraries:            ['/home/rgommers/anaconda3/envs/scipy-dev/lib/libopenblas.so']
Run-time dependency openblas found: YES 0.3.20

This follows up on comments in gh-16308. Given that folks are running into a few issues with the changed BLAS/LAPACK detection in 1.9.0, we should backport this I think.

CMake is case-sensitive, so we need to try the camelcase version of the name.

BTW it's not exactly "CMake is case-sensitive", it's the filesystem.
So if on Windows+NTFS it'll not be case-sensitive.
And also both pkg-config and cmake are case-sensitive by themselves.

Yeah, it's not the case sensitivity that's the problem -- it's the fact that the cmake name makes use of uppercase for its canonical name.
Other than that, the actual change seems correct.

Yeah, it's not the case sensitivity that's the problem -- it's the fact that the cmake name makes use of uppercase for its canonical name.
Other than that, the actual change seems correct.

Or, possibly, a totally different name other than just different casing.
There can even be multiple possibilities for the same code path when deps are packaged/shipped by different channels.

The test fails are unrelated. I can conform that this change works on a manylinux2014 image when I try to build scipy. I use openblas from openblas_support.py copied into /usr/local/lib. With this fix cmake picks up the location of openblas successfully.

Thanks for testing and reviewing all. The code comment is fine, the case-sensitive bit is only in the PR description. So I'll go ahead and merge this.

(when yum is used to install openblas-devel on CentOS 7, the meson build setup doesn't find openblas installed at all)

Yes, CMake tries more places than pkg-config at this point; we still need to improve the BLAS/LAPACK detection in Meson itself. That should also handle this CMake naming detail, so at some point this change can be reverted.

Fedora 36 user here,
Got problem to compile with python 3.11 (using default RPM)
$ pip install git+https://github.com/scipy/scipy@main --no-python-version-warning --disable-pip-version-check
Collecting git+https://github.com/scipy/scipy@main
  Cloning https://github.com/scipy/scipy (to revision main) to /tmp/pip-req-build-6qkzqt11
  Running command git clone --filter=blob:none --quiet https://github.com/scipy/scipy /tmp/pip-req-build-6qkzqt11
  Resolved https://github.com/scipy/scipy to commit ebc21a255c72178128a97faf59a4417c84f5537a
  Running command git submodule update --init --recursive -q
  Installing build dependencies ... done
  Getting requirements to build wheel ... error
  error: subprocess-exited-with-error

  × Getting requirements to build wheel did not run successfully.
  │ exit code: 1
  ╰─> [66 lines of output]
      The Meson build system
      Version: 0.63.0
      Source dir: /tmp/pip-req-build-6qkzqt11
      Build dir: /tmp/pip-req-build-6qkzqt11/.mesonpy-16ushz2v/build
      Build type: native build
      Project name: SciPy
      Project version: 1.10.0.dev0
      C compiler for the host machine: cc (gcc 12.1.1 "cc (GCC) 12.1.1 20220507 (Red Hat 12.1.1-1)")
      C linker for the host machine: cc ld.bfd 2.37-27
      C++ compiler for the host machine: c++ (gcc 12.1.1 "c++ (GCC) 12.1.1 20220507 (Red Hat 12.1.1-1)")
      C++ linker for the host machine: c++ ld.bfd 2.37-27
      Host machine cpu family: x86_64
      Host machine cpu: x86_64
      Compiler for C supports arguments -Wno-unused-but-set-variable: YES
      Library m found: YES
      Fortran compiler for the host machine: gfortran (gcc 12.1.1 "GNU Fortran (GCC) 12.1.1 20220507 (Red Hat 12.1.1-1)")
      Fortran linker for the host machine: gfortran ld.bfd 2.37-27
      Program cython found: YES (/tmp/pip-build-env-o4bx2sm9/overlay/bin/cython)
      Program pythran found: YES (/tmp/pip-build-env-o4bx2sm9/overlay/bin/pythran)
      Program cp found: YES (/usr/bin/cp)
      Program python3 found: YES (/data/app/venv/pelican-py311/bin/python3.11)
      Found pkg-config: /usr/bin/pkg-config (1.8.0)
      Library npymath found: YES
      Library npyrandom found: YES
      Found CMake: /usr/bin/cmake (3.22.2)
      Run-time dependency openblas found: NO (tried pkgconfig and cmake)
      Run-time dependency openblas found: NO (tried pkgconfig and cmake)

      ../../scipy/meson.build:141:0: ERROR: Dependency "OpenBLAS" not found, tried pkgconfig and cmake

@patrickdung do you have a BLAS library installed?

@andyfaff, yes and -devel library is also installed
$ rpm -qa | grep blas -i | sort
blas-3.10.1-1.fc36.x86_64
blas64_-3.10.1-1.fc36.x86_64
blas64-3.10.1-1.fc36.x86_64
blas-devel-3.10.1-1.fc36.x86_64
flexiblas-3.1.3-1.fc36.x86_64
flexiblas-netlib-3.1.3-1.fc36.x86_64
flexiblas-netlib64-3.1.3-1.fc36.x86_64
flexiblas-openblas-openmp-3.1.3-1.fc36.x86_64
flexiblas-openblas-openmp64-3.1.3-1.fc36.x86_64
openblas-0.3.19-3.fc36.x86_64
openblas-devel-0.3.19-3.fc36.x86_64
openblas-openmp-0.3.19-3.fc36.x86_64
openblas-openmp64_-0.3.19-3.fc36.x86_64
openblas-openmp64-0.3.19-3.fc36.x86_64
openblas-serial-0.3.19-3.fc36.x86_64
openblas-serial64_-0.3.19-3.fc36.x86_64
openblas-serial64-0.3.19-3.fc36.x86_64
openblas-srpm-macros-2-11.fc36.noarch
openblas-threads-0.3.19-3.fc36.x86_64
openblas-threads64_-0.3.19-3.fc36.x86_64
openblas-threads64-0.3.19-3.fc36.x86_64

@patrickdung can you please open a new issue for this and Cc me? Also, can you add there whether you have installed pkgconfig and/or cmake? If not, please try that. And if so, please post the content of build/meson-logs/meson-log.txt (use --no-clean with pip install to ensure the build logs don't get auto-cleaned).

@rgommers
I just installed python3-pkgconfig and there is pkg-config now.
So I run
pip install git+https://^Cthub.com/scipy/scipy@main --no-clean
(pelican-py311) [dkt@home tmp]$ pip install git+https://github.com/scipy/scipy@main --no-clean
Collecting git+https://github.com/scipy/scipy@main
  Cloning https://github.com/scipy/scipy (to revision main) to ./pip-req-build-06lek5k6
  Running command git clone --filter=blob:none --quiet https://github.com/scipy/scipy /tmp/pip-req-b                  uild-06lek5k6
  Resolved https://github.com/scipy/scipy to commit ebc21a255c72178128a97faf59a4417c84f5537a
  Running command git submodule update --init --recursive -q
  Installing build dependencies ... done
  Getting requirements to build wheel ... error
  error: subprocess-exited-with-error

  × Getting requirements to build wheel did not run successfully.
  │ exit code: 1
  ╰─> [66 lines of output]
      The Meson build system
      Version: 0.63.0
      Source dir: /tmp/pip-req-build-06lek5k6
      Build dir: /tmp/pip-req-build-06lek5k6/.mesonpy-e_jpzv9h/build
      Build type: native build
      Project name: SciPy
      Project version: 1.10.0.dev0
      C compiler for the host machine: cc (gcc 12.1.1 "cc (GCC) 12.1.1 20220507 (Red Hat 12.1.1-1)")
      C linker for the host machine: cc ld.bfd 2.37-27
      C++ compiler for the host machine: c++ (gcc 12.1.1 "c++ (GCC) 12.1.1 20220507 (Red Hat 12.1.1-1)")
      C++ linker for the host machine: c++ ld.bfd 2.37-27
      Host machine cpu family: x86_64
      Host machine cpu: x86_64
      Compiler for C supports arguments -Wno-unused-but-set-variable: YES
      Library m found: YES
      Fortran compiler for the host machine: gfortran (gcc 12.1.1 "GNU Fortran (GCC) 12.1.1 20220507 (Red Hat 12.1.1-1)")
      Fortran linker for the host machine: gfortran ld.bfd 2.37-27
      Program cython found: YES (/tmp/pip-build-env-dt0v1_ab/overlay/bin/cython)
      Program pythran found: YES (/tmp/pip-build-env-dt0v1_ab/overlay/bin/pythran)
      Program cp found: YES (/usr/bin/cp)
      Program python3 found: YES (/data/app/venv/pelican-py311/bin/python3.11)
      Found pkg-config: /usr/bin/pkg-config (1.8.0)
      Library npymath found: YES
      Library npyrandom found: YES
      Found CMake: /usr/bin/cmake (3.22.2)
      Run-time dependency openblas found: NO (tried pkgconfig and cmake)
      Run-time dependency openblas found: NO (tried pkgconfig and cmake)

      ../../scipy/meson.build:141:0: ERROR: Dependency "OpenBLAS" not found, tried pkgconfig and cmake

      A full log can be found at /tmp/pip-req-build-06lek5k6/.mesonpy-e_jpzv9h/build/meson-logs/meson-log.txt

But the meson-log.txt is missing despite I had used --no-clean with pip install

@eli-schwartz
Getting interesting result by running this method.

I just found Fedora does not ship openblas.pc
The Devs did not act on the ticket https://bugzilla.redhat.com/show_bug.cgi?id=1574517

$ locate blas.pc
/usr/lib64/pkgconfig/blas.pc
/usr/lib64/pkgconfig/cblas.pc

Posting the part related to cmake/scipy:

Try CMake generator: auto
Calling CMake (['/usr/bin/cmake']) in /usr/local/src/scipy/build/meson-private/cmake_openblas with:
  - "--trace-expand"
  - "--trace-format=json-v1"
  - "--no-warn-unused-cli"
  - "--trace-redirect=cmake_trace.txt"
  - "-DCMAKE_TOOLCHAIN_FILE=/usr/local/src/scipy/build/meson-private/cmake_openblas/CMakeMesonToolchainFile.cmake"
  - "."
  -- Module search paths:    ['/', '/opt', '/usr', '/usr/local']
  -- CMake root:             /usr/share/cmake
  -- CMake architectures:    []
  -- CMake lib search paths: ['lib', 'lib32', 'lib64', 'libx32', 'share']
Preliminary CMake check failed. Aborting.
Run-time dependency openblas found: NO (tried pkgconfig and cmake)
Pkg-config binary for 1 is cached.
Determining dependency 'OpenBLAS' with pkg-config executable '/usr/bin/pkg-config'
env[PKG_CONFIG_PATH]:
Called `/usr/bin/pkg-config --modversion OpenBLAS` -> 1

CMake binary for 1 is cached.
Preliminary CMake check failed. Aborting.
Run-time dependency openblas found: NO (tried pkgconfig and cmake)

scipy/meson.build:141:0: ERROR: Dependency "OpenBLAS" not found, tried pkgconfig and cmake

RH systems doesn't ship .pc/.cmake for openblas, same for centos as well.
We use our self-built openblas:
https://github.com/xkszltl/Roaster/tree/master/pkgs

Also, if you add -v to pip install, you can find a failed meson command in log, and then manually rerun that command to preserve meson log.

For quick self-mitigation, this is what our opeblas.pc on CentOS 7 looks like.
You may edit it to fit your system:
$ rpm -ql 'roaster-openblas' | grep '\.pc$' | xargs cat
libdir=/usr/local/lib
includedir=/usr/local/include
openblas_config= USE_64BITINT= DYNAMIC_ARCH= DYNAMIC_OLDER= NO_CBLAS= NO_LAPACK= NO_LAPACKE= NO_AFFINITY=1 USE_OPENMP= SKYLAKEX MAX_THREADS=36
version=0.3.18
extralib=-lm -lpthread -lgfortran -lm -lpthread -lgfortran
Name: openblas
Description: OpenBLAS is an optimized BLAS library based on GotoBLAS2 1.13 BSD version
Version: ${version}
URL: https://github.com/xianyi/OpenBLAS
Libs: -L${libdir} -lopenblas
Libs.private: ${extralib}
Cflags: -I${includedir}

@xkszltl thanks for the info
I make openblas.pc as a soft link to blas.pc
Content of blas.pc (from RPM):
$ cat /usr/lib64/pkgconfig/blas.pc
libdir=/usr/lib64
includedir=/usr/include

Name: BLAS
Description: FORTRAN reference implementation of BLAS Basic Linear Algebra Subprograms
Version: 3.10.1
URL: http://www.netlib.org/blas/
Libs: -L${libdir} -lblas

Then I can install scipy@main with pip! But I am not sure if it is usable.
I use Pelican and a plugin uses scipy, I don't use scipy directly.
Requirement already satisfied: numpy>=1.19.5 in /data/app/venv/pelican-py311/lib64/python3.11/site-packages (from scipy==1.10.0.dev0) (1.23.1)
Building wheels for collected packages: scipy
  Building wheel for scipy (pyproject.toml) ... done
  Created wheel for scipy: filename=scipy-1.10.0.dev0-cp311-cp311-linux_x86_64.whl size=23021462 sha256=4fd3d4c9257182fb6a7feb8d83e553630c3bcac9084659360edec26e54647a3b
  Stored in directory: /tmp/pip-ephem-wheel-cache-mnn96hoc/wheels/53/dc/42/3d89f4f35dd5307db90346aa4528b365498b6bbf47d1113041
Successfully built scipy
Installing collected packages: scipy
Successfully installed scipy-1.10.0.dev0

That's a different blas library, which isn't as fast but should work otherwise, I think.
It's possible to select that blas without symlinks, by passing -Dblas=blas as a Meson option.

RH systems doesn't ship .pc/.cmake for openblas, same for centos as well.

Ah fun. I checked Debian before, and that was fine IIRC. I wonder how hit-and-miss this will turn out to be. For MKL I'm also still waiting for conda-forge pkg-config files (https://github.com/conda-forge/intel_repack-feedstock/issues/34). We're going to have to hurry up a bit with the custom detection logic in Meosn.

Yes debian has .pc, but no .cmake, so as its derived ubuntu.
Have fun crossing distros~
For mkl, you can find a lot of them if you install their oneapi version.
# ls /opt/intel/oneapi/mkl/latest/lib/pkgconfig/
mkl-dynamic-ilp64-iomp.pc  mkl-dynamic-lp64-iomp.pc  mkl-static-ilp64-iomp.pc  mkl-static-lp64-iomp.pc
mkl-dynamic-ilp64-seq.pc   mkl-dynamic-lp64-seq.pc   mkl-static-ilp64-seq.pc   mkl-static-lp64-seq.pc

So maybe you want to extend the list there as well?

I just found Fedora does not ship openblas.pc
Edit & correction: The Devs decided not to ship openblas.pc
https://bugzilla.redhat.com/show_bug.cgi?id=1574517

Sigh, they just randomly delete install artifacts provided by upstream because it's "confusing", and clearly it makes a lot more sense to manually encode -lopenblas{,p,o}{,64{,_}}. Then closed the bug report as EOL.
Brilliant! Maybe someone can poke Fedora again?


How do I get the open state of the InAppWebView

InAppWebView in the flutter_inappwebview from My App，I want to get the InAppWebView is open state or close state? How can I do?
flutter_inappwebview之InAppWebView         当前是已经开启还是关闭的状态怎么获取,我该怎么做？

What do you mean with "open" and "close" state?
InAppWebView is a flutter widget, so it is "opened" when you add it to your flutter widgets tree and it is "closed" when it has been disposed from the flutter widgets tree like any other flutter widget.

InAppBrowser().isOpened();
就像以上那样，有没有类似的api
Just like the above, there is no similar API（InAppWebView or InAppWebViewController webViewController）

“打开”和“关闭”状态是什么意思？ InAppWebView是一个颤振小部件，所以当你将它添加到你的颤动小部件树时它是“打开的”，当它像任何其他颤动小部件一样从颤动小部件树中释放时它是“关闭”的。

InAppBrowser().isOpened();
就像以上那样，有没有类似的api
Just like the above, there is no similar API（InAppWebView or InAppWebViewController webViewController）

What do you mean with "open" and "close" state? InAppWebView is a flutter widget, so it is "opened" when you add it to your flutter widgets tree and it is "closed" when it has been disposed from the flutter widgets tree like any other flutter widget.

InAppBrowser().isOpened();
就像以上那样，有没有类似的api
Just like the above, there is no similar API（InAppWebView or InAppWebViewController webViewController）

InAppBrowser is a native view on top of all Flutter widgets, instead InAppWebView is a Flutter widget.
So, if you added InAppWebView in the widget tree, then you can think it is in an "open" state, instead if you remove it from the widget tree, then you can think it is in a "close" state.
For example, in your widget:
  var closed = false;

  @override
  Widget build(BuildContext context) {
    return Scaffold(
        appBar: AppBar(title: Text("InAppWebView")),
        drawer: myDrawer(context: context),
        body: SafeArea(
            child: Column(children: <Widget>[
              closed ?
                  Container(child: Text('Empty'),) :
                  Expanded(
                    child: Stack(
                      children: [
                        InAppWebView(
                          initialUrlRequest: URLRequest(url: Uri.parse("https://flutter.dev")),
                        ),
                      ],
                    ),
              ),
            ])));
  }

  void closeWebView() {
    setState(() {
      this.closed = true;
    });
  }

InAppBrowser is a native view on top of all Flutter widgets, instead InAppWebView is a Flutter widget. So, if you added InAppWebView in the widget tree, then you can think it is in an "open" state, instead if you remove it from the widget tree, then you can think it is in a "close" state.
For example, in your widget:
  var closed = false;

  @override
  Widget build(BuildContext context) {
    return Scaffold(
        appBar: AppBar(title: Text("InAppWebView")),
        drawer: myDrawer(context: context),
        body: SafeArea(
            child: Column(children: <Widget>[
              closed ?
                  Container(child: Text('Empty'),) :
                  Expanded(
                    child: Stack(
                      children: [
                        InAppWebView(
                          initialUrlRequest: URLRequest(url: Uri.parse("https://flutter.dev")),
                        ),
                      ],
                    ),
              ),
            ])));
  }

  void closeWebView() {
    setState(() {
      this.closed = true;
    });
  }

Thanks
your mean，I can use closeWebView in the dispose function？？？
I don't find the api,I use the global variable in my app,I have implemented this feature

No, my code is just an example. You need to implement whatever logic by yourself. closeWebView is just an example!
You don't need to close manually the webview, because the InAppWebView widget is automatically disposed when the parent widget is disposed!

可以在dispose函数中使用closeWebView？？？

No, my code is just an example. You need to implement whatever logic by yourself. closeWebView is just an example! You don't need to close manually the webview, because the InAppWebView widget is automatically disposed when the parent widget is disposed!

thank you!💐(^▽^)


Updated Version of Xhunter

@anirudhmalik
We observed you have solved many bugs encountered in older versions of app. Good Work!!!
We are waiting for new updated version of Xhunter with feature requested.

❤


groupId missing in 1.3.2 too.

groupId missing in 1.3.2 too.
...
4.0.0
pdfviewer
jar
1.3.2
PdfViewer addon
...
Could not resolve pl.pdfviewer:pdfviewer:1.3.2.

Could not parse POM http://maven.vaadin.com/vaadin-addons/pl/pdfviewer/pdfviewer/1.3.2/pdfviewer-1.3.2.pom
Missing required attribute: groupId

@zlaval thank you for noticing this issue. My mistake.  tray version 1.3.3
maven.vaadin.com/vaadin-addons/pl/pdfviewer/pdfviewer/1.3.3/pdfviewer-1.3.3.pom


python project support for SQLPythonAlg module

What changes were proposed in this pull request?
in latest version, people train python mode with one python script in PythonAlg module. but algthrim engineer build their mode with project actually.
this patch provide a new parameter pythonProjectPath to fix this issue. once people set pythonProjectPath in their train or predict mlsql script, the mlsql system will download the python project into executor host. we can use like follow code:
import mlsql
mlsql.import_python_project_or_not()

now you got whole project in your train or predict python script.
How was this patch tested?
None
Spark Core Compatibility
Spark 2.2.x
Spark 2.3.x

Really awesome.  We also should build a project standard.  MFlow is actively developed and try to provide a ML project standard. check this issue: https://github.com/allwefantasy/streamingpro/issues/538


Add 3.9-rc builds

Fixes #438.
Ignores windowsservercore-1803 since it is EOL (https://docs.microsoft.com/en-us/virtualization/windowscontainers/deploy-containers/base-image-lifecycle).

Lol, we missed slim-buster variants here :sweat_smile:


Rething Shortcuts

The color palette does not receive the keys but the 3D view does and rotates accordingly.

I changed the bindings. It's now shift and arrow keys I think. We have to rethink hotkeys and how they should work... Maybe camera keys are only enabled when in one of the 3 view windows? Or only in the main view window?

We really need to fix this before doing anything here: https://github.com/simlu/voxelshop/issues/144

I think frame shortcuts should be able to collide with global shortcuts and supersede the. That way we can have global undo and still have a frame undo with the same shortcuts for the color palette.
Im also thinking to add a lot more frame shortcuts now that they are much improved...
Thoughts?

I think I want to do this before 1.8 to not have to major releases with changed shortcuts..

Anyone got preferences on bindings?

Can we get a discussion going here please. What shortcuts do you guys think make sense and which ones don't? I'll propose a different mapping this weekend I think.

Making progress here. Do you think the shortcuts for the Tools should stay the same (1,2,3,4,...)?
Need some opinions please!

Here are some references btw:
Photoshop: https://www.sitepoint.com/speed-up-your-photoshop-work-with-layer-shortcuts/
Photoshop: https://www.nobledesktop.com/shortcuts/photoshopcs6/mac
JetBrains: https://www.jetbrains.com/help/idea/2016.2/keyboard-shortcuts-you-cannot-miss.html
Blender: https://wiki.blender.org/index.php/Doc:2.4/Reference/Hotkeys/All
Still not sure about the Tool shortcuts...

I used to manage views side in Blender with those numbers. Even if I have no numeric pad on my laptop.
But then for tools would need something like :
C : Camera
A : Add
R : Remove
...

V : View = Camera
C : Create = Add
R : Remove = Delete
Since we use asdqwe for camera interaction

Changed it around some more... unless you have any issues it's good to go from my side!
Here are the global shortcuts:

This is basically done. Good to go @MrTopom?
https://github.com/simlu/voxelshop/pull/192

I think it should write SHIFT + CTRL + ... instead of SHIFT CTRL +
And I am not sure about the fact to use 1..9 for the view as this could be more used to view in defined angles in the 3D view with is more frequently necessary.

Agreed, lets leave the numbers reserved for something used more. I'll re-add the ctrl back in.

Changed it. Can you review pull request again? thanks @MrTopom

Done and closing this.


Would like for SimpleEmailMessage to include Tags

Is your feature request related to a problem? Please describe.
I'm always frustrated when I find a struct that solves 99% of my problems, but then falls just short.
Describe the solution you'd like
When processing SES events in golang, I'd like for the SimpleEmailMessage struct to include Tags.
Describe alternatives you've considered
I will need to print out an example event and take it to a golang JSON parser to build a custom struct.
Additional context
Just update to this? I can handle the type conversion/parsing from there.
type SimpleEmailMessage struct {
	CommonHeaders    SimpleEmailCommonHeaders `json:"commonHeaders"`
	Source           string                   `json:"source"`
	Timestamp        time.Time                `json:"timestamp"`
	Destination      []string                 `json:"destination"`
	Headers          []SimpleEmailHeader      `json:"headers"`
	HeadersTruncated bool                     `json:"headersTruncated"`
	MessageID        string                   `json:"messageId"`
	Tags             map[string][]string      `json:"tags"`
}

#450 needed re-work, as this tags field is relevant in SES-via-SNS, which is an entirely different event struct this project doesn't have right now.

👍 Suggest putting the new types & tests in a new file ses_via_sns.go/ses_via_sns_test.go, to help with the self documentation that this is a different integration than the direct SES -> Lambda email receipt integration.

The closer similar test data to emulate type I think is cloudwatch-alarm-sns-payload-multiple-metrics.json, such that the send, bounce, click, etc.., are stringified JSON inside the SNS Message field


L2 Messaging and Rollbacks

When bridging between two chains, it is possible to accidentally lock your funds in a way that prevents you from being able to unlock them. There has been this general idea of "rolling back" the cross chain message on the source chain if its known that it reverts on the destination chain. The design for this was removed in https://github.com/ethereum-optimism/specs/pull/459 due to iteration on the design.
Due to unreliable gas estimation problems with catching the call failure and not bubbling it up to the top level (fixed in https://github.com/ethereum-optimism/optimism/pull/12526) there is now no way to know that a cross chain message was unsuccessful directly in the messenger itself. This means that the new entrypoint design (https://github.com/ethereum-optimism/design-docs/pull/163) would need to track this, but it would result in the same gas estimation devex issues. It is possible to solve the problem of rolling back an always reverting cross chain message with this design but the devex isn't great, an estimation address would need to be used to reliable gas estimation.
This solution does not cover the stuck funds when they are sent to a chain that is not in the dependency set. There will be no way to relay the funds back with the rollback mechanism. We need to be sure that we are all aligned on the user stories that we are trying to solve. With SuperchainERC20 tokens, I think the larger problem to solve is preventing sending to a chain not in the dependency set, this is currently considered the same thing as sending to an EOA with no known private key. There is no case in which a standard SuperchainERC20 transfer will fail partway and the user will need to roll it back, we should design it such that it always succeeds.
Given the enforcement of a fully connected graph in interop (https://github.com/ethereum-optimism/design-docs/pull/84), this means that one chain's dependency set represents the whole dependency set. To solve the problem of having funds be stuck by sending to a chain outside of the dependency set, we can add one new line of code to the L2ToL2CrossDomainMessenger and solve this problem.
diff --git a/packages/contracts-bedrock/src/L2/L2ToL2CrossDomainMessenger.sol b/packages/contracts-bedrock/src/L2/L2ToL2CrossDomainMessenger.sol
index 6b1d7327d..c46f4b9b4 100644
--- a/packages/contracts-bedrock/src/L2/L2ToL2CrossDomainMessenger.sol
+++ b/packages/contracts-bedrock/src/L2/L2ToL2CrossDomainMessenger.sol
@@ -130,6 +130,7 @@ contract L2ToL2CrossDomainMessenger is ISemver, TransientReentrancyAware {
         if (_destination == block.chainid) revert MessageDestinationSameChain();
         if (_target == Predeploys.CROSS_L2_INBOX) revert MessageTargetCrossL2Inbox();
         if (_target == Predeploys.L2_TO_L2_CROSS_DOMAIN_MESSENGER) revert MessageTargetL2ToL2CrossDomainMessenger();
+        if (!IDependencySet(Predeploys.L1_BLOCK_ATTRIBUTES).isInDependencySet(_destination)) revert InvalidChainId();

         uint256 nonce = messageNonce();
         emit SentMessage(_destination, _target, nonce, msg.sender, _message);

With this change, the cross chain message reverts on the source chain when trying to send to a destination chain that isn't in the dependency set.

Expired Message User Stories
Generic Message Passing

Took too long to relay message, information is stale and no longer useful

Message from source chain is expired before it’s relayed on the destination chain (Pricing oracle)

Asset Bridging

User sends asset to incorrect destination which cannot be relayed on destination chain
User sends ether to custom gas token chain - https://github.com/ethereum-optimism/design-docs/pull/146#issuecomment-2485175933
User sends asset and relay is not completed (either due to failure OR no relay transaction attempt)
Remote sequencer is censoring, therefore assets stuck

Deposits to trigger executing messages will be added in the future
Enough time passes, user can invalidate their cross chain message and unstick their assets on the local chain

I don't buy that the "took too long to relay message" user story is that important, I think that the "user sends asset to incorrect destination chain" story is much more important to solve. This user story is solved with the solution described in this issue (https://github.com/ethereum-optimism/specs/issues/460). The one thing that it does not solve for is the remote sequencer is censoring, which we are launching a governance based interop solution and censorship is attributable and we have a path towards solving this as described in https://github.com/ethereum-optimism/optimism/issues/10870


No longer working with Macos 15

I have recently updated my mac to sequoia, the app stopped working and no longer pause at 80%, It asked me to perform Onboarding every time i reopen it.

same issue here; also stuck on initializing mode on sequoia.

same here

@rurza any updates?

Thanks for reporting the problem.
I won’t bother spending time testing it on macOS 15.0 until beta 3.

I've double checked – there is no changes in APIs I'm using, which means it's a bug on macOS. I'll schedule a call with Apple to discuss it.

@Xytronix @plyght
Can you send me a screenshot from the System Settings -> Login Items?

@Xytronix @plyght Can you send me a screenshot from the System Settings -> Login Items?

I think part of the issue is that Sequoia keeps removing the "allow in background" thing you have to enable during the setup of BatFi.
Screenshot
BatFi allow in background should be here

I've double checked – there is no changes in APIs I'm using, which means it's a bug on macOS. I'll schedule a call with Apple to discuss it.

@rurza Any updates on the call w/ Apple?

thanks for looking into this

Hey!
We should wait for the next beta. The engineer I spoke with was well-prepared and aware of some issues in the current seed.
But...
Did you install the macOS beta on a separate volume? I did, and I experienced the same issues you mentioned. However, the app suddenly started working. To be honest, I don't know how I resolved it. Initially, I thought it was due to some changes I made in the XPC connection, but that wasn’t the case because the existing version of the app works as well. My guess is that it started working because I deleted the other copy of the app that was on the separate volume. Maybe this will work for you?

Hey!
We should wait for the next beta. The engineer I spoke with was well-prepared and aware of some issues in the current seed.
But...
Did you install the macOS beta on a separate volume? I did, and I experienced the same issues you mentioned. However, the app suddenly started working. To be honest, I don't know how I resolved it. Initially, I thought it was due to some changes I made in the XPC connection, but that wasn’t the case because the existing version of the app works as well. My guess is that it started working because I deleted the other copy of the app that was on the separate volume. Maybe this will work for you?

@rurza That seems odd to me as the External volume shouldn't have access to the other, and shouldn't change anything (as far as I know). I did not install Sequoia onto a separate volume, so I cannot attempt the fix you described.

Actually, it's completely normal and expected behavior that an OS has access to other mounted volumes (for example, to index them). It's definitely not a trivial topic to determine what the system should do in some edge cases. Unfortunately, apps like BatFi are at a disadvantage. From Apple's perspective (and the best proof is the direction they chose for their newer platforms), the user shouldn't have to give admin permission to some third-party app in the first place. But here we are :)
Anyway, I've released a new beta. I highly recommend it. It should fix all the issues I know of from the release 2.0.0, and it works on my machine :D

Actually, it's completely normal and expected behavior that an OS has access to other mounted volumes (for example, to index them). It's definitely not a trivial topic to determine what the system should do in some edge cases. Unfortunately, apps like BatFi are at a disadvantage. From Apple's perspective (and the best proof is the direction they chose for their newer platforms), the user shouldn't have to give admin permission to some third-party app in the first place. But here we are :)
Anyway, I've released a new beta. I highly recommend it. It should fix all the issues I know of from the release 2.0.0, and it works on my machine :D

@rurza Weird! you learn something new everyday.
I'll try out that new beta when I get home. Thanks for being responsive and helpful.

Actually, it's completely normal and expected behavior that an OS has access to other mounted volumes (for example, to index them). It's definitely not a trivial topic to determine what the system should do in some edge cases. Unfortunately, apps like BatFi are at a disadvantage. From Apple's perspective (and the best proof is the direction they chose for their newer platforms), the user shouldn't have to give admin permission to some third-party app in the first place. But here we are :)
Anyway, I've released a new beta. I highly recommend it. It should fix all the issues I know of from the release 2.0.0, and it works on my machine :D

@rurza BatFi 2.0.1 Beta did not fix the issue on my machine.

Actually, it's completely normal and expected behavior that an OS has access to other mounted volumes (for example, to index them). It's definitely not a trivial topic to determine what the system should do in some edge cases. Unfortunately, apps like BatFi are at a disadvantage. From Apple's perspective (and the best proof is the direction they chose for their newer platforms), the user shouldn't have to give admin permission to some third-party app in the first place. But here we are :)

Anyway, I've released a new beta. I highly recommend it. It should fix all the issues I know of from the release 2.0.0, and it works on my machine :D

@rurza BatFi 2.0.1 Beta did not fix the issue on my machine.

@rurza just following up on this to check for any updates.

@plyght

We should wait for the next beta.

@plyght

We should wait for the next beta.

I see. wait for the next MacOS beta. Makes sense! Thanks for reminding me.

Hi guys! By any chance did you find a way to fix it on Sequoia Version 15.0 Beta (24A5264n)?
upd: I have beta 2.0.1 of BatFi
upd: IC that we need to wait till new beta comes out, just was curious maybe there is a workaround)

@cinestl as of now, no one (to my knowledge) has a workaround.

I got it to work - I am using the 1st DB and I clicked DENY on the prompt (Bat-fi added items that can run in the bg) , and then allowed inside of system settings separately , it works like a charm for me now

I got it to work - I am using the 1st DB and I clicked DENY on the prompt (Bat-fi added items that can run in the bg) , and then allowed inside of system settings separately , it works like a charm for me now. @plyght @rurza

Did you uninstall the app or just closed and launched?

Exactly, that’s the core of the issue: the daemon responsible for matching the app with the helper has a bug. I am experiencing the same issue that @cinestl described. The helper is displayed instead of the app and is marked as “from an unidentified developer.” If @cinestl quits System Settings and then opens Login Items again, the “garbage collection” mechanism deletes this entry.
This workaround worked for me for a while, but then it stopped. I have restarted the OS and used sfltool resetbtm numerous times, to the point where I’m unsure what, if anything, actually helped. As of now, I still have no solution.

I got it to work - I am using the 1st DB and I clicked DENY on the prompt (Bat-fi added items that can run in the bg) , and then allowed inside of system settings separately , it works like a charm for me now. @plyght @rurza

Did you uninstall the app or just closed and launched?
Cuz I just have this thing that does nothing for me =(

Can you just turn it on?

I got it to work - I am using the 1st DB and I clicked DENY on the prompt (Bat-fi added items that can run in the bg) , and then allowed inside of system settings separately , it works like a charm for me now. @plyght @rurza

Did you uninstall the app or just closed and launched?
Cuz I just have this thing that does nothing for me =(

Can't you just turn it on?

Yeah, I've enabled it, and after I close Settings, it disappears as @rurza mentioned before, so no luck here

I can confim that this has been resolved in Beta 2. You do have to go through the onboarding one time but it'll stick on reboot.

Yeah MacOS Beta 2 rules! You just need to manually enable thing in Login items and reboot your mac, tho I'm using beta update of BatFi)

indeed fixed it #close


Removing a FormControl

I would like to remove FormControl based on user flow
I have read about a few ways to acheive this (I.e cleaning up model and form independently). Is this still the case in v.5.10.14?
Please could you link me to a suitable example?
Thanks

sorry, the request is not clear enough, please provide more details!


Button component do not preserve the styles

Expected Behavior
Button should preserve the styles.
Current Behavior
The a tag overrides the Button styles
Steps to Reproduce (for bugs)
https://codesandbox.io/s/0y54p9925w

Add a Button inside a Link

Context
I am wrapping the Button component instead of using href attribute because in the future when Link component allow me to do relative links I would use it everywhere instead of using the Button href attribute.
So because of that,
I think that Button should override those styles from the a tag I tried to use component attribute of the Button but I ran into issues like Typescript complaining.
/Users/yordisprietolazo/Developer/projects/straw_hat/javascript/admin/src/pages/NotFoundPage/index.tsx(35,19)
      TS2322: Type '{ children: string; to: string; component: typeof Link; href: string; variant: "raised"; size: "l...' is not assignable to type 'IntrinsicAttributes & ButtonProps & { children?: ReactNode; }'.
  Type '{ children: string; to: string; component: typeof Link; href: string; variant: "raised"; size: "l...' is not assignable to type 'ButtonProps'.
    Types of property 'component' are incompatible.
      Type 'typeof Link' is not assignable to type 'string | ComponentClass<ButtonProps> | StatelessComponent<ButtonProps> | undefined'.
        Type 'typeof Link' is not assignable to type 'StatelessComponent<ButtonProps>'.
          Type 'typeof Link' provides no match for the signature '(props: ButtonProps & { children?: ReactNode; }, context?: any): ReactElement<any> | null'.

So because of that I would prefer if Button preserve the styles when I wrap the component.
Your Environment

Tech
Version

Material-UI
codesanbox

React
codesanbox

browser
codesanbox

Add a Button inside a Link

This is an invalide DOM structure. You can nest a <button> inside a <a> element.
      <Link to="/hello">
        <Button color="primary" variant="raised">
          React Router Link Wrapper
        </Button>
      </Link>

Follow: https://material-ui-next.com/demos/buttons/#third-party-routing-library

@oliviertassinari I guess I will need to fix the typespec of Link component for Typescript because it wouldn't allow me to pass anything from Button component.
Thank you very much

Edit:
-You can nest
+You can't nest

@oliviertassinari is there any way you could be a little bit more open on this rule
 Type 'typeof Link' is not assignable to type 'string | ComponentClass<ButtonProps> | StatelessComponent<ButtonProps> | undefined'.

Right now the first example do not seems to work
<Button component={Link} to="/open-collective">
  Link
</Button>

I am following the documentation.


Upgrade to macOS 14.0 (macOS Sonoma)?

Hello!
Could you upload a efi for this computer for macOS 14.0?
Since it is intel 9th gen, it should be supported.
Thanks in advance!

Hello! Could you upload a efi for this computer for macOS 14.0? Since it is intel 9th gen, it should be supported.
Thanks in advance!

Me too


Attended learning activity template is under VLE

Attended learning activity is listed under VLE, when it is actually a general attendance template rather than related to VLE, so should be under 'attendance and presence'

I think it already has been moved for version 0.6 : https://github.com/jiscdev/xapi/tree/0.6 , unless I am missing something?
It is under VLE for 0.5, but there isn't an attendance section there.

ah, yes, I'll close that !


Take TP config for travis

Solves #1

[x] build status added to README

@ reviewers, feel free to squash and merge.

:shipit:


Crash when query executed in background

Hi!
My app is crashing almost every time (about 90% cases) when the app (voip) is running in background and later is trying to handle push notification. It executes a query to select all object of particular type. Crash:
Error Domain=io.realm Code=1 "open() failed: Operation not permitted" UserInfo=0x170a62340 {NSLocalizedDescription=open() failed: Operation not permitted, Error Code=1}
iOS8, iPhone5S, Locked with passcode. This issue doesn't happen on iOS7 Locked WITHOUT passcode.

I have the same issue that realm crash when handle push notification in background  ..

@frankcjw if your phone is locked when this happens, please refer to my answer in https://github.com/realm/realm-cocoa/issues/1260#issuecomment-88949065.
If the phone is unlocked, then that's possibly a bug in Realm and we'd really appreciate a sample Xcode project that we can run to reproduce the issue. Thanks!

I get the same issue. Totally works on simulator, crashes on device

@Fab1n have you tried setting the realm file's parent directory to use NSFileProtectionNone as discussed here: https://github.com/realm/realm-cocoa/issues/1874#issuecomment-101057887?
[[NSFileManager defaultManager] setAttributes:@{NSFileProtectionKey: NSFileProtectionNone} ofItemAtPath:[RLMRealm.defaultRealmPath stringByDeletingLastPathComponent] error:&err];

I found the "bug". My fault, used a file from the bundle with file protection... And then realm cannot alter the file. Should be as expected. Sorry for the inconvenience

is there a way we can have a better error message around this?

OK, still there is an issue. I cannot open the file on device from bundle in readonly mode. The FilePermission exception is not catched but instead the last catch statement (exception ex).
The file is contained in the main bundle 2 folders below the main executable.

@Fab1n could you send us a project that reproduces this issue? You should definitely be able to open a readonly realm file in your app bundle.

Sorry for this late answer. I managed to open the realm from the bundles folder in readonly mode. No problem here with Realm!!!


HTTPS + package.json change

Branch was outdated: it has now been updated, please resolve conflicts and resubmit.


Restart

Command to restart the bot. Would make life easier. Most likely, this means adding a gradle task and executing it before calling system.exit, but this would be much easier with a core system where the bot itself is external from the process running it. Using Python for this may be an option, seems fairly easy too

Cannot be done; any kind of process recreation is a PITA in Java.


most of d_a_tag_spinner decompiled

Last function is daTagSpinner_c::execute. Feel free to finish it up!

Why does it say there are +5000 files changed? I can't even see the commit because github gives up.

looks like almost every file in the project was touched though without updating any of the contents. i'd probably revert the last commit and try to reset to a stable point before those file changes

Yeah I'm sorry don't know what VSCode did there

Yeah I also can't view it, @Trueffeloot you'll have to fix whatever happened here before we can merge

closed per request


Remove limitation on number of command line arguments in jerry-main

Since JerryScript has been a C99 project for a while now, we can
use variable-length arrays. This allows the removal of the
artificial limit on command line arguments in jerry-main.
JerryScript-DCO-1.0-Signed-off-by: Akos Kiss<EMAIL_ADDRESS>

LGTM


Add rake task to list catalog user information

https://projects.engineering.redhat.com/browse/SSP-501
This PR adds a rake task to list catalog users, a variable USER may be
defined to only search for specific users.

@miq-bot add_reviewer syncrou
@miq-bot add_reviewer mkanoor

Completely meant to merge the PG10 PR.  ETOOMANYTABS.  Sorry about that @syncrou
Followup PR?

@gmcculloug yep I'll put the rest in a different PR! :smile:


How Add New Table?

I want add new table ,but I don't konw SQL ,thanks !

Why you are setting dislikes? Fore example, I need to clear DB:
	List<EventOrder> eventOrders = EventOrder.listAll(EventOrder.class);
	EventOrder.deleteAll(EventOrder.class);

And, as you know, we get error:

android.database.sqlite.SQLiteException: no such table: EVENT_ORDER (code 1): , while compiling: SELECT * FROM EVENT_ORDER

So, I don't want to add first row into table (maybe I have no data yet), but I must??


Minor fixes

This makes changes to the flags defined for market report and market strategy commands.
Before this, the operator should have specified the time range for market report with numeric values, while now more user-friendly flags are specified like --last-hour, --last-day, etc.
If not specified within the API request, the daemon now makes use of a default time frame that depends on the length of the time range instead of using always 1h which is ok only for time ranges in the order of few days.
This also adds a new flag --balanced to the market strategy command so that the operator must specify which strategy he wants for the current market. Before this, instead, only the --pluggbale flag was defined.
This also contains fixes to typos and polishes the docker-compose.yml file.

Have you validated these changes do not breaks the v2 of the dashaboard?

These changes do not affect the APIs, rather, only they affect only the tdex-cli client, beside adding a default timeframe for market report at app level. The last change might turn out useful for any client in general, but it's still allowed to set a custom frame for the given timerange.


Update variants feature level to 1.5

As it's not included in the 1.4 as planned before.

Following QA steps done: https://github.com/SAP/cloud-commerce-spartacus-storefront/pull/5989#issuecomment-572469596
Works as expected,


DSRegCMD does not appear to require administrator privileges

In my experience, I do not receive user-based results running DSREGCMD under administrator privileges.  Running under NT Authority\SYSTEM account, the command is not accessible.  I retrieve the most information when run under a standard domain user account, which appears to be the requirement according to the DSREGCMD documentation:
https://learn.microsoft.com/en-us/azure/active-directory/devices/troubleshoot-device-dsregcmd
Is there a reason this documentation requires administrator privileges to follow?
Also, the output example appears outdated and not consistent with my experience running DSREGCMD /STATUS.  Could this be updated?

Document Details
⚠ Do not edit this section. It is required for learn.microsoft.com ➟ GitHub issue linking.

ID: b9f81d74-8dcb-e644-9647-0d1d0817f975
Version Independent ID: e249cc9d-2120-8868-dbca-bc3b85f38b4b
Content: Troubleshoot hybrid Azure Active Directory-joined devices - Microsoft Entra
Content Source: articles/active-directory/devices/troubleshoot-hybrid-join-windows-current.md
Service: active-directory
Sub-service: devices
GitHub Login: @MicrosoftGuyJFlo
Microsoft Alias: joflore

@AquinoN
Thanks for your feedback! We will investigate and update as appropriate.

@AquinoN
Thanks for your feedback! We have assigned the issue to author who will provide further updates.

#label:"awaiting-product-team-response"

From our support team.
Dsregcmd has always been able to run as a non-admin. The purpose was to show the PRT status for a user.
Newer builds of Windows allow admins to perform leaves and joins. Running in System context can be done using psexec.
If this is still an issue I would recommend opening a support case so that our support teams can further troubleshoot with you.
#please-close


Create a repository's Project to keep track of issues' status

Gladly the project is growing at a good pace, in these times we are very likely to start a solution for something being worked on already, or even stepping on eachother's work. We already got some, e.g. #54
I propose to make a simple, automated, project to keep track of issues and PRs that are:

still to be done i.e. To do
being worked on i.e. Doing
solved i.e. Done

So on top of the issues, you're suggesting to add an extra place to check for the issues' status?
I think there's not enough issues and contributors to make it worth it. Even a project the size of Godot doesn't use kaban boards and it works fine with hundreds of contributors. What you need is to get contributors used to always communicate, to mention they're working on this or that issue. godofgrunts just didn't notice Gui was assigned to the task already.

I'm leaving this up for discussion but you'll need to come up with really good arguments to convince me. I've worked with kaban boards for clients in the past and it's never worked - it only works if someone updates it daily, and as this someone would have to be me...

So as someone who is not a strong programmer, I don't want to hold the development back if I'm trying to figure something out that someone else can do quickly.
#54 is a great example where it took me something like 7 hours to figure out the solution while the other contributor assigned himself and had a PR in like 3.
My question is how does this sort of thing work on a project so young? There's not a lot of bugs to try and work on and I could see a situation where everyone is waiting on me to try and figure out a solution to an issue (assuming I could even figure it out).

Not sure if this is needed, I'd get confused at first if I saw something like this. It would decentralize the information from the repo and I'm not sure if it wouldn't make the problem worse: "I forgot the check the issues repo and started working on this too". Maybe I didn't get the idea correctly, though, if you could elaborate a bit more that would be awesome 🙂

I could see a situation where everyone is waiting on me to try and figure out a solution to an issue

If this does happen you can always communicate, ask for help, etc.. There's always someone is Discord that will be able to help, or you can push a WIP PR. There's no need to let fear prevent you from working on something you want. And after submitting the PR, there will be people to review your code and let you know where you can improve :)

it only works if someone updates it daily, and as this someone would have to be me

GitHub has automated templates which moves an issue depending on its status, it's for the most common, and probably time consuming, use cases of a Kanban board.

Even a project the size of Godot doesn't use kaban boards and it works fine with hundreds of contributors

It was stated by maintainers that the reason why they don't use one is exactly because they are big and have a lot of contributors working on their free time by pure motivation, fact being Godot had a Roadmap trello back in 2016. But I don't think size really matters as a way to measure the importance of a project management tool e.g. both big projects as NodeJS with 9 parallel projects, and small ones such as itch.io's butler use them.

So on top of the issues, you're suggesting to add an extra place to check for the issues' status?

They are meant for completely different needs, issue tracker is meant to help contributors, maintainers and users to avoid multiple reports of the same issue and report new issues found in the project it is not meant to be a project management tool, although it can surely be used for that. The Kanban board is meant for task/project management and it's also a good way to to communicate the pace of the project to whoever drop by.

godofgrunts just didn't notice Gui was assigned to the task already.

It also happened with me on #17 , even tho I was assigned to the issue as well.

What you need is to get contributors used to always communicate

Completely agree, having a Kanban doesn't prevent communication, I'd say it can improve it without demanding "social" engagement, e.g. to engage in an issue discussion, this is an extra step everyone have to do in order to contribute, I'm not saying a kanban board would prevent this, but it helps setup a minimal knowledge of how is the current state of the project, if this is just what a contributor needs to contribute. Without a kanban they will have to browse the issue tracker open issues and either not realizing a contributor/maintainer was already assigned, as already happened, or engage in the issue discussion which imo is an extra step in a contribution workflow.
But I do agree that this can be a premature step on the project's life cycle, it is meant to fulfil a need, if there aren't any, then I think we can close the issue

or you can push a WIP PR.

When I do that would I later just squash the commits when I was ready for the full PR?

They are meant for completely different needs, issue tracker [...] it is not meant to be a project management tool

How come? Open and closed tasks, milestones, labels to filter them, assigned developer... that's a project management tool.
I get that cards give you a different view and that it might look friendlier to inexperienced users. But it doesn't solve the issues we have right now:

Contributors can't take ownership of issues or cards. We can only assign people from the team
Whether you move the cards manually or use keywords, there's always some extra editing work to do. Who's going to do it when I'm not around? I'm not counting on new contributors to know to update their issues, or to naturally mention they're working on something.

I've met my fair share of developers and interacted in a number of open source project over the past 4 years, and imo there are many contributors who never communicate.
I don't think we have a problem with the project's management at the moment, and I don't think a kaban board solves problems with communication amongst contributors. It can be good when you're developing multiple projects in parallel in the same repo, to keep track of each separately, or when you want to have a roadmap, to give a higher-level view of what the technology is about and which features are planned. But we don't need that either for now.

@godofgrunts You can use git commit --amend to add your changes to your previous commit, then git push -f to overwrite your changes on your fork/branch on GitHub. Otherwise I can squash your commits when I merge the PR.
And yes, opening a [WIP] PR is a great way to show you've started working on an issue, although you should always mention it first on the issue itself to let people who browse the project know

No update on this, so closing the discussion for now. Feel free to reopen it if you have something to add, or if in the future the need for new project management tools arises


[NIFI-13974] - Improve UX of Status History dialog (select all nodes, scrolling left panel)

NIFI-13974
Before:

After Changes:

Reviewing...


move to pnpm

If merged, this PR:

removes yarn.lock
uses pnpm instead
updates ci file
fixes some markdown linting issues in the README file

some other things to figure out first, so closing this PR for now.


Member - The search bar is not cleared after going to the new member invitation page

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Version Number: 1.4.13-5
Reproducible in staging?: Y
Reproducible in production?: Y
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Expensify/Expensify Issue URL:
Issue reported by: Applause - Internal Team
Slack conversation:
Action Performed:

Open New Expensify app
Navigate to the settings of the existing WS
Navigate to "Members"
In the search bar, type any email account
Tap on "Invite"

Expected Result:
After navigating to the new member invitation page, the search bar should clear from the data entered on the members page
Actual Result:
After going to the page of inviting new members, the search bar is not cleared from the data entered on the members page
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

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

Screenshots/Videos
Add any screenshot/video evidence

https://github.com/Expensify/App/assets/78819774/ec707ff0-a35c-41cd-988a-58831c26dacf
View all open jobs on GitHub

Proposal
Please re-state the problem that we are trying to solve in this issue.
The search bar is not cleared after going to the new member invitation page
What is the root cause of that problem?
The initial value for the input search is fetched from the previous page here:  https://github.com/Expensify/App/blob/addfa8860ac031bd4c3a98c563e124cc3a95154c/src/pages/workspace/WorkspaceInvitePage.js#L78-L81
What changes do you think we should make in order to solve the problem?
remove this useEffect solves the issue

Thanks for the insight, closing this!


Tests for UI

Point 4 added.

Points 2 and 3 added, ready to merge.

Fixed Travis-CI error.

great work, thanks! 👍


Update Pushnotification.js

The Obj-C application:didReceiveRemoteNotification was missing an ending curly brace. The code example in your documentation will not compile.

Hey, thanks for submitting this. I think another pull request actually fixed this comment but it got merged after you submitted this, so this comment-fix is no longer needed, so I am going to close this. Thanks for submitting the fix though!

Hey @lacker, sorry for bugging but can you still explain why the change is syntactically valid? I see two closing brackets which looks weird to me. Thx :-)

Well I didn't accept this PR, I agree with your statement. I think you looked at it after it got borked with a merge and originally it looked different. I dunno though.

Yeah, master looks fine.