Task - Hand cursor is displayed when hovering over the task description placeholder

Details

We're passing the input's role to the wrapping Pressable so that the Pressable will return the correct cursor style which will be inherited by the children.
Fixed Issues

$ https://github.com/Expensify/App/issues/35207
PROPOSAL: https://github.com/Expensify/App/issues/35207#issuecomment-1911128428
Tests

Open a chat.
Click the [+] composer button then Assign task.
Hover over and above the description label.
Notice that the only cursor we see on Web / Desktop is the text cursor.

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

Offline tests

Open a chat.
Click the [+] composer button then Assign task.
Hover over and above the description label.
Notice that the only cursor we see on Web / Desktop is the text cursor.

QA Steps

Open a chat.
Click the [+] composer button then Assign task.
Hover over and above the description label.
Notice that the only cursor we see on Web / Desktop is the text cursor.

[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(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 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/56457735/8c99f199-f9fb-4cf4-aeac-433848c4cef6

Android: mWeb Chrome
https://github.com/Expensify/App/assets/56457735/cdbe61b3-1da4-45d7-80a2-4aea52a19712

iOS: Native
https://github.com/Expensify/App/assets/56457735/3a8973df-2975-4b92-8d1c-2b57a8670aba

iOS: mWeb Safari
https://github.com/Expensify/App/assets/56457735/da7aabc6-e218-487e-9d17-a4c4d8e2b315

MacOS: Chrome / Safari
https://github.com/Expensify/App/assets/56457735/27c65032-6a9f-4186-b5f9-6ef9be7b2e70

MacOS: Desktop
https://github.com/Expensify/App/assets/56457735/be996258-2427-4c96-9395-a332a201f0cd

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

I was reviewing this, @ikevin127 looks this issue is fixed on main by this PR - https://github.com/Expensify/App/pull/35878

let me know if im wrong

@rushatgabhane Indeed, looks like that PR already passed the role within the same components.
All good, I'll close this one.


✨ Add support for tsx codeblocks

Under b7fa5c978350a7046aecf6090e2d77d1ceca4cb2, support was added to allow for jsx transpiling when a file comment such as // file: App.tsx was included.
e.g. This was fine
```ts
// file: App.tsx
function App() {
  return <div />
}
```

However, this still required the snippet to be explicitly specified as ts, not tsx.
As a result, the syntax highlighting would not be complete:
ts highlighting:
function App() {
  return

}

tsx highlighting:
function App() {
  return

}

This MR allows for also respecting the tsx language indicator when transpiling snippets, hence now supporting this:
```tsx
// file: App.tsx
function App() {
  return <div />
}
```

looks good :)

released as 1.0.11


feat: add URL dependencies support to consume shared module via module federation

Fixes https://github.com/webpack/webpack/pull/14035

For module federation shared, without requiredVersion configured, it will infer the version based on package.json, as we can see in ConsumeSharedPlugin.js.
But when we get requiredVersion from package.json, it just gets dep/dev /peer/optional dependencies value, without consideration of some URL Dependencies cases.
For example, "isarray": "git+https://github.com/juliangruber/isarray.git#v2.0.3", it's real version should be v2.0.3, but we can not get that.

Summary

🤖 Generated by Copilot at fb959e1
This pull request adds support for git urls as dependencies in shared modules. It implements a new function normalizeVersion to handle git urls in lib/sharing/utils.js and adds more tests and dependencies to the test/configCases/sharing/consume-multiple-versions folder to verify the feature. It also updates the cspell.json file to ignore the word "commithash".
Details

🤖 Generated by Copilot at fb959e1

Add normalizeVersion function to lib/sharing/utils.js to normalize the version of a shared module from a git url (link)
Use normalizeVersion function on the optional, dependencies, peer dependencies, and dev dependencies of a shared module in getRequiredVersion function in lib/sharing/utils.js to ensure consistent version resolution (link, link, link, link)
Add commithash to the cspell ignore list in cspell.json to avoid spelling errors in the code that deals with git commit hashes (link)
Add more shared modules with different versions and git urls as dependencies to the test/configCases/sharing/consume-multiple-versions test case to test the new feature of allowing git urls as dependencies in the package.json of a shared module (link, link, link)
Add more expectations to the test/configCases/sharing/consume-multiple-versions/index.js file to check the versions of the shared modules that are required by the host module (link)

@ScriptedAlchemy Friendly ping, what do you think about it?

@snitin315 @chenxsan Let's make sure we document the specific feature scenarios here.


Disable linux backtrace test since it is failing now to unblock the bots

rdar://87867848

Replace this paragraph with a description of your changes and rationale. Provide links to external references/discussions if appropriate.

Resolves SR-NNNN.

@swift-ci smoke test


Frontend Project - Birthday Website (GSSOC'23)

Hey @pranjay-poddar, as a part of GSSOC'23 I would like to add more features in birthday website. I would like to change the background, fonts, header, footer, etc. I would also like to add many more features like hover effect, transitions, etc. Kindly assign me this issue.

Please assign me this issue under GSSoC'23, thank you.

I would like to work on this issue, I have some creative ideas for designing this birthday website and would like to make it more interactive and would like add some features.

I hope this message finds you well. I am writing to express my interest and enthusiasm in contributing to an open-source web development project. As a beginner in web development, I am eager to leverage my skills and collaborate with a dynamic team to create meaningful and impactful solutions.

I Would like to  work this issue .please  assign me

I can make your website looking from this to a much more appealing and colourful version of it.

i can customize it like this with a picture of your friend which will bring a smile on their face.

or i could make it look like an instagram story for the trendy social people.

i can add aesthetic images which will make it stand out from the rest.

these are just few of the many ideas i would like to implement on your website as per your requirements and wishes but only if you allow me. so i request you to assign me this project under the label of GGSOC 2023


web.lua cuda 10 turbo error

I'm running Ubuntu 18.04 on an NVIDIA Jetson Nano which has CUDA 10 and cuDNN 7.5 installed by default. I followed issue https://github.com/nagadomi/waifu2x/issues/253#issuecomment-445448928 and was able to build Torch successfully. Then I installed the additional lua modules for waifu2x and validated successfully when running th waifu2x.lua -force_cudnn 1. (waifu2x runs out of memory on this device without using cuDNN. I'm not too concern about this as long as it works using cuDNN.)
When I tried running th web.lua -force_cudnn 1 however, I get the following error:
/home/user/torch/install/bin/luajit: /home/user/torch/install/share/lua/5.1/trepl/init.lua:389: /home/user/torch/install/share/lua/5.1/trepl/init.lua:389: /home/user/torch/install/share/lua/5.1/trepl/init.lua:389: /home/user/torch/install/share/lua/5.1/turbo/util.lua:98: bad argument #1 to 'pairs' (table expected, got nil)
stack traceback:
        [C]: in function 'error'
        /home/user/torch/install/share/lua/5.1/trepl/init.lua:389: in function 'require'
        web.lua:21: in main chunk
        [C]: in function 'dofile'
        ...user/torch/install/lib/luarocks/rocks/trepl/scm-1/bin/th:150: in main chunk
        [C]: at 0x558c9d9a68

I guess that turbo.lua's architecture detection is not working on NVIDIA Jetson Nano(cmds is null).
https://github.com/kernelsauce/turbo/blob/7fe88c2b99ff9bd6d6df3ee3c4077ea8a7d1e6a3/turbo/syscall.lua#L54-L141
It is a platform support issue of turbo.lua. https://github.com/kernelsauce/turbo
I don't know the Linux specifications of Jetson Nano, so I don't know if it can be fixed easily.

You can check the value of ffi.arch with the following command.
% th -e "ffi = require 'ffi'; print(ffi.arch)"
x64

Thanks for the tips. The following command shows:
% th -e "ffi = require 'ffi'; print(ffi.arch)"
arm64

and arm64 indeed does not show up in the syscall.lua file. Adding an or ffi.arch == "arm64" to arm doesn't display that error anymore, but when trying to access the webpage, a bunch of Critical error, no handler for fd: 0. messages are displayed. Not surprising since I'm sure arm64 has a different set of syscall numbers. The challenge is that it appears some of those syscalls for arm64 have been deprecated, so it's not easy to find the exact matching numbers.
Since this looks more like an issue with turbo I can ask their developers for assistance.
Thanks!

On x64 Linux, syscall ids can be show with the following program. (If the syscall name does not exist, a compilation error will occur.)
#include <sys/syscall.h>
#include <stdio.h>

int main(void)
{
	printf("SYS_stat = %d,\n", SYS_stat);
	printf("SYS_fstat = %d,\n", SYS_fstat);
	printf("SYS_lstat = %d,\n", SYS_lstat);
	printf("SYS_getdents = %d,\n", SYS_getdents);
	printf("SYS_io_setup = %d,\n", SYS_io_setup);
	printf("SYS_io_destroy = %d,\n", SYS_io_destroy);
	printf("SYS_io_getevents = %d,\n", SYS_io_getevents);
	printf("SYS_io_submit = %d,\n", SYS_io_submit);
	printf("SYS_io_cancel = %d,\n", SYS_io_cancel);
	printf("SYS_clock_settime = %d,\n", SYS_clock_settime);
	printf("SYS_clock_gettime = %d,\n", SYS_clock_gettime);
	printf("SYS_clock_getres = %d,\n", SYS_clock_getres);
	printf("SYS_clock_nanosleep = %d,\n", SYS_clock_nanosleep);

	return 0;
}

% gcc syscall_list.c -o syscall_list
% ./syscall_list
SYS_stat = 4,
SYS_fstat = 5,
SYS_lstat = 6,
SYS_getdents = 78,
SYS_io_setup = 206,
SYS_io_destroy = 207,
SYS_io_getevents = 208,
SYS_io_submit = 209,
SYS_io_cancel = 210,
SYS_clock_settime = 227,
SYS_clock_gettime = 228,
SYS_clock_getres = 229,
SYS_clock_nanosleep = 230,

Thanks. Not surprisingly, I get an error for SYS_stat, SYS_lstat, and SYS_getdents.


feat: add management command create_client

closes #6

This is great, thank you! Can you check why the tests are failing though?

I'll fix the tests today or tomorrow. :+1:

I have made changes that should fix the errors.


Is there a way to turn off the dead torrent filter option?

I don't want it enabled because torrent stats often aren't reliable (dead torrents sometimes still have a seeder, etc.).
Edit: Opening the extension's XPI and blanking the ,js did the trick. Having it as an option that you can toggle would be useful though.

Funny that you asked 😁
This extension has gone through two rewrites, and that is actually an implemented feature.
The only issue is that I kinda never finished the 2nd rewrite, so that update was never delivered.

I'm thinking of re-writing this extension for a third time, so if you have any suggestions, please put them here or make separate issues.
Why am I not satisfied with the previous rewrite? Well, my knowledge in programming constantly changes, so I never really like my old code.

Having a visible number on the extension icon itself to indicate the amount of new notifications would be useful, rather than having to manually check the Notifications tab.

Suggestions will be managed here, so I am closing this issue


Issue/100 include only tabbable

covers #100

[x] refactor is/focus-relevant to identify elements that are focusable, tabbable, only-tabbable, focus-redirecting
[x] simplify query/focusable.strict NodeFilter
[ ] add option includeOnlyTabbable to query/*

… the BrowserStack connection seems to broken for some reason (that eludes me). I'm in contact with their support to figure things out …

IE10 and IE11 still don't work on BrowserStack, but tests are (finally) passing when split across BrowserStack and SauceLabs.


[Request - Product] Keycloak

Full and short name of product
Keycloak.
Does this product have LTS versions? What are the intervals between each LTS version?
Keycloak doesn't have LTS versions.
What is the website for the product and for its version information?

Main page : https://www.keycloak.org/
Release notes : https://www.keycloak.org/docs/latest/release_notes/index.html
Security page : https://www.keycloak.org/security.html
GitHub : https://github.com/keycloak/keycloak

Might be worth mentioning RH-SSO as well, as the downstream project that is commercially supported. (Keycloak is only community-supported).

https://access.redhat.com/solutions/1129963
https://access.redhat.com/articles/2342861
https://access.redhat.com/solutions/2428751 (Paywalled, Summary here)
https://access.redhat.com/solutions/3296901 (Paywalled)


fleetctl tunnel does not use ssh config

Trying to remotely access a host that is behind an ssh gateway host fleetctl list-units etc will fail with SSH initialisation errors.
This is true even if you can ssh in as fleet ignores the users ssh config file and uses the value directly.
Temp fix is to create a local ssh tunnel such as:
ssh -L 12222:localhost:22 core@${PRIVATE_SERVER_IP}
and then running export FLEETCTL_TUNNEL="localhost:12222"
fleetctl list-units et al will then work.

We need it for specifying IdentityFile

The only real issue I have with relying entirely on ssh-agent is that if your organization likes to use a lot of keys you run into too many attempts issues  when you have 6 added to your keyring. To alleviate this problem in general I use the following directives to tell wither a single server or groups of servers to use certain keys and not attempt to load any keys from agent.
I think that these two make sense whether from a ssh config (preferable) or via cli args:
IdentityFile <PATH_TO_SOME_KEY>
IdentitiesOnly


Support extension in bids() function

The problem
From a user perspective, extension is somewhat redundant, as they can just use suffix. However, as of #229, extensions can be indexed and "wildcarded" by snakebids, so we need to support them within bids()

Ran into some problems here because of some bugs in pybids:

https://github.com/bids-standard/pybids/issues/992
https://github.com/bids-standard/pybids/issues/991

991 is probably quickly resolvable, and is vital to our tests succeeding.
I don't know about 992. There's a few tests that use Query in conjunction with extension which we could probably work around with effort. For now I'll wait on the maintainers of pybids to see how the issues will move forward


language

The Language feature might also be useful for users with limited language skills.

@RISKIZK1CYBER Thank you for your suggestions, we've taken your request and noted it within our potential enhancement document list!


Missing MSVCP140.dll

I have all the up-to-date C++ Redistributable Packages installed, but I am getting the following error:

The previous version of Cmder was running fine, though the newest release is not.

Do you have the 2015 Redistributable packages?  Looks like it uses those.  You can download them from https://www.microsoft.com/en-us/download/details.aspx?id=46881.

That did it, apparently I didn't have the 32bit 2015.


Swap bootstrap script to JS.

Should fix some of the weirdness, atleast on Windows. Currently it seems like there can be issues with picking up the wrong bash/sh between WSL/System Cygwin/Esy Shell.
I did a quick test on Windows and Linux and the files produced are equal when I diff them, though have not been able to test on Mac.

Works great for me - thanks for your work on this conversion, @CrossR 👍


pull request for e2e test at 11/11/2016 20:15:10

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

optest/docs/updated_at.md
:white_check_mark:Succeeded

Details

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.


Pseudo-classes are not pseudo-elements (documentation nitpick)

The website mentions pseudo-elements, however the examples are all pseudo-classes. Additionally, there exist all sorts of pseudo-classes, but it seems that in that section only order/position pseudo-classes are relevant. I don't really know what to call this specific kind of pseudo-classes; maybe simply listing all the possible ones would make the text clearer?
Just some nitpicks before even using the module (though it looks interesting).

Ah, great point!


Web - Emojis with Two Faces Overlap with Other Emojis

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

Action Performed:

Open any chat and type a message.
Scroll down to the emojis section and observe that some emojis with two faces are overlapping with other emojis.

Expected Result:
Emojis with two faces should not overlap with other emojis.
Actual Result:
Emojis with two faces are overlapping with other emojis.
Workaround:
Unknown
Platforms:

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

[ ] Android / native
[ ] Android / Chrome
[ ] iOS / native
[ ] iOS / Safari
[x] MacOS / Chrome / Safari
[ ] MacOS / Desktop

Version Number: 1.3.26-1
Reproducible in staging?: n/a
Reproducible in production?: n/a
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
Notes/Photos/Videos: Any additional supporting documentation
screen-capture (80).webm
Expensify/Expensify Issue URL:
Issue reported by: @tewodrosGirmaA
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1686465118923619
View all open jobs on GitHub

I can't reproduce this at all and neither can applause

Hi @greg-schroeder  It seems like this bug is a bit of a prankster - it won't stay gone even though it's been marked as closed on GitHub. Another bug reporter even caught it too! Check out the evidence here: 👉 https://expensify.slack.com/archives/C049HHMV9SM/p1687510110129949. Any thoughts on how to give it the boot for good? 😄


Use template literal types to expose list of routes

Would you consider exposing a union typing w list of routes? Similar to the new nextjs typed routes approach. Here's what the generated nextjs types look like for an app with a few routes, including a dynamic /orgs/$orgSlug route:
declare namespace __next_route_internal_types__ {
  type SearchOrHash = `?${string}` | `#${string}`

  type Suffix = '' | SearchOrHash

  type SafeSlug<S extends string> = S extends `${string}/${string}`
    ? never
    : S extends `${string}${SearchOrHash}`
    ? never
    : S extends ''
    ? never
    : S

  type CatchAllSlug<S extends string> = S extends `${string}${SearchOrHash}`
    ? never
    : S extends ''
    ? never
    : S

  type OptionalCatchAllSlug<S extends string> =
    S extends `${string}${SearchOrHash}` ? never : S

  type StaticRoutes =
    | `/`
    | `/orgs`
    | `/api/v1/protected`
  type DynamicRoutes<T extends string = string> =
    | `/api/v1/auth/${CatchAllSlug<T>}`
    | `/orgs/${SafeSlug<T>}`
    | `/api/v1/orgs/${SafeSlug<T>}/traits`

  type RouteImpl<T> =
    | StaticRoutes
    | `${StaticRoutes}${SearchOrHash}`
    | (T extends `${DynamicRoutes<infer _>}${Suffix}` ? T : never)
}

This would make it easy to do things like create a typesafe link component:
import type { LinkProps as BaseLinkProps } from '@remix-run/react';
import { Link as BaseLink } from '@remix-run/react';
import type { AllowedRoutes } from 'remix-routes'; // <- NEW export (whatever name, just a new name so it isn't breaking change)

export type LinkProps = Omit<BaseLinkProps, 'to'> & {
  href: AllowedRoutes;
};

function LinkInner({ href, ...rest }: LinkProps, ref: React.ForwardedRef<HTMLAnchorElement>) {
  return <BaseLink ref={ref} to={href} {...rest} />;
}

export const Link = forwardRef(LinkInner);

Usage
<Link href={`/users/${user.id}`}>{user.name}</Link>

The full generated link.d.ts nextjs file (for a simple app I have locally) in case it's helpful:
// Type definitions for Next.js routes

/**
 * Internal types used by the Next.js router and Link component.
 * These types are not meant to be used directly.
 * @internal
 */
declare namespace __next_route_internal_types__ {
  type SearchOrHash = `?${string}` | `#${string}`

  type Suffix = '' | SearchOrHash

  type SafeSlug<S extends string> = S extends `${string}/${string}`
    ? never
    : S extends `${string}${SearchOrHash}`
    ? never
    : S extends ''
    ? never
    : S

  type CatchAllSlug<S extends string> = S extends `${string}${SearchOrHash}`
    ? never
    : S extends ''
    ? never
    : S

  type OptionalCatchAllSlug<S extends string> =
    S extends `${string}${SearchOrHash}` ? never : S

  type StaticRoutes =
    | `/`
    | `/orgs`
    | `/api/v1/protected`
  type DynamicRoutes<T extends string = string> =
    | `/api/v1/auth/${CatchAllSlug<T>}`
    | `/orgs/${SafeSlug<T>}`
    | `/api/v1/orgs/${SafeSlug<T>}/traits`

  type RouteImpl<T> =
    | StaticRoutes
    | `${StaticRoutes}${SearchOrHash}`
    | (T extends `${DynamicRoutes<infer _>}${Suffix}` ? T : never)

}

declare module 'next' {
  export { default } from 'next/types'
  export * from 'next/types'

  export type Route<T extends string = string> =
    __next_route_internal_types__.RouteImpl<T>
}

declare module 'next/link' {
  import type { LinkProps as OriginalLinkProps } from 'next/dist/client/link'
  import type { AnchorHTMLAttributes } from 'react'
  import type { UrlObject } from 'url'

  type LinkRestProps = Omit<
    Omit<AnchorHTMLAttributes<HTMLAnchorElement>, keyof OriginalLinkProps> &
      OriginalLinkProps,
    'href'
  >

  export type LinkProps<T> = LinkRestProps & {
    /**
     * The path or URL to navigate to. This is the only required prop. It can also be an object.
     * @see https://nextjs.org/docs/api-reference/next/link
     */
    href: __next_route_internal_types__.RouteImpl<T> | UrlObject
  }

  export default function Link<RouteType>(props: LinkProps<RouteType>): JSX.Element
}

declare module 'next/navigation' {
  export * from 'next/dist/client/components/navigation'

  import type { NavigateOptions, AppRouterInstance as OriginalAppRouterInstance } from 'next/dist/shared/lib/app-router-context'
  interface AppRouterInstance extends OriginalAppRouterInstance {
    /**
     * Navigate to the provided href.
     * Pushes a new history entry.
     */
    push<RouteType>(href: __next_route_internal_types__.RouteImpl<RouteType>, options?: NavigateOptions): void
    /**
     * Navigate to the provided href.
     * Replaces the current history entry.
     */
    replace<RouteType>(href: __next_route_internal_types__.RouteImpl<RouteType>, options?: NavigateOptions): void
    /**
     * Prefetch the provided href.
     */
    prefetch<RouteType>(href: __next_route_internal_types__.RouteImpl<RouteType>): void
  }

  export declare function useRouter(): AppRouterInstance;
}

Rather than providing template literal types, how about providing component types directly like Next.js did?

Yeah that's a nice "automatic" approach for folks using the Link component directly. Under the hood that'd probably use the union of routes right?
However, for anybody wrapping the built in Link component, being able to import the union type of available routes would be very helpful. Basically this part of the generated next typings:
type StaticRoutes =
    | `/`
    | `/orgs`
    | `/api/v1/protected`
  type DynamicRoutes<T extends string = string> =
    | `/api/v1/auth/${CatchAllSlug<T>}`
    | `/orgs/${SafeSlug<T>}`
    | `/api/v1/orgs/${SafeSlug<T>}/traits`

  type RouteImpl<T> =
    | StaticRoutes
    | `${StaticRoutes}${SearchOrHash}`
    | (T extends `${DynamicRoutes<infer _>}${Suffix}` ? T : never)


Circle ci codecov

Changes:

Update dependencies
Change linter to golangci-lint
Switch from travis to circle-ci

Coverage remained the same at 97.952% when pulling 27fa1533ab3b7f7e6fe7111a62657d8d7cdac8ec on circle-ci-codecov into bcdc607ad34a27004dcac3393442be54429fca33 on master.


findByRole: Unable to query heading by level

I am trying to query a h1 element by using the following: findByRole('heading', { name: /Applications/i, level: 1 }) as suggesting on testing-library.com but this appears not to be working when using this library.
The following error is shown:
  elementHandle.evaluateHandle: Error: Found multiple elements with the role "heading" and name `/Applications/i`

    Here are the matching elements:

    <h1
      class="text-2xl font-bold leading-7 text-gray-900 sm:text-3xl sm:leading-9 sm:truncate"
    >
      Available Applications
    </h1>

    <h4
      class="mb-3 text-sm font-medium leading-tight text-gray-500 uppercase sr-only"
      id="group-title-1"
    >
      Available Applications
    </h4>

Hi @weyert, thanks for the report here. It looks like support for level was added in @testing-library/dom 7.23 and we were on 7.22. I'm planning on upgrading to 8.x soon, but I will probably be releasing that as a major version. In the meantime, I upgraded to the latest 7.x and fixed the types for the options object in #379 :)

Awesome, thank you very much :) 🤗


ion-searchbar adn IOS keyboard closing issue

Ionic version:  (check one with "x")
[ ] 1.x
[ x] 2.x
I'm submitting a ...  (check one with "x")
[ x] bug report
[ ] feature request
[ ] support request => Please do not submit support requests here, use one of these channels: https://forum.ionicframework.com/ or http://ionicworldwide.herokuapp.com/
Current behavior:
No way to close  keyboard on iphone when using ion-searchbar
Expected behavior:
when clicking return " on keyboard" => keyboard will be hide
Steps to reproduce:
here is example ( you can take it from your demo)
<ion-searchbar (ionInput)="getItems($event)">

<ion-item *ngFor="let item of items">
{{ item }}

Explanation:
on Iphone when you click on search bar, you can use the keyboard
after typing each key page will refesh the list,  but i cannot hide the keyboard all all ( till i go to other page).
We just want to give user option to hide the keyboard,
Important i donot want to close keyboard while typing ( we donot know when he finish typing).
Adding cancel button will hide the keyboardwhen user click it  but i is also cancel the search and it is not good for us.

Thanks, we will look into this.

+1 The search bar seems to be a very broken version of the regular input

This is really annoying issue and makes searchbar quite unusable on iOS. Ugly hack is to setTimeout on ionClear event to hide keyboard after 500ms :/

Experiencing the same issue. I'm using the recommended cordova-plugin-ionic-keyboard which does not allow for hide and show on iOS so I can't even hook to the (keyup.enter) event.

Some click event is triggering multiple times to hit anything under the Cancel button, like the search bar itself to bring the keyboard back up. Unlike most event bubbling this is actually several events firing, stopping the first one does nothing.
This works for me:
onClear() {
    if (this.platform.is('ios')) {
      let element = this.el.nativeElement.querySelector('.searchbar-input');

      element.style.pointerEvents = 'none';

      setTimeout(() => {
        element.style.pointerEvents = 'auto';
      }, 350);
    }
}


feat(nifi): Add dependencies for ADLS and GCP

The Stackable docker image for Apache NiFi does not contain the Hadoop Azure ADLS or Google GCS libraries. Consequently NiFi cannot write to Hive/Iceberg tables stored on ADLS/ABFS or GCS. Trying to write to an Iceberg table using the PutIceberg processor produces the following error:
PutIceberg[id=5e413c4e-7d2f-1e5a-ffff-fffffe36b8d5] Failed to load table from catalog: java.lang.RuntimeException: java.lang.ClassNotFoundException: Class org.apache.hadoop.fs.azurebfs.SecureAzureBlobFileSystem not found
- Caused by: java.lang.ClassNotFoundException: Class org.apache.hadoop.fs.azurebfs.SecureAzureBlobFileSystem not found

Is this fixed by https://github.com/stackabletech/docker-images/pull/943 ?


add explicity bathymetry.nc to MOM_input

The default filename for topography is topog.nc. Need to overwrite it to bathymetry.nc in our naming conventions.
closes #172

Given that you stated you tested it, let’s merge and make a patch release v0.5.2


Maya: Refactor Maya API

Problem
Maya integration is complex. Main problem with it is that right now most of the code is in one file hosts/maya/api/lib.py. This file is ~2700 lines of code long and including function from looks management to generic dialog popup functions. This should be split into module lib/__init__.py with different packages grouping specific functionality. This way it will be more maintainable and testable.
[cuID:PYPE-1345]

I would add to this that during that refactor, we should cleanup legacy code and switch to better handling of render setup. It seems we are hitting legacy api limits.

To make it faster to collect render layers, maybe look at not relaying on switching layers and query the attributes instead; https://gist.github.com/davidlatwe/e33b942967f18f4b61f085e3effe86c7#file-rendersetup_util-py-L67

Has this been resolved since? :) Or are there still major pain points to be refactored? If so, it would be good to have a Task list here of bullet points to address.

@iLLiCiTiT getting back to my previous comment

Has this been resolved since? :) Or are there still major pain points to be refactored? If so, it would be good to have a Task list here of bullet points to address.

Should we close this?

This is on @antirotor :)

@antirotor please confirm what you'd like to do with this.

My idea was to split it into more files to make it more managable even if they will at the end link back to the lib. The file is huge with mixed functions to work with attributes, alembic, transforms, menu, colorspaces, xgen, render layers and even though the functions there are mostly documented with docstrings, it is difficult to add/use something from there without spending time deciphering what's there. And it would be easier to add unit and functional tests.

My main issue with the lib is that unless you know what is available, you end up writing duplicate code while developing, then trying to refactor to use the lib code. Not sure whether that is a valid way to work, but would assume being able to utilize the lib while developing would be faster than refactor afterwards.
Have not got a solution though to how you would introduce knowledge to newcomers about what it available in the lib.

My main issue with the lib is that unless you know what is available, you end up writing duplicate code while developing, then trying to refactor to use the lib code. Not sure whether that is a valid way to work, but would assume being able to utilize the lib while developing would be faster than refactor afterwards. Have not got a solution though to how you would introduce knowledge to newcomers about what it available in the lib.

That is actually why I've created this issue. I think that splitting it into clearly defined pieces will help a bit - for example: you need to use function that will query something in render layers, first you look into lib_renderlayer.py (or whatever) and if it is not there, you know you need to write something new. No need to crawl over one huge file. I understand that it might add slight overhead from the other side - but it is much easier to refer to one file that bits and pieces scattered over one huge,

That is actually why I've created this issue. I think that splitting it into clearly defined pieces will help a bit - for example: you need to use function that will query something in render layers, first you look into lib_renderlayer.py (or whatever) and if it is not there, you know you need to write something new.

I actually don't think we'll get benefit in that at all. For what it's worth I've maybe had a 5% success rate going into openpype/lib and knowing which file I should be looking in.

We'll just end up getting the issue that this namespaced commands exists in setdress.py but at the same time in lib.py (or another). I've no idea what to expect in a setdress.py but the majority of functions in there to me don't scream "setdress".
There's also render_setup_tools, lib_rendersetup and other lib_render** which from wording sound like they have so much overlap that I personally constantly forget which one I'd need. :)
Or what about having some empty file
Or maybe have a maya/api/shader_definition_editor.py in the maya/api which is actually a Tool but the command to start it is in maya/api/commands.py - weird maybe?
There's also this SHAPE_ATTRS definition which is unused but appears to be the same here and here

I think if we end up separating to files we better start defining what ends up in which file. I can definitely see value in separating out clear pieces related to a specific functionality, for example this "lookdev" region in lib.py can be moved into a separate file, but then what's the name lib_looks.py, lib_lookdev.py, lib_shaders.py? Or is it just look.py?
There's definitely worth in cleaning this up, but I don't expect it'll provide that much clarity on knowing what's there in the codebase without doing a small hunt yourself unless there's documentation for a dev to go through.

That's because now it is all over the place. I think the clearest and most "pythonic" way would be to move things related to specific workflows to separate files - like what you've mentioned with looks. looks.py is pretty obvious. The same with attributes.py, render_setup.py and so on. We'll need to keep lib for the generic functions but anything that is used exclusively for specific type of workflow should be imho in separate file. And yes, ideally with file-level docstring.

Let's give it a go. Anyone up for taking this on? Who eats refactors for breakfast?


Refer to Facebook's documentation to create an application

Fixes #124.

Coverage remained the same at 99.03% when pulling 85e65cacd6559f538d026016bbf6abe796df1246 on refactor/create-application-documentation into 7fb49725a1e78ebf192d90afc3a70cd7f6432b77 on master.


[google_maps_flutter]fix compiling error - uses unchecked or unsafe operations

fix GoogleMapFactory unsafe error warning

@gimox Thank you for providing this PR. This PR seems pretty out-dated and unworkable. I apologize for the late response. I'm going to relentlessly close the PR. I think this issue was gone the last time I tried to compile the plugin. If you find otherwise, please feel free to tag me here and I will reopen the PR and investigate the issue.


If the number of finite samples is too small, then the data isn't valid for analysis

This is to fix a bug which the number of finite samples (non-NaN, non-inf) is too small.
(we should add units tests for this too)

Coverage decreased (-0.2%) to 92.299% when pulling 1677f3530c64fc1930c8c2b4168f8012359f027e on fix-for-when-zero-nonfinite-samples into 20dc15ff1891fb22ee2142817ba5c6a415595469 on master.

Fixing one bug somehow exposed other bugs :-)
In order to be able to count the number of isfinite entries, I had to coerce the data to np.arrays of float64. On live, I think they are already like that, but the unit tests have some np.arrays of object; so I have to change them.

... on second thoughts, seems like I can just adjust the test data slightly

I guess we should add a test for this, and also perhaps move this logic into _is_valid_for_analysis?

@gbordyugov , this is related to the ZeroDivisionError ticket

... to clarify my last comment, I should clarify that the TypeError happens in a different context and is not resolved by this PR. But that error did make me think that we need to be clearer about our types in our softwar
There are other approaches to the type system, I don't like this solution exactly, but this is one possible solution

We should add more unit tests for this issue. But we'll release now


esModuleInterop is false in tsconfig.json, but the recommendation is for it to be on

https://www.typescriptlang.org/tsconfig/#esModuleInterop says it's recommended. Also, when I edit my project in VSCode it keeps suggesting import path from "path" and I need to change it to import * as path from "path". The former suggestion lints fine, but errors at runtime. Is this related?

You can enable this setting you need to for your extension. Since all the samples seem to be working fine today, I don't think we need to make a big pass to update them all


Uncrustify bot command fix

Description
This PR updates the docker version to use ubuntu:18.04 to run uncrustify commands.
Test Steps
Checklist:

[ ] I have tested my changes. No regression in existing tests.
[ ] I have modified and/or added unit-tests to cover the code changes in this Pull Request.

Related Issue
Uncrustify jobs failing to start/cancelled.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

/bot run uncrustify


Windows OS ,Fix "[]" in dirname , globPath() did not correctly escape the string . And a small improvement for this handy plugin.

In a dir like  "[LK][name][VERSION]"   vim-renamer just didnot work.
This pr fixed it .
I have a map :  nmap w :setlocal swf|up! ,
the 2nd  patch makes the map works .

Hey - sorry for the slow response.  You've got 3 commits there - the first is a bug - thank you very much for finding and fixing it for the potential benefit of everyone.  The second two are your preferences, which some will no doubt share, but some no doubt won't.  I've merged your bug fix in, but figure the other two commits are best handled as you already have - via a personal fork.  That may change in future, but I'll close the request for now until I get more evidence of widespread support.  Hope that makes sense - thanks again for the fix.

The second two patches were sent by mistake. I am not very familiar with
github.  Thank you for your serious work in maintaining this project for a
long time.

No problem - I'm very much a github novice too - thanks again for your help :)


Platform/13506/int tests for fhir router

This PR ...
If you are suggesting a fix for a currently exploitable issue, please disclose the issue to the prime-reportstream team directly outside of GitHub instead of filing a PR, so we may immediately patch the affected systems before a disclosure. See SECURITY.md/Reporting a Vulnerability for more information.
Test Steps:

Include steps to test these changes

Changes

Include a comprehensive list of changes in this PR
(For web UI changes) Include screenshots/video of changes

Checklist
Testing

[ ] Tested locally?
[ ] Ran ./prime test or ./gradlew testSmoke against local Docker ReportStream container?
[ ] (For Changes to /frontend-react/...) Ran npm run lint:write?
[ ] Added tests?

Process

[ ] Are there licensing issues with any new dependencies introduced?
[ ] Includes a summary of what a code reviewer should test/verify?
[ ] Updated the release notes?
[ ] Database changes are submitted as a separate PR?
[ ] DevOps team has been notified if PR requires ops support?

Linked Issues

Fixes #issue

To Be Done
Create GitHub issues to track the work remaining, if any

#issue

Specific Security-related subjects a reviewer should pay specific attention to

Does this PR introduce new endpoints?

new endpoint A
new endpoint B

Does this PR include changes in authentication and/or authorization of existing endpoints?
Does this change introduce new dependencies that need vetting?
Does this change require changes to our infrastructure?
Does logging contain sensitive data?
Does this PR include or remove any sensitive information itself?

If you answered 'yes' to any of the questions above, conduct a detailed Review that addresses at least:

What are the potential security threats and mitigations? Please list the STRIDE threats and how they are mitigated

Spoofing (faking authenticity)

Threat T, which could be achieved by A, is mitigated by M

Tampering (influence or sabotage the integrity of information, data, or system)
Repudiation (the ability to dispute the origin or originator of an action)
Information disclosure (data made available to entities who should not have it)
Denial of service (make a resource unavailable)
Elevation of Privilege (reduce restrictions that apply or gain privileges one should not have)

Have you ensured logging does not contain sensitive data?
Have you received any additional approvals needed for this change?

@david-navapbc Looks like there are a bunch of linting errors, might want to confirm that the pre-commit hooks are set up to run

Also @david-navapbc still looks like you have a linting error, I would double check that you have the pre-commit hooks set up


[Style] Design Improvement in a conductivity-and-resistivity-calculator

What's the style idea?
Design issue in the Conductivity and Resistivity Calculator.
We need to improve the design of the conductivity and resistivity calculator. There is no heading, and neither the input bar nor submit is placed properly.

Checklist

[X] I have checked the existing issues.
[X] I follow Contributing Guidelines of this project.
[X] I am a GSSOC'24 contributor.
[ ] I am a IWOC'24 contributor.
[ ] I am a JWOC'24 contributor.
[ ] I am a SWOC'24 contributor.

Code of Conduct

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

Go ahead @aaryancodeshere


Add an "advanced" scenario for the api-demo

The original api-demo aimed to be as simple as possible, and did not rely on the TypeScript compiler API at all.
By request, I'm adding an advanced flavor of this demo that extracts comments using the compiler, and illustrates how to define custom TSDoc tags.  It also shows how to visit AST trees.

@evanargelion FYI


VS Code freezes when using Windows RDP

Does this issue occur when all extensions are disabled?: Yes

VS Code Version: 1.93.0
OS Version: Windows 11

Steps to Reproduce:

Open VS Code and open some files in it.
Connect the computer with MS remote desktop (on a cellplhone with different resolution, where all the windows will be resized).
Press the keyboard (especially the Ctrl buttion, e.g. Ctrl+C).
Now VS Code gets stuck and does not respond to any operation.
If the issue does not appear, dissconnect and do 2-4 again.
Now even if you login the physical computer, VS Code is still stuck.

This problem has been bothering me for more than two years, from version about 1.60 to the latest 1.93.0, and it is not yet solved. I have tried two different computers (one Windows 11 and the other Windows 10), and the same issue appears on both computers.

/duplicate https://github.com/microsoft/vscode/issues/167556


update: cord companion for 1.8.0 and subspace_create

This is companion for https://github.com/dhiway/cord/pull/324 https://github.com/dhiway/cord/pull/349 and also fixes #183

Feedback: break it into cord companion (augment-api changes only) and subspace logic changes


Feature/numpy random normal

@pbrunet : I took into account your review, thxs a lot! It's much better now.

@pbrunet I'm green tadoudidadouda

This is great!! I asked for this but some tests modification are missing. Unchanged tests are : argmin, argmax, cumproduct, ravel, take

cumprod is a method, but curiously enough, cumproduct is a function :-)

And take is marked as skip :-) I fixed the other tests.

@pbrunet should be ok now, thxs!


Multiline functions

It seems that only one way to implement multiline functions exists (fast and clear):

Use includes instead of functions;#include filename

It's works like simple text insertion in this place (several includes in different parts of the file are allowed)
Use variable replaces with #include (include bonus)
file main.cpd:τ_max=200MPa
τ=150MPa
#include check_stress: τ->σ; τ_max->σ_max

file check_stress.cpd:#if σ ≤ σ_max
  'It is all OK ('σ' ≤ 'σ_max')
#else
  'It is problem ('σ' > 'σ_max')
#end if

file main.cdp processed like this single file:τ_max=200MPa
τ=150MPa
#if τ ≤ τ_max
  'It is all OK ('τ' ≤ 'τ_max')
#else
  'It is problem ('τ' > 'τ_max')
#end if

namespaces instead of local variables
It's just an invisible prefixes for variables.
Bonus - block #namespace...#namespace end - to make it more automatica=10'       shows a=10
b=20'       shows b=20
ns1::a=11'  shows a=11
a'          shows a=10
::a'        shows a=10
ns1::a'     shows a=11
b'          shows b=20
::b'        shows b=20
#namespace ns1
  a'        shows a=11
  b'        shows b=20 - if b missing for this namespace search in top namespace
  b=21'     when assigning - use current namespace
  b'        shows b=21
  ::b'      shows b=20
  ns1::a'   shows a=11
  ::a'      shows a=10
#end namespace
a'          shows a=10
b'          shows b=20
ns1::a'     shows a=11
ns1::b'     shows b=21
#namespace ns1
  a'        shows a=11
#end namespace

P.S. Includes is the most wanted feature here. Even if nothing else will be implemented. (it's solves problems with big file navigation, very nice to extract generated svg images/methods into separate files, it's partly solves problems with missing string values)

Hi,
#include is a great idea and it is easy to implement without even touching the math engine. It can be entirely in the preprocessing part - just need to scan the file contents and insert the text at the corresponding place.
But now it occurs to me that your idea can be extended. Similar to C language preprocessor directives, we can also use #define to make string variables and multiline functions (macros). It can be also a preprocessing feature - just replacing strings and can be implemented quickly. I suggest the following syntax:
Single line variable:
#define CHECK_OK$ = 'The check is satisfied.
usage:
#if τ ≤ τ_max
    CHECK_OK$
#else
    CHECK_NOT_OK$
#end if

Single line macro:
#define CHECK_OK$(X$) = 'The check is satisfied: X$ < X$_max
usage:
#if τ ≤ τ_max
    CHECK_OK$(τ)
#end if

result:
#if τ ≤ τ_max
     'The check is satisfied: τ < τ_max`
#end if

The multiline versions will work in the similar way, and similar syntax. Just skip the equal sign "=" and and #end at the end.
Multiline variable:
#define MULTILINE_VARIABLE_NAME$
'First line
'Second line
'etc.
#end def

Multiline macro:
#define CHECK$(X$)
#if X$ ≤ X$_max
  'It is all OK ('X$' ≤ 'X$_max')
#else
  'It is problem ('X$' > 'X$_max')
#end if
#end def

uasge:
CHECK$(τ)
The result will be obtained by replacing all 'X$' with 'τ' and then replacing CHECK$(τ) with the respective content.
Then, we can keep #include, to organize the code into modules - mainly for larger parts of code. One module can contain many macros and variables. In this case, I prefer not to pass variables to modules. You can define macros inside for that purpose. Then, the #include statement will have the following syntax:
#include MODULE_NAME
The program will try to resolve the MODULE_NAME either as absolute path (local or network), relative path, URL string or even SQL string. For that purpose, it will be good also to define default INCLUDE_BASE_PATH$ variable. It can be folder, absolute URL or database connection string.
Then if your files are on a server or some other folder, it will not be necessary to repeat the whole path everywhere, just file names. The path will be added automatically. If it is a database source, the program will open a connection in the beginning and close it at the end of the code.
The latest would be useful if you decide to distribute your worksheets and want your modules to be accessible from everywhere, similar to images.
If you like the above option, It will take about a week to implement and then I will give it to you for further testing.
About namespaces, it would be a good option to encapsulate you code a little bit on module level. It is a little bit more difficult, but it is possible. We can do this later.:)

Thank you for response!
Yes, macroses syntax seems very good.
The only thing that confuses: I don't want to refuse implicit replacement in separated files includes without '$' in code (<var_name_inside_extenral_file> <- <var_name>; '<var_name2_inside_extenral_file> <- <var_name2>).
But for macroses this syntax (with '<-') is not short enough and makes definition not so clear.
On the other hand - for separate files short parameters syntax like '#include file(τ)' is not flexible enough (and I want them to be read like regular calculation files, without '$').
May be make 2 syntaxes - for parameters for include and for parameters for macroses?
ANYWAY: It would be better implement #include without parameters at first - perhaps some questions will disappear.

Hi,
Rewriting variables in external files with #include is very easy and flexible. However, I think that it provides too much freedom to mess the things up in larger files. In this way, you may overwrite variables that are not intended for that, duplicate variable names, etc.
Imagine that you have a longer file and have different checks including Von-Misses somewhere in the file:
...
σ_red = sqrt(σ^2 + 3*τ^2)
...

You have not intended these variables to be replaced, but someone decides to use your library and replaces τ->σ. Then, the Von Misses check will become:
...
σ_red = sqrt(τ^2 + 3*τ^2)
...

I hope, you understand my point. It may encourage bad software practices that will make the code difficult to read, understand and maintain. Having modules is a powerful feature and we must think in advance. In the future, some people may use it to create complex hierarchy of libraries. This can be considered as bad language design. So, I would wish to enforce better capsulation as modern languages do.
When you create a macro, you must preliminary specify the variables that are intended for rewriting. All other variables are safe. So it would be better to use macros for that purpose. Having this, rewriting of variables on #include becomes obsolete. It would be better to use external variables. Imagine that you have to make three stress checks: σ, τ and σ_red and organize them in a file. It may look like this "stress_checks.cpd":
#external σ, τ, σ_max, τ_max
#define CHECK$(Sig; Max)
#if Sig ≤ Max
  '
The stress is satisfied ('Sig' ≤ 'Max')

#else
  '
The stress is NOT satisfied ('Sig' > 'Max')

#end if
#end def
CHECK$(σ; σ_max)
CHECK$(τ; τ_max)
σ_red = sqrt(σ^2 + 3*τ^2)
CHECK$(σ_red; 1.15*σ_max)

The main file will look as follows "beam_design.cpd":
...
σ = M/W
τ = V*S/(b*I)
σ_max = 250MPa
τ_max = σ_max/sqrt(3)
#include stress_checks.cpd
...

The result will be the following unwrapped code:
...
σ = M/W
τ = V*S/(b*I)
σ_max = 250MPa
τ_max = σ_max/sqrt(3)
#if σ ≤ σ_max
  '
The stress is satisfied ('σ' ≤ 'σ_max')

#else
  '
The stress is NOT satisfied ('σ' > 'σ_max')

#end if
#if τ ≤ τ_max
  '
The stress is satisfied ('τ' ≤ 'τ_max')

#else
  '
The stress is NOT satisfied ('τ' > 'τ_max')

#end if
σ_red = sqrt(σ^2 + 3*τ^2)
#if σ_red ≤ 1.15*σ_red
  '
The stress is satisfied ('σ_red' ≤ '1.15*σ_red ')

#else
  '
The stress is NOT satisfied ('σ_red' > '1.15*σ_red ')

#end if
...

When you write your "stress_checks.cpd", Calcpad will not report σ, τ, σ_max, τ_max as not initialized. Instead, it will automatically provide a side-box with a table (variable manager) where you can put their initial values.

BTW, we can provide even better encapsulation by introducing public variables and even access modifiers:
"stress_checks.cpd":
#namespase checks
#public σ, τ, σ_max, τ_max
...

"beam_design.cpd":
...
checks.σ = M/W
checks.τ = V*S/(b*I)
checks.σ_max = 250MPa
checks.τ_max = σ_max/sqrt(3)
#include stress_checks.cpd
...

Access modifiers may look as follows:
#in-public σ, τ
#out-public σ, τ
#ref-public σ, τ

and
#in-external σ, τ
#out-external σ, τ
#ref-external σ, τ

'in' variables cannot be rewritten - only read. They must exist before calling #include. You can write σ = ... but the value will be ignored after leaving the module;
'out' variables require initialization inside the module, but their values are kept after leaving it, and can be read outside;
'ref' variables must be specified outside before calling the module, and their values may be rewritten inside.
I generally prefer the Java and C# dot-like style 'namespace.variable', instead 'namespace::variable'.

Wow!
So many new keyword scares me.
I write later, But I can say one thing for sure: missing public/private/internal is not a problem even for Python (I was C# programmer and I liked they modificators, but for engineering calculation problem is out there)

These are just suggestions. Of course we can do without them. Only #external variables will be enough, mainly to make development end testing of "partial" modules easier. Please, check the previous post. :)

What's clear:

Rewriting variables in external files with #include is very easy and flexible. However, I think that it provides too much freedom to mess the things up in larger files. In this way, you may overwrite variables that are not intended for that, duplicate variable names, etc.

OK, replacing by -> was a mistake, forgot about it, #include just includes external file and nothing more.

Macros one line and multiline syntax is nice.

Now about namespaces and internals/in/outs. Namespaces or local variables is needed. Otherwise we will have reusing problems and we will drown in variable suffixes. The question is how exactly to implement it.

I generally prefer the Java and C# dot-like style 'namespace.variable', instead 'namespace::variable'.

How to separate variable var inside namespace var from variable var.var?
If you know how to solve this problem, then of course will be better to use a dot.

#external σ, τ, σ_max, τ_max
#define CHECK$(Sig; Max)
#if Sig ≤ Max
  '
The stress is satisfied ('Sig' ≤ 'Max')

#else
  '
The stress is NOT satisfied ('Sig' > 'Max')

#end if
#end def
CHECK$(σ; σ_max)
CHECK$(τ; τ_max)
σ_red = sqrt(σ^2 + 3*τ^2)
CHECK$(σ_red; 1.15*σ_max)

What happened if #external missing?
If it will not work without listing all used top-level variables - it's sounds very bad. It's wanted to see top-level variables without any boilerplate (if local variable doesn't override them).
Is #external file or namespace dependent?

I just don't fully understand what this constraints do, trying to reread posts...

About the '$': The idea came from the BASIC language where '$' was used for strings.

It will help not to confuse string variables and macro parameters with numerical variables and rewrite one of them by accident. Even if you are careful, there is a risk to rewrite some units of measurement. They are too many to remember. We also must be careful about words in comments.

Thank you very much!
Now I understand that #external mostly for testing and makes no problems, on the contrary - it will help.

I suggest for now to start with macros (#define), #include and #external only. This will be stage one.
It's sounds cool.

About the '$': The idea came from the BASIC language where '$' was used for strings.
It will help not to confuse string variables and macro parameters with numerical variables and rewrite one of them by accident. Even if you are careful, there is a risk to rewrite some units of measurement. They are too many to remember. We also must be careful about words in comments.

Yes, now I also think that my idea was too weird.

Yes, you are right. So, let be "::". It reminds me about C++ and I hate this language. :) But OK, I will swallow it. ;)
And your idea was actually excellent. Because it pointed me to C preprocessor directives. Now we will have string variables, multiline functions and modules, implemented entirely at preprocessing stage. It means no touching the language/math processor. It is just a matter of string handling, so we can do it easy and fast. And it is very suitable specifically for Calcpad.
So, I think we had a nice and useful discussion so far and the syntax was shaped. I will do some coding now and upload what is ready for testing. Thank you for your cooperation!

Тhank you again, Ned!

Some idea:
Do we need the spesial syntax #external σ, τ, σ_max, τ_max and special UI for this?
May be just introduce block that will be cut out from file on inclue?
#external σ, τ, σ_max, τ_max

And special UI
vs
#do not include
σ=?
τ=?
σ_max=200MPa
τ_max=0.54*σ_max
#end do not include

Second case seems more flexible.

Yes, maybe this would be simpler.
What about instead of #do not include to write just #local?

#local/#end local - will be OK
#local/#global will be not OK - it will break nested includes

To be more precise #local/#global is a problem only for #include inside #local/#global block and only for incorrect include order implementation.
So, #local/#global is OK too. The question is only what's more readable.

#local/#global sounds better for me. It is shorter and more clear. If you have #include inside #local, it will be simply not processed when the file is included in its turn. If that is what you want, it's OK. If not, just move it to the #global section. :)

Hi, Thank you!
Yes it is possible in general, but I have to enable it on GitHub. They have very convenient system for that. I myself donate some projects that I use. However, I am slowly advancing on that issue anyway, but it takes time. I had some heavy design projects to deliver recently. From now on I will have more time to work on Calcpad. :)

Okey! Let's wait a little longer. Anyway, enable github donates of course if it's not a problem.

I have summarized and specified the requirements for macros here:
https://gist.github.com/cser/dabe6e064915701be3d3bb5f50db4d42

#include is almost ready:

It's sounds so good...
But I can't understand, what's wrong:

Nothing is wrong, you just do not have it yet. :)

@Proektsoftbg, see pull request please!

Almost done implementing string variables and macros! Some little fixes only remain and in 2-3 days, I will upload an update.
Here is one sample.

An you will also be able to view and check the generated (unwarped) code:

Nice to here it! (while I'm waiting, I'm using build from pull request without dynamic features)
According to the screenshots, it is very pleasing that string passing into macros, but how separate this string from variable if it has no spaces?
Another things that bother: is it principial that #def body has no indentation?

This is just a showing of how necessary macros are. This is a part of script that I use in my work:

It is not necessary to have spaces. You can have some of course, but only if you really need them. Lets take the following example:

#def Suffix$(s$) = variables$.
Suffix$(_max) ' = variable_max

Calcpad will consider the whole string variables$. That is why we need that both macros and macro parameters end with $. The macro parser starts from the $ backward to discover the whole literl. Then it scans forward until it finds the longest part that matches an existing macro or parameter.

I will add identation to #def. It is no problem.
Thank you for the screenshot. You really have to do complicated stress checks. Only, please use '$' at the end of macro parameters as well. It improves parsing, as discussed above. For the same reason, macros are allowed to have latin letters [A-Z][a-z], numbers [1-9] and underscore "_". They must start with a letter and finish with '$'.

1 - I think I got it and so far it seems cool.
2, 3 - OK.

It is OK in my version. I will send it to you soon.

@cser, I have implemented macros and includes and uploaded an update: v.5.8.
There is a sample file to demonstrate the new features: Macros.zip
Input boxes are still not supported in macros. I will change this later. As far as I know, you do not use them much, so I uploaded what is ready, so that you will not wait so long :).
Documentation has not been updated as well.
However, I updated syntax definitions for external editors Notepadd++. CudaText and Sublime:
https://github.com/Proektsoftbg/Calcpad/tree/main/Setup/Syntax-for-external-editors
Macros and includes are pre-processed by the program. As a result, their contents are replaced in the code and unwarped source code is generated. After that, the calculations are continued as normal. You can view the unwarped code, by the respective checkbox on the bottom-right part of the main window. If there is an error in the preprocessing, it is reported in respect to the initail code. If there is an error in the calculations, it is reproted in respect to the lines in unwarped code. If you click the line number link, the code will unwarp and scroll to that line.
That makes debugging of macros easier. Otherwise, you can get lost very easilly.
All defined macros are automatically included in the autocomplete list, to make them easier to insert.
We can consider better autocomplete in the future, that can include short information about the function/macro and its parameters:
https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/xmldoc/recommended-tags#general-tags

It finally happened!

I updated my simple calculation - it looks fine.
It's only one thing confusing - that user need to insert additional lines in macro that can be placed not just alone in line:
-#def VAL$(x)
+#def VAL$(x$)
+	''
 	#val
-	''x'
+	''x$'
 	#equ
+	''
 #end def

But right now it seems like the best solution because the logic is clear.
Alternative way (that uses in pull request build) is short, but leads to a struggle with fuzzy line wrapping rules.

@cser, I have implemented macros and includes and uploaded an update: v.5.8.

There is a sample file to demonstrate the new features: Macros.zip

looked

Input boxes are still not supported in macros. I will change this later. As far as I know, you do not use them much, so I uploaded what is ready, so that you will not wait so long :).

Yes, I still don't use input fields.

Documentation has not been updated as well.

However, I updated syntax definitions for external editors Notepadd++. CudaText and Sublime:
https://github.com/Proektsoftbg/Calcpad/tree/main/Setup/Syntax-for-external-editors

Thanks! I still use CudaText for big document (~1500 lines). Embedded editor works so slowly on this document even while autocalculation turned off (it's unclear what a problem: error checking or autocomplete?). Plus it has multiple carets and another editor features.

Macros and includes are pre-processed by the program. As a result, their contents are replaced in the code and unwarped source code is generated. After that, the calculations are continued as normal. You can view the unwarped code, by the respective checkbox on the bottom-right part of the main window. If there is an error in the preprocessing, it is reported in respect to the initail code. If there is an error in the calculations, it is reproted in respect to the lines in unwarped code. If you click the line number link, the code will unwarp and scroll to that line.

Yes, I tried it -  unwrapped code displaying helped a lot with my calculation updating.

That makes debugging of macros easier. Otherwise, you can get lost very easilly.
All defined macros are automatically included in the autocomplete list, to make them easier to insert.
We can consider better autocomplete in the future, that can include short information about the function/macro and its parameters:
https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/xmldoc/recommended-tags#general-tags

Тhere are no thoughts - I hated javadocs when was a programmer :).

Great! I am glad that it works for you.
Probably I can optimize the internal editor to work faster. There were plenty of new features added recently.
Next steps is to fully implement the deg/rad/grad units as discussed. Also, input values embedded in code {1.23}.
We need to update the documentation and other resources.
I thhink that the next majour change should be vectors and matrices. They are needed very much to make Calcpad a fully functional math environment.
I will close this issue now as it was generally implemented. If you find anything, you can open a separate issue since this one became too long ad difficult to follow.


Taxon overview: Recent pubmed articles

Some how I ended up on the landing page for "Bacteria".  this has the pane with recent pubmed articles.  I doubt this is useful for all bacteria.  I think that we should talk about when this should be displayed so that it isn't just taking up space.

It may not be useful for all bacteria, however, it would be for almost any taxon level below it.
If we selectively hide it for all bacteria, do you have any suggestions on other useful information that can go on the overview page?
-Maulik

I am suggesting that we keep it as it is for the sake of consistency across all taxon landing pages.


Bug Causes Frame Inside of ScrollArea to Extend Beyond ScrollArea

Describe the bug

The bug seems to come from adding a Frame to the inside of a ScrollArea. The bug is that when the ScrollArea has not been scrolled, everything appears as expected, but when you scroll down, the contents of the ScrollArea shift upwards by a small amount so that they extend slightly past where the ScrollArea is:
Scrolled to the top:

Scrolled down at all:

It may be difficult to see, but this is a zoomed-in version of the second picture:

To Reproduce
Steps to reproduce the behavior:

Create any ScrollArea
Inside of the ScrollArea, place a Frame
Make the frame contain widgets large enough to cause the ScrollArea to need a scroll bar
Scroll down

Expected behavior
The expected behavior would be that it displays in the correct bounds of the ScrollArea, just like it does when you are scrolled to the top.
Desktop:

OS: Arch Linux
Native App

I'm not sure if this is a bug in ScrollArea, or Frame somehow. Maybe both somehow.

I'm not sure how much this means or if it would help at all, but when I store the response from the ScrollArea, when I scroll, the response.inner_rect doesn't change when I scroll or if it is unscrolled:

It's almost certainly not a bug with the frame, as I was able to reproduce this with a textarea with no frame behind it - the text goes over.

I've run into this same issue. Code and screenshots provided below.

Expand Code
Cargo.toml
[package]
name = "egui-1621-repro"
version = "0.1.0"
edition = "2021"

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[dependencies]
eframe = { version = "0.27" }

main.rs
use eframe::{egui::{vec2, Color32, Sense, Stroke, ViewportBuilder}, App};

struct DemoApp;

impl App for DemoApp {
    fn update(&mut self, ctx: &eframe::egui::Context, frame: &mut eframe::Frame) {
        eframe::egui::CentralPanel::default()
            .show(ctx, |ui| {
                ui.spacing_mut().item_spacing = ui.spacing().item_spacing * 2.0;

                // Makes it easier to see what's up
                ui.horizontal(|ui| {
                    let zoom_levels = [1.0, 2.0, 4.0];
                    let current_level = ctx.pixels_per_point();
                    for level in zoom_levels.iter() {
                        let mut button = ui.button(format!("zoom {}", level));
                        if *level == current_level {
                            button = button.highlight();
                        }
                        if button.clicked() {
                            ctx.set_pixels_per_point(*level);
                        }
                    }
                });

                // Change scroll area styles to make bug extremely obvious
                let scroll = &mut ui.spacing_mut().scroll;
                scroll.floating = false;
                scroll.bar_width = 16.0;
                scroll.bar_inner_margin = 0.0;
                scroll.bar_outer_margin = 0.0;
                let visuals = &mut ui.visuals_mut();
                let widgets = &mut visuals.widgets;
                visuals.extreme_bg_color = Color32::GREEN.additive();
                widgets.inactive.rounding = 0.0.into();
                widgets.inactive.fg_stroke = Stroke::new(0.0, Color32::BLUE.additive()); // change stroke because this is where handle color comes from
                widgets.active.rounding = 0.0.into();
                widgets.active.fg_stroke = Stroke::new(0.0, Color32::BLUE.additive());
                widgets.hovered.rounding = 0.0.into();
                widgets.hovered.fg_stroke = Stroke::new(0.0, Color32::BLUE.additive());

                eframe::egui::containers::ScrollArea::both()
                    .show(ui, |ui| {
                        let (rect, rsp) = ui.allocate_exact_size(vec2(2048., 2048.), Sense::click());
                        ui.painter().rect_filled(rect, 0.0, Color32::RED);
                    })
            });
    }
}

fn main() {
    let native_options = eframe::NativeOptions {
        viewport: ViewportBuilder::default()
            .with_inner_size((1024., 768.)),
        ..Default::default()
    };

    let _ = eframe::run_native(
        "issue 1621",
        native_options,
        Box::new(|cc| {
            cc.egui_ctx.set_pixels_per_point(2.0);
            Box::new(DemoApp)
        })
    );
}

Illustrative screenshots

Scroll content is red
Scrollbar track is green
Scroll handles are blue
Colors are in additive mode to make overlaps/overflows more obvious

top-left

Scrollbars overlap content (white and yellow)
Leakage in bottom-right (red)

mid-left

Same as above, but now content is leaking above scroll area (red)

bottom-left

Leakage at bottom disappears, but leakage at top remains (red)

top-mid

Similar to y-axis behavior, scroll area leaks at left instead of top (red)

top-right

Similar to bottom-left, the red leakage in the bottom right corner disappears

Other notes
It looks like behavior changes at 4.0x zoom (you can try 8.0x as well and it becomes more obvious). At these zoom levels the right-side scrollbar will start to go above/below the extents of the track/background (probably easier to see with a white background, but still visible in dark mode)
#3734 is probably related.

Also related https://github.com/emilk/egui/issues/3385


Update the parameters of APIs

Is your suggestion related to a missing or misleading document? Please describe.
Some APIs of IS doc space have query parameters that are not supported by the API. These APIs need to be updated
Related Issue:
https://github.com/wso2-enterprise/wso2-iam-internal/issues/97

Added issue to docs rpository https://github.com/wso2/docs-is/issues/3388


Reverts warning fix on release builds that caused segfault in release build

This reverts specific change in 95131e6 that caused #22794
All of the harmless fixes of 95131e6 are reapplied in this PR. Changes in gdscript_function.cpp were bisected down to specific section of the file that introduced the problem.

Thanks for tracking it down and providing a fix :)

@akien-mga Thanks, but I would not consider it a proper fix. True, it works, but it undone some of your work on the compiler warnings.
It should be addressed in a way that both resolves the warnings and does not cause the crashes.

That's done already by our proper GDScript maintainer @vnen ;) #22799


IP Address set two times

Into dhcp.c lines 915 et 916 there are two call to setSIPR(zeroip);
I suppose that it is a mistake.

Oh!  thank you for find mistake.
I will fix about this mistake.
thank you very much


Rename master to main in all instructions and config

This pull request changes references to the master branch to the main branch.
Once this is ready to merge, I will:

[x] Rename the default branch in this repository
[x] Update any other PRs in this repository
[x] Rename the default branch in the template repository
[ ] Merge this PR
[x] Test to make sure things work as expected

cc @githubtraining/programs

Tested successfully in the deployed production environment. Merging PR.


[abort] streampark job develop and modify ui provement.

Contribution Checklist
What changes were proposed in this pull request
Issue Number: close #xxx
Improve user experience and optimize job development methods
Brief change log
Improve user experience and optimize job development methods
Verifying this change
This change is a trivial rework / code cleanup without any test coverage.
reworki
This change is already covered by existing tests, such as (please describe tests).
no
Does this pull request potentially affect one of the following parts

Dependencies (does it add or upgrade a dependency): (no)

the edit job page is not available. This PR seems to be unfinished

This PR is currently a work-in-progress and has been tagged "abort". If you are ready, please submit a new PR. We welcome your contributions at any time.


no routes match /javascripts/on_the_spot_code.js

I found javascript_include_tag :on_the_spot did not include on_the_spot_code.js file,
I hava to add it manually, bug?

I need a bit more information here.
Where did you wrote the javascript_include_tag, and what do you mean by including it manually????????
Which version of rails are you using? Which version of the gem?
If you are using rails 3.1, are you using the asset pipeline?
Did you add the require :on_the_spot to the application.js? If you did, you also  included the javascript_include_tag :application in your application.html.erb??
Did you have a look at my demo-application, which works with rails 3.1 : https://github.com/nathanvda/on_the_spot_tester

I'm using Rails 3.0.4， after I runned rails g on_the_spot:install, I could not found on_the_spot_code.js in my public/javascrpts folder, so when I include javascript_include_tag :on_the_spot this in my layout file, I found no routes match /javascripts/on_the_spot_code.js this error.

Ah yes! I see the error now! It copies on_the_spot.js, which now actually is an asset-file for rails 3.1.
It should copy and rename on_the_spot_code.js.
I will fix that later today.

Fixed in c06665bad721902977eefa191211b6298630356f


PWE tolerance is violated when very small

Describe the bug
The bug occurs for data with a very small range near single-precision machine epsilon and when the tolerance is smaller than the smallest representable single-precision positive number.
To Reproduce
Steps to reproduce the behavior:

Compile the following code to generate test data:

#include <cmath>
#include <cstdio>

int main()
{
  double x = 1. / 3;
  for (int i = 0; i < 16 * 16 * 16; i++) {
    double y = std::ldexp(x, -150);
    fwrite(&y, sizeof(y), 1, stdout);
    x = 4 * x * (1 - x);
  }
  return 0;
}

Run this executable and redirect output to data.in. (Downloadable data.tar.gz)

Execute the following:

compressor_3d -d --dims 16 16 16 --pwe 1e-50 -o data.sperr data.in
decompressor_3d -d -o data.out data.sperr

Expected and actual behavior
The maximum error between data.in and data.out is 2.68e-50, which is larger than the tolerance 1e-50.  Perhaps some quantity that should be represented in double precision is actually represented in single precision?
Environment (please complete the following information):

OS: macOS 11.7.2
Compiler: AppleClang <IP_ADDRESS>00029
SPERR Version: 0.5.2

NOTE: The version used is from a few weeks ago.  The "latest" 0.5.2 (3918121-dirty) appears broken as it no longer recognizes -o yet won't run without -o.

NOTE: The version used is from a few weeks ago. The "latest" 0.5.2 (3918121-dirty) appears broken as it no longer recognizes -o yet won't run without -o.

Never mind--it appears that the -o option for the compressor is no longer recognized, but it is required for the decompressor.

Never mind--it appears that the -o option for the compressor is no longer recognized, but it is required for the decompressor.

No worries Peter. FYI, I've changed the compressor so that it can do more than one type of output (Output the compressed bitstream and the double/single precision decompressed volume). As a result, one can get the decompressed volume in one step rather than two.
I've noticed this behavior before, I had some initial investigation and decided that it's the floating point rounding error issue. Let me do more investigation now.

Some additional data points.  When specifying the tolerance as an exact power of two using hexadecimal literals, e.g., 0x1p-149, then we obtain the following tolerance and observed error:
pwe = 2-149 ≈ 1.40e-45 > maxerr ≈ 3.52e-46 [OK]
pwe = 2-150 ≈ 7.01e-46 > maxerr ≈ 5.43e-46 [OK]
pwe = 2-151 ≈ 3.50e-46 < maxerr ≈ 7.86e-46 [FAIL]
Here FLT_TRUE_MIN = 2-149.  Thus, when 2 pwe is representable as a float, all is well, but when pwe is smaller the tolerance is not respected.  I suspect this has something to do with the quantization step being 2 pwe.

I think the issue is here: https://github.com/NCAR/SPERR/blob/3918121d0b192042a425cd3b21ff2f1d151b0952/src/SPERR.cpp#L162-L163
When pwe = 2-152, max_t ≈ 6.94e-46 < FLT_TRUE_MIN ≈ 1.40e-45.  Hence, m_max_threshold_f = m_threshold = 0, which wreaks havoc with the subsequent loop.  However, setting m_threshold = max_t is not sufficient as m_max_threshold_f is stored in the compressed stream and fed to the decompressor.
What's the reason for this explicit cast to float, and why should the threshold not be represented in double precision?

What's the reason for this explicit cast to float, and why should the threshold not be represented in double precision?

It might sound silly now, but I was thinking 1) the maximum threshold is many times bigger than  PWE, so a single-precision representation is sufficient, and 2) the maximum threshold is saved in the header, so I can save 4 bytes by using a float.
I'll run some tests to see if changing to double precision resolves the issue. (I was studying what happens when operands are close to the machine epsilon...)

Hi Peter, I've tested storing double in the outlier corrector, and it really solves the problem! (I pushed the fix to the main branch.) It is really amazing to learn the details about floating point numbers, and you're the only one I know who pays attention to things happening in these tiny ranges! Thank you!
Maybe another topic, I also noticed that the percentage of outliers grow way out of our expected range to something around 87% or 88% when I continue reducing the PWE tolerance. I'll probably need to borrow your brain to look at it at some time ;)

Sam, thanks for fixing this.  For some of the work we're doing at LLNL, we need "small" tolerances below FLT_TRUE_MIN that actually are large in relation to the data being compressed (perhaps on the order of 1-10% of the range), and in those situations everything breaks if the tolerance is violated.
Regarding the test data, this is known as the logistic map, which produces quasi-random sequences in a reasonably portable manner (for a given rounding mode).  I find it useful for generating data that is difficult to compress.

Sam, thanks for fixing this. For some of the work we're doing at LLNL, we need "small" tolerances below FLT_TRUE_MIN that actually are large in relation to the data being compressed (perhaps on the order of 1-10% of the range), and in those situations everything breaks if the tolerance is violated.

For those originally double precision data, what's the compression ratio you get when using below FLT_TRUE_MIN tolerances? I imagine that the cost-benefit calculation is going to shift at that point.

We were seeing lots of outliers before the fix, which really hurt compression.  Once we have some new results, I'll get back to you.  Either way, it shouldn't matter if the tolerance is 1 or 1e-100; what matters is the tolerance relative to the data range.

The reported issue is really solved, so closing the issue.


pyscf: disable test that is numerically slightly off

Description of changes
Again, some update changed one of the PySCF test results just sooo slightly beyond numerical thresholds. The test has been disabled, this is most likely not some fundamental problem.
Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[x] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
23.05 Release Notes (or backporting 22.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

@GrahamcOfBorg build python3Packages.pyscf

builds fine locally.


try to upcast a 7 at the end

testing, watched resnet beam and most conv kernels have an upcasted 7

meh


added  as dependancy for static_thread_pool.cpp

Hi!
I had compilation errors on static_thread_pool.cpp with my gcc-12 compiler, claming std::exchange doesn't belong to std namespace. It compiled after appeding  to the includes.
Also in tasks.hpp my compiler complained that (in gcc case) await_suspend must be noexcept.
I hope that helps!

Have the same problem. Maybe you have some workarounds?


Adding the PlymouthJS logo

Added the PlymouthJS logo as used by our Twitter account (https://twitter.com/PlymouthJS)
Inspired by https://en.wikipedia.org/wiki/Smeaton's_Tower

Thanks @voodootikigod, much appreciated


can we deprecate and archive this?

it doesn't look like anybody is using this, ci has not a single ghc version that doesn't choke on it (at least here), and it seems small enough for it to be ok to inline it whenever it's needed in the future.

A project of mine used it back a while ago but I could easily enough resurrect the code I need in any given project, if needed.

I'm interested in keeping this alive since it looks pretty small.
Looks like it needs a bit more attention, migrating off travis and so. We could possibly host this as part of @haskell-nix org or keep it here if you don't mind.

I don't mind (and I don't think I should have a say in this).  I just thought this looked like one of those things that everybody can write by themselves whenever they need it, because it's easier to write it than to find it.  But there's not much harm in keeping it around either.


enabling setinputsizes to also work with fast_executemany.

This is a potential fix to Issue #380 that makes the setinputsizes behaviour consistent when fast_executemany=True
The logic was copied pretty closely directly from BindParameter -- of course ideally, all parameter binding logic should be re-factored out to somewhere common, but that was a little to ambitious for me as a first-time committer.

This PR includes commit 2f28ec0 which was also included in recently-merged PR #415 so I think this PR can be closed.

Closing at gordthompson's suggestion.  Thanks.


Add and display tags for DataFiles

Also a "description" field per file. Data for both tags and description should be receivable in the TaskUpdateView.


Possible leaks on font collection

Playing around in the Gallery for a minute resulted in a few thousand leaks reported from Xcode Instruments.
They seem to all have
SkFontMgr::matchFamily(char const*) const ../../third_party/skia/src/core/SkFontMgr.cpp:107
txt::FontCollection::GetMinikinFontCollectionForFamily(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) ../../flutter/third_party/txt/src/txt/font_collection.cc:103

in common.
Trace is at https://drive.google.com/drive/folders/1Sa-6BHO6LSlGe69msuJHUsBohQRtUzzo
@cbracken @jason-simmons

@yjbanov Do we have any testing in place to make sure we prevent leaks like this in the future?

We do have some memory benchmarks. Theoretically, a new memory leak would bump the numbers if it were exercised. The benchmarks don't know anything so I'm guessing we're not exercising this part of the system in the benchmark.