Task: Move loader methods too a separate package

What is the task?
We want to move the Loader methods too the their own package. This includes the LoadDiff methods and their features.
Why is this task important?
I want to do this because it will prevent users from having to import other packages such as the MySQL package if they are just after the LoadDiff Method.

I don't think we actually need to refactor the methods. We can remove the sqlx package and options. This will then enforce the users to provide the db within the sqlx struct.


Serialization and Deserialization for parser Expression

I'd like to be able to store a successfully parsed CEL expression by de-/serializing it externally. To be able to use it again, I added the Program::from(Expression).
I tried to check whether there are any issues with serde on the Arc-ed types but didn't find why LALRPOP does the wraps. I assume it's a combination of simplifying lifetimes and that it's needed for (potentially) larger ASTs to avoid copying. In the case of most uses of CEL I would expect serialization to be the overhead either way. Maybe it's possible to put a disclaimer in some good place noting that serializing and deserializing potentially could use up much more memory than before the serialization? Either way, it shouldn't have any semantic impact, right?

Sounds similar to #80 except that this approach would not allow for portability between the Go and Rust interpreters for example. I'm not opposed to this though as a stop-gap measure when cross-interpreter portability is not required.

Cool! Yeah, I was planning to take a stab at implementing #80 if/when I get some time over. I'll look into adding some tests soon


Different Asset configurations

Motivation
We should test different asset configurations such as:

different asset decimals
known and unknown names
in mint and in transfer

Usage example
No response
Possible implementations
No response

closed by https://github.com/FuelLabs/fuels-wallet/pull/908


installation error - need help

Confirm you have checked the WIKI for troubleshooting first
_Fill out and check ([x]) the boxes which apply.

Homebridge version: 1.3.8
Plugin version: latest
OS, including release name/version:
[ ] Homebridge-Onkyo installed via OS/distribution mechanisms
[ ] You installed using homebridge-config-ui-x
[x] You enabled homebridge debug output

Describe the bug
i can't install the plugin. gui and command the same ..
what about the instructions with "you need GIT" is this a plugin?
To Reproduce
Information on your Onkyo receiver:

Model information

Information on your configuration:
Node.js Version  v16.13.0
Npm Version v8.1.0
Information from the log:
USER: root
DIR: /homebridge
CMD: npm install --save homebridge-onkyo@latest
npm ERR! code 128
npm ERR! An unknown git error occurred
npm ERR! command git --no-replace-objects ls-remote<EMAIL_ADDRESS>npm ERR<EMAIL_ADDRESS>Permission denied (publickey).
npm ERR! fatal: Could not read from remote repository.
npm ERR!
npm ERR! Please make sure you have the correct access rights
npm ERR! and the repository exists.
npm ERR!  Done
Building dependency tree
Reading state information... Done
git is already the newest version (1:2.17.1-1ubuntu0.9).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

I am having the same problem. Did you ever find a solution?


add smooth weighting options

This change is

Reviewed 2 of 2 files at r1.
Review status: all files reviewed at latest revision, 3 unresolved discussions.

Applications/src/calculate-surface-attributes.cc, line 80 [r1] (raw file):

  cout << "  -smooth-weighting <name> [options]" << endl;
  cout << "      Smooth calculated scalar curvature measures according to the weighting specified in <name>:" <<endl;
  cout << "      'Gaussian': using a Gaussian smoothing kernel (default)." << endl;

It would probably be good to use - 'Gaussian': ... because when converted to reST this will be formatted as a list in HTML.

Applications/src/calculate-surface-attributes.cc, line 81 [r1] (raw file):

  cout << "      Smooth calculated scalar curvature measures according to the weighting specified in <name>:" <<endl;
  cout << "      'Gaussian': using a Gaussian smoothing kernel (default)." << endl;
  cout << "                  [options]: [<sigma>]" << endl;

Nice documentation. Can you just remove the brackets  around [options]: in the descriptions here and replace it by just 'Options:' ? Should be more readable without too many brackets.

Applications/src/calculate-surface-attributes.cc, line 202 [r1] (raw file):

      char* weighting_name = ARGUMENT;
      if(!FromString(weighting_name, weighting)){

You can simplify this to PARSE_ARGUMENT(weighting). It will use the FromString function you added to MeshSmoothing.h.

Comments from Reviewable

Thanks, @amakropoulos, looks good! Just minor comments.

Reviewed 1 of 1 files at r2.
Review status: all files reviewed at latest revision, 1 unresolved discussion.

Comments from Reviewable


Bump Dependencies #2740453522

Bumps dependencies for product-is. Link : https://github.com/wso2/product-is/actions/runs/2740453522

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.jenkins-is-staging seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.


[MINOR]Remove legacy code in HoodieFlinkCompactor

Change Logs
Remove legacy "return" in HoodieFlinkCompactor. #7823
Impact
No impact.
Risk level (write none, low medium or high below)
Low
Documentation Update
No update
Contributor's checklist

[*] Read through contributor's guide
[*] Change Logs and Impact were stated clearly
[*] Adequate tests were added if applicable
[*] CI passed

The latest master has already removed the legacy return logic.  Closing this PR.


improve memory usage when parsing large tokens

I have been working on a project that handles uploads of large json files, and I have found that there is something very inefficient happening when parsing large string tokens.
The root of the problem seems to be in how v8 handles string concatenation of small strings, I am not yet sure if this is an issue across all node versions, and have only been testing on node 6 so far.
The main symptom of this problem is that parsing a single string token of 50mb (I think the actual cut off is somewhere between 30 and 50) will run a node process out of memory (with the default 1.7gb heap).  I have narrowed the issue down to a single line: https://github.com/creationix/jsonparse/blob/master/jsonparse.js#L137.  I did some heap profiling to try to figure out exactly what was going wrong, but so far don't have a definitive answer to what exactly is using all the memory, but I did find that there were a large number of 64k chunks of memory being allocated. My suspicion is that a 64k chunk is being allocated for each character in the token, and the string representing the token (this.string) is simply a container with pointers to the memory locations of its constituent characters. (I know v8 does this to improve performance and memory use of applications that do a lot of string concatenation).
I have a solution here that seems to solve the memory use issue while still maintaining good performance (I had several other attempts that were far slower 😿 ), but am not 100% sure its the right solution since I am not too familiar with the internals of how strings work in v8.
Let me know what you think, and if there is anything else I can do to help get this addressed.
PS:
I am aware 50mb is a ridiculously large size for a token, but I think you start to see symptoms of this issue with much smaller values, they are just a bit harder to notice, and values of a few mb are not that uncommon

I have tested on 0.8 through 7 and the issue exists in all version, and the fix now works across all versions as well

I don't think I have anything else I want to add to this PR, @creationix anything you want me to change or add?

Looks great.

Published as 1.3.0.


MM-23516: Fix images being pasted as text in Firefox

Summary
This PR fixes some images being pasted as text in addition to the file attachment in Firefox. See the issue for details.
In some situations, Firefox seems to paste images from the clipboard into any text field as text. For example, if clipping any image with xclip like this:
xclip -sel clip -t image/png -i sample.png

Firefox is happy to paste the image as text to the search field in the New tab page (at least on Linux, FF 80):

For some reason, this is only done in some situations. For instance, copying an image from GIMP (as mentioned in the Github issue), or from Firefox itself, does not cause FF to paste the image as text.
In Mattermost, pasting an image correcly attached it as a file, but Firefox also pasted the image as text in the message field.
I worked around this by simply adding a preventDefault() call when any files are pasted from the clipboard. I also added/updated relevant unit tests.
Ticket Link
Fixes https://github.com/mattermost/mattermost-server/issues/14027

Thank you @luryus 👍

Adding @jgilliam17 for QA review

@luryus Thank you 🎉

/update-branch

@amyblais Want to confirm again, is this for 5.27v?

@sudheerDev At this point of the v5.27 release cycle we should focus on fixing regressions as we're past code complete and nearing the end of the release,

Aah, misread the milestone.


Bug: Code highlighting in markdown does not stop after closing ticks (```)

Prerequisites

[X] Put an X between the brackets on this line if you have done all of the following:

Reproduced the problem in Safe Mode: http://flight-manual.atom.io/hacking-atom/sections/debugging/#using-safe-mode
Followed all applicable steps in the debugging guide: http://flight-manual.atom.io/hacking-atom/sections/debugging/
Checked the FAQs on the message board for common solutions: https://discuss.atom.io/c/faq
Checked that your issue isn't already filed: https://github.com/issues?utf8=✓&q=is%3Aissue+user%3Aatom
Checked that there is not already an Atom package that provides the described functionality: https://atom.io/packages

Description
If you define a language in the code block for syntax highlighting, if you don't close something in the code properly it continues to highlight code even after the closing ticks (```)
Steps to Reproduce

Create a test.md file in atom
Try this text:

    This text here is normal

    Now we have a javascript code block with a non closed function
    ```javascript
    const hello = {
    ```
    This text still looks like it's code highlighted.

Expected behavior:  The second line shouldn't be highlighted as code syntax after the closing ticks even if the function inside the code block is not closed. The syntax highlighting should end when the code block ends regardless of the code inside.
Actual behavior: The code after the closure for a code block looks like it's syntax highlighted
Reproduces how often: 100%
Versions
Atom    : 1.22.0-beta0
Electron: 1.6.9
Chrome  : 56.0.2924.87
Node    : 7.4.0
OS: macOS High Sierra 10.13
Additional Information
Any additional information, configuration or data that might be necessary to reproduce the issue.

Thanks for taking the time to contribute!
After reading through it, I think this is a duplicate of https://github.com/atom/language-gfm/issues/21 so you can subscribe there for updates if you'd like.

Because we treat our issues list as the Atom team's backlog, we close duplicates to focus our work and not have to touch the same chunk of code for the same reason multiple times. This is also why we may mark something as duplicate that isn't an exact duplicate but is closely related.
For information on how to use GitHub's search feature to find out if something is a duplicate before filing, see the How Can I Contribute? section of the Atom CONTRIBUTING guide.


Memory Leak related to concurrency

There is a fairly easy way to leak memory in rxcpp.  It only occurs once you introduced concurrency.
Here are a few contrived examples which create a leak:
while (true)
{
	rxcpp::sources::interval(std::chrono::milliseconds(100))
		.subscribe_on(rx::observe_on_new_thread())
		.take_until(rx::sources::timer(std::chrono::milliseconds(1)))
		.as_blocking()
		.subscribe();
}

this will do it too:
while (true)
{
	rxcpp::sources::range(1,<PHONE_NUMBER>)
		.subscribe_on(rx::observe_on_new_thread())
		.filter([](int x) { std::this_thread::sleep_for(std::chrono::milliseconds(100)); return true; })
		.take_until(rx::sources::timer(std::chrono::milliseconds(1)))
		.as_blocking()
		.subscribe();
}

and this one:
while (true)
{
	auto pipeline =
		rxcpp::sources::range(1,<PHONE_NUMBER>)
		.filter([](int x) { std::this_thread::sleep_for(std::chrono::milliseconds(100)); return true; })
		;

	auto subscription = pipeline.subscribe_on(rx::observe_on_new_thread()).publish().connect();

	std::this_thread::sleep_for(std::chrono::milliseconds(1));
	subscription.unsubscribe();
}

In my real world use case, I have my own source which  produces multimedia samples and is implemented using the rxcpp scheduling abstractions (i.e. not just a loop, refer to issue #129).  The examples above appear to be leaking an individual value in the pipeline (educated guess).  In my case, my individual value is a multimedia sample and is much bigger than an int!  So the memory leak is very noticeable.
Hopefully I've provided enough examples where someone much smarter than myself can chase down the cause.
Thanks,
Jeff

Thanks for the report!
I do not think that rxcpp is leaking a value. I used this test to verify:
struct LeakDetector
{
    static int leaks;
    int id;
    ~LeakDetector(){
        std::cout << "~leak " << --leaks << ", id " << id << std::endl;
    }
    LeakDetector(const LeakDetector& o) : id(o.id) {
        std::cout << "+leak " << ++leaks << ", id " << id << std::endl;
    }
    LeakDetector& operator=(LeakDetector o) {
        id = o.id;
        std::cout << "=leak " << ++leaks << ", id " << id << std::endl;
        return *this;
    }
    LeakDetector(int id) : id(id) {
        std::cout << "ileak " << ++leaks << ", id " << id << std::endl;
    }
    std::array<int, 1000> d;
};
int LeakDetector::leaks = 0;

template<class Coordination>
auto make_exp(Coordination cn) -> rx::observable<LeakDetector> {
    return rxcpp::sources::interval(std::chrono::milliseconds(100))
        .map([](int id){return LeakDetector(id);})
        .subscribe_on(cn)
        .take_until(rx::sources::timer(std::chrono::milliseconds(1), cn))
        .as_dynamic();
};

SCENARIO("leaks", "[take][passes][operators]"){
    GIVEN("an async source"){

        WHEN("new thread is blocking subscribed"){

            for (int i = 0; i < 10; ++i) {
                make_exp(rx::observe_on_new_thread())
                    .as_blocking()
                    .subscribe();
            }

            THEN("the output is not leaks"){
                REQUIRE(LeakDetector::leaks == 0);
            }
        }
    }
}

The output reports:
Scenario: leaks
     Given: an async source
      When: new thread is blocking subscribed
      Then: the output is not leaks
/Users/kirk/source/rxcpp/Rx/v2/examples/tests/take.cpp:40

/Users/kirk/source/rxcpp/Rx/v2/examples/tests/take.cpp:52:
PASSED:
  REQUIRE( LeakDetector::leaks == 0 )
with expansion:
  0 == 0

I will look for other leaks.

I have seen leaks now when using the new_thread scheduler. I did switch the test code to the current_thread scheduler and saw the leaks disappear.
So now I am trying to find the leak. My first suspicion is that there is a circular reference in the shared pointers.

Yep, there were some circular strong references. Now these are being broken by either switching to weak or manually breaking the loop at end of lifetime.

Thanks for the report!

Nice work!
On Jun 18, 2015 11:49 PM, "Kirk Shoop"<EMAIL_ADDRESS>wrote:

Yep, there were some circular strong references. Now these are being
broken by either switching to weak or manually breaking the loop at end of
lifetime.
—
Reply to this email directly or view it on GitHub
https://github.com/Reactive-Extensions/RxCpp/issues/132#issuecomment-113358556
.


python3 build errors

brew install --verbose python3 is giving me errors building extensions (readline, gdbm, lzma, sqlite...):
...
building 'readline' extension
/usr/bin/gcc-4.8 -pthread -fPIC -Wno-unused-result -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -Os -w -pipe -march=core2 -Os -w -pipe -march=core2 -Werror=declaration-after-statement -I./Include -I. -IInclude -I/usr/include/x86_64-linux-gnu -I/usr/local/include -I/tmp/python320150821-29145-e1zsqb/Python-3.4.3/Include -I/tmp/python320150821-29145-e1zsqb/Python-3.4.3 -c /tmp/python320150821-29145-e1zsqb/Python-3.4.3/Modules/readline.c -o build/temp.linux-x86_64-3.4/tmp/python320150821-29145-e1zsqb/Python-3.4.3/Modules/readline.o
/tmp/python320150821-29145-e1zsqb/Python-3.4.3/Modules/readline.c:32:31: fatal error: readline/readline.h: No such file or directory
 #include <readline/readline.h>
                               ^
compilation terminated.
building '_gdbm' extension
/usr/bin/gcc-4.8 -pthread -fPIC -Wno-unused-result -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -Os -w -pipe -march=core2 -Os -w -pipe -march=core2 -Werror=declaration-after-statement -I./Include -I. -IInclude -I/usr/include/x86_64-linux-gnu -I/usr/local/include -I/tmp/python320150821-29145-e1zsqb/Python-3.4.3/Include -I/tmp/python320150821-29145-e1zsqb/Python-3.4.3 -c /tmp/python320150821-29145-e1zsqb/Python-3.4.3/Modules/_gdbmmodule.c -o build/temp.linux-x86_64-3.4/tmp/python320150821-29145-e1zsqb/Python-3.4.3/Modules/_gdbmmodule.o
/tmp/python320150821-29145-e1zsqb/Python-3.4.3/Modules/_gdbmmodule.c:12:18: fatal error: gdbm.h: No such file or directory
 #include "gdbm.h"
                  ^
compilation terminated.
building '_lzma' extension
/usr/bin/gcc-4.8 -pthread -fPIC -Wno-unused-result -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -Os -w -pipe -march=core2 -Os -w -pipe -march=core2 -Werror=declaration-after-statement -I./Include -I. -IInclude -I/usr/include/x86_64-linux-gnu -I/usr/local/include -I/tmp/python320150821-29145-e1zsqb/Python-3.4.3/Include -I/tmp/python320150821-29145-e1zsqb/Python-3.4.3 -c /tmp/python320150821-29145-e1zsqb/Python-3.4.3/Modules/_lzmamodule.c -o build/temp.linux-x86_64-3.4/tmp/python320150821-29145-e1zsqb/Python-3.4.3/Modules/_lzmamodule.o
/tmp/python320150821-29145-e1zsqb/Python-3.4.3/Modules/_lzmamodule.c:19:18: fatal error: lzma.h: No such file or directory
 #include <lzma.h>
                  ^
compilation terminated.

Python build finished successfully!
The necessary bits to build these optional modules were not found:
_dbm                  _sqlite3              _tkinter
To find the necessary bits, look in setup.py in detect_modules() for the module's name.

Failed to build these modules:
_gdbm                 _lzma                 readline

This is despite having the required formulae (readline, gdbm, xz, sqlite...) installed:
~> brew info python3
python3: stable 3.4.3, devel 3.5.0rc1, HEAD
Interpreted, interactive, object-oriented programming language
https://www.python.org/
/home/relay/.linuxbrew/Cellar/python3/3.4.3_2 (5721 files, 120M) *
  Built from source
From: https://github.com//homebrew/blob/master/Library/Formula/python3.rb
==> Dependencies
Build: xz ✔, pkg-config ✔
Required: openssl ✔
Recommended: readline ✔, sqlite ✔, gdbm ✔, xz ✔
...

Any idea what I can do to fix?

Can you post the output of brew gist-logs python3 please?

Sorry, I already uninstalled linuxbrew and switched to manually building python3 from source since I'm on a tight deadline. If I have time to re-install linuxbrew, I'll post that output.

Okay, thanks. What distro are you running?

> cat /etc/issue
Ubuntu 14.04.3 LTS \n \l

Oops; this should be fixed by https://github.com/Homebrew/linuxbrew/pull/460.

Closing on account of tdsmith's comment above.


DLC Agents of Sabotage

LGTM

There are a couple of things missing such as

MK2 Weapons Workshop
Subway Garage

The Weapon Workshop is an object that must be spawned, and the garage doesn't have any entity sets.


Please release 1.0.8?

Eagerly awaiting the scapegoat library as "Provided" patch! Thank you!

Released :)


fix(lightbox): fix body scrollbar flickering when children updates

General summary

Remove children from useEffect dependencies, causing the effect to execute every time the children changes
Split useEffect into two separate effects (one for scroll management and one for focus management)

The dialog should still work as it did
Screenshots

Check list

[ ] (if has style) Add need: review-integration label
[ ] (if has textual documentation) Add need: review-doc label
[x] (if has code) Add need: review-frontend label
[ ] (if has react) Check through the react dev check list
[x] (if fix or feature) Add need: test label

Check out the contribution guide for general guidelines for submissions to the design system.

@GuillaumeNachury Je me permet de te mettre en reviewer puisque j'ai modifié une partie sur laquelle tu avais travaillé.

no flickering noticed but tags are simple text now instead of chips...

no flickering noticed but tags are simple text now instead of chips...

This was a ImageBlock related issue. The demo hadn't been updated.
It is now fixed, but the tag now seem to be behind the overlay.

Was that the case before ?
If not, there might be a css fix to apply @matmkian

https://zpl.io/adX401R

@FlorentDinet Pushed a fix, should be ok now.

excellent


Use the github version for django-appdata, which supports Django 1.7

This version of django-appdata must be used while stable package is not released. Otherwise when using Django 1.7 we get import errors for django.utils.simplejson lib.

Coverage remained the same at 95.95% when pulling 1223115b431c5510b2a9c39a0411d91207d45990 on issues/correct_version_for_django_appdata into 7b7c346377420ece91b72fa7107530e7e97ef611 on master.

Coverage remained the same at 95.95% when pulling 1223115b431c5510b2a9c39a0411d91207d45990 on issues/correct_version_for_django_appdata into 7b7c346377420ece91b72fa7107530e7e97ef611 on master.

Coverage remained the same at 95.95% when pulling 1223115b431c5510b2a9c39a0411d91207d45990 on issues/correct_version_for_django_appdata into 7b7c346377420ece91b72fa7107530e7e97ef611 on master.

Thanks, could you check the version string? Other than that LGTM

Coverage remained the same at 95.95% when pulling 9c140f63638a92d4ee65acde605876a8b94b399d on issues/correct_version_for_django_appdata into 7b7c346377420ece91b72fa7107530e7e97ef611 on master.

Coverage remained the same at 95.95% when pulling 9c140f63638a92d4ee65acde605876a8b94b399d on issues/correct_version_for_django_appdata into 7b7c346377420ece91b72fa7107530e7e97ef611 on master.

Coverage remained the same at 95.95% when pulling 9c140f63638a92d4ee65acde605876a8b94b399d on issues/correct_version_for_django_appdata into 7b7c346377420ece91b72fa7107530e7e97ef611 on master.

Coverage remained the same at 95.95% when pulling 9c140f63638a92d4ee65acde605876a8b94b399d on issues/correct_version_for_django_appdata into 7b7c346377420ece91b72fa7107530e7e97ef611 on master.


Does react-native-community / google-signin implement the  Proof Key for Code Exchange protocol ?

Question
Hi, does react-native-community / google-signin implement the  Proof Key for Code Exchange protocol?

hello!

Google supports the Proof Key for Code Exchange protocol to make the installed app flow more secure.

https://developers.google.com/identity/protocols/oauth2/native-app#step1-code-verifier

For mobile apps, you may prefer to use Google Sign-in for Android or iOS. The Google Sign-in client libraries handle authentication and user authorization, and they may be simpler to implement than the lower-level protocol described here.

They don't say how exactly the google sign in apis work but I'm assuming they are built on top of those OAuth 2.0 apis and use PKCE. Hope this helps.

Hi @vonovak , how can i access the refresh token using the LoginManager? for storing long lived token in react native keychain.

closing as answered


Value Error : MDBottomNavigationHeader.width is below the minimum bound (80)

I am Writing a code for an application. The application works great on my desktop but when i build the code for android using buildozer. I recieve this error.
main.txt
error.txt
buildozersepc.txt

requirements = kivy==1.11.1, git+https://github.com/HeaTTheatR/KivyMD.git

I made the changes, yet still the error persists.

This error has been fixed in the master branch!

buildozer android clean

Thanks, The issue is gone!

The app works now but i can see only half of the navigation bar. What would i need to change to make it work?

How many MDBottomNavigationItem in MDBottomNavigation do you use?

3 - Water,Data & Settings

@tusharraju7 I can’t confirm that you have a problem. Attach a minimal code that reproduces this behavior.


feat(token): initialize the client with a token

Don't forget to udpate the README.md

Forgot to document it


Declare custom 200 response

Is the intention for this to cover #222 ?

It's not the initial intention but yeah it adds more flexibility, useful for use cases where the user want to declare its own content-types, types, etc...
Adding the ability to override the framework is a must-have: the framework must be an enabler, not a blocker!


[PE-D][Tester A] Clarity with UG regarding settle and paid commands

When inputting settle 7 amount/10, the paid field and amount owed field increase and decreases accordingly. However, when inputting pay 7 hr/2, the paid field increases but owed amount has to be manually entered to change. That being said, readers might be confused with the intended usage of paid vs settle, since settle also increases paid field as well. Perhaps the UG could be more clear with the command overview to state the type of situation where one would use pay as opposed to settle.

Labels: severity.Medium type.DocumentationBug
original: Rachael-Chan/ped#3

Update UG


IAM Role not working

Issue submitter TODO list

[X] I've looked up my issue in FAQ
[X] I've searched for an already existing issues here
[X] I've tried running master-labeled docker image and the issue still persists there
[X] I'm running a supported version of the application which is listed here

Describe the bug (actual behavior)
I run kafka-ui in EC2 with IAM Role but is not working
Caused by: com.amazonaws.SdkClientException: Unable to load AWS credentials from any provider in the chain: [EnvironmentVariableCredentialsProvider: Unable to load AWS credentials from environment variables (AWS_ACCESS_KEY_ID (or AWS_ACCESS_KEY) and AWS_SECRET_KEY (or AWS_SECRET_ACCESS_KEY)), SystemPropertiesCredentialsProvider: Unable to load AWS credentials from Java system properties (aws.accessKeyId and aws.secretKey), WebIdentityTokenCredentialsProvider: You must specify a value for roleArn and roleSessionName, com.amazonaws.auth.profile.ProfileCredentialsProvider@4af8948c: profile file cannot be null, com.amazonaws.auth.EC2ContainerCredentialsProviderWrapper@3af8e25a: Unauthorized (Service: null; Status Code: 401; Error Code: null; Request ID: null; Proxy: null)]

Expected behavior
with with role.
Your installation details
EC2 with docker container version:  latest and APP version: https://github.com/provectus/kafka-ui/commit/56fa824
I have this value in docker-compose
      KAFKA_CLUSTERS_0_NAME: Developers-dev
      KAFKA_CLUSTERS_0_PROPERTIES_SECURITY_PROTOCOL: SASL_SSL
      KAFKA_CLUSTERS_0_BOOTSTRAPSERVERS: xxxx
      KAFKA_CLUSTERS_0_PROPERTIES_SASL_MECHANISM: AWS_MSK_IAM
      KAFKA_CLUSTERS_0_PROPERTIES_SASL_CLIENT_CALLBACK_HANDLER_CLASS: 'software.amazon.msk.auth.iam.IAMClientCallbackHandler'
      KAFKA_CLUSTERS_0_PROPERTIES_SASL_JAAS_CONFIG: 'software.amazon.msk.auth.iam.IAMLoginModule required awsRoleArn="arn:aws:iam::xxxx:role/xxx" awsRoleSessionName="kafka-ui"  awsStsRegion="xxx";'

Policy:
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "kafka-cluster:DescribeCluster",
                "kafka-cluster:AlterCluster",
                "kafka-cluster:Connect"
            ],
            "Resource": "arn:aws:kafka:xxxx"
        },
        {
            "Sid": "VisualEditor1",
            "Effect": "Allow",
            "Action": [
                "kafka-cluster:DeleteGroup",
                "kafka-cluster:DescribeCluster",
                "kafka-cluster:ReadData",
                "kafka-cluster:DescribeTopicDynamicConfiguration",
                "kafka-cluster:AlterTopicDynamicConfiguration",
                "kafka-cluster:AlterGroup",
                "kafka-cluster:AlterClusterDynamicConfiguration",
                "kafka-cluster:AlterTopic",
                "kafka-cluster:CreateTopic",
                "kafka-cluster:DescribeTopic",
                "kafka-cluster:AlterCluster",
                "kafka-cluster:DescribeGroup",
                "kafka-cluster:DescribeClusterDynamicConfiguration",
                "kafka-cluster:Connect",
                "kafka-cluster:DeleteTopic",
                "kafka-cluster:WriteData"
            ],
            "Resource": "arn:aws:kafka:xxx*"
        },
        {
            "Sid": "VisualEditor2",
            "Effect": "Allow",
            "Action": [
                "kafka-cluster:AlterGroup",
                "kafka-cluster:DescribeGroup"
            ],
            "Resource": "arn:aws:kafka:xxx*"
        }
    ]
}

Steps to reproduce
Try with IAM Role and this config
Screenshots
No response
Logs
No response
Additional context
No response

The way I did this is that I attached the role (instance profile) to EC2 directly, and not SASL_JAAS_CONFIG. Then test thru CLI that you can access Msk.
Then run the kafka ui docker.. And it works fine. The following is what I added to docker file
#
# For MSK IAM authentication
#
kafka.clusters.0.properties.security.protocol: SASL_SSL
kafka.clusters.0.properties.sasl.mechanism: AWS_MSK_IAM
kafka.clusters.0.properties.sasl.client.callback.handler.class: software.amazon.msk.auth.iam.IAMClientCallbackHandler
kafka.clusters.0.properties.sasl.jaas.config: software.amazon.msk.auth.iam.IAMLoginModule required;
#
# For MSK TLS
#
kafka.clusters.0.properties.ssl.truststore.location: /some-folder/kafka.client.truststore.jks
kafka.clusters.0.properties.ssl.truststore.password: changeit

@kothapet How did you test access to MSK through CLI? Can you pls provide your commands? I'm using ECS and Fargate tasks to run my UI, and using a MSK cluster, but I'm having issues where the UI isn't retriving complete cluster details, and I suspect connectivity issues. Can you please provide some more info on how you tested access to MSK?

@Janhavi-Shinde follow the documentation on AWS MSK developer guide. https://docs.aws.amazon.com/msk/latest/developerguide/getting-started.html. step 1-4.
If you are using IAM make sure setup the roles correctly and check your Security groups. If you are using some other authentication look at the security authentication and authorization sections.

@kothapet I followed that same guide to create a provisioned cluster (also created a serverless cluster but I'm trying to connect the provisioned one right now). I've checked the IAM role I am using has very liberal access (e.g kafka-cluster:* and is applied to all my clusters), my security group has sufficient access inbound and outbound, and the UI and MSK cluster is within the same VPC and Subnets also.


Placement enhancement: support filtering unhealthy/not-reporting cluster

We should be able to define that the workload should not be placed in unhealthy or unreachable clusters.
We can consider similar logic of taint/toleration

/assign @elgnay

/kind feature

/close

close as all the PRs merged.


The typechecking of l_and as a lazy operator is unsound

In F*, the type-checking of l_and (⋀) reflects its laziness. That is in p ⋀ q, the type-checking of q can assume that p holds. Hence it is possible to write:
let hd_ge0 (l : list int) : prop = length l > 0 /\ index l 0 >= 0

However this is not reflected by the signature of l_and (in prims.fs):
type l_and (p: logical) (q: logical) : logical = squash (pair p q)

q is declared as a total logical but it should be Pure logical (requires p) (ensures fun _ -> True) (or squash p -> logical).
One can extract a proof of ⊥ from this:
module Main
open FStar.Tactics

type prop_with_pre (p : Type0) (pf : squash p) : Type0
  = | PropWithPre

let lazy_and : Type0
  = False /\ prop_with_pre False ()

type this_type (t : Type) = | ThisType

let and_right (p0 p1 : Type0) (_ : this_type (p0 /\ p1)) : Type0
  = p1

let pwp_False : Type0
  = _ by (apply (`and_right);
          // [this_type (?p0 /\ ?p1)]
          exact (`(ThisType #lazy_and)))

// Just an utility function
type display_term (#a : Type) (x : a) = unit

let _ : display_term pwp_False
  = _ by (norm [delta_only [`%pwp_False; `%and_right]];
          dump "pwp_False"; // prop_with_pre l_False ()
          exact (`()))

let extract_pre (p : Type0) (pf : squash p) (_ : this_type (prop_with_pre p pf))
  : squash p
  = pf

let absurd : squash False
  = _ by (apply (`extract_pre);
          // [this_type (prop_with_pre l_False ?pf)]
          exact (`(ThisType #pwp_False)))

It may seem similar to https://github.com/FStarLang/FStar/issues/2635 but I think there is an independent problem here since lazy_and already 'contains' a judgement ⊢ prop_with_pre False () : logical hence ⊢ () : squash False. The remaining part is only here to extract this term (I'm not aware of any way to do it without tactics however).
Given their signatures the same issue probably also affects l_or and l_imp.
As a side remark, I also noticed that functions operating on logical formulas often do not take this lazyness into account. For instance q does not assumes p in move_requires, so I was expecting the following to fail:
let test (l : list int) (h : unit -> Lemma (requires length l > 0) (ensures index l 0 >= 0))
  : unit
  = FStar.Classical.move_requires #unit h ()

But it turns out that it is also accepted.

The fixes in PR #2639 prevent the final exploit in these examples that allow extracting a proof of False. As such, I'm removing the unsoundness label. However, I agree that being able to construct terms such as prop_with_pre l_False () is very slippery, and we are working on a patch that revises the way these left-biased connectives are checked, reflecting the hypothesis of the LHS in the typing of the RHS, i.e., /\ will have a type similar to p:Type -> (_:squash p -> Type) -> Type.


Fix: filterFromLeafRows

This is regarding: https://github.com/TanStack/table/issues/4190
Unfiltered:

Leaf:

Middle:

Root:

@rek can you ask repository author to merge this?

I'll do a thorough testing of this PR hopefully this weekend to see if it is good to go and has no regressions


How to Integrate Real-time Webcam on a Web Page Using Javascript

Proposed title of the article
How to Integrate Real-time Webcam to a Web Page Using Javascript
Introduction paragraph (2-3 paragraphs):
Many websites now include real-time camera integration for purposes such as verification, online calls, and streaming. As a result, this is a useful feature to have on your website or online application.
JavaScript is a scripting or programming language that allows you to implement complex features on web pages — such as displaying timely content updates, interactive activities etc. In this article, we'll be using javascript to integrate real-time webcam functionality on a web page.
Key takeaways:

Understanding the basics of Javascript
Javascript actions on the browser
Integration of real-time webcam on a web page

References:
https://developer.mozilla.org/en-US/docs/Learn/JavaScript/First_steps/What_is_JavaScript
https://en.wikipedia.org/wiki/Webcam

@Olanetsoft
Sounds like a helpful topic - lets please be sure it add value beyond what is in the official docs and that it does not overlap with any existing EngEd articles (references any past and relevant articles in yours) or incoming topic suggestions (if you haven't already) to avoid any potential article closure. - approved


apply_torque_impulse does not wake sleeping RigidBody2D

Godot version:

Godot v3.2.2.stable.official
OS/device including version:

Windows 10 64-bit
Issue description:

It seems like if a RigidBody2D is sleeping, it can not be affected by apply_impulse_torque.
The documentation says that apply_impulse will wake a sleeping RigidBody2D, so it seems like this should apply to apply_impulse_torque as well.
Steps to reproduce:
Call apply_impulse_torque on a sleeping RigidBody2D. It will not move.
Setting can_sleep to false fixes the issue.
Minimal reproduction project:
Github project, with gifs and workaround in README:
https://github.com/krscott/godot-rigidbody-bug-demo
zip of project:
godot-rigidbody-bug-demo-master.zip

Duplicate of #40939, fixed with #40941.


can't copy file name when we rename it[even useing ctrl+c,it doesn't work]

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
Describe the solution you'd like
A clear and concise description of what you want to happen.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here. Ex: What device type/UI layout and app version?

Duplicate of #1381


merge from template-sync/template-arlac77-github

package.json

chore(deps): add ^10.1.7 remove ^10.1.6 (devDependencies.@semantic-release/github)

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

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 86.42%

Totals

Change from base Build<PHONE_NUMBER>1:
0.0%

Covered Lines:
62

Relevant Lines:
71

💛  - Coveralls


Add imageHashMH, which is a more precise hashing function

It returns 72 byte hex buffer, which is used as a hash.
More info on that function available on phash.org

awesome! didn't know about this.
can you add a test and docs? be sure to squash at the end and i'll merge ASAP!

specifically, i'd like to keep my 100% coverage :)

In the upcoming week or so. Need to finish other stuff based on this first, tight deadlines :P

Thanks Vitaly. When you rebase/squash from master you'll pick up https://github.com/mgmtio/phash-image/commit/42240ac36dd4b9b7546b73ed88d7aba5411c9797 which should fix the CI failure too.

thanks! i released this as 3.2.0. added some simple and updated docs!
some tests to actually check that the results are sane by actually using the hamming distance would be great, but not a big deal.


Update and reduce Maven dependencies in Gradle distribution

This:

Removes all code in maven subproject that is no longer needed due to the removal of the old maven plugin.
Upgrades to latest Maven (3.6.3)
Reduces the Maven dependencies of the dependency-management and maven  subprojects to a minimum.

We only need the ability to deal with settings of local Maven repo and the functionality to build a model of a POM when generating Metadata

Changes the maven2gradle functionality of gradle init to download dependencies on demand from mavenCentral()

Without this adjustment, the Maven upgrade would cause the distribution to grow by ~2mb and a few additional dependencies

With the reduction, we remove 20 jars (~2mb) from the bin distribution despite the upgrade.

@bot-gradle test this

OK, I've already triggered ReadyForMerge build for you.

Looks like this PR introduced an org.gradleinternal (sic!) package. This was unintentional, right?

@lptr this is a long time ago and apparently this is not documented here, but I think this was on purpose, because of the org.gradleinternal...Maven2GradleWorkAction. I think org.gradle.* code is put in some other scope in the workers and that action should be treated like "user code". But this is very vague memory. I think if it is an issue, some test will fail if it's changed.


An example comparison for docs

test

... why does this keep happening...? :( Why us?

@Alhadis Sorry about this, just jump here from the sort of man page of github, thought it's official test, didn't realize it's personal.

@zyuhu Do you have the link to that man page? We're having this issue a lot, would be good if we could change the example to something more appropriate...

@pchaigno I follow this path to here:

the first jump is from github help site: https://help.github.com/
search "Comparing commits across time", click it.
then went to https://github.com/github/linguist/compare/
there you would see the title " an-example-comparison-for-...", and that's where I came from.

Hope this will help.

Thanks @zyuhu! I opened #3135 to see if we can improve this.


song 3170 incorrectly coded

line 1 should be code 4 (one solo singer after another - it's a duet between male and female singers, says so in the metadata), but currently coded 8 (leader-group alteration)

Hi Dor,
Could you point to the file you are looking at for this?
I.e. is it in the raw/ data folder or cldf/ data folder?

Corrected on canto_codings google sheet


CAPZ v1.12.0 failing to provision clusters

Description
After thoroughly debugging the issues with the E2E suite #198, we identify that v1.12.0 is failing to provision clusters. The current environment installs the latest version of the infrastructure providers and it was confirmed that rolling back to 1.11.5 fixed this issue. We should investigate why 1.12.0 is failing and what we can do to address this. Until then, we'll be pinning the Azure infrastructure provider to v1.11.5.

[ ] After https://github.com/rancher/turtles/pull/646 is merged, we need to enable back E2E test coverage for CAPZ.

closing since the bug is fixed, creating a follow-up issue to fix the e2e test


Do not canonicalize paths for mutation info

We should handle canonicalization consistently between
the VFS and the rest of the code. Currently, we don't do
canonicalization, so let's do the same for mutation info.
This should improve performance when there are many
tasks/outputs to canonicalize.

The improvements here don't seem to make a difference for santa tracker, but they make a difference for the projects with many subprojects:

run assembleDebug | largeAndroidBuild | RealLifeAndroidBuildPerformanceTest is 7% faster
assemble for non-abi change | largeJavaMultiProject | JavaNonABIChangePerformanceTest is 2% faster

See https://builds.gradle.org/repository/download/Gradle_Check_PerformanceTestTestLinux_Trigger/39081253:id/performance-test-results.zip!/report/index.html.

I'm wondering that with resolving task properties early we are going to ignore some late changes. Can we deprecate this behavior now?

We are not really resolving them early, do we? We resolve them as soon as the task is ready for execution, i.e. all dependencies finished. Normally, we would already run the task at this point, only sometimes we may not be able to get a project lock or a worker lease.
I don't know of anything which could happen in between. Do you?


Options for running multiple flows

Discussion for how we want to run multiple downscaling flows on prefect cloud

Run jobs using bash script
Run jobs using python and os
Specify prefect params?

I have a rough implementation of #2 The python script collects json parameter files from a directory, the prefect flow is registered with prefect cloud and then flows are run with all the collected parameter files.

Very open to other options!
cc @jhamman @orianac

https://github.com/carbonplan/cmip6-downscaling/pull/109


Python process dies on mp.set_start_method("dragon")

I see the process becoming a Zombie.  The behavior is new, but I do not know what code change triggered it.  How would I go about debugging this?  I don't see anything on stdout / stderr, and a simpler example still works as expected.  I'll try to remove code piece by piece, but any advise on how to get some more information on the error mode would be much appreciated.

This problem disappeared after a reinstall, thus closing.


UI Sound Effects

Added sound effects for UI interactions.
Ticket: https://github.com/users/Menacing/projects/1/views/2?pane=issue&itemId=49586172
Changes:

Set MouseOver, Focus, and Interact sounds in GGS which takes care of the settings within the options menu
Manually added sounds to the hover and select events on the TabContainer in Options menu
Added UISounds autoload to automatically attach hover and click sound handlers to Button nodes with the group ui_button_sound

Used https://forum.godotengine.org/t/best-proper-way-to-do-ui-sounds-hover-click/39081/3

Added autoplaying menu music for the main, pause, extract, and death menus

TODO:

Figure out how to keep music playing when you select options menu from main menu
Figure out how to actually use GGS to add volume settings for new Menu audio bus

Resources used (all creative commons 0 on freesound.org):

Menu Music: https://freesound.org/people/Inavision/sounds/479258/
Hover: https://freesound.org/people/VKProduktion/sounds/217492/
Click: https://freesound.org/people/VKProduktion/sounds/217498/

Look great! To resolve your TODO with continuing music playback I moved the streamplayer to the menumanager and added an audiostream export to any menus that should have music. Then we check if the stream is different and only interrupt playback if its supposed to be a different sound
Thanks!


DBeaver freeze while opening session manager on a Mariadb connection

Description
When I display Session Manager when my server has about 14 active query currently executed, the GUI is frozen immediately
DBeaver Version
Community Edition <IP_ADDRESS>310081633
Operating System
Ubuntu 22.04
Database and driver

MariaDB 10.11.5
MariaDB JDBC driver 3.0.7 (tested with 3.1.4 too)

Steps to reproduce
Have a server with more than 10 active query.
Display the Session Manager
Click on a line
Then Dbeaver is freezed
You can find the dbeaver stack below :
stack.log
Additional context
SSH tunnel is enabled

@jbarotin
What type of installation for DBeaver do you use? IS it a standalone version or a snap/flatpack package?

@Matvey16  I'm using the deb installation.
Nevertheless, I identified the cause of the issue. It's due to the size of the query currently executed on my MariaDB Server. The query is very huge (cause of a bug on our side), so huge that it makes dbeaver freeze.
You can find an example of the query here :
query_ano.zip
Is that possible to limit size of extracted query in session manager ?

cannot reproduce on win10

Could you please try to generate a thread dump during freeze and attach it here? Here is the instruction: https://dbeaver.com/docs/wiki/Making-a-thread-dump/
Thank you.

It's been a while since no update here. If the issue is still actual please let me know and provide additional information.

@E1izabeth yes issue is still here, it's easy to reproduce, I tried to open query_ano.sql (you can find it here : query_ano.zip ) in DBeaver CE version 23.3.5 under Ubuntu 23.10.
Editor freeze immediately.

@jbarotin Could you please try to generate a thread dump during freeze and attach it here? Here is the instruction: https://dbeaver.com/docs/wiki/Making-a-thread-dump/

@E1izabeth here you go
stack.txt

Thank you

@jbarotin does dbeaver freezes after some concrete action or immediately after script opening?

@E1izabeth Immediately after script opening

@jbarotin Could you try turning Semantic analysis off?

Could you try turning Semantic analysis off?
Done. It still freezes DBeaver.

I tried renaming the file with ".txt", DBeaver is not freezing, but we can't edit file.

Agreed:
Disable syntax analizing for Session Manager based on the log details
        at org.jkiss.dbeaver.ui.editors.sql.SQLEditorBase.reloadSyntaxRules(SQLEditorBase.java:754)
	at org.jkiss.dbeaver.ui.views.session.SessionManagerViewer.updateSQL(SessionManagerViewer.java:407)
	at org.jkiss.dbeaver.ui.views.session.SessionManagerViewer.updatePreview(SessionManagerViewer.java:275)
	at org.jkiss.dbeaver.ui.views.session.SessionManagerViewer.onSessionSelect(SessionManagerViewer.java:356)
	at org.jkiss.dbeaver.ext.mysql.ui.editors.MySQLSessionEditor$1.onSessionSelect(MySQLSessionEditor.java:94)
	at org.jkiss.dbeaver.ui.views.session.SessionManagerViewer.lambda$2(SessionManagerViewer.java:131)


Add large code model

This looks good in general.
When double-checking with the implementations, I saw that LLVM does not create __riscv_cmodel_large. We should probably close this gap before merging this PR.

@asb and @kito-cheng: any objections to merging this?
It looks like this is needed for https://github.com/llvm/llvm-project/pull/107817

In parallel I'd added the define to riscv-c-api-doc in https://github.com/riscv-non-isa/riscv-c-api-doc/pull/86
This listing of defines comes from when this repo was little more than my personal notes on what GCC does and Clang should probably do to follow suit. Now that we have the preprocessor defines listed authoritatively in riscv-c-api-doc I think it makes sense to remove them from this document, which https://github.com/riscv-non-isa/riscv-toolchain-conventions/pull/61 does.


Baseline passage (sentence) retrieval: idf overlap #140

Fixed #140. Please review.

I think we should probably build the interface for a PassageScorer in the passage package.
PassageScorer should have a single method - float score(String q, String passage) or something like that.
And Implement TermMatchIdfPassageScorer or something like that for your current implementation.
Later we can have EarthMoverDistancePassageScorer, etc.

Good idea!

Alternatively, score might take List<String> sentences and keep the score internally, and then you can call getRankedPassages or something like that. Point is, some object needs to hold the scores in a heap...
Try working through different options and see which you like better.

Also, might want to normalize the idf scores by length of sentence or something like that, because otherwise you're favoring overly long sentences...

Yes, I noticed that. I'll have them normalized.

Please critique.


Two minor overflows in re_compile

I found two minor overflows in re_compile:
First overflow
The first one is on line 121:
https://github.com/kokke/tiny-regex-c/blob/9d46276c48091a22ac4fa6472603fe4b17d483ce/re.c#L121
The bug is triggered with the following buffer input to the function: "\\\x01[^\\\xff][^\x00"
The overflow happens because of the [^ characters in the buffer, in particular if execution enters the condition:
https://github.com/kokke/tiny-regex-c/blob/9d46276c48091a22ac4fa6472603fe4b17d483ce/re.c#L173
Then the following code will execute:
https://github.com/kokke/tiny-regex-c/blob/9d46276c48091a22ac4fa6472603fe4b17d483ce/re.c#L179-L190
where i is increased on line 181 and 190, and finally before the loop continues i will be increased again:
https://github.com/kokke/tiny-regex-c/blob/9d46276c48091a22ac4fa6472603fe4b17d483ce/re.c#L226-L229
Which causes the overflow to happen on
https://github.com/kokke/tiny-regex-c/blob/9d46276c48091a22ac4fa6472603fe4b17d483ce/re.c#L121
since i will now be 1-byte off in the buffer.
Second overflow
The second overflow happens on line 190:
https://github.com/kokke/tiny-regex-c/blob/9d46276c48091a22ac4fa6472603fe4b17d483ce/re.c#L190
This bug happens in case the following buffer is given to the function: "\\\x01[^\\\xff][\\\x00"
The bug happens in the code:
https://github.com/kokke/tiny-regex-c/blob/9d46276c48091a22ac4fa6472603fe4b17d483ce/re.c#L173-L192
This happens because of the code:
https://github.com/kokke/tiny-regex-c/blob/9d46276c48091a22ac4fa6472603fe4b17d483ce/re.c#L190-L201
Where i is increased in size on lines: 190 and also line 200. Because i is increased on line 200 in case of a \ character, i will be one out of bounds on line 190 when the while loop enters the second iteration.

Hi @DavidKorczynski and thanks for the thorough explanation.
Just to make sure I understand the report correctly: You are passing an incomplete regex-pattern right?
"\\\x01[^\\\xff][\\\x00" looks like it's missing a closing bracket at the end ] ?

Yes, that's correct! This is an invalid regex pattern - I was only reporting this because of it being a memory corruption bug. If you define your library such that it expects valid regex patterns and otherwise have undefined behavior then the bug is not in scope as such.

Thanks for the update.
Please don't mistake my response for disregard. I really appreciate that you've taken the time to document this defect so thoroughly.
This code does expect valid regex patterns, but still it is not very nice to segfault or corrupt memory. I have always loathed the missing validation but I left it out because I thought implementing it would require too much energy - and code! this project aims for small footprint.
However I don't think it would require much code nor energy to fix this problem for character-classes, so I'll give it some thought and see if I can think of a good fix.
If you have any good ideas for a fix, don't hesitate to share your thought or make a PR.

Sounds good @kokke - your design choices make sense to me and thanks for the kind and quick replies.
I filed an issue of the bugs because I am making some educational videos on how to use some program analysis tools (symbolic execution) in order to analyse the properties of a code base, and your project is a nice project for demonstration purposes because, as you write, it has a small footprint. If you are interested I could share a link to the videos (they are freely available on Youtube).

Thanks for the kind words @DavidKorczynski :)
Most (all?) of my public projects are designed to be runnable on embedded platforms, and usually that means I make some harsh compromises.
What a coincidence, I love static analysis! I would love to see whatever material you have available :)
I dabble with static analysis myself, mostly data-flow analysis and abstract interpretation, but I am not picky :D
I am loving the videos of Christopher Reichenbach, e.g. this one https://www.youtube.com/watch?v=NVBQSR_HdL0

... and if I may ask, how do you find projects well suited for static analysis yourself? I have stumbled into this problem just recently.
I've made a tool that clones a bunch of repos with C-code and runs my analysis-tool on them. Currently, I am just finding repos manually through Github's webpage and copy/pasting the repo-links, which gets tedious...

Awesome :)! I will add a link here when I upload the video - which should happen in one of the coming days.
That's great with data-flow analysis and abstract interpretation. I have used both extensively, and my PhD thesis involved a lot of (dynamic) taint analysis to analyse malware (you can find it on the Oxford University Research Archive here: https://ora.ox.ac.uk/objects/uuid:ef3faf5e-7733-4460-bba4-9e18893dec1e). Program analysis and software verification is my kind of jam too!
I haven't seen those videos before, but by skimming through the one you link to it seems to cover the topics nicely!
About target selection it really varies depending on the properties of the tool I am testing and the specific aspects of the tool that I am testing (edge-case/large-scale/educational demonstration/user interface/ etc.). In general I think your approach is largely the same approach as I do and also how other researchers who test tools. It can be quite a tedious process for sure, and doing a full empirical-analysis of your tool can take months of effort too. In general it's probably good to have a collection of repositories in your sleeve that you can pull out in different contexts - that will carry you a long way I think and often give you quick insights about the properties of your tool(s). Is your tool available somewhere :)?

Awesome :)! I will add a link here when I upload the video - which should happen in one of the coming days.

Nice! I'm looking forward to seeing the video. There are too few videos on static analysis in my opinion. Also thanks for taking the time to answer my questions.

That's great with data-flow analysis and abstract interpretation. I have used both extensively, and my PhD thesis involved a lot of (dynamic) taint analysis to analyse malware (you can find it on the Oxford University Research Archive here: https://ora.ox.ac.uk/objects/uuid:ef3faf5e-7733-4460-bba4-9e18893dec1e). Program analysis and software verification is my kind of jam too!

I'll take a look at your thesis and see how much I understand :) I majored in EE/CS and only did introductory coursework on formal methods and static analysis, so there is a lot of notation/syntax that I don't understand and a lot of branches of math that I am not familiar with. Often times I struggle to read current published research, and need to look much up on wikipedia alongside. Some of the older stuff is more forgiving :D

About target selection it really varies depending on the properties of the tool I am testing and the specific aspects of the tool that I am testing (edge-case/large-scale/educational demonstration/user interface/ etc.). In general I think your approach is largely the same approach as I do and also how other researchers who test tools. It can be quite a tedious process for sure, and doing a full empirical-analysis of your tool can take months of effort too. In general it's probably good to have a collection of repositories in your sleeve that you can pull out in different contexts - that will carry you a long way I think and often give you quick insights about the properties of your tool(s).

Okay - I was hoping that the Github API could be of some help in automating the process, but haven't RTFM yet.
I have often used the Toyota ITC benchmark suite as a first target to get an idea of coverage of very basic errors. I know the suite has flaws, but it also does test a pretty wide range of defects so I find it useful.

Is your tool available somewhere :)?

No. I don't have a well-enough working tool at the moment. I only have toy prototypes and a tool that I have donated to my workplace and worked on there (so not allowed to share the code). It is basically just a (much) more developed version of tiny-lint working with pattern-matching at the syntax level, i.e. not very technologically advanced. That level of sophistication can go a long way though! (cppcheck)[https://github.com/danmar/cppcheck] works great on embedded code with static allocation. It also scales well, which none of my prototype tools do :(
Currently I mostly make toy scripts to test various implementation strategies for the abstract domain. I am trying to understand Anders Møller's course notes but I am still struggling a bit with both theory and practice :D
Otherwise I write scripts for pycparser to manually roll-out loops to get branchless code, insert assertions, adjust error-output by abusing/spamming the #line directive and feeding it to FOSS tools :D it's a mess, but it has worked fantastically for me.
I have somewhat emulated the approach taken by CBMC. I want to get closer, which is why I have begun studying abstract interpretation and have begun trying to emit constraints to an SMT solver. In my testing the standard integer interval domain is a bit too coarse, and finite sets scale horribly.. I am struggling with encoding the maths of more advanced theories in the SMT solver..

Hi @DavidKorczynski - I think I have a solution.
It's not the best solution, but it's the easiest for now.
https://github.com/kokke/tiny-regex-c/commit/1a279e04014b70b0695fba559a7c05d55e6ee90b
The better solution would be to pass a length of the pattern as well, and replace all null-checks with checks against the length of the string. That would enable handling of regex patterns over binary data.
I've added two test-cases (see test_compile.c) that tests the patterns you've reported.
If you can come up with more examples, please let me know.

Hi @kokke
I came across dbde6da49707a6008d33fb4ccc7d84cac79ae1f5 in my recent notifications and there are few code style related questions that I'm too tempted to ask:

Why do you need a mutable copy of pattern1/pattern2? My personal rule of thumb is that everything should be const except those things that can't be constants due to some obvious reasons. Do you share this idea?
Is there any need for variables at all? I've checked that re_compile's argument type is const char *, so it's possible to write just re_compile("expression") or const char *pattern1 = "..."; void *p1 = re_compile(pattern1) if it provides any additional readability.
Is there any reason to use 0 instead of NULL when you're comparing pointers?
There's a similar question about '\0' vs 0 in e.g. 1a279e04014b70b0695fba559a7c05d55e6ee90b (they say, explicit is better than implicit, heh).

It doesn't change anything in tests but similar constructions may affect something in other parts of code and I'm thinking about code style consistency across all files in the project.
Probably I'm not the first one who asks these questions, I hope it doesn't annoy you.

Hi @Nable80 - you're always welcome to ask questions :)

There is no need for a mutable copy at all. A const char* would do just fine. I just wanted tests for the failure-cases, to verify whether or not my proposed fix would work. I like the idea about const-strictness, but I am not too good myself at using const I must admit. In C const has less

There is no need for variables either :) I made a few changes that takes some of your points into consideration: https://github.com/kokke/tiny-regex-c/commit/71eb437a5005038182283036463106e0be25671f -- any feedback is appreciated.

To me there is not much difference between \0, NULL, 0, 0x00 etc. so it's just laziness on my part...

Consistency is a virtue and I will make efforts to get rc.c cleaned up with a more consistent coding style :+1:
Your questions are valid and I appreciate all the feedback I get, because it often improves the code or the documentation :)

Thank you very much for this kind reply!

In C const has less

Are some words missing after this part in point 1? I think I got your idea anyway, const is quite limited in C due to backward compatibility reasons and it's really sad. I often use C for firmware and sometimes I have to use static const workaround, sometimes I just have to accept that compiler stores some constant array/structure as-is instead of tearing it into pieces and using this information to optimize-out all unused branches. It's still better nothing.

I made a few changes that takes some of your points into consideration: 71eb437

IMHO loop isn't better here (unless you add more code to print additional details). E.g. previous version could fail with something like "assertion failure at line 16" or "at line 20" (at least some information about failed test) but now it's always "line 25", no matter which expression fails. IMHO it's better to just shorten the previous version and add a one-line comment to each expression, something like this:
int main()
{
  /* Test 1: inverted set without a closing ']' */
  assert(re_compile("\\\x01[^\\\xff][^") == NULL);

  /* Test 2: set with an incomplete escape sequence and without a closing ']' */
  assert(re_compile("\\\x01[^\\\xff][\\") == NULL);

  return 0;
}

It looks OK to me when there aren't much tests. When (if) their number grows to some degree, it would be time to start using some auto-test library with all its macro expressions, rules, fancy output, etc.
Btw, if you're interested in static analysis, here are the gcc/clang flags that I consider mandatory in my C projects (note: I don't use C++, that's why several well-known flags are absent here): -Wall -Wextra -Wnarrowing -Wwrite-strings -Wcast-qual -Werror, they work best when combined with -O2 -fomit-frame-pointer -flto because some analysis checks are parts of optimization passes, so they're not called if you don't enable optimizations, sometimes bugs can only be found with intermodular analysis, thus the -flto flag.
It may also be interesting to try PVS-Studio. Warning: it's not free software at all (thus I can't recommend using it) but they offer licenses for free to all enthusiasts, AFAIR you don't even have to write them nowadays, one should just download it to an isolated VM and follow the instructions on their site. They often test their tool on different open-source projects and publish reports and explanations, you may use these reports at least as a source of interesting projects to test with your tools and compare results.

Are some words missing after this part in point 1?

Haha yes indeed - how did I miss that.. I was starting a paragraph about how const is difficult to enforce etc.- you got the gist of it.
Valid critique of the loop-construct - I will refactor back to your suggestion, which is clearer and yields better error messages (good point RE: "assertion failed on line 25").
Interesting, I did not know about -Wnarrowing and -Wqual-cast. I will check if our gcc 4.x toolchain at work supports them.
I mostly use the following set of warnings, along with -O2 or -Os, depending on need-for-speed or compactness:
-Wall
-Wextra
-Wundef
-Wstrict-prototypes
I find -Wundef to be indispensable on a lot of C code bases: "Warn if an undefined identifier is evaluated in an #if directive. Such identifiers are replaced with zero."
I haven't tried PVS-Studio because of the non-free licensing. I think I've tried most other FOSS tools for static analysis on C code :D I will try and see if I can get my hand on a personal/research license of PVS-Studio. Good point checking which projects PVS-Studio are scanning :+1:

I will check if our gcc 4.x toolchain at work supports them.

Oh, it sounds like a somehow painful enterprise experience.

along with -O2 or -Os, depending on need-for-speed or compactness

Yes, I usually build with -O2 (desktop/server builds and sometimes I try to use it for firmware, just to compare size and check whether static analysis could find anything in addition to -Os level) or -Os (regular firmware builds) too.
Thank you for -Wundef and -Wstrict-prototypes, I thought they're part of -Wall or -Wextra but they aren't. I've added them to my Makefile and fixed several function definitions. While checking -Wundef documentation in man gcc I found -Wunused-macros and -Wbad-function-cast, they're not enabled by default but they look promising too. There's also -Wconversion flag (and several related flags) but it may require a lot of changes to properly fix all warnings that it enables. Yet it's still worth trying.
I also found these lines today in my old notes: -pedantic -Wall -Wextra -Wunused-parameter -Wstrict-overflow=5 -Wundef -Wshadow -Wcast-qual -Wcast-align -Wconversion -Wsign-conversion -Wmissing-declarations -Wredundant-decls -Wdisabled-optimization -Woverloaded-virtual -Wctor-dtor-privacy -Wold-style-cast
-Werror -Wall -Wextra -Wpedantic -Wcast-align -Wcast-qual -Wconversion -Wctor-dtor-privacy -Wenum-compare -Wfloat-equal -Wnon-virtual-dtor -Wold-style-cast -Woverloaded-virtual -Wredundant-decls -Wsign-conversion -Wsign-promo
-ffast-math -ffp-contract=fast -fsingle-precision-constant -Wdouble-promotion
Most of these flags were already mentioned above or can be used with C++ only but it's still possible that you may find something interesting in this dump.

Just a quick update for now @kokke : The following link is the instructional video on how to use KLEE for analysis of open source projects, which is how I found the bugs reported in this issue : https://www.youtube.com/watch?v=XaYEmwVMRt4

Hi @DavidKorczynski and thanks for the update. I never got back to you, because I had a feeling the second null-check could be avoided, if using the last fix (the one only present in my comments). I wanted to test that out, so I tried getting KLEE to compile and in my quest for that, I ended up doing a full system upgrade.
It went mostly like this:

... but with a more happy ending.
I now have a current version of Debian, but I still can't compile KLEE :laughing:
Oh well, Docker is also nice :rofl: and I have a video-tutorial and everything :+1:
One small critique of the videos: The terminal/console font is almost too small for me. Even in full hd resolution, I have a hard time reading the text on my 14" laptop.

For now I have implemented all the null-checks discussed in https://github.com/kokke/tiny-regex-c/commit/1a279e04014b70b0695fba559a7c05d55e6ee90b -- see commit https://github.com/kokke/tiny-regex-c/commit/349ef187d00444349a38cfc409b9f023a3c31e5f

@DavidKorczynski !! I never gave you a proper reply... Thank you for taking the time to work with me and the project.
I've made the page below where I've begun some KLEE-checking of the code, but I've only done re_compile() for now.
Do you have any test-drivers lying around with more coverage that I could use, now that I'm namedropping you anyways? ;)
https://github.com/kokke/tiny-regex-c/blob/master/formal_verification.md


Duplicate field load.Lua Diagnostics.(duplicate-set-field) linting warning.

Hey mate,
I'm getting the linting warning

"Duplicate field load.Lua Diagnostics.(duplicate-set-field)"

(also present on update and draw too)
when adding lick to my project.
I'm guessing it's from the Lua Language Server extension so it might just be a matter of ignoring the linter but it would be good to get your perspective if there's a more elegant approach.
Cheers!

Hey @joshuarichards001
could you provide a minimal example?

Here's the simple repo I'm working with: https://github.com/joshuarichards001/lua-love-game
Sorry if things aren't formatted correctly, not sure how to work with packages in Lua haha.
Also I ignored the warnings at the top of main.lua so you'll need to remove that with the Lua VSCode extension to replicate.

Hey @joshuarichards001
you should be able to just delete the main.lua in the packages/lick folder if you are not using it. Then the duplicate field diagnostic will go away.


Investigate the use of DNS-like lookup of contacts

MultiBit Classic #599 proposes a feature where contact information can be looked up through a DNS-like user name service such as OneName or similar. This gives a better user experience than manual entry of a contact, but comes at the cost of a potential loss of privacy or exposure to name spoofing/MITM etc.
This issue is here to act as a discussion board for the introduction of this kind of feature.

Out of scope hence graveyard


Make sure closed accounts don't show in workspace members

Details

Before this change, if you:

invite an employee to a workspace
that employee closes their account
you go back to the workspace members page

The closed account would still show up as a workspace member. Now, they get removed from the workspace members list. This is an update the logic implemented here (cc @s77rt)
Fixed Issues

$ https://github.com/Expensify/App/issues/15267
Tests

In one window, log into account 1 (e.g<EMAIL_ADDRESS>Create a workspace if you don't already have one
Invite a user to the workspace (e.g<EMAIL_ADDRESS>Close the right hand modal
In another window, log into employee@ and close the account
In the admin@ account, go back to the workspace members page
The employee whose account was closed should no longer appear as a workspace member (it may take a second to update)

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

Offline tests

N/A. This requires interacting with the API, so no special offline tests.
QA Steps

In one window, log into account 1 (e.g<EMAIL_ADDRESS>Create a workspace if you don't already have one
Invite a user to the workspace (e.g<EMAIL_ADDRESS>Close the right hand modal
In another window, log into employee@ and close the account
In the admin@ account, go back to the workspace members page
The employee whose account was closed should no longer appear as a workspace member (it may take a second to update)

[ ] 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 / Chrome
[x] iOS / native
[x] iOS / 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 correct English and approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

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

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

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

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

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

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

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

Screenshots/Videos

Web

https://user-images.githubusercontent.com/1371996/220437857-ccb63783-27b6-4178-a3ad-26481233a7d0.mov

Mobile Web - Chrome

https://user-images.githubusercontent.com/1371996/220440728-83ac2d9c-7b1c-4379-b75a-3d8291463064.mov

Mobile Web - Safari

https://user-images.githubusercontent.com/1371996/220442430-79710adb-2002-491e-bc60-7d657b921782.mov

Desktop

https://user-images.githubusercontent.com/1371996/220438685-a16cc5a0-8291-4c40-bf54-e0a19e461210.mov

iOS

https://user-images.githubusercontent.com/1371996/220449941-d20cd5d9-6eee-4205-825c-d23267ce8413.mov

Android

https://user-images.githubusercontent.com/1371996/220441971-4a2e7131-a65d-452d-a1e5-ab31ac7a8f22.mov

Thanks for fixing this, we didn't have a valid use case for the use of errors field back then so we opted to filter based on the role field instead.
As per using the errors field, I'm not sure if it's bulletproof, what if we are adding a user where the role is not set yet and have pendingAction? It will be overwritten and cause flickering effect
Usually on these cases I would go for:

Errors not empty
Pending action not empty
Not offline

Pending action is empty

What's the scenario where there's a pending action and we wouldn't prefer to overwrite with the API response?

Not offline (not sure about this condition, as if we are offline the request will be queued anyway)
Same question here. I can't see this being a problem since the API call won't happen until the user comes online

Add member (pendingAction is add, request is still ongoing)
Open members page again (call openWorkspaceMembersPage)
Member will be removed since request (on 1) is still ongoing
Request is done, member added again

Writing this I remembered something, even it seems as a valid scenario it actually will never happen since we queue all read requests to be executed after write requests are done.

Yes and also, when would we ever clear the pendingAction if we didn't include those users in this call?

@Santhosh-Sellavel @monilbhavsar One of you needs to copy/paste the Reviewer Checklist from here into a new comment on this PR and complete it. If you have the K2 extension, you can simply click: [this button]

when would we ever clear the pendingAction if we didn't include those users in this call?

On the request response (or success/failure data), but if we fail to get that, members will be stuck on onyx. Using the errors field seems the way to go as it fixes original issue and this one.

Sweet, thanks for helping validate that!

Reviewer Checklist

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

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

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

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

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

[ ] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick).
[ ] I verified that comments were added to code that is not self explanatory
[ ] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[ ] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method
[ ] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[ ] I verified any copy / text that was added to the app is correct English and approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[ ] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[ ] I verified the JSDocs style guidelines (in STYLE.md) were followed

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

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

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

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

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

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

[ ] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[ ] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[ ] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[ ] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
[ ] I have checked off every checkbox in the PR reviewer checklist, including those that don't apply to this PR.

Screenshots/Videos

Web

Mobile Web - Chrome

Mobile Web - Safari

Desktop

iOS

Android

@puneetlath After performing a close account, the account is not removed automatically from the page even after waiting some time. It's only removed after closing and opening the Manage Members page. Is this fine?

Yes, that is because the back-end doesn't currently send a pusher update when the account is closed. So until you come back to the page, which then calls the API to get the full members list, the page won't update.
I'm going to look into a doing a back-end pusher update as well, but that's separate from this PR. Thanks for testing!

yep! over to you @MonilBhavsar

@MonilBhavsar bump!

sorry, was ooo

:hand: This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release.

🚀 Deployed to staging by https://github.com/MonilBhavsar in version: 1.2.77-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
failure ❌

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to staging by https://github.com/MonilBhavsar in version: 1.2.77-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production by https://github.com/yuwenmemon in version: 1.2.77-4 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅


ignoreCasting does not exist

The function ignoreCasting does not exist in the latest release v0.5.1
Create a new release containing it please.

Hi. thanks for reporing
use release 5.0.1

use 0.5.2 instead of it


High CPU usage when using ClientRPC

I just profiled my application in server only mode with 4 remote clients
ClientRPCs seem to be blocking due to mutexes (see image) - The profiled Ping method is a ClientRPC and there are others like this that block > 3ms.
Those ClientRPCs usually have not more than 1 primitive parameter (e.g. int)

Fix is:
replace:
https://github.com/MirrorNG/WebsocketNG/blob/616049c7a860a7bb1a753af9ab38c0bbe79b5b99/Assets/Mirror/Websocket/Common/SendLoop.cs#L20-L22
with:
if (queue.Count > 0) {
	MemoryStream msg = queue.Take(cancellationToken);
	stream.Write(msg.GetBuffer(), 0, (int)msg.Length);
}


Not working properly in firefox in MAC OS

This menu is not working in firefox for MAC and the menu is not accessible through the keyboard. Please suggest solutions for this.

@mueezPL - did Mozilla break the internet with Firefox recently? I've just tested numerous sites (with and without this mega menu) in Firefox 82.0.3 (64 bit) on macOS Catalina 10.15.7 and Firefox won't tab-focus anchor tags. All work as expected in Chrome.

Firefox is getting a11y settings from the OS level: https://stackoverflow.com/a/11713537


fix(v1):  avoid calling training_v1.Model.metrics during PREDICT

training_v1.Model.metrics adds about 10% overhead to my v1 model predictions.
During inference (with no callbacks), make_logs and set_callback_parameters is repeatedly called, which eventually calls a very expensive _flatten_layers.
This change only generates the metrics names when required.
An alternative is to make the metrics a cached property but that can be tricky with memory leak management. Let me know what you prefer.

Thanks for the PR. This appears to be a safe change. I'd keep this open for a few days to see if there's any concern from the team or the community. Feel free to follow up in a few days and I can approve this.

Haha looks like it has more impact than I expected... I'll look into the failed tests later when I'm free

@s22chan  Any update on this PR? Please. Thank you!

@s22chan Would you please take a look at the failed tests?
Also remember to use sh shell/format.sh to format your code.
Thanks!


[Bug] datadog.android.rum.tracking.ActivityViewTrackingStrategy.onActivityResumed crash

i'm getting this error:
Fatal Exception: java.lang.RuntimeException: Unable to resume activity {mypackage/o.setVerticalOffset}: java.lang.NullPointerException: Attempt to invoke virtual method 'int android.os.Parcel.dataSize()' on a null object reference

Caused by java.lang.NullPointerException: Attempt to invoke virtual method 'int android.os.Parcel.dataSize()' on a null object reference
  at android.os.BaseBundle.(BaseBundle.java:164)
  at android.os.Bundle.(Bundle.java:106)
  at android.content.Intent.getExtras(Intent.java:6622)
  at com.datadog.android.rum.tracking.ActivityViewTrackingStrategy.onActivityResumed(ActivityViewTrackingStrategy.java:56)
  at com.datadog.android.rum.tracking.MixedViewTrackingStrategy.onActivityResumed(MixedViewTrackingStrategy.java:71)
  at android.app.Application.dispatchActivityResumed(Application.java:219)
  at android.app.Activity.onResume(Activity.java:1264)
  at androidx.fragment.app.FragmentActivity.onResume(FragmentActivity.java:434)

in my project we use dexguard
mapping file line: mypackage.presentation.HomeCardsChartAdapter -> o.setVerticalOffset:

Steps to reproduce the issue:
I don't know how to reproduce it, it's a recurring error that occurs with few users on some devices
Describe what you expected:
Additional context
Android OS version: Android 5,6,7
Device Model: Galaxy J5, LG K11
Datadog SDK version: 1.11.0

Hi @methob, and thanks for reporting this issue. At first glance it seems like an exception that might occur within the Android internals (when the BaseBundle constructor tries to access the mParcelledData field of a Bundle to copy.
Without  any steps to reproduce this issue I'm not sure there's a lot we can do here. Do you have any information about what extras might be passed into the Activity Intent?  Please let us know if you have more information about this so that we can investigate on our end.

I can't say for sure what's in the intent, but I send a string called "redirect"
and a flag FLAG_ACTIVITY_NEW_TASK
this only happens with android 5,6,7
and with old devices

There was no answer for a month now, we'll close this issue but feel free to open it again if you have more information to reproduce it.


Consider consolidating CSP specific structs into single package

Currently all 3 implemented CSPs have their own package:

github.com/grafana/unused/gcp
github.com/grafana/unused/aws
github.com/grafana/unused/azure

While this could be seen as a good idea it currently isn't, and it just adds additional indirection. This could be easily solved by making relatively small changes like the following (using GCP as an example):

github.com/grafana/unused/gcp#Disk -> github.com/grafana/unused#GCPDisk
github.com/grafana/unused/gcp#Provider -> github.com/grafana/unused#GCPProvider or even just GCP
github.com/grafana/unused/gcp#NewProvider -> github.com/grafana/unused#NewGCPProvider

I guess it's going to depend on the future goals, and if there are plans to extend unused to other resources such as loadbalancers, service accounts, SQL instances etc. If so, each CSP exist in it's own package makes sense and isn't a level of indirection. If they exist within the same one, it's pretty easy for a developer to start pulling resources between providers and creating tight coupling.

🤔 yeah, I think you're right. In fact we could turn each provider package into its own Go module and release different versions for each one of them.


Run command as op

Hello when I use the command signs I don’t want exactly the sign to run the command only if the player has the permission for the command. It would be awesome if you could add a feature that when a player uses a command sign it will run the command whether they have the permission for that command or not.

Thanks for your suggestions, this has been added to version 2 which will be released soon!


Add AS923 and IN865 regions

This is an implementation of AS923 (including subbands) and IN865 regions.
For AS923_1, there is also AS923_1B. As I understand it, there is no difference on a device, only on gateways, but I'd appreciate a double check on that.

Closing this in favor of #96


Predictor.

Predictor.from_path("https://storage.googleapis.com/allennlp-public-models/bert-base-srl-2020.03.24.tar.gz")

hello,I meet this bug, why?

Hi, this works on my machine. I guess it's a problem with the library of allennlp. You can download it and manually decompress it as an alternative. Or you can refer to http://docs.allennlp.org/v0.9.0/api/allennlp.predictors.html#allennlp.predictors.predictor.Predictor for detail.


Simple REST API for adding new cronjobs

Hi, it would be nice to have a simple REST API for adding new cronjobs.
For authentication a simple configurable token (and an optional IP for accessing the API) would be enough.
Kind regards

This is technically possible. Although I don't have it documented, with some digging it should be possible to do it.
All the available end points. https://github.com/alseambusher/crontab-ui/blob/master/routes.js
GET/POST parameters etc: https://github.com/alseambusher/crontab-ui/blob/master/app.js

Eg:
Start crontab-ui like this:
BASIC_AUTH_USER=user BASIC_AUTH_PWD=SecretPassword crontab-ui

Then you can use curl:
 curl -u user:SecretPassword -XGET 'localhost:8000/export'

The response should be like this:
{"name":"ls","command":"ls","schedule":"* * * * *","stopped":false,"timestamp":"Tue Nov 26 2019 22:38:51 GMT-0800 (Pacific Standard Time)","logging":"true","mailing":{},"created":1574836731807,"_id":"ZVynPMql5JzwqATR"}
{"name":"ping","command":"ping google.com","schedule":"*/1 * * * *","stopped":false,"timestamp":"Tue Nov 26 2019 22:24:37 GMT-0800 (Pacific Standard Time)","logging":"true","mailing":{},"created":1574835877331,"_id":"o9cMoYqpzwBM5QqC"}


Add lexer for the Logtalk programming language

Thanks

Thanks for accepting and merging my lexer contribution. I will do my best to keep it up-to-date.

Wonderful.  Thanks for contributing.

@pmoura
perhaps you should also add an enty to the list of supported language extensions in the README.md file.

Fixed in the #386 pull request.


Jupyter 4.1.0 upgrade

Issue to track release timeline and any emergent blockers to support Jupyter v4.1.0

Optimistically targeting sagemaker-distribution v1.5.0 for this upgrade. Running a build right now to assess if we'll have any conflicts

Confirmed JL-4.1 can be included in v1.5.0