No mutation for statement where both operands are constants

Description
source code:
void f1() {
    puts("abc");
    int a = 0;
    a = 2 + 2;
    a = a + 2;
    a = 2 + a;
}

mutants in Mull output:
[info] Survived mutants (4/4):
/home/sergeyb/sources/mull_testing/func1.c:6:11: warning: Survived: Replaced + with - [cxx_add_to_sub]
    a = b + c;
          ^
/home/sergeyb/sources/mull_testing/func1.c:7:11: warning: Survived: Replaced - with + [cxx_sub_to_add]
    b = a - c;
          ^
/home/sergeyb/sources/mull_testing/main.c:7:11: warning: Survived: Replaced + with - [cxx_add_to_sub]
    a = a + 2;
          ^
/home/sergeyb/sources/mull_testing/main.c:8:11: warning: Survived: Replaced + with - [cxx_add_to_sub]
    a = 2 + a;
          ^
[info] Mutation score: 0%
[info] Total execution time: 161ms

Mutation for line a = 2 + 2; is absent.
How-to reproduce:

git clone https://github.com/ligurio/mull-testing
cd mull-testing
make mutate

Version
sergeyb@pony:~/sources/mull_testing$ mull-cxx --version
Mull: LLVM-based mutation testing
https://github.com/mull-project/mull
Version: 0.10.0-trunk1
Commit: 296ee8e
Date: 10 Mar 2021
LLVM: 11.0.0

Hi @ligurio, thanks for the report.
There are no mutants in this case because Clang does constant folding and lowers 2 + 2 as 4.
This is the corresponding IR code:
  store i32 0, i32* %a, align 4 ; Line int a = 0;
  store i32 4, i32* %a, align 4 ; Line a = 2 + 2;

Since it happens way before the code translates into the LLVM IR, there is not much we can do with this issue.

Got it, thanks for explanation.
I think it's worth to describe it in documentation because it's not obvious. What do you think?

Yeah, makes sense! I'm also thinking about whether it makes sense to add a flag to clang (e.g. -fno-constant-folding or something like that),


Proposal: system menu

Could there be API to show the window system menu on Linux and Windows?

https://docs.gtk.org/gdk3/method.Window.show_window_menu.html
https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-getsystemmenu

I tried adding this functionality for the windows platform, but it doesn't seem to display the state of the menu items correctly

Strange, the docs claim that it should be automatically taken care of. Which state is wrong?

The system automatically grays items on the standard window menu, depending on the situation. The application can perform its own checking or graying by responding to the WM_INITMENU message that is sent before any menu is displayed.

I've added a popUpWindowMenu method for windows and linux platforms, but I can't fix this incorrect state on Windows for now.

Interesting, the warnings were actually from the X11 backend because VS Code sets GDK_BACKEND=x11. The Wayland backend would crash due to missing device, but both are fixed by https://github.com/leanflutter/window_manager/pull/145.


desync: 0.4.0 -> 0.9.0

Motivation for this change
The desync package has fallen far behind upstream, and consequently missed out on a great deal of feature and bugfix development.
Things done

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

[X] NixOS
[x] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[X] Tested execution of all binary files (usually in ./result/bin/)
[X] Determined the impact on package closure size (by running nix path-info -S before and after)
46,885,312 -> 51,176,648 -- an increase, but not an out-of-range one given the dependency chain updates supporting new features.
[ ] Ensured that relevant documentation is up to date
[X] Fits CONTRIBUTING.md.

@doronbehar done, thank you -- I hadn't been aware of buildGoModule.
That said, with the cutover, the tests are no longer able to succeed -- it looks like the data they need at runtime (stored in the testdata and cmd/desync/testdata subdirectories of the desync source tree) is unavailable. I don't see any hints in the buildGoModule documentation on how to address that; would you have guidance?

I don't see any hints in the buildGoModule documentation on how to address that; would you have guidance?

Me too :confused: . Tried to debug this a bit locally and failed to see why.

I don't see any hints in the buildGoModule documentation on how to address that; would you have guidance?

Me too :confused: . Tried to debug this a bit locally and failed to see why.


formatCardNumber is duplicating input

http://codepen.io/ccheney/pen/bqErPp
Typing this:
4111111111111111
You end up with this:
411111111111111111
Don't have time to dig into which PR introduced this but I'd recommend sticking with v2.1.4

Thanks for reporting this - looking into it right now.

Fixed in 2.2.1!


Feature request some mouse shortcuts

Add a Delete context menu.
Allow replacing text with right click paste

Reason for request is brought on by this frustration
https://user-images.githubusercontent.com/60384196/162810350-dca7acaf-e8c3-4f5f-90a2-2372dbebd9ea.mp4
Ignore the fact the serial I used does not have updates
I use a mouse and OSK because of a toddler. So mouse shortcuts are kind of essential.
If you're eagle eye you'll see every time I right click the text unhighlights preventing text replacement with the next serial.

Add a Delete context menu.

Eh, no harm done in a Clear option on the context menu, shouldn't be too bad.

every time I right click the text unhighlights preventing text replacement with the next serial.

Idk if i can make egui not deselect the text when right clicking. If I can't, then I'll leave that as is, since a Paste option that unconditionally nukes the existing text is probably more annoying imo.
You can do Ctrl+A, and then Ctrl+V to select all the text and replace with the clipboard's contents.

That should work thanks


[ETFE-3162] - Add fixed transport installation journey type page content + align logic

~Need to cleanup some imports, run the JT's (will probably break) and PT's~

I need to check the logic again (post-rebase) on Monday and run it past UCD, going to mark it as a draft

All checked and approved🫶❤

All changes has been staged. Thank you and you're welcome😉❤


Relative path to image in  tag does not work

want to point this out in case anyone is experiencing the same frustration. after a few hours I finally figured it out

you must import:
import myImage from '../myimage'//this being the relative path

You should had read this: https://github.com/facebookincubator/create-react-app/blob/master/packages/react-scripts/template/README.md#adding-images-fonts-and-files
RTFM :stuck_out_tongue_winking_eye:

Can we make documentation better to address this?
I’m glad you found the solution, and I encourage you to read the User Guide for other tips.


Add-on no longer display correct text in menus

I've just spun up this app-script-form-notification-addon with zero code changes including this code:
function onOpen(e) {
FormApp.getUi()
.createAddonMenu()
.addItem('Configure notifications', 'showSidebar')
.addItem('About', 'showAbout')
.addToUi();
}
Both menu items execute showSidebar() and showAbout() but the menu text displayed does not match this code?!.  Instead, I'm seeing the addon name appear ...

I noticed that there was a version change to Google Forms so perhaps that might the cause.

Yes, this is due to a bug with the latest release of Google Forms. I've raised the issue with the engineering team.


Added new test for changing order of execution of workitems through m…

…ove options provided in a workitem's "kebab" menu, added blocked (and commneted out) drag and drop test (test is blocked by bug in protractor and its interaction with browsers and angular2).

Can one of the admins verify this patch?

Can one of the admins verify this patch?

[test]

Current coverage is 51.36% (diff: 100%)

No coverage report found for master at 3855e35.

Powered by Codecov. Last update 3855e35...35bc00f


This works on Azure SQL Database

Don't know if it's supposed to, or is supported.  But it works.  You can capture the event in a XEvent trace, so it's also useful.

@davidbaxterbrowne These procs are specific to SQL Profiler. They haven’t been tested for Extended events (even if they appear to work). The supported way is to use Extended Event DDL to add events.
See https://docs.microsoft.com/en-us/azure/sql-database/sql-database-xevent-db-diff-from-svr, https://docs.microsoft.com/en-us/azure/sql-database/sql-database-xevent-code-event-file, and https://docs.microsoft.com/en-us/azure/sql-database/sql-database-xevent-code-ring-buffer.


Failed to load the native TensorFlow runtime.

Please make sure that this is a build/installation issue. As per our GitHub Policy, we only address code/doc bugs, performance issues, feature requests and build/installation issues on GitHub. tag:build_template
System information

OS Platform and Distribution (e.g., Linux Ubuntu 16.04): mac os
Mobile device (e.g. iPhone 8, Pixel 2, Samsung Galaxy) if the issue happens on mobile device:
TensorFlow installed from (source or binary): using "pip install tensorflow"
TensorFlow version:
Python version: 3.6
Installed using virtualenv? pip? conda?: pip
Bazel version (if compiling from source):
GCC/Compiler version (if compiling from source):
CUDA/cuDNN version:
GPU model and memory:No GPU

Describe the problem
Provide the exact sequence of commands / steps that you executed before running into the problem
Installed tensorflow using pip install
When i tried to load import tensorflow as tf, it throws a log
Any other info / logs
Include any logs or source code that would be helpful to diagnose the problem. If including tracebacks, please include the full traceback. Large logs and files should be attached.

ImportError                               Traceback (most recent call last)
~/anaconda3/lib/python3.6/site-packages/tensorflow/python/pywrap_tensorflow.py in ()
57
---> 58   from tensorflow.python.pywrap_tensorflow_internal import *
59   from tensorflow.python.pywrap_tensorflow_internal import version
~/anaconda3/lib/python3.6/site-packages/tensorflow/python/pywrap_tensorflow_internal.py in ()
27             return _mod
---> 28     _pywrap_tensorflow_internal = swig_import_helper()
29     del swig_import_helper
~/anaconda3/lib/python3.6/site-packages/tensorflow/python/pywrap_tensorflow_internal.py in swig_import_helper()
23             try:
---> 24                 _mod = imp.load_module('_pywrap_tensorflow_internal', fp, pathname, description)
25             finally:
~/anaconda3/lib/python3.6/imp.py in load_module(name, file, filename, details)
242         else:
--> 243             return load_dynamic(name, filename, file)
244     elif type_ == PKG_DIRECTORY:
~/anaconda3/lib/python3.6/imp.py in load_dynamic(name, path, file)
342             name=name, loader=loader, origin=path)
--> 343         return _load(spec)
344
ImportError: dlopen(/Users/pritee/anaconda3/lib/python3.6/site-packages/tensorflow/python/_pywrap_tensorflow_internal.so, 6): Symbol not found: _clock_gettime
Referenced from: /Users/pritee/anaconda3/lib/python3.6/site-packages/tensorflow/python/../libtensorflow_framework.so (which was built for Mac OS X 10.12)
Expected in: /usr/lib/libSystem.B.dylib
in /Users/pritee/anaconda3/lib/python3.6/site-packages/tensorflow/python/../libtensorflow_framework.so
During handling of the above exception, another exception occurred:
ImportError                               Traceback (most recent call last)
 in ()
----> 1 import tensorflow as tf
~/anaconda3/lib/python3.6/site-packages/tensorflow/init.py in ()
22
23 # pylint: disable=g-bad-import-order
---> 24 from tensorflow.python import pywrap_tensorflow  # pylint: disable=unused-import
25
26 try:
~/anaconda3/lib/python3.6/site-packages/tensorflow/python/init.py in ()
47 import numpy as np
48
---> 49 from tensorflow.python import pywrap_tensorflow
50
51 from tensorflow.python.tools import component_api_helper
~/anaconda3/lib/python3.6/site-packages/tensorflow/python/pywrap_tensorflow.py in ()
72 for some common reasons and solutions.  Include the entire stack trace
73 above this error message when asking for help.""" % traceback.format_exc()
---> 74   raise ImportError(msg)
75
76 # pylint: enable=wildcard-import,g-import-not-at-top,unused-import,line-too-long
ImportError: Traceback (most recent call last):
File "/Users/pritee/anaconda3/lib/python3.6/site-packages/tensorflow/python/pywrap_tensorflow.py", line 58, in
from tensorflow.python.pywrap_tensorflow_internal import *
File "/Users/pritee/anaconda3/lib/python3.6/site-packages/tensorflow/python/pywrap_tensorflow_internal.py", line 28, in
_pywrap_tensorflow_internal = swig_import_helper()
File "/Users/pritee/anaconda3/lib/python3.6/site-packages/tensorflow/python/pywrap_tensorflow_internal.py", line 24, in swig_import_helper
_mod = imp.load_module('_pywrap_tensorflow_internal', fp, pathname, description)
File "/Users/pritee/anaconda3/lib/python3.6/imp.py", line 243, in load_module
return load_dynamic(name, filename, file)
File "/Users/pritee/anaconda3/lib/python3.6/imp.py", line 343, in load_dynamic
return _load(spec)
ImportError: dlopen(/Users/pritee/anaconda3/lib/python3.6/site-packages/tensorflow/python/_pywrap_tensorflow_internal.so, 6): Symbol not found: _clock_gettime
Referenced from: /Users/pritee/anaconda3/lib/python3.6/site-packages/tensorflow/python/../libtensorflow_framework.so (which was built for Mac OS X 10.12)
Expected in: /usr/lib/libSystem.B.dylib
in /Users/pritee/anaconda3/lib/python3.6/site-packages/tensorflow/python/../libtensorflow_framework.so
Failed to load the native TensorFlow runtime.
See https://www.tensorflow.org/install/errors
for some common reasons and solutions.  Include the entire stack trace
above this error message when asking for help.

What is the OS version you are using? I suspect your operating system does not follow AVX instruction sets. TensorFlow official release binaries version 1.6 and higher are prebuilt with AVX instruction sets. In the case of macOS, TF is tested and supported against macOS 10.12.6 (Sierra) or later. To use Tensorflow on old CPUs you'll need to build a binary on your own.

Thanks all.


REST API authentication multi-tenancy

Implement tags to associate users and spatial content records with specific tenants.

Implemented


The "Shortcode with body" example in the docs doesn't work

The Shortcodes with body example in the docs does not work. It seems that the body must be on a new line, otherwise gutenberg does not recognize the shortcode reference. Specifically, it only works if I change:
{% quote(author="Vincent") %}A quote
{% end %}

to:
{% quote(author="Vincent") %}
A quote
{% end %}

It's worth noting that the following (inserting non-line breaking white space between the "}" and "A quote" does NOT work either (the body must start on a new line):
{% quote(author="Vincent") %} A quote
{% end %}

I'm guessing that this is a bug in the shortcode handling, but if this is expected behavior then at the very least it's a bug in the docs where the example should be changed and the fact that the body needs to be on a new line flagged clearly.
One other thing to note is that the shortcode tests in the repo only seem to test shortcode-without-body type shortcodes.

It should work even on a single line so that's definitely a bug. Should be easy enough to fix if anyone wants to try!

I think I've figured out what's wrong. I'll put up a pull request a bit later.

Ugh. Turns out the gutenberg build that I was creating when rebuilding wasn't the one my script was installing (release/debug confusion). So this particular issue seems to be an old bug that is fixed in current master.
That said!...
The references to sc_body_start and ignored_sc_body_start at the following line seems wrong:
https://github.com/Keats/gutenberg/blob/b12075486272/components/rendering/src/content.pest#L61
I believe that that line should be referencing shortcode_with_body and ignored_shortcode_with_body instead.
I also don't understand why there is a reference to Rule::text_in_ignored_body_sc and Rule::text_in_body_sc here:
https://github.com/Keats/gutenberg/blob/e0291cec654f/components/rendering/src/shortcode.rs#L138
I think that line should just match Rule::text.
Or am I misunderstanding the code, Vincent?

That first one looks like a potential issue yes.
Not entirely sure about the second one, from a quick look they do seem needed

Can this be closed @jwatt ?

For the second one, it seemed that p at that point could only be one of the five top level types that will be output by pest: text, or one of the four shortcode types. So I didn't understand (and meant to look into) why you thought Rule::text_in_ignored_body_sc and Rule::text_in_body_sc were needed there first.

So I didn't understand (and meant to look into) why you thought Rule::text_in_ignored_body_sc and Rule::text_in_body_sc were needed there first.

I have no idea. My best guess is I wrote some tests, wrote the grammar and tweaked it until it passed the tests

Nothing fails for me running cargo test and it is confusing to have those rules there since it looks like they can never be matched. I'll put up a PR and you can decide if you want to accept it or not. :)

Can this be closed @jwatt ?

With #489 landed everything I brought up here has been addressed. Thank you!


Add support for Amazon Timestream Write API

This PR adds support for Amazon Timestream Write API enabling rusoto clients to write metrics data to Amazon Timestream and to manage Amazon Timestream databases and tables. In order to add Timestream service I also had to bump botocore to version 1.19.12.
Note, I failed to also add support for Amazon Timestream Query API, because that API's generated code will not compile due to recursive types.

Any chance that this PR will get accepted?

I have opened up a new PR #1918 that is based on the 0.46 release with new Tokio support.


chore: use destructuring syntax for react and react-ts template

Description
In react template, the code in main.jsx is not concise, which is as same as that in react-ts
import ReactDOM from 'react-dom/client'
import App from './App'
import './index.css'

ReactDOM.createRoot(document.getElementById('root')).render(
  <React.StrictMode>
    <App />
  </React.StrictMode>
)

I think use ES6 destructuring syntax is more appropriate here.
import { createRoot } from 'react-dom/client'
import App from './App'
import './index.css'

createRoot(document.getElementById('root')).render(
  <React.StrictMode>
    <App />
  </React.StrictMode>
)

Additional context

What is the purpose of this pull request?

[ ] Bug fix
[x] New Feature
[ ] Documentation update
[ ] Other

Before submitting the PR, please make sure you do the following

[x] Read the Contributing Guidelines.
[x] Read the Pull Request Guidelines and follow the Commit Convention.
[x] Check that there isn't already a PR that solves the problem the same way to avoid creating a duplicate.
[x] Provide a description in this PR that addresses what the PR is solving, or reference the issue that it solves (e.g. fixes #123).
[x] Ideally, include relevant tests that fail without this PR but pass with it.

Thanks for the PR. We already closed the same change a few weeks ago, as the current template is aligned with the React docs https://reactjs.org/docs/hello-world.html. I think we can keep it as is, both styles look to be common in the React ecosystem, no?


client: Move vtgateconn plugins into the Vitess Go SQL driver package.

@alainjobart
Before this change, users had to explicitly import their preferred vtgateconn implementation (in most cases gRPC).
With this change, this is no longer necessary because the driver will import all available implementations automatically.
This is also more consistent with the remaining code:

we import different implementations at the binary level (in go/cmd/*)
the Go SQL Driver is a library and therefore at the same level as a binary

LGTM


Adds support for bulk create option

Description
Adds support for bulk create option
Issues Resolved
#1457 Create-only actions in OpenSearch bulk requests
Check List

[X] New functionality includes testing.
[ ] New functionality has been documented.

[ ] New functionality has javadoc added

[X] Commits are signed with a real name per the DCO

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

Codecov Report

Merging #1561 (f2a7567) into main (7d26f16) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##               main    #1561   +/-   ##
=========================================
  Coverage     94.18%   94.18%
  Complexity     1181     1181
=========================================
  Files           165      165
  Lines          3386     3386
  Branches        277      277
=========================================
  Hits           3189     3189
  Misses          141      141
  Partials         56       56

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 7d26f16...f2a7567. Read the comment docs.

This looks great! Thanks for making this contribution. I had a couple comments for some general code improvements, but nothing major.

Awesome - thanks! I will get those addressed shortly.

@graytaylor0 Thanks a lot for those comments. Everything made sense. I pushed changes up.

Looks like I messed up in there by merging from main and not signing the merge commit. What's the best way to fix that?

Looks like I messed up in there by merging from main and not signing the merge commit. What's the best way to fix that?

Thanks for making those changes! The best way to fix the DCO will be to rebase your branch against main with
git rebase -i main, and then you can just squash all your commits (or at least the one without the DCO signing)

@jzonthemtn Any reason this was closed? If it was an accident we can reopen and merge.

@jzonthemtn Any reason this was closed? If it was an accident we can reopen and merge.

No, I don't know why. I can only guess I was in the wrong issue. Sorry for my clumsiness.


Router exact to pass down to Route

Little extra, but this will enable writing:
<Router exact>
  <Route path="/">
    <Index />
  </Route>
  <Route path="/hello">
    <Hello />
  </Route>
  <Route path="*">
    <NotFound />
  </Route>
</Router>

instead of:
<Router>
  <Route exact path="/">
    <Index />
  </Route>
  <Route exact path="/hello">
    <Hello />
  </Route>
  <Route exact path="*">
    <NotFound />
  </Route>
</Router>

This is my first pull request, so please let me know if there's anything I've done wrong. Thank you! 😃

Interesting one, very nice first PR! :beers:

@pateketrueke Ready to merge?

Hi @elimisteve I agree, but I'm not maintainer on this repo, so I won't merge it.

#68


Nested element in element#id selector gives parse error.

Hi,
So I believe I've stumbled upon 2 seperate issues, but I am not filing them as such because I am not sure if this is the correct place to file them, and if it is, they might both be configuration mistakes on my part.
The first is that when I run sass-lint directly from the tty, this happens:
`$ sass-lint _appstyles.scss
/usr/local/lib/node_modules/sass-lint/lib/rules/indentation.js:57
'line': node.content[i + 1].start.line,
^
TypeError: Cannot read property 'start' of undefined
at processNode (/usr/local/lib/node_modules/sass-lint/lib/rules/indentation.js:57:46)
at processNode (/usr/local/lib/node_modules/sass-lint/lib/rules/indentation.js:96:9)
at processNode (/usr/local/lib/node_modules/sass-lint/lib/rules/indentation.js:96:9)
at processNode (/usr/local/lib/node_modules/sass-lint/lib/rules/indentation.js:96:9)
at processNode (/usr/local/lib/node_modules/sass-lint/lib/rules/indentation.js:96:9)
at processNode (/usr/local/lib/node_modules/sass-lint/lib/rules/indentation.js:96:9)
at processNode (/usr/local/lib/node_modules/sass-lint/lib/rules/indentation.js:96:9)
at Object.module.exports.detect (/usr/local/lib/node_modules/sass-lint/lib/rules/indentation.js:100:5)
at /usr/local/lib/node_modules/sass-lint/index.js:123:27
at Array.forEach (native)`
The other issue is that when I use it through https://github.com/AtomLinter/linter-sass-lint 1.1.1 in either Atom 1.5.3 or 1.6.0-beta6, it produces this error:
"Unexpected parse error in fileat line 1 col 1"
On the following sass:
section#prosjekter { article {} }

Hi @vhaarr - Thanks for the report. Are you using tabs by any chance?
If so, there's an issue with 1.5 that will soon be fixed with the soon to be released v1.6

Yes, I use tabs for indentation.
Would that cause both problems?

It looks like it. There was an issue in the AST we use, gonzales-pe which looks to be fixed now. We've just finished updating all of our rules for the latest version so fingers crossed everything should be sorted in 1.6 :+1:  though this may just open more issues with the indentation rule which requires further work.

+1

This example is no longer throwing an error in sass-lint 1.6.0 though the indentation rule is still to be updated and fixed to work correctly so we can't guarantee it's accuracy right now.
Will close this as we have indentation issues open already and the updates are in the pipeline but the underlying reason for this error to be thrown has been solved.


Two problems with Linux version 2.1.6

SSDcoin 2.1.6 installed from source Linux CLI mode... staking not working.
Linux GUI installed from .deb file is OK (staking is working)... but reporting mix of 2.1.4 and 2.1.6 versions.

Please update your program to the latest version


Fix Ad blockers break search results and filtering #176

Would be fab if @sarahmonster could also test this, and thoughts from @brizee whether there is a neater way of doing this (rather than a dozen empty try/catches? Thanks :)

Should just be able to do one try catch in pushAnalytics in https://github.com/opentexts/opentexts/blob/main/public/scripts/analytics.js :smile:

Should just be able to do one try catch in pushAnalytics in https://github.com/opentexts/opentexts/blob/main/public/scripts/analytics.js 😄

Problem is (sorry, I forgot to put that in the issue!) that the ad blocker is blocking our analytics.js script, so anything which calls a function in there is failing. So the code isn't reaching as far as pushAnalytics as that script isn't loaded.

I tested this locally and it works! The feedback tab still gets blocked (again, I suspect this is a classname issue that's probably unavoidable), but the search results show up as expected now. 🥳

Oh... I wonder if just renaming that script would be enough - there is nothing particularly incriminating about the contents of the file so I imagine the ad blocker must just be blocking it by name.

Oh... I wonder if just renaming that script would be enough - there is nothing particularly incriminating about the contents of the file so I imagine the ad blocker must just be blocking it by name.

Good idea, and seems to work!  I'll just change the file name instead (event-recording.js doesn't get blocked) :) Thanks!


Atmos and DTS:X logos do not display

What TMM version are you using?
2.9.1
release, pre-release, nightly, or directly from GitHub/branch?
What is the actual behaviour?
Dolby Atmos and DTS:X icons not showing (both HD Object Based codecs)
What is the expected behaviour?
Relevant logos appear in banner as opposed to their more inferior logos (eg, not just DTS or DD)
Steps to reproduce:

first
second
...

Additional
Have you attached the Logfile from the day it happened?
Your Operating system? (win/mac/linux? version?)

Note:  The scraper does detect these new codecs and the file rename uses correct tag.

I came onto Github to make this feature request myself, but I see it has already been discussed, I want to mention that I'd love to see this as well!
By the way, when this is added, I believe that the icons for Dolby Atmos and DTS:X would be fine simply saying Atmos or DTS:X, even though they contain TrueHD and DTS-HD MA. (There is more detail on the Media Information tab anyway.)

I see that the above requests are set as a milestone for v3. That's great! Please note that I am simply throwing in my thoughts with this post - I am by no means demanding anything from anyone. Let me know if I need to add this as a different thread, but it really just expands on the existing topic.
I'm trying not to clutter with multiple threads for similar tag-related requests.
1) For audio that is only Dolby TrueHD (no Atmos): in addition to displaying the tag, can we see two TrueHD tags to differentiate between TrueHD 5.1 and 7.1?
Example -  Star Trek: Into Darkness (2013), 7.1 Channel Dolby TrueHD, currently nothing shows as we already know.

2) For audio that is only DTS-HD Master Audio (no DTS:X): can we see two DTS-HD MA tags to differentiate between DTS-HD MA 5.1 and 7.1?
Example -  Thor: The Dark World, 7.1 Channel DTS-HD Master Audio, currently shows only "DTS-HD"

in contrast to Lone Survivor, 5.1 Channel DTS-HD Master Audio, which shows the perfect audio tag:

3) And finally, here is what shows for the 4K version of the first John Wick film (in Dolby Atmos) - 4K tags may very well have already been mentioned, but I'm new to 4K and I've been focused mainly on audio. I am hoping that another v3 addition will be the detection of 4K and display of a corresponding icon.

Let me know if I was unclear about anything...

well, we have simply no icons for 4K, Atmos & DTS:X 😃
Had some spare time, and tried myself as graphic designer (awww) and fixed some detections...
You might want to try latest nightly ON SOME TEST FILES - feedback welcome.

some icons added for 2.9.4


Add return type hints

This adds a few return type hints where Symfony 5.4 triggers deprecation notices.
I don't see the risk of BC breaks since there is no good reason to overwrite the methods affected. Adding types should even be compatible with PHP 7.0.

This is part of #21 as well.


Issue #351: Replace pow() and sqrt() with double stars notation.

Fix #351

Rebase required, rest looks very good :+1:

Performance improved :medal_sports: goes to @drupol


Wrong index calculation in spoj_GSS1.cpp

In spoj_GSS1.cpp at line 56, shouldn't int left = 2*stIndex+1 and int right = 2*stIndex+2 ? Since you are following a zero based indexing system, your calculation would not leave space for the root of the tree.

left and right are segment tree indices and are 1-based. The indices of segment tree itself are 1-based, however the input array it is built for is 0-based. In the constructor at line 33, you will find that buildTree is called with stIndex = 1 (segment tree index of root) and lo = 0, hi = N-1 (input array range).
This is the usual convention with segment trees (1-based tree but 0-based input array).

Thanks for the reply. Just out of curiosity in line 81, you already have the minimum valid value of N required to build your tree when the loop ends. Why double it one more time before returning?

The segment tree size for an array of size N is x*2, where x is the smallest power of 2 which is greater than or equal to N. When the loop ends, we have x, then we double it to get the segment tree size. I hope that explains it.

Aaah.. sorry my bad.  I completely forgot about the 2*x length requirement. Thank you.


incorrect headers being sent

Description

Steps to reproduce the issue:

start the fn server
create a blank project with fn init --runtime python --trigger http foo
cd foo
deploy the fresh project to the server with fn deploy --local --app foo --create-app
repeatedly run curl -i localhost:8080/t/foo/foo

Describe the results you received:
sometimes the Content-Type header will be application/json, as expected.
other times the Content-Type header will appear twice. once with text/plain and once with None.
Describe the results you expected:
the Content-Type should consistantly be application/json, as that's what the application manually sets it to
Additional information you deem important (e.g. issue happens only occasionally):
I ran this command 1000 times and counted the ratio of expected result to weird result (with a script don't worry, not crazy)
395 correct, 605 incorrect
Output of FDK version (PIP output):
not even sure how to check this, though in func.yaml it says schema_version: 20180708

Additional environment details (python version, code sample, etc.):
fn cli version 0.5.78
docker images:
fnproject/fnserver   latest              aad56d223cc2        3 weeks ago
fnproject/python     3.6                 c31b51a1f190        3 weeks ago
fnproject/python     3.6-dev             aa4e9945b65f        10 months ago

Can you please try with the latest code from the master of the FDK?

that is a strange result, yeah, I think we've fixed it https://github.com/fnproject/fdk-python/pull/83 - we should have pip release up soon to try, too (with versions, too, to help with that issue :)

1000/1000 perfect score, good fix, job well done, sorry for reporting a bug litterally two hours after it gets fixed. look forward to it being pushed to pip. not fond of the manual way...
sorry I let this open for so long when it had already been fixed. I just got confused on how to build the images.

no worries, thank you for reporting, sorry for the bugs. fix is pushed https://pypi.org/project/fdk/#history now, please let us know if any issues


Highlight RegExp needs to be escaped.

Searching for RegExp literals: $[^.+* etc. causes problems.

This PR seems to be obsolete. Moreover UI.Utils modules was split in individuals repositories. If still valid, please consider re-submitting on the dedicated repository.
See the README for details.


Remove twitter feed from blog site

Feature Request
Motivation Behind Feature

The Cordova PMC is no longer active on Twitter. the feed should be removed to avoid confusions with really old posts.
Feature Description

Remove feed from blog page: https://cordova.apache.org/blog/
Remove other Twitter references?

Heretical questions:
a) should we revive the account?
b) who owns the account currently?

I think Option a would be the best if possible.
b) We as PMC have credentials for this account the seem to have stopped working because of some Twitter passwort reset or something like that.
Should we bring the this to the mailing list?

IMHO we should use all possible channels to make aware that Cordova is still active and maintained, so yes, I'd vote for a resurrection (via the mailing list).

Since we are using twitter again, I assume this ticket can be closed?

Yes, I’ll agree with that. Closing.


Add weiweicocolar's file

Today I learnt how to create a branch, a new file and make a new commit and a pull request.

Yes, ok, I've learnt some, although pauses happed unexpectedly.


Support for Android Q (API 29)

TestButler 2.0.0 crashes with the following stacktrace when using it on the latest Android Q Beta (API 29):

2019-06-13 09:31:47.989 3682-3682/? E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.linkedin.android.testbutler, PID: 3682
java.lang.RuntimeException: Unable to create service com.linkedin.android.testbutler.ButlerService: java.lang.UnsupportedOperationException: Only apps can use the KeyguardLock API
at android.app.ActivityThread.handleCreateService(ActivityThread.java:3950)
at android.app.ActivityThread.access$1500(ActivityThread.java:220)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1868)
at android.os.Handler.dispatchMessage(Handler.java:107)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:7319)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:934)

Thanks for the report! We'll take a look and get back to you.

Hi @jenzz , sorry for the delay we were closed for the 4th of july break. I've replicated this issue, and while its still a little unclear why this restriction was introduced in Q, it appears to be here to stay. I'm investigating some new ways to help avoid any impact from the lock screen currently. Note that Q is also affecting our wifi locks as well, which are now a no-op, so I'm investigating that as well. I should have a PR for you by EOW. Sorry for the delay!

I've opened https://issuetracker.google.com/issues/137254871 to get google's opinion on the best way to prevent lock screens in testing given this new restriction

#90 is a work around for now to allow you to use test butler on Q devices, albeit without the keyguard functionality it provides at other API levels. I'm going to leave this issue open while we wait to hear back from Google so we can take followup action as necessary


Publish to NPM

Looks like you have a package.json, but haven't published to NPM. Would be really useful to have there.

Thanks, I've just pushed it to https://www.npmjs.com/package/sourcemapped-stacktrace.
Feedback welcome; I've not published to npm before.


[Feature request] Complete task from timeline

I'd love for that tick box in each task to be clickable, rather than taking me to the task in the original file and having to tick it there.

This is a duplicate of #304


Log which expression broken along with data

From https://github.com/riot/riot/issues/2335#issuecomment-299561820

Coverage increased (+0.6%) to 100.0% when pulling 03cb8e861873a39aab89d2f6bde928afb033f80b on manhg:improve-error-message into 672b026884071cfbd7e298d9c4287f4b5eebcea3 on riot:master.

great patch thank you


Large JS files cause endless Grammar Loop errors

Issue Type: Bug
If you open a large Javascript file, more noticeable on minified ones and have the developer console opened you get flooded with Grammar is in an endless looperrors.

Open dev tools
Open a large minified file (I just chose the main.js packaged with vs code

VS Code version: Code - Insiders 1.36.0-insider (c3fe2d8acde04e579880413ae4622a1f551efdcc, 2019-06-20T05:19:11.382Z)
OS version: Darwin x64 18.6.0

System Info

Item
Value

CPUs
Intel(R) Core(TM) i7-8850H CPU @ 2.60GHz (12 x 2600)

GPU Status
2d_canvas: enabledflash_3d: enabledflash_stage3d: enabledflash_stage3d_baseline: enabledgpu_compositing: enabledmultiple_raster_threads: enabled_onnative_gpu_memory_buffers: enabledoop_rasterization: disabled_offprotected_video_decode: unavailable_offrasterization: enabledskia_deferred_display_list: disabled_offskia_renderer: disabled_offsurface_synchronization: enabled_onvideo_decode: enabledviz_display_compositor: disabled_offwebgl: enabledwebgl2: enabled

Load (avg)
2, 2, 2

Memory (System)
32.00GB (2.84GB free)

Process Argv

Screen Reader
no

VM
0%

Can you please share a link the file or preferably a minimal repo? Also was this causing any issues beyond the logs?

Here's a repo containing just one JS file from the VS Code packaged application for Mac. It causes tons of grammar errors when opening. I don't think it causes any issues beyond the logs and it just appears the errors happen during the loading of the large file

I'm going to close this as out of scope
I know that don't always parse minified files properly but the cost of fixing such issues is often not worth the payoff. If there's a minimal example that cause incorrect syntax highlighting in the editor, please share it


gfx_defines! macro throws unintuitive error when missing trailing commas

Following the sample triangle code, I decided to extend the gfx_defines! block to include texture coordinates when I discovered:
gfx_defines!{
	vertex Vertex {
		pos: [f32; 2] = "a_Pos",
		color: [f32; 3] = "a_Color",
		texcoords: [f32; 2] = "a_Texcoords" // <-- error: no rules expect the token `}`
	}
}

As I understand it (and I am new to Rust), its idiomatic to use trailing commas in initializer blocks, but not required.
Is this a case where it would be more clear to allow missing a trailing comma?

Often Rust macros allow both trailing and non-trailing commas (see the vec! macro). Would be good to have it here as well.
But yes, this is part and parcel of non-procedural macros - they often give generic, unhelpful errors :(


Fix progress bar spawning and make parallel tools easier to use

Summary
fixes #1392
Also moves parallel routines out of transpiler and into tools so that they may be used easier.  Additionally moved TextProgressBar out of Jupyter tools and into parallel tools since it is just text based.
Details and comments

@nonhermitian there are some conflicts. Also i think we should put the progress bar in tools/events or something like that. I would also put the _pubsub in there as well. @atilag do you have any reason why the pubsub needs to stay in the main folder.

It is intended to be a general purpose tool and at that time I didn't find any better place, but surely it can be moved to tools/ , I'd not create too many directory levels of indirection though.

im good with in tools

@nonhermitian can you rebase


Unable to setup cluster with 1 server and 1 agent

Environmental Info:
K3s Version: v1.22.5+k3s1
Node(s) CPU architecture, OS, and Version:
Linux ocvm-a1-1 5.11.0-1022-oracle #23~20.04.1-Ubuntu SMP Fri Nov 12 15:45:47 UTC 2021 aarch64 aarch64 aarch64 GNU/Linux
Cluster Configuration:
1 server, 1 agent. Both have the same hardware and software. They also have no limitations in connectivity between them (all ports open in the network). They have access to the internet, but only ports 80 and 443 are open to it.
Describe the bug:
I am trying to setup a cluster with 1 server / master node and 1 worker node. When I setup the agent in the worker VM it never successfully joins the cluster and both VMs log an error regarding this agent configuration process, please see the logs below.
Steps To Reproduce:

Configured two VMs with complete access between them (all ports are open in private network). They have different hostnames
Installed k3s on the master with curl -sfL https://get.k3s.io | sh -
Deployed some services, everything works perfectly
Tried installing the agent on the other VM with curl -sfL https://get.k3s.io | K3S_URL=https://<ip of master node>:6443 K3S_TOKEN="<content of node-token in the master>" sh -

Expected behavior:
I expected the worker node to join the cluster and be shown in kubectl get nodes.
Actual behavior:
Both nodes seem to exchange some information, but the worker node never joins the cluster, and both have log entries regarding this failure.
Additional context / logs:
Output of journalctl -u k3s -f on the master node:
Dec 25 18:11:38 ocvm-a1-1 k3s[8221]: time="2021-12-25T18:11:38Z" level=error msg="unable to verify hash for node 'ocvm-a1-2': hash does not match"

Output of the agent installation:
[INFO]  Finding release for channel stable
[INFO]  Using v1.22.5+k3s1 as release
[INFO]  Downloading hash https://github.com/k3s-io/k3s/releases/download/v1.22.5+k3s1/sha256sum-arm64.txt
[INFO]  Downloading binary https://github.com/k3s-io/k3s/releases/download/v1.22.5+k3s1/k3s-arm64
[INFO]  Verifying binary download
[INFO]  Installing k3s to /usr/local/bin/k3s
[INFO]  Skipping installation of SELinux RPM
[INFO]  Creating /usr/local/bin/kubectl symlink to k3s
[INFO]  Creating /usr/local/bin/crictl symlink to k3s
[INFO]  Creating /usr/local/bin/ctr symlink to k3s
[INFO]  Creating killall script /usr/local/bin/k3s-killall.sh
[INFO]  Creating uninstall script /usr/local/bin/k3s-agent-uninstall.sh
[INFO]  env: Creating environment file /etc/systemd/system/k3s-agent.service.env
[INFO]  systemd: Creating service file /etc/systemd/system/k3s-agent.service
[INFO]  systemd: Enabling k3s-agent unit
Created symlink /etc/systemd/system/multi-user.target.wants/k3s-agent.service → /etc/systemd/system/k3s-agent.service.
[INFO]  systemd: Starting k3s-agent

Output of journalctl -u k3s-agent.service on the worker node (the last line is repeated infinitely):
Dec 22 15:57:58 ocvm-a1-2 systemd[1]: Started Lightweight Kubernetes.
Dec 22 15:57:58 ocvm-a1-2 k3s[1532]: time="2021-12-22T15:57:58Z" level=info msg="Acquiring lock file /var/lib/rancher/k3s/data/.lock"
Dec 22 15:57:58 ocvm-a1-2 k3s[1532]: time="2021-12-22T15:57:58Z" level=info msg="Preparing data dir /var/lib/rancher/k3s/data/e06dacf3811b44a394f7daff154613935a5bbab34238ccb4361e4e7ceeeb77fb"
Dec 22 15:58:00 ocvm-a1-2 k3s[1532]: time="2021-12-22T15:58:00Z" level=info msg="Starting k3s agent v1.22.5+k3s1 (405bf79d)"
Dec 22 15:58:00 ocvm-a1-2 k3s[1532]: time="2021-12-22T15:58:00Z" level=info msg="Running load balancer <IP_ADDRESS>:6444 -> [<IP_ADDRESS>:6443]"
Dec 22 15:58:00 ocvm-a1-2 k3s[1532]: time="2021-12-22T15:58:00Z" level=info msg="Waiting to retrieve agent configuration; server is not ready: Node password rejected, duplicate hostname or contents of '/etc/rancher/node/password' may not match server node-passwd entry, try enabling a unique node name with the --with-node-id flag"

Backporting

[ ] Needs backporting to older releases

The message you're getting:
Dec 22 15:58:00 ocvm-a1-2 k3s[1532]: time="2021-12-22T15:58:00Z" level=info msg="Waiting to retrieve agent configuration; server is not ready: Node password rejected, duplicate hostname or contents of '/etc/rancher/node/password' may not match server node-passwd entry, try enabling a unique node name with the --with-node-id flag"
Makes me suspect both VMs have the same hostname. Is that true?

The message you're getting:
Dec 22 15:58:00 ocvm-a1-2 k3s[1532]: time="2021-12-22T15:58:00Z" level=info msg="Waiting to retrieve agent configuration; server is not ready: Node password rejected, duplicate hostname or contents of '/etc/rancher/node/password' may not match server node-passwd entry, try enabling a unique node name with the --with-node-id flag"
makes me suspect both VMs have the same hostname. Is that true?

No, they have different hostnames

Ok; in that case can you take a look at https://rancher.com/docs/k3s/latest/en/architecture/#how-agent-node-registration-works and see if you somehow have a secret for the agent node, perhaps left over from a previous join attempt?

That was it, thank you! I don't know how but I never got to read that part of the documentation.
I just uninstalled the agent from the second VM and in the first VM I deleted the secret corresponding to the second node, and it started working!
ubuntu@ocvm-a1-1:~$ kubectl get secret -n kube-system | grep ocvm-a1-2
ocvm-a1-2.node-password.k3s                          Opaque                                1      64d
ubuntu@ocvm-a1-1:~$ kubectl delete secret -n kube-system ocvm-a1-2.node-password.k3s
secret "ocvm-a1-2.node-password.k3s" deleted
<VM 2 joins the cluster>
ubuntu@ocvm-a1-1:~$ kubectl get nodes
NAME        STATUS   ROLES                  AGE   VERSION
ocvm-a1-2   Ready    <none>                 18s   v1.22.5+k3s1
ocvm-a1-1   Ready    control-plane,master   65d   v1.22.5+k3s1

That was it, thank you! I don't know how but I never got to read that part of the documentation. I just uninstalled the agent from the second VM and in the first VM I deleted the secret corresponding to the second node, and it started working!
ubuntu@ocvm-a1-1:~$ kubectl get secret -n kube-system | grep ocvm-a1-2
ocvm-a1-2.node-password.k3s                          Opaque                                1      64d
ubuntu@ocvm-a1-1:~$ kubectl delete secret -n kube-system ocvm-a1-2.node-password.k3s
secret "ocvm-a1-2.node-password.k3s" deleted
<VM 2 joins the cluster>
ubuntu@ocvm-a1-1:~$ kubectl get nodes
NAME        STATUS   ROLES                  AGE   VERSION
ocvm-a1-2   Ready    <none>                 18s   v1.22.5+k3s1
ocvm-a1-1   Ready    control-plane,master   65d   v1.22.5+k3s1

That helps me, thank you!

thank you. Rke2 has many of unknown error :(


Duration Sensor Units

The uptime sensor seems to be reported as milliseconds, but should really be in seconds:

In general, it's not that useful to have millisecond precision for these duration sensors, it would be better to have them in seconds in my opinion.

fixed by e30db5b

Thanks. I just updated and it appears to be fixed. I still think that millisecond resolution is unnecessary but I have configured HA to show these in hours/days.

Yeh I did the same
But best to have higher precision you can soften
Than low precision you can’t sharpen


WPA2: Incorrect initialisation behind slow WiFi connection times? (IDFGH-1520)

Slow WPA2 connection times have long been an issue for many ESP32 users. I think I may have a small clue as to where to look for the problem, and a bandaid to fix it for now.
Today I was able to reduce connection time on my home WPA2 network from the usual ~1100ms down to ~350ms (240MHz, CONFIG_LWIP_DHCP_DOES_ARP_CHECK=0). Those times are using Arduino's millis(), the debug output below might have more meaningful timestamps.
All it took was this seemingly redundant fix:
wifi_config_t conf;
esp_wifi_get_config(WIFI_IF_STA, &conf);
esp_wifi_set_config(WIFI_IF_STA, &conf);

Often I get this additional debug output (the indicated line):
Without fix:
I (722) wifi: n:11 0, o:1 0, ap:255 255, sta:11 0, prof:1
D (1472) nvs: nvs_set_blob sta.apinfo 700[1B][0m           <-------
I (1522) wifi: state: init -> auth (b0)
I (1532) wifi: state: auth -> assoc (0)
I (1542) wifi: state: assoc -> run (10)
I (1582) wifi: connected with MYSSID, channel 11
D (1582) nvs: nvs_set sta.chan 1 11[1B][0m
D (1582) nvs: nvs_set_blob sta.apinfo 700[1B][0m
I (1592) wifi: pm start, type: 1

D (1592) event: SYSTEM_EVENT_STA_CONNECTED

With fix, for comparison:
I (722) wifi: n:11 0, o:1 0, ap:255 255, sta:11 0, prof:1
I (722) wifi: state: init -> auth (b0)
I (732) wifi: state: auth -> assoc (0)
I (732) wifi: state: assoc -> run (10)
I (782) wifi: connected with MYSSID, channel 11
D (782) nvs: nvs_set sta.chan 1 11[1B][0m
D (782) nvs: nvs_set_blob sta.apinfo 700[1B][0m
I (792) wifi: pm start, type: 1

D (792) event: SYSTEM_EVENT_STA_CONNECTED

That additional "nvs_set_blob sta.apinfo" doesn't seem to occur every time though, so maybe a red herring. The ~750ms mysterious delay unfortunately does.
In fact, I realised just now that I see this delay and 'apinfo' output when no NVS data exists for the current WiFi config. Indeed, if I erase the NVS partition, I'm sure to see this exact behaviour next boot, every time. Maybe WPA2 cryptographic data isn't being loaded properly on WiFi init so it goes through the whole process with the AP every time?
Whatever it is, this fixes it:
esp_wifi_set_config(WIFI_IF_STA, &conf);
Tested with esp-idf (PlatformIO) , esp-idf+Arduino component (PlatformIO), Arduino (Arduino IDE and PlatformIO).
IDF Test code:
#include <string.h>
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "esp_system.h"
#include "esp_wifi.h"
#include "esp_event_loop.h"
#include "esp_log.h"
#include "nvs_flash.h"
#include "lwip/err.h"
#include "lwip/sys.h"

/**************************************** */
#define WIFI_SSID        "MYSSID"
#define WIFI_PASSWORD    "MYPASSWORD"
//Comment/Uncomment to toggle fix
#define APPLY_FIX
//Suggest CONFIG_LWIP_DHCP_DOES_ARP_CHECK=0
/**************************************** */

static const char *TAG = "WPA2_FIX";

static esp_err_t event_handler(void *ctx, system_event_t *event)
{
    switch(event->event_id) {
    case SYSTEM_EVENT_STA_START:
        esp_wifi_connect();
        break;
    case SYSTEM_EVENT_STA_GOT_IP:
        ESP_LOGI(TAG, "WiFi Connected. IP: %s", ip4addr_ntoa(&event->event_info.got_ip.ip_info.ip));
        break;
    case SYSTEM_EVENT_STA_DISCONNECTED:
        ESP_LOGI(TAG, "Connection failed");
        break;
    default:
        break;
    }
    return ESP_OK;
}

void app_main()
{
    esp_err_t ret = nvs_flash_init();
    if (ret == ESP_ERR_NVS_NO_FREE_PAGES || ret == ESP_ERR_NVS_NEW_VERSION_FOUND) {
      ESP_ERROR_CHECK(nvs_flash_erase());
      ret = nvs_flash_init();
    }
    ESP_ERROR_CHECK(ret);

    tcpip_adapter_init();
    ESP_ERROR_CHECK(esp_event_loop_init(event_handler, NULL) );
    wifi_init_config_t cfg = WIFI_INIT_CONFIG_DEFAULT();
    ESP_ERROR_CHECK(esp_wifi_init(&cfg));
    ESP_ERROR_CHECK(esp_wifi_set_mode(WIFI_MODE_STA) );

    wifi_config_t wifi_config;
    ESP_ERROR_CHECK(esp_wifi_get_config(ESP_IF_WIFI_STA, &wifi_config) );
    if(strcmp(WIFI_SSID,(char*)wifi_config.sta.ssid) || strcmp(WIFI_PASSWORD,(char*)wifi_config.sta.password)) {
        ESP_LOGI(TAG, "Setting new WiFi credentials");
        wifi_config_t new_config = {
            .sta = {
                .ssid = WIFI_SSID,
                .password = WIFI_PASSWORD,
            },
        };
        ESP_ERROR_CHECK(esp_wifi_set_config(ESP_IF_WIFI_STA, &new_config) );
    }
    #ifdef APPLY_FIX
    else {
        ESP_LOGI(TAG, "Testing fix");
        ESP_ERROR_CHECK(esp_wifi_set_config(ESP_IF_WIFI_STA, &wifi_config) );
    }
    #endif

    ESP_ERROR_CHECK(esp_wifi_start() );

    ESP_LOGI(TAG, "Connecting...");

    vTaskDelete(NULL);
}

Hi @boarchuz,
The delay is most likely due to time required for scanning first time when AP is not available and not because of NVS. You can confirm the same by disabling NVS usage by WIFI (component config -> Wi-Fi -> Wi-Fi NVS flash). If the NVS usage is disabled, the delay will be seen every time, because scan will be triggered for every connect. NVS is used to store channel and bssid information upon successful connect, so that next time the connection is faster. Hope this helps.

@sagb2015 does this make sense because in both logs it is already on channel 11 at timestamp 722
I (722) wifi: n:11 0, o:1 0, ap:255 255, sta:11 0, prof:1

Thanks for the reply @sagb2015
I've tested with NVS disabled, and it takes longer to connect as expected. I don't think that's the issue here. I'm still convinced that this should be investigated.
With NVS enabled, that longer connection time should only occur once (or when AP channel changes, for example). This unusual delay with WPA2 connection that I'm trying to describe occurs every time, unless esp_wifi_set_config() is explicitly called beforehand.
I realise I rambled a lot in the first comment, so I'll try make it really clear.
This (pseudo)code has a SYSTEM_EVENT_STA_START to SYSTEM_EVENT_STA_CONNECTED interval of <300ms:
esp_wifi_init()
esp_wifi_start()
esp_wifi_connect()

Whereas this code has a SYSTEM_EVENT_STA_START to SYSTEM_EVENT_STA_CONNECTED interval of ~1100ms:
esp_wifi_init()
wifi_config_t conf;
esp_wifi_get_config(WIFI_IF_STA, &conf);
esp_wifi_set_config(WIFI_IF_STA, &conf);
esp_wifi_start()
esp_wifi_connect()

That's it. Identical code except for simply getting and setting the same config. It appears to bypass a hidden bug that is currently causing a long and inexplicable delay. Again, this bug does not occur with WEP or open WiFi security in my experience. WPA2 only.
There is definitely an inexplicable delay of about 750ms that occurs every time as seen here:
[1B][0;32mI (644) WPA2_FIX: Connecting...[1B][0m
I (764) wifi: n:6 0, o:1 0, ap:255 255, sta:6 0, prof:1
D (1604) nvs: nvs_set_blob sta.apinfo 700[1B][0m
I (1604) wifi: state: init -> auth (b0)

With fix:
[1B][0;32mI (664) WPA2_FIX: Connecting...[1B][0m
I (774) wifi: n:6 0, o:1 0, ap:255 255, sta:6 0, prof:1
I (774) wifi: state: init -> auth (b0)

It appears to me that there is some kind of bug that causes a significant interval before commencing the auth sequence, which is exclusive to WPA2.

One theory is the user has a mesh wifi system with multiple bssid on same ssid and channel.  When client sends probe request, first response has bssid not matching expected value so client panics and does full scan?  But I don't know why esp_wifi_set_config fixes this.
@boarchuz can you read and print the full wifi_config before and after connecting with and without fix?

Actually, I was meaning to mention that. The wifi_config is a mess. BSSID is FF:FF:FF:FF:FF:FF, channel is 128 or 63 or something. I thought that was a clear problem, but then I tried applying the fix: same thing. I then tried WEP: same thing. So it appears to have no direct impact on connection time.
I concluded that the WiFi driver isn't dependent on these fields, they're only for passing new config to the driver. It must have some other struct with that data, or load it later. However, this may very well give a clue to the source of the problem if this data is meant to be loaded but is apparently not.
To test if that dodgy channel was the problem, I adjusted my router's WiFi channel between 1-11. You would expect channel 11 to take longer if it was defaulting to channel scan start at 0 every time, or for channel 1 to eliminate the delay (depending on start channel, of course). It has no effect though. The delay still exists.
If you look in the few log lines I quoted above, it seems to have no problem finding the AP very quickly. The issue comes later; it then takes an awfully long time to initiate auth, with that peculiar NVS save in there too.
Lastly, it's not a mesh system. There's only one instance of the SSID visible to the ESP32 (also one at 5GHz).

Able to reproduce here also
I (1269) wifi: connect_op: status=0, auth=5, cipher=3
I (1279) wifi: auth mode is not none
D (2259) nvs: nvs_set_blob sta.apinfo 700
I (2269) wifi: connect_bss: auth=1, reconnect=0
I (2269) wifi: state: init -> auth (b0)

I (1289) wifi: connect_op: status=0, auth=5, cipher=3
I (1289) wifi: auth mode is not none
I (1299) wifi: connect_bss: auth=1, reconnect=0
I (1299) wifi: state: init -> auth (b0)

@boarchuz - We are definitely investigating this. I missed the point that you are getting the delay every time with NVS enabled in WPA2 case. Also, can you confirm that the interval you mentioned in the two cases from SYSTEM_EVENT_STA_START to SYSTEM_EVENT_STA_CONNECTED are 1100ms in the first case and 300 ms in the second and not the other way around as you mentioned? This definitely has nothing to do with mesh.

That's right, sorry I mixed them up above.

The delay is definitely due to nvs_set_blob sta.apinfo.  When you patch nvs_api to ignore writes to that key the delay goes away.
I (3110) wifi: connect_op: status=0, auth=5, cipher=3
I (3120) wifi: auth mode is not none
D (4100) nvs: nvs_set_blob sta.apinfo 700
D (4100) nvs: Flash read: 59040 32
D (4100) nvs: Flash read: 59040 32
D (4100) nvs: Flash read: 58304 32
D (4110) nvs: Flash read: 58304 32
D (4110) nvs: Flash read: 58336 32
D (4110) nvs: Flash read: 58368 32
D (4120) nvs: Flash read: 58400 32
D (4120) nvs: Flash read: 58432 32
D (4130) nvs: Flash read: 58464 32
D (4130) nvs: Flash read: 58496 32
D (4130) nvs: Flash read: 58528 32
D (4140) nvs: Flash read: 58560 32
D (4140) nvs: Flash read: 58592 32
D (4140) nvs: Flash read: 58624 32
D (4150) nvs: Flash read: 58656 32
D (4150) nvs: Flash read: 58688 32
D (4150) nvs: Flash read: 58720 32
D (4160) nvs: Flash read: 58752 32
D (4160) nvs: Flash read: 58784 32
D (4170) nvs: Flash read: 58816 32
D (4170) nvs: Flash read: 58848 32
D (4170) nvs: Flash read: 58880 32
D (4180) nvs: Flash read: 58912 32
D (4180) nvs: Flash read: 58944 32
D (4180) nvs: Flash read: 58976 32
D (4190) nvs: Flash read: 59008 32
I (4190) wifi: connect_bss: auth=1, reconnect=0
I (4200) wifi: state: init -> auth (b0)

I (3120) wifi: connect_op: status=0, auth=5, cipher=3
I (3120) wifi: auth mode is not none
D (4110) nvs: nvs_set_blob sta.apinfo 700
I (4110) wifi: connect_bss: auth=1, reconnect=0
I (4110) wifi: state: init -> auth (b0)

@negativekelvin When you say your are able to reproduce the issue. Do you see the delay, every time without flash erase?

@sagb2015 yes, i see it every time if esp_wifi_set_config is not called.  Also I don't think it is related to nvs_set_blob sta.apinfo because I patched nvs_api to ignore that key and it did not eliminate the delay.

I updated to latest master and erased flash.  I am now seeing the same delay both with and without calling esp_wifi_set_config.  So I am not sure anymore.

Yeah it's definitely an auth thing. I can see CPU0 is stuck doing "pbkdf2_sha1()" every time without the fix, whereas it only runs once on first connection with the fix. Even the comments mention that it is "very slow" - it's the direct cause of that additional ~800ms.
I see the WPA cryptography component has changed a lot in the last month or so with some significant commits, so I gave up on tracing it further back than that. I'm on 3.2.2 with PlatformIO, for reference.

After debugging, it was found that @adb820 commit mentioned by @negativekelvin, esp_wifi_set_config  makes wifi library code to check if ap_info stored in NVS already has a valid PMK generated from previous connection. This is not the case, if you directly connect. As a result, PMK is always generated if you do wifi_init/start/connect sequence.  PMK generation takes a lot of time. The corresponding latest code is here
https://github.com/espressif/esp-idf/blob/master/components/wpa_supplicant/src/crypto/sha1-pbkdf2.c#L81-L101
@adb820 The above code was in the wifi library. With c139683 a lot of wpa_supplicant is moved out and initialisation flow has also changed. There is also a bug related to PMK not stored properly which is getting fixed and is in the process of getting merged (Refer to this issue for more details).  We will try to get this fixed in both new as well as old version soon. Thanks!

Just to add, this also explains why issue is WPA2 specific.

@sagb2015 mbedls version is faster
I (350) wifi station: Calling mbedtls_pbkdf2
I (800) mbedtls_pkcs5_pbkdf2: 44 11 6e a8 81 53 19 96 d8 a2 3a f5 8b 37 6d 70
I (800) mbedtls_pkcs5_pbkdf2: f1 96 05 74 29 c2 58 f5 29 57 7a 26 e7 27 ec 1b
I (800) wifi station: Calling wpa_pbkdf2
I (1650) wpa_pbkdf2: 44 11 6e a8 81 53 19 96 d8 a2 3a f5 8b 37 6d 70
I (1650) wpa_pbkdf2: f1 96 05 74 29 c2 58 f5 29 57 7a 26 e7 27 ec 1b

@negativekelvin Definitely. We have marked this as an action item to be done.

@sagb2015 can you also please check why 4-way handshake timeout loop happens when you call esp_wifi_get_config + esp_wifi_set_config without erasing flash?

Workaround works again on latest commit

https://github.com/espressif/esp32-wifi-lib/commit/09ed80c2b047ae5bb41ddbfb9be44ec2bc71fedd

Hi @negativekelvin, yes both the changes 1) using mbedtls_pbkdf2 & 2) fix for slow connection if set_config is not called, are merged in internal repository and should be available soon.

Working now, still 310ms but lost some ms in initialization stuff
I (419) cpu_start: Pro cpu start user code
I (437) spi_flash: detected chip: generic
I (438) spi_flash: flash io: dio
I (438) cpu_start: Chip Revision: 1
W (439) cpu_start: Chip revision is higher than the one configured in menuconfig. Suggest to upgrade it.
I (450) cpu_start: Starting scheduler on PRO CPU.
I (0) cpu_start: Starting scheduler on APP CPU.
I (522) wifi station: ESP_WIFI_MODE_STA
I (532) wifi: wifi driver task: 3ffc0968, prio:23, stack:3584, core=0
I (842) wifi: connected

Closing this issue now. Let us know if you face any issues.


nuke pull-request template

We now have continuous benchmarking setup, so it probably doesn't make sense to remind about this on every PR.
Pre-merge checklist

[X] I am very sure this PR could not affect performance and hopeful that this is the last time I need to check this checkbox :D

One last time :)


Faster hashing for exclusions

Jprofiler showed (for my local workload) ~50% of coursiers time being spent during getting a hashCode for Dependencies, for which the main contributor is the set of exclusions in the dependency:

This PR contains:

An explicit Exclusions data structure which:

Keeps the hascode cached
Keeps the exclusions structure always minimized
Special cases for ExcludeAll/ExcludeNone

Optimized hashcode for the Publication data structure (using a lazy val instead of def)

This change brought down the sbt update invocation on my local machine from 30s to 20s
Caveat (backwards compatibility):
I have tried to keep these changes backwards (binary) compatible, but it is not the case, the following spots are tricky:

Dependency.exclusions is now a completely different type, not even being a Set, so that is probably breaking
I added a backwards-compatible Dependency.withExclusions(exclusions: Set[(Organization, ModuleName)]) function call, but because this now became an overloaded function, every call to withExclusions(Set.empty) becomes ambiguous, because the set type arguments cannot be inferred anymore.

@alexarchambault Could you let me know how important binary backwards compatibility is for this library? And for what parts? If it is an issue, I can see what else I can do to avoid breaking binary backwards compatibility

Could you let me know how important binary backwards compatibility is for this library? And for what parts? If it is an issue, I can see what else I can do to avoid breaking binary backwards compatibility

It's fine to break it. I intend to break it even more before 2.1.0, as time is missing to maintain it or to keep a proper migration path with deprecations.

I already made it binary backwards compatible, it was not too much of a fuss. If you want me to revert that and make the code more straightforward without the compatibility hooks and deprecation, i'll do that no problem

@alexarchambault I've updated the PR, the backwards compatibility is not an issue anymore. From my side I think this work is done. I've added you as a reviewer. Could you take a look to see whether/what you would like to see changed?

This PR is a compatibility breaker. You can find details in this issue: #2560


Android local scheduleLocalNotification and notification in background not working

Hello,
This does not work:
    FCM.scheduleLocalNotification({
        id: 'testnotif',
        fire_date: new Date().getTime()+5000,
        vibrate: 500,
        title: 'Hello',
        body: 'Test Scheduled Notification',
        sub_text: 'sub text',
        priority: "high",
        show_in_foreground: true,
        wake_screen: true,
        extra1: {a: 1},
        extra2: 1
    });

This works
    FCM.presentLocalNotification({
        id: 'testnotif',
        fire_date: new Date().getTime()+5000,
        vibrate: 500,
        title: 'Hello',
        body: 'Test Scheduled Notification',
        sub_text: 'sub text',
        priority: "high",
        show_in_foreground: true,
        wake_screen: true,
        extra1: {a: 1},
        extra2: 1
    });

This works only when app is in foreground. In background (when app is minimized - not killed) it's not working
    setTimeout(() => {
        FCM.presentLocalNotification({
            id: 'testnotif',
            fire_date: new Date().getTime()+5000,
            vibrate: 500,
            title: 'Hello',
            body: 'Test Scheduled Notification',
            sub_text: 'sub text',
            priority: "high",
            show_in_foreground: false, // this does not change anything in this case
            wake_screen: true,
            extra1: {a: 1},
            extra2: 1
        });
    }, 5000);

What version of RN and react-native-fcm are you running?
"react-native-fcm": "^14.1.0",
What device are you using? (e.g iOS9 emulator, Android 6 device)?
Android Nexus 5 6.0.1
Is your app running in foreground, background or not running?
Both

setTimeout generally doesn't work after going to background for 5 seconds. you can use react-native-background-timer
the schedule notification example in example project works. can you reproduce the issue there?

I have the same problem, presentLocalNotification({...}) works, but scheduleLocalNotification({...}) literally doesn't do anything..

Started working after removing everything related to react-native-fcm from AndroidManifest and just pasting this:
<receiver android:name="com.evollu.react.fcm.FIRLocalMessagingPublisher"/>
        <receiver android:enabled="true" android:exported="true"  android:name="com.evollu.react.fcm.FIRSystemBootEventReceiver">
            <intent-filter>
                <action android:name="android.intent.action.BOOT_COMPLETED"/>
                <action android:name="android.intent.action.QUICKBOOT_POWERON"/>
                <action android:name="com.htc.intent.action.QUICKBOOT_POWERON"/>
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </receiver>

        <service android:name="com.evollu.react.fcm.MessagingService">
            <intent-filter>
                <action android:name="com.google.firebase.MESSAGING_EVENT"/>
            </intent-filter>
        </service>

        <service android:name="com.evollu.react.fcm.InstanceIdService" android:exported="false">
            <intent-filter>
                <action android:name="com.google.firebase.INSTANCE_ID_EVENT"/>
            </intent-filter>
        </service>

This was copied from the example project, I'm not sure why this isn't shown in the README

Same issue here, this doesn't work
FCM.scheduleLocalNotification({
          fire_date: new Date().getTime() + 3000,
          id: 'some id',
          body: "BODY",
          show_in_foreground:true,
          title:"TITLE"
});

"react-native-fcm": "^10.0.3",
"react-native": "0.49.3",

ok @evollu will give it a try

@shekharskamble can you share an example project so I can reproduce your issue?


Limit access to specific site has wrong cmdlet

Under step 9 to limit access to multiple sites, the command after the pipe is currently Set-SPOTenant however it needs to be Set-SPOSite

@CThreadgill Please link the documentation you are referring to. Thanks!

Hi @CThreadgill, thank you for your feedback.
I think this issue is related to this article:
https://docs.microsoft.com/sharepoint/control-access-from-unmanaged-devices#limit-access-using-powershell
Please confirm.

@CThreadgill Thank you for submitting feedback. We understand that this issue has been resolved.
Please feel free to re-open this issue if there is a specific area of the docs that we can improve or make better. Thank you.


Props refresh

🤔 What type of PR is this? (check all applicable)

[ ] 🍕 Addition
[ ] ⌨ Productivity
[ ] 🐛 Bug Fix
[X] 🔥 Optimization
[X] ⚙ Configuration
[X] 🌟 Quality Of Life
[ ] ✨ Enhancement
[ ] 📝 Documentation

📝 Description
Test the new interface for props
🚦 Testing

⏮ Backwards Compatibility
1.12.2
📚 Related Issues & Documents
There was no problem
🖼 Screenshots/Recordings

📖 Added to documentation?

[ ] 📜 README.md
[ ] 📓 Javadoc
[ ] 🍕 Comments
[X] 🙅 no documentation needed

😄 [optional] What gif best describes this PR or how it makes you feel?
https://tenor.com/view/green-mile-im-tired-boss-michael-clarke-duncan-gif-16875499

Update to goals after name change:
This aims at refreshing props so that they don't really impact other developments, and feel nicer and more polished.
Main Goals:

[ ] Updating models and assets to latest standards

[ ] snake_case for textures
[ ] snake_case for id's (enforce with new Red Core util)
[x] Use latest practices for models

[ ] Add missing icons
[ ] Add missing non rotated versions of some models

Non-Goals:

It is not a goal to add new props
It is not a goal to improve the looks of existing props
It is not a goal to optimize props
It is not a goal to fully rewrite props


macOS Monterey uses Port 7000

Describe the bug
The fluid.testem.base grade uses Port 7000 as the default for the coveragePort. In macOS 12 (Monterey) that port is used by Control Centre for the AirPlay feature ( see: https://developer.apple.com/forums/thread/682332 ). This is causing the test to error out because the port is already in use.
08:11:21.736:  FATAL ERROR: Uncaught exception: listen EADDRINUSE: address already in use :::7000
Error: listen EADDRINUSE: address already in use :::7000
    at Server.setupListenHandle [as _listen2] (net.js:1318:16)
    at listenInCluster (net.js:1366:12)
    at Server.listen (net.js:1452:7)
    at Function.listen (/Users/jo/Documents/git/infusion/node_modules/express/lib/application.js:618:24)
    at fluid.express.startServer (/Users/jo/Documents/git/infusion/node_modules/fluid-express/src/js/express.js:48:32)
    at togo (/Users/jo/Documents/git/infusion/src/framework/core/js/FluidIoC.js:2844:33)
    at fluid.event.firer.fire (/Users/jo/Documents/git/infusion/src/framework/core/js/Fluid.js:1775:40)
    at fluid.express.routable.connectDirectDescendants (/Users/jo/Documents/git/infusion/node_modules/fluid-express/src/js/routable.js:70:37)
    at togo (/Users/jo/Documents/git/infusion/src/framework/core/js/FluidIoC.js:2844:33)
    at fluid.event.firer.fire (/Users/jo/Documents/git/infusion/src/framework/core/js/Fluid.js:1775:40)
    at fluid.express.init (/Users/jo/Documents/git/infusion/node_modules/fluid-express/src/js/express.js:43:43)
    at togo (/Users/jo/Documents/git/infusion/src/framework/core/js/FluidIoC.js:2844:33)
    at fluid.event.firer.fire (/Users/jo/Documents/git/infusion/src/framework/core/js/Fluid.js:1775:40)
    at fluid.concludeComponentInit (/Users/jo/Documents/git/infusion/src/framework/core/js/FluidIoC.js:1532:30)
    at /Users/jo/Documents/git/infusion/src/framework/core/js/FluidIoC.js:2203:29
    at Array.forEach (<anonymous>)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR<EMAIL_ADDRESS>test:browser: `testem ci --file tests/testem.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>test:browser script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR!      /Users/jo/.npm/_logs/2021-10-27T12_11_21_756Z-debug.log
ERROR: "test:browser" exited with 1.
npm ERR! Test failed.  See above for more details.

Technical details
Desktop

OS: macOS 12 (Monterey)

I looked into this for a bit based on the get-port package we chatted about yesterday.  Unfortunately Node's "net" module uses asynchronous functions that don't have a synchronous equivalent.
I might be able to work with this, but I'd have to do a lot more work that I think I can manage at the moment.  To get a valid port, I'd either have to scan all ports every time (which would slow things down), or I'd have to figure out a new promise chaining mechanism that stops when the first port is found.
Assuming I could do tame the async calls without adding too many ES6-isms to the codebase, I'd have to set up some kind of createOnEvent setup for most components, which from past experience tends to lead to hanging tests on startup if you aren't very careful with the implementation details.
For now, it seems most appropriate to simply update the port to a non-conflicting value.


Support case-insensitivity in Join Index Rule V2

Describe the issue

Currently JoinIndexRuleV2 from pr #124 is written without consideration of case-sensitivity in mind. Update code to support case-(in)sensitivity
To Reproduce

Expected behavior

Environment

can we take it in a separate PR? cc @imback82

Sure.

@apoorvedave1 Is this still valid and if so, can you please take care of it in your existing PR #124 ?


DefaultStackExtractor - handling unknown stack frames

I think I should use unkown frame formats as well. So if the system is not able to parse them, then I should display the original ones, so I would be able to learn more about the environment. I could add an XHR to the code, so it would be able to send the stack and environment info to my log, and I will be able to support more environments. Now that's just an idea. Maybe I'll add a plugin to the system, so by adding this plugin the developers would be able to help collecting info about multiple environments.

I need graceful degradation here, so the frame strings must be saved and added as string to the frames array. It should remove the name and message if it is present in the first line, but I am not sure whether it is detectable universally. Probably not.


Populate context in create scratch page with sensible default if one doesn't exist

If the user doesn't have history for the context box, we should put in some simple context defining common shorthand types such as u8

I actually don't like this idea anymore. I think we could give users an option to include a "default" context, but this is kind of tackling the wrong problem - we need to make it easier to integrate existing workflows with the website, not mimicking what a workflow may be. I see potential issues with this, where the context we give the user doesn't match what they have in their project, so it may match on the site but not locally. I think we should revisit this later when we have an actual plan

I actually don't like this idea anymore. I think we could give users an option to include a "default" context, but this is kind of tackling the wrong problem - we need to make it easier to integrate existing workflows with the website, not mimicking what a workflow may be. I see potential issues with this, where the context we give the user doesn't match what they have in their project, so it may match on the site but not locally. I think we should revisit this later when we have an actual plan