Typescript fix for Randombytes

Hi
In a new typescript project when using bitbox-sdk by npm i bitbox-sdk:
import { BITBOX } from 'bitbox-sdk'
let bitbox = new BITBOX();
bitbox.Mnemonic.generate()

When using tsc to compile the typescript it reports these errors:
C:\Users\rouan\Desktop\work\tempbitbox>tsc test.ts
node_modules/bitbox-sdk/lib/Crypto.ts:1:8 - error TS1259: Module '"C:/Users/rouan/Desktop/work/tempbitbox/node_modules/@types/randombytes/index"' can only be default-imported using the 'esModuleInterop' flag

1 import randomBytes from "randombytes"
         ~~~~~~~~~~~

  node_modules/@types/randombytes/index.d.ts:10:1
    10 export = randomBytes;
       ~~~~~~~~~~~~~~~~~~~~~
    This module is declared with using 'export =', and can only be used with a default import when using the 'esModuleInterop' flag.

node_modules/bitbox-sdk/lib/Mnemonic.ts:5:8 - error TS1259: Module '"C:/Users/rouan/Desktop/work/tempbitbox/node_modules/@types/randombytes/index"' can only be default-imported using the 'esModuleInterop' flag

5 import randomBytes from "randombytes"
         ~~~~~~~~~~~

  node_modules/@types/randombytes/index.d.ts:10:1
    10 export = randomBytes;
       ~~~~~~~~~~~~~~~~~~~~~
    This module is declared with using 'export =', and can only be used with a default import when using the 'esModuleInterop' flag.

Found 2 errors.

I found that this works around the issue.

Thank you for the PR. I'm not a user of Typescript, so I'm not really sure how to evaluate this. I'll try to see if any of the other committers for this repo have the prerequisite knowledge to evaluate this PR.

Thank you for bringing this to our attention.  To get around this issue quickly I recommend adding
"esModuleInterop": true to your TypeScript configuration file.
We will look into resolving all of the TS issues and improving the TS coverage of this library very soon.

Thanks for the feedback. I'm quite sure I tried with "esModuleInterop": true and still had the same problem, so I figured it is worth fixing in this package so others won't get the same issue.

Any chance to get this merged?

Is there any blocker as why this hasn't been merged yet? esModuleInterop set to true breaks some other libraries and I'd like to avoid using it if possible.


stdenv: lib{gmp,mpc,mpfr,isl}-stage3: isPower64 -> no -fstack-protector

Description of changes
This is a more-focused version of the same change in #168983, which I am unable to reopen.  I closed that PR too hastily; unfortunately it is still needed on powerpc64le.
Stage3 of the stdenv bootstrap attempts to link libraries compiled for static linkage (i.e. *.a) into a dynamically-linked executable.  On powerpc64le this is not supported if the library compiled for static linkage was built using -fstack-protector, because that option requires -lssp (edit: or equivalent) for dynamically-linked executables but uses a different library (-lssp_nonshared) for statically-linked executables.
As a workaround, we simply disable -fstack-protector in the statically-linked lib{gmp,mpc,mpfr,isl}-stage3 derivations.  These are not visible from outside of stdenv.
Things done

Built on platform(s)

[x] powerpc64le-linux

[x] Tested basic functionality of all binary files (usually in ./result/bin/)
[X] Fits CONTRIBUTING.md.

Do you know why -lssp is needed for your target? Normally -lssp is not needed as libc is supposed to provide __stack_check_* helpers: https://gcc.gnu.org/git/?p=gcc.git;a=blob;f=gcc/configure.ac;h=446747311a6aec3c810ad6aa4190f7bd383b94f7;hb=HEAD#l6734.
I think gcc's libssp is considered to be a problematic implementation. The only target I know of that have to use it is mingw.

Do you know why -lssp is needed for your target? Normally -lssp is not needed as libc is supposed to provide __stack_check_* helpers: https://gcc.gnu.org/git/?p=gcc.git;a=blob;f=gcc/configure.ac;h=446747311a6aec3c810ad6aa4190f7bd383b94f7;hb=HEAD#l6734.

It isn't libssp.so that is missing, it's libssp_nonshared.a.  It's needed because our frankensteined build of gcc compiles the four gcc dependencies using --disable-shared --enable-static and then links the resulting .a libraries into a dynamic executable.
Nothing else in nixpkgs needs this workaround because nothing else in nixpkgs tries to do this.  I can currently build my entire workstation environment except for the web browsers (qutebrowser, firefox, ungoogled-chromium) on powerpc64le, and only stdenv's gcc experiences this problem.  I'd love to de-Frankensteinify the way we build stdenv's gcc, but getting things that touch the bootstrap stages merged takes multiple months.  I've come to understand that I have a limited budget of attention from people who are confident enough to merge those kinds of things, and I have to be careful how I spend that budget.
Here's the link failure if you're curious: https://github.com/NixOS/nixpkgs/pull/168983#issuecomment-1101878873

-lssp_nonshared is a part of gcc's libssp as well. I would expect it not to be needed either.

-lssp_nonshared is a part of gcc's libssp as well. I would expect it not to be needed either.

Then what do you think is the cause of the link failure?

-lssp_nonshared is a part of gcc's libssp as well. I would expect it not to be needed either.

Then what do you think is the cause of the link failure?

/nix/store/3icagz57flqg7z2dpihj4gadb8ng2xdv-binutils-2.35.2/bin/ld: /nix/store/9irfh44zfaadfv77mn306wnkbglf914s-mpfr-4.1.0/lib/libmpfr.a(mpfr-gmp.o):(.toc+0x8): undefined reference to `__stack_chk_guard'

I think it's a sign of gcc used to build mpfr was incorrectly configured to rely on libssp instead of using gcc's codegen and libc's helper. Do you have a full build.log of that gcc by chance? I'm specifically interested in AC_CACHE_CHECK(__stack_chk_fail in target C library, check report of gcc's config.log.
I suspect it's only a matter of building gcc with gcc_cv_libc_provides_ssp=yes (explicit --disable-libssp flag). My guess is that gcc was configured without libc headers presence (explicit --disable-libssp flag is needed). Not sure if it's bootstrap-tools gcc or an early gcc.
Does current nixpkgs master fail as is on bootstrap? I'm currently building nix build -f. lv --arg localSystem '{ config = "powerpc64le-linux"; }' to have something to debug locally, but it will take a few hours if think don't break earlier.

If I'm looking at the nix-store --query --graph $(nix-instantiate -A stdenv --arg localSystem '{ config = "powerpc64le-linux"; }') output correctly. mpfr/mpc gets rebuild in stage3 by stage3-stdenv. stage3-stdenv uses stage2's glibc (built), stage1's binutils (built) and bootstra-tools' gcc (not yet built).
I think it means bootstrap-tools's gcc needs a fix. Do you know how it was built? Cross-compiled or built natively?

Meanwhile reproduced the same build failure:
nix build -f. lv --arg localSystem '{ config = "powerpc64le-linux"; }'
error: builder for '/nix/store/52m90fywbvk0cnxkzjn4h923cx18iwcl-gcc-10.4.0.drv' failed with exit code 2;
       last 10 log lines:
       > /nix/store/4ni1ykaajr6shpvsakkjlslw0aabsl9p-binutils-2.38/bin/ld: /nix/store/2xypdl9r3ily73ksl6dgqmg0ymb5z313-mpfr-stage3-4.1.0/lib/libmpfr.a(mul.o):(.toc+0x0): more undefined references to `__stack_chk_guard' follow
       > collect2: error: ld returned 1 exit status
       > make[3]: *** [../../gcc-10.4.0/gcc/c/Make-lang.in:85: cc1] Error 1
       > rm gcc.pod
       > make[3]: Leaving directory '/build/build/gcc'
       > make[2]: *** [Makefile:4794: all-stage2-gcc] Error 2
       > make[2]: Leaving directory '/build/build'
       > make[1]: *** [Makefile:22336: stage2-bubble] Error 2
       > make[1]: Leaving directory '/build/build'
       > make: *** [Makefile:22540: bootstrap] Error 2
       For full logs, run 'nix log /nix/store/52m90fywbvk0cnxkzjn4h923cx18iwcl-gcc-10.4.0.drv'.

And indeed it's a bootstrap-tools' gcc:
$ nix develop -i /nix/store/52m90fywbvk0cnxkzjn4h923cx18iwcl-gcc-10.4.0.drv
bash-5.1$ dev>gcc -v
Using built-in specs.
COLLECT_GCC=/nix/store/7wsy2r3f4ffd123gy320d20ny0zjdjjj-bootstrap-tools/bin/gcc
COLLECT_LTO_WRAPPER=/nix/store/7wsy2r3f4ffd123gy320d20ny0zjdjjj-bootstrap-tools/bin/../libexec/gcc/powerpc64le-unknown-linux-gnu/10.3.0/lto-wrapper
Target: powerpc64le-unknown-linux-gnu
Configured with:
Thread model: posix
Supported LTO compression algorithms: zlib
gcc version 10.3.0 (GCC)

We can poke at it directly:
bash-5.1$ dev>printf "int main(){}" | gcc -S -x c - -o - -fstack-protector-all | fgrep stack
        .quad   __stack_chk_guard
        bl __stack_chk_fail
        .section        .note.GNU-stack,"",@progbits

The problem here is presence of __stack_chk_guard in generated code. That should be a good test for early toolchain test. Here is how libc/kernel based references look like (x86_64):
$ printf "int main(){}" | gcc -S -x c - -o - -fstack-protector-all | fgrep stack
        call    __stack_chk_fail
        .section        .note.GNU-stack,"",@progbits

I'll check what cross-build yields first: nix build -f ./pkgs/stdenv/linux/make-bootstrap-tools-cross.nix powerpc64le.

Confirmed it's an instance of https://github.com/NixOS/nixpkgs/issues/113977 :
$ nix log -f pkgs/stdenv/linux/make-bootstrap-tools-cross.nix powerpc64le.bootGCC | fgrep __stack_chk_fail
checking __stack_chk_fail in target C library... no
checking __stack_chk_fail in target C library... no

Looking at why that check fails.

A side-effect of missing glibc version detection:

`gcc-debug-powerpc64le-unknown-linux-gnu> checking for target glibc version... 0.0

It's supposed to be a simple features.h grep (header is present):
https://gcc.gnu.org/git/?p=gcc.git;a=blob;f=gcc/configure.ac;h=446747311a6aec3c810ad6aa4190f7bd383b94f7;hb=HEAD#l5773
But  something fails. I'll keep digging.

Thanks for digging into this; please don't be put off by my short reply below -- I have to leave the office in a few minutes so I'm going to reply to the low-hanging fruit and write a more detailed response later.

I think it's a sign of gcc used to build mpfr was incorrectly configured to rely on libssp instead of using gcc's codegen and libc's helper.

That would be the bootstrap-tools compiler.  Here is the Hydra build that created it.  You can replicate that build with
git switch --detach 49a83445c28c4ffb8a1a90a1f68e6150ea48893b
nix build -f . -L pkgsCross.powernv.stdenvBootstrapTools

The special libmpfr (with pname="libmpfr-stage3") which supplies libmpfr.a is compiled by the gcc which is in the bootstrap-tools.  that libmpfr.a then gets linked into the final stdenv.cc.

Does current nixpkgs master fail as is on bootstrap?

Correct.  With current nixpkgs master on a powerpc64le machine, nix build -f . -L stdenv will fail with the link error mentioned earlier.

I think it means bootstrap-tools's gcc needs a fix. Do you know how it was built? Cross-compiled or built natively?

The bootstrap-files gcc is definitely cross-compiled for all non-{x86_64,arm64} platforms.

The problem here is presence of __stack_chk_guard in generated code.

I've noticed that relocs for __stack_chk_guard are also present in the "special" libmpfr-stage3 package on aarch64 (but not on x86_64).  Yet for some reason there is no problem there.   As I understand it the exact mechanism used to implement this feature is highly platform-specific.  But I don't really know a whole lot about the gory details of -fstack-protector.

Confirmed it's an instance of #113977 :

Hey, that's a great find!  But FWIW the PR that closes that bug, #141448, does exactly the same thing that this PR does -- disable -fstack-protector on powerpc64le. :)

A side-effect of missing glibc version detection:
`gcc-debug-powerpc64le-unknown-linux-gnu> checking for target glibc version... 0.0

Interesting.  I'll look into this, and #113977, in more detail either tonight or tomorrow.  Nice find!

Adding a bit of debugging I think this is the path gcc assumes for target libc (we don't have that path):
GLIBC HEADER looking at: /nix/store/jn7l2accg01ms5inxyzwdgxn6vdp9gd1-gcc-debug-powerpc64le-unknown-linux-gnu-10.4.0/powerpc64le-unknown-linux-gnu/sys-include/features.h
GLIBC HEADER looking at: NO FILE

It comes from https://gcc.gnu.org/git/?p=gcc.git;a=blob;f=gcc/configure.ac;h=446747311a6aec3c810ad6aa4190f7bd383b94f7;hb=HEAD#l2458
   elif test "x$with_sysroot" = x; then
     target_header_dir="${test_exec_prefix}/${target_noncanonical}/sys-include"

Looking at other cases:
   if test "x$with_build_sysroot" != "x"; then
     target_header_dir="${with_build_sysroot}${native_system_header_dir}"
   elif test "x$with_sysroot" = x; then
     target_header_dir="${test_exec_prefix}/${target_noncanonical}/sys-include"
   elif test "x$with_sysroot" = xyes; then
     target_header_dir="${test_exec_prefix}/${target_noncanonical}/sys-root${native_system_header_dir}"
   else
     target_header_dir="${with_sysroot}${native_system_header_dir}"
   fi

I think the best is to plug into last sysroot branch. Testing the following change locally:
--- a/pkgs/development/compilers/gcc/common/configure-flags.nix
+++ b/pkgs/development/compilers/gcc/common/configure-flags.nix
@@ -111,9 +111,15 @@ let
       "--with-mpc=${libmpc}"
     ]
     ++ lib.optional (libelf != null) "--with-libelf=${libelf}"
-    ++ lib.optional (!(crossMingw && crossStageStatic))
+    ++ lib.optionals (!(crossMingw && crossStageStatic)) [
+      # "--with-sysroot=/": trick gcc into looking up target system headers in
+      # --with-native-system-header-dir dir:
+      #     https://gcc.gnu.org/git/?p=gcc.git;a=blob;f=gcc/configure.ac;h=446747311a6aec3c810ad6aa4190f7bd383b94f7;hb=HEAD#l2461
+      # Otherwise gcc tries to look it up in various prefixed
+      # targets relative to exec_prefix.
+      "--with-sysroot=/"
       "--with-native-system-header-dir=${lib.getDev stdenv.cc.libc}/include"
-
+    ]
     # Basic configuration
     ++ [
       # Force target prefix. The behavior if `--target` and `--host`

It also matches description of with-native-system-header-dir from gcc's install doc https://gcc.gnu.org/install/configure.html:
--with-native-system-header-dir=dirname

    Specifies that dirname is the directory that contains native system header files, rather than /usr/include.
    This option is most useful if you are creating a compiler that should be isolated from the system as much
    as possible. It is most commonly used with the --with-sysroot option and will cause GCC to search dirname
    inside the system root specified by that option.

Testing the following change locally:

Breaks. nixpkgs frequently passes host headers (instead of target's) there when building cross-compilers (which makes sense, gcc assumes both paths the same with a sysroot offset).

Looking at pkgs/development/compilers/gcc/builder.sh we even have a hack to patch other headers location. It's out of date:
    if test -f "$NIX_CC/nix-support/orig-libc"; then
        # Patch the configure script so it finds glibc headers.  It's
        # important for example in order not to get libssp built,
        # because its functionality is in glibc already.
        sed -i \
            -e "s,glibc_header_dir=/usr/include,glibc_header_dir=$libc_dev/include", \
            gcc/configure
    fi

glibc_header_dir was renamed to target_header_dir https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=6961669f48aa18168b2d7daa7e2235fbec7cb636

The following hack allows building working powerpc64le.bootstrapFiles:
--- a/pkgs/development/compilers/gcc/common/configure-flags.nix
+++ b/pkgs/development/compilers/gcc/common/configure-flags.nix
@@ -113,6 +113,8 @@ let
     ++ lib.optional (libelf != null) "--with-libelf=${libelf}"
     ++ lib.optional (!(crossMingw && crossStageStatic))
       "--with-native-system-header-dir=${lib.getDev stdenv.cc.libc}/include"
+    ++ lib.optional (!(crossMingw && crossStageStatic) && buildPlatform != hostPlatform)
+      "--with-sysroot=/"

     # Basic configuration
     ++ [

I suspect it might be a bit incorrect for some cases. I'll spend some time to understand the difference in nixpkgs's assumptions around use of "native" headers for 3 cases: noLibc (bare metal, pre-libc), build == host != target (cross-compiler), build != host == target (cross-build a compiler). And will check if plain cross-compilers work as expected on nixpkgs.

Proposed the possible fix as https://github.com/NixOS/nixpkgs/pull/181943

On top of it proposed a cleanup to remove outdated sed: https://github.com/NixOS/nixpkgs/pull/181994

Proposed the possible fix as #181943

I'm currently working through this.
Can you provide some insight on why the fix is not platform-specific, yet the problem only occurs on powerpc64le?  The problem that started this PR doesn't occur on mips64el, which also has a cross-compiled bootstrap-files bundle.  Why didn't mips64el have the same problem?  I would like to understand this in case something similar happens in the future.

Closed in favor of #181943


How to add nodes dynamically from firebase

Tried this but app crashes. I also want to add mulitple child nodes to a parent and I cant guess how to do that dynamically.
databaseReference = FirebaseDatabase.getInstance().getReference("family_members/");
databaseReference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot snapshot) {
            for (DataSnapshot postSnapshot : snapshot.getChildren()) {

                FamMembers memberUploadInfo = postSnapshot.getValue(FamMembers.class);

                if(memberUploadInfo.getFname().equals("pp")) {
                    node1 = new Node(memberUploadInfo.getFname());
                    node2 = new Node(memberUploadInfo.getChildren());

                }

            }

        }

        @Override
        public void onCancelled(DatabaseError databaseError) {
        }
    });
    graph.addEdge(node1,node2);

@deeppomal, you have too loop throw memberUploadInfo.getChildren() and create every time a new edge graph.addEdge(node1,famMember). Next time please add a stacktrace!

Okay so I made an arraylist of all FamMember objects and looped through it to find the parent of first generation which will have getParent value = "null" and if its getChildren is not null then it will display the children ( as code given below). Now this will only display first generation. Now how to display children of further generations. Like to add an edge the first argument should be compile time declared variable right? eg : Node node1 = new Node(Parent);
for(int i =0;i<famMembers.size();i++) {
                if (famMembers.get(i).getParent().equals("null")) {
                    Parent = famMembers.get(i).getFname();
                    node1 = new Node(Parent);
                    if(!famMembers.get(i).getChildren().equals("null"))
                        children = famMembers.get(i).getChildren();
                    graph.addEdge(node1, new Node(children));
                }

You are still not looping through your children. All you do is finding your first generation of parents and adding their children as a node. children should be an array you can loop through and create a new edge between the parent and each child. The child can also be a parent and have children, so you have to loop through them as well until there are no more children.

@deeppomal this can be achieved by recursion.

@GregorBlock  Yes, implemented.


expenseApp.d.ts seems to be missing

Hi Dan,
I followed your talk at ng-conf and now watching your course on TypeScript on PS. I want to give TS a try in combination with Angular and want to use this project and the "AngularIn20TypeScript" as examples to learn from.
I was just browsing the repo on Github and noticed in the app,module.ts file that you have a reference to an expenseApp.d.ts file which is supposed to be located under /tools/typing/. However I cannot find this folder - I assume that it is generated by running tsd which will grab all the dependencies from the tsd.json file and bundle them in tsd.d.ts - but we still need the expenseApp.d.ts from somewhere right?
https://github.com/DanWahlin/AngularTypeScript/blob/master/src/app/expenseApp/app.module.ts
reference path="../../../tools/typings/expenseApp.d.ts"
I'm guessing you may have forgotton to commit this by ignoring the whole tools/typing folder in your git commits. Or is it not necessary? (if so please close the issue)
Thanks

It's automatically generated once you run "gulp" at the command-line. We'll update the readme with some details on running the tools. I'm on vacation right now though so it'll be at least 10 days before I get a chance.


[FSDE-30898] Prevent opening accesibility when clicking on Grid, Foundations page

https://ctl.atlassian.net/browse/FSDE-30898

Hey!
I moved the sidenav script to a separate file. It's still loaded in the sidenav.pug file because in the default file it causes a bug with the arrow animation 🙂


Add unit tests for exisitng components

adding @karelhala for review

Codecov Report

Merging #53 (89fc3ee) into main (b0e767a) will increase coverage by 12.32%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##            main      #53       +/-   ##
==========================================
+ Coverage   2.14%   14.47%   +12.32%
==========================================
  Files         27       27
  Lines        373      380        +7
  Branches      72       78        +6
==========================================
+ Hits           8       55       +47
+ Misses       339      301       -38
+ Partials      26       24        -2

Impacted Files
Coverage Δ

src/Components/RosTable/ProgressScoreBar.js
100.00% <100.00%> (+100.00%)
:arrow_up:

src/store/entitiesReducer.js
0.00% <0.00%> (ø)

src/Routes/RosPage/RosPage.js
0.00% <0.00%> (ø)

.../Components/EmptyStateDisplay/EmptyStateDisplay.js
25.00% <0.00%> (+25.00%)
:arrow_up:

...nents/RecommendationRating/RecommendationRating.js
52.38% <0.00%> (+52.38%)
:arrow_up:

...rc/Components/SystemDetail/RecommendationsTable.js
76.19% <0.00%> (+76.19%)
:arrow_up:

src/constants.js
100.00% <0.00%> (+100.00%)
:arrow_up:

src/Components/RosTable/ExpandedRow.js
100.00% <0.00%> (+100.00%)
:arrow_up:

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 b0e767a...89fc3ee. Read the comment docs.

Tests are green now :)
Fixed the snapshot tests in ProgressScoreBar.test.js

Hello @karelhala & @apuntamb,
Please request to review and let me know if we can merge these initial set of unit tests.

Thank you @karelhala! Merging the changes.


⚠ Bofrost.hr has degraded performance

In b285fb3, Bofrost.hr (https://www.bofrost.hr) experienced degraded performance:

HTTP code: 200
Response time: 2517 ms

Resolved: Bofrost.hr performance has improved in 7ac1448 after 6 minutes.


Minor tweaks to scodec instances

Follow-up to #614 with some minor stuff. @note, I've made a few cosmetic changes as well as a few that affect behavior (if the user is accumulating errors they'll now get any in both the bits and length fields and the bit vector error message is passed through). I've also added some non-implicit methods to allow users to pick their own field names if desired, and I've recombined everything into a single package object (mostly just because vals in traits make me nervous). Let me know if you don't agree.

Codecov Report

Merging #624 into master will increase coverage by 0.21%.
The diff coverage is 92.3%.

@@            Coverage Diff             @@
##           master     #624      +/-   ##
==========================================
+ Coverage   83.58%   83.79%   +0.21%
==========================================
  Files          70       70
  Lines        2065     2086      +21
  Branches      143      149       +6
==========================================
+ Hits         1726     1748      +22
+ Misses        339      338       -1

Impacted Files
Coverage Δ

...hared/src/main/scala/io/circe/scodec/package.scala
92.3% <92.3%> (-7.7%)
:arrow_down:

...eric/extras/encoding/ConfiguredObjectEncoder.scala
100% <0%> (ø)
:arrow_up:

.../core/shared/src/main/scala/io/circe/Decoder.scala
90.9% <0%> (+0.72%)
:arrow_up:

...ce/generic/extras/decoding/ConfiguredDecoder.scala
92.68% <0%> (+1.37%)
:arrow_up:

...re/shared/src/main/scala/io/circe/KeyDecoder.scala
45.94% <0%> (+2.7%)
:arrow_up:

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 e0d4b83...c229b39. Read the comment docs.


Enhancements and fixes for CREATE PROPERTY

Added support for COLLATE and REGEX in the CREATE PROPERTY syntax.  Also determined that we were not handling mixed case values or quoted values properly, so also fixed that while I was as it and added several more tests.
@luigidellaquila will probably want to review and merge.

Thanks @mmacfadden
I'll check it asap
Luigi

Merged, thank you very much @mmacfadden !
Thanks
Luigi


Remove tempfile as a dependency

See https://github.com/BurntSushi/quickcheck/issues/241 : tempfile depends on an antiquated rand (+ the ecosystem is just not needed here)
Sadly this is not enough to meaningfully stop the import of rand:
https://gist.github.com/e2ecc6522581bce7773a2f6a4432578d

:umbrella: The latest upstream changes (presumably d7cf69a5205f373118f0eb3a87ee18359b80dd0e) made this pull request unmergeable. Please resolve the merge conflicts.

:umbrella: The latest upstream changes (presumably 2ad0ed81bcc069360782ef0d0c2210cce17d9b54) made this pull request unmergeable. Please resolve the merge conflicts.

:umbrella: The latest upstream changes (presumably<PHONE_NUMBER>7ff1c190b9c8d2778d38f6c518f214) made this pull request unmergeable. Please resolve the merge conflicts.

@bors-libra r+

:pushpin: Commit aa1f555 has been approved by mimoo

:hourglass: Testing commit aa1f5553e3658c71e9c3482265387f97f86cb2a8 with merge 7bb5e10efb9f13556f363d1f20ec18804b4a0487...

:sunny: Test successful - checks-circle_commit_workflow
Approved by: mimoo
Pushing 7bb5e10efb9f13556f363d1f20ec18804b4a0487 to master...


ERROR! 'notify' is not a valid attribute for a Block on Tag version 1.3.0

Describe the Issue
I am using CIS hardening tag 1.3.0, when tried building an AMI with 1.3.0 received an ERROR! 'notify' is not a valid attribute for a Block.
Earlier we were on 1.1.0 and did not observed such may be because notify was present in block section for example
in task  name: "3.1.1 | PATCH | Disable IPv6" the "notify" is present above the block: section when we moved "notify" in block section the error is gone
like:
block:
- name: "3.1.1 | PATCH | Verify if IPv6 is enabled on the system | disable all except localhost"
ansible.posix.sysctl:
name: "{{ item }}"
value: '1'
sysctl_set: true
sysctl_file: "{{ amazon2cis_ipv6_sysctl_file }}"
notify: Sysctl_flush_ipv6_routes
Could you please look into it
Expected Behavior
A clear and concise description of what you expected to happen.
Actual Behavior
A clear and concise description of what's happening.
Control(s) Affected
What controls are being affected by the issue
Environment (please complete the following information):

branch being used: [1.3.0]
Ansible Version: [2.10.17]
Host Python Version: [ 3.11.4]
Ansible Server Python Version: [ 3.11.4]
Additional Details:

Additional Notes
Anything additional goes here
Possible Solution
Notify can be moved into block as present in 1.1.0

After updating ansible version to 2.17.4 it got reolved


NFT: Missing test

Motivation
The abi for Supply contains a set_max_supply() which is not inside the /tests/functions directory.
Write a test to set the supply and check that the event has been correctly emitted.
It is used as part of the constructor but we shouldn't couple tests that way.

It should be noted that this function can only be called before the constructor is called. Since the constructor sets the maximum supply and locks it, the use of this function does not impact the contract in any way. This function is included as it is part of the NFT library's abi for supply.

Closing as this has been removed with the introduction of native assets https://github.com/FuelLabs/sway-applications/pull/747


Cannot send single-byte MQTT messages without UTF-8 character prepended

Home Assistant release (hass --version): 0.53.1
Python release (python3 --version): Python 3.5.3
Component/platform:  MQTT Action
Description of problem:
I'm looking to send a degree symbol ° (hex 0xB0) to an external device.  Every method I've tried to get Hass to send this character results in the two characters 0xC2 0xB0 being sent.
Things I've tried in automations:
payload: "°"  # < hass pukes on this one, error: 'utf-8' codec can't decode byte 0xb0 in position 852: invalid start byte
payload: "\xb0" # Hass sends 0xC2 0xB0
payload_template: "{{states.sensor.weather_temperature.attributes.unit_of_measurement[0]}}" # Hass sends 0xC2 0xB0

Expected:
at PowerShell command line I can use the following:
mosquitto_pub -t 'test' -m '°'

And the result is the single byte 0xB0 as I would expect.
Problem-relevant configuration.yaml entries and steps to reproduce:
payload: "°"  # < hass pukes on this one, error: 'utf-8' codec can't decode byte 0xb0 in position 852: invalid start byte
payload: "\xb0" # Hass sends 0xC2 0xB0
payload_template: "{{states.sensor.weather_temperature.attributes.unit_of_measurement[0]}}" # Hass sends 0xC2 0xB0

Traceback (if applicable):
None
Additional info:
None

Maybe this will work?
    payload_template: '{{ "\xb0".encode("iso-8859-1") }}'

(untested)

I've just tested the payload_template you've posted along with several variations on quoting with no luck,  I feel like this could be a solution but I just can't figure out the magic.  I've tried:
{{states.sensor.weather_temperature.attributes.unit_of_measurement[0]}} output: bytes 0xC2 0xB0
{{states.sensor.weather_temperature.attributes.unit_of_measurement[0].encode("iso-8859-1")}} output: b'\xb0' (that's the literal text output, not byte values, including the prepended "b")
{{states.sensor.weather_temperature.attributes.unit_of_measurement[0].encode('latin-1')}} output: b'\xb0'
{{states.sensor.weather_temperature.attributes.unit_of_measurement[0].encode('utf-8')}} output: b'\xc2\xb0'
{{states.sensor.weather_temperature.attributes.unit_of_measurement[0].encode('ascii')}} output Error rendering template: 'ascii' codec can't encode character '\xb0' in position 0: ordinal not in range(128)
{{states.sensor.weather_temperature.attributes.unit_of_measurement[0].encode('ascii', 'ignore')}} output: b''

Tested on 0.59.2 with the same result: still cannot send a single-byte MQTT message without Hass turning it into a UTF-8 string.

Confirmed that this issue still exists.


🐛 FIX: replace "Sunni" with "Hanafi" as fiqh name

This PR contains a small fix for Fiqh name.  The right name for Fiqh Sunni is actually Fiqh Hanafi. Attested from an Islamic Scholar as well :smiley:

Thanks, I wrote Hanafi first then I thought people may disagree with that an sunni is more common so I changed it. But before we revert do you have a source I can use as an argument.


Cannot install third library

Ionic version:  (check one with "x")
[ ] 3.x
I'm submitting a ...  (check one with "x")
[ ] bug report
Current behavior:

Expected behavior:

Other information:
I have a screenshot here, can you help me what is wrong with this?

Missing write access ... Permission denied

When you try to install global libraries, if you don't have permissions on your user, try running with sudo. or after moving to a super-user by sudo -i
This is not an issue with ionic.

Hello! Thanks for opening an issue with us! As this seems like more of a support question I will urge that you ask this question on our forum or on our slack channel. Thanks for using Ionic!


loader: Fix tunneling when device is set without NodePort

Many tests are failing when configuring a device while BPF-based NodePort is disabled (cf. #11972). A bug in the loader causes it to call init.sh with the mode set to direct instead of e.g., vxlan. The cilium_vxlan is then not created (or even removed if it existed) which causes connectivity disruptions in multiple scenarios (mostly multi-node).
This commit fixes the wrong assumption that multiple devices are only set when NodePort is enabled. That assumption might have been correct when that code was introduced (in 3a83623).
Fixes: #11972
Fixes: 3a83623 ("bpf: add support for local NodePort via tunnel")
/cc @brb @borkmann

test-me-please

Coverage increased (+0.009%) to 37.018% when pulling 5615c8b126b8397219bb7a6cdfa73bfdc8ac914b on pr/pchaigno/fix-set-device-not-nodeport into f0a9f85040a91e2677068146960f591fb90fb8d7 on master.


Line breaks in macro-constructed relations

With the new line break code, line breaks sometimes occur between the symbols of a macro-constructed composite relation symbol. For example, \coloneqq should render roughly as ":=" and there should be no line break between the two characters. But I find that line breaks can sometimes occur there.

Let me suggest a tactic to overcome this. Amend the macro and wrap a mathrel around the whole thing. Then add a white-space: nowrap rule to the CSS for mrel.

Wrapping in a \mathrel, or even just {...} will suffice, as in LaTeX. Shouldn't need any additional CSS rules. We probably want to wrap in mathrel just to get the spacing right...

@edemaine If you can find some way to land #1162, then I would be happy to take on these relations.

Fixed. by #1372,


Queue workers don't stop gracefully on SIGTERM

Laravel Version: 5.3.25
PHP Version: 7.0
Database Driver & Version: jenssegers/laravel-mongodb 3.1.3

Description:
I frequently use "autoscaling" features of AWS to start/stop worker instances when I need to deliver large numbers of transactional messages in a small timeframe.  In the interest of speed I often group up to 10 messages into a single job that I push onto the queue which can take 10-20 seconds to complete.  Being that a lot of these can be emails, some of which take more than 64k, I use a database to store the payload and use Beanstalk to manage what jobs are executed.
I've observed occasional messages left over in the database whose times correspond with autoscaling events.
To address this issue in the past I utilized the pcntl_signal(SIGTERM, ....) method with an empty function to prevent the process from being immediately killed on a SIGTERM.  This worked well with queue:listen since queue:listen would be restarted entirely after each processed event, merely catching the SIGTERM signal in an empty function would cause the script to wait until it's completion before stopping, and Supervisor is designed to not restart a process after receiving a sigterm.
After switching to daemon mode (of which I am quite fond of the increased speed) it's now not working so well.  There should be some good way of automatically performing a queue:restart when a SIGTERM is received.  Is something like this worth my time pursuing or is there another effective way that my hours of searching on this did not find?
I could just extend the worker class for my own purposes but I think this is an important enough issue that is probably affecting many more people than just myself.
I'm happy to take the ball and run with this if it hasn't already been done or there's not a better way.
Steps To Reproduce:

Start up a queue worker from the command line (php artisan queue:work)
Ensure the jobs passed to the queue worker are long-running.  The sleep function is vulnerable to termination so perhaps using some code like this:

for ($q = 0; $q < 5; $q++) {
    for ($i = 0; $i < 300000000; $i++) {
    }
    print $q . "\n";
}

Get the process id of the worker command you started in (1)
Run kill -15 YOURPID
Observe that the process is killed immediately.  The above script should count from 0 to 4 before terminating.

Noteworthy code
Here's a demonstration of making the above code not exit after a SIGTERM.  I'd like to implement something like this inside of a queue worker.
<?php
declare(ticks=1);
$GLOBALS['___queue_terminated'] = false;
var_dump(pcntl_signal(SIGTERM, function () {
    echo "Tried to terminate\n";
    $GLOBALS['___queue_terminated'] = true;
}));
print "Running\n";
while (1) {
    for ($q = 0; $q < 5; $q++) {
        for ($i = 0; $i < 300000000; $i++) {
        }
        print $q . "\n";
    }
    if ($GLOBALS['___queue_terminated']) {
        break;
    }
}

Rock on!

Yeah we just need to handle that signal in the Worker class. I had planned to implement better signal handling soon anyways to make room for some queue improvements I'm planning for Laravel 5.5. I would welcome a PR to handle this signal properly.

Note I already have pcntl_async_signals setup in the Worker class on 5.4 so adding support is fairly straight-forward.

Great, I will get started on this in the next little while.

I'm curious if your issue also occurs in version <= 5.3.9.
This version is using pcntl_fork().
See related issue #16694.

Fixed in https://github.com/laravel/framework/commit/819888ca1776581225d57e00fdc4ba709cbcc5d0


List of files in directory

@jakeheis could you please review this? :)

After a quick look it looks to me like most of the changes related to the listing of files within a directory are good to go. However, a lot of these changes are to support the new SFTP.download function, and I think a couple design decisions there need to be discussed more. If a new pull request could be opened with just the directory listing functionality, we can touch that up and merge it in. Another pull request could then be opened with this download functionality which requires more discussion

Taken care of by #40


Revert "Make interactive session codeblocks "simple widgets" to disable context menu actions"

Reverts microsoft/vscode#176870

Why?

Because I have no access to my original Facebook or my iCloud Photos plus
I’m paying for stuff I never used before or got
On Mon, Mar 13, 2023 at 12:44 AM Rob Lourens @.***>
wrote:

Why?
—
Reply to this email directly, view it on GitHub
https://github.com/microsoft/vscode/pull/176930#issuecomment-1465549492,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/A6DYZYQOQJBTDONEB4UOHW3W32645ANCNFSM6AAAAAAVYQP5NQ
.
You are receiving this because you authored the thread.Message ID:
@.***>


Update chrome-webstore-upload

This is to update chrome-webstore-upload and deprecate client_secret. This PR should solve #7
There are quite a lot of eslint and typescript changes which i'm not sure if it is necessary. I have to make these changes so I can build the project by npm run all successfully. If you think it's best to revert to the original eslint settings, feel free to update this PR.

@calvinkei
Thanks for your pull request!
There is only one fix. You need to remove the client-secret in action.yml.
https://github.com/calvinkei/chrome-extension-upload/blob/master/action.yml

It has been released as Version 2.0.0!
https://github.com/mnao305/chrome-extension-upload/releases/tag/2.0.0

@mnao305 thank you!


Support toPojo with BReference

Pull Request Test Coverage Report for Build 282

0 of 1 (0.0%)  changed or added relevant line in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.04%) to 52.681%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

commons/gridgo-utils/src/main/java/io/gridgo/utils/ObjectUtils.java
0
1
0.0%

Totals

Change from base Build 280:
0.04%

Covered Lines:
2574

Relevant Lines:
4886

💛  - Coveralls


Storybook for the new Run Search page

The PR covers the new Run Search page -- the filters section.
It can be previewed at:
https://story.dev-usw2-sematic0.sematic.cloud/iframe.html?args=&id=sematic-page--run-search&viewMode=story
Two small side stories are added to demonstrate interactivity:
Status Filter
Owner Filter

Also, I can see a double border between the filters column and the main body.
Incredible found! Nice job! Thanks!


Remove the "+" part from the cluster value string for some values

VERSIONS

Xamarin.Forms.GoogleMaps.Clustering - 1.0.1
Xamarin.Forms - <IP_ADDRESS>9249
Android/iOS - 9/---

PLATFORMS

[x] Android
[x] iOS

ACTUAL BEHAVIOR
Hello there.
I'm trying to display the number of clustered pins from 2 up to 100:
const int maxClusterCapacity = 100;
Dictionary<int, Color> buckets = new Dictionary<int, Color>();
for (int i = 2; i < maxClusterCapacity; i++) {
    buckets.Add(i, new Color(/*some_values_here*/));
}
map.ClusterOptions.SetBuckets(buckets);

The problem is that the plus sign is added in the end of the cluster`s value string for values >10.
I understand that

the usage of buckets is HIGHLY RECOMMENDED, since the system caches the cluster icons

but it is required in my case.
Setting map.ClusterOptions.EnableBuckets to true or false doesn't change the way it behaves, so I don't know what to do.
EXPECTED BEHAVIOR
I want some way (even hacky one) to display the actual number of clustered pins in the cluster without the plus sign until there's more pins than maxClusterCapacity.
Is it possible? Thanks.

@CalamityDeadshot sorry for the late reply. Did you find a solution for your problem? If not, I think using Buckets property in map's cluster options would do the trick. Let me know how it goes.

Also have this problem. EnableBuckets flag not working for me. Buckets property haven't set method. Any ideas about how to show the exact pin count?

I have the same issue.
When i set enableBucket to false, there is no difference.
When i set the customoptions with 1 bucket, 999:
            map.ClusterOptions.SetBuckets(
                new int[] { 999 },
                new Color[] { Color.FromHex("#0A203D") });

( I then expect all numbers below 999 to be without the + icon.. and 999 is the last value that i show with a + icon)
but all values bigger then 10 have a + icon?
result:

btw it looks like it does work for iOS.. so for me > only Android


Duration (elapsed time) of previous jobs is incorrect

Probably due to YAML serialization of start & end time as numbers with insufficient precision.

To fix this, I want to save the job metadata as an R data file instead of YAML (and same for upload metadata). Do you mind if I purge all of your old (test) jobs and uploads?

Never mind, I can represent them as date-time strings instead, though the computed job duration may be off by a second or two.

OK, but in any case there's no need to be careful with stuff relating to any of my test jobs

I will just go through the old jobs and add plausible start & end times.

I should also note that at this point I'm not overly concerned about precision when it comes to such metadata regarding job time statistics!

Done - see commit ea027f5.


[Project question] Will there be GTK 4 support?

As the title says, I'd like to know any further updates about this project. GTK 4 was released back in 2020 and it would be nice if you folks add GTK 4 support in gotk. Will there be anything soon related with it?
Thanks.

https://github.com/diamondburned/gotk4

https://github.com/diamondburned/gotk4

Even though the repo name says what it is, it's always better to explain a little instead throwing a link with no context at all. Kind of disrespectful behaviour.

"here's an alternative library instead"


Converter for frequency, wavelength, and energy (Photon energy)

Problem Statement

The conversion between these three is done very often in chemistry-related workloads. As a result, there are multiple online calculators dedicated for this where you can input one and get the other two out. This behavior can still be adapted for the input one-output one that already exists in this calculator. This also fits with HS-PS4-1 of the common core. This is also part of basic college chem classes.
Evidence or User Insights

Proposal

Add a converter for photon energy
Low-Fidelity Concept

Requested Assignment

I'm just suggesting this idea.  I don't want to implement it.

This is your friendly Microsoft Issue Bot. I've seen this issue come in and have gone to tell a human about it.

We had the chance to review this pitch, and while we understand the scenario, what is being described is not really a unit converter. It is kind of something new -- a formula solver. This is not necessarily out-of scope, but while solving for Frequency/Wavelength/Energy is certainly one type of solver, but there are countless others (e.g., Boyle's Law, Ideal Gas Law, Force equation, Ohm's Law, etc.). Where do we draw the line for support here? How do we expose this different mode to users?
It would be great to continue the conversation here and evolve the idea before considering it again.

I'll work on this and let you know when it'll be ready.

Wouldn't it be better to have a general issue for formula solvers first in this case so the spec can be laid out?

Wouldn't it be better to have a general issue for formula solvers first in this case so the spec can be laid out?

Yes, I think so. An entirely new issue can be created, or this pitch can be updated to expand scope.


Show the constraints in the geometry examples

In the notebook link, I don't see anywhere where the calculation limits are set so the values that are displayed may not even be possible to reach with a physical diffractometer.  The exercise seems just to be to show people that the coordinate system is correctly defined.
Originally posted by @ambarb in https://github.com/bluesky/hklpy/issues/52#issuecomment-748196433

Follows merge of PR #87 (additions from apstools, including Constraint support).


less error on default configuration if missing vim on path

Describe the bug
The default NixOS configuration uses lesspipe as a preprocessor for less.
lesspipe looks for various tools (bat, batcat, pygmentize, source-highlight) on the path and falls back to the included vimcolor and code2color scripts if none are found.
vimcolor assumes vim is available on the PATH and outputs an error message if it is not found.
This means using less on a default NixOS install without vim produces an error message (but otherwise fails gracefully).
Steps To Reproduce
Steps to reproduce the behavior:

Setup a default NixOS install
Do not install bat, batcat, pygmentize, source-highlight, or vim
less /etc/nixos/configuration.nix

Expected behavior
Either lesspipe includes vim as a dependency, vimcolor is not enabled by default, or lesspipe is not configured by default.
Additional context
Before 2e2671126e2e1af4621e31c159f1a32b0ef8a903 (#254409) lesspipe was wrapped.
lesspipe attempts to add its own directory to the path here.
When wrapped, this failed as the name of the wrapped script did not match, so vimcolor was never found on the PATH.
(also code2color, the other included colorizer)
After 2e2671126e2e1af4621e31c159f1a32b0ef8a903 lesspipe is no longer wrapped, and successfully adds its store directory to PATH.
vimcolor is found on the PATH, and is used as a colorizer if bat, batcat, pygmentize, or source-highlight are not found.
vimcolor errors if vim is not found on the PATH.
Notify maintainers
@martijnvermaat is listed as maintainer but appears to be inactive

Add a :+1: reaction to issues you find important.

I think this is also causing issues when your installed "vim" is neovim (i.e., you use programs.neovim.vimAlias = true in home-manager), as vimcolor relies on options that are not available in neovim. Viewing certain files will give:
vim returned an error code of '1'
vim wrote this error output:
vim: Unknown option argument: "-RXZ"
More info with "vim -h"

I'm willing to take a crack at it, and it seems like the Right Nix Thing here is to actually pull in all those externals to make less be hermetic. On the other hand, those were probably made fake externals for a reason (reducing the dependency graph). In the default NixOS configuration vim is installed, I believe, so making the dependency graph bigger wouldn't likely affect most people, just us weirdos who use nvim as vim, or omit vim entirely.
@edolstra @dtzWill are listed in nixpkgs, do you have a preference?

@shaver I haven't looked deep to see if this helps make this any easier to do, but nvimpager was added as a colorizer to lesspipe: https://github.com/wofr06/lesspipe/issues/152#issuecomment-2212551264
Just in case you hadn't come across that yet. :slightly_smiling_face:

That would make us nvimmers work better, but would still leave the whole thing wildly impure. It would solve my problem, but I'm not sure it's the right way to leave the less package set up.
But then, maybe "pull in its own copy of vim that has to be configured with the same plugins and such so that it looks right for the user" isn't the right way either!
Is this impurity any worse than running $EDITOR for a git commit? Maybe we give the less package a way to configure which editor to use for coproduction, or maybe we just check $EDITOR and call the right one/none for a few known editors? Whoever wants to colourise through nano or emacs can make it more general. 😀
(Or: programs.less.colorizeWithEditor = "auto/vim/nvim/none"?)
I'm happy to do the work (once I figure out how...), I just want to make sure I'm not leaving it even worse...

@shaver just FYI that I've put in a PR to update lesspipe as well (as per the recently mentioned PR). Looks like it hasn't been updated since 2.11 in unstable.
From here all I needed to do was add in the nvimpager package and set my LESSOPEN manually as I'm not using overlays; honestly if you use overlays, it might "just work" after adding the overlay and nvimpager.
Just based on this experience I'd almost say it'd be optimal to, yeah, just leave the packages and focus on the module where purity is much less of a concern - pulling in nvimpager or something else based on a module config setting seems like a much better experience.
Hope that helps!

How do you set LESSOPEN such that lesspipe uses nvimpager? I think we still want lesspipe's other behaviours, so I'm not sure how to wedge in nvimpager from a module. Do you mean that you set LESSCOLORIZER to nvimpager?

@shaver so what I've done, is:
In my system config:
programs.less.lessopen = null;

And then in my home-manager config:
home = {
  packages = [ pkgs.nvimpager ];
  sessionVariables = {
    LESSOPEN = "|${lesspipe}/bin/lesspipe.sh %s";
  };
};

Note that the lesspipe referenced here is aliased to the lesspipe package in my PR.
As mentioned, the changes to lesspipe upstream pull in nvimpager along with the other preferred colorizers, see https://github.com/wofr06/lesspipe/commit/511bc528ee5ab786aef62629e8509e67e88d5152. So no extra config is necessary.

lesspipe is now disabled by default.


chore(kubectl): Formatting markdown

Amending the formatting of the MarkDown syntax as ```shell was showing up in plain text. Zsh options: "https://kubernetes.io/docs/tasks/tools/install-kubectl/#enabling-shell-autocompletion"

I have now signed the CLA.

/assign @simplytunde

/lgtm
/approve


[UI][DEMO] Update default branding

See our POC for Mantine for brand palette and logo enhancements

That link doesn't work but here's a screenshot from the repo you invited me to a while back


RAG DA: Make sure to create only 1 assistant project

Make sure to create only 1 assistat project

https://github.com/terraform-ibm-modules/terraform-ibm-rag-sample-da/pull/30

PR Merged


Execute Python client lib unit tests during build

Motivation
Run Python unit tests along with C++ tests during build and PRs validation.

This needs to wait for #718 where the serviceUrl for python tests is set to port 8885


download model from huggingface

Hi dear support team
I want to use your awesome transformer, but our HPC cluster does not have internet access due to firewall restriction.
I download model and config, ... files from huggingface (https://huggingface.co/facebook/esm2_t33_650M_UR50D/tree/main), i try to load model with:
path = Path(file).resolve().parent.joinpath('esm')
model, alphabet = esm.pretrained(path)
This trick dont work! and this error occur:
TypeError: 'module' object is not callable
How i can to load model?
Thanks

thanks dear Tom
i have another question! i try to install open-fold to using ESMFold but this error occur:
pip install -q git+https://github.com/aqlaboratory/openfold.git@"6908936b68ae89f67755240e2f588c09ec31d4c8"
error: subprocess-exited-with-error
× git clone --quiet https://github.com/aqlaboratory/openfold.git /tmp/pip-req-build-19duubeb did not run successfully.
│ exit code: 128
╰─> [2 lines of output]
error: The requested URL returned error: 403 Forbidden while accessing https://github.com/aqlaboratory/openfold.git/info/refs
fatal: HTTP request failed
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
error: subprocess-exited-with-error
× git clone --quiet https://github.com/aqlaboratory/openfold.git /tmp/pip-req-build-19duubeb did not run successfully.
│ exit code: 128
╰─> See above for output.
note: This error originates from a subprocess, and is likely not a problem with pip.
how i can install it?

something seems wrong with the double quotes here, the command you issue is different than what we list in the readme.
If this persists please open a new issue. Thanks!


Supplying configuration for containers added with .AddContainer()

In our scenario, we have 50+ microservices running from their dedicated docker images. To run these images - I call them application containers below - as a service to an application being developed, it would be necessary to supply:

configuration from standard containers like RabbitMq or SqlServer to these application containers (e.g. the connection strings)
provide configuration for the application containers

re 1.) When supplying the connection string with sqlServer.Resource.GetConnectionString I get a connection string mapped in an environment variable for the application container but the container fails because it can't connect to the database with
"A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: TCP Provider, error: 40 - Could not open a connection to SQL Server: Could not open a connection to SQL Server)"
Is this a scenario that isn't supported (yet), or did I miss something?
re 2.) Providing all configurations as environment variables using .WithEnvironment is not only a pain but unusable, because the configuration for an application container would have to be repeated in code in each project using that container. Is there a way to supply configs by some other means that I don't see?

This is likely a dupe of #850 and #128

Ok great , as far as I understand, there's something planned for a future release (like January) for the first question, but what about the second?

The containers get a lot of settings when running in Kubernetes through environment variables. These aren't present obviously when the image is started in Aspire. But I guess that can be remedied by using an appsettings file.

The containers get a lot of settings when running in Kubernetes through environment variables. These aren't present obviously when the image is started in Aspire. But I guess that can be remedied by using an appsettings file.

OR use WithEnvironment


Use metrics-server chart

This depends on https://github.com/kubernetes/charts/pull/6620 to land first (see 297736613e068e0a5f428f295a92dea12e3fd7b4)

Looks like the upstream changes (https://github.com/kubernetes/charts/pull/6620) won't get in in time. Moving to next release...

It's merged! :man_dancing: On this now.


[occm] create fully populated octavia loadbalancer

What this PR does / why we need it:
This commit changes the occm loadbalancer behaviour for newly created services
to leverage the octavia fully populated loadbalancer api call [1].
This massively reduces the intial amount of API calls to create a new service to
one (1) API call in sum, especially in large clusters.
Due to update of the gophercloud dependency, change of the routers.UpdateOpts
member Routes was necessary. ([]Routes -> *[]Routes).
Which issue this PR fixes(if applicable):
fixes #1214
Special notes for reviewers:
This PR leverages the fully populated loadbalancer creation [1] feature of octavia which has been existing since initial release 1.0.0 [2]. It's completely realized as an API frontend functionality and doesn't need backend/provider support
and therefore, it works with every provider out of the box and doesn't need to be configurable.
The existing intergration tests should be enough for compliance testing.
fully popuplated loadbalancer creation has just been added to gophercloud upstream [3].
Release note:
[openstack-cloud-controller-manager] Use fully popuplated loadbalancer OpenStack API call for initial service creation

[1] https://docs.openstack.org/api-ref/load-balancer/v2/?expanded=create-a-load-balancer-detail#creating-a-fully-populated-load-balancer
[2] https://github.com/openstack/octavia/commit/fb0da76c27735a965340e02cebff8be46271f579
[3] https://github.com/gophercloud/gophercloud/pull/2077

/retest

/retest

/ok-to-test

/ok-to-test

/test cloud-provider-openstack-acceptance-test-keystone-authentication-authorization

/test cloud-provider-openstack-acceptance-test-keystone-authentication-authorization

/test cloud-provider-openstack-multinode-csi-migration-test

/test cloud-provider-openstack-multinode-csi-migration-test

/test cloud-provider-openstack-acceptance-test-keystone-authentication-authorization

/test cloud-provider-openstack-acceptance-test-keystone-authentication-authorization

/test cloud-provider-openstack-acceptance-test-keystone-authentication-authorization

/test cloud-provider-openstack-acceptance-test-keystone-authentication-authorization

/test cloud-provider-openstack-acceptance-test-keystone-authentication-authorization

/test cloud-provider-openstack-acceptance-test-keystone-authentication-authorization

/test cloud-provider-openstack-acceptance-test-keystone-authentication-authorization

/test cloud-provider-openstack-acceptance-test-keystone-authentication-authorization

Test fails on timeout to get a list of nodes:
+ /home/zuul/src/k8s.io/kubernetes/_output/bin/kubectl --kubeconfig /var/run/kubernetes/admin.kubeconfig get nodes
No resources found
+ sleep 2
+ wait_time=0
+ '[' 0 -gt 0 ']'
+ return 1
++ kube::log::errexit
++ local err=1
++ set +o
++ grep -qe '-o errexit'
++ return
+ '[' 1 == 1 ']'
+ echo 'time out on waiting ubuntu-bionic-switch-openlab-0000162940 info'
time out on waiting ubuntu-bionic-switch-openlab-0000162940 info

Test fails on timeout to get a list of nodes:
+ /home/zuul/src/k8s.io/kubernetes/_output/bin/kubectl --kubeconfig /var/run/kubernetes/admin.kubeconfig get nodes
No resources found
+ sleep 2
+ wait_time=0
+ '[' 0 -gt 0 ']'
+ return 1
++ kube::log::errexit
++ local err=1
++ set +o
++ grep -qe '-o errexit'
++ return
+ '[' 1 == 1 ']'
+ echo 'time out on waiting ubuntu-bionic-switch-openlab-0000162940 info'
time out on waiting ubuntu-bionic-switch-openlab-0000162940 info

/test cloud-provider-openstack-acceptance-test-keystone-authentication-authorization

/test cloud-provider-openstack-acceptance-test-keystone-authentication-authorization

/test cloud-provider-openstack-acceptance-test-keystone-authentication-authorization

/test cloud-provider-openstack-acceptance-test-keystone-authentication-authorization

/test cloud-provider-openstack-acceptance-test-keystone-authentication-authorization

/test cloud-provider-openstack-acceptance-test-keystone-authentication-authorization

/assign @ramineni

/assign @ramineni

@lingxiankong Seems multiple accpetance tests fail, probably due to changes done in master branch? Shoud I rebase?

@lingxiankong Seems multiple accpetance tests fail, probably due to changes done in master branch? Shoud I rebase?

/test all

/test cloud-provider-openstack-acceptance-test-csi-manila

/test cloud-provider-openstack-acceptance-test-keystone-authentication-authorization

/test cloud-provider-openstack-acceptance-test-keystone-authentication-authorization

/test cloud-provider-openstack-acceptance-test-keystone-authentication-authorization

The job cloud-provider-openstack-acceptance-test-keystone-authentication-authorization needs to be fixed, but I'm pretty sure this PR doesn't affect k8s-keystone-auth binary, so:
/override openlab/cloud-provider-openstack-acceptance-test-keystone-authentication-authorization

This PR conflicts with https://github.com/kubernetes/cloud-provider-openstack/pull/1384 which I'd like to merge first, rebase needs some minor changes, sorry for the inconvenience and thanks for the patience.

@notandy sorry, the #1384 PR is mine

/test cloud-provider-openstack-acceptance-test-e2e-conformance-stable-branch-v1.19

cloud-provider-openstack-acceptance-test-e2e-conformance-stable-branch-v1.20

/test cloud-provider-openstack-acceptance-test-e2e-conformance-stable-branch-v1.20

@lingxiankong PR should be ready now

@lingxiankong Rebased again

/test cloud-provider-openstack-acceptance-test-e2e-conformance-stable-branch-v1.20

/test all

@lingxiankong any idea why conformance tests fail?

/test cloud-provider-openstack-acceptance-test-e2e-conformance

/retest

/test cloud-provider-openstack-acceptance-test-lb-octavia

/override openlab/cloud-provider-openstack-acceptance-test-keystone-authentication-authorization

/test cloud-provider-openstack-acceptance-test-lb-octavia

/test cloud-provider-openstack-acceptance-test-e2e-conformance-stable-branch-v1.20

/test cloud-provider-openstack-e2e-test-csi-cinder

Sorry, restarting openlab. Will retest once it's online.

/test all

/test cloud-provider-openstack-e2e-test-csi-cinder

/test cloud-provider-openstack-acceptance-test-keystone-authentication-authorization

/override openlab/cloud-provider-openstack-acceptance-test-keystone-authentication-authorization

/lgtm

Hi @lingxiankong, sorry for bothering, is something missing to get the patch merged? Would hope to see this feature upstream in 1.21 :)

@jichenjc @ramineni Could any of you please review this PR?

Hi @lingxiankong, sorry for bothering, is something missing to get the patch merged? Would hope to see this feature upstream in 1.21 :)

Hey, sorry for the delay, I've pinged other maintainers to have a look, we have policy that with at least two maintainers review should a PR be merged. Given this PR has been ready for more than one week, If we haven't got response till tomorrow, I can approve.

Thanks.
/lgtm

/test cloud-provider-openstack-acceptance-test-csi-manila
/test cloud-provider-openstack-acceptance-test-e2e-conformance
/test cloud-provider-openstack-acceptance-test-e2e-conformance-stable-branch-v1.19
/test cloud-provider-openstack-acceptance-test-keystone-authentication-authorization
/test cloud-provider-openstack-e2e-test-csi-cinder
/test cloud-provider-openstack-multinode-csi-migration-test

/test cloud-provider-openstack-acceptance-test-e2e-conformance-stable-branch-v1.19

/test cloud-provider-openstack-acceptance-test-e2e-conformance


Install via HACS

Related to a problem?
No response
Describe the solution you'd like
Unfortunately, the extension cannot be found at HASC. Of course you can do it manually but I think it would be better if something else.
Describe alternatives you've considered
No response
Additional context
No response

Yes, agreed. But I do not know how.

Here is an info: https://hacs.xyz/docs/publish/start/

Hi, I'm afraid I don't quite understand. You wrote in your installation instructions that it should be installed via HACS. But that is not working now. What can I do with the link you published here?
Hallo, ich verstehe das jetzt leider nicht so ganz. Du hast in deiner Installationsanleitung geschrieben, dass man es über HACS installieren soll. Aber das funktioniert jetzt nicht. Was kann ich mit dem Link machen den du hier veröffentlicht hast?

Hello @Kime203 , I have prepared the installation via HACS. But, we have to wait now, until this pull request is approved by the maintainers of the HACS-repo: https://github.com/hacs/default/pull/1673

Ok, done


Rewrite: form submit action

Will need a custom Thymeleaf tag that triggers on a form submit.

[x] Actual form submits have to be cancelled
[x] The form must become available as parameter to the controller method as a Map<String, Object> or map onto a POJO.
[ ] (Optional) A common pattern is to disable a button after button press until the message is resolved, to prevent double-clicking to fire an event twice. Perhaps this should be an option with this default on?
[ ] (Optional) Validation of forms is a very common pattern. Is there a way we can make this easier in Medusa?

Implemented the basics of form tag: https://medusa-showcase.herokuapp.com/detail/form-submit
Would still need to think about validation/button disabling

For Validation, consider integration with https://github.com/making/yavi which seems to have traction on github

One thing I noticed: when adding Session in the submit method, it needs to be the last argument of that method.
Note: for other calls like m:click the position of the session argument can be first or last...

Failed to use multi-select in form ref: sample in medusa-ui path: '/multi-select'

Any easier now? I've made it resolve to a dynamic List instead of an Object[] now.
So you should be able to do something like:
Map<String, List<String>> form  if you only expect multi lists to show up in the form.
I'm not really sure how I could make a map that does both single values and multi values easier otherwise. That's kind of what the POJO mapping is for.

The problem is not Object versus String, but Object versus Object[] (or String versus String[])
The multi-select has no problems when multiple options are selected, but occurs when only a single option is selected.
One would expect an Array with one Object, but instead, the selected option is an Object.
When using a map, you can use the workaround like in the above example.
When using a POJO there is no workaround, you get an error:

MismatchedInputException: Cannot construct instance of java.util.ArrayList (although at least one Creator exists): no String-argument constructor/factory method to deserialize from String value

Ref: multi-select  in medusa-ui Sample application

Applied JS fix as discussed, maybe this will solve the problem?

Select multiple works fine now! 👍
Included detection for input fields with an identical name #326
These too must send data as an Array.

For now only look at checkboxes with identical names


xorg.utilmacros: 1.19.2 -> 1.19.3

Motivation for this change
https://lists.x.org/archives/xorg-announce/2021-January/003069.html
Things done

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

[x] NixOS

[x] Fits CONTRIBUTING.md.

@ofborg eval

@ofborg eval

What needs to be done to get this merged?

@ofborg eval
🤔
error: --- ThrownError ----------------------------------------------------------------------------------------------------------------------------------------------------------------- nixrubyPackages_2_5 was deprecated in 2021-02: use a newer version of rubyPackages instead
(use '--show-trace' to show detailed location information)
nix --experimental-features nix-command eval --json --impure --expr (import /nix/store/mfcbkv3fasbb3z9g7pssip5qybdi1j3z-nixpkgs-review/lib/python3.8/site-packages/nixpkgs_review/nix/evalAttrs.nix /run/user/1000/tmpzlqibvwy) failed to run, /run/user/1000/tmpzlqibvwy was stored inspection
https://github.com/NixOS/nixpkgs/pull/111404 failed to build

How are you getting that?

How are you getting that?

the ofborg eval had removed packages in it and nixpkgs-review used that.


Match strategy problem

Hello
In this for loop
    for j in range(best_prior_idx.size(0)):
        best_truth_idx[best_prior_idx[j]] = j

a ground truth may be not assigned to any anchors.
for example,  when j=0 and 1, the best_prior_idx[j] both equals to 2, i.e. both ground truth 0 and ground truth 1 , their best matched anchor are the same anchro2.  , as do j=0 first, then do j=1, so then gound truth 0 may not be assigned to any anchors?
Please tell me is I missed something.

Hello,
I was wondering the same, do you have any news ? As I saw the same function on other repositories, I think I do not understand something...

The Match strategy is similar to caffe, and the conf_t is true to decide negtive and positive sample. The calculation is base on tensor, so is hard to use for loop.

I think different spatio of default boxes enhance the density of tiling boxes distribution and prevent the situation that different ground truth boxes assigned by the same default box?


Verify encoding inconsistencies post de/serialization of args

Bug-details

Goose does de/serialization of Job args using Nippy. Validation of whether args are serializable is done by comparing value-equality of original args with de/serialized args. At the time of implementation, this seemed like an exhaustive way to detect serializability.
For some data structures, value equality check post de/serialization returns true. However, re-encoding these data structures results in a different encoding. This happens when a generic data-structure, which should extend freeeze/thaw didn't do it, but got away with it due to equality of values post de/serialization.
Post de-queuing a Job & executing it, Goose removes the Job by re-encoding it & calling LREM <job-element> (or equivalent command for other brokers).
Due to encoding mismatch of args, the element in broker from the remove command.
This causes a Job to stay enqueued inside a broker, and be executed indefinitely.
This bug causes scheduled Jobs to be enqueued & executed infinitely as well.

Reproducing the bug
(ns my.namespace
  (:require
    [goose.client :as c]
    [tech.v3.dataset :as ds]))

;;; A tech.v3.DS was reported to have mis-matching types post
;;; de/serialization. This ugliness is the ONLY way to reproduce this bug.
(defn sample-dataset-data []
  (assoc (-> {:1 1 :2 2 :3 3 :4 4 :5 5 :6 6 :7 7 :8 8}
             ds/->dataset
             ds/mapseq-reader
             first)
    :9 9))
(c/perform-async c/default-opts `prn sample-dataset-data)

Solution
Goose will now check for consistency in encoding of given args. Maintaining pre-post serialization data integrity seems like a sufficient and exhaustive way to determine serializability, at least for now :)
Changes Users will be required to make
When Goose spec catches inconsistent encodings, Users will have to extend Nippy serialization for their custom types. In this case, something like this:
(ns my.namespace
  (:require [tech.v3.dataset :as ds]))

(nippy/extend-freeze
  tech.v3.datatype.FastStruct
  :tech.v3.datatype.FastStruct ; A unique identifier for nippy.
  [x data-out]
  (nippy/freeze-to-out! data-out (into {} (:data x))))

(nippy/extend-thaw
  :tech.v3.datatype.FastStruct
  [data-input]
  (let [x (nippy/thaw-from-in! data-input)]
    (-> x
        ds/->dataset
        ds/mapseq-reader
        first)))

cc @chage


[BEAM-4327] Fix ErrorProne violations in fn-harness

This makes future ErrorProne violations become compile-time errors.

Follow this checklist to help us incorporate your contribution quickly and easily:

[x] Format the pull request title like [BEAM-XXX] Fixes bug in ApproximateQuantiles, where you replace BEAM-XXX with the appropriate JIRA issue, if applicable. This will automatically link the pull request to the issue.
[x] If this contribution is large, please file an Apache Individual Contributor License Agreement.

It will help us expedite review of your Pull Request if you tag someone (e.g. @username) to look at it.

R: @timrobertson100

Seems this needs a rebase (added me as R just because a committer is needed.
Please go ahead with the review @timrobertson100).

Looks good @swegner - thanks
2 small suggestions for inline comment and can you rebase please?

Done; rebased and added comments for suppressions. This is ready for another round of review.
@timrobertson100 please take a look.

@swegner - this is the build failure:
https://scans.gradle.com/s/n6bhn6aalygfe/console-log?task=:beam-sdks-java-harness:compileJava#L3

Thanks, looks like I missed some things in the merge. I apologize for not building locally first.
Compile errors fixed (and tested locally). @timrobertson100 please take a look.

Ok, feedback addressed and tests are passing. @timrobertson100 please take a look

LGTM @swegner - thanks
@iemejia PTAL when you get a chance


Add glossary entry for probe

I made a glossary entry for probe issue #39608
I may have made some mistakes since I am new to this but all feedback is welcomed

/sig node

Hey, can I get these changes reviewed if possible. Thank you in advance.

/assign @SergeyKanzhelev @mrunalp

@KhushPatibandha I don't see this in the glossary preview for some reason. Do you happen to know why?

/cc

@KhushPatibandha I don't see this in the glossary preview for some reason. Do you happen to know why?

Hey @bart0sh can you please elaborate on what you are saying? I thought I am only suppose to make a file named "probe.md" and add all the content in there. Am I suppose to do something differently that I am missing out on?

Hey @bart0sh can you please elaborate on what you are saying? I thought I am only suppose to make a file named "probe.md" and add all the content in there. Am I suppose to do something differently that I am missing out on?

I was hoping to see this content in the preview for this PR, but I don't see it there for some reason. This could be just because preview is not generated properly and doesn't include glossary content or because what you did is not enough. I'd suggest you to investigate this further.

Sure I'll look into it.

/label tide/merge-method-squash
/lgtm

Preview page:
https://deploy-preview-40131--kubernetes-io-main-staging.netlify.app/docs/reference/glossary/?all=true#term-probe

/approve


Update mensa data

Uses the new data source w/ current tmp location at lucas-vogel.de. There's a few small serverside kinks to be worked out, then we can find a location to host this ourselves.
Huge thanks to @lucasvog btw! This saves an enormous amount of pain on working with mensa data.
Resolves #21

BTW: This adds an ATS exception for lucas-vogel.de, which should be removed again when we host the mensa scraper ourselves.


Conflicting licenses

In the JQueryRC4.js file it says "released under the terms of the Gnu Public License" but the LICENSE file is an MIT license.

The licensing disparity has been corrected.  Both files reflect the MIT license.


”Gârnic”, ”Padina Matei” are listed in the drop-down menu

Description:
When user writes ”Gârnic”, ”Padina Matei” the locations appear in the drop-down menu next to the comune and the county witch is a part according to the law.
Precondition:
The website is up an running.

Step 1
Write in the search bar "Gârnic"

Expected results
The location appears in the drop-down menu as "Sat Gârnic, CARAȘ-SEVERIN(Gârnic)".

Step 2
Press "x" button.

Expected results
The location was deleted from the search bar.


Don't log

Currently we log entire TTLV buffers at trace level and on error log the buffer and a human readable representation of the TTLV tree (as much as can be deserialized that is).
This is quite different to how other Serde based deserializer crates work and has several issues:

It spams the logs, potentially with sensitive data given that TTLV was originally created for the crypto domain. How sensitive the data is depends on the use to which TTLV is being put which only the calling application can know, and so the decision to log this or not should be left to the caller.

If the caller finds it useful to keep/log/record somehow the original byte stream they are the ones that pass it to us for deserialization and so we don't need to be the ones preserving it or taking on that responsibility. None of the deserializer crates listed on https://serde.rs/ have a direct (and probably not even indirect) dependency on the log crate, so neither should we.

Typically deserializer crates expose a location into the "document" being deserialized and a high level indication of the type of problem encountered, and that's it. Textual deserializers such as serde_json include in the error type the line and column number of the point of deserialization failure, binary deserializers indicate an offset into the byte stream.

Rather than force rich error messages on the caller of this crate, perhaps instead it is better to offer useful functions that can be optionally used to render the data and error location in a more accessible form.
An alternative is something like https://lapo.it/asn1js/ which renders the binary format in a human readable form. Perhaps this crate could be compiled to WASM to enable deserialization to happen in the client browser without ever sending sensitive data to a 3rd party service.
Or a Rust Wireshark plugin for decoding the TTLV format perhaps, combined with support for dumping the TLS keys at the caller application level?
Summary of approaches taken by existing Serde binary deserializer crates:

serde_pickle: Error with high level variants Io, Eval and Syntax, the latter two including an ErrorCode with many variants, some that contain the problematic data fragment and/or possibly a rich message.
serde_bson: Error with many variants including IoError, some that contain the problematic data fragment and/or possibly a rich message.
serde_avro: DeError with many many variants, some with string values.
serde_postcard: Error with many variants, none with associated data, no indication of where a problem was encountered in the data stream.
serde_flatbuffers: ErrorTraceDetail and InvalidFlatBuffer with various kinds of index into the data stream and names of fields or types involved.
serde_bendy: ErrorKind with 5 variants mostly with strings.
serde_bincode: ErrorKind with multiple variants some with values, and one Custom(String)
serde_cbor: Error has functions for offset and classify the latter returning a Category which can be Io, Syntax, Data or Eof, no other data.
rmp_serde: Error with multiple variants some with Strings.

At any rate, perhaps we should log less. Logging actual data shouldn't be necessary. We need an error type that indicates the type of failure, possibly the invalid value encountered (if we can be sure it is not sensitive), and some way to understand the context of the point where deserialization failed e.g. the TTLV tag chain that leads to the point of deserialization failure.

Logging was removed in the v0.2.0 release.


Feature Request: Add Prometheus / OpenTelemetry metrics

In our infrastructure, we use massively Dynatrace for our projects but we use Prometheus for our infrastructure.
It is possible to expose One Agent Operator metrics?

Hi, thank you for your request. What would you be interested in? I imagine things related to the health of the Operator and OneAgent Pods?
Best regards,
Luis

Hi, thx for the quick response.
At the beginning, just basic metrics like health, concurrent pods, go related metrics, etc. But not only. We also need "business metrics" to monitor one agent operator services (concurrent connexion' etc).
I didn't check the code and I'm not a Dynatrace expert so I'm not aware on which metrics should be exposed but a better observability (with Grafana for example) is just better 😄. (Basically, we grab all the metrics we can and during production, we analyse and monitor some metrics at an higher level and put new alerts to prevent the next "disaster").
And to be honest, Dynatrace is used in our beta clusters (we have something like 100 projects) and we will be more confident to put Dynatrace in our production clusters (with an higher level of risk and far more projects) with a better observability.

oh nice, while we are auditing... we just saw we already have /metrics <3

thx

Well, partly, if you use v0.8.0 for example, there is new webhook Pod that currently doesn't publish any metrics. We'll take a proper look internally. Thank you for your feedback.
Best regards,
Luis


Fix shadow map test

Fixes https://github.com/AnalyticalGraphicsInc/cesium/issues/6582
The failure was caused by the default plane changing from 1.0 to 0.1 that went along with log depth, but was really a problem with how the test was written.
The fix was to push the camera forward slightly in order to see the shadow and not the box casting the shadow. Previously the camera must have seen through the box due to the larger near plane.

@lilleyse, thanks for the pull request! Maintainers, we have a signed CLA from @lilleyse, so you can review this at any time.
:warning: I noticed that CHANGES.md has not been updated. If this change updates the public API in any way, fixes a bug, or makes any non-trivial update, please add a bullet point to CHANGES.md and comment on this pull request so we know it was updated. For more info, see the Pull Request Guidelines.

I am a bot who helps you make Cesium awesome! Contributions to my configuration are welcome.
:earth_africa: :earth_americas: :earth_asia:

Thanks @lilleyse!


add all POI with names

I have recently rediscovered Qwant maps (great work in the last year and a half, it looks great now).
From what gather from some previous issues, it seems that Qwant map only import POIs from OSM that have a specific tag.
Would it be possible to import all POI that have a name? Or at least make them searchable and have a category "show all POI".
Motivation:
Because of the flexibility of OSM, some features that do not have an obvious tag may end up being attributed to different tags depending on who is mapping OSM. Consequently, some same features will appear on Qwant maps while others won't. This is not a hypothetical issue, I have observed this problem in the region where I live.

Could you elaborate on what the issue is? Give a list of the nodes you have seen what the problems with those nodes are. Can the problems be solved by editing the map? Why not edit the nodes to reflect what the map renderers actually use? Or is a new and extended node tagging practice not being implemented by Qwant maps?

Sorry if I was not clear. This problem cannot be solver by editing the map.  I believe it is the last option that I am referring to:
Every feature (nodes, area, line) from OSM which has the tag "name" filled with something could (should?) be imported.
If it has a name, it means someone might want to look for it. There are many examples but here are two in particular:

Some buildings have names (especially in universities) and these are used de facto as addresses
Some residential areas have names used to denote a community. This is fairly common in the US but not in France.

Another case: post offices in France are not clickable.
For example, I can't view the opening hours of the post office Paris Goncourt with Qwant Maps.


This is to fix issue 20 the folder rename to mcad-controllers

The kar-controllers folder is renamed to mcad-controllers.

@dmatch01 When running the build script, the local source path multi-cluster-app-dispatcher does not exist and is not known to Docker. Is this issue caused by something I did incorrectly with Docker or is something wrong with my local repo?

@dmatch01 When running the build script, the local source path multi-cluster-app-dispatcher does not exist and is not known to Docker. Is this issue caused by something I did incorrectly with Docker or is something wrong with my local repo?

@jenellemillison Could you post the error message and the output of the build command here?  Also, could provide the current path where you are running the build script (issue the terminal command pwd).

@dmatch01 When running the build script, the local source path multi-cluster-app-dispatcher does not exist and is not known to Docker. Is this issue caused by something I did incorrectly with Docker or is something wrong with my local repo?
@jenellemillison Could you post the error message and the output of the build command here?  Also, could provide the current path where you are running the build script (issue the terminal command pwd).  Thank you!

@dmatch01 When running the build script, the local source path multi-cluster-app-dispatcher does not exist and is not known to Docker. Is this issue caused by something I did incorrectly with Docker or is something wrong with my local repo?
@jenellemillison Could you post the error message and the output of the build command here?  Also, could provide the current path where you are running the build script (issue the terminal command pwd).  Thank you!

@dmatch01 Sure! Here's the error message, output of the build command, and the current path
Error message and output of build command:
$ ./build.sh
++ cd ..
++ pwd
+ project_root=/c/Users/JAMil/multi-cluster-app-dispatcher
+ git_path=github.com/IBM/multi-cluster-app-dispatcher
++ docker run --rm -v /c/Users/JAMil/multi-cluster-app-dispatcher:/go/src/github.com/IBM/multi-cluster-app-dispatcher -d -w /go/src/github.com/IBM/multi-cluster-app-dispatcher/deployment golang:alpine ./build-inside-container.sh
C:\Program Files\Docker\Docker\Resources\bin\docker.exe: Error response from daemon: Mount denied:
The source path "C:/Users/JAMil/multi-cluster-app-dispatcher;C"
doesn't exist and is not known to Docker.
See 'C:\Program Files\Docker\Docker\Resources\bin\docker.exe run --help'.
+ container_id=
+ docker logs -f
"docker logs" requires exactly 1 argument.
See 'docker logs --help'.

Usage:  docker logs [OPTIONS] CONTAINER

Fetch the logs of a container

Current path:
$ pwd
/c/Users/JAMil/multi-cluster-app-dispatcher/deployment

Closing this PR due to inactivity.


bootstrap-wysihtml5 text-editor getting error when that is hidden at page load in a bootstrap tab

I have create wysihtml5 text-editor that is hidden at page load in a bootstrap tab group. Following steps:

Click on "Insert Link" tool from toolbar.
Add link like 'http://google.com' in popup
Click on "Insert Link" button then

Getting following error in console only for Firefox Mozilla (it is working in fine other browser like Chrome, Safari and IE.):
TypeError: Argument 1 of Range.setStartAfter is not an object. (wysihtml5-0.3.0.js (line 2240, col 25))
this.nativeRangename;

Dear,
Its old plugin, try using new plugin tinymce


METRON-2335: [UI] Implement synchronization between browser user state and Hbase user state

Contributor Comments
Link to the original JIRA: https://issues.apache.org/jira/browse/METRON-2335
This PR includes changes regarding where to store user related settings and the removal of the DataSource abstract class and its implementation called ElasticSearchLocalstorageImpl.
We understand the basic idea behind the concept of having an abstract class and its implementations but I believe that it was wrongly used and had many problems.
First of all, in that case, having an interface instead of an abstract class would have been more appropriate.
Secondly, the name of the implementation class is ElasticSearchLocalstorageImpl. Yes it persists data in the Browser's local storage but has nothing to do with Elasticsearch. Also, this frontend service should not know about the chosen tool on the backend side because it's irrelevant from this perspective.
I believe that the original idea was to easily switch between approaches of storing this kind of data on the backend but since the frontend should not know about these details, it's not necessary to use this concept anymore.
Also, if you take a look at the implementation class (ElasticSearchLocalstorageImpl), there are methods which aren't required by the abstract class and they communicate with an http server directly in order to save or get alerts data. But these methods are unused, we rather get this data independently from the data source class however it was the original idea behind having it.
Long story short, we decided to completely eliminate the DataSource class and its implementation and rather have a so-called UserSettingsService in order to get and store user specific settings on the backend.
They used to be stored in the browser's local storage but this approach works only on one computer but we would like the users to be able to get their desired settings on every computer they're logged in.
The following user settings are replaced from the local storage to Hbase:

time zone configuration
show/hide dismissed and resolved alserts
auto-polling settings
table configuration
saved and recently used saved searches

We decided to store everything simply in Hbase because it provides us the freedom to store basically anything without having backend work involved (declaring Java classes and additional Java properties, etc.).
Pull Request Checklist
Thank you for submitting a contribution to Apache Metron.
Please refer to our Development Guidelines for the complete guide to follow for contributions.
Please refer also to our Build Verification Guidelines for complete smoke testing guides.
In order to streamline the review of the contribution we ask you follow these guidelines and ask you to double check the following:
For all changes:

[X] Is there a JIRA ticket associated with this PR? If not one needs to be created at Metron Jira.
[X] Does your PR title start with METRON-XXXX where XXXX is the JIRA number you are trying to resolve? Pay particular attention to the hyphen "-" character.
[X] Has your PR been rebased against the latest commit within the target branch (typically master)?

For code changes:

[X] Have you included steps to reproduce the behavior or problem that is being changed or addressed?

[X] Have you included steps or a guide to how the change may be verified and tested manually?

[X] Have you ensured that the full suite of tests and checks have been executed in the root metron folder via:
mvn -q clean integration-test install && dev-utilities/build-utils/verify_licenses.sh

[X] Have you written or updated unit tests and or integration tests to verify your changes?

[X] If adding new dependencies to the code, are these dependencies licensed in a way that is compatible for inclusion under ASF 2.0?

[X] Have you verified the basic functionality of the build by building and running locally with Vagrant full-dev environment or the equivalent?

For documentation related changes:

[X] Have you ensured that format looks appropriate for the output in which it is rendered by building and verifying the site-book? If not then run the following commands and the verify changes via site-book/target/site/index.html:
cd site-book
mvn site

[X] Have you ensured that any documentation diagrams have been updated, along with their source files, using draw.io? See Metron Development Guidelines for instructions.

Note:
Please ensure that once the PR is submitted, you check travis-ci for build issues and submit an update to your PR as soon as possible.
It is also recommended that travis-ci is set up for your personal repository such that your branches are built there before submitting a pull request.

I'm closing and re-opening the PR to force Travis to run the build again.

@sardell found a race condition in the app during testing. I tested the changes with the dev tools opened which slows down the runtime so I hadn't got the chance to meet the problem.
So there was a race between the user settings service loading the data from the server and the alerts list component. Sometimes the component got rendered earlier before the user settings service loaded the settings successfully.
The main goal was to load the user settings before anything is rendered on the screen and originally I wanted to use the APP_INITIALIZER to load the settings but the user needs to be logged in in order to reach hdfs via the api service, so the APP_INITIALIZER could not have worked. That's why I put this mechanism into the Authentication service but it led to a race condition.
So I came up with another strategy and implemented a resolver which can be used as a route guard in the routing module. By implementing the resolver, I managed to make sure that the user settings are successfully loaded from the server before the route component gets rendered.
Thanks for catching this issue, @sardell 👍!

I tested all of the user settings you mentioned with full dev and everything works great from a user's perspective.
This is great work, but, of course, I have a few follow up questions. 🙂

I noticed that every time we are making a POST request to HDFS with the settings you listed above, we are making two http requests. Why is that?
I noticed that when I initially load the page and click on the settings icon, I'm seeing the two http calls mentioned previously even though I haven't made any configuration changes yet. The first call returns with a 500 status and the other returns 200. This only happens the first time I click on the settings icon after a page load. Both calls are to the same endpoint with what appears to be the same request payload.

Good points, @sardell . 👍
This PR is focusing on the replacement of the services which means, instead of using the data source class and saving these user settings to local storage, let's just persist them in hdfs. I have just changed the service calls in the exact same places where they used to be called but with the previous service (data source) or where they were directly stored to local storage. So basically it's an issue on the level of the implementation of these features (like auto polling, show/hide, etc.) and not on the new service's level.
So actually these components or services called the methods multiple times to persist the user settings to local storage but it was hardly noticeable but now it is noticeable, since we're performing actual http requests. So in my opinion, if it's suboptimal now, it was suboptimal before as well and I didn't want to optimise the features because it's already a big PR with lots of changes and I didn't want to increase the difficulty for the reviewer because, in my opinion, it's out of the scope of this issue.
But it's true for sure, it's not nice. Even though there are multiple http calls unnecessarily and the server throws an error (it does because we're hitting hdfs frequently probably but not sure), it works fine. I'm open to introduce enhancements on the features` level in order to get rid of these problems.
Would you like me to do it in this PR or it should be a separate Jira task with a separate PR?

Just for the record, here's what's happening on the features` level:

When you open pane where you can change the rows per table or the refresh rate, the show/hide service persists the show/hide dismissed alerts and the show/hide resolved alerts when the component is initialised. (2 http calls)

When you change the refresh rate, auto-polling service and configure-table service persists their state (2 calls)

It's the same when you change the rows per page (2 calls)

When you switch the hide dismissed alerts, the configure-table service persists its state and the auto-polling service persists its state twice (3 calls)

The same goes for the hide resolved alerts switch (3 calls)

When you switch the "Convert timestamps to local time", it works fine (1 call)

When you open the table columns settings pane and click on the save button, the column-names service and the configure-table service persist their state (2 calls)

I don't want to details the calls in the save-search module but you get the point.
Also, as I said earlier, these changes are highly opinionated and radically changed the way how we handle user settings involving backend parts. So I'm really curious about @mmiklavc and @nickwallen 's opinion about this. And they might be able to explain the error message given by the server which is the following:
RestException: No lease on /user/metron/user-settings (inode 16861): File does not exist. [Lease.  Holder: DFSClient_NONMAPREDUCE_-955476593_1, pendingcreates: 1]↵	at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.checkLease(FSNamesystem.java:3697)↵	at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.analyzeFileState(FSNamesystem.java:3498)↵	at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getNewBlockTargets(FSNamesystem.java:3336)↵	at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getAdditionalBlock(FSNamesystem.java:3296)↵	at org.apache.hadoop.hdfs.server.namenode.NameNodeRpcServer.addBlock(NameNodeRpcServer.java:850)↵	at org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolServerSideTranslatorPB.addBlock(ClientNamenodeProtocolServerSideTranslatorPB.java:504)↵	at org.apache.hadoop.hdfs.protocol.proto.ClientNamenodeProtocolProtos$ClientNamenodeProtocol$2.callBlockingMethod(ClientNamenodeProtocolProtos.java)↵	at org.apache.hadoop.ipc.ProtobufRpcEngine$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine.java:640)↵	at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:982)↵	at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:2351)↵	at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:2347)↵	at java.security.AccessController.doPrivileged(Native Method)↵	at javax.security.auth.Subject.doAs(Subject.java:422)↵	at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1869)↵	at org.apache.hadoop.ipc.Server$Handler.run(Server.java:2347)↵

cc @tiborm

@ruffle1986 Thanks for the thorough explanation.

So basically it's an issue on the level of the implementation of these features (like auto polling, show/hide, etc.) and not on the new service's level.

So in my opinion, if it's suboptimal now, it was suboptimal before as well and I didn't want to optimise the features because it's already a big PR with lots of changes and I didn't want to increase the difficulty for the reviewer because, in my opinion, it's out of the scope of this issue.

I completely agree with you, and I appreciate your consideration for the reviewer(s) of this PR. We can make changes to the actual component implementations in another PR to keep this scope of work focused on the task you set out to accomplish.
I'm a +1 on this, but I'm going to let it sit for another day to make sure others have a chance to weigh in if they want. Thanks for the contribution, @ruffle1986!