Allow snake_case for constructor arguments

Currently, if you have the following:
[MemoryPackable]
public partial class TestMessage {
    public readonly string ExampleText;

    public TestMessage(string example_text) {
        ExampleText = example_text;
    }
}

You get: MEMPACK006: The MemoryPackable object 'TestMessage' constructor's parameter 'example_text' must match a serialized member name(case-insensitive)
It works if you use PascalCase or lowerCamelCase or even flatcase, but not snake_case.
This could be resolved by ignoring all underscores between other characters (e.g. _red_cat treated as _redcat).

Is there a strong reason why you want to use snake_case?
Generally it is not recommended.

Is there a strong reason why you want to use snake_case?
Generally it is not recommended.

There are many different coding styles. Snake case is common in Ruby, and it works in Newtonsoft.Json.

In the case of JSON, the key is a string, so JSON itself may be a snake_case expression; in the case of MemoryPack, it's only C# to C#, so other languages and such don't really matter I think.
Maybe you want to convert JSON -> C# -> MemoryPack. But even in that case, it seems to me that deserializing the JSON in snake_case to C# in camelCase would solve the problem.
If we support snake_case, we may need to support everything, including kebab cases. This would be complicated. We have decided to not to implemented it.
If you can point us to an important use case, we would welcome it. Thanks.

@hadashiA I think this issue should not have been closed. Constructors already support variables starting with an underscore, so the PR only extends the functionality by ignoring underscores completely. I use snake_case in constructors to differentiate from fields as a matter of preference. As for kebab case, C# identifiers don't support kebab case. I don't see a reason to reject the PR.

Using snake_case in constructors is not common practice.
There is no need to add extra support just for that naming convention.


Setup a flow for all user

Setup a flow where a user can create, populate, transact, delete and drop the tables.

completed in https://github.com/ozzyozbourne/CS623-dbms-project/pull/9


Incorrect wording about sharing shared image gallery

Straight from the page it tells that it's recommended to share at shared image gallery level but in fact in instructions you are instructed to give Reader role on Resource Group level instead.
Share the gallery
We recommend that you share access at the **image gallery level**. The following walks you through sharing the gallery that you just created.

Open the Azure portal.
In the menu at the left, select Resource groups.
In the list of resource groups, select **myGalleryRG**. The blade for your resource group will open.
In the menu on the left of the myGalleryRG page, select Access control (IAM).
Under Add a role assignment, select Add. The Add a role assignment pane will open.

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

ID: b276e2a1-6208-4caa-bcda-1f6d11aac207
Version Independent ID: 82f92f2b-9e4a-4851-7547-eceaf3300716
Content: Create an Azure Shared Image Gallery using the portal - Azure Virtual Machines
Content Source: articles/virtual-machines/windows/shared-images-portal.md
Service: virtual-machines-windows
Sub-service: imaging
GitHub Login: @cynthn
Microsoft Alias: cynthn

@artisticcheese
Thanks for the feedback! I have assigned the issue to content author to check and update the document as appropriate.

@cynthn
Can you please check and add your comments on this doc update request as applicable.

I've updated the article to show sharing from the gallery instead of the resource group. Changes should go live next week. Thanks!
#please-close


⚠ Jenkins Plugins Artifactory has degraded performance

In 3f18f91, Jenkins Plugins Artifactory (https://get.jenkins.io/plugins/artifactory/) experienced degraded performance:

HTTP code: 200
Response time: 1257 ms

Resolved: Jenkins Plugins Artifactory performance has improved in 2f8d4ba after 12 minutes.


small compatibility issue

Hello,
Is it an intended feature that TenPy does not work at all under Windows? Your code works fine under my Linux distribution, but on my Windows (blasphemy, I know) machine nosetests yields 59 errors. One that pops up regularly is:
TypeError: Cannot cast array data from dtype('int64') to dtype('int32') according to the rule 'safe'
Using TenPy 0.3.0, Python 3.6.5, Numpy 1.14.2, Scipy 1.1.0

I checked it this morning, the problem is that tenpy.linalg.charges.QTYPE is set to np.int_, which defaults on Windows to the 32-bit np.int32, while np.intp is np.int64, so the conversion between these two types is not save. As a quick fix, setting the QTYPE manually to np.int64 helps to avoid these errors.
After that, nostest on windows gives me a few other erros, which are not so substantial, DMRG & co work. (I didn't try to compile the Cython parts).
One problem is that loading LAPACK fails, but this is only a minor issue, since this only needed for a bugfix (due to the default svd returning a convergence error in some cases), which is not necessary any more with recent scipy versions.

OK, thanks for checking! Sounds like a straightforward fix for your next commit.

The lateset commit f1f52fa solves this in the better way: consistenltly use QTYPE only for charges, and np.intp for other (positive) indices. In that way, QTYPE being different from np.intp should no longer be a problem. I fixed it both in the python and Cython parts of np_conserved.
Any other serious issues on Windows?

With the latest commit you are down to 10 errors (3 unique ones) with a few warnings - I'll leave you to judge whether they are serious issues. I add the output of nosetests:
tenpy_errorlog.txt

Thanks for the error log.
The first 4 Errors are in the network_contractor module, which is completely independent of DMRG/TEBD. Not sure, why this error occurs, looks like empty/0D arrays. I guess, for now, we can ignore it.
The next 3 Errors are due to the failure to import LAPACK. Again, you can ignore this, if you have scipy with a version >= 0.18.0. In the latest commit, I've handled this failure more gracefully and print a corresponding hint (it's now two 'F' instead of 3 'E' when running nosetests)
The remaining errors are caused by a wrong File path, using "/" instead of "\" necessary for windows. This should be fixed now. Could you please check, that these errors dissapeared? Then we could close this issue.

The latest commit still yields an error (total now 7 errors, 2 failures):
AttributeError: 'SyntaxError' object has no attribute 'filename'
There is a probably associated syntax error when running the examples, e.g. running d_dmrg.py returns:
    ../toycodes/tfi_exact.py
    ^
SyntaxError: invalid syntax

You should now be down to 4 errors, 2 failures.
The problem with the examples was that I had used a symlink, which (by default) doesn't give a link on windows, but a file with the content of the link (i.e. the path, the link is pointing to.)
The 4 errors of the network contractor module will probably be removed at some point in the future, but they are not windows specific. The 2 failures are expected on windows (due to missing LAPACK) and are not a problem anymore.


[UnderlineNav2]: Introduce disclosure pattern

Describe your changes here.
Closes # (type the issue number after # if applicable; otherwise remove this line)
Screenshots
Please provide before/after screenshots for any visual changes
Merge checklist

[ ] Added/updated tests
[ ] Added/updated documentation
[ ] Tested in Chrome
[ ] Tested in Firefox
[ ] Tested in Safari
[ ] Tested in Edge

Take a look at the What we look for in reviews section of the contributing guidelines for more information on how we review PRs.

Carrying this comment over here to continue the conversation:

We have a button that toggles a menu.
Menu immediately follows the button element in the DOM hierarchy.

Nice!

Button has aria-controls and its value is the id of the menu.
Button has aria-expanded attribute and conditionally have true / false value.

Yep!

Menu items are navigable with arrow up and arrow down as well as the tab key. (Arrow keys are not implemented in the demo)
Menu doesn't trap the focus.

Sounds great!

Menu can be closed with clicking outside and esc. (Not implemented in the demo)

I view this as a nice-to-have, but certainly not a blocker functionality-wise.

I tried to whip something up quickly today, mainly to get something more tangible for us to discuss from. You can see the half baked prototype here.

It seems like a lot of the following is already on your radar, based on the previous comment. I'm outlining my observations of the linked prototype, just to have it written down to reference.
For the button element used to trigger the overflow menu:

This might seem counterintuitive, but we'll want to remove aria-haspopup="true", as true is aliased to menu. menu in this context has a very specific meaning, which is suggesting the presence of something along the lines of a right click menu rather than a navigation menu.
We'll also want to remove the tabindex="0" declaration, as the button element itself is focusable without it.
We'll need `aria-expanded="false" initially set, to communicate that it is expandable when focused.

For the menu itself:

We'll want to remove the declaration of role="menu on the ul element, for the same reason as `aria-haspopup="true". This is a navigation-style menu, and not a context-style menu.
For the link items, we'll also want to remove:

tabindex="0", as the link element itself is focusable.
aria-labelledby, as the link's text string supplies its accessible name.
role="menuitemradio", as a navigation context uses links and not menu items.
aria-checked="false", as navigation items are not toggleable.
aria-keyshortcuts, as we'll not want keyboard shortcut commands for navigation items.

This feels to me like a lot of it is getting inherited from ActionMenu, so hopefully decoupling from that component will address things.

@ericwbailey I apologise again for pointing out the wrong demo. Here is the correct one. With some update, these are the key points that will come with the disclosure pattern:

We have a button that toggles a menu.
Menu immediately follows the button element in the DOM hierarchy.
Button has aria-controls and its value is the id of the menu.
Button has aria-expanded attribute and conditionally have true / false value.
Navigation items (both list and menu items) are navigable with arrow horizontal, arrow vertical keys and the tab key.
Menu doesn't trap the focus.
Menu can be closed with clicking outside and esc. (Currently focus doesn't return the menu but I think it should right?)

Thank you so much again 🙏🏼


Add New Relic Pinger detection

See https://docs.newrelic.com/docs/alerts/new-relic-alerts/managing-notification-channels/availability-monitoring-legacy#configure for reference

@JayBizzle Which version is deployed on https://crawlerdetect.io/ ? It's returning false for https://crawlerdetect.io/?q=NewRelicPinger/1.0

The latest version is deployed, but it looks like the regex that was added here...
https://github.com/JayBizzle/Crawler-Detect/blob/7230d43218b5b21bf3164778b3244e7b2daf76e4/src/Fixtures/Crawlers.php#L670
...may be too specific. It will only match user agents that look something like...
NewRelicPinger/1.0 (543245)

We could change the regex to something a little less specific like 'NewRelicPinger\/1.0'
I can do that later this week unless you fancy submitting a PR @timersys
Thanks 👍


Add HTTP headers

Pull Request Test Coverage Report for Build 777

9 of 22 (40.91%)  changed or added relevant lines in 1 file are covered.
12 unchanged lines in 4 files lost coverage.
Overall coverage decreased (-0.09%) to 55.214%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

connectors/gridgo-http-jdk/src/main/java/io/gridgo/connector/httpjdk/HttpJdkProducer.java
9
22
40.91%

Files with Coverage Reduction
New Missed Lines
%

connectors/gridgo-http-jdk/src/main/java/io/gridgo/connector/httpjdk/HttpJdkProducer.java
1
58.02%

connectors/gridgo-redis/src/main/java/io/gridgo/redis/command/sortedset/RedisZrangeByLexHandler.java
2
0.0%

connectors/gridgo-kafka/src/main/java/io/gridgo/connector/kafka/KafkaConsumer.java
3
81.28%

connectors/gridgo-jetty-http/src/main/java/io/gridgo/connector/jetty/impl/AbstractJettyResponder.java
6
64.45%

Totals

Change from base Build 769:
-0.09%

Covered Lines:
3516

Relevant Lines:
6368

💛  - Coveralls


Bug: JS keys should be bigint

Describe the bug
Index::Add currently validates the key expecting it to be a number.
Steps to reproduce
N/A
Expected behavior
The validation should expect it to be a bigint.
USearch version
#20566e0ecdd99564150602dd96610e4be377e080
Operating System
N/A
Hardware architecture
Arm
Which interface are you using?
Other bindings
Contact Details
No response
Is there an existing issue for this?

[X] I have searched the existing issues

Code of Conduct

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

Hey, @gustavopch! I have put in your suggestions and preparing to merge them into the primary repo. Do you have any recommendations for the idiomatic way of writing tests for JS/TS packages? For now, it is trivial.

I think you can just use Node.js' new built-in test tools: https://nodejs.org/api/test.html

@ashvardanian I think you can just use Node.js' new built-in test tools: https://nodejs.org/api/test.html

@gustavopch we also run those tests for WASM builds, and I am not sure this method will work in both places.

:tada: This issue has been resolved in version 0.23.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


[FLINK-18665][filesystem] Filesystem connector should use TableSchema exclude computed columns.

What is the purpose of the change

This pull request fix filesystem connector does not use TableSchema that exclude computed columns..

Brief change log

Use TableSchemaUtils to get physical schema in FileSystemTableFactory

Verifying this change

Add test in existed ITCase(FileSystemITCaseBase).

Does this pull request potentially affect one of the following parts:

Dependencies (does it add or upgrade a dependency): (no)
The public API, i.e., is any changed class annotated with @Public(Evolving): (no)
The serializers: (no)
The runtime per-record code paths (performance sensitive): ( no)
Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Yarn/Mesos, ZooKeeper: (no)
The S3 file system connector: (no)

Documentation

Does this pull request introduce a new feature? (no)
If yes, how is the feature documented? (not applicable / docs / JavaDocs / not documented)

Thanks @leonardBang for contribution, merged.


build (C sshnpd): build for BSD

I was able to start this last week, I got as far as getting a binary to run. Immediately hit a blocker with the file system as the program couldn't find the atKeys file.

@cpswan @cconstab I don't think I am getting back to this work any time soon.

@cpswan could you take the reigns?

@cconstab I'll give it a go.

Here's what I did to get C sshnpd running on FreeBSD 14.1:
as root:
pkg update && pkg upgrade
pkg install git cmake

as user:
git clone https://github.com/atsign-foundation/noports.git
cd noports/packages/c/sshnpd/
cmake -B build -S . -DBUILD_SHARED_LIBS=off -DCMAKE_C_COMPILER=clang -DCMAKE_C_FLAGS="-pthread"
cmake --build build
mkdir ~/.ssh
chmod 700 ~/.ssh
touch ~/.ssh/authorized_keys

Then the usual ./build/sshnpd -a @deviceatsign -m @manageratsign -d freebsd

Also running on OPNsense 24.7

Working on FreeBSD 13.4
FWIW the 13.4 binary works on 14.1, and the 14.1 binary works on 13.4. These are not things we should rely on given that libc and kernel releases for FreeBSD are aligned (and break across major releases - even if it doesn't [apparently] happen to impact the areas we use across this release pair).

Not quite building on 11.3
I have CMake compiled, and I got Clang 20, but that fails to build CJSON. So trying Clang 18.1
Moving to PR94 and reducing to 2SP for final throws of that work.

Clang 18.1 failed along similar lines.
I'm going to stop here rather than spending any more time on out of support builds.
The problem lies with CJSON (@JeremyTubongbanua and @XavierChanth FYI):
[ 38%] Building C object _deps/cjson-build/CMakeFiles/cjson.dir/cJSON.c.o
/usr/home/chris/noports/packages/c/sshnpd/build/_deps/cjson-src/cJSON.c:566:9: error: '_Generic' is a C11 extension [-Werror,-Wc11-extensions]
  566 |     if (isnan(d) || isinf(d))
      |         ^
/usr/include/math.h:114:2: note: expanded from macro 'isnan'
  114 |         __fp_type_select(x, __inline_isnanf, __inline_isnan, __inline_isnanl)
      |         ^
/usr/include/math.h:82:39: note: expanded from macro '__fp_type_select'
   82 | #define __fp_type_select(x, f, d, ld) _Generic((x),                     \
      |                                       ^
/usr/home/chris/noports/packages/c/sshnpd/build/_deps/cjson-src/cJSON.c:566:9: error: due to lvalue conversion of the controlling expression, association of type 'volatile float' will never be selected because it is qualified [-Werror,-Wunreachable-code-generic-assoc]
/usr/include/math.h:114:2: note: expanded from macro 'isnan'
  114 |         __fp_type_select(x, __inline_isnanf, __inline_isnan, __inline_isnanl)
      |         ^
/usr/include/math.h:86:14: note: expanded from macro '__fp_type_select'
   86 |     volatile float: f(x),                                               \
      |              ^
/usr/home/chris/noports/packages/c/sshnpd/build/_deps/cjson-src/cJSON.c:566:9: error: due to lvalue conversion of the controlling expression, association of type 'volatile double' will never be selected because it is qualified [-Werror,-Wunreachable-code-generic-assoc]
/usr/include/math.h:114:2: note: expanded from macro 'isnan'
  114 |         __fp_type_select(x, __inline_isnanf, __inline_isnan, __inline_isnanl)
      |         ^
/usr/include/math.h:87:14: note: expanded from macro '__fp_type_select'
   87 |     volatile double: d(x),                                              \
      |              ^
/usr/home/chris/noports/packages/c/sshnpd/build/_deps/cjson-src/cJSON.c:566:9: error: due to lvalue conversion of the controlling expression, association of type 'volatile long double' will never be selected because it is qualified [-Werror,-Wunreachable-code-generic-assoc]
/usr/include/math.h:114:2: note: expanded from macro 'isnan'
  114 |         __fp_type_select(x, __inline_isnanf, __inline_isnan, __inline_isnanl)
      |         ^
/usr/include/math.h:88:14: note: expanded from macro '__fp_type_select'
   88 |     volatile long double: ld(x),                                        \
      |              ^
/usr/home/chris/noports/packages/c/sshnpd/build/_deps/cjson-src/cJSON.c:566:9: error: due to lvalue conversion of the controlling expression, association of type 'const volatile float' will never be selected because it is qualified [-Werror,-Wunreachable-code-generic-assoc]
/usr/include/math.h:114:2: note: expanded from macro 'isnan'
  114 |         __fp_type_select(x, __inline_isnanf, __inline_isnan, __inline_isnanl)
      |         ^
/usr/include/math.h:89:20: note: expanded from macro '__fp_type_select'
   89 |     volatile const float: f(x),                                         \
      |                    ^
/usr/home/chris/noports/packages/c/sshnpd/build/_deps/cjson-src/cJSON.c:566:9: error: due to lvalue conversion of the controlling expression, association of type 'const volatile double' will never be selected because it is qualified [-Werror,-Wunreachable-code-generic-assoc]
/usr/include/math.h:114:2: note: expanded from macro 'isnan'
  114 |         __fp_type_select(x, __inline_isnanf, __inline_isnan, __inline_isnanl)
      |         ^
/usr/include/math.h:90:20: note: expanded from macro '__fp_type_select'
   90 |     volatile const double: d(x),                                        \
      |                    ^
/usr/home/chris/noports/packages/c/sshnpd/build/_deps/cjson-src/cJSON.c:566:9: error: due to lvalue conversion of the controlling expression, association of type 'const volatile long double' will never be selected because it is qualified [-Werror,-Wunreachable-code-generic-assoc]
/usr/include/math.h:114:2: note: expanded from macro 'isnan'
  114 |         __fp_type_select(x, __inline_isnanf, __inline_isnan, __inline_isnanl)
      |         ^
/usr/include/math.h:91:20: note: expanded from macro '__fp_type_select'
   91 |     volatile const long double: ld(x),                                  \
      |                    ^
/usr/home/chris/noports/packages/c/sshnpd/build/_deps/cjson-src/cJSON.c:566:9: error: due to lvalue conversion of the controlling expression, association of type 'const float' will never be selected because it is qualified [-Werror,-Wunreachable-code-generic-assoc]
/usr/include/math.h:114:2: note: expanded from macro 'isnan'
  114 |         __fp_type_select(x, __inline_isnanf, __inline_isnan, __inline_isnanl)
      |         ^
/usr/include/math.h:92:11: note: expanded from macro '__fp_type_select'
   92 |     const float: f(x),                                                  \
      |           ^
/usr/home/chris/noports/packages/c/sshnpd/build/_deps/cjson-src/cJSON.c:566:9: error: due to lvalue conversion of the controlling expression, association of type 'const double' will never be selected because it is qualified [-Werror,-Wunreachable-code-generic-assoc]
/usr/include/math.h:114:2: note: expanded from macro 'isnan'
  114 |         __fp_type_select(x, __inline_isnanf, __inline_isnan, __inline_isnanl)
      |         ^
/usr/include/math.h:93:11: note: expanded from macro '__fp_type_select'
   93 |     const double: d(x),                                                 \
      |           ^
/usr/home/chris/noports/packages/c/sshnpd/build/_deps/cjson-src/cJSON.c:566:9: error: due to lvalue conversion of the controlling expression, association of type 'const long double' will never be selected because it is qualified [-Werror,-Wunreachable-code-generic-assoc]
/usr/include/math.h:114:2: note: expanded from macro 'isnan'
  114 |         __fp_type_select(x, __inline_isnanf, __inline_isnan, __inline_isnanl)
      |         ^
/usr/include/math.h:94:11: note: expanded from macro '__fp_type_select'
   94 |     const long double: ld(x))
      |           ^
/usr/home/chris/noports/packages/c/sshnpd/build/_deps/cjson-src/cJSON.c:566:21: error: '_Generic' is a C11 extension [-Werror,-Wc11-extensions]
  566 |     if (isnan(d) || isinf(d))
      |                     ^
/usr/include/math.h:112:18: note: expanded from macro 'isinf'
  112 | #define isinf(x) __fp_type_select(x, __isinff, __isinf, __isinfl)
      |                  ^
/usr/include/math.h:82:39: note: expanded from macro '__fp_type_select'
   82 | #define __fp_type_select(x, f, d, ld) _Generic((x),                     \
      |                                       ^
/usr/home/chris/noports/packages/c/sshnpd/build/_deps/cjson-src/cJSON.c:566:21: error: due to lvalue conversion of the controlling expression, association of type 'volatile float' will never be selected because it is qualified [-Werror,-Wunreachable-code-generic-assoc]
/usr/include/math.h:112:18: note: expanded from macro 'isinf'
  112 | #define isinf(x) __fp_type_select(x, __isinff, __isinf, __isinfl)
      |                  ^
/usr/include/math.h:86:14: note: expanded from macro '__fp_type_select'
   86 |     volatile float: f(x),                                               \
      |              ^
/usr/home/chris/noports/packages/c/sshnpd/build/_deps/cjson-src/cJSON.c:566:21: error: due to lvalue conversion of the controlling expression, association of type 'volatile double' will never be selected because it is qualified [-Werror,-Wunreachable-code-generic-assoc]
/usr/include/math.h:112:18: note: expanded from macro 'isinf'
  112 | #define isinf(x) __fp_type_select(x, __isinff, __isinf, __isinfl)
      |                  ^
/usr/include/math.h:87:14: note: expanded from macro '__fp_type_select'
   87 |     volatile double: d(x),                                              \
      |              ^
/usr/home/chris/noports/packages/c/sshnpd/build/_deps/cjson-src/cJSON.c:566:21: error: due to lvalue conversion of the controlling expression, association of type 'volatile long double' will never be selected because it is qualified [-Werror,-Wunreachable-code-generic-assoc]
/usr/include/math.h:112:18: note: expanded from macro 'isinf'
  112 | #define isinf(x) __fp_type_select(x, __isinff, __isinf, __isinfl)
      |                  ^
/usr/include/math.h:88:14: note: expanded from macro '__fp_type_select'
   88 |     volatile long double: ld(x),                                        \
      |              ^
/usr/home/chris/noports/packages/c/sshnpd/build/_deps/cjson-src/cJSON.c:566:21: error: due to lvalue conversion of the controlling expression, association of type 'const volatile float' will never be selected because it is qualified [-Werror,-Wunreachable-code-generic-assoc]
/usr/include/math.h:112:18: note: expanded from macro 'isinf'
  112 | #define isinf(x) __fp_type_select(x, __isinff, __isinf, __isinfl)
      |                  ^
/usr/include/math.h:89:20: note: expanded from macro '__fp_type_select'
   89 |     volatile const float: f(x),                                         \
      |                    ^
/usr/home/chris/noports/packages/c/sshnpd/build/_deps/cjson-src/cJSON.c:566:21: error: due to lvalue conversion of the controlling expression, association of type 'const volatile double' will never be selected because it is qualified [-Werror,-Wunreachable-code-generic-assoc]
/usr/include/math.h:112:18: note: expanded from macro 'isinf'
  112 | #define isinf(x) __fp_type_select(x, __isinff, __isinf, __isinfl)
      |                  ^
/usr/include/math.h:90:20: note: expanded from macro '__fp_type_select'
   90 |     volatile const double: d(x),                                        \
      |                    ^
/usr/home/chris/noports/packages/c/sshnpd/build/_deps/cjson-src/cJSON.c:566:21: error: due to lvalue conversion of the controlling expression, association of type 'const volatile long double' will never be selected because it is qualified [-Werror,-Wunreachable-code-generic-assoc]
/usr/include/math.h:112:18: note: expanded from macro 'isinf'
  112 | #define isinf(x) __fp_type_select(x, __isinff, __isinf, __isinfl)
      |                  ^
/usr/include/math.h:91:20: note: expanded from macro '__fp_type_select'
   91 |     volatile const long double: ld(x),                                  \
      |                    ^
/usr/home/chris/noports/packages/c/sshnpd/build/_deps/cjson-src/cJSON.c:566:21: error: due to lvalue conversion of the controlling expression, association of type 'const float' will never be selected because it is qualified [-Werror,-Wunreachable-code-generic-assoc]
/usr/include/math.h:112:18: note: expanded from macro 'isinf'
  112 | #define isinf(x) __fp_type_select(x, __isinff, __isinf, __isinfl)
      |                  ^
/usr/include/math.h:92:11: note: expanded from macro '__fp_type_select'
   92 |     const float: f(x),                                                  \
      |           ^
/usr/home/chris/noports/packages/c/sshnpd/build/_deps/cjson-src/cJSON.c:566:21: error: due to lvalue conversion of the controlling expression, association of type 'const double' will never be selected because it is qualified [-Werror,-Wunreachable-code-generic-assoc]
/usr/include/math.h:112:18: note: expanded from macro 'isinf'
  112 | #define isinf(x) __fp_type_select(x, __isinff, __isinf, __isinfl)
      |                  ^
/usr/include/math.h:93:11: note: expanded from macro '__fp_type_select'
   93 |     const double: d(x),                                                 \
      |           ^
/usr/home/chris/noports/packages/c/sshnpd/build/_deps/cjson-src/cJSON.c:566:21: error: due to lvalue conversion of the controlling expression, association of type 'const long double' will never be selected because it is qualified [-Werror,-Wunreachable-code-generic-assoc]
/usr/include/math.h:112:18: note: expanded from macro 'isinf'
  112 | #define isinf(x) __fp_type_select(x, __isinff, __isinf, __isinfl)
      |                  ^
/usr/include/math.h:94:11: note: expanded from macro '__fp_type_select'
   94 |     const long double: ld(x))
      |           ^
20 errors generated.
*** Error code 1

Stop.
make[2]: stopped in /usr/home/chris/noports/packages/c/sshnpd/build
*** Error code 1

Stop.
make[1]: stopped in /usr/home/chris/noports/packages/c/sshnpd/build
*** Error code 1

Stop.
make: stopped in /usr/home/chris/noports/packages/c/sshnpd/build

Here's the clang that I'm using:
$ /usr/home/chris/llvm-project/build/bin/clang --version
clang version 18.1.8 (https://github.com/llvm/llvm-project.git 3b5b5c1ec4a3095ab096dd780e84d7ab81f3d7ff)
Target: x86_64-unknown-freebsd11.3
Thread model: posix
InstalledDir: /usr/home/chris/llvm-project/build/bin

and my CMake command line:
cmake -B build -S . -DBUILD_SHARED_LIBS=off -DCMAKE_C_COMPILER="/usr/home/chris/llvm-project/build/bin/clang" -DCMAKE_C_FLAGS="-pthread"


Solved Critical-Connections-in-a-Network [LeetCode 1192 | Graph | Hard] and update Readme.md

Solution of Critical-Connections-in-a-Network [LeetCode 1192 | Graph | Hard]
Addresses Issue #11
Approach: Used Tarjan's Algorithm to find bridges in an undirected graph explained here
Time Complexity: O(V + E)
Posted solution on Discuss page in LeetCode: https://leetcode.com/problems/critical-connections-in-a-network/discuss/870598/c-tarjans-algo-dfs-solution
The solution passes all test cases of LeetCode and beats 80% of the solutions
Put check marks:
Have you made changes in README file ?

[x] Added problem & solution under correct topic.
[x] Specified Space & Time complexity.
[x] Specified difficulty level, tag & Note(if any).

Make sure all below guidelines are followed else PR will get Reject:

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[x] I have commented my code so that it is easy to understand
[x] I have made corresponding changes to the documentation
[x] My changes generate no new warnings
[ ] Any dependent changes have been merged and published in downstream modules

@SaumiaSinghal Thanks for creating the PR.
One suggestion for future - You can create a single PR when you are pushing 2-3 problems at the same time. Everything else is fine.

Oh sure @GouravRusiya30! I will keep that in mind.


CLI to replace vit-kedqr

The functionality in vit-kedqr a Go-based tool used to test Catalyst the app,
should be incorporated into the tools in this Rust project. Most of the implementation has been done by @enzoc4, it just needs a CLI and some glue logic.

Vit-kedqr  project is a production component which enable qr code generation for those users who want to register themselves via vit-registration-tool cli rather than use Daedalus UI.
Initial implementation was written in go as a interim solution. We would like to keep our code in rust to easily use it in tests as a library but also as a cli tool with the same functionality.
Rust implementaion is here:
https://github.com/input-output-hk/jormungandr/blob/master/testing/jormungandr-testing-utils/src/qr_code.rs
The idea i would like to pursue is that qr_code  module would be reused in tests and in production code, so it can be a separate project. Then we would work on adjusting jormungandr and vit-testing code to reuse vit-kedqr in tests

Vit-kedqr  project is a production component which enable qr code generation for those users who want to register themselves via vit-registration-tool cli rather than use Daedalus UI.
Initial implementation was written in go as a interim solution. We would like to keep our code in rust to easily use it in tests as a library but also as a cli tool with the same functionality.
Rust implementaion is here:
https://github.com/input-output-hk/jormungandr/blob/master/testing/jormungandr-testing-utils/src/qr_code.rs
The idea i would like to pursue is that qr_code  module would be reused in tests and in production code, so it can be a separate project. Then we would work on adjusting jormungandr and vit-testing code to reuse vit-kedqr in tests


Links in labels

Hello!
Some text a link some text
In this case the link is almost unseen because of the color of the "info label"

Labels aren't designed to handle anything more complicated than text and icons within them. You'll need to account for these kind of variations on your own, though I wouldn't recommend nesting links within such a small element. Labels—and badges—are about as small and focused of a component as you can get in Bootstrap and other UI systems.


issue with generics in properties

hi again and thanks for taking a quick action on my other issues!
another thing I noticed now was to do with properties with generic types, i.e.
/// <summary>
///  Test list property.
/// </summary>
public List<int> TestList { get; }

is rendered as:

I have started looking into this and using this commit I think I managed to fix this in here
not sure if the generics need to be additionally parsed further as in the parse_method_signature and CSharpMethod.handle_signature but things seem to be doing fine without it.
I also tried it on a nested generic property like so
/// <summary>
///  Nested generic property test.
/// </summary>
public Dictionary<Enum, List<IList<int>>> TestDictionary { get; } =
    new Dictionary<Enum, List<IList<int>>>();

and the output seems fine:

I still don't like that both getter and setter are rendered, regardless of if the setter is present or not.
will give it a go and submit a PR afterwards
best,
wiktor

I added a quick debug output to parse_property_signature
print(f"sig: {sig.strip()}")
print(f"groups: {groups}")

and it seems that the signature always contains the setter, so I think it might be a breathe issue
sig: List< int > TestList {get;set;}
groups: (None, 'List< int >', '< int >', 'TestList', 'get;', 'set;', None)

definition:
/// <summary>
///  Getter only.
/// </summary>
public List<int> TestList { get; }

doxygen:

I'm giving up on the setter issue for now
best,
wiktor


Fix: Distance - Unable to save distance when Start and Stop waypoints are valid address

Explanation of Change

This PR fixes route validation for offline modifications with waypoint errors.
Fixed Issues

$ https://github.com/Expensify/App/issues/48401
PROPOSAL: https://github.com/Expensify/App/issues/48401#issuecomment-2362722095
Tests

Open App
Go to workspace/1:1 chat.
Submit a distance expense.
Go to transaction thread.
Go offline.
Click Distance.
Change both Start and Stop waypoints to invalid address ( use random strings).
Save it.
Go online.
Click on the header subtitle to return to main chat.
Click on the expense preview.
Click Distance.
Note that the waypoints are valid addresses (from Step 3).
Click Save.
Verify that the distance will be saved because Start and Stop waypoints are valid.

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

Offline tests

Same as test
QA Steps

Same as test

[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 comments were added to code that is not self explanatory
[X] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[X] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

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

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

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

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

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

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

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

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

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

Screenshots/Videos

Android: Native
https://github.com/user-attachments/assets/8dfce29a-ed55-4532-ab59-01be2cd2e3f9
https://github.com/user-attachments/assets/e103e4a9-7874-4140-a0e6-974b1ed2c69f

Android: mWeb Chrome
https://github.com/user-attachments/assets/2f4b25c4-90d2-4aab-8472-856fca42dd44
https://github.com/user-attachments/assets/6e80a482-f351-45b3-90e0-0868d24684b6

iOS: Native
https://github.com/user-attachments/assets/9c535e0c-9548-4a23-8851-a00ff8a79fb4
https://github.com/user-attachments/assets/d9a0f868-4f09-4caf-8dc6-651932a5238d

iOS: mWeb Safari
https://github.com/user-attachments/assets/f211f2da-eeb1-46a0-bac0-39382d5062a6
https://github.com/user-attachments/assets/3c183c51-6252-42a5-a57b-c4aa6de373a8

MacOS: Chrome / Safari
https://github.com/user-attachments/assets/0ed1eeb3-6df0-4436-ae6b-4db17073a07e
https://github.com/user-attachments/assets/56834cfb-c89a-4c5d-8de7-0122625cf2b4

MacOS: Desktop
https://github.com/user-attachments/assets/a64f59a7-4ab3-4096-a2a4-2dcd58d42604
https://github.com/user-attachments/assets/d0e0d33a-d75c-4ef2-9839-7a3e7419828a

@wildan-m I can still reproduce the error in offline mode. Even though, valid waypoints are shown, waypoint error is shown.
https://github.com/user-attachments/assets/cd503bbe-5938-4e79-83a7-a8679006760f

The other issue is even when error is shown, user is allowed to save the waypoints when offline.
https://github.com/user-attachments/assets/d332c98d-31f6-40b2-b838-e3be8d309a45

@sobitneupane Thank you for the feedback. I couldn't address the offline issues with the current solution, but I believe I have a better solution now.
Please check this new Alternative 2 solution https://github.com/Expensify/App/issues/48401#issuecomment-2362722095
Branch for that new solution

Thanks for the update @wildan-m
I have not tested your solution yet. But I believe it would be more efficient to clear the error when we open the MoneyRequestView page if required, rather than iterating on each update.

@sobitneupane any suggestion to improve current solution? I couldn't figured out one yet for the offline case, because there is no way we can server validate the transaction and transactionBackup while it's offline. IMO that x button in the moneyrequest view should be sufficient to handle that case

Or we might also need to provide x button in the distance editor?

@sobitneupane Hi, I've got an idea, while offline we can clear the error if all of the routes is a server validate route
useFetchRoute

    useEffect(() => {
        if(isOffline && hasRouteError && isDistanceRequest){
            const waypointValues = Object.values(waypoints || {});
            const allWaypointsServerValidated = waypointValues.every(waypoint => waypoint.lat !== 0 && waypoint.lng !== 0 && waypoint.name);

            if (allWaypointsServerValidated) {
                TransactionAction.clearError(transaction.transactionID);
            }
            return;
        }

        if (isOffline || !shouldFetchRoute || !transaction?.transactionID) {
            return;
        }

        TransactionAction.getRoute(transaction.transactionID, validatedWaypoints, transactionState);
        setIsInitialMount(false);
    }, [shouldFetchRoute, transaction?.transactionID, validatedWaypoints, isOffline, action, transactionState]);

Testing it..., please let me know if you have any concerns

@sobitneupane I think it's working. The PR has been updated

@sobitneupane additional update: we should also modify clearError to accept transactionState so the error message won't reappear when navigating back without saving in the distance editor.

function clearError(transactionID: string, transactionState: TransactionState = CONST.TRANSACTION.STATE.CURRENT) {
    let keyPrefix;
    switch (transactionState) {
        case CONST.TRANSACTION.STATE.DRAFT:
            keyPrefix = ONYXKEYS.COLLECTION.TRANSACTION_DRAFT;
            break;
        case CONST.TRANSACTION.STATE.BACKUP:
            keyPrefix = ONYXKEYS.COLLECTION.TRANSACTION_BACKUP;
            break;
        case CONST.TRANSACTION.STATE.CURRENT:
        default:
            keyPrefix = ONYXKEYS.COLLECTION.TRANSACTION;
            break;
    }

    Onyx.merge(`${keyPrefix}${transactionID}`, {errors: null, errorFields: {route: null}});
}

Thanks for the update @wildan-m
I am not sure if we are heading in the right direction. I believe we can have a solution much simpler than this. I will let you know once I thoroughly go through it.

additional update: we should also modify clearError to accept transactionState so the error message won't reappear when navigating back without saving in the distance editor.

@wildan-m Can you please explain this change? Why do we need it and what are we trying to achieve?

Instead of making change in useFetchRoute, should we make the required change in IOURequestStepDistance?
useEffect(() => {
        if (!hasRouteError || !hasRoute) {
            return;
        }

        TransactionAction.clearError(transaction?.transactionID);
    }, []);

Instead of making change in useFetchRoute, should we make the required change in IOURequestStepDistance?
useEffect(() => {
        if (!hasRouteError || !hasRoute) {
            return;
        }

        TransactionAction.clearError(transaction?.transactionID);
    }, []);

@sobitneupane will this code remove error messages even when there is invalid waypoints?
Or did you mean to extract this change  to IOURequestStepDistance?

@wildan-m Can you please explain https://github.com/Expensify/App/pull/52736#issuecomment-2498232881? Why do we need it and what are we trying to achieve?

When we open waypoint editor, the transaction backup will be created. When a backup created it will also clone the errors.
If we tap back button without saving the editor, this transaction backup will be restored, including its error message.
If we apply this change without modifying clearError, we only clear the error from main transaction onyx data ONYXKEYS.COLLECTION.TRANSACTION without clearing the error message in the backup. That will make the error message re-shown if we tap back button without saving the waypoint editor, so we have to clear errors from both keys, main transaction ONYXKEYS.COLLECTION.TRANSACTION and its backup ONYXKEYS.COLLECTION.TRANSACTION_BACKUP

will this code remove error messages even when there is invalid waypoints?

I believe it would be enough but it needs more testing.

@sobitneupane not sure, but I can't make it working. Is there other parts need to be changed?
https://github.com/user-attachments/assets/00198413-4ef2-4a47-abfb-6b4292514ce2

@sobitneupane not sure, but I can't make it working. Is there other parts need to be changed?
Kapture.2024-12-19.at.16.43.08.mp4

Oh! My bad. I mean along with backupWaypoints change.
    const backupWaypoints = transactionBackup?.comment?.waypoints;

Anyway, I am getting "Unexpected error ..." while trying to implement the change I suggested.

Anyway, I am getting "Unexpected error editing this expense. Please try again later." while trying to implement the change I suggested.

I am getting same error while testing the PR as well.

The other issue is: When I am on the IOURequestStepDistance page while going online, the invalid waypoints error is shown with valid waypoints. I think it will be reproducible with this approach as well.
https://github.com/user-attachments/assets/6c0b88a4-f162-4cc3-aae2-5051c61e0d4a


BUG: Contact Us form styling is not effective

Is there an existing issue for this?

[X] I have searched the existing issues

What happened?

Improving styling and transition of Contact Us form
Record

[X] I agree to follow this project's Code of Conduct
[X] I'm a GSSOC'24 contributor
[X] I want to work on this issue

I can fix the UI . Please assign , I can start working on it !

I can make changes and make it work please assign me issue #1424

I can make contact us form as shown in image, assign me this issue


Encryption?

Does this solution support encrypting sqlite using native passcode in both platforms?

We use sqflite as a backend on Flutter, which doesn't support encryption, see #45. There seems to be quite some interest in encrypted databases, I'll see what I can do!
Closing as duplicate.


Jetbrains Idea-Ultimate 2016.3.4 -> 2017.1

Motivation for this change
Support for latest Idea-Ultimate (2017.1).
Things done

[ ] Tested using sandboxing
(nix.useSandbox on NixOS,
or option build-use-sandbox in nix.conf
on non-NixOS)
Built on platform(s)

[ ] NixOS
[ ] macOS
[ ] Linux

[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Fits CONTRIBUTING.md.

What is our policy for backports of IDEs major revisions?

I should've requested the pull against master, not the release-17.03 tag.

@Mic92 We generally bring those into stable when an old version stops working properly (to some degree). With Atom, for example, you can't install certain plugins anymore if you are too far behind...

@rydnr we already have it in master. But it is probably also ok to push it to master.

@Mic92 You mean 17.03? We can just cherry-pick the commit rather than using this PR. Probably easier if we ever need to merge larger chunks from one branch to the other...

@NeQuissimus this is probably not possible, because we have recently moved idea to jetbrains.

@Mic92 Oh okay... Did not know that... The merge is probably fine then


Add 'Add to wallet' buttons for token addresses on the Info page

Issue #3

Closing in favor of #36 which I had been pairing with @rstycedar on as part of his onboarding-- I didn't realize you wanted to take this ticket too, sorry. Please ping me on discord so we can sync up and get tickets assigned properly!


Video/media: add metadata to modals

Closes #72

@rperlin-ela
The metadata (and embed from before) are wired up for individual YouTube vids if you want to test it out: http://deploy-preview-116--languagemapping.netlify.app/
YT playlists and Archive are all kinds of broken but I'm not stuck, just spent for the night, I should be able to wrap it up tomorrow though.

Ross-
here's most recent deploy (same url): https://deploy-preview-116--languagemapping.netlify.app/
let me know if i missed anything in here or #72

@rperlin-ela all good?
https://deploy-preview-116--languagemapping.netlify.app/

all good

On Oct 20, 2020, at 6:06 PM, Jason Lampel<EMAIL_ADDRESS>wrote:
@rperlin-ela https://github.com/rperlin-ela all good?
https://deploy-preview-116--languagemapping.netlify.app/ https://deploy-preview-116--languagemapping.netlify.app/
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/Language-Mapping/language-map/pull/116#issuecomment-713167370, or unsubscribe https://github.com/notifications/unsubscribe-auth/AMNKB5H74MHB3XIQYQAXDHTSLYCUXANCNFSM4SROP44Q.


feat(adapters): add cloudflare-workers-esm adapter

Closes: #764
Supersedes: #4401 #4198 #1207

[x] Docs
[x] Tests

Testing Strategy:

I imported the compiled packages locally into my full-stack Remix project (using npm local file path resolution), then updated my server/index.ts file to use ES Modules. I checked the compiled code to ensure it was using the new dependencies as well as the new ESM code. I then ran it in<EMAIL_ADDRESS>and deployed to Cloudflare, where everything worked.

I wasn’t able to run the deploy test because I don’t have access to Remix’s Cypress server or their production Cloudflare account.
Additional Notes
The main blocker for past attempts at this is that @cloudflare/kv-asset-handler requires the code to import a manifest file (as a JSON blob) from a special URL (__STATIC_CONTENT_MANIFEST). We can’t let esbuild try to bundle this, but if we try to add the import to @remix-run/cloudflare-workers (in order to try and interop), then esbuild leaves a raw ES6 import in the CJS code, which will fail to compile for CJS users!
In order to keep build (and code) complexity at a minimum, I think it makes the most sense to avoid interoperability & build this package separately, as a new adapter. This is similar to how Cloudflare Pages is split up, despite using an extremely similar architecture under the hood.
There are a few more scrutinable choices I made that I want to call out, in case the Remix or Workers teams disagree:

In code, I’ve preferred the naming scheme cloudflare-workers vs cloudflare-workers-esm, because this means we don’t have to edit or deprecate the existing package, and the new one has a relatively short name.
In docs, I’ve preferred Cloudflare’s naming scheme of ‘Service Worker syntax’ vs ‘Module Worker syntax’, but also clarified it as ‘Module Worker syntax (ESM)’ where that makes sense, just to reduce confusion as much as possible.
I didn’t add/update any tests beyond the deploy test, because cloudflare-pages didn’t.
I didn’t update the --platform error to include this package, since it was never available via that flag. But it might cause some extra confusion if someone knows about the flag and tries to use it?
For the same reason, I didn’t update the migration/codemods for the old Remix imports.
I listed this as a minor bump in the changeset, but I couldn’t find an example of a new adapter being added in the changelog, so I’m not fully sure what the Remix team wants for this.

Cheers! I’m around as much as you need me 🍻
cc @dario-piotrowicz @petebacondarwin

quick ping, is anything blocking this PR? 🙂

@huw @dario-piotrowicz @petebacondarwin I'm wondering if you could obtain the same result with the new config properties that were made public by #4841 🤔

Got it working locally with the new properties--no need to make changes to the core Remix codebase. I'll post info tomorrow and formally close the PR then.
We'll still have to publish a separate adapter package for Cloudflare ESM, otherwise users would have to add a lot of boilerplate to their codebase. My only concern here is that users could get confused between the Remix-owned worker adapters and the community/Cloudflare-owned adapters. I would suggest that either Remix own all of them, or Cloudflare own all of them. But I work for neither org so can't really make that conversation happen beyond politely asking for it :) (cc @MichaelDeBoey @dario-piotrowicz)

@huw thanks so much for the hard work :slightly_smiling_face:
At Cloudflare we aren't really keen on owning adapters ourselves (if we can help it), since we support many different frameworks and owning an maintaining adapters for all of them would be very costly (most frameworks do provide their own Cloudflare adapters).
As I mentioned we might do it when other alternatives are not present and there is a high enough demand for us supporting a framework.
So based on what I just mentioned our preferred way would definitely for Remix to own the Cloudflare adapters (and that's been the case so far, so I am not sure why now the Cloudflare adapters should be externalized), we can anyways contribute and help maintaining them if need be.
If that is not possible we implement and own our own adapters (but that's not a decision for me to make).
I'd be very interested to hear what @MichaelDeBoey has to say about it on behalf of the Remix team, is there a clear need/intention to externalize the Cloudflare adapters?

Perhaps we need a @remix-community scope in npm. Something that's not official, but endorsed by the Remix team.

@huw @dario-piotrowicz I don't work for the Remix team, I only contribute & help triaging things here on GitHub

Code is:
For src/server/createEventHandler.ts (this is pretty well exactly the same as the code in this PR):
import moduleJSON from "__STATIC_CONTENT_MANIFEST";
import {
  getAssetFromKV,
  MethodNotAllowedError,
  NotFoundError,
  type Options as KvAssetHandlerOptions,
} from "@cloudflare/kv-asset-handler";
import {
  type AppLoadContext,
  createRequestHandler as createRemixRequestHandler,
  type ServerBuild,
} from "@remix-run/cloudflare";

type AssetManifest = Omit<KvAssetHandlerOptions["ASSET_MANIFEST"], string>;
type KvAssetHandlerEvent = Parameters<typeof getAssetFromKV>[0];
type WaitUntilCallback = KvAssetHandlerEvent["waitUntil"];
interface StaticContentEnvironment { __STATIC_CONTENT: KVNamespace<string> }

const module = JSON.parse(moduleJSON) as AssetManifest;

/**
 * A function that returns the value to use as `context` in route `loader` and
 * `action` functions.
 *
 * You can think of this as an escape hatch that allows you to pass
 * environment/platform-specific values through to your loader/action.
 */
type GetLoadContextFunction<Environment = unknown> = (
  request: Request,
  environment: Environment,
  context: ExecutionContext
) => AppLoadContext;

/**
 * Returns a request handler for the Cloudflare runtime that serves the
 * Remix SSR response.
 */
const createRequestHandler = <Environment extends StaticContentEnvironment = StaticContentEnvironment>({
  build,
  getLoadContext,
  mode,
}: {
  build: ServerBuild;
  getLoadContext?: GetLoadContextFunction<Environment>;
  mode?: string;
}) => {
  const handleRequest = createRemixRequestHandler(build, mode);

  return (request: Request, environment: Environment, context: ExecutionContext) => {
    const loadContext = getLoadContext?.(request, environment, context);

    return handleRequest(request, loadContext);
  };
};

const handleAsset = async (
  request: Request,
  waitUntil: WaitUntilCallback,
  assetNamespace: KVNamespace<string>,
  build: ServerBuild,
  options?: Partial<KvAssetHandlerOptions>
) => {
  try {
    const mergedOptions = {
      ASSET_NAMESPACE: assetNamespace,
      ASSET_MANIFEST: module,
      ...options,
    };

    if (process.env.NODE_ENV === "development") {
      return await getAssetFromKV(
        { request, waitUntil },
        {
          cacheControl: {
            bypassCache: true,
          },
          ...mergedOptions,
        }
      );
    }

    let cacheControl = {};
    const url = new URL(request.url);
    const assetpath = build.assets.url.split("/").slice(0, -1).join("/");
    const requestpath = url.pathname.split("/").slice(0, -1).join("/");

    if (requestpath.startsWith(assetpath)) {
      // Assets are hashed by Remix so are safe to cache in the browser
      // And they're also hashed in KV storage, so are safe to cache on the edge
      cacheControl = {
        bypassCache: false,
        edgeTTL: 31_536_000,
        browserTTL: 31_536_000,
      };
    } else {
      // Assets are not necessarily hashed in the request URL, so we cannot cache in the browser
      // But they are hashed in KV storage, so we can cache on the edge
      cacheControl = {
        bypassCache: false,
        edgeTTL: 31_536_000,
      };
    }

    return await getAssetFromKV(
      { request, waitUntil },
      {
        cacheControl,
        ...mergedOptions,
      }
    );
  } catch (error) {
    if (error instanceof MethodNotAllowedError || error instanceof NotFoundError) {
      return null;
    }

    throw error;
  }
};

const createEventHandler = <Environment extends StaticContentEnvironment = StaticContentEnvironment>({
  build,
  getLoadContext,
  mode,
}: {
  build: ServerBuild;
  getLoadContext?: GetLoadContextFunction<Environment>;
  mode?: string;
}): ExportedHandlerFetchHandler<Environment> => {
  const handleRequest = createRequestHandler({
    build,
    getLoadContext,
    mode,
  });

  const handleEvent = async (
    request: Request,
    environment: Environment & StaticContentEnvironment,
    context: ExecutionContext
  ) => {
    let response = await handleAsset(request, context.waitUntil, environment.__STATIC_CONTENT, build);

    if (!response) {
      response = await handleRequest(request, environment, context);
    }

    return response;
  };

  return (
    request: Request,
    environment: Environment & { __STATIC_CONTENT: KVNamespace<string> },
    context: ExecutionContext
  ) => {
    try {
      return handleEvent(request, environment, context);
    } catch (error: unknown) {
      if (process.env.NODE_ENV === "development" && error instanceof Error) {
        return new Response(error.message, {
          status: 500,
        });
      }

      return new Response("Internal Error", { status: 500 });
    }
  };
};

export default createEventHandler;

For global.d.ts/manifest.d.ts:
declare module "__STATIC_CONTENT_MANIFEST" {
  const value: string;
  export default value;
}

For index.ts:
import * as build from "@remix-run/dev/server-build";
import createEventHandler from "./createEventHandler";

interface Environment {
  __STATIC_CONTENT: KVNamespace<string>;
}

const index = {
  fetch: createEventHandler<Environment>({ build })
};

export default index;

And finally, remix.config.js (in ES Module syntax, since I’m assuming the package is type: “module”, but you could equally write this in CJS if you wanted):
/**
 * @type {import('@remix-run/dev').AppConfig}
 */
const config = {
  // Bundles everything _except_ `__STATIC_CONTENT_MANIFEST`. Be careful if editing.
  serverDependenciesToBundle: [/^(?!(__STATIC_CONTENT_MANIFEST)$).*$/u],
  // Optional, but highly recommended for fitting within the Worker bundle size
  serverMinify: true,
  serverModuleFormat: "esm",
  // YMMV with setting to `node`, most likely anything but simple code won’t work with the CF node compat layer
  serverPlatform: "neutral",
  // `workerd` is now the standard Workers main field, then follow the others in order
  serverMainFields: ["workerd", "browser", "module", "main"],
  // Even though we’re not in a Service Worker anymore, this is at least required for React SSR, otherwise it’ll assume we’re in a Node environment
  serverConditions: ["worker"],
};

export default config;

You can get this working today in an ESM repo on v0.0.0-nightly-79859c9-20230203. My recommendation is that, like with the existing adapters, the createEventHandler file is managed in its own package, but it’s not that much boilerplate. I will close this PR while CF & Remix discuss ^_^

Thanks for your work on this @huw. It looks like it would be fairly straightforward to implement this adapter.
Let's push forward with discussions on how it can best be published and maintained.

I also took a shot at creating a Cloudflare Module Worker adapter and came across this PR while trying to expose __STATIC_CONTENT_MANIFEST to Cloudflare's asset handler.
I managed to get Remix working on Cloudlare's module Workers with even less boilerplate. Take a look at my worker.ts file; there's no need to reimplement handleAsset and createRequestHandler.
I published my code as a very lightweight adapter, remix-cloudflare-module-workers, and included some additional docs on integrating Workers APIs with Remix, as there aren't many resources available on this topic yet.
Since the adapter has such a low footprint, I'm happy to maintain it until Cloudflare or Remix decides to release an official one.


[v1.x] Update 3rdparty/mkldnn remote URL and pin to v1.3 (#17972)

update onednn remote url

checkout onednn v1.3 release

fix format test

make test
Conflicts:
.gitmodules
3rdparty/mkldnn
tests/cpp/operator/mkldnn_test.cc

Description
(Brief description on what this PR is about)
Checklist
Essentials
Please feel free to remove inapplicable items for your PR.

[ ] The PR title starts with [MXNET-$JIRA_ID], where $JIRA_ID refers to the relevant JIRA issue created (except PRs with tiny changes)
[ ] Changes are complete (i.e. I finished coding on this PR)
[ ] All changes have test coverage:
Unit tests are added for small changes to verify correctness (e.g. adding a new operator)
Nightly tests are added for complicated/long-running ones (e.g. changing distributed kvstore)
Build tests will be added for build configuration changes (e.g. adding a new build option with NCCL)
[ ] Code is well-documented:
For user-facing API changes, API doc string has been updated.
For new C++ functions in header files, their functionalities and arguments are documented.
For new examples, README.md is added to explain the what the example does, the source of the dataset, expected performance on test set and reference to the original paper if applicable
Check the API doc at https://mxnet-ci-doc.s3-accelerate.dualstack.amazonaws.com/PR-$PR_ID/$BUILD_ID/index.html
[ ] To the best of my knowledge, examples are either not affected by this change, or have been fixed to be compatible with this change

Changes

[ ] Feature1, tests, (and when applicable, API doc)
[ ] Feature2, tests, (and when applicable, API doc)

Comments

If this change is a backward incompatible change, why must this change be made.
Interesting edge cases to note here

cc @ciyong

@mxnet-bot run ci [unix-gpu]

Adding this to v1.7.0 roadmap https://github.com/apache/incubator-mxnet/issues/16864

@leezu I borrowed the cmake upgrade code from #17645 as the new DNNL library needs higher version of cmake than the one in v1.x CI. Please let me know if you have any concern. Thanks.


[Enhancement] Preserving all props of action instead of just meta

Hi,
this PR enables this middleware to keep all properties of the action object instead of just meta. I was looking for this possibility without knowing the "meta" property already exist until I read the source. So it solved my case but I thought I throw in the idea of not just limiting the action object to "type", "payload", "error" and "meta" but preserving all props of the input action except the 3 "reserved" to work with.
I'd like to know what you think of this. I'm not having a routine of creating PRs so if anything is missing or wrong, please let me know. I also created some additional tests and modified the introduction file to document the feature.
best regards,
Sebastian

Hi! Thanks for the PR—and especially for adding tests and updating the documentation.
Before I dig into the code, can you explain the use case for additional properties? Why not just put these properties in meta or payload?

Thanks for the very quick reply. I wanted to pass additional data along the with the running request in payload to the reducers and to be honest the meta had done the job. It wasn't documented, I tried it by putting some props int the action along with type and payload and it didn't work. And then I just found out about meta I stepped into the source. Then I just asked myself why narrowing it just to meta. payload was already taken with the running request.

Gotcha. The reason the middleware uses meta is because it follows FSA. In FSA, the meta property is intended to hold "extra data" not related to the payload.
I don't think this is prominent enough in the documentation, though, and I just created a separate issue for it: https://github.com/pburtchaell/redux-promise-middleware/issues/189

Alright. Like I mentioned, this PR was only a suggestion. But thanks for taking the time. Keep up the great work.


fatal error

Problem

Suggested solution

Alternatives

Additional context

fix this bug as soon as possible

Closing this issue as it's not actionable, and we didn't get further info from OP.


Question

Hello, a simple question - does your tool find only the crypt key or the manufacturer key?
I have an idea of having a 64-bit window and going through the binary firmware of the receiver bit-by-bit to find out the manufacturer's key.
Does that make sense?

If I understood your question correct - this bruteforcer tries to find manufacturer key or specific device key - imagine any car, it would be very strange if “manufacturer” (e.g Toyota) would use single key for every car in the world, most probably each car has its own key.
However, to be sure that bruted key is correct it should be checked at least on 3 consecutive transmissions.
If you have only 1 transmission - it’s impossible to find correct “manufacturer” key, since collision rate of 18bit part of serial and 4bit button code is incredibly high.
If you have 3+ transmissions - and the tool has found a match - I would say it’s almost 100% chance you’ve found what you want.
And answering your question.
Yes it makes sense, but only in case when firmware has this key RAW, without any encoding or any other protection. Key is just a 64bit number, in a firmware it might be obtained just with simple addition of two numbers.
However if you have 3 inputs for the tool, and bit-by-bit window gave you a match - it’s you lucky day, and a bad one for firmware developer :)


Does this violate developer guidelines with OCR?

Hello, I was taking a peek at this app, but one thing that made me think maybe I shouldn't look at it is this:
https://www.pathofexile.com/developer/docs#policy
Executable apps that run independently from the game
While not encouraged, these are permitted. They must use a public OAuth client if interacting with our APIs.
Reading the game's log files is okay as long as the user is aware of what you are doing with that data.
Automation of key-strokes (or other inputs) that affect the game in any way must follow our macro rules:
Macros must be invoked manually by the user (automated invocations such as but not limited to: timers, reacting to file changes, or from reading the screen are not allowed).
So doesn't the OCR component violate this explicitly?

No idea, I haven't looked at that at all. Since the original was more or less fine, I'm assuming its good.

I guess also see the faq?

I see the FAQ. but in POE's dev docs it explicitly lists OCR as a violation of their guidelines, and this app appears to have an OCR component - https://kvan7.github.io/Exiled-Exchange-2/ocr-guide
I was interested in checking it out until I saw this, which makes me hesitant and worries me for what I'm assuming are hundreds or thousands of users who spent money to access poe2 who's accounts might get nuked. I would strongly recommend removing the OCR component to stay compliant with GGG's guidelines and protect the accounts of your users - even if not everyone is using OCR, it could still result in ggg widely banning for use of the application.

As far as I can tell from reading the guidelines,

Automation of key-strokes [...] that affect the game in any way must follow our macro rules:

Macros must be invoked manually by the user (automated invocations such as [...]  reading the screen are not allowed).

Since this component does not perform automated key-strokes in game, it does not affect the game in any way, and therefore isn't a "macro". For the rest of the application, anything that interacts with the game directly already has a limit of one keystroke in game per action with the tool, which adheres to the final line in the "automation of key-strokes" part too.
Besides that the user has to go and install the ocr component manually, it is not only not enabled by default, it is also not installed by default. So the vast majority of users will not have the tool in this state at all.

path of exile 1 has let people use a trade macro like this FOR YEARS.
what on earth makes you think it's not allowed.
the devs themself know that 50+% of the playerbase would flat out refuse to play the game if they didn't have this trade macro. (or path of building for that matter)

OCR

without OCR it litterally will not function.
how else is it going to list the stats and base the price prediction of of it?
it's litterally reading the tooltip of the item you are trying to price check.
please don't comment if you don't have a clue what's going on.

As far as I can tell from reading the guidelines,

Automation of key-strokes [...] that affect the game in any way must follow our macro rules:

Macros must be invoked manually by the user (automated invocations such as [...]  reading the screen are not allowed).

Since this component does not perform automated key-strokes in game, it does not affect the game in any way, and therefore isn't a "macro". For the rest of the application, anything that interacts with the game directly already has a limit of one keystroke in game per action with the tool, which adheres to the final line in the "automation of key-strokes" part too.
Besides that the user has to go and install the ocr component manually, it is not only not enabled by default, it is also not installed by default. So the vast majority of users will not have the tool in this state at all.

ooh so that is why it fails to work on most items.
you might wanna get on it and fix this issue.

@darkracer125 I think it is reasonable to ask questions like this issue. For a user coming from other games, it would be expected that an overlay tool be questioned.

without OCR it literally will not function.

100% of the normal functions of the program work without the OCR. The ocr is, as far as I can tell, only really used for items that cannot have their text copied. Since the normal price-checking part of the program works based on copying the text of the item and parsing it, for items where you cannot copy text it wont work, so the ocr can help with that. The other part that ocr works to help with is that in poe 1 there are some parts of the hover that aren't listed in the copy text, the ocr allows the program to gain information that the user has from hovering and add that to the copy text.

it's literally reading the tooltip of the item you are trying to price check.

The program just presses ctrl+alt+c and reads the clipboard after the item's text is copied. (the alt part isn't working but that is a poe2 bug right now)

ooh so that is why it fails to work on most items.
you might wanna get on it and fix this issue

If you find items that the program fails to run on, please open issues for them. Currently the program doesn't work for Currency, Uniques, and Maps(Waystones), just since I have mainly been working on the items part for now.


test: remove redundant select workspace in cypres test

Description
The spec MemberRoles started failing on PG branch(both ce and ee) recently. In this spec the last step, which asserts the user with view permission leaving workspace was failing. the _.homePage.LeaveWorkspace(workspaceId); internally calls for _.homePage.SelectWorkspace(workspaceId);
Automation
/ok-to-test<EMAIL_ADDRESS>:mag: Cypress test results

[!CAUTION]
🔴 🔴 🔴 Some tests have failed.
Workflow run: https://github.com/appsmithorg/appsmith/actions/runs/10732842388
Commit: 25aa45638a6127e9c0668022c82ea7a3812e4123
Cypress dashboard.
Tags: @tag.AccessControl
Spec:
The following are new failures, please fix them before merging the PR:
cypress/e2e/Regression/ServerSide/GenerateCRUD/MySQL2_Spec.ts
List of identified flaky tests.
Fri, 06 Sep 2024 05:48:34 UTC

Communication
Should the DevRel and Marketing teams inform users about this change?

[ ] Yes
[ ] No

Summary by CodeRabbit

Bug Fixes

Updated the test flow for workspace member roles to ensure accurate simulation of user behavior when leaving a workspace.

Chores

Modified the limited tests configuration to focus on member roles, removing the previous test for template for improved testing relevance.

/ci-test-limit run-count=5

/ci-test-limit run-count=10

/ok-to-test<EMAIL_ADDRESS>

/ci-test-limit-count run-count=12

/ci-test-limit-count run_count=12


Feature request: Signing AWS Request

Use case
Certain AWS Services need to be signed with Signature V4.
https://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-authenticating-requests.html
Solution/User Experience
I am proposing adding a new class that will take in the parameters to create this signed request for the end user to simplify it since it is not a very straightforward method and should be made easier.
Alternative solutions
No response
Acknowledgment

[X] This feature request meets Powertools for AWS Lambda (Python) Tenets
[X] Should this be considered in other Powertools for AWS Lambda languages? i.e. Java, TypeScript, and .NET

Hi @stephenbawks Thank you so much for opening this issue to add this new support, we really see value in this addition. As I see in #2435, you're using functions provided by botocore and that's awesome because botocore is included by default in the Lambda Runtime and we don't need to bring one more dependency.
However, before we move forward with this new utility, we really need to create an RFC to further discuss this implementation. Imagine we just merged PR #2435, customers start using this and we need to add more features and other utilities related to signed requests or JWT token for example? Will we have problems with changes breaking? Do we already have a good design that allows adding more features? We should have another developer experience for this case?
Let me give you a real example why we need an RFC for this: we already have an issue opened that can be added to this new utility - https://github.com/aws-powertools/powertools-lambda-python/issues/1174.
So, do you think you can start creating an RFC? Can I help you? You can use this RFC as an example to create a new one - https://github.com/aws-powertools/powertools-lambda-python/issues/2421.
Thank you so much for taking the time to add value to Powertools, it is priceless and I cannot express our gratitude enough.

I will get it done.

Assigning to me for review and scheduled for the next iteration cycle starting on Monday :)
Appreciate your patience while we had many loose ends to take care of

I've started the Parameters/Secrets one, once complete we can move to this one. I've tentatively moved to early April as I'll be on holidays too on mid-March


ReadTheDocs documentation update needed

Hi Jean,
The documentation you wrote in request #12 for each module, is not show in Rad The Docs. That is because Read the Docs uses the docstring from the package stored in PyPi (the latest omg version on PyPi is 1.4.1). You need to update omg_dosimetry on PyPi to see the added new changes.

Oh I see! Thanks for pointing that out. I find that managing versions on PyPi a bit cumbersome. Do you know if there is any way that package versions on PyPi be updated automatically to follow releases on GitHub?

Well, I also just saw that on the GitHub it says that latest release is 1.4.1. Not quite sure how how to handle releases properly :D

Just found this guide that seems to be the solution I am looking for. Will try to set that up!
https://packaging.python.org/en/latest/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows/

I don´t know how to optimize it.
What I do with my packages is to follow this guide (but as you said, it is cumbersome).
1.- Change pyproject.py
https://github.com/jfcabana/omg_dosimetry/blob/2100e90047bdb8aa886493497153097148ca01ad/pyproject.toml#L5-L7
2.- Build the package
python -m  build
3.- Upload to PyPi
twine upload dist/*
I am going to study how "Actions" works, looks interesting.

Take a look at PR #20 , I think this should work. From my understanding, once this is merges on master, we should be able to push a tag on a commit, and the automated actions should build a release both on GitHub and on PyPi also. I'll wait for your approval before merging.

Fire it. I suspect there will be issues associated with dependencies but let see what happens.

Well, I must have missed something cause it does not seem to be working. I pushed a commit with a tag v1.5.1, but it still shows up as 1.4.1 on pypi and github.

Ok so I have published the latest release as v1.5.1. It shows up correctly on PyPi, but for some reason the documentation on readthedocs does not seem to have updated. It shows up as 1.5.0 and does not contain my additions made in #12 .

Nice job, I would like to make a pull request (as a test), just to try it :smiley:.
By the other hand, Readthedocs uses "Documentation" branch, so it will not refresh until a change is made in that branch. Now it is updated.

Ok, I just found out why the actions were not working. Actions were disabled in the repository settings!

Working now!

Sorry for the mess with TestPiPy. Do you get an email every time a run to testPyPi failed? I going to search how to exclude the "Documentation" branch.
Seems something like
on:
push:
branches:
- master
- other branches to be included

No I haven't receive anything about testpypi. I did receive an approval request for deployment on PyPi. Did you push a new tag on master or was it the pull request from Documentation?

It was from branch Documentation, #29. I went to Actions tab, look for the failed run and cliked on the "Re-run job" button, after you had removed the environment protection rule on PyPi.

I found this guide.
Basically, the publish to PyPi work could be activated only if a pull request closes and the pull request was also merged. What do you think? Would you like me to try to change to publish-to-test-pypi.yml file?

Yes I think that would be the way to go. It might not even need to be related to a tag push I think. Any pull request that is merged on the master branch should trigger the publication to pypi.

Do you like the added content to ReadTheDocs calibration page? Feel free to change whatever you want or tell me if something needs to be rearranged.

I really like what you did with the documentation! This is exactly what this project needed to be usable and understandable. Really good job!

Hello there Luis!
Thanks a lot for setting up documentation for the project.
Would have been real useful when I first diving into the lines of code/functions years ago, hah.
Anyways, with the recent pull request merge from the quality of life advancements made (2023-12-15), does the documentation need to be manually updated or is it based on the script commentary/description?

Hi Peter,
Thank you, but all the work has been done by Jean. By this moment, my contribution to omg_dosimetry has been the ReadTheDocs page (as a self-learning path to get experience with OMG).
The documentation on ReadTheDocs is build from these files: docs/source/calibration.rst, tiff2dose.rst and analysis.rst. These files should be updated manually (actually the last two are still in progress). Additionally, ReadTheDocs uses the docstring (the string directly below a class, function, etc. with triple-double quote) inside the modules (calibration.py, tiff2dose.py and analysis.py). For example, what you see here https://github.com/jfcabana/omg_dosimetry/blob/0f615c4418c0bd4f1f91c9e76c70f9f3b56f7aa3/src/omg_dosimetry/calibration.py#L50-L59 is the information that will be displayed on the corresponding API section.
To update the changes made on GitHug into PyPi (where actually ReadTheDocs reads the docstrings), there is an Action. Any pull request that is merged on the main branch should automatically trigger the publication to PyPi, but for some reason it did not get active. Let me try to know why.


Add email verification

See:
https://github.com/jrean/laravel-user-verification

Ideas:

Use/create a middleware (like jrean/laravel-user-verification) to protect routes need user verified
Configurable (active/deactive user verification)
Diferent kinds of user verification: mandatory (no login till email verified, user can verify email when he/she wants, etc )


Update the help url for upstream remote

I found this GitHub help url more helpful.

Seems like this link does have more info than the other one. Thanks!


blockchain.info sensor

Description:
Sensor to monitor a list of bitcoin wallet addresses via blockchain.info.  This sensor will return the total balance of all of the listed wallet addresses.
Pull request in home-assistant.github.io with documentation (if applicable): home-assistant/home-assistant.github.io#2734
Example entry for configuration.yaml (if applicable):
sensor:
  - platform: blockchain
    addresses:
      - '1BMsHFczb2vY1BMDvFGWgGU8mkWVm5fupp'
      - '183J5pXWqYYsxZ7inTVw9tEpejDXyMFroe'

Checklist:
If user exposed functionality or configuration variables are added/changed:

[x] Documentation added/updated in home-assistant.github.io

If the code communicates with devices, web services, or third-party tools:

[x] Local tests with tox run successfully. Your PR cannot be merged unless tests pass
[x] New dependencies have been added to the REQUIREMENTS variable (example).
[x] New dependencies are only imported inside functions that use them (example).
[x] New dependencies have been added to requirements_all.txt by running script/gen_requirements_all.py.
[x] New files were added to .coveragerc.

Thanks! 🐬


Let section accept any iterator

Inspired by @epage's comment here: https://github.com/killercup/roff-rs/issues/3#issuecomment-404547754


Assume that code is running in a docker image

There are several places in the preprocessing pipeline, and when SAM is run, that assume the 'docker' command is available in the PATH. This is not portable when running the code on prince or other machines where docker is not installed, such as inside a docker container. I should rewrite the SAM running scripts to assume that SAM is compiled at a certain path (e.g. /opt/sam), or that it  is already in the PATH.
I will also need to ensure that bin is listed in the PATH inside of the container. Either that or I can use the "script" tag with Snakemake.

I changed the environment configuration a lot and got it working on olympus in this commit: 8ab0f36af0be966040605caa49c472a1f75bd6e1. So I am closing this issuel


pdf download not working

l have finished this course on scotch.io but the pdf download not working. l got in my controller
$user = Auth::user();
        User::setStripeKey(env('STRIPE_SECRET'));
        return $user->downloadInvoice($invoiceId, [
            'vendor'  => 'wavioo',
            'product' => 'Monthly Subscription'
        ]);

and in my view l got
id }}">

PDF

Any ideas guys?

I saw you were able to figure this out over here? https://school.scotch.io/lounge/laravel/laravel-cashier-pdf-download-not-working?page=1#post-2
Good to close this?

yeah ended up sorting 3 days after posting this.


RuTorrent installed: 3.10 -> RuTorrent available: 4.0 but rtinst dont install updated version?

Hi arakasi72
On Ubuntu server:
Distributor ID: Ubuntu
Description:    Ubuntu 20.04.4 LTS
Release:        20.04
Codename:       focal
When I run rtversion , I get this info:
rtorrent installed: 0.9.8
rtorrent available:
RuTorrent installed: 3.10
RuTorrent available: 4.0
rtinst
fatal: unsafe repository ('/etc/rtinst' is owned by someone else)
To add an exception for this directory, call:
    git config --global --add safe.directory /etc/rtinst

fatal: unsafe repository ('/etc/rtinst' is owned by someone else)
To add an exception for this directory, call:
    git config --global --add safe.directory /etc/rtinst

Current Release: rtinst
/usr/local/bin/rtversion: line 46: [: =: unary operator expected
Choose which build to install, (if you are not sure select 1)

Use the latest stable release
Use the most recent master build
Select 1 or 2: 1
rutorrent_old has been deleted

Installing version 4.0 of rutorrent
Your existing rutorrent folder will be moved to /root/rutorrent_old
If you are not happy with the upgrade you can restore the old version, by rerunning this script
Installing Rutorrent (v3.10)
Setting permissions, Starting services
Installation of RuTorrent complete
Its telling me its install version 4.0 but further down its says v.3.10 ?
Cheers.

Hi @arakasi72
Did you had the time to look into this?

version 3.10 is the best version for this script anyways, any higher things start to break


[Test] Move Azure Guidance in CI

Move the Azure Guidance endpoint test to its own portion of the CI build. This spawns off another variant of the test workflow YAML (since it need variable and secret access). On the flip side, it does at least run all of the model_integration tests.

:warning: Please install the  to ensure uploads and comments are reliably processed by Codecov.
Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 59.79%. Comparing base (c8ab79d) to head (ac37ae7).

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@             Coverage Diff             @@
##             main    #1000       +/-   ##
===========================================
+ Coverage   46.44%   59.79%   +13.34%
===========================================
  Files          62       62
  Lines        4392     4392
===========================================
+ Hits         2040     2626      +586
+ Misses       2352     1766      -586

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Remove walletconnect package

Some blank project should be removed.
For example : https://pypi.org/project/walletconnect/
This is a kind of a placeholder, which looks like more to be present for SEO purpose.
It tricks the users this is a real package, but this is empty for 18 months. It pollutes the real work from real companies.

Hi, this issue tracker is for issues with the codebase behind https://pypi.org itself, not the projects hosted on PyPI.
If you believe this project is malicious, please see https://pypi.org/security/, otherwise if you think this project is invalid and would like to claim the name, see https://pypi.org/help/#project-name-claim.


using tweepy to extract data but getting error

i am getting this coroutine error for my code.i need some tweet data for some sentiment analysis and I am unable to get it due to this error.
python
from twikit import Client, TooManyRequests
import time
from datetime import datetime
import csv
from configparser import ConfigParser
from random import randint
MINIMUM_TWEETS = 20
QUERY = 'stock'
config = ConfigParser()
config.read("config.ini")
username = config['X']["username"]
email = config['X']["email"]
password = config ['X']["password"]
1. use the login credentials
client =Client(language = "en-US")
client.login(auth_info_1=username,auth_info_2=email,password=password)
client.save_cookies("cookies.json")
client.load_cookies('cookies.json')
#get tweets
tweets = client.search_tweet(QUERY, product = 'Top')
for tweet in tweets:
print(vars(tweets))
break
File "d:\VS CODE\Sentiment Analysis using Tweepy\main.py", line 26, in
for tweet in tweets:
TypeError: 'coroutine' object is not iterable
sys:1: RuntimeWarning: coroutine 'Client.search_tweet' was never awaited

Dask version:
Python version:3.12
Operating System: windows 10
Install method (conda, pip, source): pip

This doesn't seem to be related to dask, please provide an example that includes Dask or ask on the tweety issue tracker


GROOVY-9968: STC ClosureParams: for "T -> Type" use Type not Object

https://issues.apache.org/jira/browse/GROOVY-9968

Merged. Thanks!

Thank you for fixing this so quickly, that will save me a lot of trouble :-)


Fix for #32

Thank you for the patch. It has been merged in the develop branch. It will appear in master at the next release.
PROmer has not been updated (or tested) like NUCmer has: it is still a Perl script will all its limitations. It is also possible that I introduced bugs. Keep on reporting problems if you find any.


BUG

Hi, it's a very nice work. But when I trying run this code, I find an error:

When running prediction_rescaled = SCALER_REGISTRY.get(self.scaler["func"])(forward_return[0], **self.scaler["args"])

Maybe some codes missed, SCALER_REGISTRY.get(self.scaler["func"])() should be a function, but it wasn't defined
Best wishes
Thank you

Sorry, I can't reproduce your error. The latest code seems to work well. I'm guessing it might be caused by some additional modifications. Do you have more information about your changes?

Hi, because of relative path, the raw codes can not  running. So I changed some relative path:

The raw code is +1 and I changed it to -8
If I remain +1, it will print an error:

SCALER_REGISTRY.get(self.scaler["func"])() seem to be a re-scale function, I would appreciate if you tell me this function's abs path/full name.
Thank you very much
best wishes

The re-scale function is re_standard_transform in basicts/data/transform.py.

I've tested STEP on a Windows PC and the code seems to work fine as well.
Please make sure you follow the instructions in the README.

Hi, I have tried running the raw codes in ubuntu, but I found the same error as windows10. I changed SCALER_REGISTRY.get(self.scaler["func"])() to transform.re_standard_transform by used an abs path. Fortunately，I have solved this error. Maybe, this error is caused by my device.
Thank you very much
Best wishes

You're welcome, and if you have any questions, please feel free to create a new issue.

Hi, I have tried running the raw codes in ubuntu, but I found the same error as windows10. I changed SCALER_REGISTRY.get(self.scaler["func"])() to transform.re_standard_transform by used an abs path. Fortunately，I have solved this error. Maybe, this error is caused by my device. Thank you very much Best wishes

Hi, why do I change 'SCALER_REGISTRY.get(self.scaler["func"])()' to transform.re_standard_transform and still report an error? The error is 'ModuleNotFoundError: No module named 'cts'. '

Hi, I have tried running the raw codes in ubuntu, but I found the same error as windows10. I changed SCALER_REGISTRY.get(self.scaler["func"])() to transform.re_standard_transform by used an abs path. Fortunately，I have solved this error. Maybe, this error is caused by my device. Thank you very much Best wishes

Hi, why do I change 'SCALER_REGISTRY.get(self.scaler["func"])()' to transform.re_standard_transform and still report an error? The error is 'ModuleNotFoundError: No module named 'cts'. '

Firstly, maybe you shoule change +1 to * so as to suit your path.
Best wishes

嗨，我试过在ubuntu中运行原始代码，但我发现和windows10一样的错误。SCALER_REGISTRY.get(self.scaler["func"])()我通过使用 abs 路径更改为 transform.re_standard_transform。幸运的是，我已经解决了这个错误。也许，这个错误是由我的设备引起的。非常感谢你 最良好的祝愿

你好，为什么我把'SCALER_REGISTRY.get(self.scaler["func"])()'改成transform.re_standard_transform还是报错？错误是“ModuleNotFoundError：没有名为“cts”的模块。'

 首先，也许你应该改变+1以*适应你的道路。 最好的祝愿

Hi, sorry to bother you, but my code is indeed +1, but it's still an error.

This is weird...I can't reproduce this error in any way...
Could you provide more information about your environment?
Are you also running STEP on a Windows PC, and what are your python versions?
In addition, have you tried running STEP from a Windows terminal or VSCode? (to avoid the influence of Pycharm)

You can try to change +1 to any integer so as to the changed integer can be suitd for your path.This eroor is caused by relative path

Maybe you can use the code that you uploaded to github  to try running again in another device.

Actually, I have already done this. @fuyuyuputao

I've tested STEP on a Windows PC and the code seems to work fine as well. Please make sure you follow the instructions in the README.

By the way, are you also using PyCharm?

By the way, are you also using PyCharm? @wangzhengzhengkai

顺便问一下，你也在使用 PyCharm 吗？@wangzhengzhengkai

Yes, I am using pycharm software and I changed +1 to another integer, still error.

OK, this seems to be caused by PyCharm.
I will figure it out.
You can run the code based on Windows Terminal or VSCode.
Please make sure to run the commands in the README in the directory C:\path\to\STEP, not C:\path\to\STEP\step.

OK, this seems to be caused by PyCharm.
I will figure it out.
You can run the code based on Windows Terminal or VSCode.
Please make sure to run the commands in the README in the directory C:\path\to\STEP, instead of C:\path\to\STEP\step.

When you are running the command under the directory C:\path\to\STEP\step, you will get the exact error in this issue.

This problem is indeed caused by PyCharm.
You can solve it by setting /path/to/STEP(C:\path\to\STEP on Windows) as your working directory, instead of /path/to/STEP/step.
(Do not forget to reverse the modification you have done.)

This is because PyCharm automatically recognizes /path/to/STEP/step as your working directory when the first time you run /path/to/STEP/step/run.py.
By the way, I would recommend Visual Studio Code if you do not know the many configurations in PyCharm.
It's closer to a native terminal and less prone to problems.


Bug fix 3.7/bts 169

Scope & Purpose
Fix BTS-169: Cost estimation for LIMIT nodes was wrong
https://arangodb.atlassian.net/browse/BTS-169
Backport of https://github.com/arangodb/arangodb/pull/12491
This is a cosmetic change, but should not have any effect on execution plans other than fixing the number of estimated items.

[x] :hankey: Bugfix
[x] :book: CHANGELOG entry made
[x] :muscle: The behavior in this PR was manually tested
[x] :computer: The behavior change can be verified via automatic tests

Backports:

[ ] No backports required
[x] Backports required for: 3.7

Related Information

[x] GitHub issue / Jira ticket number: https://arangodb.atlassian.net/browse/BTS-169

Testing & Verification

[x] This PR adds tests that were used to verify all changes:

[ ] Added Regression Tests
[ ] Added new C++ Unit Tests
[x] Added new integration tests
[ ] Added new resilience tests (only if the feature is impacted by failovers)

http://<IP_ADDRESS>:8080/view/PR/job/arangodb-matrix-pr/11582/

http://<IP_ADDRESS>:8080/view/PR/job/arangodb-matrix-pr/11629/

http://<IP_ADDRESS>:8080/view/PR/job/arangodb-matrix-pr/11631/

Tests blue


xts yaml file creation and modifcation support

Goal: Upgrade the XTS core tool to support creation and modification of .xts yaml files
Currently, users have to create their .xts yaml files manually before xts can be used. This upgrade would add a CLI interface users could use to make changes to their yaml files and create new yaml files, with sections specified by the users. This interface would allow users to add new sections or new entries to existing sections, by asking them for the required information. This would allow for users to do the yaml creation/modification without needing to understand the .xts yaml file format.
Acceptance Criteria

The XTS CLI provides a straight-forward way to modify .xts yaml files
The XTS CLI provides a similarly straight-forward way to create new .xts files

Not clear if this would be required, everyone can actually read and edit xts files and they should know how todo it.