Add (proper) support for Lua 5.4

Lua 5.4 has been officially released. Trying to compile lgi with Lua 5.4 gives me a compilation error:
callable.c: In function ‘closure_callback’:
callable.c:1237:13: error: too few arguments to function ‘lua_resume’
 1237 |       res = lua_resume (L, NULL, npos);
      |             ^~~~~~~~~~
In file included from lgi.h:11,
                 from callable.c:12:
/usr/include/lua.h:300:15: note: declared here
  300 | LUA_API int  (lua_resume)     (lua_State *L, lua_State *from, int narg,
      |               ^~~~~~~~~~
make[1]: *** [Makefile:63: callable.o] Error 1
make[1]: *** Waiting for unfinished jobs....

See #199. One of the tests involving coroutines runs into "C stack overflow". The gdb backtrace shows that there are no C stack overflows at the time. Feel free to help figuring out what is going on.

Maybe this: https://www.lua.org/bugs.html#5.4.0-9 ?

From the stacktrace from the "C stack overflow" error, I think the problem is that the code is doing lua_pcall using  a Lua thread that has never been resumed. Such threads have a very small initial C stack limit, the idea being that lua_resume sets the stack limit based on the "from" thread parameter (which is also not being set, but that's a different issue).
The bug 5.4.0-9 is not relevant because that only causes an actual stack overflow to go undetected (causing a later crash), it does not cause spurious errors.

Lua 5.4.1 RC1 is out and fixes all bugs of 5.4.0. I suggest running tests against it.

Tried with a branch pointing at https://github.com/psychon/lgi/commit/1b3f5e1ce45b1d32914f370d707108b3f37857c5. Result is:
cd .. && LD_LIBRARY_PATH=tests:$LD_LIBRARY_PATH \
	    GI_TYPELIB_PATH=tests:$GI_TYPELIB_PATH \
	    LUA_PATH="./?.lua;;" \
	    LUA_CPATH="./?.so;;" \
	    /usr/bin/dbus-launch lua tests/test.lua
(process:6414): Lgi-WARNING **: Error raised while calling 'lgi.cbk (number): Regress': attempt to call a number value
(process:6414): Lgi-WARNING **: Error raised while calling 'lgi.cbk (string: 0x695810): Regress': attempt to call a string value
(process:6414): Lgi-WARNING **: Error raised while calling 'lgi.cbk (table: 0x782df0): Regress': attempt to call a table value
(process:6414): Lgi-WARNING **: Error raised while calling 'lgi.cbk (table: 0x7196e0): Regress': attempt to call a table value
gireg   : all 114 tests passed.
marshal : all 1 tests passed.
corocbk : all 3 tests passed.
record  : all 1 tests passed.
** (lua:6414): WARNING **: Error retrieving accessibility bus address: org.freedesktop.DBus.Error.ServiceUnknown: The name org.a11y.Bus was not provided by any .service files
(lua:6414): GLib-GObject-CRITICAL **: g_param_spec_enum: assertion 'G_TYPE_IS_ENUM (enum_type)' failed
gobject : all 18 tests passed.
No output has been received in the last 10m0s, this potentially indicates a stalled build or something wrong with the build itself.
Check the details on how to adjust your build configuration on: https://docs.travis-ci.com/user/common-build-problems/#build-times-out-because-no-output-was-received
The build has been terminated

https://travis-ci.org/github/psychon/lgi/builds/732008009
This one sounds new and does not happen locally for me, could be the cause:
(lua:6414): GLib-GObject-CRITICAL **: g_param_spec_enum: assertion 'G_TYPE_IS_ENUM (enum_type)' failed

@psychon : Can you comment on the analysis by @RhodiumToad in https://github.com/pavouk/lgi/issues/247#issuecomment-687906637 ?

@thmo Sure... uhm... well... sounds like a valid theory and @RhodiumToad seems to understand more about Lua internals than I do. That's about all that I can say about the comment. If this theory is correct, then I still have no idea what to do about this problem. When LGI gets a call from C (for a callback), it tries to find a lua thread where the call can be done. If none is found, lua_newthread() is called and a lua_pcall() is done. I do not see how this could be changed to lua_resume(), because we are "in a random context" and we certainly cannot allow Lua to longjmp() away here.
What kind of comment were you hoping for?

So we'd need input from someone with profound Lua knowledge on how to properly increase the stack size between lua_newthread() and lua_pcall. Hopefully that should be possible.

I think the easiest solution is probably to support only 5.4.2+ when that comes out, because that seems to fix the issue by reverting to the old scheme for handling the C stack.
5.4.2+ can be checked for at runtime by testing whether lua_setcstacklimit can actually change the limit (on 5.4.2 it will ignore attempts to change the limit and return a constant).

Taking a look at Lua source code:
In lua_resume:
  if (from == NULL)
    L->nCcalls = CSTACKTHREAD;

You can just assign C stack limit directly like this. I'm not exactly sure how portable is this across Lua versions, however.

Also note that Lua uses very rouge C stack overflow detection that is more than likely to trigger long before actual stack overflow happens on most PCs. That's why you won't find gdb reporting overflow when Lua does.

L->nCcalls = CSTACKTHREAD;

You can just assign C stack limit directly like this. I'm not exactly sure how portable is this across Lua versions, however.

No you can't, because lua_State is opaque from the point of view of the module (it is not defined in lua.h). Also the meaning of L->nCcalls isn't the same even between different point releases.

Also note that Lua uses very rouge C stack overflow detection that is more than likely to trigger long before actual stack overflow happens on most PCs. That's why you won't find gdb reporting overflow when Lua does.

Checking stack limits in a portable way is quite hard (some of the weirder architectures such as ia64 have things like multiple stacks). Lua's C stack limit (in versions except 5.4.0 and .1) is only there to catch uncontrolled on unreasonable nesting in C functions; and even then it doesn't do a perfect job, since string.gsub, string.format, and table.concat can be made to use very large amounts of stack space.

Lua 5.4.2 is out, reversing to stackless implementation. Try testing with it.

gcc -v

gcc version 10.2.0 (GCC)

lua -v

5.4.2

sudo luarocks install lgi
...

callable.c:1237:13: error: too few arguments to function 'lua resume'
1237 |            res = lua_resume (L, NULL, npos);
|
...

bug's still here.
Some additional ouput if you want it:
https://bit.ly/3na7lvj

gcc -v

gcc version 10.2.0 (GCC)

lua -v

5.4.2

sudo luarocks install lgi
...

callable.c:1237:13: error: too few arguments to function 'lua resume'
1237 |            res = lua_resume (L, NULL, npos);
|
...

bug's still here.
Some additional ouput if you want it:
https://bit.ly/3na7lvj

...
callable.c:1237:13: error: too few arguments to function 'lua resume'
1237 |            res = lua_resume (L, NULL, npos);
|
...

You need the patch from #199 , which has been merged but is not part of any released version.

...
callable.c:1237:13: error: too few arguments to function 'lua resume'
1237 |            res = lua_resume (L, NULL, npos);
|
...

You need the patch from #199 , which has been merged but is not part of any released version.

I just built lgi with lua 5.4 and make check passes: is the problem vanished or is there something I am missing?

lgi 4071f902b635
lua 5.4.3
gcc 11.1.0

I'm fine with just assuming that this works, so let's cross some fingers and just close this.

@Elv13 Do you have a link to the necessary patch? I'd love to get the Arch Linux awesome package updated to Lua 5.4 if its possible.

diff --git a/awesome.c b/awesome.c
index 24ee52d8..ef6c339e 100644
--- a/awesome.c
+++ b/awesome.c
@@ -37,6 +37,7 @@
 #include "systray.h"
 #include "xwindow.h"
 #include "options.h"
+#include "math.h"

 #include <getopt.h>

@@ -84,10 +85,16 @@ init_rng(void)
     lua_getfield(L, -1, "randomseed");

     /* Push a seed */
-    lua_pushnumber(L, g_random_int() + g_random_double());
+    lua_pushnumber(L, floor(g_random_int() + g_random_double()));

     /* Call math.randomseed */
-    lua_call(L, 1, 0);
+    if(lua_pcall(L, 1, 0, 0))
+    {
+        warn("Random number generator initialization failed: %s", lua_tostring(L, -1));
+        /* Remove error function and error string */
+        lua_pop(L, 2);
+        return;
+    }

     /* Remove "math" global */
     lua_pop(L, 1);
diff --git a/awesomeConfig.cmake b/awesomeConfig.cmake
index 5f292aaa..592c2b25 100644
--- a/awesomeConfig.cmake
+++ b/awesomeConfig.cmake
@@ -73,9 +73,9 @@ if (NOT LUA_FOUND)
 endif()

 set(LUA_FULL_VERSION "${LUA_VERSION_MAJOR}.${LUA_VERSION_MINOR}.${LUA_VERSION_PATCH}")
-# 5.1 <= LUA_VERSION < 5.4
-if(NOT ((LUA_FULL_VERSION VERSION_EQUAL 5.1.0 OR LUA_FULL_VERSION VERSION_GREATER 5.1.0) AND LUA_FULL_VERSION VERSION_LESS 5.4.0))
-    message(FATAL_ERROR "Awesome only supports Lua versions 5.1-5.3, please refer to"
+# 5.1 <= LUA_VERSION < 5.5
+if(NOT ((LUA_FULL_VERSION VERSION_EQUAL 5.1.0 OR LUA_FULL_VERSION VERSION_GREATER 5.1.0) AND LUA_FULL_VERSION VERSION_LESS 5.5.0))
+    message(FATAL_ERROR "Awesome only supports Lua versions 5.1-5.4, please refer to"
                         "https://awesomewm.org/apidoc/documentation/10-building-and-testing.md.html#Building")
 endif()

diff --git a/luaa.h b/luaa.h
index fae07270..04e28342 100644
--- a/luaa.h
+++ b/luaa.h
@@ -31,8 +31,8 @@
 #include "common/lualib.h"
 #include "common/luaclass.h"

-#if !(501 <= LUA_VERSION_NUM && LUA_VERSION_NUM < 504)
-#error "Awesome only supports Lua versions 5.1-5.3 and LuaJIT2, please refer to https://awesomewm.org/apidoc/documentation/10-building-and-testing.md.html#Building"
+#if !(501 <= LUA_VERSION_NUM && LUA_VERSION_NUM < 505)
+#error "Awesome only supports Lua versions 5.1-5.4 and LuaJIT2, please refer to https://awesomewm.org/apidoc/documentation/10-building-and-testing.md.html#Building"
 #endif

 #define luaA_deprecate(L, repl) \


Optional "types"

Hey there.
Thanks for this super useful projects. I've been using it a bit over the last few days and so far its been a smooth ride!
I was wondering about Union type support or more precisely Optionals?
I've seen you mentioned it as a todo in the Readme but I was wondering whether you are actively working on it?
If not would you welcome a contribution there? And also would you have some starting remarks?
Thanks again for sharing your work! In any case i want to express our intrest in it!
Cheers

I should probably make the documentation clearer but Optional is supported: see https://github.com/s-knibbs/dataclasses-jsonschema/blob/master/tests/conftest.py#L40.
I don't have any immediate plans to support type unions more generally since I'm only really using this Swagger/OpenAPI 2.0 which doesn't support oneOf.
I'm happy to accept a PR if you would like to add type union support however.


⚠ Mobitopup has degraded performance

In 15e6c40, Mobitopup (https://napcard.voz.tech) experienced degraded performance:

HTTP code: 200
Response time: 5436 ms

Resolved: Mobitopup performance has improved in 5f12624.


TearsheetShell console type error

Hi there,
this is just a console issue, I have seen it before and I believe we solved updating packages, now it appears again after another update to 1.2.
I can provide more info if required

d.

@ninjasun unable to reproduce in storybook. Assuming resolved in the current version. If not please additional information including steps to reproduce and reopen.


fix expose ratelimit image.

support #1296
resolve #1203 review case
cc @arkodg @Xunzhuo

does this need to go into 0.4.0 ?
cc @AliceProxy

I think this is a follow-up of #1203 and #1218, we probably need it in v0.4.0

Looks fine except that having the default ratelimit image pinned to a specific version feels a little odd to me?

Default image just eg initial config, can change this by RateLimitDeployment


899 use self hosted runners for ci pipeline

This PR changes the same wfs as #901. I’ll wait untill #901 is complete to merge this one.


[Nim] test overflow checks disabled

The PR just to check only.
The reasons for it:

Rust does not have the check in release mode at all
Cpp does not have it at all

Good thought to check it.
Seeing this PR, I tried the same with nim_con and it made it slower.
For nim it didn't seem to make a difference.  If you put switch("threads", "off") in nim/config.nims it causes a significant slowdown.
Given the program is single-threaded, that surprised me quite a bit! But maybe it's a known thing/bug?

@michaelsbradleyjr it is very possible - some code layouts just does not goes right. The same could be applicable to the overflowchecks. I agree - the change could improve it only a bit and if it works - locally it works, but in the VM - not sure
Anyway, I am pretty sure the better result would be in clang+PGO, but still not sure why it does not work

Addressed here: https://github.com/jinyus/related_post_gen/issues/272#issuecomment-1763416408

Did not get it. Because it is about overflows, not bounds


Bug

Hey! So, when I tried to download episodes, it said that I am missing some files (https://prnt.sc/rfz6gt). I downloaded the zip file from releases and extracted it to this folder. Sorry if I'm just doing something wrong, I don't have programing experience.

Open your cmd directly from Anime Downloader folder (using cd command) and instead of giving full path, you can just type anime-dl.exe ... and so on. The  it will find the settings file.
You don't have to cd if you do open a powershell window from that folder (go to the folder and right click holding shift key -> open powershell window here) and execute commands as given in FAQ section

I have 2captcha. Thank you very much!

Is the error gone and were you able to download?

Hey, so I tried it when I got home, I tried following your steps above, but I still got error saing that it failed to execute Anime_Downloader script (https://prnt.sc/rg6cn0). Sorry for wasting your time.

Oh that's because 2captcha sometimes fail to solve the captcha, Worry not! just re-run the same command and it will work! :D And glad it worked.
Since this is solved, I'm going to close the issue!


Common styling

Hello~
This is just a question about minor issue.
While reading a code, seems common styling rule is not adopt in the projects.

Because seems it recommends to use semi-colon at end of line, but several codes don't have it

Do you have plan for updates?

Hello @djKooks, code styling is enforced on the whole codebase using prettier, which is configured (by default) to automatically insert semicolons at the end of lines. Prettier is even runs as a CI check, see for example the Run linters step of this CI run. It's possible however that I missed to include some file in the check. If you have an example could you link it here? Thanks!

Hello @djKooks, code styling is enforced on the whole codebase using prettier, which is configured (by default) to automatically insert semicolons at the end of lines. Prettier is even runs as a CI check, see for example the Run linters step of this CI run. It's possible however that I missed to include some file in the check. If you have an example could you link it here? Thanks!

@pscanf hello.
Sorry, seems it is my mistake. Currently I couldn't find styling issue. Thanks for following~

@pscanf hello.
Sorry, seems it is my mistake. Currently I couldn't find styling issue. Thanks for following~


Unable to invoke partition_pdf bc patches is not found

See error below when using most recent version: 0.4.3. I suspect it is because patches is not a package.
elements = partition_pdf(local_filename, ocr_languages="eng")

Traceback (most recent call last):
  File "/usr/local/lib/python3.9/site-packages/unstructured/partition/pdf.py", line 207, in _partition_pdf_or_image_local
    from unstructured_inference.inference.layout import (
  File "/usr/local/lib/python3.9/site-packages/unstructured_inference/inference/layout.py", line 20, in <module>
    from unstructured_inference.patches.pdfminer import parse_keyword
ModuleNotFoundError: No module named 'unstructured_inference.patches'

cc @qued

I've verified the issue and your fix. Thanks for submitting this. I'm going to fasttrack your PR.

Closing as resolved by the mentioned PR.


Fix/time zone handling

Handling timezones was still somewhat broken in ViUR3 (due to datastore now returning/expecting tz-aware date objects).
This removed a lot of now obsolete code and desolves the ExtendedDateTimeClass

It's not used inside the server. However one project i've checked uses this so i included this function so there is no loss in functionality. Maybe we could add a deprecation warning to this function and remove it once noone depends on it? Or just drop it now and the projects have to ship one themselves?

@phorward Any preferences about datetimeToTimestamp? Keep or remove?

@phorward Any preferences about datetimeToTimestamp? Keep or remove?

Keeping is better.


Which environment variables are set?

Hi all,
are there any ENV variables set when a service is running on ploomber?
For instance, I can imagine
PLOOMBER_PROJECT=<project name>
These variables are often useful for service to generate links, do API calls to ploomber itself, logging, and recognizing IF a service is running on ploomber.
For instance, how do I know in the service itself that the link to itself is https://purple-feather-0912.ploomberapp.io/
Hope this question makes sense.
Regards,
Maarten Breddels

We're setting some environment variables, but they're undocumented, hence, subject to change. This makes sense, and I think we should set some. maybe we can set PLOOMBER_PROJECT_ID
@idomic FYI

@idomic what env variable is set? is it PROJECT_ID?


show default doesn't work on Windows 10

BUG REPORT:
/kind bug
What happened:
ERROR find objects: get modules: CreateFile ...
T:\git\designer-kubernetes\chart (dev)
λ ks init temp1
INFO Using context "stage-etchdesignermgmt" from kubeconfig file "C:\\Users\\redacted/.kube/config"
INFO Creating environment "default" with namespace "default", pointing to cluster at address "https://stage-etchdesignermgmt.southcentralus.cloudapp.azure.com"
INFO Generating ksonnet-lib data at path 'T:\git\designer-kubernetes\chart\temp1\lib\v1.8.7'

T:\git\designer-kubernetes\chart (dev)
λ cd temp1

T:\git\designer-kubernetes\chart\temp1 (dev)
λ ks generate deployed-service guestbook-ui --image gcr.io/heptio-images/ks-guestbook-demo:0.1 --type ClusterIP
INFO Writing component at 'T:\git\designer-kubernetes\chart\temp1\components\guestbook-ui.jsonnet'

T:\git\designer-kubernetes\chart\temp1 (dev)
λ ks show default
ERROR find objects: get modules: CreateFile T:\git\designer-kubernetes\chart\temp1\components\T:\git\designer-kubernetes\chart\temp1\components: The filename, directory name, or volume label syntax is incorrect.

What you expected to happen:
The template to be expanded.
How to reproduce it (as minimally and precisely as possible):
Run the samples from the readme on Windows 10. https://github.com/ksonnet/ksonnet
Environment:
Windows 10
ksonnet version: 0.10.2
jsonnet version: v0.10.0
client-go version: 1.8

This seems to be a problem when running any ks commands with the default environment on Windows. Ksonnet repeats the component path.
I've spent too much time learning and setting up Tensorflow/Docker/Kubernetes/Kubeflow on my machine to give up at the last stage of integration. I'll happily spend time trying to help fix this bug; however, I would need a pointer to where in the code base environment component paths are being generated. I'm still working on my Go competency.

So far I've been able to confirm that this is a problem with all environments, not just the default.
And that the path parameter in environments within the app.yaml file doesn't seem to do anything. The path is assigned the string name of the environment. I assumed this was to point to the correct folder in the environments directory, but changing this path value has no impact on the output - commands using the environment still generates the same error with duplicated component path.


Added support for 'logSumExp'.

Depends on #149. @rxwei I was also relying on a general Tensor.withoutDerivative() for this. It'd be nice to find a nice way to deal with this situation more generally.

Could you use the global Swift.withoutDerivative(at:in:) for now?

I addressed that. It remains to add documentation and tests which I'll do later today.

@rxwei I added documentation and tests. The CI tests are running now and so this only requires an approving review.

CI tests pass so this is only pending a review.

@rxwei I was also relying on a general Tensor.withoutDerivative() for this. It'd be nice to find a nice way to deal with this situation more generally.

Yeah I saw your use case. I think this justifies having a top-level withoutDerivative<T>(_ x: T) -> T identity function.


v3 API still sometimes errors on authentication over SSL

I suspect that this is a conflicting plug-in issue as passing the query params resolves it.
The error I get is:
[32] pry(main)> api.get('products')
=> {"errors"=>[{"code"=>"woocommerce_api_authentication_error", "message"=>"Consumer Secret is invalid"}]}

The odd part is that the get index route works (I've tried this on the client before pull request #10 was merged). I think that the basic auth might be getting scrubbed from the request before woo even is able to process it but to that end I don't know.
It does work if I include the secret and key in the query params.

Index works because don't need any authentication.
To V3 is not possible to pass keys as query string, I recommend you use oAuth in this case.
Maybe we can do something to force use oAuth even when the URL is over SSL.

Hmm, the query string is working for me on woo 2.4.7 with v3 passed into the client gem.
Will oauth work even if it's https? Should we make an option to force oauth in the gem?

Yep, oAuth can work with https and yep, I agree have some option for it.
And sorry, I had misunderstood:

It does work if I include the secret and key in the query params.

The problem is the server unable to configure PHP_AUTH_USER and PHP_AUTH_PW.
Here how this works: https://github.com/woothemes/woocommerce/blob/master/includes/api/class-wc-api-authentication.php#L79-L93
See that we test for the query strings first as fallback and then we try PHP vars.

@claudiosmweb
Thanks for sending me the link to the location in woocommerce code that this relates to. It looks like woo never tries to do oauth over ssl:
https://github.com/woothemes/woocommerce/blob/master/includes/api/class-wc-api-authentication.php#L45-L49
I have a change on my fork that will allow a client to always use oauth but I don't think that will work until ssl is able to read the oauth params.

Closing since need to use Basic Auth over SSL.


Snow turns my Magic Mirror blank

When i install the module--the config has no errors--the MM loads and it is just blank. it works fine when the snow module is commented out.

Figured it out myself--the snow.js and css files are under the directory modules/MagicPlugins/snow/, when they SHOULd all be under modules/snow/. to fix:
cd ~/MagicMirror/modules
mkdir snow
cp MagicPlugins/snow/* snow
sudo rm -rf MagicPlugins
pm2 restart mm

(Last bit only applies if you're running the magic mirror via pm2)


Heap Checker considers data belonging to dead threads to be live (Linux)

Originally reported on Google Code with ID 537
Heap Checker treats all memory ranges mapped by libpthread as live, with the exception
of those ranges which contain the stack pointer of a running thread. On Linux, libpthread
does not immediately unmap the stack on thread death. As a result, stacks of dead threads
may still exist in memory and will be treated as live by Heap Checker.

Reproducer:

#include <pthread.h>

#include <stdio.h>

#include <stdlib.h>

void *thread_func(void *) {
  // Print the stack range for reference.
  pthread_attr_t attr;
  pthread_getattr_np(pthread_self(), &attr);
  void *stackaddr;
  size_t stacksize;
  pthread_attr_getstack(&attr, &stackaddr, &stacksize);
  printf("Stack at %p-%p\n", stackaddr, (char *)stackaddr + stacksize);

  void *leaked = malloc(31337);
  printf("%p\n", leaked); // break optimization

}

int main() {

  pthread_t pid;

  pthread_create(&pid, 0, thread_func, 0);

  pthread_join(pid, 0);

  return 0;

}

Build with -pthread and -ltcmalloc, run with HEAPCHECK=strict or HEAPCHECK=normal.
Heap checker reports no leaks, when in fact we have a leaked block of 31337 bytes.

Now run with HEAPCHECK=strict PERFTOOLS_VERBOSE=20.

On stdout:

Stack at 0x7f8792bf8000-0x7f87933f9000
[...]

On stderr:

[...]
Checking for whole-program memory leaks

Disabling allocations from /lib/x86_64-linux-gnu/libpthread-2.15.so at depth 1:

Global memory regions made by /lib/x86_64-linux-gnu/libpthread-2.15.so will be live
data

Disabling allocations from /lib/x86_64-linux-gnu/ld-2.15.so at depth 2:

Global memory regions made by /lib/x86_64-linux-gnu/ld-2.15.so will be live data

Found 0 threads (from pid 32364)

Looking into ./a.out: 0x601000..0x602000

Looking into [heap]: 0x21c3000..0x23dc000

Looking into UNNAMED: 0x7f8792bf9000..0x7f87933f9000
[...]
Looking for heap pointers in 0x7f8792bf9000 of 8388608 bytes

Got pointer into 0x22e0000 at +0 offset

Found pointer to 0x22e0000 of 31337 bytes at 0x7f87933f7780 inside 0x7f8792bf9000 of
size 8388608
[...]

Reported by<EMAIL_ADDRESS>on 2013-06-05 10:36:56

Closing as won't fix. People should use sanitizers.


Technical Page Review

A code review of Technical page done during trials.

Review of Linters Error
Review of Semantic Tags
Review of Readme

Linters Error Fixed

Hi @aeon9300 ,
:thumbsup: This is good to make it this far, your project is really nice, congratulations on the good work you have done so far.
Keep on coding, good job so far! :clap:
There are some issues that you still need to work on to go to the next project but you are almost there!

Required Changes  :recycle:
Check the comments under your review.

Cheers and Happy coding! :clap: :clap: :clap:
Feel free to leave any questions or comments in the PR thread if something is not 100% clear.
Please, do not open a new Pull Request for re-reviews. You should use the same Pull Request submitted for the first review, either valid or invalid unless it is requested otherwise.

As described in the Code reviews limits policy you have a limited number of reviews per project (check the exact number in your Dashboard). If you think that the code review was not fair, you can request a second opinion using this form.

STATUS: APPROVED  ✔

Hi @aeon9300 ,
Your project is complete!  Congratulations!  🎉💯🌟

It was funny though to read it though 😁

This is how you can add emoticons :grin :smile

Cheers..Happy coding!..and keep soaring higher! 💻 🍷 🚀

As described in the Code reviews limits policy you have 2 more limited reviews per this project. If you think that the code review was not fair, you can request a second opinion using this form.


EXT: Ronancummins persist nlu training data option

Proposed changes:

supersedes #4388

Status (please check what you already did):

[x] made PR ready for code review

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.2 out of 3 committers have signed the CLA.:white_check_mark: ronancummins:white_check_mark: tmbo:x: Ronan CumminsRonan Cummins 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.

doesn't need a review, #4388 has been reviewed

Hi,
I have a question -
When we set persist_nlu_training_data=True in NLU training, where does the model get persisted?
I am trying below call-
rasa.train(         domain=None,         config=config,         training_files=training_data,         output=models_dir,         fixed_model_name=model_name,         persist_nlu_training_data=True     )


[In_app_purchases] migrate to Play Billing Library 2.0.

Description
This PR migrates the IAP plugin to BillingClient 2.0 on Android.
It contains changes described below:

Java:

enablePendingPurchases() is called when initializing BillingClient .
New fields that are added to the Purchase and  the SkuDetails are reflected in the Translator.
PurchaseHistoryRecord is added to the Translator
BillingResult is added to the Translator
All the BillingClients APIs that previously sends a BillingResponseCode to dart now sends a map that represents a BillingResult to dart.
Add the new acknowledgePurchase API method channel implementation.

dart billing_client_wrapper:

[Breaking Change] All the BillingClientWrapper methods that previously returns a BillingResponse now returns a BillingResult
[Breaking Change] SkuDetailsResponseWrapper is updated to contain a BillingClientWrapper instead of BillingResponse
[Breaking Change] The BillingClient.queryPurchaseHistory is updated to return a PurchasesHistoryResult
New fields added to the PurchaseWrapper and SkuDetailsWrapper based on the Translator updates in Java.
Added a new BillingClient.acknowledgePurchase API.
New classes/enums introduced: PurchasesHistoryResult, PurchaseHistoryRecordWrapper, PurchaseStateWrapper

dart unified APIs.

[Breaking Change]: InAppPurchaseConnection.completePurchase now returns a Future<BillingResultWrapper> instead of Future<void>. A new optional parameter {String developerPayload} has also been added to the API. On Android, this API does not throw an exception anymore, it instead acknowledge the purchase.
[Breaking Change]: InAppPurchaseConnection.consumePurchase now returns a Future<BillingResultWrapper> instead of Future<BillingResponse>. A new optional parameter {String developerPayload} has also been added to the API.
A new boolean field pendingCompletePurchase has been added to the PurchaseDetails class. I am not too certain about this change, maybe a public API review discussion is needed.

This PR also contains some documentation updates based on the BillingClient v2 changes.
Link to the BillingClient v2 release note: https://developer.android.com/google/play/billing/billing_library_releases_notes#release-2_0
IMPORTANT a breaking change announcement following the breaking change protocol has to be made prior to landing this PR
Related Issues
https://github.com/flutter/flutter/issues/37021
https://github.com/flutter/flutter/issues/37821 and https://github.com/flutter/flutter/issues/40956 should also be fixed since enablePendingPurchases() is called by default after this change.
Checklist
Before you create this PR confirm that it meets all requirements listed below by checking the relevant checkboxes ([x]). This will ensure a smooth and quick review process.

[x] I read the Contributor Guide and followed the process outlined there for submitting PRs.
[x] My PR includes unit or integration tests for all changed/updated/fixed behaviors (See Contributor Guide).
[x] All existing and new tests are passing.
[x] I updated/added relevant documentation (doc comments with ///).
[x] The analyzer (flutter analyze) does not report any problems on my PR.
[x] I read and followed the Flutter Style Guide.
[x] The title of the PR starts with the name of the plugin surrounded by square brackets, e.g. [shared_preferences]
[x] I updated pubspec.yaml with an appropriate new version according to the pub versioning philosophy.
[x] I updated CHANGELOG.md to add a description of the change.
[x] I signed the CLA.
[x] I am willing to follow-up on review comments in a timely manner.

Breaking Change
Does your PR require plugin users to manually update their apps to accommodate your change?

[x] Yes, this is a breaking change (please indicate a breaking change in CHANGELOG.md and increment major revision).
[ ] No, this is not a breaking change.

Everything here LG pending the enablePendingPurchases question.

Came to a decision offline. We'd like to expose the enablePendingPurchase API in both the Play and unified API layers in the plugin. However we'll make the iOS instance of the unified implementation of the API a no-op and not cause any issues if it's not called when running on iOS.

@mklim Added a draft of the new pendingPurchaseAPI, do you want to take a look and see how you like it?

Offline discussion with @amirh. Because the overhead of a 2-phase* release for this breaking change is very big and the usage of the plugin is low. We've decided to let this change to be a 1-phase* update. The breaking change will be described in the CHANGELOG.
2-phase: introduce a minor update with deprecating the old methods, then follow up with a major update which delete the deprecated methods. In this particular case, it is hard to do since we will need to mock many functionalities without updating Android's Play Billing Library to 2.0, which can result unwanted behaviors and confusions.
1-phase: directly introduce a major update with all the breakages.

Offline discussion with @amirh. Because the overhead of a 2-phase* release for this breaking change is very big and the usage of the plugin is low. We've decided to let this change to be a 1-phase* update. The breaking changes will be described in the CHANGELOG.
2-phase: introduce a minor update while deprecating the old methods, then follow up with a major update which delete the deprecated methods. In this particular case, it is hard to do since we will need to mock many functionalities without updating Android's Play Billing Library to 2.0, which can result unwanted behaviors and confusions.
1-phase: directly introduce a major update with all the breakages.

LGTM to land this without a deprecation phase, since the platform library didn't land their breaking change with a deprecation doing so in our side is complex and potentially error prone, and as the plugin is still relatively new we expect the ecosystem impact to not be too wide.


Reject fast signals when workflow task is failing at continueAsNew

Is your feature request related to a problem? Please describe.
When workflow is closing(continueAsNew/fail/complete), the workflow task would fail if there is any signals received but not processed. This is designed to prevent signals being lost(continueAsNew with unhandled signals).
This is problematic especially for continueAsNew. In a valid design, workflow should do continueAsNew after processing too many signals, to avoid blowing up the history. However, when signals are coming too fast, workflow task won't be able to process, and failing in a loop

WFT scheduled/started
WFT fail when attempt to continueAsNew, because a signal is received when WFT is completing
WFT scheduled/started
...
As a result, workflow will either get terminated because of history length/size limit (50K events or 50MB) it can't process the signals, or there are too many signals that it can't carry over to next run(limit of workflow input).

Describe the solution you'd like
Option 1: DescribeWF response will return why the last workflow task is failing -- is it trying to do a continueAsNew. So that app can use it to decide rejecting the signals
Option 2: Temporal server will reject the signals based on last continueAsNew failure.
Option 3: instead of failing, apply the buffered signals to next run if workflow is doing continueAsNew, as described in https://github.com/temporalio/temporal/issues/1289
Describe alternatives you've considered
A workaround today is that application will describe workflow to check a pending workflow task attempt, and just reject signals when attempt >1 see https://github.com/indeedeng/iwf/issues/236
Additional context
https://temporalio.slack.com/archives/CTQU95E84/p1680537731857359

Thank you for reporting this issue!
This is a very interesting problem that arises from the interplay of signals, continueAsNew, and the history length limit. It's a tricky situation to manage, and your proposed solutions are all good ideas.
At this time, the Temporal Server doesn't have a built-in way to handle the scenario you describe.  However, here's a breakdown of your options and some ways to work around the issue for now:
Option 1:  You are correct that adding information about why a workflow task failed to DescribeWF would be helpful. This could allow applications to make more informed decisions about how to handle signals.  Here's how you could implement that:

Application Workaround: Your application could track the number of workflow task attempts, and if it sees that there are multiple attempts in a short period, it could reject signals until the workflow completes normally or fails. This might prevent a backlog of signals from building up.
Temporal Feature: This is an excellent feature request that we can consider adding to Temporal.

Option 2:  Having the Temporal Server reject signals based on the last continueAsNew failure could also be beneficial. This would prevent signal accumulation and potential history size issues.

Application Workaround:  A similar approach to option 1, where the application tracks the number of attempts and rejects signals, could be implemented.
Temporal Feature: We can explore this as a possible enhancement in the future.

Option 3:  As mentioned in your feature request, the approach described in github.com/temporalio/temporal/issues/1289 could be a good way to address the problem. This would involve buffering signals and applying them to the next workflow run when continueAsNew is used.

Application Workaround:  The application could buffer signals internally and send them in batches to the workflow after processing is complete.
Temporal Feature: This is a promising approach we are actively investigating.

We understand this is a pain point, and we appreciate your detailed report and the suggestions for improvement.  We are actively working on features to make the management of signals and history size more robust.
In the meantime, the application-level workarounds mentioned above can help to mitigate the issue.  We will keep you updated on the progress of any new features related to signal handling and history limits.


Migrate jagephart/ARTIS repo to Seafood-Globalization-Lab Organization?

Research ways to migrate that keep all change history intact. This would possibly allow issue tracking in Seafood-Globalization-Lab project. Moving forward would switch development to branches of artis-model repo.
Read this --> https://docs.github.com/en/repositories/creating-and-managing-repositories/transferring-a-repository
Would act as model archive in new org repo.

Yes. @jagephart and @theamarks decided that moving all development and versioned releases 2024-08 and beyond to Seafood-Globalization-Lab/artis-model repo. jagephart/ARTIS repo will be an archive. We will not try to transfer code from jagephart/ARTIS repo to Seafood-Globalization-Lab/artis-model repo at the moment. We will use a simple branch workflow with develop, hotfix and main branches.


Version Update from v0.11.0 to v0.12.0

This PR:
Version update here will be from v0.11.0 to v0.12.0 for the Master branch. Will create a new v0.12.0 Release after we got this merged into Master.

Alright, with the instruction/wiki and package updates included, think I can merge this into Master now.


Add list of requests

So that we know in which requests this object is involved

Request
Request description
Number of lines
Percentage of lines

fixed by 42e62cf


Fix: Cannot specify extend after blockstring

https://github.com/wundergraph/graphql-go-tools/issues/468

@Mistat can you add a test to cover this new code? the solution seems to be fine

I wrote a test code and confirmed that the "Block string" before "extend" is ignored.

I wrote a test code and confirmed that the "Block string" before "extend" is ignored.

thank you


Cannot access derive properties in macro

What version of Elysia.JS is running?
1.0.5
What platform is your computer?
Darwin 23.2.0 x86_64 i386
What steps can reproduce the bug?
export const example = new Elysia()
  .derive({ as: "scoped" }, async () => {
    return { myProp: 42 };
  })
  .macro(({ onBeforeHandle }) => ({
    public: (_?: boolean) => {
      onBeforeHandle(ctx => {
        ctx.myProp; // myProp is number | undefined, but it is always undefined in runtime
      });
    },
  }));

What is the expected behavior?
We should be able to access derived props in the same scope.
What do you see instead?
Props are typed as maybe undefined and are all undefined during runtime.
Additional information
No response

Hi, this is an expected behavior
This happens because of the scoping mechanism.
macro is global and applies to all routes while derive is defined for a subset of routes.
This means derive properties apply to self and parent, but not a scope beyond that in contrast to a global macro.
On the scope beyond the parent scope, myProp will be undefined while in self and parent is not.
Macro is public and can apply to any route so macro has to consider both scenarios, both myProp with value (in scope) and not (goes beyond scope).
Consider this code:
const plugin = new Elysia()
	.derive({ as: 'scoped' }, () => {
		return { myProp: 42 }
	})
	.macro(({ onBeforeHandle }) => ({
		public(_?: boolean) {
			onBeforeHandle(({ myProp }) => {
				console.log(myProp)
			})
		}
	}))
	.get('/', 'hi', {
		'public': true
	})

plugin.handle(new Request("http://localhost"))

In this code, myProp will be 42 because derive is applied to self which includes /.
However, in this code:
import { Elysia } from '../src'

const plugin = new Elysia()
	.derive({ as: 'scoped' }, () => {
		return { myProp: 42 }
	})
	.macro(({ onBeforeHandle }) => ({
		public(_?: boolean) {
			onBeforeHandle(({ myProp }) => {
				console.log(myProp)
			})
		}
	}))

const parent = new Elysia().use(plugin)

const main = new Elysia().use(parent).get('/', 'hi', {
	public: true
})

main.handle(new Request('http://localhost'))

In this code, myProp will be undefined because it goes out of (parent) scope.
However, if you set derive scope to global, myProp would not be undefined because derive is applied globally on the same scope as macro.
Setting derive as scoped:

Setting derive as global:

So the current behavior is correct because myProp could be either 42 or undefined because derive is defined as scope or local.
I'm closing the issue because this is not a bug but an intended feature to help developers catch bugs but feels free to continue the discussion if something is not clear or if you have more questions.
Thank you.


Feature Request: Self-host at different location

I was able to follow the self-host instructions without issue for the most part, however I'd like to lock down access to the web server.
Easy options:

IP whitelisting
Basic auth
Random path

Neither 1 nor 2 are ideal because I want to access my wallet from anywhere, and basic auth is annoying AF
The feature request is therefore requesting support for a location override so that I can host mutiny on e.g. https://mysite.net/31350127-c761-4db6-a591-336040660d64 effectively hiding in plain sight on a high-entropy path. I tried to do this but seems like the services running locally fetch a bunch of stuff from / and I couldn't rewrite easily.

I think the best way to do this would be an nginx config, not something explicit to mutiny.
if you just change this line https://github.com/MutinyWallet/mutiny-deploy/blob/master/nginx.conf#L9 to instead be location /<your-random-path> I think that'll handle it

OK I'll test that and report the results.
Just got to figure out why I'm getting a 502 now on server reboot 😅

Nope that just results in a 404, I assume it has something to do with this https://github.com/MutinyWallet/mutiny-deploy/blob/a2d87171cddf8ae63d48f28651b8db86f3876bf1/docs/setup-docs.md?plain=1#L245

I do agree this has nothing to do with mutiny, although it seems like a pretty common use case... perhaps this is a feature request that belongs on the mutiny-deploy repo?

Yeah, it is a good idea. I'll try and set it up on my server and write a guide on how to do it

Figured it out, docs are here: https://github.com/MutinyWallet/mutiny-deploy/blob/master/docs/hidden-site.md
let me know if you're able to get it to work

(got my threads crossed and replied on the wrong issue, crossposting the below)
A bit finicky, but seems to work for the most part. When I first load up https://mysite.net/my-hidden-path, I see the below:

Clicking on "Dangit" redirects to https://mysite.net/ and everything just works at that point.


Return CSS class lost during CR

Accidentally removed a CSS class during CR cleanup. This prevents the Fetch stats from being hidden on initial page load. This commit returns the missing CSS class to fix that.

Thanks for catching that @tw4l It's only a tweak of a few characters so your suggestion makes most sense. Closing this PR.


Move most module init into ModuleInitBootstrapper

Goal
Consolidate all of the non-EmbraceImpl-wrapping module initialization in ModuleInitBootstrapper. Additional logic to initialize services within those modules are moved here too if they are wholly contained by the services and not related to state inside EmbraceImpl, and the original order that these steps were taking were preserved.
Testing
Covered by existing tests

[!WARNING]
This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

Current dependencies on/for this PR:

master

PR #391

PR #392

PR #393

PR #394

PR #395

PR #396   👈

This stack of pull requests is managed by Graphite.

Merge activity

Feb 12, 2:44 PM EST: @bidetofevil started a stack merge that includes this pull request via Graphite.


Interval volume profile request

It would be great if there was a way for volume profiles to be placed every requested period. Thank you for making this free!

You can use Volume Profle drawing tool for that


meta-llama/Llama-2-7b has no attribute 'library_name'

It seems that Hydra is unable to parse this model since there is no library_name associated with the ModelInfo object, is this expected behavior?
⬢ [Systemd] ❯ optimum-benchmark --config-dir configs/ --config-name meta-llama___Llama-2-7b.yaml
INFO:nncf:NNCF initialized successfully. Supported frameworks detected: torch, onnx, openvino
Error executing job with overrides: []
Traceback (most recent call last):
  File "/scratch/projects/optimum_benchmark/optimum-benchmark/optimum_benchmark/main.py", line 106, in run_experiment
    OmegaConf.save(experiment, "hydra_config.yaml", resolve=True)
omegaconf.errors.InterpolationResolutionError: AttributeError raised while resolving interpolation: 'ModelInfo' object has no attribute 'library_name'
    full_key: task
    object_type=ExperimentConfig

Set the environment variable HYDRA_FULL_ERROR=1 for a complete stack trace.

Here is my configuration:
defaults:
  - base_config # inherits from base config
  - _self_ # for hydra 1.1 compatibility

experiment_name: meta-llama___Llama-2-7b

model: meta-llama/Llama-2-7b
device: cuda

Thanks so much

Yes that's expected. Because that model isn't part of HF ecosystem. Meta released two kinds of weights; the first kind is the one you're mentioning which uses one monolithic save file and no config (don't know what is it used for) and HF weights (e.g. https://huggingface.co/meta-llama/Llama-2-7b-hf) which can be loaded using transformers AutoModel.

My misunderstanding, thank you!


How to request token for a specific audience?

Core Library
MSAL.js v2 (@azure/msal-browser)
Core Library Version
2.33.0
Wrapper Library
MSAL React (@azure/msal-react)
Wrapper Library Version
1.5.3
Public or Confidential Client?
Public
Description
I am attempting to implement the on-behalf-of (OBO) flow where I pass the token acquired on the front-end (using msal-react) and pass it to a middle-tier application (a confidential client) for it to use. In order to get this to work, I need the token audience to be set to the middle-tier application's client id. I'm not seeing any documentation on how to set the requested audience for the token. Please advise on how to use msal-react to request a token for a specific audience. Thanks!
MSAL Configuration
No response
Relevant Code Snippets
No response
Identity Provider
Azure AD / MSA
Source
External (Customer)

@rwilliams3088 While requesting the token , setting for a scope of the format: api://<App Id URI>/Read value should give you what you are looking for. MSAL JS docs on how to set the scope format is here.
I found a relative blog post that can help here that can help you.


Installation on Mac OS fails due to libvulkan not being code signed

Following the installation instructions in the README, everything installs and builds correctly, but running the binary opens a warning window from Mac OS

Canceling this opens three other windows for other Vulkan libraries. The program does not start.
Is that a known issue? I could not find an explanation on how to correctly install Vulkan on Mac with code signed binaries.
Os: Mac OS Catalina 10.15.2

The readme suggests brew cask install apenngrace/vulkan/vulkan-sdk but I don't have a mac so I'm not sure.

Yes, that is what I did, but this led to the problems I described above. I hope somebody more Mac savvy will come by this issue and give some clue to what the solution might be.

You can allow this in settings:

Basically:

Try to run it
Go to that settings screen
Allow
Try to run it again, a different library will pop up with an issue
Allow again
repeat
You should also get dialogs with the "Open" option. Hit open in there.
After like three runs it should run

@terhechte Thanks, that did work. @Kethku, it is probably worthwhile to link this comment in the README for mac os x.

You can allow this in settings:

Basically:
* Try to run it

* Go to that settings screen

* Allow

* Try to run it again, a different library will pop up with an issue

* Allow again

* repeat

* You should also get dialogs with the "Open" option. Hit open in there.

* After like three runs it should run

I'm able to do this when running cargo run, but not when trying to click on the executable from a release build. That just crashes for me atm.

It worked for me on Mac OS Mojave 10.14.6 using the vulkan sdk installer from lunarg. I know it's not ideal, but it seems to work.

I'm able to do this when running cargo run, but not when trying to click on the executable from a release build. That just crashes for me atm.

I can't test this right now, but could you try right-clicking the executable and then saying "open"?

I'm able to do this when running cargo run, but not when trying to click on the executable from a release build. That just crashes for me atm.

I can't test this right now, but could you try right-clicking the executable and then saying "open"?

Yeah same thing. I installed the Vulkin sdk with brew cask install apenngrace/vulkan/vulkan-sdk

@terhechte adding it to the readme. I will watch this issue for future developments. Thanks so much for the investigation!

There is some talk about way we can switch to a library agnostic system which should remove the vulkan dependency for macos. May take a bit though

That would be? OpenGL? That is even more broken on macOS from what I have heard, Apple wants to push the Metal API.
And OpenGL is hit and miss on Windows + very dependent on the driver that is running on that system. There is a reason why all major Browser Developer bundle ANGLE for WebGL Support on Windows.

We're looking at wgpu

Which has targets for directx, vulkan, and metal. Its still preliminary. Conversation is happening here: https://gitter.im/neovide/community

If you want to keep using Vulkan there's MoltenVK for macOS, which is an implementation of the Vulcan API on top of Metal

Very interesting. Is it a drop in replacement? When installed does it run normally or do I have to add explicit support to my app somehow?

Ah its a for pay product. That kinda disqualifies it

It's license is Apache 2.0. But it is not a drop-in replacement though.
I'll try what @baileyn did on my machine. Maybe Neovide could be statically linked against Vulkan, at least for macOS.

This is well outside my area of knowledge. If someone wanted to attempt something like that is greatly appreciate it
Sent with GitHawk

I'm trying to do it, but I haven't been successful. @baileyn could you describe what you did, please? I would like to try that on my machine

I'm sorry. All I did was download the latest SDK for Mac from lunarg. After that, I just compiled again with cargo build --release.
It's possible our issues were slightly different?

I just pushed an opengl backend to the main branch. Would folks struggling with this issue be willing to try it?

Does anyone have an idea of why I may be getting this error?
note: Undefined symbols for architecture x86_64:
        "____chkstk_darwin", referenced from:
            SkBlurMaskFilterImpl::filterRRectToNine(SkRRect const&, SkMatrix const&, SkIRect const&, SkMaskFilterBase::NinePatch*) const in libskia_bindings-f53e790636e34b91.rlib(libskia.SkBlurMF.o)
            SkBlurMaskFilterImpl::filterRectsToNine(SkRect const*, int, SkMatrix const&, SkIRect const&, SkMaskFilterBase::NinePatch*) const in libskia_bindings-f53e790636e34b91.rlib(libskia.SkBlurMF.o)
            SkCopyStreamToData(SkStream*) in libskia_bindings-f53e790636e34b91.rlib(libskia.SkStream.o)
            SkShaderMF::filterMask(SkMask*, SkMask const&, SkMatrix const&, SkIPoint*) const in libskia_bindings-f53e790636e34b91.rlib(libskia.SkShaderMaskFilter.o)
            SkPerlinNoiseShaderImpl::PaintingData::init(float) in libskia_bindings-f53e790636e34b91.rlib(libskia.SkPerlinNoiseShader.o)
            SkPicture::backport() const in libskia_bindings-f53e790636e34b91.rlib(libskia.SkPicture.o)
            OpDebug(SkPath const&, SkPath const&, SkPathOp, SkPath*) in libskia_bindings-f53e790636e34b91.rlib(libskia.SkPathOpsOp.o)
            ...
      ld: symbol(s) not found for architecture x86_64
      clang-7: error: linker command failed with exit code 1 (use -v to see invocation)

That is a very strange error. Is it possible a debugger is trying to attach? I'm guessing thats hiding the actual error...

@Kethku "I just pushed an opengl backend to the main branch. Would folks struggling with this issue be willing to try it?" Does that mean we don't need Vulkan anymore? (I have had issues installing it on my system)

@reportaman yes. Unfortunately there were some issues. This code is now held in the opengl branch.

I think this has been fixed in main. Please reopen if you come back to this and the issue remains.


1.2.0 Release Candidate

Fixes JIRA ticket DSD-1151
This PR does the following:

A feature branch for 1.2.0 for AlphabetFilter, AudioPlayer, and TagSet.

Steps for release

Once this PR is approved, this won't be merged into development.
An npm version 1.2.0-rc will be created.
This version will be used and tested in Turbine.
Once QA-approved, we'll merge this into development and then release the production-ready version.

How has this been tested?
Locally.
Accessibility concerns or updates

Checklist:

[ ] I have updated the Storybook documentation accordingly.
[ ] I have added relevant accessibility documentation for this pull request.
[ ] All new and existing tests passed.

Front End Review:

[ ] Review the Vercel preview deployment once it is ready.

@EdwinGuzman AudioPlayer looks good.

The npm package 1.2.0-rc has been released. Once it's been QA-approved, this PR will be merged. Until then, we'll keep it open.


Unable to obtain refresh token as suggested in Authentication.md

Hello, script from a step 22 from https://github.com/GabrielDuarteM/semantic-release-chrome/blob/master/Authentication.md fails with an error:
16:46:24.481 Content Security Policy: The page’s settings blocked the loading of a resource at https://accounts.google.com/o/oauth2/token (“default-src”). debugger eval code:9:25
16:46:24.482
Promise { <state>: "rejected", <reason>: TypeError }

16:46:24.483
Uncaught (in promise) TypeError: NetworkError when attempting to fetch resource.
    <anonymous> debugger eval code:9
    <anonymous> debugger eval code:39
[debugger eval code:9:26](chrome://devtools/content/webconsole/debugger%20eval%20code)
    <anonymous> debugger eval code:36
    AsyncFunctionThrow self-hosted:811
    (Async: async)
    <anonymous> debugger eval code:39
    getEvalResult resource://devtools/server/actors/webconsole/eval-with-debugger.js:242
    evalWithDebugger resource://devtools/server/actors/webconsole/eval-with-debugger.js:166
    evaluateJS resource://devtools/server/actors/webconsole.js:1131
    evaluateJSAsync resource://devtools/server/actors/webconsole.js:1022
    makeInfallible resource://devtools/shared/ThreadSafeDevToolsUtils.js:103

Encountered same issue with Firefox: https://stackoverflow.com/questions/56486825/how-to-fix-content-security-policy-the-page-s-settings-blocked-the-loading-of
(I switched to Chrome and everything worked)

Hey @nikicat @Semro 👋
This looks like it's happening because of CORS, are you running that on the localhost page that opened on step 18, or are you doing that on a different page?
It should work if you do this on localhost (should also work on a new tab).


update error using sqlalchemy

Hi.
I use your library (0.5.5) with sqlalchemy (1.0.12) and get that situation:
`2016-04-22 16:26:24,691 INFO sqlalchemy.engine.base.Engine UPDATE orders SET comment=:comment, ts_last_activity=:ts_last_activity, state=:state, previous_state=:previous_state, flags=:flags WHERE orders.id = :orders_id
2016-04-22 16:26:24,691 INFO sqlalchemy.engine.base.Engine {'comment': '"last_activity"=>"2016-04-22 13:26"', 'orders_id': 2000205, 'previous_state': 500, 'state': 300, 'flags': 2048, 'ts_last_activity':<PHONE_NUMBER>}
2016-04-22 16:26:24,790 INFO sqlalchemy.engine.base.Engine ROLLBACK
StaleDataError: UPDATE statement on table 'orders' expected to update 1 row(s); -1 were matched.`
Here I'm checking the session state:
>>> SessionVertica.identity_map
<sqlalchemy.orm.identity.WeakInstanceDict object at 0x7f43c5e46f90>
>>> SessionVertica.identity_map.check_modified()
True
>>> SessionVertica.identity_map.keys()
[(<class 'hasoffers.core.model.order.S'>, (2000205,))]
>>> recounted_base.id
2000205

As you see, I have rows for update, but i get the error above.
Do you have any idea, what does it means?

Here is the Mike Bayer's comment:

this is an issue in the vertica_python SQLAlchemy adapter you're using (I don't know which one you are using). The database driver is not reporting a valid number for "rows updated" and the adapter must configure its "supports_sane_rowcount" flag to not expect this feature to work. you'd need to report it against that adapter's project.

Can you implement the feature?

FYI - I had a successful update statement using sqlalchemy-vertica-python with the following patch
https://github.com/LocusEnergy/sqlalchemy-vertica-python/pull/31


modules: dataman: Optimize memory usage

Use the size of each item type instead of the biggest one.
In AeroFC that runs is constrained mode it was using 7860 bytes
and now it uses 6930 bytes almost 1KB less.

I have not fully reviewed this - but what happens if you already have a mission stored and its re-loaded after this diff is applied? Did you guard against that?

The DM_KEY_COMPAT will not match and it will erase all missions.
I was thinking that is fine to lose missions...
Well I can change the size of each item to the previous one and when a macro is define use this new size.

As long as you have tested that it deletes the mission that's fine.

As long as you have tested that it deletes the mission that's fine.

Tested with file backend over STIL and RAM_FLASH over AeroFC.

ping?

ping2?
Or this will be left to be integrated after the PX4 pro release?

We plan to merge this after the next release.

ping?

Thanks =D


Fullscreen tearing still occurs with Vsync On

Tearing still occurs with Vsync On when fullscreen.
Vsync On works in windowed mode.
Godot version:

3.0.2.stable.mono.official
OS/device including version:
Windows 8.1 64bit, 8GB AMD FX 6350 6 core

Graphics Chipset
AMD Radeon HD 7700 Series
Memory Size 1024 MB
Radeon Software Version 17.4.4
Issue description:

Tearing still occurs with Vsync On when fullscreen.
Vsync On works in windowed mode.
Steps to reproduce:
Basic 3D scene @ various resolutions with vsync on and off
https://www.youtube.com/watch?v=-D-IcbsdT04
Minimal reproduction project:

Basic3DTearing.zip

Seems to be fixed in 3.1 Alpha


Esp 8266 over usb

Hi,
very cool project and everything is working fine. But I like to make a second build without the need of a wireless connection (WLAN). Is there a easy way to do this, so that I only have to connect the ESP over USB to my Laptop (with python and co.)?

I could probably do the Arduino side of it, but python is not my best language so I would need some help getting that working but it should be possible.

The ESP8266 could, at least in theory, use the virtual serial port to communicate with the host PC. This isn't supported by this project, but I would consider a pull request if you made this work. The baud rate would likely need to be fairly high in order to make this work.


specify how to handle multiple olm sessions with the same device

Fixes https://github.com/matrix-org/matrix-doc/issues/892

Yup, the current behaviour does not match the proposed spec, so the behaviour will need to be changed.


fix breadcrumb styling

Before and after:

Please hold off reviewing. Fixing ...

OK ready again!

awww yiss

Although could this maybe be an iconfont thing? cc @thebearjew

@nathunsmitty Thanks for the funny comic 😂I don't think iconfont was broken. This is likely from a previous refactor.

@nathunsmitty actually I might have jumped the gun. It seems the download cards are broken too. Hmm.


Correct cheat sheet typo in fr language

Fix "cheat sheet" typo in fr lang.
cheet sheet => cheat sheet

There still a typo. Contribs welcome !


Update dind

- What I did
Fixed a typo.
- How I did it
- How to verify it
Its a document. Nothing to verify.
- Description for the changelog
Fixed a typo.

- A picture of a cute animal (not mandatory but encouraged)
Typo

Please sign your commits following these rules:
https://github.com/docker/docker/blob/master/CONTRIBUTING.md#sign-your-work
The easiest way to do this is to amend the last commit:
$ git clone -b "master" git@github.com:srinsriv/docker.git somewhere
$ cd somewhere
$ git commit --amend -s --no-edit
$ git push -f

Ammending updates the existing PR. You DO NOT need to open a new one.

LGTM 🐯


Swiftlint support all the arguments

$ swiftlint help lint
Print lint warnings and errors (default command)
[--path (string)]
the path to the file or directory to lint
[--use-stdin]
lint standard input
[--config (string)]
the path to SwiftLint's configuration file
[--strict]
fail on warnings
[--use-script-input-files]
read SCRIPT_INPUT_FILE* environment variables as files
[--benchmark]
save benchmarks to benchmark_files.txt and benchmark_rules.txt
[--reporter (string)]
the reporter used to log errors and warnings
[--quiet]
don't print status logs like 'Linting ' & 'Done linting'

This is not on our radar, but keeping this open for upvotes.

Perhaps you could move this into a plugin to be developed seperatley ?

@jcampbell05 That seems like the best path for this! Thanks for following up. Hope you have a great weekend coming up 👍


Fix runner regexp with grep

In order to remove perl dependency changed runner regexp.

retest this please

[WARNING]: provided hosts list is empty, only localhost is available
PLAY [all] ********************************************************************
skipping: no hosts matched
PLAY RECAP ********************************************************************


docker-compose.yaml file using deprecated storage.tsdb.retention replace with 'storage.tsdb.retention.time

warn deprecation_notice="'storage.tsdb.retention' flag is deprecated use 'storage.tsdb.retention.time'

@raekins what versions of docker and prometheus are you using?
BTW - you could always raise a PR yourself to fix this...


[BUG] typing doesn't have Literal

Describe the bug
A clear and concise description of what the bug is.
https://github.com/HazyResearch/meerkat/blob/main/meerkat/interactive/app/src/lib/component/abstract.py#L7
In this line, the Literal type is imported from typing but typing doesn't have Literal, it should be typing_extensions.
This will result an import error.

Thanks for the bug report, #286 should address this when it's merged into main. I suggest using Py 3.8+ in the meantime

Merged into main, you should be able to use it right now with a direct clone + install from main. Otherwise this will be in our next release (which will go out in the next 24 hours).

we pushed up the latest patch, which includes this fix:
pip install --upgrade meerkat-ml

Thanks for fixing this!  We will definitely try in our next release cycle.


Tokio upgrade

This is a superset of https://github.com/graphql-rust/juniper/pull/849 because I don't have permission to update that branch's PR (or my git-fu isn't good enough).

The reason why the actix stuff is failing on CI is that CI runs cargo test --all-features, which enables the ws integration

This will close https://github.com/graphql-rust/juniper/issues/851 I think.

Could someone explain what this PR is waiting for or blocked by? Can I somehow help to finish this and get this merged? What still has to happen here?

@LukasKalbertodt I think PR https://github.com/graphql-rust/juniper/pull/912 is in a better shape than this one. It's basically missing a rebase to incorporate the fixes for the nightly compiler. If it gets merged is a different question.

Landed as https://github.com/graphql-rust/juniper/pull/912


RV32EMC variant

We are doing thesis on customization of Ibex core. We have implemented RV32IMC instructions successfully but going ahead we need to modify instruction set to RV32 EMC (16 registers), so can you please tell whether Ibex will support RV32EMC instructions.

Hi @subhajit26
Yes Ibex should support configuration, but it is not currently tested by any of our DV setups.

Can you confirm whether this DV setup corresponds to the DV folder inside ibex repo or DV instruction generator inside vendor directory.
As I have already said that going ahead we will be using RV32EMC so can you please give me some advice on how to setup the Ibex configuration for RV32EMC . Basically I want to know where do we need to make modifications regarding Ibex core.

Both I think - we never enable that configuration, and I don't believe the instruction generator supports it
I'm not sure if this is what you are asking, but the core is configured by setting parameters. So wherever you instantiate the core: set RV32E to 1 and RV32M to ibex_pkg::RV32MFast, ibex_pkg::RV32MSingleCycle or ibex_pkg::RV32MSlow depending on which multiplier you want. The C extension is always enabled in Ibex.

As you have said that by instantiating the core we can change the variant may be RV32E or RV32I , so going ahead when I perform synthesis will the synthesis tool be able to recognize the difference in variants because both the variants have different register count. or will it give same result since I am sure how the configuration is done.

I'm not sure I understand the question, but if you synthesize both configurations you should see a fairly big area difference (the E extension removes half of the register file).

I'm closing this issue because I believe the question has been answered. Please re-open or file a new issue if we've missed something.

I'm closing this issue because I believe the question has been answered. Please re-open or file a new issue if we've missed something.


Test Build functionality od the ASMD 4.5.3--Echo

Describe the problem
Test tools\build. Commit all build deliverables but exclude any modification of the Opc.Ua.*.Model.xml files.
The results will be compared with results generated by the new version of the ASMD.
Describe the solution you'd like
Commit the generated result one by one and after committing check the appropriate check box.
After finishing pr the result to https://github.com/mpostol/UA-Nodeset.
It is a blocker for mpostol/UA-Nodeset#88
List of models that the task is to be applied to

[x] ADI
[x] AML
[ ] AnsiC
[x] AutoID
[x] CAS
[x] CNC
[x] CommercialKitchenEquipment
[x] CSPPlusForMachine
[x] DEXPI
[x] DI
[ ] DotNet
[x] FDI
[x] FDT
[ ] GDS
[x] I4AAS
[x] IA
[x] IEC61850
[x] IJT
[x] IOLink
[x] ISA-95
[x] ISA95-JOBCONTROL
[x] Machinery
[x] MachineTool
[x] MachineVision
[x] MDIS
[x] MTConnect
[x] OpenSCS
[x] PackML
[x] PADIM
[ ] PlasticsRubber
[x] PLCopen
[x] PNEM
[x] POWERLINK
[x] PROFINET
[x] Pumps
[x] Robotics
[x] Safety
[x] Scales
[ ] Sercos
[x] TMC
[x] Weihenstephan

@mpostol , i checked files


java.io.IOException: Supplied file is a not an existing directory!

Hello Olaf!
I getting this error without publishTo := sonatypePublishToBundle.value in build.sbt. What I'm missing?
java.io.IOException: Supplied file /home/runner/work/leftpad/leftpad/target/sonatype-staging/0.1.6-SNAPSHOT is a not an existing directory!
272
	at org.sonatype.spice.zapper.fs.AbstractDirectory.<init>(AbstractDirectory.java:32)
273
	at org.sonatype.spice.zapper.fs.DirectoryIOSource.<init>(DirectoryIOSource.java:68)

does it happen even with non-SNAPSHOTs?

I have the same issue with -SNAPSHOT versions, works fine for regular ones.
@asakaev , have you able to find any workaround for this?

Thank you for reporting! This looks related to https://github.com/xerial/sbt-sonatype/issues/103 can you check if define publishTo in build.sbt? Custom publishTo settings should be removed, they're defined by sbt-sonatype

scala-exercises libraries are also experiencing this issue. I tried specifying the publishTo setting, without success either.
Have you found any workaround for this issue? Any help is appreciated.

@juanpedromoreno what happens if you remove publishTo from your settings?

In the last attempt, I removed it, but I got the same result.

@juanpedromoreno Looking at your build.sbt https://github.com/scala-exercises/exercises-template/blob/7c6f96a9be3368490ffd647c39bf43859c4c25a5/build.sbt , some thoughts

add skip in publish := true to the toplevel, this might fix the issue
you may be missing several settings from https://github.com/olafurpg/sbt-ci-release#sbt

inThisBuild(List(
  organization := "com.geirsson",
  homepage := Some(url("https://github.com/scalameta/sbt-scalafmt")),
  licenses := List("Apache-2.0" -> url("http://www.apache.org/licenses/LICENSE-2.0")),
  developers := List(
    Developer(
      "olafurpg",
      "Ólafur Páll Geirsson",
<EMAIL_ADDRESS>      url("https://geirsson.com")
    )
  )
))

Thanks @olafurpg !
I think that was the problem, I did a couple of new commits: 1 and 2. And seemed to work.
I thought skip in publish := true only affects the sbt root module. It seems this has changed recently (I've been using this way for a long time now 🤔  ).
Again, thanks for your help!

BTW, some of the missing settings you have mentioned are automatically being provided by this amazing plugin by @alejandrohdezma :)

Hello any suggestion because I am facing the same issue for release a tag.

I have the issue when I cut a release tag. It has been working all this while.

This is the log:
[info] 	published lagompb-core_2.13 to /home/travis/build/super-flat/lagom-pb/target/sonatype-staging/0.3.0/io/superflat/lagompb-core_2.13/0.3.0/lagompb-core_2.13-0.3.0-javadoc.jar.asc
[info] 	published lagompb-core_2.13 to /home/travis/build/super-flat/lagom-pb/target/sonatype-staging/0.3.0/io/superflat/lagompb-core_2.13/0.3.0/lagompb-core_2.13-0.3.0-sources.jar.asc
[info] 	published lagompb-core_2.13 to /home/travis/build/super-flat/lagom-pb/target/sonatype-staging/0.3.0/io/superflat/lagompb-core_2.13/0.3.0/lagompb-core_2.13-0.3.0-javadoc.jar
[info] 	published lagompb-core_2.13 to /home/travis/build/super-flat/lagom-pb/target/sonatype-staging/0.3.0/io/superflat/lagompb-core_2.13/0.3.0/lagompb-core_2.13-0.3.0.pom
[info] 	published lagompb-core_2.13 to /home/travis/build/super-flat/lagom-pb/target/sonatype-staging/0.3.0/io/superflat/lagompb-core_2.13/0.3.0/lagompb-core_2.13-0.3.0.jar
[info] 	published lagompb-core_2.13 to /home/travis/build/super-flat/lagom-pb/target/sonatype-staging/0.3.0/io/superflat/lagompb-core_2.13/0.3.0/lagompb-core_2.13-0.3.0.pom.asc
[info] 	published lagompb-core_2.13 to /home/travis/build/super-flat/lagom-pb/target/sonatype-staging/0.3.0/io/superflat/lagompb-core_2.13/0.3.0/lagompb-core_2.13-0.3.0-sources.jar
[info] 	published lagompb-core_2.13 to /home/travis/build/super-flat/lagom-pb/target/sonatype-staging/0.3.0/io/superflat/lagompb-core_2.13/0.3.0/lagompb-core_2.13-0.3.0.jar.asc
[success] Total time: 41 s, completed Jul 2, 2020 7:19:44 PM
[info] Reapplying settings...
[info] set current project to lagompb (in build file:/home/travis/build/super-flat/lagom-pb/)
[warn] .env file not found (fileName=.env), no .env environment configured.
2020-07-02 19:19:47.095Z  info [finagle] Using bridged scheduler with 2 workers
2020-07-02 19:19:47.107Z  info [finagle] Finagle version 20.3.0 (rev=e3fd6d1bd88c9ed7edeb98a6598e23800924c633) built at 20200308-110321
2020-07-02 19:19:48.335Z  info [SonatypeService] sonatypeRepository  : https://oss.sonatype.org/service/local  - (SonatypeService.scala:24)
2020-07-02 19:19:48.342Z  info [SonatypeService] sonatypeProfileName : io.superflat  - (SonatypeService.scala:25)
[info] Preparing a new staging repository for [sbt-sonatype] lagompb 0.3.0+0-4a8849f9+20200702-1919-SNAPSHOT
2020-07-02 19:19:48.356Z  info [SonatypeClient] Reading staging repository profiles...  - (SonatypeClient.scala:94)
2020-07-02 19:19:49.749Z  info [SonatypeClient] Reading staging profiles...  - (SonatypeClient.scala:106)
2020-07-02 19:19:51.684Z  info [SonatypeService] No previous staging repository for [sbt-sonatype] lagompb 0.3.0+0-4a8849f9+20200702-1919-SNAPSHOT was found  - (SonatypeService.scala:96)
2020-07-02 19:19:53.068Z  info [SonatypeClient] Creating a staging repository in profile io.superflat with a description key: [sbt-sonatype] lagompb 0.3.0+0-4a8849f9+20200702-1919-SNAPSHOT  - (SonatypeClient.scala:112)
2020-07-02 19:20:30.869Z  info [SonatypeClient] Created successfully: iosuperflat-1004  - (SonatypeClient.scala:125)
2020-07-02 19:20:30.902Z error [Sonatype]
java.io.IOException: Supplied file /home/travis/build/super-flat/lagom-pb/target/sonatype-staging/0.3.0+0-4a8849f9+20200702-1919-SNAPSHOT is a not an existing directory!
	at org.sonatype.spice.zapper.fs.AbstractDirectory.<init>(AbstractDirectory.java:32)
	at org.sonatype.spice.zapper.fs.DirectoryIOSource.<init>(DirectoryIOSource.java:68)
	at org.sonatype.spice.zapper.fs.DirectoryIOSource.<init>(DirectoryIOSource.java:59)
	at org.sonatype.spice.zapper.fs.DirectoryIOSource.<init>(DirectoryIOSource.java:50)
	at xerial.sbt.sonatype.SonatypeClient.$anonfun$uploadBundle$1(SonatypeClient.scala:260)
	at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:23)
	at scala.util.Try$.apply(Try.scala:213)
	at wvlet.airframe.control.Retry$RetryContext.runInternal(Retry.scala:265)
	at wvlet.airframe.control.Retry$RetryContext.run(Retry.scala:253)
	at xerial.sbt.sonatype.SonatypeClient.uploadBundle(SonatypeClient.scala:245)
	at xerial.sbt.sonatype.SonatypeService.uploadBundle(SonatypeService.scala:71)
	at xerial.sbt.Sonatype$.$anonfun$sonatypeBundleRelease$2(Sonatype.scala:159)
	at xerial.sbt.Sonatype$.withSonatypeService(Sonatype.scala:402)
	at xerial.sbt.Sonatype$.$anonfun$sonatypeBundleRelease$1(Sonatype.scala:155)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at xsbt.boot.Launch$$anonfun$run$1.apply(Launch.scala:111)
	at xsbt.boot.Launch$.withContextLoader(Launch.scala:130)
	at xsbt.boot.Launch$.run(Launch.scala:111)
	at xsbt.boot.Launch$$anonfun$apply$1.apply(Launch.scala:37)
	at xsbt.boot.Launch$.launch(Launch.scala:119)
	at xsbt.boot.Launch$.apply(Launch.scala:20)
	at xsbt.boot.Boot$.runImpl(Boot.scala:56)
	at xsbt.boot.Boot$.main(Boot.scala:18)  - (Sonatype.scala:408)
restoring stty: 500:5:bf:8a3b:3:1c:7f:15:4:0:1:0:11:13:1a:0:12:f:17:16:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
The command "sbt ci-release" exited with 1.

@Tochemey did you try adding skip in publish := true in the toplevel of build.sbt? Similar to https://github.com/olafurpg/sbt-ci-release/issues/122#issuecomment-651887786
I want to note that this is not an sbt-ci-release issue. This plugin doesn't do much except depend on several other plugins and change a few default sbt settings.

@olafurpg I got it deployed. For some strange reason I observed that the lagompb 0.3.0+0-4a8849f9+20200702-1919-SNAPSHOT instead of being a release tag was kind of snapshot which was causing issue. I did some few commits later on and then cut a new release tag and it did work. My suspicion goes to dynver.

@olafurpg sorry for commenting on a closed issue, didn't wanted to open a new one with the same topic.
Have read the documentation and also the issues raised related this problem and I know this issue is not directly related with sbt-ci-release but with its dependencies...
In my case I was experiencing this issue few weeks ago but somehow got resolved, this week has come back again and have no idea what to do now :(
Have already tried by adding the skip in publish := true adding inThisBuild is also there and there is no publishTo...
Maybe I am doing something silly, would be appreciated if you could just have a quick look whenever you can to see if you spot something.
This is the build.sbt and the actual failure.

I'm having the same issue as comment 122.
On master it works fine but when I'm creating a tag, in the log appears that it is creating an Snapshot and it can't find the folder. This snapshot is being pushed to Nexus by the way.
java.io.IOException: Supplied file /home/runner/work/big-data-types/big-data-types/target/sonatype-staging/0.0.0+95-bea793c3-SNAPSHOT is a not an existing directory!

I have tried with skip in publish := true but it still fails.
Here is the execution
Any idea of how did you solve it?
Thanks!


Very slow execution of unit tests and bloated binary size with

Hi John,
Thanks for fixing #429!
I just merged develop and unit tests pass, but they are incredibly slow to run.
I have not figured out the exact cause yet.
Running gcc 8.3.0 with these arguments for unit test builds:
g++ -g -I/home/elco/repos/firmware/lib/inc -I/home/elco/repos/firmware/platform -I. -ffunction-sections -Wall -Werror=deprecated-declarations -MD -MP -MF build/test/lib/test/cnl_bloat_test.o.d -DDEBUG_BUILD -D_SYS_WAIT_H_ -D_SYS_WAIT_H -pthread -g -fprofile-arcs -ftest-coverage -Wno-system-headers -DPLATFORM_ID=3 -isystem /home/elco/opt/boost/boost_1_65_0 -std=gnu++14 -c -o build/test/lib/test/cnl_bloat_test.o /home/elco/repos/firmware/lib/test/cnl_bloat_test.cpp

The code changes can be seen here:
https://github.com/BrewBlox/brewblox-firmware/pull/69/files#diff-c1737f314e443320c64aa66a367ed7d1
Builds here:
https://dev.azure.com/brewblox/brewblox/_build?definitionId=10&_a=summary
I use static_number now and updated the CNL submodule.
Compared to the code before the PR:

The embedded binary increases from 101924 to 117380.
The run time of the unit tests went from 38 seconds to 4 min 26s.

Is this just the cause of rounding changes?
I'll try profiling the tests and update this issue.

Profile of this test:
https://github.com/elcojacobs/brewblox-firmware/blob/feature/cnl-update/lib/test/FixedPoint_test.cpp
Profiled with valgrind using:
valgrind --tool=callgrind lib_test_runner [fixedpoint]
sudo apt-get install valgrind kcachegrind graphviz

Output:
callgrind.out.zip
Open with kcachegrind.
to_chars takes up 51%. Perhaps some side effect of catch tests. But at least it was a lot lighter before.

Is this just the cause of rounding changes?

It's possibly because of changes related to this fix, yes. You don't appear to have inlining enabled which is likely to heavily affect performance: there are about five levels of arithmetic operators and their supporting functions between the outer type and the native integers backing them. It's inlining which reduces this down to (ideally) close to integer performance.
Other than that, you may find you don't need all five of those layers. Given you're not performing rounding and assuming you don't require multi-word types, you may be able to get by with:
template<
        int Digits,
        int Exponent>
using saturated_elastic_fixed_point = cnl::fixed_point<
        cnl::overflow_integer<
                cnl::elastic_integer<
                        Digits,
                        int>,
                cnl::saturated_overflow_tag>,
        Exponent>;

Alternatively, there may legitimately be a performance regression that doesn't accompany additional functionality. I've not embarked on optimizing the deeply nested types yet as I'm still concentrating on correctness issues. Furthermore, to_chars is an especially demanding function which can probably be optimized a lot more and is missing a bunch of edge cases too.

@elcojacobs I've merged a change which might affect your bloat test either way (but hopefully for the better). It rearranges the nesting of the components in static_integer. Please let me know if it breaks anything or changes runtime performance.

Hi John, sorry only just had time to look at your latest develop branch.
I'm now getting a lot of compilation errors when mixing types of different precision, is this a change in design and should I cast to a common type myself before arithmetic operations?
See godbolt for my unit tests that fail to compile:
https://godbolt.org/z/CA5DWF
/opt/compiler-explorer/libs/cnl/include/cnl/_impl/../elastic_integer.h:333:36: error: call to function 'cast_to_common_type' that is neither visible in the template definition nor found by argument-dependent lookup


Compute link in description was broken

Compute link here was broken. I think this is the one you are trying to point out compute-constant.

You're right, the link is broken, I fixed it. Thank you for the feedback

computer: ^3.2.1


Bug: imageLibraryView.js Diplays Parent Images

When opening the imageLibraryView and executing openGallery(), the gallery is populated with original images. They should instead be populated with the 300px child image in order to speed things up and keep page loading time consistent.
While fixing this bug, the image_gallery TinyMCE plugin should also be reviewed to ensure the same bug isn't repeated there.

This has been fixed. Currently in the unstable branch only. Will be included in the v0.00.05+ release.


feat: remember last selected environment

Description
Remember and load last selected environment on opening the collection.
Addressing #1598 #1652
Contribution Checklist:

[x] The pull request only addresses one issue or adds one feature.
[x] The pull request does not introduce any breaking changes
[x] I have added screenshots or gifs to help explain the change if applicable.
[x] I have read the contribution guidelines.
[x] Create an issue and link to the pull request.

https://github.com/usebruno/bruno/assets/76877078/91f312c8-1df1-4a21-84db-caa15827a1a4

Nice, Hope this gets merged, has been bothering me.
Thanks!

I also can't wait to have this change merged, thank you @therealrinku

Any chance to get this merged? Really missing this feature :)

This fixes a big annoyance. Can't wait!

+1

@lohxt1  can this PR get some attention please? Tagging you because I don't know who else to tag.
This is a quite useful feature.

There is two PR for that feature. https://github.com/usebruno/bruno/pull/2238.
Could maintainer fix tests outputs to merge this ? Or required some work ? i can help

@therealrinku We need to make some adjustments to the PR.
We're planning to memoize more aspects in the future, like restoring the opened tabs in the collection that were open before the app was closed. Currently, the PR sets up an environments store. I recommend setting up a collection-snapshot store instead, which would hold data such as lastSelectedEnvironment, openTabs, etc.
For now, I'd suggest focusing this PR on just remembering the last selected environment, and we can address the tab restoration in a separate PR.

Hey @therealrinku please check the last comment by Anoop, if you need any help, I can try giving it a shot. I'm new to the codebase, just been a user of bruno more than a dev, but I can have a crack if you want.

This functionality has been delivered as a part of #3215
Closing this PR


Documentation for AzureFunctionApp task and managed identity

It is now possible to configure a function app with a managed identity instead of a connection string, which is great! But it does not appear to be supported by the devops AzureFunctionApp task :(
We have a function app with system assigned managed identity, where the managed identity is granted the appropriate permissions and is configured with the following in app settings:
AzureWebJobsStorage__accountName: <storageAccountName>

This appears to work fine in the app. When we try to deploy via azure devops, we get the error:
Error: Unable to find the storage account associated with the function app

Indeed, looking at the code for the task, it only checks for AzureWebJobsStorage.
It would be good if the documentation explicitly said that using the task does not support host storage connections using managed identity and that it requires AzureWebJobsStorage in the app settings. It would also be good to have a description of the Unable to find the storage account associated with the function app error.
It would also be great if the error message were more descriptive, i.e. "Unable to find the storage account associated with the function app. App setting AzureWebJobsStorage not found" or similar, to avoid the wild goose chase I have been on.
Even better would be if we could finally get away from copying connection strings everywhere, but it appears that day has not yet come.
Jeff

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

ID: f82ad1fa-cee5-c5c6-7050-21aaec6b714a
Version Independent ID: 617316ff-2dab-d021-880f-c1c79313c320
Content: Azure Function App task - Azure Pipelines
Content Source: docs/pipelines/tasks/deploy/azure-function-app.md
Product: devops
Technology: devops-cicd-tasks
GitHub Login: @azooinmyluggage
Microsoft Alias: atulmal

@jeffw-wherethebitsroam -- Jeff, thank you for your thorough feedback.  I am investigating.

Is this correct?
This is very frustrating


docker-musketeers ecr updates

Bump golang image
Add ECR Helper to the build

Describe the big picture of your changes here to communicate to the maintainers why we should accept this pull request. If it fixes a bug or resolves a feature request, be sure to link to that issue.
Types of changes
What types of changes does your code introduce to <repo_name>?
Put an x in the boxes that apply

[x] Bugfix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] Documentation Update (if none of the other choices apply)

Checklist
Put an x in the boxes that apply. You can also fill these out after creating the PR. If you're unsure about any of them, don't hesitate to ask. We're here to help! This is simply a reminder of what we are going to look for before merging your code.

[ ] I have read the CONTRIBUTING.md doc.
[ ] I have added necessary documentation (if appropriate).
[ ] Any dependent changes have been merged and published in downstream modules.

Hey @jeremiasroma, make sure to include the ecr flag on the new version.


Installation Guide

The installation guide at https://sdk.operatorframework.io/docs/building-operators/helm/installation/ contains a bad link:

kubectl and access to a Kubernetes cluster of a [compatible version][k8s-version-compat].

@proegssilb Thanks for bringing this. #4941 would fix this.


There is no dist folder from npm package (v0.0.1)

Hi @imsun ,
We are cdnjs team, we'd like to host this library.
CDNJS host the files from upstream and make sure everything is intrusted,
but there is no dist folder from npm package (v0.0.1).
Could you please provide the gitment.browser.js & gitment.browser.js.map of v0.0.1 ?
This would be a great work.
If you have any suggestions, please let me know.
Thank you.
cdnjs/cdnjs#12420
cdnjs/cdnjs#12431

https://advance-esthetic.us/rf-facial-machines


[new: feature] Add apache dubbo shenyu-client-apache-dubbo example

#2652
Make sure that:

[ ] You have read the contribution guidelines.
[ ] You submit test cases (unit or integration tests) that back your changes.
[ ] Your local test passed mvn clean install -Dmaven.javadoc.skip=true.

Codecov Report

Merging #2659 (f10ff55) into master (a5a3203) will decrease coverage by 0.55%.
The diff coverage is n/a.

:exclamation: Current head f10ff55 differs from pull request most recent head 8531750. Consider uploading reports for the commit 8531750 to get more accurate results

@@             Coverage Diff              @@
##             master    #2659      +/-   ##
============================================
- Coverage     61.21%   60.65%   -0.56%
+ Complexity     4334     4298      -36
============================================
  Files           660      660
  Lines         18995    18992       -3
  Branches       1684     1683       -1
============================================
- Hits          11627    11519     -108
- Misses         6410     6531     +121
+ Partials        958      942      -16

Impacted Files
Coverage Δ

...ache/shenyu/plugin/grpc/cache/GrpcClientCache.java
68.75% <0.00%> (-31.25%)
:arrow_down:

...n/alibaba/dubbo/cache/AlibabaDubboConfigCache.java
43.75% <0.00%> (-31.25%)
:arrow_down:

...gin/apache/dubbo/cache/ApacheDubboConfigCache.java
43.03% <0.00%> (-29.12%)
:arrow_down:

...henyu/plugin/grpc/resolver/ShenyuNameResolver.java
44.68% <0.00%> (-18.09%)
:arrow_down:

...a/org/apache/shenyu/common/utils/VersionUtils.java
67.85% <0.00%> (-10.72%)
:arrow_down:

...apache/shenyu/admin/utils/ShenyuDictH2Trigger.java
63.63% <0.00%> (-9.10%)
:arrow_down:

...ache/shenyu/admin/utils/PluginHandleH2Trigger.java
63.63% <0.00%> (-9.10%)
:arrow_down:

.../apache/shenyu/admin/model/dto/BatchCommonDTO.java
50.00% <0.00%> (-7.15%)
:arrow_down:

...apache/shenyu/admin/model/dto/AuthPathWarpDTO.java
57.14% <0.00%> (-7.15%)
:arrow_down:

...org/apache/shenyu/admin/model/dto/AuthPathDTO.java
58.82% <0.00%> (-5.89%)
:arrow_down:

... and 28 more

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 a5a3203...8531750. Read the comment docs.


Polyfill bundle

I know we recommend polyfills to people, but sometimes we're using bits that would be extremely small polyfills and people would still have to hunt them down and include them separately (e.g. see discussion in #106 about element.closest()). I've also heard from a non-web dev colleague that the overhead of hunting down polyfills to use Vanilla JS is just way too much for someone not too immersed in this stuff.
What would you think about providing a bundle of polyfills that people could download along with Bliss? We could even have multiple bundles, for multiple levels of desired browser support!
They don't have to be homemade, they can be fetched from multiple sources (does gulp have a plugin that does this with URLs instead of local paths?) with appropriate credit.
Thoughts?

I think that might be a good idea. Just a cursory search for gulp remote src turns up some interesting results.

+1

+1

Do you want something like that ?
link

would this be done manually, or using NPM dependancies and having a separate gulp task to build it?
I think this is a great idea, and could be used in conjunction with hooking up travis with the whole suite of browsers we would like to support.

Maybe we can suggest a polyfill service like this: https://cdn.polyfill.io/v1/docs/?

oh, thats pretty nice...

we can probably upgrade the polyfill section to contain some of these links and update the browser support table in readme to reflect the real support of base bliss.

That’s awesome, nice find @TxHawks!! Yes, we should totally include isntructions about how to use this service instead of a polyfill bundle or list of polyfills!

Not a polyfill, but a ponyfill (see Ponyfoo.com):
var from = Array.from || Array.prototype.slice;

Then
// In the future, we should use Array.from() instead of Array.prototype.slice.call() -- solved!
return from.call(typeof expr == "string"? (context || document).querySelectorAll(expr) : expr || []);

Glad this convo is in the works.
The polyfill service does sound great, especially since you can specify ?features=[], but that'll leave it up the user to define this array, when it's Bliss that (currently) needs x,y,z polyfills.
Supplying our own poly/pony fills allows us to target specific minimum support, and we know what we'll need & when to drop them.
Also, at the end of the day, there'll be less of a footprint because the polyfills will be gzipped & there'll be fewer requests made.

@jbmonroe this is against Bliss’ philosophy. No polyfills in Bliss core code. Polyfills should be separate and Bliss should just use that native APIs. This is the philosophy of the project and it's not going to change.
That said, now that we recommend polyfill.io, we can use Array.from() just fine. I love this service!!

@LeaVerou hmm.. i guess i have trouble thinking of Bliss as just a native wrapper & not meant as a total code base/foundation and/or jquery replacement for the masses

If you want to use Bliss that way, just include polyfill.io as well and you're all set. :)
There is so much good polyfill code around, it's pointless to be inventing our own polyfills and burying them in Bliss code. It increases maintenance work & bloat, and decreases code quality & readability.


websockets client 2x slower than synchronous websocket-client 80K/s vs 40K/s

If I run it over the network it twise slower than sync client. But it faster if I run it on the same machine.
Sync client has same throughput on local host or over the network. 🤷♂
Is there any way to improve performance to be in line with sync client?
Test server:
import asyncio
from glob import glob
from pyexpat.errors import messages
import websockets
import time, uvloop

# uvloop makes asyncio 2-4x faster. - no difference
uvloop.install()

async def echo(websocket):
    while True:
        await websocket.send(f'{{"ev": "T", "sym": "MSFT", "x": 4, "i": "12345", "z": 3, "p": 114.125, "s": 100, "c": [ 0, 12 ], "t": {time.time_ns()/1000}, "q": 3681328}}')

async def main():
    async with websockets.serve(echo, "<IP_ADDRESS>", 8765):
        await asyncio.Future()  # run forever

asyncio.run(main())

sync client: https://github.com/websocket-client/websocket-client
Througput ~80K/s
import websocket
import time
from threading import Thread

messages=[]
def count():
    global messages
    while True:
        time.sleep(1)
        print(len(messages))
        messages =[]

def on_message(ws, message):
    global messages
    messages.append(message)
    # print(message)

ws = websocket.WebSocketApp("ws://rocket:8765", on_message=on_message)
t1 = Thread(target=count)
t1.start()
ws.run_forever(skip_utf8_validation=True)

asyncio client
Througput ~40K/s
Througput for byte messages: ~49K/s (utf-8 validation is disabled)
import asyncio,  orjson, time
import websockets
import uvloop

class Client:
    def __init__(self) -> None:
        self.messages = []

    async def count(self):
        while True:
            await asyncio.sleep(1)
            print(len(self.messages))
            self.messages=[]

    async def hello(self):
        async with websockets.connect("ws://rocket:8765", max_queue=100) as websocket:
            while True:
                msg = await websocket.recv()
                self.messages.append(msg)
                # print(msg)

    def start(self):
        uvloop.install()
        loop = asyncio.get_event_loop()
        loop.create_task(self.count())
        loop.create_task(self.hello())
        loop.run_forever()
Client().start()

Could you alter the server as follows:
PAYLOAD = 1024 * 1024 * "a"

async def echo(websocket):
    while True:
        await websocket.send(PAYLOAD)

then run the benchmark over the network (not locally) and tell me if websockets is still 2x slower than websocket-client?

With 1 mb payload it's actually twice faster, but in my case payload is ~150bytes
With 1kb payload sync client x2 faster 70K vs 30K

OK - that's what happens when you benchmark a library that implements compression vs. a library that doesn't. What if you disable compression in websockets with connect(compression=None)?
There's a bunch of other factors at play. Here you challenge websockets; but what's the overhead of asyncio? If you run an equivalent benchmark on a plain TCP connection, what happens?
What if you discarded 8 bytes from the connection (WebSocket header) and read the next 150 bytes? I'm pretty sure you could make this work and the benchmark would be faster.
Surely this sounds unreasonable; however, the level of functionality provided by websocket-client is halfway between this dumb implementation and what websocket does.
In short: benchmarking is tricky :-)
The default settings of websockets are considered reasonable for a wide range of use cases. They aren't micro-optimized for a single client connection receiving tens of thousands of messages per second — a pretty extreme use case compared to the sort of application WebSocket
Probably max_queue=100 helps if you care more about throughput that latency. Setting ping_interval=None might help. Tuning asyncio buffers might help too.
Finally, if you want to remove the sync I/O vs. async I/O difference — probably async incurs a performance penalty for your single threaded use case — you could try this branch: https://github.com/aaugustin/websockets/pull/885
This, plus disabling all features that websocket-client doesn't provide (and perhaps that you don't need), would provide a more meaningful benchmark.

Thank you for your help Aymeric!  Witth compression=None and ping_interval=None your client is faster, I'm getting ~90K/s 🚀

Well I'm relieved to hear this.
I was bracing for "cool, bro, now you're doing 42k/s instead of 40k/s; websocket-client still at 80k/s" :-)

Flagging as a documentation issue for adding to the FAQ.


Adding a new ESRGAN model for facial image super Resolution

Is your feature request related to a problem? Please describe.
Want to add a model which works best on facial images.
Describe the solution you'd like
Building a ESRGAN model from https://www.tensorflow.org/hub/tutorials/image_enhancing.
Describe alternatives you've considered
If this model doesn't work then work as good then we can consider other GAN models such as real-ESRGAN.
Additional context

go for it