Non-grid components have multiplicity of zero

Using the inputs from #251, even if I force the multiplicity to be one with
blocks:
    fuel: &block_fuel
        grid name: pins
        duct: &comp_duct
            shape: Hexagon
            material: HT9
            Tinput: 600
            Thot: 600
            ip: 32
            op: 32.2
            mult: 1

the duct still has no multiplicity
import armi
from armi.reactor.flags import Flags
armi.configure()
o = armi.init(fName="minicore.yaml")
f = o.r.core.getFirstBlock(Flags.FUEL)
d = f.getComponentByName("duct")
d.getDimension("op")
32.2
d.getDimension("ip")
32.0
d.getDimension("mult")
0
d.getArea()
0.0

per https://github.com/terrapower/armi/blob/9e7c2984eae29ad0bb9752f9769cc17a7d12fec0/armi/reactor/components/basicShapes.py#L133-L138
This leads to problems when ARMI is computing volume fractions and can produce divide by zero errors in
https://github.com/terrapower/armi/blob/9e7c2984eae29ad0bb9752f9769cc17a7d12fec0/armi/reactor/composites.py#L1544

Confirmed. I have a test and a fix coming momentarily. Thanks for the report.

Thanks for jumping on a fix so fast. Looks like it's working well on my end 🚀


Parsley >2.3.2 fails to minify correctly using Rhino

We are using a CMS (Adobe CQ) that utilizes Mozilla's Rhino tool for JS minification and Parsley 2.3.2 is failing at various points in the script to minify properly. Is this something that's been observed or to be expected?
using Rhino 1.7R4

No! Very odd?
A minifier should be able to minify any script, no?
Our output is made by babel, so it's even stranger. I'd file a bug with them...

Do you have an example of code that minimizes incorrectly?

Yes, very odd indeed. When we remove 2.3.4 out of our global.min.js build it will compile, otherwise it fails. I can give you a hint that it does not like this block
  var requirementConverters = {
    string: function string(_string) {
      return _string;
    },
    integer: function integer(string) {
      if (isNaN(string)) throw 'Requirement is not an integer: "' + string + '"';
      return parseInt(string, 10);
    },
    number: function number(string) {
      if (isNaN(string)) throw 'Requirement is not a number: "' + string + '"';
      return parseFloat(string);
    },
    reference: function reference(string) {
      // Unused for now
      var result = $(string);
      if (result.length === 0) throw 'No such reference: "' + string + '"';
      return result;
    },
    boolean: function boolean(string) {
      return string !== 'false';
    },
    object: function object(string) {
      return ParsleyUtils__default.deserializeValue(string);
    },
    regexp: function regexp(_regexp) {
      var flags = '';

      // Test if RegExp is literal, if not, nothing to be done, otherwise, we need to isolate flags and pattern
      if (/^\/.*\/(?:[gimy]*)$/.test(_regexp)) {
        // Replace the regexp literal string with the first match group: ([gimy]*)
        // If no flag is present, this will be a blank string
        flags = _regexp.replace(/.*\/([gimy]*)$/, '$1');
        // Again, replace the regexp literal string with the first match group:
        // everything excluding the opening and closing slashes and the flags
        _regexp = _regexp.replace(new RegExp('^/(.*?)/' + flags + '$'), '$1');
      } else {
        // Anchor regexp:
        _regexp = '^' + _regexp + '$';
      }
      return new RegExp(_regexp, flags);
    }
  };

Is it possible for you to check if changing the line with boolean in it fixes it?
From
boolean: function boolean(string) {
to
'boolean': function _boolean(string) {
It looks like boolean was a reserved keyword in EcmaScript 3, so maybe that's what the issue is? I don't really see why rhino would choke on it, but babel should not output that code either.

Otherwise maybe there's some conflict with string, so you could try replacing
string: function string(_string) {

with
string: function __string(_string) {

BTW, the names of the functions are not actually used here. babel creates those to ease debugging I think.

I am not 100% sure this is the same issue originally reported, but I also have minification failures in the most recent versions of Parsley with the ASP.NET Web Optimization framework.  However, my error message points to the strict mode being violated for the undefined variable 'value', and this function in multiple.js:
  getValue: function () {
    // Value could be overriden in DOM
    if ('function' === typeof this.options.value)
      value = this.options.value(this);

Adding var value; here makes my minifier happy again.

@halovanic maybe not the same issue, but that's an actual bug, thanks for the report. Fixed & released.
Closing the initial report due to lack of feedback.

Looks like it was only due to the 'boolean' keyword. Fixed and released as 2.6.5


Offer ability to Authorize in Constructor with Service Account

We use environment variables for the majority of our configuration, it seems like it should be possible to create valid authorization headers by using the Google_Client constructor, I can see some variables in there but passing in the items from the credentials json file doesn't seem to populate correctly:
            [
                'client_id' => '0000000000052288323',
                'client_email' =><EMAIL_ADDRESS>                'signing_key' => "-----BEGIN PRIVATE KEY-----mykey-----END PRIVATE KEY-----\n",
                'type' => 'service_account'
            ]
        );

Is there a way we can accomplish this so I can use my Environment configuration to hold these values rather than having more un-version controlled files dotted about?
Thanks

Yes there is! See the method Google_Client::setAuthConfig, which accepts an array matching that contained in the auth config file, e.g.:
$authConfig = [
    'client_id' => getenv('GOOGLE_CLIENT_ID'),
    'client_secret' => getenv('GOOGLE_CLIENT_SECRET'),
    'redirect_uris' => ['https://www.yourwebsite.com/oauth/callback'],
];

$client = new Google_Client();
$client->setAuthConfig($authConfig);

Ah fantastic - thanks!


rule "uppercase" - account for node type "StateVariableDeclaration"

solidity-parser has node type StateVariableDeclaration because this.
Modify uppercase rule implementation & tests to work with this new format.

v0.5.0 onwards


TestContext scope is not as documented, broken examples

Describe the bug
https://vitest.dev/guide/test-context.html states that TestContext is setup before each test function and cleaned up after each test function, as documented in the sample code copy & pasted from there.
// my-test.ts
import { test } from 'vitest'

const todos = []
const archive = []

export const myTest = test.extend({
  todos: async ({ task }, use) => {
    // setup the fixture before each test function
    todos.push(1, 2, 3)

    // use the fixture value
    await use(todos)

    // cleanup the fixture after each test function
    todos.length = 0
  },
  archive
})

// xx.test.ts
import { expect } from 'vitest'
import { myTest } from './my-test.ts'

myTest('add items to todos', ({ todos }) => {
  expect(todos.length).toBe(3)

  todos.add(4) /// ADDED BY ME. This needs to be replaced by `todos.push(4)`
  expect(todos.length).toBe(4)
})

myTest('move items from todos to archive', ({ todos, archive }) => {
  expect(todos.length).toBe(3) /// ADDED BY ME. This fails because todos.length is 4.
  expect(archive.length).toBe(0)

  archive.push(todos.pop())
  expect(todos.length).toBe(2)
  expect(archive.length).toBe(1)
})

After fixing the obvious error in the first test (todos.add is not defined, replaced by todos.push), the second test fails because the context is not reset between test executions as documented. Instead, a single TextContext is shared between both test executions and the cleanup is only executed after both tests are done.
Reproduction

Copy & paste the example files
Run vitest run xx
Output:

 FAIL  src/t/xx.test.ts > move items from todos to archive
AssertionError: expected 4 to be 3 // Object.is equality

- Expected
+ Received

- 3
+ 4

 ❯ src/t/xx.test.ts:12:24
     10|
     11| myTest('move items from todos to archive', ({ todos, archive }) => {
     12|   expect(todos.length).toBe(3)
       |                        ^
     13|   expect(archive.length).toBe(0)
     14|

⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/1]⎯

 Test Files  1 failed (1)
      Tests  1 failed | 1 passed (2)
   Start at  22:48:08
   Duration  190ms (transform 33ms, setup 0ms, collect 25ms, tests 6ms, environment 0ms, prepare 47ms)

System Info
System:
    OS: macOS 13.6
    CPU: (10) arm64 Apple M1 Max
    Memory: 137.77 MB / 64.00 GB
    Shell: 3.5.1 - /opt/homebrew/bin/fish
  Binaries:
    Node: 20.8.1 - /opt/homebrew/bin/node
    Yarn: 1.22.19 - /opt/homebrew/bin/yarn
    npm: 10.1.0 - /opt/homebrew/bin/npm
    Watchman: 2<IP_ADDRESS> - /opt/homebrew/bin/watchman
  Browsers:
    Chrome: 118.0.5993.117
    Safari: 16.6

Used Package Manager
npm
Validations

[X] Follow our Code of Conduct
[X] Read the Contributing Guidelines.
[X] Read the docs.
[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
[X] Check that this is a concrete bug. For Q&A open a GitHub Discussion or join our Discord Chat Server.
[X] The provided reproduction is a minimal reproducible example of the bug.

What version of Vitest are you using?

For the record, as I was confused why #4410 "fixes" the issue experienced by @UnaiUribarri-TomTom: the failure to clean up was probably an instance of issue #4403, which is already fixed in the main branch but not in the latest release as of the time of writing (v0.34.6).


handle kinesis rate-limiting in example.go

http://docs.aws.amazon.com/kinesis/latest/APIReference/API_GetRecords.html
Note that GetRecords won't return any data when it throws an exception. For this reason, we recommend that you wait one second between calls to GetRecords; however, it's possible that the application will get exceptions for longer than 1 second.

Thanks!


STLink error (16): AP wait with NUCLEO-L452RE board

Hello,
when I try to flash a NUCLEO-L452RE board with pyOCD i get a
STLink error (16): AP wait
When I compile the same mbed blinky project for an STM32L152 pyOCD flashes a NUCLEO-L152RE Board without a problem.

Updated the ST-Link Programmer on the NUCLEO-Board to the latest version.
I can flash both boards with openOCD and mbed cli tools.
I have the same problem on a Windows 10 machine and a Mac running Big Sur.
Board is directly connected via USB (no hubs in between).
I also installed both packs for stm32l152 and stm32l452
pyOCD reports version number 0.32.3

Command
pyocd flash --target stm32l452retx --erase=chip -0 connect_mode=under-reset mbed-20220208-2.bin

This is the terminal output:
0002880:ERROR:ap:Transfer error while reading AHB-AP#0 ROM table: STLink error (16): AP wait
Traceback (most recent call last):
  File ".../pyocd/coresight/ap.py", line 740, in find_components
    cmpid.read_id_registers()
  File ".../pyocd/coresight/rom_table.py", line 114, in read_id_registers
    regs = self.ap.read_memory_block32(self.top_address + self.IDR_READ_START, self.IDR_READ_COUNT)
  File ".../pyocd/probe/stlink_probe.py", line 270, in read_memory_block32
    return conversion.byte_list_to_u32le_list(self._link.read_mem32(addr, size * 4, self._apsel))
  File ".../pyocd/probe/stlink/stlink.py", line 385, in read_mem32
    return self._read_mem(addr, size, Commands.JTAG_READMEM_32BIT, self.MAXIMUM_TRANSFER_SIZE, apsel)
  File ".../pyocd/probe/stlink/stlink.py", line 345, in _read_mem
    raise self._ERROR_CLASSES[status](error_message)
pyocd.core.exceptions.TransferTimeoutError: STLink error (16): AP wait
0002883:CRITICAL:__main__:No cores were discovered!
Traceback (most recent call last):
  File ".../pyocd/__main__.py", line 150, in run
    status = cmd.invoke()
  File ".../pyocd/subcommands/load_cmd.py", line 96, in invoke
    with session:
  File ".../pyocd/core/session.py", line 341, in __enter__
    self.open()
  File ".../pyocd/core/session.py", line 459, in open
    self._board.init()
  File ".../pyocd/board/board.py", line 99, in init
    self.target.init()
  File ".../pyocd/core/soc_target.py", line 117, in init
    seq.invoke()
  File ".../pyocd/utility/sequencer.py", line 208, in invoke
    resultSequence = call()
  File ".../pyocd/coresight/coresight_target.py", line 247, in check_for_cores
    raise exceptions.DebugError("No cores were discovered!")
pyocd.core.exceptions.DebugError: No cores were discovered!

I also looked at #1147 but a power down problem can not be related to mine. Board is running/idle not power down.
Any pointers to what I could check or test would be appreciated.
Stephen

Hi @steprat, sorry for the slow reply, I was moving to a new house this past week.
Is the pyocd command line in your description correct? It has -0 connect_mode=under-reset, with a zero instead of "capital oh". This probably won't work, but is worth checking.
Mbed OS automatically places the device in low power modes when CPU idles (like most modern IoT oriented RTOSes), so this is almost certainly related to low power modes. (The "AP wait" error occurs almost exclusively with low power related issues on STM32.)
Could you please try pyocd v0.33.1 (latest as of this writing)?
I'm not very familiar with the STM32L452/152 differences compared to other STM32 devices, so I'll need to read up on them before suggesting anything else.


request: Static bundle

can  we return  the static bundle of @9Morello ?
just run
move to /opt
and  play

@Eloston i gonna try

I'll be waiting for a PR!

@lenormf i've tried to use the deb
but uses ancient libraries
or wait to ungoogled-chromium at aur (after iit i build online)


Support SM2/SM3/SM4 in this library for pgp

Just cheking, if this will be supported in this pgp libaray

SM2: https://www.openssl.org/docs/manmaster/man7/SM2.html
SM3: https://www.openssl.org/docs/man1.1.1/man3/EVP_sm3.html
SM4: https://www.openssl.org/docs/man3.0/man7/EVP_CIPHER-SM4.html

Are they included in the OpenPGP specification? As far as I know, it doesn't seem to be in RFCs^1.

Are they included in the OpenPGP specification? As far as I know, it doesn't seem to be in RFCs12.
Footnotes

https://datatracker.ietf.org/doc/html/rfc4880 ↩
https://datatracker.ietf.org/doc/html/draft-ietf-openpgp-crypto-refresh ↩

Correct, it's not in the SPEC, it's been supported in RNP and check here

@TommyLike Thanks for information. These Rust implementations are available,^1^3 so this might be easy to solve.

Given the availability of those crates, I'd be happy to accept a PR that adds support for these behind a feature flag.

Looking forward to someone who can help on this. 😄

There are implementations of all three mechanisms in RustCrypto by now:
https://crates.io/crates/sm2/
https://crates.io/crates/sm3/
https://crates.io/crates/sm4/
However, it seems that the RustCrypto implementation of sm2 is still missing support for the SM2 Key Exchange Protocol and SM2 Public Key Encryption.


configure script cannot run twice in mips cross environment

Here is the output: https://github.com/abcfy2/qBittorrent-Enhanced-Edition/actions/runs/5119758583/jobs/9215933628
zlib-ng version 2.1.1-beta2
Using mips-linux-musl-ar
Using mips-linux-musl-ranlib
Checking for compiler... mips-linux-musl-gcc
Building static library libz.a version 1.2.13.zlib-ng with mips-linux-musl-gcc.
Checking for off64_t... Yes.
Checking for fseeko... Yes.
Checking for posix_memalign... Yes.
Checking for aligned_alloc... Yes.
Checking for strerror... Yes.
Checking for getauxval() or elf_aux_info() in sys/auxv.h... Yes.
Checking for unistd.h... Yes.
Checking for ptrdiff_t... Yes.
Checking for ANSI C compliant compiler...  Yes.
Checking for -fno-semantic-interposition... Yes.
Checking for -fno-lto... Yes.
Checking for attribute(visibility(hidden)) support... Yes.
Checking for attribute(visibility(internal)) support... Yes.
Checking for attribute(aligned) ... Yes.
Checking for _Thread_local ... Yes.
Checking for __builtin_ctz ... Yes.
Checking for __builtin_ctzll ... Yes.
ARCH: mips
Using arch directory: arch/generic
Architecture-specific static object files:
Architecture-specific shared object files:
grep: /usr/src/zlib-ng-2.1.1-beta2/arch/generic/*.c: No such file or directory
grep: /usr/src/zlib-ng-2.1.1-beta2/arch/generic/*.c: No such file or directory
Using cross-compile emulator: qemu-mips -L /usr/mips-linux-musl/
make: *** No rule to make target '/usr/src/zlib-ng-2.1.1-beta2/arch/generic/*.c', needed by 'example.o'.  Stop.
Error: Process completed with exit code 2.

And I've tried make distclean, but there's an error:
# make distclean
make[1]: Entering directory '/usr/src/zlib-ng-2.1.1-beta2/arch/generic'
rm -f *.o *.lo *~ \
rm -rf objs
rm -f *.gcda *.gcno *.gcov
make[1]: Leaving directory '/usr/src/zlib-ng-2.1.1-beta2/arch/generic'
make[1]: Entering directory '/usr/src/zlib-ng-2.1.1-beta2/test'
Makefile:22: *** recipe commences before first target.  Stop.
make[1]: Leaving directory '/usr/src/zlib-ng-2.1.1-beta2/test'
make: *** [Makefile:359: clean] Error 2

There might be something wrong in configure script. Please help.
Thanks.

When the first time run in a clean project directory, it works:
# CHOST="${CROSS_HOST}" ./configure --prefix="${CROSS_PREFIX}" --static --zlib-compat
Using mips64-linux-musl-ar
Using mips64-linux-musl-ranlib
Checking for compiler... mips64-linux-musl-gcc
Building static library libz.a version 1.2.13.zlib-ng with mips64-linux-musl-gcc.
Checking for off64_t... Yes.
Checking for fseeko... Yes.
Checking for posix_memalign... Yes.
Checking for aligned_alloc... Yes.
Checking for strerror... Yes.
Checking for getauxval() or elf_aux_info() in sys/auxv.h... Yes.
Checking for unistd.h... Yes.
Checking for ptrdiff_t... Yes.
Checking for ANSI C compliant compiler...  Yes.
Checking for -fno-semantic-interposition... Yes.
Checking for -fno-lto... Yes.
Checking for attribute(visibility(hidden)) support... Yes.
Checking for attribute(visibility(internal)) support... Yes.
Checking for attribute(aligned) ... Yes.
Checking for _Thread_local ... Yes.
Checking for __builtin_ctz ... Yes.
Checking for __builtin_ctzll ... Yes.
ARCH: mips64
Using arch directory: arch/generic
Architecture-specific static object files:
Architecture-specific shared object files:
grep: /usr/src/zlib-ng-2.1.1-beta2/arch/generic/*.c: No such file or directory
grep: /usr/src/zlib-ng-2.1.1-beta2/arch/generic/*.c: No such file or directory
Using cross-compile emulator: qemu-mips64 -L /usr/mips64-linux-musl/

# make
mips64-linux-musl-gcc -O2  -std=c11 -Wall -DNDEBUG -D_LARGEFILE64_SOURCE=1 -DHAVE_POSIX_MEMALIGN -DHAVE_ALIGNED_ALLOC -DHAVE_SYS_AUXV_H -DZLIB_COMPAT -DWITH_GZFILEOP -DHAVE_VISIBILITY_HIDDEN -DHAVE_VISIBILITY_INTERNAL -DHAVE_ATTRIBUTE_ALIGNED -DHAVE_THREAD_LOCAL -DHAVE_BUILTIN_CTZ -DHAVE_BUILTIN_CTZLL -DWITH_GZFILEOP -I/usr/src/zlib-ng-2.1.1-beta2 -c -o example.o /usr/src/zlib-ng-2.1.1-beta2/test/example.c
...

But when I run configure twice, then make will fail:
# CHOST="${CROSS_HOST}" ./configure --prefix="${CROSS_PREFIX}" --static --zlib-compat
Using mips64-linux-musl-ar
Using mips64-linux-musl-ranlib
Checking for compiler... mips64-linux-musl-gcc
Building static library libz.a version 1.2.13.zlib-ng with mips64-linux-musl-gcc.
Checking for off64_t... Yes.
Checking for fseeko... Yes.
Checking for posix_memalign... Yes.
Checking for aligned_alloc... Yes.
Checking for strerror... Yes.
Checking for getauxval() or elf_aux_info() in sys/auxv.h... Yes.
Checking for unistd.h... Yes.
Checking for ptrdiff_t... Yes.
Checking for ANSI C compliant compiler...  Yes.
Checking for -fno-semantic-interposition... Yes.
Checking for -fno-lto... Yes.
Checking for attribute(visibility(hidden)) support... Yes.
Checking for attribute(visibility(internal)) support... Yes.
Checking for attribute(aligned) ... Yes.
Checking for _Thread_local ... Yes.
Checking for __builtin_ctz ... Yes.
Checking for __builtin_ctzll ... Yes.
ARCH: mips64
Using arch directory: arch/generic
Architecture-specific static object files:
Architecture-specific shared object files:
grep: /usr/src/zlib-ng-2.1.1-beta2/arch/generic/*.c: No such file or directory
grep: /usr/src/zlib-ng-2.1.1-beta2/arch/generic/*.c: No such file or directory
Using cross-compile emulator: qemu-mips64 -L /usr/mips64-linux-musl/

# make
make: *** No rule to make target '/usr/src/zlib-ng-2.1.1-beta2/arch/generic/*.c', needed by 'example.o'.  Stop.

# make distclean
make[1]: Entering directory '/usr/src/zlib-ng-2.1.1-beta2/arch/generic'
rm -f *.o *.lo *~ \
rm -rf objs
rm -f *.gcda *.gcno *.gcov
make[1]: Leaving directory '/usr/src/zlib-ng-2.1.1-beta2/arch/generic'
make[1]: Entering directory '/usr/src/zlib-ng-2.1.1-beta2/test'
Makefile:22: *** recipe commences before first target.  Stop.
make[1]: Leaving directory '/usr/src/zlib-ng-2.1.1-beta2/test'
make: *** [Makefile:359: clean] Error 2

It looks like we don't have any MIPS CI. We are moving away from configure script in the future. It is best to use cmake if you can. You might be able to solve the problem by placing an empty c file in arch/generic/.

This might be issue with make as we don't have any rule in Makefile.in that depends on arch/*/*.c
To verify, we would need binary copies of Makefile and test/Makefile. This means the files need to be compressed to preserve all whitespace and linefeed characters.


Cut a release with Kubernetes 1.16 dependency

What happened:
We need a release with Kubernetes 1.16 dependency.
What you expected to happen:
I am using v0.4.2 at this moment. When I migrate to Kubernetes 1.16. we see this error.
../../../../pkg/mod/github.com/kubernetes-sigs/kube-batch@v0.0.0-20190101025100-b0dbd4f2df59/pkg/client/clientset/versioned/typed/scheduling/v1alpha1/scheduling_client.go:79:32: undefined: serializer.DirectCodecFactory

serializer.DirectCodecFactory was deleted in 1.16 and we need to use serializer.WithoutConversionCodecFactory or https://github.com/kubernetes-sigs/kube-batch/blob/2e934d1c88604d01dcb5c40ff9f0534875a10730/pkg/client/clientset/versioned/typed/scheduling/v1alpha1/scheduling_client.go#L78.
The reason we use 1.16 is volcano now uses 1.16.x. When I migrate to volcano, v1 implementation can be changed to volcano which depends on 1.16.x. while v1beta1 still uses kube-batch with < 1.16 kubernetes. In order to make build work, we hope to get a kube-batch version with 1.16 Kubernetes.
How to reproduce it (as minimally and precisely as possible):
Anything else we need to know?:
v0.5.0 doesn't have latest dependency as well.
Environment:

Kubernetes version (use kubectl version):
Cloud provider or hardware configuration:
OS (e.g. from /etc/os-release):
Kernel (e.g. uname -a):
Install tools:
Others:

/cc @k82cn @hzxuzhonghu

Let's hold this. Trying to resolve all the problems by replacing kubernetes dependency.

ok, if there's anything I can do, please let me know :)

/remove-lifecycle stale

Is it possible to replace serializer.DirectCodecFactory with serializer.WithoutConversionCodecFactory in a future Kube-batch release?
Since I have to stick to apimachinery 0.16.x (or any versions after Kubernetes 1.15), my solution is to put a hack script, which adding type DirectCodecFactory WithoutConversionCodecFactory to the vendor/k8s.io/apimachinery/pkg/runtime/serializer/codec_factory.go.

Is it possible to replace serializer.DirectCodecFactory with serializer.WithoutConversionCodecFactory in a future Kube-batch release?
Since I have to stick to apimachinery 0.16.x (or any versions after Kubernetes 1.15), my solution is to put a hack script, which adding type DirectCodecFactory WithoutConversionCodecFactory to the vendor/k8s.io/apimachinery/pkg/runtime/serializer/codec_factory.go.

Would you try Volcano ?

Is it possible to replace serializer.DirectCodecFactory with serializer.WithoutConversionCodecFactory in a future Kube-batch release?
Since I have to stick to apimachinery 0.16.x (or any versions after Kubernetes 1.15), my solution is to put a hack script, which adding type DirectCodecFactory WithoutConversionCodecFactory to the vendor/k8s.io/apimachinery/pkg/runtime/serializer/codec_factory.go.

Would you try Volcano ?

Sure.


This readme is empty and incoherent: remove it

In a similar way we probably want to remove also pallets/proof_of_existence/README.md, correct?

Right!


isaac_ros_tensor_rt  build failed

I'm building isaac_ros_dnn_inference in Orin Nano, Jetpack 6.0,
and had the same build error and here's the full error log;
(Due to performance issue, I'm not building in the docker container.)
--- stderr: isaac_ros_tensor_rt
In file included from /usr/src/googletest/googlemock/include/gmock/gmock-spec-builders.h:75,
                 from /usr/src/googletest/googlemock/include/gmock/gmock-function-mocker.h:42,
                 from /usr/src/googletest/googlemock/include/gmock/gmock.h:61,
                 from /home/wego/wego_ws/src/isaac_ros_dnn_inference/isaac_ros_tensor_rt/test/tensor_rt_node_test.cpp:18:
/usr/src/googletest/googlemock/include/gmock/gmock-matchers.h: In member function ‘testing::internal::FieldsAreMatcher<Inner>::operator testing::Matcher<T>() const’:
/usr/src/googletest/googlemock/include/gmock/gmock-matchers.h:3165:49: error: ‘IndexSequenceFor’ was not declared in this scope; did you mean ‘IndexSequence’?
 3165 |         new FieldsAreMatcherImpl<const Struct&, IndexSequenceFor<Inner...>>(
      |                                                 ^~~~~~~~~~~~~~~~
      |                                                 IndexSequence
/usr/src/googletest/googlemock/include/gmock/gmock-matchers.h:3165:71: error: expected parameter pack before ‘...’
 3165 |         new FieldsAreMatcherImpl<const Struct&, IndexSequenceFor<Inner...>>(
      |                                                                       ^~~
/usr/src/googletest/googlemock/include/gmock/gmock-matchers.h:3165:71: error: template argument 2 is invalid
/usr/src/googletest/googlemock/include/gmock/gmock-matchers.h: At global scope:
/usr/src/googletest/googlemock/include/gmock/gmock-matchers.h:4291:21: error: ‘StringLike’ in namespace ‘testing::internal’ does not name a template type; did you mean ‘Strings’?
 4291 |     const internal::StringLike<T>& str) {
      |                     ^~~~~~~~~~
      |                     Strings
/usr/src/googletest/googlemock/include/gmock/gmock-matchers.h:4291:31: error: expected ‘,’ or ‘...’ before ‘<’ token
 4291 |     const internal::StringLike<T>& str) {
      |                               ^
/usr/src/googletest/googlemock/include/gmock/gmock-matchers.h: In function ‘testing::PolymorphicMatcher<testing::internal::StrEqualityMatcher<std::__cxx11::basic_string<char> > > testing::StrEq(int)’:
/usr/src/googletest/googlemock/include/gmock/gmock-matchers.h:4293:61: error: ‘str’ was not declared in this scope; did you mean ‘std’?
 4293 |       internal::StrEqualityMatcher<std::string>(std::string(str), true, true));
      |                                                             ^~~
      |                                                             std
/usr/src/googletest/googlemock/include/gmock/gmock-matchers.h: At global scope:
/usr/src/googletest/googlemock/include/gmock/gmock-matchers.h:4299:21: error: ‘StringLike’ in namespace ‘testing::internal’ does not name a template type; did you mean ‘Strings’?
 4299 |     const internal::StringLike<T>& str) {
      |                     ^~~~~~~~~~
      |                     Strings
/usr/src/googletest/googlemock/include/gmock/gmock-matchers.h:4299:31: error: expected ‘,’ or ‘...’ before ‘<’ token
 4299 |     const internal::StringLike<T>& str) {
      |                               ^
/usr/src/googletest/googlemock/include/gmock/gmock-matchers.h: In function ‘testing::PolymorphicMatcher<testing::internal::StrEqualityMatcher<std::__cxx11::basic_string<char> > > testing::StrNe(int)’:
/usr/src/googletest/googlemock/include/gmock/gmock-matchers.h:4301:61: error: ‘str’ was not declared in this scope; did you mean ‘std’?
 4301 |       internal::StrEqualityMatcher<std::string>(std::string(str), false, true));
      |                                                             ^~~
      |                                                             std
/usr/src/googletest/googlemock/include/gmock/gmock-matchers.h: At global scope:
/usr/src/googletest/googlemock/include/gmock/gmock-matchers.h:4307:21: error: ‘StringLike’ in namespace ‘testing::internal’ does not name a template type; did you mean ‘Strings’?
 4307 |     const internal::StringLike<T>& str) {
      |                     ^~~~~~~~~~
      |                     Strings
/usr/src/googletest/googlemock/include/gmock/gmock-matchers.h:4307:31: error: expected ‘,’ or ‘...’ before ‘<’ token
 4307 |     const internal::StringLike<T>& str) {
      |                               ^
/usr/src/googletest/googlemock/include/gmock/gmock-matchers.h: In function ‘testing::PolymorphicMatcher<testing::internal::StrEqualityMatcher<std::__cxx11::basic_string<char> > > testing::StrCaseEq(int)’:
/usr/src/googletest/googlemock/include/gmock/gmock-matchers.h:4309:61: error: ‘str’ was not declared in this scope; did you mean ‘std’?
 4309 |       internal::StrEqualityMatcher<std::string>(std::string(str), true, false));
      |                                                             ^~~
      |                                                             std
/usr/src/googletest/googlemock/include/gmock/gmock-matchers.h: At global scope:
/usr/src/googletest/googlemock/include/gmock/gmock-matchers.h:4315:21: error: ‘StringLike’ in namespace ‘testing::internal’ does not name a template type; did you mean ‘Strings’?
 4315 |     const internal::StringLike<T>& str) {
      |                     ^~~~~~~~~~
      |                     Strings
/usr/src/googletest/googlemock/include/gmock/gmock-matchers.h:4315:31: error: expected ‘,’ or ‘...’ before ‘<’ token
 4315 |     const internal::StringLike<T>& str) {
      |                               ^
/usr/src/googletest/googlemock/include/gmock/gmock-matchers.h: In function ‘testing::PolymorphicMatcher<testing::internal::StrEqualityMatcher<std::__cxx11::basic_string<char> > > testing::StrCaseNe(int)’:
/usr/src/googletest/googlemock/include/gmock/gmock-matchers.h:4317:19: error: ‘str’ was not declared in this scope; did you mean ‘std’?
 4317 |       std::string(str), false, false));
      |                   ^~~
      |                   std
/usr/src/googletest/googlemock/include/gmock/gmock-matchers.h: At global scope:
/usr/src/googletest/googlemock/include/gmock/gmock-matchers.h:4324:21: error: ‘StringLike’ in namespace ‘testing::internal’ does not name a template type; did you mean ‘Strings’?
 4324 |     const internal::StringLike<T>& substring) {
      |                     ^~~~~~~~~~
      |                     Strings
/usr/src/googletest/googlemock/include/gmock/gmock-matchers.h:4324:31: error: expected ‘,’ or ‘...’ before ‘<’ token
 4324 |     const internal::StringLike<T>& substring) {
      |                               ^
/usr/src/googletest/googlemock/include/gmock/gmock-matchers.h: In function ‘testing::PolymorphicMatcher<testing::internal::HasSubstrMatcher<std::__cxx11::basic_string<char> > > testing::HasSubstr(int)’:
/usr/src/googletest/googlemock/include/gmock/gmock-matchers.h:4326:59: error: ‘substring’ was not declared in this scope; did you mean ‘IsSubstring’?
 4326 |       internal::HasSubstrMatcher<std::string>(std::string(substring)));
      |                                                           ^~~~~~~~~
      |                                                           IsSubstring
/usr/src/googletest/googlemock/include/gmock/gmock-matchers.h: At global scope:
/usr/src/googletest/googlemock/include/gmock/gmock-matchers.h:4332:21: error: ‘StringLike’ in namespace ‘testing::internal’ does not name a template type; did you mean ‘Strings’?
 4332 |     const internal::StringLike<T>& prefix) {
      |                     ^~~~~~~~~~
      |                     Strings
/usr/src/googletest/googlemock/include/gmock/gmock-matchers.h:4332:31: error: expected ‘,’ or ‘...’ before ‘<’ token
 4332 |     const internal::StringLike<T>& prefix) {
      |                               ^
/usr/src/googletest/googlemock/include/gmock/gmock-matchers.h: In function ‘testing::PolymorphicMatcher<testing::internal::StartsWithMatcher<std::__cxx11::basic_string<char> > > testing::StartsWith(int)’:
/usr/src/googletest/googlemock/include/gmock/gmock-matchers.h:4334:60: error: ‘prefix’ was not declared in this scope; did you mean ‘profil’?
 4334 |       internal::StartsWithMatcher<std::string>(std::string(prefix)));
      |                                                            ^~~~~~
      |                                                            profil
/usr/src/googletest/googlemock/include/gmock/gmock-matchers.h: At global scope:
/usr/src/googletest/googlemock/include/gmock/gmock-matchers.h:4340:21: error: ‘StringLike’ in namespace ‘testing::internal’ does not name a template type; did you mean ‘Strings’?
 4340 |     const internal::StringLike<T>& suffix) {
      |                     ^~~~~~~~~~
      |                     Strings
/usr/src/googletest/googlemock/include/gmock/gmock-matchers.h:4340:31: error: expected ‘,’ or ‘...’ before ‘<’ token
 4340 |     const internal::StringLike<T>& suffix) {
      |                               ^
/usr/src/googletest/googlemock/include/gmock/gmock-matchers.h: In function ‘testing::PolymorphicMatcher<testing::internal::EndsWithMatcher<std::__cxx11::basic_string<char> > > testing::EndsWith(int)’:
/usr/src/googletest/googlemock/include/gmock/gmock-matchers.h:4342:58: error: ‘suffix’ was not declared in this scope
 4342 |       internal::EndsWithMatcher<std::string>(std::string(suffix)));
      |                                                          ^~~~~~
/usr/src/googletest/googlemock/include/gmock/gmock-matchers.h: In member function ‘bool testing::internal::ExceptionMatcherImpl<Err>::MatchAndExplain(T&&, testing::MatchResultListener*) const’:
/usr/src/googletest/googlemock/include/gmock/gmock-matchers.h:5150:65: error: no matching function for call to ‘GetTypeName(const std::type_info&)’
 5150 |       *listener << "throws an exception of type " << GetTypeName(typeid(err));
      |                                                      ~~~~~~~~~~~^~~~~~~~~~~~~
In file included from /opt/ros/humble/src/gtest_vendor/include/gtest/internal/gtest-internal.h:67,
                 from /opt/ros/humble/src/gtest_vendor/include/gtest/gtest.h:62,
                 from /usr/src/googletest/googlemock/include/gmock/internal/gmock-internal-utils.h:47,
                 from /usr/src/googletest/googlemock/include/gmock/gmock-actions.h:145,
                 from /usr/src/googletest/googlemock/include/gmock/gmock.h:59,
                 from /home/wego/wego_ws/src/isaac_ros_dnn_inference/isaac_ros_tensor_rt/test/tensor_rt_node_test.cpp:18:
/opt/ros/humble/src/gtest_vendor/include/gtest/internal/gtest-type-util.h:80:13: note: candidate: ‘template<class T> std::string testing::internal::GetTypeName()’
   80 | std::string GetTypeName() {
      |             ^~~~~~~~~~~
/opt/ros/humble/src/gtest_vendor/include/gtest/internal/gtest-type-util.h:80:13: note:   template argument deduction/substitution failed:
In file included from /usr/src/googletest/googlemock/include/gmock/gmock-spec-builders.h:75,
                 from /usr/src/googletest/googlemock/include/gmock/gmock-function-mocker.h:42,
                 from /usr/src/googletest/googlemock/include/gmock/gmock.h:61,
                 from /home/wego/wego_ws/src/isaac_ros_dnn_inference/isaac_ros_tensor_rt/test/tensor_rt_node_test.cpp:18:
/usr/src/googletest/googlemock/include/gmock/gmock-matchers.h:5150:65: note:   candidate expects 0 arguments, 1 provided
 5150 |       *listener << "throws an exception of type " << GetTypeName(typeid(err));
      |                                                      ~~~~~~~~~~~^~~~~~~~~~~~~
In file included from /usr/src/googletest/googlemock/include/gmock/gmock.h:63,
                 from /home/wego/wego_ws/src/isaac_ros_dnn_inference/isaac_ros_tensor_rt/test/tensor_rt_node_test.cpp:18:
/usr/src/googletest/googlemock/include/gmock/gmock-more-actions.h: In member function ‘decltype (testing::internal::InvokeArgument(get<index>(std::forward_as_tuple((forward<Args>)(args)...)), (declval<const Params&>)()...)) testing::internal::InvokeArgumentAction<index, Params>::operator()(Args&& ...) const’:
/usr/src/googletest/googlemock/include/gmock/gmock-more-actions.h:519:47: error: ‘FlatTupleConstructTag’ was not declared in this scope
  519 |     internal::FlatTuple<Args&&...> args_tuple(FlatTupleConstructTag{},
      |                                               ^~~~~~~~~~~~~~~~~~~~~
/usr/src/googletest/googlemock/include/gmock/gmock-more-actions.h: In function ‘testing::internal::InvokeArgumentAction<index, typename std::decay<Params>::type ...> testing::InvokeArgument(Params&& ...)’:
/usr/src/googletest/googlemock/include/gmock/gmock-more-actions.h:564:17: error: ‘FlatTupleConstructTag’ is not a member of ‘testing::internal’
  564 |       internal::FlatTupleConstructTag{}, std::forward<Params>(params)...)};
      |                 ^~~~~~~~~~~~~~~~~~~~~
In file included from /opt/ros/humble/src/gtest_vendor/include/gtest/gtest.h:62,
                 from /usr/src/googletest/googlemock/include/gmock/internal/gmock-internal-utils.h:47,
                 from /usr/src/googletest/googlemock/include/gmock/gmock-actions.h:145,
                 from /usr/src/googletest/googlemock/include/gmock/gmock.h:59,
                 from /home/wego/wego_ws/src/isaac_ros_dnn_inference/isaac_ros_tensor_rt/test/tensor_rt_node_test.cpp:18:
/home/wego/wego_ws/src/isaac_ros_dnn_inference/isaac_ros_tensor_rt/test/tensor_rt_node_test.cpp: In member function ‘virtual void tensor_rt_node_test_test_engine_file_path_Test::TestBody()’:
/home/wego/wego_ws/src/isaac_ros_dnn_inference/isaac_ros_tensor_rt/test/tensor_rt_node_test.cpp:37:47: error: no matching function for call to ‘HasSubstr(const char [23])’
   37 |       EXPECT_THAT(e.what(), testing::HasSubstr("Empty engine_file_path"));
      |                             ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
/home/wego/wego_ws/src/isaac_ros_dnn_inference/isaac_ros_tensor_rt/test/tensor_rt_node_test.cpp:37:7: note: in expansion of macro ‘EXPECT_THAT’
   37 |       EXPECT_THAT(e.what(), testing::HasSubstr("Empty engine_file_path"));
      |       ^~~~~~~~~~~
In file included from /usr/src/googletest/googlemock/include/gmock/gmock-spec-builders.h:75,
                 from /usr/src/googletest/googlemock/include/gmock/gmock-function-mocker.h:42,
                 from /usr/src/googletest/googlemock/include/gmock/gmock.h:61,
                 from /home/wego/wego_ws/src/isaac_ros_dnn_inference/isaac_ros_tensor_rt/test/tensor_rt_node_test.cpp:18:
/usr/src/googletest/googlemock/include/gmock/gmock-matchers.h:4323:62: note: candidate: ‘template<class T> testing::PolymorphicMatcher<testing::internal::HasSubstrMatcher<std::__cxx11::basic_string<char> > > testing::HasSubstr(int)’
 4323 | PolymorphicMatcher<internal::HasSubstrMatcher<std::string> > HasSubstr(
      |                                                              ^~~~~~~~~
/usr/src/googletest/googlemock/include/gmock/gmock-matchers.h:4323:62: note:   template argument deduction/substitution failed:
In file included from /opt/ros/humble/src/gtest_vendor/include/gtest/gtest.h:62,
                 from /usr/src/googletest/googlemock/include/gmock/internal/gmock-internal-utils.h:47,
                 from /usr/src/googletest/googlemock/include/gmock/gmock-actions.h:145,
                 from /usr/src/googletest/googlemock/include/gmock/gmock.h:59,
                 from /home/wego/wego_ws/src/isaac_ros_dnn_inference/isaac_ros_tensor_rt/test/tensor_rt_node_test.cpp:18:
/home/wego/wego_ws/src/isaac_ros_dnn_inference/isaac_ros_tensor_rt/test/tensor_rt_node_test.cpp:37:48: note:   cannot convert ‘"Empty engine_file_path"’ (type ‘const char [23]’) to type ‘int’
   37 |       EXPECT_THAT(e.what(), testing::HasSubstr("Empty engine_file_path"));
      |                                                ^~~~~~~~~~~~~~~~~~~~~~~~
/home/wego/wego_ws/src/isaac_ros_dnn_inference/isaac_ros_tensor_rt/test/tensor_rt_node_test.cpp:37:7: note: in expansion of macro ‘EXPECT_THAT’
   37 |       EXPECT_THAT(e.what(), testing::HasSubstr("Empty engine_file_path"));
      |       ^~~~~~~~~~~
In file included from /usr/src/googletest/googlemock/include/gmock/gmock-spec-builders.h:75,
                 from /usr/src/googletest/googlemock/include/gmock/gmock-function-mocker.h:42,
                 from /usr/src/googletest/googlemock/include/gmock/gmock.h:61,
                 from /home/wego/wego_ws/src/isaac_ros_dnn_inference/isaac_ros_tensor_rt/test/tensor_rt_node_test.cpp:18:
/usr/src/googletest/googlemock/include/gmock/gmock-matchers.h:4378:70: note: candidate: ‘testing::PolymorphicMatcher<testing::internal::HasSubstrMatcher<std::__cxx11::basic_string<wchar_t> > > testing::HasSubstr(const wstring&)’
 4378 | inline PolymorphicMatcher<internal::HasSubstrMatcher<std::wstring> > HasSubstr(
      |                                                                      ^~~~~~~~~
/usr/src/googletest/googlemock/include/gmock/gmock-matchers.h:4379:25: note:   no known conversion for argument 1 from ‘const char [23]’ to ‘const wstring&’ {aka ‘const std::__cxx11::basic_string<wchar_t>&’}
 4379 |     const std::wstring& substring) {
      |     ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~
gmake[2]: *** [CMakeFiles/tensor_rt_node_test.dir/build.make:76: CMakeFiles/tensor_rt_node_test.dir/test/tensor_rt_node_test.cpp.o] Error 1
gmake[1]: *** [CMakeFiles/Makefile2:185: CMakeFiles/tensor_rt_node_test.dir/all] Error 2
gmake: *** [Makefile:146: all] Error 2
---
Failed   <<< isaac_ros_tensor_rt [15.2s, exited with code 2]
Aborted  <<< isaac_ros_dnn_image_encoder [1min 34s]


"Choose a filter" on the Global feed page doesn't work from the first request

To Reproduce
Steps to reproduce the behavior:

Open the Global feed page
Select any filter from "Choose a filter"

Expected behavior
Filter sort proposals by the first request
Screenshots

Verified on dev. Fixed


Deep learning feature

After finishing the data visualization part, design a deep learning model to predict the future vacancy.

[ ] Store future prediction and use future data to check the accuracy

[ ] Allow user to select prediction date

 Deep learning feature


X50 & X30 supported firmware

Poly Studio X50 & Poly Studio X30 <IP_ADDRESS>885 Firmware is not available via TAC, <IP_ADDRESS>4010 is the latest version that is offered.
What is the current latest Microsoft supported firmware?
Document Details
⚠ Do not edit this section. It is required for learn.microsoft.com ➟ GitHub issue linking.

ID: aaaef9e1-8f1c-ebf0-7856-4c007342a2c3
Version Independent ID: 3eaf671f-375e-8787-9c66-3947c3606559
Content: Devices for Teams - Microsoft Teams
Content Source: Teams/devices/teams-ip-phones.md
Service: msteams
GitHub Login: @dstrome
Microsoft Alias: dstrome

Hi @joelulrich, thank you for your feedback.
I understand that the versions listed in the article are the latest Microsoft supported firmware. <IP_ADDRESS>885 should be available in the TAC soon.


Supervision instance Val update incorrect

There are two problems in the code below:

The search for any Val element is not properly scope to the GoCBRef/SvCBRef > setSrc. This still needs to be reported upstream.
In L749, the Edit API is bypassed - this was reported upstream https://github.com/openscd/open-scd/issues/1231

https://github.com/danyill/oscd-subscriber-later-binding/blob/cb1a06ad2ca53908860110b206a492af5ad5b44d/foundation/subscription/subscription.ts#L742-L757

Fixed rather messily in a monolithic commit da9e0f668157d601353e69cec1dc6197d5771635


Turn on Firebase Sessions Test App while SDK disabled

Disabled in https://github.com/firebase/firebase-ios-sdk/pull/10796, need the testapp to continue working

Great question @visumickey - tv/watch use this one it seems, but macos needed a different one. Added it


placeformed&yearformed

Thanks for the PR, apologies for the delay in getting around to this!
I can't see any reference to these properties in the API documentation, but I think that's just an error on Last.FM's part.
Merging in! I've also given you push access to the repository if you want to make anymore changes. Feel free to remove the deprecation notice in the readme if you want to maintain the library going forward.


feat!: use nullable Int64 and boolean dtypes if available

deps: ensure compatibility with google-cloud-bigquery 3.x
Thank you for opening a Pull Request! Before submitting your PR, there are a few things you can do to make sure it goes smoothly:

[ ] Make sure to open an issue as a bug/issue before writing your code!  That way we can discuss the change, evaluate designs, and agree on the general idea
[ ] Ensure the tests and linter pass
[ ] Code coverage does not decrease (if any source code was changed)
[ ] Appropriate docs were updated (if necessary)

Fixes #426
Fixes #437
Fixes #436
Fixes #435
Fixes #434
Fixes #433
Fixes #432
Fixes #431
Fixes #430
Fixes #429
🦕

Prerelease tests pass now! https://source.cloud.google.com/results/invocations/c11210cb-d8b9-4d4d-a07a-dfa03fbf8060/targets


use middleware and a regular store for the remote store

@keybase/react-hackers before we had a totally 'fake' remote store that had code to handle internal state and subscriptions and etc. This PR makes the remote store a canonical store made w/ createStore but with a special reducer and a custom middleware

(not for this releases)


Dev-lite test: Natural Selection 1.4.0-dev.1

@amanda-phet, @kathy-phet, @KatieWoe, @samreid natural-selection/1.4.0-dev.1 is ready for light dev testing. Document issues in https://github.com/phetsims/natural-selection/issues and link to this issue.
This test is primarily to regression test recent changes to PhET-iO.  Please consult with @samreid about what specifically needs to be tested.
Links:
1.4.0-dev.1, brand=phet-io
1.4.0-dev.1, brand=phet
Assigning @kathy-phet and @KatieWoe for prioritization.
This test is for phet-io. Platform coverage is not important for this test. Testing should be around 4 hours max.

[x] Tester 1 (Tester = Clifford, Platform = Firefox 89.0.1, Time = 2 {max 2 hours}
[x] Tester 2 (Tester = Logan , Platform = Chrome 91.0.4472.101, Time = 1 {max 2 hours}
[x] Tester 3 (Tester = LM , Platform = macOS + Chrome 91.0.4472.101, Time = 1 {max 2 hours}

What to Test

Click every single button.
If there is sound, make sure it works.
Make sure you can't lose anything.
Play with the sim normally.
Try to break the sim.
Try to include browser version numbers

QA is done. Testing mostly found things fixed for GAO. Testing was relatively light for dev-lite

Thanks @KatieWoe.
No issues to address, so closing.


List view converted to RecyclerView using wrapper on existing adapter

A rebased version of #2916 on-top of my minimal Material changes. Still in a TODO state. Pushed it to the main K-9 repo to make future work by others easier.

@philipwhiuk: Does this supersede PR #3066?

Yes.

This would have been a lot easier to rebase if it didn't contain unrelated whitespace reformatting :P

There's currently work in progress to simplify MessageListAdapter. After that is done it should be relatively easy to switch to RecyclerView.


Add dev flag to css preprocessor install

Description (required)
A better way to add CSS pre-processors in projects is as dev dependency as they are needed only during the development phase of the project. Same for CSS parsers like LightningCSS. This PR just adds the devDependency flag -D in the install script to reflect that these packages are not required in the final production build.

Related issues & labels (optional)

Suggested label: code snippet update

Hello! Thank you for opening your first PR to Astro’s Docs! 🎉
Here’s what will happen next:

Our GitHub bots will run to check your changes.
If they spot any broken links you will see some error messages on this PR.
Don’t hesitate to ask any questions if you’re not sure what these mean!

In a few minutes, you’ll be able to see a preview of your changes on Vercel 🥳

One or more of our maintainers will take a look and may ask you to make changes.
We try to be responsive, but don’t worry if this takes a few days.

Lunaria Status Overview
🌕 This pull request will trigger status changes.

Learn more
By default, every PR changing files present in the Lunaria configuration's files property will be considered and trigger status changes accordingly.
You can change this by adding one of the keywords present in the ignoreKeywords property in your Lunaria configuration file in the PR's title (ignoring all files) or by including a tracker directive in the merged commit's description.

Tracked Files

Locale
File
Note

en
guides/styling.mdx
Source changed, localizations will be marked as outdated.

Warnings reference

Icon
Description

🔄
The source for this localization has been updated since the creation of this pull request, make sure all changes in the source have been applied.

Hi @ajitsinghkamal ! Thank you for opening up a PR!
Because of how Astro works, unlike some other frameworks, installing as a dev dependency is no different than installing as a regular dependency. And we even recommend putting all dependencies as regular dependencies unless you find a specific need not to: https://docs.astro.build/en/basics/project-structure/#packagejson
So even though in other projects this might be the recommended advice, it's an optimization that doesn't usually benefit an Astro project, so we prefer not to complicate our general guidance. We won't be making this change to docs as this isn't our recommendation for an Astro project, but you are of course welcome to put your dependencies where you like in your own project! :raised_hands:


Sensitive terms list produces too many clauses for create filtered index call

Airflow log link

https://airflow.openverse.engineering/log?execution_date=2023-06-04T00%3A32%3A02.977074%2B00%3A00&task_id=wait_for_create_and_populate_filtered_index&dag_id=create_filtered_audio_index&map_index=-1

Note: Airflow is currently only accessible to maintainers & those given
access. If you would like access to Airflow, please reach out to a member of
@WordPress/openverse-maintainers.

Exception from the ingestion server:
2023-06-04 00:32:12,485 WARNING base.py:288 - POST http://openverse-elasticsearch-prod.private:9200/_reindex?slices=auto&wait_for_completion=true [status:400 request:0.960s]
2023-06-04 00:32:12,485 ERROR tasks.py:220 - Error processing task `CREATE_AND_POPULATE_FILTERED_INDEX` for `audio`: RequestError(400, 'search_phase_execution_exception', 'too_many_clauses: maxClauseCount is set to 1024')
	2023-06-03T17:32:12.539-07:00	Process Process-5:
	2023-06-03T17:32:12.541-07:00	Traceback (most recent call last):
	2023-06-03T17:32:12.541-07:00	File "/usr/local/lib/python3.11/multiprocessing/process.py", line 314, in _bootstrap
	2023-06-03T17:32:12.541-07:00	self.run()
	2023-06-03T17:32:12.541-07:00	File "/usr/local/lib/python3.11/multiprocessing/process.py", line 108, in run
	2023-06-03T17:32:12.541-07:00	self._target(*self._args, **self._kwargs)
	2023-06-03T17:32:12.541-07:00	File "/ingestion_server/ingestion_server/tasks.py", line 217, in perform_task
	2023-06-03T17:32:12.541-07:00	func(model, **kwargs) # Directly invoke indexer methods if no task function
	2023-06-03T17:32:12.541-07:00	^^^^^^^^^^^^^^^^^^^^^
	2023-06-03T17:32:12.541-07:00	File "/ingestion_server/ingestion_server/indexer.py", line 525, in create_and_populate_filtered_index
	2023-06-03T17:32:12.541-07:00	self.es.reindex(
	2023-06-03T17:32:12.541-07:00	File "/venv/lib/python3.11/site-packages/elasticsearch/client/utils.py", line 347, in _wrapped
	2023-06-03T17:32:12.541-07:00	return func(*args, params=params, headers=headers, **kwargs)
	2023-06-03T17:32:12.541-07:00	^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
	2023-06-03T17:32:12.541-07:00	File "/venv/lib/python3.11/site-packages/elasticsearch/client/__init__.py", line 1467, in reindex
	2023-06-03T17:32:12.541-07:00	return self.transport.perform_request(
	2023-06-03T17:32:12.541-07:00	^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
	2023-06-03T17:32:12.541-07:00	File "/venv/lib/python3.11/site-packages/elasticsearch/transport.py", line 466, in perform_request
	2023-06-03T17:32:12.541-07:00	raise e
	2023-06-03T17:32:12.541-07:00	File "/venv/lib/python3.11/site-packages/elasticsearch/transport.py", line 427, in perform_request
	2023-06-03T17:32:12.541-07:00	status, headers_response, data = connection.perform_request(
	2023-06-03T17:32:12.541-07:00	^^^^^^^^^^^^^^^^^^^^^^^^^^^
	2023-06-03T17:32:12.541-07:00	File "/venv/lib/python3.11/site-packages/elasticsearch/connection/http_requests.py", line 216, in perform_request
	2023-06-03T17:32:12.541-07:00	self._raise_error(response.status_code, raw_data)
	2023-06-03T17:32:12.541-07:00	File "/venv/lib/python3.11/site-packages/elasticsearch/connection/base.py", line 328, in _raise_error
	2023-06-03T17:32:12.541-07:00	raise HTTP_EXCEPTIONS.get(status_code, TransportError)(
	2023-06-03T17:32:12.541-07:00	elasticsearch.exceptions.RequestError: RequestError(400, 'search_phase_execution_exception', 'too_many_clauses: maxClauseCount is set to 1024')

Description

The most recent audio data refresh that ran over the weekend was the first run using the new sensitive terms list (see https://github.com/WordPress/openverse-infrastructure/pull/522). This sensitive terms list (not linked due to the sensitive nature) is almost 2k items long.
The default clause count in ES7 is 1024, but it apparently was raised to 4096 in ES8.
We will need to either find a workaround or increase this configuration value for the cluster in order to proceed.

DAG status

Left enabled since pausing it may affect the data refresh itself.

This is unfortunate. Increasing the limit to even the ES8 won't help us. As I understand the way the "clauses" calculation works, based on the SO link you shared @AetherUnbound, it's terms * fields. We're querying 3 fields (title, tags, and description), so we'd have to reduce the list to ~1300 for it to even fit into the new default for ES8. Right now we'll have somewhere near 6k clauses (if we have 2k terms).
I can think of at least three options, one of them is horrific but I think would be a hacky workaround. The other would be a lot of work but probably more stable. And the last one is a big unknown, especially because we don't know exactly how to manage updating the cluster settings (maybe it's time to reach out for help provisioning an updated, ES8 cluster).

We could reduce the number of terms. This is a lot of work because we'd need to somehow identify the terms we most definitely want to keep. One option to do this would be to iterate through the terms list and send each one individually as a query then pick the top x terms that would keep us below the limit: i.e., the terms that match the most documents (while still not being ambigious terms).
We could split the reindex into multiple reindex steps. Specifically, we could split the terms list into batches and then reindex over and over again to slowly apply all the terms to the final index. This is probably way easier to implement, but my intuition says it's a horrifying hacky workaround.
We could use the calculation ES itself uses to see of our nodes will be able to handle a higher clause count. If they cannot then we will need to pursue one of the other options no matter what. If they can, then we can reach out for help from our more expert ES friends to apply the new settings without thrashing our cluster. We could also provision a brand new cluster from scratch with ES8 and then do a switchover at some point to the new one and deprovision the old one (after sending a data refresh to the new one).

@zackkrida and @AetherUnbound, what do y'all think? Any ideas on which y'all would prefer?

Considering that Elasticsearch might go EOL by August 2023[^1], I think we should prioritize migrating to ES8 anyways.
I might not be very familiar with the context here, but I think reducing the number of terms is necessary. Creating a DAG that ingests the media sensitive information from the providers might improve the detection of sensitive media, even if it does not help with this specific issue.
[^1]: Elasticsearch EOL docs: https://www.elastic.co/support/eol

I believe this is a per-index setting, based on the docs, so perhaps it can be updated without needing to restart the cluster?

Which part of the docs says that it is a per-index setting? indices.query.bool.max_clause_count is a global setting, not a per-index setting. Index settings are documented here and there is no per-index analogue for this setting as far as I can tell.
We may be able to use this endpoint to update the setting without restarting, though: https://www.elastic.co/guide/en/elasticsearch/reference/current/cluster-update-settings.html
However, I don't think updating the setting to 5799 (the current clause count of our query, 1933 terms * 3 fields) will be successful. If you read the ES PR I linked where they changed the calculation to be dynamic you can see it's quite precisely calculated to avoid OOM exceptions. I don't know what happens if we cause an OOM in our staging cluster.

Since this will be executed on a single, scheduled query, I suspect it won't be nearly as resource intensive as most use cases for this setting

My understanding of this setting has to do with whether the actual query even fits into memory in a single thread, at least based on that PR I linked. I'd be surprised if being a non-regular query makes a difference to that characteristic.
I think it would be good to consult with some folks who understand ES better than we do at this point rather than potentially trashing our staging cluster with OOMs. At least I don't know what happens to the cluster if we do that and would prefer to avoid needing to rebuild it.

@sarayourfriend I had a thought related to this. These indexes use the same stemmer config as the previous/main/normal indices do, right?
I think that would mean that every phrase in our sensitive terms list gets stemmed, so something like "the foxes jumping quickly" would become [ the, fox, jump, quickli ].
We could potentially consider this to remove redundancy from the sensitive terms list and get the number of terms down. Our sensitive terms list would become a list of stems and we'd probably be able to remove many duplicates.

 Also innocent words like "love". This makes me wonder, is the sensitive index really matching on these stems?! It seems like this would mean there are many, many false positives.

We quote the terms specifically so that they do not get stemmed for this reason. There are too many opportunities for false positives.
https://github.com//WordPress/openverse/blob/35100d3c719e142da2012303a5f2790c637f737a/ingestion_server/ingestion_server/indexer.py#L522
Multimatch can stem, we just explicitly prevent it from happening by quoting the terms.

The list of 1933 produces 1533 unique stems.

If the second number was way lower, it might be useful if we could identify specific stems that did not overlap with innocuous terms.
Right now my preference is for us to try the first approach: identify the top 341 terms that match the most results (and confirm that there aren't any potential big false positives in the list) and start off by using just those. 341 comes from 1024 / 3, the clause limit over the number of fields we query.
I don't have time to run this experiment right now, but I could start working on it next week. This week I need to finish #2343 and get #2332 merged. I could delay starting on #1969 this week in favour of this. Considering this project is already >50% implemented, it probably makes sense to do so. Let me know what you think about this prioritisation @zackkrida or if you have someone else in mind who could work on this sooner.

@sarayourfriend ah, of course, that's what the quoting is for 😌
I think the approach of significantly reducing the list is a sound one. By nature this project is about having the biggest impact to safety possible while understanding it isn't going to capture everything, so working within this limitation feels fine.
I do think it would make sense to wait on #1969 to focus on this project which is closer to completion. The terms experiment seems like it'd be pretty straightforward (write a one-off python script, maybe as a DAG, to iterate through the terms, query ES, and print the record count of each term) but is the amount of time it would take to run feasible? It would have to iterate through all the records 1933 times right? I suppose if batches of the queries were parallelized it might be faster...
Anyway, I think that prioritization makes sense, thanks for confirming.

wait, they're just queries, not reindexing, so it would be much faster than i was originally thinking

Yup! Individual Multimatch queries should be very fast. I'll just do it in a local Python script (which I'll share in a gist here) and share the results as well.
Thanks for the help prioritising this. I'll do a bit of proofreading and then suspect I should be able to have this in semi-workable state by my afternoon :rocket:

@sarayourfriend I got a little excited and just tried an experiment myself. I wrote up some initial findings in the sensitive terms repo: https://github.com/WordPress/openverse-sensitive-terms/issues/3

Thanks! I left a comment on that issue as well after doing a bit of research based on what you found, and we might be able to solve this clause issue by switching to a terms query against new, non-analysed versions of the three fields. I'll update here later if that's possible. It would also solve the problem in the issue you've linked.

After further investigation, it does look like Zack and I have found an important change that also fixes this issue. Once a text field is analysed by ES, you can only query the tokenised version. That's to say, there's no way to do "exact matches" on an analysed field. In the issue Zack linked (Issue 3 in the sensitive terms repository), we've shown that adding unanalysed versions of the three fields we query for sensitive terms and then switching to ES terms query so that we can find exact matches fixes both the issue Zack found in the sensitive terms repo (lots of false positives due to stemming) as well as fixing the clause limit issue, because terms queries have their own, separate limit.
The solution for this issue, therefore, is to add the following additional fields to title, description and tags.name:
"raw": {
	"type": "text",
	"index": true
}

e.g.,:
"title": {
	"type": "text",
	"similarity": "boolean",
	"fields": {
		"keyword": {
			"type": "keyword",
			"ignore_above": 256
		},
		"raw": {
			"type": "text",
			"index": true
		}
	},
	"analyzer": "custom_english"
},

Additionally, we need to update the query the create_and_populate_filtered_index action uses for the reindex to be:
{
  "bool": {
    "must_not": [
       { "terms": { "${field}.raw": sensitive_terms } }
       for field in ["title", "description", "tags.name"]
    ]
  }
}

In a related issue, this would also fix exact queries in the API if we switched to querying the raw fields and using a terms query when the query string starts and ends with ".


osmose map for "predation.accessibility.stage.threshold.sp" has empty default value

@agruss2 Please confirm or update the default value for "predation.accessibility.stage.threshold.sp". The default value is currently an empty string.

See https://github.com/jhpoelen/fb-osmose-bridge/blob/master/src/main/resources/com/github/jhpoelen/fbob/fishbase-mapping.csv
Thanks.


Adding a Problem that Sorts an Array in the Wave Form

Hey, I haven't come across this one among all the other algos that have been listed.Wanted to know if I could contribute to this one.

Can you tell me more about it? What the algorithm is for and how it works?

Yeah,sure.It's also called wiggle sort where a[0] <= a[1] >= a[2] <= a[3]>=a[4]  and so on i.e. Alternating increasing and decreasing values.
There's are two approaches based on the conditional:

Sorting the array in ascending order and then starting by arranging the lower elements in odd positions (LHS to RHS).
While the higher numbers can be placed from the other direction(RHS to LHS),in the even places.The complexity depends on the type of sorting algorithm we choose to use.
2.This can be slightly modified to a better approach in case the condition is a[0] > a[1] < a[2] > a[3]<a[4],by :

Finding the median of the array
3 way partition where elements less than ,equal to and greater than the median are split into 3 separate partitions.
Picking an element from each of the 3 partitions in the order central partition,left partition and right partition. This will ensure that the elements are strictly lesser or greater than their adjacent neighbours.

@JuOllie Yes sure, you can contribute to this. But since this isn't really a sorting algorithm but instead a rearranging algorithm, I'm not sure at the moment where to add it. So you can create a folder named 'Other' and add it there for now.

Sure @faheel ,I'll do that.

I have made a Pull Request at https://github.com/faheel/Algos/pull/56

The Modified pull request to the master branch is at #57

@JuOllie While reviewing your PR I realised that a much simpler solution can be made for this problem, with the same time and space complexities of O(N) and O(1) respectively. Here's my approach:
(Given a[0..N-1])

for i = 1 to N-1
    if i is odd
        if a[i] is not >= a[i - 1]
            swap(a[i], a[i - 1])
    else
        if a[i] is not <= a[i - 1]
            swap(a[i], a[i - 1])

Also since the operation for each condition is the same (to swap a[i] and a[i - 1]), the solution can be made more concise by grouping the 4 conditions into a single if condition, and by eliminating the not boolean operation by using complementary comparisons (< for not >= and > for not <=), as
follows:
for i = 1 to N-1
    if i is odd and a[i] < a[i - 1], or i is even and a[i] > a[i - 1]
       swap(a[i], a[i - 1])


enableAjaxValidation per field has no way to determine the field on server

i have enableAjaxValidation enabled on several specific form fields that each have different kinds of complicated validation. the problem is that, when the ajax request hits the server, there is nothing in the request that identifies which field has triggered the ajax validation request. the request contains all the fields in the form along with ajax:form-name
since each of my custom validations is complex and involves a bit of wait time (as it makes additional requests of its own), every time ajax validation is run on ANY of the fields that trigger it, all of the validations are run instead of the single validation required.
i have a work-around where, using an event handler for beforeValidateAttribute, i can set a hidden form field to the name of the field that is triggering the update. then the server can see which field to individually validate and perform accordingly. however it seems obvious to me that this should not have to be done by the user.

I'm not sure how do it keeping backwards compatibility. Also if done, it would mean validation would be different when serverside and when AJAX which mean double amount of code.
Do you have ideas on how to solve it?

i have a solution working - but it feels pretty forced. as described above i set a hidden form input to the field name that is triggering the validation. the server then loads the model corresponding to the triggering field (there are 2 models used in my form) and validates.
this is additionally complicated by the fact that one of the models can have multiple instances so i have to find the index of the triggering field, validate the single instance of the model, and then change key values in the array returned by Model::validate to reflect the correct array position of the triggering field.
i would have expected yii to have a built-in way of validating a single field in an array and returning the correct validation array back. unfortunately there is not and i had to essentially code this myself.


Revised type mapping

Why was this change made?
Part of #1392
How was this change tested?
n/a
Which documentation and/or configurations were updated?
H2 mappings in dor-services-app
Requires further work to update code and other tests to reflect the mapping changes.
Implementation ticket #1435

@arcadiafalcone tests are failing - can you take a look, or would you like to pair?

The tests are expected to fail - they need to be updated to fit the new mapping.

can you change them to xit "to be implemented for new mapping" ?

Here you go: https://github.com/sul-dlss/happy-heron/pull/1486


CosmosException message sometimes contains full stack traces

We are continuously addressing and improving the SDK, if possible, make sure the problem persist in the latest SDK version.

Describe the bug
We have noticed that in throttling conditions when the built-in retries are exhausted, the Cosmos DB SDK sometimes throws a CosmosException with the message containing full stack traces.
To Reproduce
I don't have a minimal repro here and I don't fully understand what causes the SDK to return the stack traces, but it doesn't always happen.
The issue actually caused an outage in our service. We have several background jobs that append their status (including exception messages) to a document in our collection. In throttling conditions, we would append the "final" CosmosException message to that document. Unfortunately, we saw that this exception message would sometimes exceed 100KB. Combined with further retries and failures, it would grow the document to over 600KB making it more and more expensive to upsert and prolonging the outage.
Expected behavior
Exception messages should not be exceeding 100KB and should not contain full stack traces. (We truncate the exception messages before saving them, but we should not have had to do that.)
Actual behavior
In some cases, the SDK throws a CosmosException with messages over 100KB containing full stack traces.
Environment summary
SDK Version: 3.5.1
OS Version: Windows
Additional context
N/A

By any chance do you know what operation is causing it? @ealsur is this possibly the same bug you already fixed with the task.yield change in the direct package?

Task.Yield would not affect the actual stack trace produced (just how it is maintained in the stack/heap), and 429s are exception-less.
@majastrz Are you changing the retry configuration?
Our retries are based on async/await, so if a 429 happens, we retry, but 429s don't produce an exception in themselves. The Retry handlers inspect the Response and if it's a 429, they retry it.
What might be happening though is that the stack grows because basically:
CreateItemAsync
-- RetryHandler (simplifying, there are other handlers involved)
-- Transport (sends payload)
-- RetryHandler (receives 429, decides to retry)
-- Transport (sends payload)
(... this repeats X times, until...)
-- RetryHandler (receives 429, exhausted all retry options)
-- throws CosmosException
So the exception might contain the complete stack, since the CreateItemAsync (or whatever operation) was initiated. The thing here is that there could be other Retries because of other reasons (connection blip, partition split, etc), so truncating the stack is really tricky (what do you truncate and why?).

@ealsur No, we are using the default retry configuration currently. We didn't add any custom handlers to the client's pipeline, either.
Is it possible/feasible for you to use InnerException or create an InnerExceptions property (like on AggregateException) to store all of the attempts instead of dumping it into the message?
And would disabling the default retry policy be a viable workaround for this behavior?

@j82w are you dumping the stack trace on the Message or is it the ToString()
@majastrz You can disable the retry policy, but you will get an exception on the first 429, you can retry on your end though.

I still have one of the captured exception messages.  Here's the start:
Response status code does not indicate success: 429 Substatus: 3200 Reason: (Microsoft.Azure.Cosmos.Query.Core.Monads.ExceptionWithStackTraceException: TryCatch resulted in an exception. ---> Microsoft.Azure.Cosmos.Query.Core.Monads.ExceptionWithStackTraceException: TryCatch resulted in an exception. ---> Microsoft.Azure.Cosmos.Query.Core.Monads.ExceptionWithStackTraceException: TryCatch resulted in an exception. ---> Microsoft.Azure.Cosmos.Query.Core.Monads.ExceptionWithStackTraceException: TryCatch resulted in an exception. ---> Microsoft.Azure.Cosmos.CosmosException : Exception of type 'Microsoft.Azure.Cosmos.CosmosException' was thrown.\r\nStatusCode = 429;\r\nSubStatusCode = 3200;\r\nActivityId = dd8b6358-5ee5-4ba6-990f-4ec4a25f6445;\r\nRequestCharge = 30.01;\r\n\r\n   --- End of inner exception stack trace ---\r\n   at Microsoft.Azure.Cosmos.Query.Core

That's a throttle too, seems to come from a query.

This might be a result of the query exception handling where it is creating a stack trace.
@ealsur this was changed in version 3.7.1 with #1298. I believe previous version do contain the stack trace.


[incubator/gogs] Update OWNERS

https://github.com/helm/charts/issues/13867#issuecomment-492670492

/assign @maorfr

hey @obeyler,
thanks for signing up for this!
i would be happy to see a reference to some work you did around this chart if that is ok with you :)

@maorfr in fact to my part I'm already the owner of this chart :-)
currently I'm working hard on this helm chart to add serviceAccount/Podsecurity/role/etc..
(see https://github.com/orange-cloudfoundry/charts/tree/feature-gogs/incubator/gogs)
I just add my collegue pierre to help me to maintain it

/lgtm
Sorry, was not attentive. Thanks!!


Macro error when a namespace contains a name more than one time

It shows the error with the following namespaces :

Test::Test::MySupercommand
Test::Commands::Test
Something::Commands::Something

The error with the following code:
require "cli"

module Test::Test
  class Main < Cli::Supercommand

    class Help
      header "Main header"
      footer "Main footer"
    end

  end
end

The error here : https://gist.github.com/TechMagister/0e941cddeb31cd9cfdd63d714c633255

good finding. thanks!


Minor UI tweaks to make plugin UI thinner

Assuming you're happy with ISO8601 datetime format this addresses both that in the last tick time, and also splits the 'title' into two columns, making the UI overall much thinner, and thus not blowing out the width of the entire EDMC UI.
Closes #45

Many thanks for this Athanasius, I hadn't noticed the width bloat because I always run with the EDR plugin which significantly widens the window itself, but this is a good change.  Merged.


Retention policies for data purging

Is there any automated process that can be used in here to purge old data (payloads) for hub tables ?

No, there is nothing beyond the automatic deletion when the tables exceed 10,000 rows.
Are you looking for a duration-based purged process (e.g. to fulfill legal data retention requirements)?

I see, so tables are always maintain the same size to prevent memory leaks, I was originally thought I could pass number of days and once it got passed retention policy, data will be purged.


Custom mapping in nested objects

Hi all!
I am trying to map a complex, multi-level object like this example:
public class Obj1 {
 private Integer field1;
 private List<Obj2> field2;
}

public class Obj2{
 private Integer field1;
 private Obj3 field2;
}

public class Obj3{
 private Integer field1;
 private String value;
}

What I am trying to achieve is to set the "field1" property of Obj2 to null and the "value" property of Obj3 to null.
I have tried setting the configuration for different types of objects but with no luck.
modelMapper.typeMap(OtherObj1.class, Obj2.class)....
modelMapper.typeMap(OtherObj2.class, Obj2.class)....
modelMapper.typeMap(OtherObj3.class, Obj3.class)....

I can process the object once the mapping is done, but I would like ModelMapper to do it, is it possible?
Thanks in advance!

You could always create a converter.
public class ExampleConverter extends AbstractConverter<SourceObject, DestinationObject> {

    @Override
    protected DestinationObject convert(SourceObject sourceObject) {
        // code to convert source to destination
    }

}

Thanks for your response @CynanX
I have tried to use a Converter to transform from OtherObj1 to Obj1 and the problem I see is that I have to manually define the attributes to map so I would lose the automatic mapping that ModelMapper does.
I understand that to do what I want I would have to define 2 converters (OtherObj2 -> Obj2 and OtherObj3 -> Obj3) and somehow assign these converters to the modelmapper, but don't know how to make this (I tried to do the test in code but nothing functional)
Thanks in advance

You could try creating property maps for each object and then adding the property maps to your model mapper instance instead of converters.
I found this article very helpful: https://www.baeldung.com/java-modelmapper

@CynanX
I finally got it working with a custom Converter for the list of values and applying a mapping with modelMapper
  private static final Converter<List<OtherObj>, List<Obj>> converter = ctx -> {
    if (Objects.isNull(ctx.getSource())) {
      return null;
    }
    return ctx.getSource().stream()
        .map(attr -> modelMapper.map(attr, Obj2.class, CONDITIONAL_KEY))
        .collect(Collectors.toList());
  };

..............................................

    modelMapper.typeMap(OtherObj.class, Obj.class, CONDITIONAL_KEY)
        .setCondition(mapper -> mapper.getTypeMapName().equals(CONDITIONAL_KEY))
        .addMappings(mapper -> mapper
            .using(converter)
            .map(OtherObj::getChildren, Obj::setChildren));
    modelMapper.typeMap(OtherObj2.class, Obj2.class, CONDITIONAL_KEY)
        .setCondition(mapper -> mapper.getTypeMapName().equals(CONDITIONAL_KEY))
        .addMappings(new PropertyMap<OtherObj2, Obj2>() {
          @Override
          protected void configure() {
            skip(destination.getField1());
            skip(destination.getObj3().getField1());
          }
        });

With this configuration ModelMapper is able to skip the properties so configured.
Thank you very much for your comments and help!


No more use CameraAcquisition

This class had been implemented but is now not that useful. Let's remove instantiations of and calls to CameraAcquisition and directly use class Camera instead - mainly with CamerasPool.

Completed, tested.


Follow general recommendation in setting go toolchain version

What this PR does
It is recommended to either specify the toolchain in it's own directive,
or omit the toolchain directive and specify it on the go version string.
Today, we have a bit of a mixture, which may or may not result in
unexpected builds when building kubevirt on different platforms (go 1.22.0 "command" and 1.22.2 toolchain).

Fixes #
Why we need it and why it was done in this way
The following tradeoffs were made:
The following alternatives were considered:
Links to places where the discussion took place:
Special notes for your reviewer

Checklist
This checklist is not enforcing, but it's a reminder of items that could be relevant to every PR.
Approvers are expected to review this list.

[ ] Design: A design document was considered and is present (link) or not required
[ ] PR: The PR description is expressive enough and will help future contributors
[ ] Code: Write code that humans can understand and Keep it simple
[ ] Refactor: You have left the code cleaner than you found it (Boy Scout Rule)
[ ] Upgrade: Impact of this change on upgrade flows was considered and addressed if required
[ ] Testing: New code requires new unit tests. New features and bug fixes require at least on e2e test
[ ] Documentation: A user-guide update was considered and is present (link) or not required. You want a user-guide update if it's a user facing feature / API change.
[ ] Community: Announcement to kubevirt-dev was considered

Release note

NONE

Our go version is 1.22.2 which is matching the toolchain. I am ok with dropping the toolchain as I do not see a requirement for it and it future it could be easy to miss the mismatch.

Thanks for dropping the toolchain. What is the motivation to specify the z part of the go version?

Thanks for dropping the toolchain. What is the motivation to specify the z part of the go version?

That's the general recommendation I am seeing, especially when it comes to building go projects on a downstream platform

Thanks for dropping the toolchain. What is the motivation to specify the z part of the go version?

That's the general recommendation I am seeing, especially when it comes to building go projects on a downstream platform

Specifying the Z version requires constant update whenever we bump Go (in the same minor release) and is limiting the build of the project to that version (as a minimum).
Is there a way to declare that we want the latest version available for a specific minor release of Go, without fixing on the full specific one?

Thanks for dropping the toolchain. What is the motivation to specify the z part of the go version?

That's the general recommendation I am seeing, especially when it comes to building go projects on a downstream platform

Specifying the Z version requires constant update whenever we bump Go (in the same minor release) and is limiting the build of the project to that version (as a minimum). Is there a way to declare that we want the latest version available for a specific minor release of Go, without fixing on the full specific one?

Doesn't seem like it. Note this is already a requirement today though https://github.com/kubevirt/kubevirt/pull/11470

Specifying the Z version requires constant update whenever we bump Go (in the same minor release) and is limiting the build of the project to that version (as a minimum). Is there a way to declare that we want the latest version available for a specific minor release of Go, without fixing on the full specific one?

Doesn't seem like it. Note this is already a requirement today though #11470

That is the build system, limited to the build tooling used (e.g. bazel, dockerfiles).
Changing go.mod has implication on building kubevirt with different tooling (i.e. on D/S).

Specifying the Z version requires constant update whenever we bump Go (in the same minor release) and is limiting the build of the project to that version (as a minimum). Is there a way to declare that we want the latest version available for a specific minor release of Go, without fixing on the full specific one?

Doesn't seem like it. Note this is already a requirement today though #11470

That is the build system, limited to the build tooling used (e.g. bazel, dockerfiles). Changing go.mod has implication on building kubevirt with different tooling (i.e. on D/S).

Correct, what the existing form of the go.mod gives you when building is a hybrid of the go directive version (old go command) with "correct" toolchain. This may not be what we're after

I do not understand why we are discussion about the tool chain to a z-version in the upstream source code at all. Isn't go 1.21 EOL in a view weeks, and downstream distributors have to care about this?

I do not understand why we are discussion about the tool chain to a z-version in the upstream source code at all. Isn't go 1.21 EOL in a view weeks, and downstream distributors have to care about this?

Not sure I understand. Today we specify go 1.22.0 which is arguably not the intention by whoever bumped the go version. The proposed way is just as legitimate

Not sure I understand. Today we specify go 1.22.0 which is arguably not the intention by whoever bumped the go version. The proposed way is just as legitimate

ups, yes, this PR is referring to go 1.22. But this will be EOL in next February, so it delays the problem just by 6 month, but it does not change the problem. From my point of view, the build env should set the golang toolchain and z version which should be used, and the upstream source code should only specify which y version is required. This way the responsibility of selecting a  golang toolchain which contains all required fixes is on the build env, and the go.mod can express the developers expectation about the y-version of golang.
Is there a specific motivation, e.g. a bugfix, to enforce a minimal z-version of golang?

and the upstream source code should only specify which y version is required

This is not the case today prior to this PR as well. The toolchain directive exists and can't be dropped since go mod vendor will put it back.
The problem is that today you'll be forcing a "wrong" go command for all build envs, possibly without them knowing
(This is something we witnessed, right?)
Regarding the totolchain, build envs can override that - https://go.dev/doc/toolchain
The GOTOOLCHAIN environment setting can force a specific Go version, overriding the go and toolchain lines

This is not the case today prior to this PR as well. The toolchain directive exists and can't be dropped since go mod vendor will put it back.

From my point of view, this is a not helpful behavior of go mod . In downstream builds, the toolchain directive is overwritten. We should double check, but I hope the the toolchain directive does not hurt the downstream build.
But the go directive seems to be relevant.

/close
https://github.com/kubevirt/kubevirt/pull/12584


added the chainlink

Hey i have made  some changes in the  data feed file . Feel free to check and let me  know if u  required any chagement

Great , Looking forward to  see more contribution from your  side .


List packages = new PackageList(this).getPackages(); [ANDROID]

Description
In MainApplication.java when I build on Android Studio, it gives me the error:
/android/app/src/main/java/com/dindle/app/MainApplication.java:24: error: cannot find symbol
List packages = new PackageList(this).getPackages();
^
symbol: class PackageList
I upgraded version 0.70.6 to 0.71.9
Steps to reproduce
Build android
React Native Version
0.71.9
Affected Platforms
Runtime - Android
Output of npx react-native info
warn Package rn-fetch-blob contains invalid configuration: "dependency.hooks" is not allowed. Please verify it's properly linked using "react-native config" command and contact the package maintainers about this.
info Fetching system and libraries information...
System:
    OS: macOS 14.4
    CPU: (8) arm64 Apple M2
    Memory: 94.16 MB / 8.00 GB
    Shell: 5.9 - /bin/zsh
  Binaries:
    Node: 18.20.2 - ~/.nvm/versions/node/v18.20.2/bin/node
    Yarn: 1.15.2 - ~/.nvm/versions/node/v16.20.2/bin/yarn
    npm: 10.5.0 - ~/.nvm/versions/node/v18.20.2/bin/npm
    Watchman: 2<IP_ADDRESS> - /opt/homebrew/bin/watchman
  Managers:
    CocoaPods: 1.13.0 - /usr/local/bin/pod
  SDKs:
    iOS SDK:
      Platforms: DriverKit 23.4, iOS 17.4, macOS 14.4, tvOS 17.4, visionOS 1.1, watchOS 10.4
    Android SDK: Not Found
  IDEs:
    Android Studio: 2023.2 AI-232.10300.40.2321.11668458
    Xcode: 15.3/15E204a - /usr/bin/xcodebuild
  Languages:
    Java: 17.0.11 - /usr/bin/javac
  npmPackages:
    @react-native-community/cli: Not Found
    react: 18.1.0 => 18.1.0
    react-native: 0.71.9 => 0.71.9
    react-native-macos: Not Found
  npmGlobalPackages:
    *react-native*: Not Found
info React Native v0.74.0 is now available (your project is running on v0.71.9).
info Changelog: https://github.com/facebook/react-native/releases/tag/v0.74.0
info Diff: https://react-native-community.github.io/upgrade-helper/?from=0.71.9
info For more info, check out "https://reactnative.dev/docs/upgrading".

Stacktrace or Logs
/android/app/src/main/java/com/dindle/app/MainApplication.java:24: error: cannot find symbol
          List<ReactPackage> packages = new PackageList(this).getPackages();
                                            ^
  symbol: class PackageList

Reproducer
.
Screenshots and Videos
No response

In MainApplication.java when I build on Android Studio, it gives me the error:

That happens because the code for PackageList (which is code generated by the CLI) hasn't been generated yet. You can solve this by invoking yarn android from terminal and then opening your project inside Android Studio.


Fetch failed

Hello!
Sorry I can't be more detailed at the moment, but if you let me know what logs to provide, I can do that.
I got a fetch failed error for the following request below. Looking into whether something changed on my side that could cause this, but wanted to post here before I forget (and because the console error ask me to report 😅)
// https://giscus.app/api/discussions?repo=martinP7r%2Fblog&term=posts%2Fdecoupled-stacked-sheet-navigation-with-multiple-modals-in-swiftui%2F&category=Posts&number=0&strict=false&last=15

{
  "error": "fetch failed"
}

Ah, should have looked at the other issues first. Closing as a duplicate of

https://github.com/giscus/giscus/issues/1269


Add updateItemsThresholdByArea to InventoryItemDAO

Add updateItemsThresholdByArea to InventoryItemDAO

There's no need to use transactions if you're not performing multiple operations that need to occur atomically and where an error in one of them requires rolling back the whole transaction. If you're performing just a single operation you can just do it without beginTransaction() and commitTransaction() \ abortTransaction().


Automatic PR from RestAPI-PR1574

Generated from RestAPI PR: https://github.com/Azure/azure-rest-api-specs/pull/1574

Codecov Report

Merging #1400 into master will decrease coverage by 0.23%.
The diff coverage is 70.78%.

@@            Coverage Diff             @@
##           master    #1400      +/-   ##
==========================================
- Coverage   52.61%   52.38%   -0.24%
==========================================
  Files        3299     3317      +18
  Lines       83894    84532     +638
==========================================
+ Hits        44145    44284     +139
- Misses      39749    40248     +499

Impacted Files
Coverage Δ

...zure/mgmt/web/models/site_config_resource_paged.py
80% <ø> (ø)
:arrow_up:

...b/azure/mgmt/web/models/virtual_network_profile.py
55.55% <ø> (ø)
:arrow_up:

...b/azure/mgmt/web/models/perf_mon_response_paged.py
80% <ø> (ø)
:arrow_up:

...re-mgmt-web/azure/mgmt/web/models/cors_settings.py
80% <ø> (ø)
:arrow_up:

...gmt-web/azure/mgmt/web/models/auto_heal_actions.py
57.14% <ø> (ø)
:arrow_up:

...t/web/models/resource_name_availability_request.py
62.5% <ø> (ø)
:arrow_up:

...mgmt-web/azure/mgmt/web/models/identifier_paged.py
80% <ø> (ø)
:arrow_up:

azure-mgmt-web/azure/mgmt/web/models/site_seal.py
83.33% <ø> (ø)
:arrow_up:

...b/azure/mgmt/web/models/auto_heal_custom_action.py
66.66% <ø> (ø)
:arrow_up:

...-mgmt-web/azure/mgmt/web/models/name_value_pair.py
66.66% <ø> (ø)
:arrow_up:

... and 227 more

Continue to review full report at Codecov.

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

In https://github.com/Azure/azure-sdk-for-python/pull/1405


⚠ GitLab Server has degraded performance

In eb7b4e7, GitLab Server (https://gitlab01.its-telekom.eu) experienced degraded performance:

HTTP code: 200
Response time: 13554 ms

Resolved: GitLab Server performance has improved in c855e99.


Yuhsiangliu profile

Submitting profile information for Yu-Hsiang Liu

This looks good. There isn't anything listed in the interests or education section, are you OK with that? Just leave a comment here to let me know.

Sorry, I meant to update it later. Now I have a more completed profile. Should I cancel this one and make another request?

Nevermind, I just saw it's updated already. I am good with the current version.

Yep, you did the right thing. The pull request is intended to merge branches. When you made that last edit and hit commit it updated your branch so the PR automatically picks up the changes. When your working with existing projects they'll often have feedback and you'll work this way to get everything ready to go. Let's get this merged!


Examples pages syntax highlighter removes . from compound JSX components

Describe the bug
Compound components have their . separator removed by the syntax highlighter used for example pages.
To be clear, it is still valid to import ButtonGroup directly, but the examples pages use Button.Group.
To Reproduce
Steps to reproduce the behavior:

Go to https://flowbite-react.com/#/button-group
Notice the Default example produces the following syntax highlighted code:

<ButtonGroup>
  <ButtonComponent color="alternative">
    Profile
  </ButtonComponent>
  <ButtonComponent color="alternative">
    Settings
  </ButtonComponent>
  <ButtonComponent color="alternative">
    Messages
  </ButtonComponent>
</ButtonGroup>

Expected behavior
The code should look like:
<Button.Group>
  <Button color="alternative">Profile</Button>
  <Button color="alternative">Settings</Button>
  <Button color="alternative">Messages</Button>
</Button.Group>

Screenshots
n/a
Desktop (please complete the following information):
n/a
Smartphone (please complete the following information):
n/a
Additional context
n/a

I didn't even notice this initially, but it looks like it also incorrectly resolves the name of Button to ButtonComponent.

Yep. All components sub-components must have the property displayName attached.
Here is a good example: https://github.com/themesberg/flowbite-react/blob/d056becd2cd0fde8fd4cb5ecb3b6bcadc10d7b73/src/components/Navbar/index.tsx#L44

I can confirm adding the displayName totally fixes this- so I think we just need to add a displayName to existing components and this should be resolved. I can take that on.


as of v2024.3.1, comparing a 1D dask.array.Array to a dask.dataframe.Series fails

Describe the issue:
Prior to dask < 2024.3.0, it was possible to directly combined a 1-dimensional Dask Array and a Dask Series with operators like ==, -, and +, like this:
(d_ser == d_arr).compute()

As of v2024.3.1, with the switch to dask-expr, that instead raises an exception like this:
ValueError: For a 1d array, columns must be a scalar or single element list

Minimal Complete Verifiable Example:
Consider the following Python code.
import dask.array as da
import dask.dataframe as dd
import pandas as pd

d_series = dd.from_pandas(pd.Series([1.0, 2.0, 3.0, 4.0]), npartitions=1)
d_array = d_series.to_dask_array()

(d_series == d_array).compute()
(d_series - d_array).compute()
(d_series + d_array).compute()

In a Python 3.11 environment with dask==2024.2.1, numpy==1.26.4, and pandas==2.2.1, that succeeds.
(d_series == d_array).compute()
# 0    True
# 1    True
# 2    True
# 3    True
# dtype: bool

In a Python 3.11 environment with dask==2024.3.1, that latest dask-expr (1.0.3), and the same numpy and pandas versions, it fails.
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python3.11/site-packages/dask_expr/_collection.py", line 160, in _wrap_expr_op
    other = from_dask_array(
            ^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/dask_expr/_collection.py", line 4730, in from_dask_array
    df = from_dask_array(x, columns=columns, index=index, meta=meta)
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/dask/dataframe/io/io.py", line 433, in from_dask_array
    meta = _meta_from_array(x, columns, index, meta=meta)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/dask/dataframe/io/io.py", line 86, in _meta_from_array
    raise ValueError(
ValueError: For a 1d array, columns must be a scalar or single element list

Anything else we need to know?:
I've read #10995. I don't believe this issue is already captured elsewhere here or at https://github.com/dask/dask-expr/issues.
I discovered this behavior change because it broke LightGBM's CI: https://github.com/microsoft/LightGBM/issues/6365. It was convenient there to be able to compare two 1-dimensional arrays to each other and not need to care whether one was a dask Array and another was a Dask Series, but if that's a bad practice or no longer supported here, it won't be a huge problem to change it. I don't know if other projects rely on that behavior though.
Note that pandas and numpy objects can be compared in these ways (as of pandas==2.2.1 and numpy==1.26.4):
import pandas as pd
import numpy as np

ser = pd.Series([1.0, 2.0, 3.0, 4.0])
arr = ser.values

ser == arr
arr == ser

Environment:
I set these up using the official python:3.11 container images.
docker run --rm -it python:3.11 bash

Latest dask, numpy, pandas, and dask-expr:
docker run --rm -it python:3.11 bash
pip install \
    'dask==2024.3.1' \
    'distributed==2024.3.1' \
    'dask-expr==1.0.3' \
    'numpy==1.26.4' \
    'pandas==2.2.1'

Slightly older dask and the newest dask-expr that supported it:
docker run --rm -it python:3.11 bash
pip install \
    'dask==2024.2.1' \
    'distributed==2024.2.1' \
    'dask-expr==0.5.3' \
    'numpy==1.26.4' \
    'pandas==2.2.1'

Thanks for your time and consideration.

Thanks for the bug report. This is obviously expected to work. Will have a fix up shortly


Error Importing InvalidDataContractException

Error attempting to import a record.  Attached input and stack trace.
err-stack.txt
msdyn_workorder-example.json

Getting similar issues when trying to migrate just a Currency field in isolation.  Transaction Currency ID mapping on export doesnt resolve it.


[Feat]: Adding validation for number in the password

Is your feature request related to a problem? Please describe.
In the password it was only asking for 1 capital letter and 1 special character but not a number. So I will add this feature to the password
Describe the solution you'd like.
Just changing a small validation in the password for checking 1 number in password
Describe alternatives you've considered.
No response
Additional context.
No response
Show us the magic with screenshots
No response
Checklist

[X] I have checked the existing issues
[X] I have read the Contributing Guidelines
[X] I want to work on this issue. (optional)

I want to work on this issue. Kindly grant me this issue under gssoc

assigning to you @shikharg1110 , you can start working on it.

@shikharg1110 Do this addition task also:

Give a descriptive Toast for the validation Error .
and let me know you have any good ideas . . .

By the way HappyHacking 🎊🥳

@VinayakVispute I would like to work on this issue. Can u please assign it to me??

@VinayakVispute Give a descriptive Toast for the validation Error .  I want to work on this issue. Kindly assign this to me.