Feature: MIPS Support

Hi, I'm working on getting this to compile for MIPS, specifically, mipsel-sony-psp :smile: I've encountered a couple issues, the first of which was
.cflag("--specs=nosys.specs")

in the build.rs of drogue-tls-sys, which I commented out to get a bit further, resulting in the following linker error:
error: linking with `rust-lld` failed: exit code: 1
  |
  = note: "rust-lld" "-flavor" "gnu" "--emit-relocs" "--script" "/tmp/rustceQaBEg/rustc-mipsel-sony-psp-linkfile.ld" "--eh-frame-hdr" "-L" "/home/paul/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/mipsel-sony-psp/lib" "/tmp/cargo/target/mipsel-sony-psp/release/deps/tls_test-fe407b252425d246.tls_test.bh5ffmnh-cgu.0.rcgu.o" "/tmp/cargo/target/mipsel-sony-psp/release/deps/tls_test-fe407b252425d246.tls_test.bh5ffmnh-cgu.1.rcgu.o" "/tmp/cargo/target/mipsel-sony-psp/release/deps/tls_test-fe407b252425d246.tls_test.bh5ffmnh-cgu.10.rcgu.o" "/tmp/cargo/target/mipsel-sony-psp/release/deps/tls_test-fe407b252425d246.tls_test.bh5ffmnh-cgu.11.rcgu.o" "/tmp/cargo/target/mipsel-sony-psp/release/deps/tls_test-fe407b252425d246.tls_test.bh5ffmnh-cgu.12.rcgu.o" "/tmp/cargo/target/mipsel-sony-psp/release/deps/tls_test-fe407b252425d246.tls_test.bh5ffmnh-cgu.13.rcgu.o" "/tmp/cargo/target/mipsel-sony-psp/release/deps/tls_test-fe407b252425d246.tls_test.bh5ffmnh-cgu.14.rcgu.o" "/tmp/cargo/target/mipsel-sony-psp/release/deps/tls_test-fe407b252425d246.tls_test.bh5ffmnh-cgu.15.rcgu.o" "/tmp/cargo/target/mipsel-sony-psp/release/deps/tls_test-fe407b252425d246.tls_test.bh5ffmnh-cgu.2.rcgu.o" "/tmp/cargo/target/mipsel-sony-psp/release/deps/tls_test-fe407b252425d246.tls_test.bh5ffmnh-cgu.3.rcgu.o" "/tmp/cargo/target/mipsel-sony-psp/release/deps/tls_test-fe407b252425d246.tls_test.bh5ffmnh-cgu.4.rcgu.o" "/tmp/cargo/target/mipsel-sony-psp/release/deps/tls_test-fe407b252425d246.tls_test.bh5ffmnh-cgu.5.rcgu.o" "/tmp/cargo/target/mipsel-sony-psp/release/deps/tls_test-fe407b252425d246.tls_test.bh5ffmnh-cgu.6.rcgu.o" "/tmp/cargo/target/mipsel-sony-psp/release/deps/tls_test-fe407b252425d246.tls_test.bh5ffmnh-cgu.7.rcgu.o" "/tmp/cargo/target/mipsel-sony-psp/release/deps/tls_test-fe407b252425d246.tls_test.bh5ffmnh-cgu.8.rcgu.o" "/tmp/cargo/target/mipsel-sony-psp/release/deps/tls_test-fe407b252425d246.tls_test.bh5ffmnh-cgu.9.rcgu.o" "-o" "/tmp/cargo/target/mipsel-sony-psp/release/deps/tls_test-fe407b252425d246" "/tmp/cargo/target/mipsel-sony-psp/release/deps/tls_test-fe407b252425d246.2l1r74g8j7bd858c.rcgu.o" "-O1" "-L" "/tmp/cargo/target/mipsel-sony-psp/release/deps" "-L" "/tmp/cargo/target/release/deps" "-L" "/tmp/cargo/target/mipsel-sony-psp/release/build/drogue-ffi-compat-814b53b555495bf6/out" "-L" "/tmp/cargo/target/mipsel-sony-psp/release/build/drogue-tls-sys-d0da709cd8350c71/out/build/library" "-L" "/tmp/cargo/target/mipsel-sony-psp/release/build/psp-eaba5d74c30458e4/out" "-L" "/home/paul/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/mipsel-sony-psp/lib" "--start-group" "-Bstatic" "/tmp/cargo/target/mipsel-sony-psp/release/deps/libpsp-880272dbea34a26f.rlib" "/tmp/cargo/target/mipsel-sony-psp/release/deps/libbitflags-1f778bbfceb482be.rlib" "/tmp/cargo/target/mipsel-sony-psp/release/deps/libnum_enum-ea1108a89ed97b11.rlib" "/tmp/cargo/target/mipsel-sony-psp/release/deps/libpanic_unwind-9d5a773e48ad5301.rlib" "/tmp/cargo/target/mipsel-sony-psp/release/deps/libunwind-34749114f5c2ae2c.rlib" "/tmp/cargo/target/mipsel-sony-psp/release/deps/liblibc-304ab79f6e16861a.rlib" "/tmp/cargo/target/mipsel-sony-psp/release/deps/libcfg_if-6eba1e6d19653fc1.rlib" "/tmp/cargo/target/mipsel-sony-psp/release/deps/libpaste-5cdf41bac73a8b8a.rlib" "/tmp/cargo/target/mipsel-sony-psp/release/deps/libdrogue_tls-78fcc7b9b95d3a05.rlib" "/tmp/cargo/target/mipsel-sony-psp/release/deps/liblog-bd5a3f0baf5c9591.rlib" "/tmp/cargo/target/mipsel-sony-psp/release/deps/libcfg_if-52575463aa6737fe.rlib" "/tmp/cargo/target/mipsel-sony-psp/release/deps/libdrogue_network-eca1c74b036417ac.rlib" "/tmp/cargo/target/mipsel-sony-psp/release/deps/libnb-a10826c77cebfb0f.rlib" "/tmp/cargo/target/mipsel-sony-psp/release/deps/libnb-3111f54c991fa057.rlib" "/tmp/cargo/target/mipsel-sony-psp/release/deps/libno_std_net-c9ef1072820a82cb.rlib" "/tmp/cargo/target/mipsel-sony-psp/release/deps/libcortex_m-7373f80f2a2f6a64.rlib" "/tmp/cargo/target/mipsel-sony-psp/release/deps/libvolatile_register-336bf940b6c1efbb.rlib" "/tmp/cargo/target/mipsel-sony-psp/release/deps/libvcell-53db5e0da633532a.rlib" "/tmp/cargo/target/mipsel-sony-psp/release/deps/libbare_metal-48a07fdcb8182655.rlib" "/tmp/cargo/target/mipsel-sony-psp/release/deps/libaligned-8a0578a4267a59c1.rlib" "/tmp/cargo/target/mipsel-sony-psp/release/deps/libdrogue_tls_sys-8a0a586684123d43.rlib" "/tmp/cargo/target/mipsel-sony-psp/release/deps/libdrogue_ffi_compat-c4119ac008e03123.rlib" "/tmp/cargo/target/mipsel-sony-psp/release/deps/libheapless-f50791a0a73c95eb.rlib" "/tmp/cargo/target/mipsel-sony-psp/release/deps/libas_slice-c0e127ac585661bc.rlib" "/tmp/cargo/target/mipsel-sony-psp/release/deps/libstable_deref_trait-73d7f4ad268a08a9.rlib" "/tmp/cargo/target/mipsel-sony-psp/release/deps/libgeneric_array-8e55ccf01a9512c0.rlib" "/tmp/cargo/target/mipsel-sony-psp/release/deps/libgeneric_array-2783b5efc350047e.rlib" "/tmp/cargo/target/mipsel-sony-psp/release/deps/libhash32-ac5d74c170e48ab8.rlib" "/tmp/cargo/target/mipsel-sony-psp/release/deps/libbyteorder-4d922be9382afeb1.rlib" "/tmp/cargo/target/mipsel-sony-psp/release/deps/libgeneric_array-d6bd62b464817469.rlib" "/tmp/cargo/target/mipsel-sony-psp/release/deps/libtypenum-e9ea79367608db85.rlib" "/tmp/cargo/target/mipsel-sony-psp/release/deps/liballoc-d8c8fb192fcc01cb.rlib" "/tmp/cargo/target/mipsel-sony-psp/release/deps/librustc_std_workspace_core-f5d2557c5bcf4e39.rlib" "/tmp/cargo/target/mipsel-sony-psp/release/deps/libcore-4b4dc1cf417634a3.rlib" "--end-group" "/tmp/cargo/target/mipsel-sony-psp/release/deps/libcompiler_builtins-8fd0e71070cc2276.rlib" "-Bdynamic"
  = note: rust-lld: error: /tmp/cargo/target/mipsel-sony-psp/release/deps/libdrogue_tls_sys-8a0a586684123d43.rlib(ctr_drbg.c.o) is incompatible with /tmp/cargo/target/mipsel-sony-psp/release/deps/tls_test-fe407b252425d246.tls_test.bh5ffmnh-cgu.0.rcgu.o
          rust-lld: error: /tmp/cargo/target/mipsel-sony-psp/release/deps/libdrogue_tls_sys-8a0a586684123d43.rlib(entropy.c.o) is incompatible with /tmp/cargo/target/mipsel-sony-psp/release/deps/tls_test-fe407b252425d246.tls_test.bh5ffmnh-cgu.0.rcgu.o
          rust-lld: error: /tmp/cargo/target/mipsel-sony-psp/release/deps/libdrogue_tls_sys-8a0a586684123d43.rlib(platform.c.o) is incompatible with /tmp/cargo/target/mipsel-sony-psp/release/deps/tls_test-fe407b252425d246.tls_test.bh5ffmnh-cgu.0.rcgu.o
          rust-lld: error: /tmp/cargo/target/mipsel-sony-psp/release/deps/libdrogue_tls_sys-8a0a586684123d43.rlib(debug.c.o) is incompatible with /tmp/cargo/target/mipsel-sony-psp/release/deps/tls_test-fe407b252425d246.tls_test.bh5ffmnh-cgu.0.rcgu.o
          rust-lld: error: /tmp/cargo/target/mipsel-sony-psp/release/deps/libdrogue_tls_sys-8a0a586684123d43.rlib(ssl_msg.c.o) is incompatible with /tmp/cargo/target/mipsel-sony-psp/release/deps/tls_test-fe407b252425d246.tls_test.bh5ffmnh-cgu.0.rcgu.o
          rust-lld: error: /tmp/cargo/target/mipsel-sony-psp/release/deps/libdrogue_tls_sys-8a0a586684123d43.rlib(ssl_tls.c.o) is incompatible with /tmp/cargo/target/mipsel-sony-psp/release/deps/tls_test-fe407b252425d246.tls_test.bh5ffmnh-cgu.0.rcgu.o
          rust-lld: error: /tmp/cargo/target/mipsel-sony-psp/release/deps/libdrogue_ffi_compat-c4119ac008e03123.rlib(printf.o) is incompatible with /tmp/cargo/target/mipsel-sony-psp/release/deps/tls_test-fe407b252425d246.tls_test.bh5ffmnh-cgu.0.rcgu.o

error: aborting due to previous error; 6 warnings emitted

error: could not compile `tls-test`

I did a bit more digging, namely, running ar x on the rlibs it mentioned, and then file on the resulting .o, which let me know it was compiled for x86_64.
ctr_drbg.c.o: ELF 64-bit LSB relocatable, x86-64, version 1 (SYSV), not stripped

Do I need to supply a MIPS-specific specs file or are the two issues unrelated? How can I tell it to compile for MIPS-2?

I would also recommend making the cortex-m dependency an optional dependency behind a feature flag.

So, I tried setting TARGET_CC to clang, and TARGET_CFLAGS to specify a clang target that's compatible, but it looks like TARGET_CFLAGS also get passed to gcc for linking. I wonder what others do here.

After lots of mucking about with cmake and c flags, I got all the mbedtls .a files built for mips. Now just a few functions missing when I try to link:
 = note: rust-lld: error: undefined symbol: strncmp
          >>> referenced by x509_create.c
          >>>               x509_create.c.obj:(mbedtls_x509_string_to_names) in archive ./library/libmbedx509.a
          >>> referenced by x509_create.c
          >>>               x509_create.c.obj:(mbedtls_x509_string_to_names) in archive ./library/libmbedx509.a
          >>> referenced by x509_create.c
          >>>               x509_create.c.obj:(mbedtls_x509_string_to_names) in archive ./library/libmbedx509.a
          >>> referenced 21 more times

          rust-lld: error: undefined symbol: strstr
          >>> referenced by x509_crt.c
          >>>               x509_crt.c.obj:(mbedtls_x509_crt_parse) in archive ./library/libmbedx509.a
          >>> referenced by pem.c
          >>>               pem.c.obj:(mbedtls_pem_read_buffer) in archive ./library/libmbedcrypto.a
          >>> referenced by pem.c
          >>>               pem.c.obj:(mbedtls_pem_read_buffer) in archive ./library/libmbedcrypto.a

          rust-lld: error: undefined symbol: strncpy
          >>> referenced by x509write_crt.c
          >>>               x509write_crt.c.obj:(mbedtls_x509write_crt_set_validity) in archive ./library/libmbedx509.a
          >>> referenced by x509write_crt.c
          >>>               x509write_crt.c.obj:(mbedtls_x509write_crt_set_validity) in archive ./library/libmbedx509.a

          rust-lld: error: undefined symbol: strcmp
          >>> referenced by cipher.c
          >>>               cipher.c.obj:(mbedtls_cipher_info_from_string) in archive ./library/libmbedcrypto.a
          >>> referenced by ecp.c
          >>>               ecp.c.obj:(mbedtls_ecp_curve_info_from_name) in archive ./library/libmbedcrypto.a
          >>> referenced by ecp.c
          >>>               ecp.c.obj:(mbedtls_ecp_curve_info_from_name) in archive ./library/libmbedcrypto.a
          >>> referenced 20 more times

          rust-lld: error: undefined symbol: rand
          >>> referenced by rsa.c
          >>>               rsa.c.obj:(mbedtls_rsa_self_test) in archive ./library/libmbedcrypto.a
          >>> referenced by rsa.c
          >>>               rsa.c.obj:(myrand) in archive ./library/libmbedcrypto.a

Could these be good candidates for inclusion in drogue-ffi-compat?


POST not sending request body

I'm locally testing my nodejs server and somehow the POST body with application/json
does not seem to get send properly using curl like below works fine
curl -H "Content-Type: application/json" -X POST -d '{"id":"myjsonobject"}' http://url.com
Expected outcome
POST body should be included
Actual outcome
POST body is missing
Versions
App: <IP_ADDRESS>-stable
Chrome: 50.0.2661.102
Platform: Mac OS X (10_11_5)

Hi,
Thank you for issue report.
I can't reproduce the problem. Can you post a source message that you can read in the response panel under request header? It should be something like this:
POST / HTTP/1.1
HOST: httpbin.org
content-type: application/json
content-length: 21

{"id":"myjsonobject"}

Ok this is weird, today I picked the exact same request from the history and started the server exactly as I left it off yesterday and it is working fine. I'll report back if it happens again or I figure out how to reproduce the issue. I would say my server was at fault, but then again it was working properly with curl.

I'm not sure what could have happened here either. If it is working right now it means that it should have been working yesterday - it's the same set of data.
I have nothing to investigate so I'll close this issue. However, if you'll be able to reproduce the problem, please, re-open the issue.


Explore how to improve the toolbar

It can be difficult for some users to navigate +100 functions. Adding descriptions could help. Here is an excel example.

Labels were added but this may still require to label the sections.


Retain zip files, delete build directories instead

download files as project_master.zip as opposed to master.zip
keep the zip files after fpm is run
delete unzipped directories

Breaking
Changes archive handling logic in build bins -- so should rerun build_bins.sh on a disconnected cluster.

LGTM


DynamicNodeManager Grain Size

After some consideration, I decided to make the current grain size apply only to threading across leaf nodes and to add an additional grain size to thread across non-leaf nodes.
For most cases, adjusting the grain size for the leaf node threading is what you want, but at least with this implementation there's the option to provide an additional grain size for internal node threading rather than having this hard-coded to any particular value. By default, non-leaf node threading is set to 1.

Does this fix the problem of having 8 root nodes with a trivial tree? Don't we still then always spawn 8 threads even though the total leaf count may be small?
(I guess we can also argue we should fix the 8-root node probelm anyways, as that probably is a big speed win...)

If you were to choose a grain size of 8 for non-leaf nodes and 1 for leaf nodes, then yes. It would dispatch just 1 thread for the 8 root node children but still parallelize across the leaf nodes with 1 thread per leaf. Is that what you meant?

I think my objections still stand, but the real problem is that we have 8 root nodes when we shoudn't. Hopefully we fix that at some point and my issues are moot, so I think I shouldn't be holding this PR back.

Thanks @jmlait, yes agreed fixing the 8 root node children would reduce the threads being spawned for this use case.


EntityRepository class name is confusing

The Repository class mentions entities already because we have a generic type E (which is bound by Entity).
What is different in the class, which is now called EntityRepository is that its functionality is based on storing entities in records (unlike AggregateRepository, which stores event streams by aggregates).
Suggested new name is: RecordBasedRepository.

Fixed by #259


API returning 0 results with 'q' parameter

Example link: https://dev-ecoengine.berkeley.edu/api/observations/?q=""&page_size=100
Possibly re-indexing?

I think the SearchEngine treats q= differently from q="". The first case
meaning that there is no filter applied, the second looking for tokens with
an empty string. However, I will investigate this issue further, maybe
adjusting settings will help.
Falk
On Mon, Feb 23, 2015 at 1:59 PM, Kai<EMAIL_ADDRESS>wrote:

Assigned #125 https://github.com/stamen/ecoengine/issues/125 to
@postfalk https://github.com/postfalk.
—
Reply to this email directly or view it on GitHub
https://github.com/stamen/ecoengine/issues/125#event-240499829.

--
Falk Schuetzenmeister, PhD
Web Application Developer
Geospatial Innovation Facility http://gif.berkeley.edu/
University of California Berkeley
111 Mulford Hall
94720 Berkeley, CA
<EMAIL_ADDRESS>1-510-642-4897

q= is also showing 0 results: https://dev-ecoengine.berkeley.edu/api/observations/?q=&page_size=100
start_date works though, so it's probably a Search API issue https://dev-ecoengine.berkeley.edu/api/observations/?start_date=1990&page_size=100

Returns nothing
https://dev-ecoengine.berkeley.edu/api/observations/?q=""&page_size=100
Works as exspected
https://dev-ecoengine.berkeley.edu/api/observations/?q=&page_size=100
for me.
On Mon, Feb 23, 2015 at 2:14 PM, Kai<EMAIL_ADDRESS>wrote:

q= is also showing 0 results:
https://dev-ecoengine.berkeley.edu/api/observations/?q=&page_size=100
start_date works though, so it's probably a Search API issue
https://dev-ecoengine.berkeley.edu/api/observations/?start_date=1990&page_size=100
—
Reply to this email directly or view it on GitHub
https://github.com/stamen/ecoengine/issues/125#issuecomment-75648874.

--
Falk Schuetzenmeister, PhD
Web Application Developer
Geospatial Innovation Facility http://gif.berkeley.edu/
University of California Berkeley
111 Mulford Hall
94720 Berkeley, CA
<EMAIL_ADDRESS>1-510-642-4897

Our prototypes are working again too now.

Yeah, maybe the SearchEngine service was down. Will put it under supervisor
and make sure that it runs all the time.
Falk
On Mon, Feb 23, 2015 at 2:27 PM, Kai<EMAIL_ADDRESS>wrote:

Our prototypes are working again too now.
—
Reply to this email directly or view it on GitHub
https://github.com/stamen/ecoengine/issues/125#issuecomment-75651205.

--
Falk Schuetzenmeister, PhD
Web Application Developer
Geospatial Innovation Facility http://gif.berkeley.edu/
University of California Berkeley
111 Mulford Hall
94720 Berkeley, CA
<EMAIL_ADDRESS>1-510-642-4897


Simplify vm key update code path

Hopefully this kind of patch is welcome :-)
I encountered this during a code walk through. I'm trying to become familiar with some of the more critical code paths so I'll have a better overall understanding of how the system performs.
The vm Execute function was pretty difficult for me to follow. Functionally this patch does not change anything.  I do believe it is a worthwhile code quality improvement though.

Okay, patch has been updated to address feedback and fix the regression test failure.
I opted not to include the work I began on replacing the restClient with the virt core client. That work started to become more involved than just a refactor. I may submit it in a later pull request.

I was able to get 27/27 of the functional tests pass as well with this change :-)

Hold on. don't merge this just yet.

@stu-gott I've noticed a few transient failures with console related functional tests.

:+1:


Support per-VM volumes

After merge of  #1982 using single FS share by multiple VMs on the same host was broken. Also testing showed that quickly unplugging disk from a VM and hotplugging to other VM on the same host doesn't work as expected.
These problems have same root cause: Kubernetes treats different PVs that have same volumeHandle as referring to the same volume. And we used NBS disk/filesystem ID as a volumeHandle, so when we the volume has been already staged on the host scheduling a VM with different PV/PVC but same volumeHandle on this host resulted only in NodePublish call (mount to pod) but not NodeStage call (start endpoint).
This breaks VM scenarios because only one qemu process can work with vhost-socket simultaneously, so each VM requires its own endpoint to be started.
This PR resolves the problem by introducing support for new volumeHandle format: nbsId#instanceId instead of just nbsId.
With such handles volumes belonging to the same VM are reused across different pods (in case of hotplug) and volumes referring to the same FS/disk for different VMs have independent endpoints.
Support for old format is kept to avoid breaking existing volumes, but it should be deprecated and removed after the migration is complete.

Rebased to resolve conflict after merge of #2372

Disabled linter check of identifier naming
Rebased to resolve conflict after merge of #2375

Merge please. I don't have write permissions to this repo.


[DOC] Cleanup after migration from build-tools

Remove references to build-tools.
Remove references to tooling not part of this repository.
Fix maintainers URL.

Looks like we need to setup reviewers also.


[IMPAC-498] widget improve drill-down saved ids

@cesar-tonnoir please review.
I took a look at trying to refactor these settings out into directives, but they're all a bit different in one way or another and I'm not sure its worth the time right to try streamline these right now?
Secondly, take a look at the payroll_summary.rb engine, it is building an id similar to what I have done in the frontend for the other widgets. Im wondering whether the api should do similar for all widgets? But I feel like it's not great to be doing that in Impac! because then in the future if we want to use the id for a post action of some-sort, we'd have to cleanse the id of the category prefix.

@cesar-tonnoir I have pushed a refactor based on your suggestion - please review.
I have decoupled the selectedElement from the element itself, leveraging angular.copy, to treat the $scope.selectedElement / $scope.selectedElements as a form of 'metadata'. Currently the only reason we need to attach a category attr onto the selected elements is because of the settings toMetadata method.. The toMetadata callback doesn't have access to the a statementName (any ideas here?). Im pretty happy with this refactor as the real collection of elements are left unmodified / unlinked, add syntax / performance improvements have been made.
Let me know, :beers:


Not changing shows or movies

So when you do a fresh boot of the app ti works but after a few switching the app will lose track of where u were so it will just say you have 0 seconds on the item your watching or not even say your watching the correct thing

Please download the latest .jar file instead of the windows/exe one and run the following in cmd:
"C:\Program Files (x86)\Plex Rich Presence\jre\bin\java.exe" -jar  -Dlogging.level.root=DEBUG , reproduce the issue and post the debug log here.

few switching the app
Please clarify what you mean by this.


Unreproducible package: cabal-install

Building this package multiple times does not yield bit-by-bit identical
results, complicating the detection of Continuous Integration (CI) breaches. For
more information on this issue, visit
reproducible-builds.org.
Fixing bit-by-bit reproducibility also has additional advantages, such as
avoiding hard-to-reproduce bugs, making content-addressed storage more effective
and reducing rebuilds in such systems.
Steps To Reproduce
1. Build the package
This step will build the package. Specific arguments are passed to the command
to keep the build artifacts so we can compare them in case of differences.
Execute the following command:
Note: My system is running nixos-unstable with git commit 5e0ca22929f3342b19569b21b2f3462f053e497b.
nix-build '<nixpkgs>' -A cabal-install && nix-build '<nixpkgs>' -A cabal-install --check --keep-failed

Or using the new command line style:
nix build nixpkgs#cabal-install && nix build nixpkgs#cabal-install --rebuild --keep-failed

2. Compare the build artifacts
If the previous command completes successfully, no differences were found and
there's nothing to do, builds are reproducible.
If it terminates with the error message error: derivation '<X>' may not be deterministic: output '<Y>' differs from '<Z>', use diffoscope to investigate
the discrepancies between the two build outputs. You may need to add the
--exclude-directory-metadata recursive option to ignore files and directories
metadata (e.g. timestamp) differences.
nix run nixpkgs#diffoscopeMinimal -- --exclude-directory-metadata recursive <Y> <Z>

3. Examine the build log
To examine the build log, use:
nix-store --read-log $(nix-instantiate '<nixpkgs>' -A cabal-install)

Or with the new command line style:
nix log $(nix path-info --derivation nixpkgs#<package>)

Additional context
Related to #333921.
Diffoscope results: https://gist.github.com/myclevorname/8aa1bbd7e18fdd940a78f0819d96a5b7

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

I believe this is a duplicate of https://github.com/NixOS/nixpkgs/issues/151347.


[FLINK-26160][pulsar][doc] update the doc of setUnboundedStopCursor()

What is the purpose of the change
Modify the documentation of Bounded StopCursor
Brief change log
(for example:)

The TaskInfo is stored in the blob store on job creation time as a persistent artifact
Deployments RPC transmits only the blob storage reference
TaskManagers retrieve the TaskInfo from the blob cache

Verifying this change
This is a doc only change
Does this pull request potentially affect one of the following parts:
Doc only change
Documentation

doc only change

@flinkbot run azure

@flinkbot run azure

@imaffe can you also backport this change to release-1.14?


Unable to extract base model from trained deep graph infomax model

I've trained a deep graph infomax model with graphsage as it's base model. I only saved the deep graph infomax model. Is there a way to extract the trained graphsage model from within the trained DGI model or do i need to have saved the original graphsage model as well?
I'm trying to repeat this portion of the demo:
x_emb_in, x_emb_out = gcn_model.in_out_tensors()

# for full batch models, squeeze out the batch dim (which is 1)
x_out = tf.squeeze(x_emb_out, axis=0)
emb_model = Model(inputs=x_emb_in, outputs=x_out)
train_subjects, test_subjects = model_selection.train_test_split(
    node_subjects, train_size=0.1, test_size=None, stratify=node_subjects
)

test_gen = fullbatch_generator.flow(test_subjects.index)
train_gen = fullbatch_generator.flow(train_subjects.index)

test_embeddings = emb_model.predict(test_gen)
train_embeddings = emb_model.predict(train_gen)

lr = LogisticRegression(multi_class="auto", solver="lbfgs")
lr.fit(train_embeddings, train_subjects)

y_pred = lr.predict(test_embeddings)
gcn_acc = (y_pred == test_subjects).mean()
print(f"Test classification accuracy: {gcn_acc}")

Instead of GCN, I'm doing it with graphsage.

Hi, thanks for filing an issue!
I think it will be much easier if you save the original GraphSAGE model, but I think you can probably try and pull out the specific input and output layers too. You probably only need to save the Deep Graph Infomax model if you wish to further train or fine-tune it. If you just want to use the trained GraphSAGE model, only save that one.
For manually pulling out the layers, In the current implementation, the normal input layers are after the "corrupted" inputs, and the output layer will be buried somewhere within the model. You may have to manually inspect model.layers to find the last of the GraphSAGE layers, which I think will be a Lambda layer. I haven't tested this, but it might look something like:
# load DGI model
loaded_dgi = tf.keras.models.load_model("...")

# find the layers for the basic GraphSAGE model with the DGI model
graphsage_inputs = loaded_dgi.inputs[len(loaded_dgi.inputs) // 2:]
graphsage_output = loaded_dgi.layers[123] # you'll need to find this yourself, as it will depend on your GraphSAGE config
loaded_graphsage = tf.keras.Model(inputs=graphsage_inputs, outputs=graphsage_output)

# use the GraphSAGE model normally
generator = GraphSAGENodeGenerator(...)

loaded_graphsage.predict(generator.flow(...))

I haven't tested this, so it may not work without further edits. If you try it out and it doesn't work, I'll be able to help better if you provide a minimal reproducible example showing where you get stuck.

This is very helpful, thank you.


Cpio Archive file not in header error when installing an RPM Built by gradle-ospackage-plugin when directory directive has trailing slash

This is mainly FYI and to help future googlers as the workaround is so easy.  I'm using the nebula ospackage gradle plugin to build an RPM and I have found that using directory directive with a trailing slash causes a cpio archive file not in header error when the rpm is --install-ed.   E.g.
directory("/var/log/blah/", 0644)

causes the error, but:
directory("/var/log/blah", 0644)

does not.

hello
i hit the same issue with maven/antrun using emptydir
i have researched that there where and still are various bugs/features in stock rpm that trigger that problem.
a best practice seems to eat up any extra "/" in directory paths.


Chore: Update DevOps tooling from central repository [skip ci]

Update repository with content from upstream: os-climate/devops-toolkit

Will run again with upstream fixes.


Filter out imitation transfers

Summary
This adds trusted param-specific filtering of imitation transfers behind a feature flag. It removes outgoing, ERC-20 transfers that imitate the value and recipient in vanity of their neighbour, breaking down #1428.
It maps over the transaction history, keeping the transaction if the following conditions are met:

Was transaction executed by Safe?
Is there no previous transactions?
Is (previous transaction...

...not an ERC-20 transfer?
...incoming?
...of different value?
...to same recipient?
...not a vanity address?

Changes

Add env. vars. for feature flag and number of chars. deemed vanity
Add ImitationTransactionsHelper

filterOutgoingErc20ImitationTransfers

Conditionally filter transfers if trusted param is true and feature enabled
Add associated test coverage

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Details

45 of 47 (95.74%)  changed or added relevant lines in 3 files are covered.
1 unchanged line in 1 file lost coverage.
Overall coverage increased (+0.1%) to 93.112%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

src/routes/transactions/helpers/imitation-transactions.helper.ts
30
32
93.75%

Files with Coverage Reduction
New Missed Lines
%

src/routes/transactions/entities/tests/human-description.builder.ts
1
90.0%

Totals

Change from base Build<PHONE_NUMBER>:
0.1%

Covered Lines:
7050

Relevant Lines:
7301

💛  - Coveralls

I'm marking this as a draft whilst addressing the tests.


Disable bzip2-sys build script if rust backend is enabled

Currently if one is to enable rust backend without disabling default features, the bzip2-sys build script would build the bzip2 again, making it meaningless to enable the feature.
In many cases disabling default-features is hard (breaking backwards compatibility), so it'd be better to disable the bzip2-sys bulid-script, if the rust backend is enabled'
It would still pull in cc-rs and pkg-config, but at least it won't compile the bzip2 c code again.'

In many cases disabling default-features is hard (breaking backwards compatibility)

Why would it break backwards compatibility?

Why would it break backwards compatibility?

Well if I only disable default feature but not enable anything, it would break the build.
And I don't want to add new features to async-compression, that would be confusing.
I have considered always enabling rust backend in Nullus157/async-compression#320, but given that there's still performance difference I'm not sure this is ok.
So IMO the best way is to let the user pick c vs rust backend themselves, and when rust backend is picked the build-script for C should be skipped.


Correct use of tooltipster when manipulating DOM elements

Hi
I hve some troubles using tooltipster in combination with DOM manipulation.
When i sort elements with sort(), tooltipster does not work anymore. (Getting divs inside a div, sort them and put them back to the containing div)
How do I re-initialize tooltipster correctly?

Hi, if you .detach() the origins with their data and reappend, I think the tooltips should still work. Do you use .html() ?

I do:
$divs = $('.container'); // all divs with class container var orderedDivs = $divs.sort( [sort function] ); $('#outerDiv').html(orderedDivs);

Use .append instead of .html

and $divs = $('.container').detach();

Ok I'll try...
Strange: the first time sorting works, after the second sorting the tooltips disappear.

I'll let you figure out the rest, this is outside of the scope of support here :) Thanks

Hi Louis, similar issue here. Once I .append some more elements to the page via Jquery .. the tooltips don't work anymore.

Hi, if you haven't initialized them first, that's something else. Tooltips are not automatically initialized when you create new elements in the DOM. You should check out Tooltipster v4 (on the v4 branch) and its documentation,it's explained there.


[ci skip] [cf admin skip] NO_CI adding bot automerge

Hi! This is the friendly automated conda-forge-webservice.
I've added bot automerge as instructed in #17.
Merge this PR to enable bot automerging.
Fixes #17

@conda-forge-admin please rerender

Hi! This is the friendly automated conda-forge-linting service.
I was trying to look for recipes to lint for you, but it appears we have a merge conflict. Please try to merge or rebase with the base branch to resolve this conflict.
Please ping the 'conda-forge/core' team (using the @ notation in a comment) if you believe this is a bug.


Server isn't compatible with Node v0.12

hey guys, first time trying to run the boilerplate.. im on osx yosemite.
i got thru the npm install.. but here is the console output after i run "npm start":
><EMAIL_ADDRESS>start /Shared/www/tacotown/tacofinder/react-site
> npm run start:tunnel

><EMAIL_ADDRESS>start:tunnel /Shared/www/tacotown/tacofinder/react-site
> cross-env NODE_ENV=development node server

/Shared/www/tacotown/tacofinder/react-site/server/index.js:25
app.listen(port, (err) => {
                       ^^
SyntaxError: Unexpected token =>
    at exports.runInThisContext (vm.js:73:16)
    at Module._compile (module.js:443:25)
    at Object.Module._extensions..js (module.js:478:10)
    at Module.load (module.js:355:32)
    at Function.Module._load (module.js:310:12)
    at Function.Module.runMain (module.js:501:10)
    at startup (node.js:129:16)
    at node.js:814:3

npm ERR! Darwin 14.5.0
npm ERR! argv "node" "/usr/local/bin/npm" "run" "start:tunnel"
npm ERR! node v0.12.4
npm ERR! npm  v3.9.2
npm ERR! code ELIFECYCLE
npm ERR<EMAIL_ADDRESS>start:tunnel: `cross-env NODE_ENV=development node server`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>start:tunnel script 'cross-env NODE_ENV=development node server'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the react-boilerplate package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     cross-env NODE_ENV=development node server
npm ERR! You can get information on how to open an issue for this project with:
npm ERR!     npm bugs react-boilerplate
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!     npm owner ls react-boilerplate
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR!     /Shared/www/tacotown/tacofinder/react-site/npm-debug.log

npm ERR! Darwin 14.5.0
npm ERR! argv "node" "/usr/local/bin/npm" "start"
npm ERR! node v0.12.4
npm ERR! npm  v3.9.2
npm ERR! code ELIFECYCLE
npm ERR<EMAIL_ADDRESS>start: `npm run start:tunnel`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>start script 'npm run start:tunnel'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the react-boilerplate package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     npm run start:tunnel
npm ERR! You can get information on how to open an issue for this project with:
npm ERR!     npm bugs react-boilerplate
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!     npm owner ls react-boilerplate
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR!     /Shared/www/tacotown/tacofinder/react-site/npm-debug.log

Good catch! :+1:
This is happening because you're on Node v0.12, which doesn't have support for arrow functions apparently.
I'd suggest upgrading to one of the latest releases (5.x or 6.x) to fix this for now, and we can look into making the server 0.12 compatible!

issue resolved. thanks!

@mxstbr so I've got a branch working that supports 0.12, but I'm wondering if we should just add an "engines" section to the package.json requiring >0.12.
I think supporting the 3 latests major versions (4, 5, 6) is reasonable, especially since this repo is intended to be used with new projects, so the idea of legacy support is not really applicable.
Otherwise we'd need to either add a bunch of linter exceptions or adjust the linting requirements, because you get a bunch of errors like this now:

I think you can also suggest using babel-node kind of thing (or require hook) for all these that need to support 0.12.x. Since the current state of the node app is to just server the content, transpilation is not going to add any maintenance overheat (that would be the case with bigger apps)

I think that's fair :+1:

That sounds very reasonable. Let's add a page to the docs explaining how to use babel-node!

instead of 'babel-node', I suggest using 'babel-watch', it's kind of like nodemon and babel-node combined!


feat:add redis ExistsMany method

The current Exists function in go-zero's Redis only supports a single key, whereas go-redis's Exists can query multiple keys.
However, directly altering go-zero's Redis implementation would lead to incompatibility between different versions of the method and would affect the implementation of the Store interface in core/stores/kv/store.go.
To ensure compatibility between versions, a new method named ExistsMany should be added as a transitional solution. A unified upgrade can be planned for a later major version release.
close #3765
// go-zero
// core/stores/redis.go:458
v, err := conn.Exists(ctx, key).Result()

// go-redis
Exists(ctx context.Context, keys ...string) *IntCmd

I think you can just modify Exists method.


Add design system fonts

Extends typography plugin with design system fonts/headers

Moving comments here to resolve the conversation.
I was thinking about your comment here and at first, wanted to try to convince you :) But I think it's better to do it the way you are suggesting given there are other projects that use web-lib.
There is a set of prose classes under typography plugin
Perhaps this is an approach to consider. We could create a custom set of classes under design-system. We then can control where the design system classes are being used. That way we'd avoid affecting already existing projects. What do you think?
In the meantime, I updated the way headers CSS is applied and used classes per your suggestion. I am also still having issues with the playground 😑 I will work on fixing this on my machine in the next few days.


Mod's not working help

I'm moving the mods over to the active spot on Baldur's Gate 3 manager and when i go in game to use them they aren't active. I've tried numerous times to figure out what I'm doing wrong but can't figure it out. I am starting to get frustrated with the mods not working as intended and would like some form of help on how to use the Mod Manager properly. I am launching the game on DirectX 11 and not Vulkan because it keeps crashing on my computer if I try to use Vulkan. Don't know if that has anything to do with it but thought I would mention it anyway incase it does.
Thank you for your time,
MasterNoob4200.

Same…Have you found a solution yet…？

You need to click the button near the top to export the mods to load order (modsettings.lsx). Also, you will need to manually re-add the "gustav" entries into the modsettings.lsx every time you add a mod and export because of an issue with the manager removing that entry when you export to mod load order which causes crash on start. There is further information on the posts section of the "Full release mod fixer" nexus page.

I made a program to fix the need to manually re-enter the GustavDev info every time.
https://www.nexusmods.com/baldursgate3/mods/627?tab=files

@nate-sheltry This isn't necessary, since the issue happens if the mod manager fails to load the campaign data, due to the Game Data Path not being set.
The selected campaign is always added to the load order, but if you have no campaign set, there's nothing to export of course.
See here:
https://github.com/LaughingLeader/BG3ModManager/issues/14#issuecomment-1668215434

Duplicate of #14


Secret variables are not masked in logs

tl._writeLine("##vso[task.setvariable variable=websitePassword;issecret=true;]" + password);
In Linux agent, the password is not masked and it is displayed as plain text.

Deprecated.  Replacement is here: https://github.com/Microsoft/vsts-agent


WIP: Seal private classes

Contributes to #15110.

CodeFactor new "complex method" issues are false positives, see #15721.


clamav: Fix resetting of user and group on package update

Merge Checklist

All boxes should be checked before merging the PR (just tick any boxes which don't apply to this PR)

[X] The toolchain has been rebuilt successfully (or no changes were made to it)
[X] The toolchain/worker package manifests are up-to-date
[X] Any updated packages successfully build (or no packages were changed)
[X] Packages depending on static components modified in this PR (Golang, *-static subpackages, etc.) have had their Release tag incremented.
[X] Package tests (%check section) have been verified with RUN_CHECK=y for existing SPEC files, or added to new SPEC files
[X] All package sources are available
[X] cgmanifest files are up-to-date and sorted (./cgmanifest.json, ./toolkit/scripts/toolchain/cgmanifest.json, .github/workflows/cgmanifest.json)
[X] LICENSE-MAP files are up-to-date (./SPECS/LICENSES-AND-NOTICES/data/licenses.json, ./SPECS/LICENSES-AND-NOTICES/LICENSES-MAP.md, ./SPECS/LICENSES-AND-NOTICES/LICENSE-EXCEPTIONS.PHOTON)
[X] All source files have up-to-date hashes in the *.signatures.json files
[X] sudo make go-tidy-all and sudo make go-test-coverage pass
[X] Documentation has been updated to match any changes to the build system
[X] Ready to merge

Summary

Clamav user disappeared from passwd and group file on package updates. This fixes the pre and postun scriptlet to add/delete the user depending on whether it's a package installation, update or removal.
Change Log

User would disappear from passwd and group files on package updates.
Fixed pre and postun scriptlets to run based on input argument so that clamav user does not disappear on package update.  We now add user iff it's a package installation, and remove user iff it's a package removal. For package update, we neither add nor remove the user. Since we know that clamav doesn't have multiple packages by the same name which are 'parallel installable', this should work.
https://docs.fedoraproject.org/en-US/packaging-guidelines/Scriptlets/#_syntax describes what argument is passed to the scriptlet
Earlier, the scripts would run on package upgrade also. In that case, the user added by the updated version was deleted during the removal of the old version. The new version is installed before the old version is removed (as observed and supported in this post https://stackoverflow.com/questions/7398834/rpm-upgrade-uninstalls-the-rpm)

Does this affect the toolchain?

NO
Associated issues

#6422

Test Methodology

Local build. Tested these behaviours on the new releases (>=4) built with fixed pre and postun sections. To observe this behaviour, we have to get rid of the RPMS <= clamav-0.105.2-3, and do a fresh installation of clamav-0.105.2-4. But, builds in the future should show correct behaviour, as described below.

Tested that the user appears on package installation

Tested that the user does not disappear on package update

Tested that the user disappears on package removal

Buddy build - https://dev.azure.com/mariner-org/mariner/_build/results?buildId=467884&view=results


Error 502

Thank you for the great product. Since there is an error when visiting the site, I am curious to see if this product will continue in the future.
Thanks again Mr.BeanYoung!

There is a system issue, and I have fixed it.
PoweredBy.Cloud is working now.
Thank you for your feedback!


When medicines are allocated, the total remaining need number changes, but not the supplier wise max number

[ ] When medicines are allocated, the total remaining need number changes, but not the supplier wise max number. This means that if you have two suppliers, you don't know which supplier quantity has been reduced, and you have to guess which amount to enter into the next aid package against a supplier.

#302

TODO: @udda1996 add a comment

@jayasanka-sack with the PR #60 we have included a new field remainingQuantity which refers to the unassigned amount in each quotation. This can be used to track supplier wise remaining quantity so users can have an idea about the amounts remaining to assign from each supplier.


feat(universal-banner): introducing component

Related Ticket(s)
#6814
Description
Introducing the Universal Banner component, along with some scroll interactions between the Masthead, L1, and ToC mobile.
Changelog
New

new universal-banner component along with its child components

Changed

scroll interaction algorithm in dotcom-shell-composite

@IgnacioBecerra, checked out the latest - looks like a lot of the issues were fixed (yay!), just seeing a few remaining ones:

I'm still seeing the spacing between heading and copy at xlg and lg as 8-px when it should be 16px when using the 4-column image. Same issue when there is no image.
At xlg and lg for all versions, I'm seeing the button text still slightly off the start of the column, but the other breakpoints look good. You had mentioned yesterday using the middle of the gutter, but the button padding is 15px - I'm not sure if that accounts for the difference.

@IgnacioBecerra seeing the spacing issue's fixed, and I think this is super close! I did see some last issues with the button on the grid

At xlg with no image, the button with wrapped text looks like it's not aligning the text to the grid

At xlg and lg with the 8-column image (but not when using the 4-column), the button text looks like it's slightly off the grid

I created a new image for the lg breakpoint for the 4-column image, I'll send that over Slack


Added switches for Hot water generator

@scottyphillips Thank you for developing a great component!
I have added some switches for Rinnai water heaters. I look forward to working with you.

Wow that’s exciting new component! Let me digest the PR and I’ll approve it sometime this week. Perhaps later on you could also help me with a translation of the readme doco into 日本語? 😃

Hey what’s binaly? Is that a typo for binary?

@scottyphillips Yes, it's typo. I fixed it and some changes are comitted.
And, of course, I will cooperate in translating the document into Japanese.

Can we try to use an asyncio.sleep() rather then time.sleep()? Time.sleep is pretty brutal to the rest of Home assistant.

Yes, I used asyncio.sleep instead of time.sleep and checked the operation.

@scottyphillips I have more thoughts.
The Rinnai water heater parameter has a timer time, which can be set.
The timer time is related to the timer switch and I'm considering adding a service to the code of the switch entity.
Is it okay to think in this direction?

Yes, but as long as you make it specific to your Hot water generator EOJCC and EOJGC.
What I would do is register a service under this line in switch.py:
if entity['instance']['eojgc'] == 2 and entity['instance']['eojcc'] == 114:  # Hot water generator
# register your device specific service here eg async_set_hot_water_timer()

The other thing I would like revised is your proposed switch schema in const.py and how it relates to the creation of sensors.
At the moment I don't see that it is necessary to have both a sensor and a switch to represent the same EPC code. I would like to see some logic where sensors are not created if the EPC in question is designated as a switch entity.
I would also like to see the switch codes be more generic so it can be use for other entities and more closely align with the sensor schema. In fact I have a great idea - combine the two together.
So rather then
HOTWATER_SWITCH_CODES = {
    0x80: {
        CONF_ICON: "mdi:power-settings",
        CONF_SERVICE_DATA: SWITCH_POWER
    },
    0x90: {
        CONF_ICON: "mdi:timer",
        CONF_SERVICE_DATA: SWITCH_BINARY,
        CONF_ENSURE_ON: 0x80
    },
    0xE3: {
        CONF_ICON: "mdi:bathtub-outline",
        CONF_SERVICE_DATA: SWITCH_BINARY,
        CONF_ENSURE_ON: 0x80
    },
    0xE4: {
        CONF_ICON: "mdi:heat-wave",
        CONF_SERVICE_DATA: SWITCH_BINARY,
        CONF_ENSURE_ON: 0x80
    }
}

make it look like this:
ENL_OP_CODES = { # change ENL_SENSOR_OP_CODES
    0x00: {
        0x11: {
            0xE0: {     # existing sensor
                CONF_ICON: "mdi:thermometer",
                CONF_TYPE: DEVICE_CLASS_TEMPERATURE,
                CONF_STATE_CLASS: STATE_CLASS_MEASUREMENT
            },
        }
    },
   0x01: {
      0x114: {
          0x80: {     # switch
              CONF_ICON: "mdi:power-settings",
              CONF_SERVICE_DATA: SWITCH_POWER
              TYPE_SWITCH: True
          },
          0x90: {
              CONF_ICON: "mdi:timer",
              CONF_SERVICE_DATA: SWITCH_BINARY,
              CONF_ENSURE_ON: 0x80
              TYPE_SWITCH: True
          },
          0xE3: {
              CONF_ICON: "mdi:bathtub-outline",
              CONF_SERVICE_DATA: SWITCH_BINARY,
              CONF_ENSURE_ON: 0x80
              TYPE_SWITCH: True
          },
          0xE4: {
              CONF_ICON: "mdi:heat-wave",
              CONF_SERVICE_DATA: SWITCH_BINARY,
              CONF_ENSURE_ON: 0x80
              TYPE_SWITCH: True
          }
      }
}

For example line 57 of sensor.py:
        else:  # For all other devices, sensors will be configured but customise if applicable.
            for op_code in list(entity['echonetlite']._update_flags_full_list):
                if eojgc in ENL_OP_CODES.keys():
                    if eojcc in ENL_OP_CODES[eojgc].keys():
                        if op_code in ENL_OP_CODES[eojgc][eojcc].keys():
                            if TYPE_SWITCH in ENL_OP_CODES[eojgc][eojcc][op_code].keys():
                                 continue # dont configure as sensor, it will be configured as switch instead.
                            entities.append(
                                EchonetSensor(
                                    entity['echonetlite'],
                                    op_code,
                                    ENL_SENSOR_OP_CODES[eojgc][eojcc][op_code],
                                    config.title
                                )
                            )
                            continue
                entities.append(
                    EchonetSensor(entity['echonetlite'], op_code, ENL_SENSOR_OP_CODES['default'], config.title)
                )

and then in your switch.py:
async def async_setup_entry(hass, config, async_add_entities, discovery_info=None):
    entities = []
    for entity in hass.data[DOMAIN][config.entry_id]:
            for op_code in list(entity['echonetlite']._update_flags_full_list):
                if eojgc in ENL_OP_CODES.keys():
                    if eojcc in ENL_OP_CODES[eojgc].keys():
                        if op_code in ENL_OP_CODES[eojgc][eojcc].keys():
                            if TYPE_SWITCH in ENL_OP_CODES[eojgc][eojcc][op_code].keys():
                                entities.append(
                                    EchonetSwitch(
                                       hass,
                                       entity['echonetlite'],
                                       config,
                                       op_code,
                                       ENL_OP_CODES[eojgc][eojcc][op_code],
                                       config.title
                                    )
                                )
    async_add_entities(entities, True)

Hopefully this all makes sense, I want to see the switch entity be as generic as possible so other devices can use it with a minimum of rework.

This is just a bit of a rough outline:
async def async_setup_entry(hass, config, async_add_entities, discovery_info=None):
    entities = []
    for entity in hass.data[DOMAIN][config.entry_id]:
            # configure class specific service calls here
            if entity['instance']['eojgc'] == 2 and entity['instance']['eojcc'] == 114:  # Hot water generator
                  # register your device specific service here eg async_set_hot_water_timer()

            # configure switch entities by looking up ENL_OP_CODE dict
            for op_code in list(entity['echonetlite']._update_flags_full_list):
                if eojgc in ENL_OP_CODES.keys():
                    if eojcc in ENL_OP_CODES[eojgc].keys():
                        if op_code in ENL_OP_CODES[eojgc][eojcc].keys():
                            if TYPE_SWITCH in ENL_OP_CODES[eojgc][eojcc][op_code].keys():
                                entities.append(
                                    EchonetSwitch(
                                       hass,
                                       entity['echonetlite'],
                                       config,
                                       op_code,
                                       ENL_OP_CODES[eojgc][eojcc][op_code],
                                       config.title
                                    )
                                )
    async_add_entities(entities, True)

@scottyphillips Yes, I think it's a reasonable implementation for sure. 👍
I modify the code that way and commit again. 😄

@scottyphillips I'm stumbling on setting time with the service. For example, what should I do if I write "10:00" (hh: mm) to 0x91?

Probably best to create a setHotWaterTimer() method in pychonet as part of the HotWaterHeater class and then car it directly in the service. So a bit of work to do there.

OK, Switch and sensor integrated, simplified and committed.
For services, I think it makes sense to handle them in a sensor entity. About that, HomeAssistan's processing is roughly done, but I would like to wait for your advice and make another PR.

Looks good. Let’s manage the service creation under a separate body of work. I’ll approve the PR shortly once I test on my own system.
Get Outlook for iOShttps://aka.ms/o0ukef

From: Naoki Sawada @.>
Sent: Thursday, June 16, 2022 10:36:25 AM
To: scottyphillips/echonetlite_homeassistant @.>
Cc: Scott Phillips @.>; Mention @.>
Subject: Re: [scottyphillips/echonetlite_homeassistant] Added switches for Hot water generator (PR #77)
OK, Switch and sensor integrated, simplified and committed.
For services, I think it makes sense to handle them in a sensor entity. About that, HomeAssistan's processing is roughly done, but I would like to wait for your advice and make another PR.
—
Reply to this email directly, view it on GitHubhttps://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fscottyphillips%2Fechonetlite_homeassistant%2Fpull%2F77%23issuecomment-1157103281&data=05|01||8429b59373e14a3def3f08da4f303ef6|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637909365882871667|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000|||&sdata=DFWcp3WKzSuYVHiLh79Ozd1zU70nDRNbjgu4%2BzdQe7s%3D&reserved=0, or unsubscribehttps://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAGHQNDHQIHY55XFBOEIMNVTVPJZITANCNFSM5YWA6AHQ&data=05|01||8429b59373e14a3def3f08da4f303ef6|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637909365882871667|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000|||&sdata=Hyrgcoknvm5pGxXgVcZfhH42uyBVYB%2FQnY1IQW5pcRE%3D&reserved=0.
You are receiving this because you were mentioned.Message ID: @.***>

Thanks for your contribution by the way! It's amazing how many people are using this for so many different devices now! Well beyond my own modest need!
Get Outlook for iOShttps://aka.ms/o0ukef

From: Scott Phillips @.>
Sent: Thursday, June 16, 2022 1:37:51 PM
To: scottyphillips/echonetlite_homeassistant @.>; scottyphillips/echonetlite_homeassistant @.>
Cc: Mention @.>
Subject: Re: [scottyphillips/echonetlite_homeassistant] Added switches for Hot water generator (PR #77)
Looks good. Let’s manage the service creation under a separate body of work. I’ll approve the PR shortly once I test on my own system.
Get Outlook for iOShttps://aka.ms/o0ukef

From: Naoki Sawada @.>
Sent: Thursday, June 16, 2022 10:36:25 AM
To: scottyphillips/echonetlite_homeassistant @.>
Cc: Scott Phillips @.>; Mention @.>
Subject: Re: [scottyphillips/echonetlite_homeassistant] Added switches for Hot water generator (PR #77)
OK, Switch and sensor integrated, simplified and committed.
For services, I think it makes sense to handle them in a sensor entity. About that, HomeAssistan's processing is roughly done, but I would like to wait for your advice and make another PR.
—
Reply to this email directly, view it on GitHubhttps://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fscottyphillips%2Fechonetlite_homeassistant%2Fpull%2F77%23issuecomment-1157103281&data=05|01||8429b59373e14a3def3f08da4f303ef6|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637909365882871667|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000|||&sdata=DFWcp3WKzSuYVHiLh79Ozd1zU70nDRNbjgu4%2BzdQe7s%3D&reserved=0, or unsubscribehttps://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAGHQNDHQIHY55XFBOEIMNVTVPJZITANCNFSM5YWA6AHQ&data=05|01||8429b59373e14a3def3f08da4f303ef6|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637909365882871667|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000|||&sdata=Hyrgcoknvm5pGxXgVcZfhH42uyBVYB%2FQnY1IQW5pcRE%3D&reserved=0.
You are receiving this because you were mentioned.Message ID: @.***>

I publicized #78 with the addition of service functionality. You can choose either one and merge. If you choose #77, I will recreate #78.
Thanks! 😄

@scottyphillips Thank you for marge #78. 👍


feat/HS2.2

-> Since KIPR provides functions using snake_case, I'd recommend also switching to snake_case for our functions and variables
-> Use boolean as return type for TRUE/FALSE values from now on!
-> Only minor things got refactored; overall fairly well written code!
~ ヾ(•ω•`)o

I mainly use void to return  but will use bool in the future also camel case is fine for me


Feature/remove member expression validation

note: ensure that when parse is 1 command does not set variable twice (on declaration and on interesting value itself)
current in PR
int value = default
value = int.Parse("42)
return value;

with adjusts
int value = int.Parse("42)
return value;


ssr: never used window but error window not defined

Recently, after learing ssr I created a demo with router and without store.
Here is the link: here
I can generate Client Config and Server Config successfully.
But After I ran the server to access the router page, error occured,
[Vue warn]: Error in beforeCreate hook: "ReferenceError: window is not defined"

found in

---> <App> at /Users/work/IAPYANG/GitHub/learn-vue-ssr/src/App.vue
       <Root>
error during render : /
ReferenceError: window is not defined
    at main.js:178:9
    at main.js:167:46
    at module.exports.module.exports (~/style-loader/lib/addStyles.js:57:0)
    at Object.module.exports.module.exports.location (src/App.vue?3a9d:12:0)
    at __webpack_require__ (webpack:/webpack/bootstrap 837200b4ffb26030ef47:19:0)
    at VueComponent.injectStyle (src/App.vue:3:0)
    at VueComponent.hook (~/vue-loader/lib/component-normalizer.js:53:0)
    at callHook (/Users/work/IAPYANG/GitHub/learn-vue-ssr/node_modules/vue/dist/vue.runtime.common.js:2554:21)
    at VueComponent.Vue._init (/Users/work/IAPYANG/GitHub/learn-vue-ssr/node_modules/vue/dist/vue.runtime.common.js:3994:5)
    at new VueComponent (/Users/work/IAPYANG/GitHub/learn-vue-ssr/node_modules/vue/dist/vue.runtime.common.js:4167:12)

But I've never used window in App.vue.
How to solve this error and successfully access the page?
Thanks!

The default webpack style-loader is not isomorphic - use vue-style-loader instead.

@yyx990803
Thanks a lot! You're so quick!
I'll check if it helps.
ps: I don't have the chance to attend the vue meeting in Beijing. Is there any chance for me to access media like videos of the meeting?
Thanks!


add canvas render support

Features

[x] Render graph
[x] Drag and zoom
[x] Click on node to navigate
[x] Hover on node to focus
[x] Maintain the current display effect
[ ] Customizable settings for force graph

[x] Repel force
[x] Center force
[x] Link distance
[ ] Font size
[ ] Opacity scale
[x] Max scale size

[ ] Customizable settings for interaction

[ ] Drag
[ ] Zoom

#1144

I have completed all the modifications. There are some configurations that I don't understand what they do, so I didn't implement them.

Font size
Opacity scale

Regarding the "Customizable settings for interaction" part, I currently think it's not really necessary to open up the API. If someone has the capability to make modifications, they should be allowed to modify the original code themselves.

while there are a lot of things to be fixed on this PR, I would suggest to just use canvas as default, and drop svg support to make the codepath simple.

Will track from #1328


Last commit BROKE this. Gave enum it's name back.

Can't do MoveDirection.NONE if you delete MoveDirection.... Just my 2 cents.

Thanks. The last PR was a much welcome contribution that ported dozens of projects to Godot 3.1. Yes, a typo or a bug can slip in, we're human.


Rewriting this in MVC OOP fashion

Using object-oriented programming we can develop whole model view controller framework in no time at all. This will make a sophisticated REST API solution available.

True story


Specify benchmark method order

Could we have a way to specify order of benchmarks via either DisplayAttribute.Order or a dedicated attribute if it is relevant? (and use method name order otherwise). If both are used, display first methods with order and then methods by alphabetical order. (Not only used for reporting, but also for execution)

At the moment (in the latest GitHub code anyway) the best you can do this:
[Benchmark(Description = "Some Text")]
public void ABenchmark()
{  .. }

So the Description will be used instead of the method name. However this only affects the order that the results are displayed in, NOT the order that the benchmarks are executed.
Just out of interest, what's the reasons for wanting it to affect the order of execution? (I can understand wanting the order of display/reporting)

Just out of interest, what's the reasons for wanting it to affect the order of execution? (I can understand wanting the order of display/reporting)

I'm using BenchmarkDotNet to benchmark my library/method (which is in dev) against other libraries/method (which are usually stable, e.g: coming from nuget or coming from a part of my code that I don't change when I want to compare a new implem with an old implem)
So usually, once I have ran a first benchmark, I know how fast are other libraries/method. Then I usually iterate to fix performance issues and relaunch the benchmark mutlple times, I want to check only my implem first. I will break the benchmark after my first benchmark and not waiting for others, because they haven't change and I remember how well they performed.
Currently, I have to comment all other benchmark methods, and uncomment them once I wan't to recheck everything, this is quite annoying.

For reporting, display order options could be a little more flexible, for example:

Order from fastest to slowest
Order from slowest to fastest
Order from execution order

I can vouch of having done that too.

@xoofx, it is a really easy to implement, but it is hard to create a good API.
Some thoughts
Let's start with order of execution. For now, a benchmark = TargetMethod + Job + Parameters. How we should combine these 3 lists? E.g. we have two methods (A, B), two jobs (J1, J2), and one parameter with two values (x, y). There are 6 following order possibilities:

Method->Job->Params
A-J1-x, A-J1-y, A-J2-x, A-J2-y, B-J1-x, B-J1-y, B-J2-x, B-J2-y
Method->Params->Job
A-J1-x, A-J2-x, A-J1-y, A-J2-y, B-J1-x, B-J2-x, B-J1-y, B-J2-y
Job->Method->Params
A-J1-x, A-J1-y, B-J1-x, B-J1-y, A-J2-x, A-J2-y, B-J2-x, B-J2-y
Job->Params->Method
A-J1-x, B-J1-x, A-J1-y, B-J1-y, A-J2-x, B-J2-x, A-J2-y, B-J2-y
Params->Method->Job
A-J1-x, A-J2-x, B-J1-x, B-J2-x, A-J1-y, A-J2-y, B-J1-y, B-J2-y
Params->Job->Method
A-J1-x, B-J1-x, A-J2-x, B-J2-x, A-J1-y, B-J1-y, A-J2-y, B-J2-y,

It is an easy case. But what if we want to use specific job property of specific parameter.
Next, we can sort (or not sort) values in each list:

No sorting
Sort descending
Sort ascending

Finally, we should choose order for the summary table. We can use execution order or sort results some way. Suggested display order options (from fastest to slowest, from slowest to fastest, from execution order) look nice, but what if we want to sort by specific columns? Or two columns?
Suggestion
I don't like 600 settings for each situation. So, I suggest to use some kind of general API like the following:
public interface IOrderProvider
{
  IEnumerable<Benchmark> GetExecutionOrder(Benchmark[] benchmarks);
  IEnumerable<Benchmark> GetSummaryOrder(Benchmark[] benchmarks, Summary summary);
}

public class OrderProviderExample : IOrderProvider
{
  public IEnumerable<Benchmark> GetExecutionOrder(Benchmark[] benchmarks) =>
    from benchmark in benchmarks
    orderby benchmark.Target.MethodTitle descending,
            benchmark.Job.Jit ascending,
            benchmark.Parameters.FullInfo ascending
    select benchmark;

  public IEnumerable<Benchmark> GetSummaryOrder(Benchmark[] benchmarks, Summary summary) =>
    from benchmark in benchmarks
    orderby benchmark.Target.MethodTitle descending,
            StatisticColumn.Median.GetValue(summary, benchmark) descending
    select benchmark;
}

Some additional thoughts:

We can implement string indexer for Parameters and write something like benchmark.Parameters["A"]
We also want to support natural sort order for parameters. A solution: benchmark.Parameters["A"] can return an object of corresponding type.
We also want to support natural sort order for columns. A solution: we can implement additional double GetValue for statistic columns.

@xoofx, what do you think?

Having a common infrastructure for doing ordering, display, that's good.
But things should be easy in some particular common case. At least, I believe that my case is quite simple, I'm not using params, not using jobs (not sure what is their usage/semantic), didn't even know that they were existing.
So having to develop a class just to specify an order for methods is quite annoying, or at least, the common cases should be integrated so that we don't have to code anything. For instance, the code you show me above for custom ordering is longer than the code of the 5 methods I'm benchmarking ;)
Just specifying at the benchmark level that we want to use an ordering method would be good enough, still using the IOrderProvider API coming with a few builtin IOrderProvider:
[OrderProvider(typeof(DeclaredMethodProvider))]
public class MyBenchmark
{
}

@xoofx, good point. I can write a set of predefined OrderProviders (i don't sure that it is a good name; if you have a better one, let me know) for common cases.

@mattwarren, I'm ready to add IOrderProvider support. Any idea how I can integrate it with your recent "grouping" feature?

@mattwarren, maybe we can add an additional method that will return a group of each benchmark (e.g. a string)? Next, we can use this group to color output. What do you think?


Test using transactions for manual queries in recovery scenarios

Occasionally, we have to run manual queries against PostgreSQL databases managed by CloudFoundry to resolve system failures. Such a process carries inherent risk, as any slight malformation of the query can result in data loss, system downtime, and adverse customer impacts.
While regular data backups mitigate against significant data loss or corruption, it would be preferable to avoid needing to restore from backups if possible. In particular, it would be ideal to test any manual queries before fully executing them against the database.
This ticket covers exploring the use of PostgreSQL transactions as a mechanism to preview the results of potentially destructive queries (UPDATE, DELETE) before fully applying them to the database.
This approach will be tested by running a manual query to verify that a transaction can be used to "preview" the effect of a query. This test will be performed in the following environments:

[x] Locally, using a PostgreSQL container and psql
Using a PostgreSQL RDS database provisioned by cloud.gov. Testing steps:

[ ] Deploy cloud.gov to personal sandbox
[ ] Use psql or other tooling to run query test against PostgreSQL RDS database

[ ] Update https://github.com/cloud-gov/external-domain-broker/blob/main/docs/operational.md with notes about using transactions

If these tests demonstrate that transactions can be used to "preview" the effects of queries, then we will update our documentation to note this step in our incident response / recovery documentation.

Using a local PostgreSQL container, I created a table1 schema with these commands:
CREATE TABLE table1 (id serial primary key);

INSERT INTO table1 (id) VALUES (1);
INSERT INTO table1 (id) VALUES (2);
INSERT INTO table1 (id) VALUES (3);
INSERT INTO table1 (id) VALUES (4);
INSERT INTO table1 (id) VALUES (5);

Then I tested using a transaction to delete some records:
foo=# select * from table1;
 id
----
  1
  2
  3
  4
  5
(5 rows)

foo=# begin;
BEGIN
foo=*# DELETE FROM table1 WHERE id > 3;
DELETE 2
foo=*# select * from table1;
 id
----
  1
  2
  3
(3 rows)

foo=*# rollback;
ROLLBACK
foo=# select * from table1;
 id
----
  1
  2
  3
  4
  5
(5 rows)

As you can see, the DELETE query inside the transaction did report how many rows were affected by the query (2) and allow me to see the table in a state where those rows were removed. But when I rolled back the transaction (rollback;) and queried for all the records in the table again, I correctly got the original list of 5 records as if nothing had been changed.

I worked with @apburnes and @rcgottlieb to test a transactional query approach against real data from the external-domain-broker.
Our steps were roughly:

Deploy an application with an AWS RDS database to my personal space in the cloud-gov-operators org
Take a snapshot of the database for the production external-domain-broker
Restore the snapshot to a database using the name of the database from step 1 plus -restore (e.g. database-restore)
Add username/password from database in step 1 to to the restored database from step 3.
Rename databases so that database-restore becomes database
Use connect-to-service utility to access the renamed database
Ran the PostgreSQL queries below to test a destructive query in a transaction against the real external-domain-broker data

The logs of the queries I ran were:
database=> select count(*) from operation where canceled_at IS NULL;
 count
-------
  3627
(1 row)

database=> begin;
BEGIN
database=*> UPDATE operation SET canceled_at = null;
UPDATE 3721
database=*> select count(*) from operation where canceled_at IS NULL;
 count
-------
  3721
(1 row)

database=*> rollback;
ROLLBACK
database=> select count(*) from operation where canceled_at IS NULL;
 count
-------
  3627
(1 row)

As you can see, the original count of rows where canceled_at was null was 3627. Then after the UPDATE query in the transaction (which updated all rows), the number of rows where canceled_at was null was 3721. And then after rolling back the transaction, the number of rows where canceled_at was null was back to 3627, thus confirming that the transaction allowed us to isolate the effects of a potentially harmful query.

Created PR to update operational docs for external-domain-broker with guidance on using transactions to safely run UPDATE queries:
https://github.com/cloud-gov/external-domain-broker/pull/238


service catalog does not have enough access to run

I0625 13:48:41.747136       1 feature_gate.go:190] feature gates: map[OriginatingIdentity:true]
I0625 13:48:41.747270       1 hyperkube.go:192] Service Catalog version v3.10.0-rc.0+8d6748f-dirty (built 2018-06-23T19:27:11Z)
W0625 13:48:42.314600       1 authentication.go:232] Unable to get configmap/extension-apiserver-authentication in kube-system.  Usually fixed by 'kubectl create rolebinding -n kube-system ROLE_NAME --role=extension-apiserver-authentication-reader --serviceaccount=YOUR_NS:YOUR_SA'
Error: configmaps "extension-apiserver-authentication" is forbidden: User "system:serviceaccount:hcp:default" cannot get configmaps in the namespace "kube-system": User "system:serviceaccount:hcp:default" cannot get configmaps in project "kube-system"

We need to duplicate configmap extension-apiserver-authentication in both the hcp and the ccp. :/
@jim-minter

I was thinking we might be able to make it work whereby the HCP SC crashlooped until the addon manager added extension-apiserver-authentication.

Ah, we probably want to disable mounting the default service account token and mount a kubeconfig that can make the service account talk to the ccp.

Ah, we probably want to disable mounting the default service account token and mount a kubeconfig that can make the service catalog talk to the ccp.


Fix old path in vscode-insiders.json that was blocking installation

This PR corrects some old script URLs that pointed to the previous repos maintained by lukesampson to the current repo, which was causing installation to fail with a 404.
Might be worth doing a find-replace on all of the JSONs in this repository and making the same fix.

It is worth noting that the 404 was not due to the GitHub URL, but due the slash in path. GitHub automatically redirects links to current repos, so technically it shouldn't be a problem.

/verify


FName Overflow,  allocated 1024MB of string data. FName strings are never freed and should be created sparingly. Some system might be generating too many FNames, see call stack.

When I run my application for several hours (at least 5 hours) I get the error:
[2024.05.10-16.21.29:800][693]LogStreaming: Display: 0.160 ms for processing 89658 objects in RemoveUnreachableObjects(Queued=0, Async=0). Removed 0 (537->537) packages and 0 (1573->1573) public exports.
Assertion failed: CurrentBlock < FNameMaxBlocks [File:D:\build\++UE5\Sync\Engine\Source\Runtime\Core\Private\UObject\UnrealNames.cpp] [Line: 698]
FName overflow, allocated 1024MB of string data. FName strings are never freed and should be created sparingly. Some system might be generating too many FNames, see call stack.

The stack trace of this comes from Cesium:
 	INEOS-Win64-DebugGame.exe!FNameEntryAllocator::AllocateNewBlock(void)	C++
 	INEOS-Win64-DebugGame.exe!FNamePoolShard<1>::CreateAndInsertEntry<class FWriteScopeLock>(struct FNameSlot &,struct FNameValue<1> const &)	C++
 	INEOS-Win64-DebugGame.exe!FNamePool::Store(struct FNameStringView)	C++
 	INEOS-Win64-DebugGame.exe!FNameHelper::FindOrStoreString(struct FNameStringView,enum EFindName)	C++
 	INEOS-Win64-DebugGame.exe!FNameHelper::MakeWithNumber(struct FWideStringViewWithWidth,enum EFindName,int)	C++
 	INEOS-Win64-DebugGame.exe!FName::FName(wchar_t const *,enum EFindName)	C++
 	INEOS-Win64-DebugGame.exe!FStatNameAndInfo::ToLongName(class FName,char const *,char const *,wchar_t const *,bool)	C++
 	INEOS-Win64-DebugGame.exe!FStatMessage::FStatMessage(class FName,enum EStatDataType::Type,char const *,char const *,wchar_t const *,bool,bool,bool,enum FWindowsPlatformMemory::EMemoryCounterRegion)	C++
 	INEOS-Win64-DebugGame.exe!FStartupMessages::AddMetadata(class FName,wchar_t const *,char const *,char const *,wchar_t const *,bool,enum EStatDataType::Type,bool,bool,enum FWindowsPlatformMemory::EMemoryCounterRegion)	C++
 	INEOS-Win64-DebugGame.exe!FUObjectItem::CreateStatID(void)	C++
 	INEOS-Win64-DebugGame.exe!FPrimitiveSceneProxy::FPrimitiveSceneProxy(class UPrimitiveComponent const *,class FName)	C++
 	INEOS-Win64-DebugGame.exe!FStaticMeshSceneProxy::FStaticMeshSceneProxy(class UStaticMeshComponent *,bool)	C++
 	INEOS-Win64-DebugGame.exe!UStaticMeshComponent::CreateSceneProxy(void)	C++
 	INEOS-Win64-DebugGame.exe!FScene::AddPrimitive(class UPrimitiveComponent *)	C++
 	INEOS-Win64-DebugGame.exe!UPrimitiveComponent::CreateRenderState_Concurrent(class FRegisterComponentContext *)	C++
 	INEOS-Win64-DebugGame.exe!UStaticMeshComponent::CreateRenderState_Concurrent(class FRegisterComponentContext *)	C++
 	INEOS-Win64-DebugGame.exe!UActorComponent::ExecuteRegisterEvents(class FRegisterComponentContext *)	C++
 	INEOS-Win64-DebugGame.exe!UActorComponent::RegisterComponentWithWorld(class UWorld *,class FRegisterComponentContext *)	C++
 	INEOS-Win64-DebugGame.exe!loadPrimitiveGameThreadPart(CesiumGltf::Model & model, UCesiumGltfComponent * pGltf, LoadGltfResult::LoadPrimitiveResult & loadResult, const glm::mat<4,4,double,0> & cesiumToUnrealTransform, const Cesium3DTilesSelection::Tile & tile, bool createNavCollision, ACesium3DTileset * pTilesetActor) Line 3235	C++
>	INEOS-Win64-DebugGame.exe!UCesiumGltfComponent::CreateOnGameThread(CesiumGltf::Model & model, ACesium3DTileset * pTilesetActor, TUniquePtr<UCesiumGltfComponent::HalfConstructed,TDefaultDelete<UCesiumGltfComponent::HalfConstructed>> pHalfConstructed, const glm::mat<4,4,double,0> & cesiumToUnrealTransform, UMaterialInterface * pBaseMaterial, UMaterialInterface * pBaseTranslucentMaterial, UMaterialInterface * pBaseWaterMaterial, FCustomDepthParameters CustomDepthParameters, const Cesium3DTilesSelection::Tile & tile, bool createNavCollision) Line 3308	C++
 	INEOS-Win64-DebugGame.exe!UnrealResourcePreparer::prepareInMainThread(Cesium3DTilesSelection::Tile & tile, void * pLoadThreadResult) Line 730	C++
 	[External Code]
 	INEOS-Win64-DebugGame.exe!ACesium3DTileset::Tick(float DeltaTime) Line 2059	C++
 	[External Code]

There are a few cesium error logs just before this happens:
[2024.05.10-16.20.28:696][230]LogStreaming: Display: 0.407 ms for processing 181158 objects in RemoveUnreachableObjects(Queued=0, Async=0). Removed 0 (537->537) packages and 0 (1573->1573) public exports.
The thread 1568 has exited with code 0 (0x0).
The thread 15080 has exited with code 0 (0x0).
The thread 8276 has exited with code 0 (0x0).
The thread 23964 has exited with code 0 (0x0).
[2024.05.10-16.20.45:346][693]LogCesium: Error: [2024-05-10 17:20:45.347] [error] [TilesetJsonLoader.cpp:889] Received status code 401 for tile content https://assets.ion.cesium.com/us-east-1/asset_depot/96188/OpenStreetMap/CWT/2024-03-04/14/16583/4425.b3dm?v=17

[2024.05.10-16.20.45:358][694]LogCesium: Error: [2024-05-10 17:20:45.359] [error] [TilesetJsonLoader.cpp:889] Received status code 401 for tile content https://assets.ion.cesium.com/us-east-1/asset_depot/96188/OpenStreetMap/CWT/2024-03-04/14/16582/4425.b3dm?v=17

[2024.05.10-16.20.45:369][695]LogCesium: Error: [2024-05-10 17:20:45.370] [error] [TilesetJsonLoader.cpp:889] Received status code 401 for tile content https://assets.ion.cesium.com/us-east-1/asset_depot/96188/OpenStreetMap/CWT/2024-03-04/14/16583/4424.b3dm?v=17

The thread 13460 has exited with code 0 (0x0).
[2024.05.10-16.20.45:403][698]LogCesium: Error: [2024-05-10 17:20:45.404] [error] [TilesetJsonLoader.cpp:889] Received status code 401 for tile content https://assets.ion.cesium.com/us-east-1/asset_depot/96188/OpenStreetMap/CWT/2024-03-04/14/16582/4424.b3dm?v=17

The thread 24220 has exited with code 0 (0x0).
The thread 13784 has exited with code 0 (0x0).
The thread 24268 has exited with code 0 (0x0).
The thread 24036 has exited with code 0 (0x0).
The thread 1440 has exited with code 0 (0x0).
[2024.05.10-16.21.29:800][693]LogStreaming: Display: 0.160 ms for processing 89658 objects in RemoveUnreachableObjects(Queued=0, Async=0). Removed 0 (537->537) packages and 0 (1573->1573) public exports.
Assertion failed: CurrentBlock < FNameMaxBlocks [File:D:\build\++UE5\Sync\Engine\Source\Runtime\Core\Private\UObject\UnrealNames.cpp] [Line: 698]
FName overflow, allocated 1024MB of string data. FName strings are never freed and should be created sparingly. Some system might be generating too many FNames, see call stack.
[2024.05.10-16.21.39:374][553]LogOutputDevice: Warning:

For reference, I am using unreal engine 5.2 and Cesium v2.0.0 install visa the epic game store

@csciguy8 When I had a quick read through the code I did think that the code at line 2981 was a probable contender for the error. In my code, the error happens even if I am not moving which I thought would mean that the same assets with the same names should be loading, which would mean that the memory used by FName would be re-used, but I dont know enough about how cesium works to know if that is true.
A quick look online it seems like you cant use a blank FName
template< class T >
FUNCTION_NON_NULL_RETURN_START
	T* NewObject(UObject* Outer, const UClass* Class, FName Name = NAME_None, EObjectFlags Flags = RF_NoFlags, UObject* Template = nullptr, bool bCopyTransientsFromClassDefaults = false, FObjectInstancingGraph* InInstanceGraph = nullptr, UPackage* ExternalPackage = nullptr)
FUNCTION_NON_NULL_RETURN_END
{
	if (Name == NAME_None)
	{
		FObjectInitializer::AssertIfInConstructor(Outer, TEXT("NewObject with empty name can't be used to create default subobjects (inside of UObject derived class constructor) as it produces inconsistent object names. Use ObjectInitializer.CreateDefaultSubobject<> instead."));
	}

A quick look online it seems like you cant use a blank FName

That assertion doesn't fire if you aren't in a constructor, so thankfully not an obstacle here.
Also good news, I removed creating the FName entirely and didn't see any issues.
Create this PR for it.
Thanks for writing this up!


nz-table underlying checkbox clickable on fixed column

The issue which is not created via https://ng.ant.design/issue-helper/#/en will be closed immediately.
Checkboxes which are scrolled behind a fixed column (so they are not visible) can be clicked.
In nz-table (version 7.3.2) I have build a table with the following properties:

horizontal scroll
fixed first three column (using nzLeft)
Each row has a checkbox in the first column (which is fixed), and checkboxes in the horizontal scrollable content part of the table.

So what happened is that whenever a user scrolls the table cells horizontally, the cells of the center of the table scroll behind the first fixed column. This is what you would expect. Now the users selects the first checkbox, which now looks unresponsive, but what actually happened is that the checkbox below (like in z-index below) is now checked. So a checkbox which is not visible to the user gets checked.
I have made the background color of the first cell (left bottom) transparent, so its visible what happens.  The orange checkbox has scrolled behind the one which is still empty and holds the arrow, and just now the orange got checked.

where the arrow is

igh

Hi @kevinvaningen
I check it in the below stackblitz, and found everything works fine
https://stackblitz.com/edit/angular-8dbptv?file=src/app/app.component.ts
plz submit another issue with valid stackbliz link if you still have questions


adding an option to refresh metadata

adding the option to auto refresh metadata for certain movie would be great. I am using rclone mount and bazarr for subs but plex wont recognize them unless I manually do a refresh metadata. It would be great if this could be automated also

Unfortunately Plex offers no way for us to refresh a path's metadata through the Plex API. Once Plex adds this option to their API, we can have a look at it!

Just a quick fyi @ajmandourah. This does the trick for me: https://github.com/dantebarba/autoscan-adapter
At @m-rots has something changed because putting this adapter in between autoscan and plex works for me.

Just a quick fyi @ajmandourah. This does the trick for me: https://github.com/dantebarba/autoscan-adapter
At @m-rots has something changed because putting this adapter in between autoscan and plex works for me.

In a nutshell, the adapter iterates through the Plex library (through the API) searching for the metadata item that matches the path scanned by Autoscan. We've considered similar methods. However, these broke down when Autoscan sent multiple scan requests to Plex. Instead of replying to Autoscan that a scan was successful, Plex merely indicates that the scan was added to its internal queue. Thus, if Autoscan were to search for a matching metadata item directly, it could fail when the scan is still in Plex's queue. We've looked at using Plex's events endpoint (which is a web socket stream) to receive a notification when a path has been scanned, though we deemed the added complexity not to be worth it.
It's great that the adapter works for you, but with this edge case in mind we decided not to include such functionality into Autoscan itself.


Kubernetes 1.27.x is currently broken with v1.3.2

Kubelet 1.26.x has the --container-runtime flag. This flag is deprecated and removed in 1.27.x. the current generated osc object still contains the flag which causes kubelet fails to start.

@moelsayed which OSM version are you on? The OSPs were updated when support for Kubernetes v1.27 was added through https://github.com/kubermatic/operating-system-manager/pull/287. So the OSPs should already have been updated and as soon as you update the Kubernetes version in the machine deployment, new OSCs will be generated which won't have this flag.

I just upgraded k8s to 1.27.5, but OSM would not reconcile the OSP to the newest version. It would say "Reconciling default OSP resource.." many times but the OSP and OSC were remained the same.
I deleted the OSP in use (osp-ubuntu) and deleted the related OSC and bootstrap- and provisioning secrets. After restarting OSM, the new OSP got created and all works fine now.

"Reconciling default OSP resource.."

Yes, that's when there is something in the way that is blocking OSM from updating the OSPs. Unfortunately, the log eats out the actual error; I'll fix that when we rework the logging for OSM.
Is it possible for you to reproduce this on another user cluster and then share the diff between osp-ubuntu from that cluster and from the other one where you manually performed the cleanup? Also i'm assuming this is KKP 2.23?

This is actually on a KubeOne 1.7 cluster.
diff osp-ubuntu-old.yaml osp-ubuntu-new.yaml
4,5c4,5
<   creationTimestamp: "2023-04-19T12:26:19Z"
<   generation: 2
---
>   creationTimestamp: "2023-09-21T11:11:13Z"
>   generation: 1
8,9c8,9
<   resourceVersion: "389871412"
<   uid: 0d097cdd-1078-4c90-ad35-53173fdcc9af
---
>   resourceVersion: "470608984"
>   uid: 2d74ad66-9ff9-4e48-8bb7-4f978db42936
48,50c48,50
<             /etc/cloud/cloud-init.disabled\n# Bootstrap phase for the machine is complete.\ntouch
<             /etc/bootstrap-complete\nsystemctl disable bootstrap.service\n# Start
<             provisioning phase for the machine.\nsystemctl restart setup.service\n"
---
>             /etc/cloud/cloud-init.disabled\n\n# Bootstrap phase for the machine is
>             complete.\ntouch /etc/bootstrap-complete\nsystemctl disable bootstrap.service\n\n#
>             Start provisioning phase for the machine.\nsystemctl restart setup.service\n"
257,265c257,265
<           data: |
<             net.bridge.bridge-nf-call-ip6tables = 1
<             net.bridge.bridge-nf-call-iptables = 1
<             kernel.panic_on_oops = 1
<             kernel.panic = 10
<             net.ipv4.ip_forward = 1
<             vm.overcommit_memory = 1
<             fs.inotify.max_user_watches = 1048576
<             fs.inotify.max_user_instances = 8192
---
>           data: "net.bridge.bridge-nf-call-ip6tables = 1\nnet.bridge.bridge-nf-call-iptables
>             = 1\nkernel.panic_on_oops = 1\nkernel.panic = 10\nnet.ipv4.ip_forward
>             = 1\n{{- if or (eq .NetworkIPFamily \"IPv4+IPv6\") (eq .NetworkIPFamily
>             \"IPv6+IPv4\") (eq .NetworkIPFamily \"IPv6\") }}\nnet.ipv6.conf.all.forwarding
>             = 1\n# Configure Linux to accept router advertisements to ensure the default\n#
>             IPv6 route is not removed from the routing table when the Docker service
>             starts.\n# For more information: https://github.com/docker/for-linux/issues/844\nnet.ipv6.conf.all.accept_ra\t\t=
>             2\n{{- end }}\nvm.overcommit_memory = 1\nfs.inotify.max_user_watches =
>             1048576\nfs.inotify.max_user_instances = 8192\n"
394d393
<               --container-runtime=remote \
744c743
<         CRI_TOOLS_RELEASE="${CRI_TOOLS_RELEASE:-v1.26.0}"
---
>         CRI_TOOLS_RELEASE="${CRI_TOOLS_RELEASE:-v1.27.0}"
808c807
<   version: v1.2.1
\ No newline at end of file
---
>   version: v1.3.1

I believe https://github.com/kubermatic/kubeone/issues/2924 might be a similar or even the same issue.

Unfortunately, I don't have the capacity to debug this issue. @hc2p my hunch is that this is probably happening because in v1.3.2, we didn't update the version for OSP, which was wrong as the release procedure wasn't properly followed. And OSM is unable to install the latest OSPs because of that.
But as I said, due to very limited capacity and focus on other topics that have higher precedence I can't actually debug/fix this.

Should be fixed through https://github.com/kubermatic/kubeone/pull/2933


./data/nginx:/etc/nginx/conf.d

Changing the local path of the conf.d directory containing the app.conf file to it's own conf dir under nginx would make the structure more consistent with the other directories. It would also be a cleaner way to add some flexibility, for example you could put nginx.conf inside ./data/nginx/conf/nginx.conf and bind mount it straight to /etc/nginx/nginx.conf insted of having it being put to /etc/nginx/conf.d/nginx.conf like it does today.
Today:
volumes:
- ./data/nginx:/etc/nginx/conf.d
- ./data/certbot/conf:/etc/letsencrypt
- ./data/certbot/www:/var/www/certbot
New proposal:
volumes:
- ./data/nginx/conf/conf.d:/etc/nginx/conf.d
- ./data/certbot/conf:/etc/letsencrypt
- ./data/certbot/www:/var/www/certbot

This makes a LOT more sense to me, it's just wiser to stick with the known locations of things because I'm struggling with your conf.d & app.conf differences.


{Network} az network lb address-pool: support new option update

closed: https://github.com/Azure/azure-cli/issues/19867
Description

Testing Guide

History Notes

[Component Name 1] BREAKING CHANGE: az command a: Make some customer-facing breaking change.
[Component Name 2] az command b: Add some customer-facing feature.

This checklist is used to make sure that common guidelines for a pull request are followed.

[ ] The PR title and description has followed the guideline in Submitting Pull Requests.

[ ] I adhere to the Command Guidelines.

[ ] I adhere to the Error Handling Guidelines.

Network

/azp run


Multi-person Annotation

Hi,  this is a awesome tool.
Now, we can only start with the first un-label data, then annotate data one by one.
So, can we each choose a specific task id then go on?

@qingtao12138 This is an advanced functionality that is only available on our commercial offering. Let me know if you'd interested in checking it out.


works on iOS, but not on macOS

Tested on macOS, but can not figure out why the login browser can not show up.
On the other hand, every thing works good in the iOS.
Xcode 13.0
macOS Monterey 12.1 Beta
authUrl: "https://github.com/login/oauth/authorize",
tokenUrl: "https://github.com/login/oauth/access_token",
clientId: ********,
redirectUri: "oauth-swift://oauth-callback/github",
clientSecret: ********,
scopes: ["repo, user"]

After changing the Authorization callback URL (GitHub->Settings->Developer settings->OAuth Apps->Authorization callback URL) and updating in the code accordingly (redirectUri), it works OK in the macOS now.


Add converters and helpers (bs.deriving)

I suggest we make a comment that user can use deriving directly
Which minimal version allows @deriving instead of @bs.deriving?

we can add a note that since 8.3, the bs. prefix is no longer needed

@bobzhang i added a notice in the beginning that starting from 8.3, ppl can drop the bs. prefix. When we lift the docs version number to 8.4 (after adding the rest of the missing docs), I'd completely remove the bs. from all examples and turn around the notice that bs.* is still supported but deprecated


Improve performance on deeply nested topics

Address report of poor performance from FC people, who were using deeply nested topics.
There are two main improvements:

Simplify the subtopic checker so that it doesn't use a regular expression
Rewrite DataFrame.iterrows() loops to use DataFrame.apply()

Put in basic tests of the functionality as well.

@Harsha-Nori I think this is ready to merge now.


Update values.yaml

Fixing the TLS example to be the correct format: https://kubernetes.io/docs/concepts/services-networking/ingress/#tls

What's wrong with the current example? The order of properties in an object doesn't matter

What's wrong with the current example? The order of properties in an object doesn't matter

"secretName" does not get picked up when being passed as a list. I could not get a cert to work until I've removed the dash.

Can you show the ingress section from your values.yaml file? The example might be confusing, but I believe it's correct, since the tls section is a list, and the example shows a single entry for it.

Can you show the ingress section from your values.yaml file? The example might be confusing, but I believe it's correct, since the tls section is a list, and the example shows a single entry for it.

If you try, it will fail. hosts should be a list and secretName a variable. So simple dash at the wrong place. Pls check the updated PR.

Can you include the full values.yaml that fails? It would be easier to compare with the example.


Feature: Add "Primary Contact" field to Opp

Feature request: Add a lookup field on Opp that is populated with the OCR record that is primary, if there is one.
Benefits:

Contact info could be displayed on Opp list views.
"Send an Email" button on Opp could use Contact-related SF merge fields (like first name for "Dear Jane") via the creation of x-obj formula fields based off of this new Primary contact field.
Lower-end 3rd party mail merge addins that don't know how to traverse Opp-OCR-Contact would still work via x-obj formula fields on Opp.

This feature has been implemented.


Add an is_archive method

See discussion on #187. Probably would be useful anyway. It's just a get_archive call with a ProjectionExpression={'_id': 1} or whatever the mongo/dynamo implementations are.

After discussion on #187, closing for now unless there is a compelling reason to use this instead of get_archive or batch_get_archive (see #191)


Add sort parameter to /content endpoint

This adds the sort parameter to the /content endpoint. Adds validation to the sort parameter in the api requests class and enables the content finder to query the database using the parameters.
The sort parameter is specified like so attribute:direction, where attribute is the key on which to sort and direction is either asc or desc.
Currently, valid sort attributed are daily metrics, 'title' and 'document_type'.

 (3) Sort table by any column (backend)

@theseanything would you mind fixing up the last commit into the right commit?


Multiple calls to GetInput extension lead to new glfw input contexts

Summary
Multiple calls to the GetInput extension will create a new glfw input context each time. Therefore event registering on other than the first input context will not raise the events.
Steps to reproduce

Platform: Any
Framework Version: Any

Create one method for initialize keyboard events and one for initialize mouse events.
In each method use GetInput() to retrieve the input context and add event handlers for keyboard events (first method) and mouse events (second method).
Mouse event callbacks are not called as the used input context is not considered by Silk. Only the first one is.

The problem is the method GetInput below. It creates a new instance of the input context instead of reusing the existing one if present.
    public class GlfwInputPlatform : IInputPlatform
    {
        public bool IsApplicable(IWindow window)
        {
            return window is GlfwWindow;
        }

        public IInputContext GetInput(IWindow window)
        {
            // the cast isn't needed, but is used to make sure that what we've got is actually a GlfwWindow
            return new GlfwInputContext((GlfwWindow)window); // <- Problem, should reuse context when called for the second time
        }
    }

Possible solutions

Reuse context on second and subsequent calls
Documentation that each time it is called a new context is created (in this case rename to CreateInput)
Make Silk register each of the created contexts and ensure that all of them are handled

I would prefer first fix.

This is by design, you should really only be calling GetInput once and keeping track of the input context.

Although I guess we could change it, idk @Ultz/silk-working-group what do you think?

If you want to keep it this way, then this must be documented better. Moreover a method labeled "GetXYZ" should have no side-effects by design. I would not expect that a new context is created. This should be renamed to CreateInput imho.

Yeah I 100% agree with you. The only reason we purposely made it so that it creates a new context is we wanted to avoid people going window.GetInput().blah for every single input call as that’s a code smell.

I’ll put it up to an working group vote now.

You can rename it to CreateInput to avoid your mentioned case.

This was prematurely closed as this change was not implemented in InputWindowExtensions.


Merge pull request #1 from jeroennoten/master

New Language support ( Arabic ) (#117)

Sorry,I have made mistakes,please close.