Generic views: avoid db calls in setup()

Is your proposal related to a problem?
We have a ModelViewSet to manage an object with a state machine, where we have to protect the transitions (and their related db changes) by locking the object with select_for_update(), which requires to wrap the query and the operations in one transaction.atomic() block.
This lead us to the problem, that the setup() methods of Wagtail's generic views and mixins are full of database lookups, and since the call of setup() and the call of dispatch() are completely separated by django (see Django's code), the easy option to wrap the post() or the dispatch() method with transaction.atomic() does not help here.
For now, we have to make a duplicate call to get_object() (so a duplicate query) in our snippet's EditView like this, which is not very clean:
class EditView(WagtailEditView):
    @transaction.atomic
    def post(self, request, *args, **kwargs):
        # reset object again
        self.object = self.get_object(self.model.objects.select_for_update())
        return super().post(request, *args, **kwargs)

I really think, that any kind of db operation should not happen in setup(), this also fits to where Django's code calls get_object(), for example here:
https://github.com/django/django/blob/2cfa3fba0c8c5f3cf5daf23fd5333902a34fea86/django/views/generic/edit.py#L193-L206
Further I think that due to the fact, that Django's BaseUpdateView already calls get_object in get() and post(), some of Wagtail's core views often make at least 2 calls to get_object(), since it is often called in their setup()-chain.
Describe the solution you'd like
We should extract the database-related initialization into a new method.
One solution I can think of is, that Wagtail could provide its own base View class (tbd: is a mixin better here?), which introduces a new, empty "init"-method (naming TBD).
We could then extend Django's BaseCreateView, BaseUpdateView,... to call this new method. For example:
from django.views import View as DjangoView
from django.views.generic.edit import BaseUpdateView as DjangoBaseUpdateView

class View(DjangoView):
    def init(self):
        """Make further initializations (e.g. using the database)."""

class BaseUpdateView(DjangoBaseUpdateView, View):
    def init(self):
        super().init()
        self.object = self.get_object()

    def get(self, request, *args, **kwargs):
        self.init()
        # bypass the object-initialization of Django's BaseUpdateView
        return super(DjangoBaseUpdateView, self).get(request, *args, **kwargs)

    def post(self, request, *args, **kwargs):
        self.init()
        # bypass the object-initialization of Django's BaseUpdateView
        return super(DjangoBaseUpdateView, self).post(request, *args, **kwargs)

Refactoring example 1:
We could change the EditView (code), by inheriting from our own BaseUpdateView instead of Django's and adapt all related mixins (basically search for setup() methods). For example, let's look at the CreateEditViewOptionalFeaturesMixin:
https://github.com/wagtail/wagtail/blob/825f2829a111557c48c9524835ffd01e700b60f9/wagtail/admin/views/generic/mixins.py#L231-L250
The lines, which duplicate Django's View.setup() (here) wouldn't be necessary anymore. Also calling get_object() before calling super().setup(), just because the LocaleMixin.setup() needs it, isn't necessary either.
Instead I think we could replace setup() with the following:
class CreateEditViewOptionalFeaturesMixin:
    ...
    def setup(self, request, *args, **kwargs):
        super().setup(request, *args, **kwargs)
        self.preview_enabled = self.model and issubclass(self.model, PreviewableMixin)
        self.revision_enabled = self.model and issubclass(self.model, RevisionMixin)
        self.draftstate_enabled = self.model and issubclass(self.model, DraftStateMixin)
        self.locking_enabled = (
            self.model
            and issubclass(self.model, LockableMixin)
            and self.view_name != "create"
        )

    def init(self):
        super().init()
        self.lock = self.get_lock()
        self.locked_for_user = self.lock and self.lock.for_user(request.user)

Refactoring example 2:
The ConfirmWorkflowCancellation (code) uses the BaseObjectMixin code. First we could adapt the BaseObjectMixin and split up the code:
class BaseObjectMixin:
    ...
    def setup(self, request, *args, **kwargs):
        super().setup(request, *args, **kwargs)
        self.pk = self.get_pk()

    def init(self):
        super().init()
        self.object = self.get_object()
        self.model_opts = self.object._meta
    ...

ConfirmWorkflowCancellation could the be changed to inherit form our new base View and change the code as follows:
class ConfirmWorkflowCancellation(BaseObjectMixin, View):
    ...
    def init(self):
        super().init()
        self.workflow_state = self.object.current_workflow_state

    def dispatch(self, request, *args, **kwargs):
        self.init()
        ...
    ...

What do you think?
I know, this needs a major refactoring through the code, but as I've looked quickly through the code, it looks quite straight forward and it often improves the code (e.g. removes duplicated View.setup() code, avoids order issues super.setup() vs. get_object(),...).
I'm not completely sure, if a mixin is better than a custom base View-class, which would be a subclass of Django's View, and also if there are better options than overriding (bypassing) Django's Base*View-classes.
Working on this

Anyone can contribute to this. View our contributing guidelines, add a comment to the issue once you’re ready to start.

Hey @th3hamm0r, thanks for raising this!
This has been on the back of my mind for a while. I agree that we should do away with the database queries in setup(). As someone who wrote them, I remember a few reasons why I did it:

I wanted such properties to be available in all methods (so we don't have to do something like self.locale = self.get_locale() in get() and post() etc.)
I wasn't sure if cached_property is safe to be used in views, as I didn't know whether the view instance is reused for all requests or is freshly instantiated on every request.

After spending more time working on class-based views across Wagtail and looking into Django's base View class, I think it is safe to do so as the view instance is freshly created on every request. We've refactored some of the variables in setup() to use cached_property in 5.2 and 6.0, but there are still others as you mentioned in this issue.
I think using our own View class would be a bit overkill and unexpected. I'm also not quite sold about introducing an init method though, because in your case I don't see how it's different from setup(), especially after we override get() and post() to bypass Django's BaseUpdateView. As far as I'm aware, setup() (per its docstring) is meant for attributes that are shared by all view methods, which looks like what init() is doing here.
I'm more in the favour of moving towards cached_property whenever possible, so that any queries are only done when you actually need the property, and only done once. This allows us to skip some of the queries if e.g. the view returns early due to insufficient permissions.
It may not always be the best option though, especially with established patterns that use get_ methods like Django's get_object().

Thanks for your detailed response, and yes, cached_property sounds way better than my approach, especially as it avoids the dev always having to know the correct order of calls :+1:
This on-demand-solution should avoid unnecessary queries nicely.
With that, we probably need our own kind of BaseUpdateView (and other classes) instead of Django's versions, to avoid calls to get_object() by Django.
Even if I'm no longer convinced of my approach anyway, just to clarify: I also wasn't completely convinced with the method name init(), but it should be separate from setup() to contain the db-setup, and it should only be called in the context of dispatch(). I didn't want to use "dispatch" in the name, since ideally it should first be called by "post()/get()/...". But no matter, "cached_property" is the better apporach


Fix EnumVariants not showing properly when hovering

This fixes #950
This also fixes hovering over the name of an EnumVariant.
Additionally this changes the way enum variants are shown, now instead of the Some<T>... -> Option you just get Some. I'm not sure what would be the optimal display for enum variants in this case.

bors r+


Embed: add replay button + msg resizing

Test
Point your embed to kp.odysee.com
Ticket
Closes #7113 embed improvements for peakprosperity
Changes

Added a replace button;  replaced "Rewatch and Discuss" to "Discuss /".
Make the message font size dynamic based on container height, so that it won't clip.

You're right, it's fine for this. But for peak prosperity case I disabled that screen altogether last night.

I'll fix it! it's all set.

I'll fix it! it's all set.

Thanks! Wasn't clear on the whole peakprosperity thing -- was just instructed to add the replay button.


Automatically review PRs with OpenRewrite recipe runs

As discussed on https://github.com/langchain4j/langchain4j/pull/622#pullrequestreview-1895918197, this PR adds a workflow to automatically review pull requests. The rules are configurable and can be extended; I'd thought to start small, and then expand in separate pull requests where I both make the changes to the project, and add the recipe to the list of suggestions for future pull requests.
As an example of what this looks like in practice, have a look at https://github.com/openrewrite/rewrite-migrate-java/pull/421
Notice how we have a bot github-actions that places code suggestion comments that can be quickly applied by the user. This should make for a reasonably friction-free enforcement of code standards going forward, using mostly standard components + https://github.com/googleapis/code-suggester

I'll self review with a few small callouts below, just to make review easier.
Assumes that we first merge my other pull request, such that we don't get any suggestions for items fixed there.

#622

Summary by CodeRabbit

New Features

Enhanced GitHub Actions workflows for pull request processing:

Automatically suggests improvements using the Google Code Suggester tool.
Securely processes untrusted code by running OpenRewrite recipes and uploading patches.

Refactor

Improved test assertions in VertexAiEmbeddingModelIT.java and AiServicesBuilderTest.java for better code quality.

Let me know if you'd like me to take out the OrderImports for now, or anything else I can do to help this PR along. The goal really is to minimize the noise on PRs while automating away common issues that could otherwise be (re)introduced.

@timtebeek thanks a lot! And sorry for the delayed response, I will try to check this ASAP.

All good! Fries what it's worth @MBoegers tried the AI suggestions here and they didn't work, hence not applied. :)

@timtebeek thank you and so sorry for the late reaction!

@timtebeek thank you and so sorry for the late reaction!

No problem at all! I know what it's like. :) Good to see this merged!
I've opened up a follow up pull request that clears out some new suggestions from the main branch, such that PRs only show suggestions on new/changed files.

https://github.com/langchain4j/langchain4j/pull/1904

You'll also want to enable "Always suggest updating pull request branches" on https://github.com/langchain4j/langchain4j/settings

That ensures that for any already open PRs the latest changes on main are reflected to post suggestions before a merge.


ci: split workflows

have one dedicated workflow for

generate the docs
tests with java
tests with php
test with javascript

I like this change


convert to dynamic config; return boolean, numeric and string responses (FF-860)

Fixes: #issue
Motivation and Context
Adds support for typed response functions.
Description

enable strict null checks
Keeps getAssignment(...): string
Adds getStringAssignment, getBoolAssignment, getNumericAssignment, getJSONAssignment
Created EppoValue class

How has this been tested?
unit tests

@leoromanovsky Can we test it with the updated test data from the GitHub Repository?

Thanks Agam for the suggestion to add the new test cases the latest ones brought up a bug that I corrected.
I also had a hard time getting the new test-data command working as it is written in the java repo; seemed like a race condition was happening where git clone wasn't getting waited on and the script crashing trying to copy a json file. I've fixed it with the version as written:
testDataDir := test/data/
tempDir := ${testDataDir}temp/
gitDataDir := ${tempDir}sdk-test-data/
branchName := main
githubRepoLink := https://github.com/Eppo-exp/sdk-test-data.git
repoName := sdk-test-data
.PHONY: test-data
test-data:
	rm -rf $(testDataDir)
	mkdir -p $(tempDir)
	git clone -b ${branchName} --depth 1 --single-branch ${githubRepoLink} ${gitDataDir}
	cp ${gitDataDir}rac-experiments-v3.json ${testDataDir}
	cp -r ${gitDataDir}assignment-v2 ${testDataDir}
	rm -rf ${tempDir}


Go and PHP language versions

Is there an existing issue for this?

[X] I have searched the existing issues

Describe the bug
There are a couple of languages with issues when trying to set the language version.
Go
Docs and code indicate Go should only work with versions 17 and 18, and that 17 should be the default.
Testing shows otherwise, with only 1.18 and 1.19 being available and 1.19 being the default:

If version is set to 1.17 in go.mod, the app is built with Go 1.19.4.
If version is set to 1.18 in go.mod, the the app is built as expected with Go 1.18.
If version is set to 1.19 in go.mod, the the app is built as expected with Go 1.19.

PHP
Docs indicate PHP should only work with 8.0, 8.1, and 8.2; with 8.2 as the default. Code seems to indicate the available versions are: 7.4, 8.0, 8.1, and 8.2; with 8.2 as the default.
Testing shows otherwise, with 7.4 deprecated and 8.1 being the default:

If a composer.json file is NOT present in the repo, Nixpacks should use the default PHP version, but the app is built with PHP version 8.1.13.
If version is set to 7.4 in composer.json, the build fails and the build log shows this error: “php74 has been dropped due to the lack of maintanence from upstream for future releases.” While this is to be expected due to the deprecation of that version, the code referenced above includes PHP 7.4.
If version is set to 8.0, 8.1, or 8.2, the app is built as expected with the specified language version.

To reproduce
Create applications with each of the languages and versions described, then check the version of the language used.
Expected behavior
Expected documentation and Nixpacks code to agree.
Environment
Tested on Railway.

Is this still up, and is anyone working on this? If its free to work on, would like to take this up :)


Classification metrics: metrics.confusion_matrix

Add a differentially private variant of the metrics.confusion_matrixmethod in corresponding location.
To do this you will likely need to leverage the method mean in the tools -> utils which is a differentially private mean function.
Remember to keep the interfaces consistent!

please assign me the issue , and kindly check pr https://github.com/ObliviousAI/ag_sklearn/pull/16


fix 6x2 layout rendering V1 twice and skipping lead III

the 6x2 layout does not render lead III and instead renders V1 twice.

Thank you!


"Response body is not available to scripts (Reason: CORS Missing Allow Origin)" after trying to delete an account

curl 'https://flathub.org/api/v2/auth/deleteuser' -H 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:103.0) Gecko/20100101 Firefox/103.0' -H 'Accept: */*' -H 'Accept-Language: en-US,en;q=0.5' -H 'Accept-Encoding: gzip, deflate, br' -H 'Referer: https://beta.flathub.org/' -H 'Origin: https://beta.flathub.org' -H 'DNT: 1' -H 'Connection: keep-alive' -H 'Cookie: ***; session=***' -H 'Sec-Fetch-Dest: empty' -H 'Sec-Fetch-Mode: cors' -H 'Sec-Fetch-Site: same-site'

does not succeed:
Response body is not available to scripts (Reason: CORS Missing Allow Origin)

I see this also on the request for appstream data on the userpage sometimes (oddly not always)

I don't think this is happening anymore.


Only build Cocoa example when using Xcode

Description
The Cocoa example program requires Xcode so I disabled this when using any other CMake generator on macOS.
Tasks

[ ] Tested on Linux
[ ] Tested on Windows
[x] Tested on macOS
[ ] Tested on iOS
[ ] Tested on Android

How to test this PR?
Build SFML with SFML_BUILD_EXAMPLES=ON on macOS using Makefiles. Observe the following error:
xcode-select: error: tool 'ibtool' requires Xcode, but active developer directory '/Library/Developer/CommandLineTools' is a command line tools instance

SFMLBuildMaster: Build this please.


Dependency libraries problem

Dear Jens-Uwe Ulrich,
I am notice you already provided a compiled version, but when I use it, it's says "./taxor: error while loading shared libraries: libbz2.so.1.0: cannot open shared object file: No such file or directory".
It looks like the software needs some libraries from the conda environment, and I don't have the root account of the cluster.
And also those libraries cannot be installed by myself.

./taxor: /lib64/libm.so.6: version GLIBC_2.29' not found (required by ./taxor) ./taxor: /lib64/libstdc++.so.6: version GLIBCXX_3.4.20' not found (required by ./taxor)
./taxor: /lib64/libstdc++.so.6: version CXXABI_1.3.9' not found (required by ./taxor) ./taxor: /lib64/libstdc++.so.6: version CXXABI_1.3.11' not found (required by ./taxor)
./taxor: /lib64/libstdc++.so.6: version GLIBCXX_3.4.22' not found (required by ./taxor) ./taxor: /lib64/libstdc++.so.6: version GLIBCXX_3.4.26' not found (required by ./taxor)
./taxor: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by ./taxor)

Best wishes,
Yue Ma

Ok, this seems like you are missing more than just libbz2 in your conda environment. You would need to install g++-10, gcc-10, build-essential and libbz2-dev if you want to compile and build taxor on your own.

I also uploaded an updated binary of Taxor using the static bzip2 library. Please try it out and tell me if it worked or throws any other error messages.

Hi jens, I download you new binary of Taxor, when I directly run it,I still meet same errors

as you can see here, I have installed the libstdc++ in my conda envs, and all the version are required

But I cannot install the libm.so.6 it's look like need update whole service system, which I cannot do that, so it is possible to put these together with taxor when compiling it? or could you provide a docker container about this software.
by the way, I also tried compile it  by myself, but it's give me other error:

it's says cannot found SDSL library, but this library is there.
Right now I am using singularity to build an new version of OS, to run this software, it's OK for the current testing phase.
singularity build --sandbox ubuntu docker://ubuntu:22.04
cp libgomp.so.1 ubuntu/lib/x86_64-linux-gnu/
singularity build ubuntu.sif ubuntu/
singularity run --bind ./:/mnt ubuntu.sif bash
It's worked within singularity virtual system, see below:

If you can offering a docker container or something like that to help me run this software in normal way that will be great.
Thanks a lot!

It seems like you are using older GCC and G++ versions on the system. However, I created a docker image, which you can find here. I hope this solves your issues.

It seems like you are using older GCC and G++ versions on the system. However, I created a docker image, which you can find here. I hope this solves your issues.

Here is my GCC version, it's 11.2.0-16, it's should be meeting demand.

And I am also tried to using the docker image, I can only build it with singularity(should not change anything within image), but it's cause error "a shared library is likely missing in the image", like this:

Unfortunately it's not clear to me from the error message which shared library in the docker image is missing. Did singularity tell you more about tha?
In the meantime, could you try conda install libgcc before trying to compile taxor?

BTW: I could successfully run the docker container image even on my windows laptop. So it seems more like an issue with singularity

Hi,
I recently tried to add some static libraries to the binary executable of Taxor. Now it includes the zlib, glibc and libstdc++. You may want to give it a try and report if it works or not. Unfortunately, all my Linux distributions have no issues with the executables and I could not reproduce your issues.

Unfortunately, the latest binary still failed to run on our server.
It said
$ taxor
taxor: error while loading shared libraries: libbz2.so.1.0: cannot open shared object file: No such file or directory

So I created a conda environment and installed bzip2
$ mamba create -c conda-forge -n taxor python==3.9 bzip2
$ mamba activate taxor

However, it still reported the same error. So I configured the LD_LIBRARY_PATH.
$ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/homes/shenwei/ws/app/miniconda3/envs/taxor/lib

Hmm, new error :
$ taxor
taxor: /lib64/libm.so.6: version `GLIBC_2.29' not found (required by taxor)

Then I installed a glibc (v2.33). While it still failed. I can't do anything with the Segmentation fault.
$ mamba install vikky34v::glibc
$ taxor
Segmentation fault (core dumped)

Yeah, this is a weird behavior on some platforms when using the precompiled binary. I still need to figure out why the math library is making troubles. In the meantime, as you are using conda anyway, I recommend you to use the taxor bioconda package. This should fix your issue.

Good to know that! BTW. In the Installation section of README, "executable binaries" links to KMCP.

Oh damn...Thanks for pointing that out. I immediately resolved that and added the conda as in installation option.

Oh sorry, that line resulted from the wrong input. While it exits unexpectedly as well with gtdb-R214-k22-s12.hixf.  The file might be corrupted, I'm downloading it. Maybe you could provide md5sum with the index files.
$ taxor search --index-file gtdb-R214-k22-s12.hixf  --query-file hifi-zymo-d6331.fq.gz
use syncmer model
Segmentation fault (core dumped)

The other indexes worked!
$time taxor search --index-file refseq-abfv-k22-s12.hixf  \
    --query-file hifi-zymo-d6331.fq.gz --output-file t.txt --threads 32

BTW, if --output-file  is not given (the default value is .), nothing is outputted neither in stdout or any file.

The md5sum is correct. Can you please check the taxor version, you are using.

Installed with conda.
VERSION
    Last update:
    taxor version: 0.1.2
    SeqAn version: 3.4.0-rc.1

I don't know what happened with the files but I rebuilt the indexes, tested, and uploaded them again. At least on our cluster, they work as expected. Please contact me again if they still cause a segmentation fault.

Same error.
$ time taxor search --index-file genbank-viral-k22-s12.hixf3 \
     --query-file hifi-zymo-d6331.fq.gz --output-file t3.txt
Segmentation fault (core dumped)

$ ls -l gtdb-R214-k22-s12.hixf*
-rw-r--r-- 1 shenwei iqbal<PHONE_NUMBER>9 Mar 14 12:54 gtdb-R214-k22-s12.hixf
-rw-r--r-- 1 shenwei iqbal<PHONE_NUMBER>9 Mar 14 15:59 gtdb-R214-k22-s12.hixf2
-rw-r--r-- 1 shenwei iqbal<PHONE_NUMBER>1 Mar 19 08:25 gtdb-R214-k22-s12.hixf3

Here's the environment:
$ conda list
# packages in environment at /homes/shenwei/ws/app/miniconda3/envs/taxor2:
#
# Name                    Version                   Build  Channel
_libgcc_mutex             0.1                 conda_forge    conda-forge
_openmp_mutex             4.5                       2_gnu    conda-forge
bzip2                     1.0.8                hd590300_5    conda-forge
c-ares                    1.27.0               hd590300_0    conda-forge
ca-certificates           2024.2.2             hbcca054_0    conda-forge
coreutils                 9.4                  hd590300_0    conda-forge
curl                      8.5.0                hca28451_0    conda-forge
diffutils                 3.10                 hf18258e_0    conda-forge
grep                      3.11                 h3cbd922_0    conda-forge
keyutils                  1.6.1                h166bdaf_0    conda-forge
krb5                      1.21.2               h659d440_0    conda-forge
libcurl                   8.5.0                hca28451_0    conda-forge
libedit                   3.1.20191231         he28a2e2_2    conda-forge
libev                     4.33                 hd590300_2    conda-forge
libgcc-ng                 13.2.0               h807b86a_5    conda-forge
libgomp                   13.2.0               h807b86a_5    conda-forge
libiconv                  1.17                 hd590300_2    conda-forge
libnghttp2                1.58.0               h47da74e_1    conda-forge
libssh2                   1.11.0               h0841786_0    conda-forge
libstdcxx-ng              13.2.0               h7e041cc_5    conda-forge
libzlib                   1.2.13               hd590300_5    conda-forge
ncurses                   6.4                  h59595ed_2    conda-forge
openssl                   3.2.1                hd590300_0    conda-forge
pcre2                     10.40                hc3806b6_0    conda-forge
taxor                     0.1.2                hc155240_0    bioconda
zstd                      1.5.5                hfc55251_0    conda-forge

I created a conda environtment with miniconda3 for taxor on a different laptop and had no issues when using the genbank -viral index. When looking at you package versions, the only two things that I recognized was that your environment is missing the libgcc package and that coreutils have a different version. These two could be the problem. I further added MD5 hashes for the database indexes to the Taxor Readme file on GitHub. May also check if it's correct. I downloaded the genbank-viral database index and it worked for me with the following pckages in my environment.
    _libgcc_mutex-0.1          |      conda_forge           3 KB  conda-forge
    _openmp_mutex-4.5          |            2_gnu          23 KB  conda-forge
    bzip2-1.0.8                |       hd590300_5         248 KB  conda-forge
    c-ares-1.27.0              |       hd590300_0         160 KB  conda-forge
    ca-certificates-2024.2.2   |       hbcca054_0         152 KB  conda-forge
    coreutils-8.25             |                1         9.1 MB  bioconda
    curl-8.6.0                 |       hca28451_0          91 KB  conda-forge
    diffutils-3.10             |       hf18258e_0         391 KB  conda-forge
    grep-3.4                   |       hf43ccf4_4         255 KB  bioconda
    keyutils-1.6.1             |       h166bdaf_0         115 KB  conda-forge
    krb5-1.21.2                |       h659d440_0         1.3 MB  conda-forge
    libcurl-8.6.0              |       hca28451_0         382 KB  conda-forge
    libedit-3.1.20191231       |       he28a2e2_2         121 KB  conda-forge
    libev-4.33                 |       hd590300_2         110 KB  conda-forge
    libgcc-7.2.0               |       h69d50b8_2         304 KB  conda-forge
    libgcc-ng-13.2.0           |       h807b86a_5         752 KB  conda-forge
    libgomp-13.2.0             |       h807b86a_5         410 KB  conda-forge
    libiconv-1.17              |       hd590300_2         689 KB  conda-forge
    libnghttp2-1.58.0          |       h47da74e_1         617 KB  conda-forge
    libssh2-1.11.0             |       h0841786_0         265 KB  conda-forge
    libstdcxx-ng-13.2.0        |       h7e041cc_5         3.7 MB  conda-forge
    libzlib-1.2.13             |       hd590300_5          60 KB  conda-forge
    ncurses-6.4.20240210       |       h59595ed_0         875 KB  conda-forge
    openssl-3.2.1              |       hd590300_1         2.7 MB  conda-forge
    pcre-8.45                  |       h9c3ff4c_0         253 KB  conda-forge
    taxor-0.1.2                |       hc155240_0         3.3 MB  bioconda
    zstd-1.5.5                 |       hfc55251_0         532 KB  conda-forge

Hi @JensUweUlrich,
I'm having the same issue - Segmentation fault (core dumped) when I run
<taxor search --index-file databases/gtdb-R214-k22-s12.hixf --query-file BC07_cdna2_filtered.fastq --output-file test.txt --error-rate 0.99 --threads 4>
VERSION
Last update:
taxor version: 0.1.3
SeqAn version: 3.4.0-rc.1
`# packages in environment at /workspace/appscratch/miniforge/cflpxp_taxor:

Name                    Version                   Build  Channel
_libgcc_mutex             0.1                 conda_forge    conda-forge
_openmp_mutex             4.5                       2_gnu    conda-forge
bzip2                     1.0.8                hd590300_5    conda-forge
c-ares                    1.28.1               hd590300_0    conda-forge
ca-certificates           2024.6.2             hbcca054_0    conda-forge
coreutils                 8.25                          1    bioconda
curl                      8.8.0                he654da7_0    conda-forge
diffutils                 3.10                 hf18258e_0    conda-forge
grep                      3.4                  hf43ccf4_4    bioconda
keyutils                  1.6.1                h166bdaf_0    conda-forge
krb5                      1.21.2               h659d440_0    conda-forge
libcurl                   8.8.0                hca28451_0    conda-forge
libedit                   3.1.20191231         he28a2e2_2    conda-forge
libev                     4.33                 hd590300_2    conda-forge
libgcc                    7.2.0                h69d50b8_2    conda-forge
libgcc-ng                 13.2.0              h77fa898_13    conda-forge
libgomp                   13.2.0              h77fa898_13    conda-forge
libiconv                  1.17                 hd590300_2    conda-forge
libnghttp2                1.58.0               h47da74e_1    conda-forge
libssh2                   1.11.0               h0841786_0    conda-forge
libstdcxx-ng              13.2.0              hc0a3c3a_13    conda-forge
libzlib                   1.2.13               h4ab18f5_6    conda-forge
ncurses                   6.5                  h59595ed_0    conda-forge
openssl                   3.3.1                h4ab18f5_0    conda-forge
pcre                      8.45                 h9c3ff4c_0    conda-forge
taxor                     0.1.3                hc155240_0    bioconda
zstd                      1.5.6                ha6fb4c9_0    conda-forge
`
The package lists are same as above but still encouter the seqmentation error - please advise.
Thanks

@bioinfo17
Did you check if the md5sum of your downloaded index file is correct? I also recognized that seom packages have different versions than the one I had in my conda environment. So you could also try to change to taxor version 0.1.2 or zstd vrsion 1.5.5.

Looked like the downloaded database was the issue - works well with databases build from scratch - thanks

Hello,
I built database using
taxor build --input-file ../../taxor/taxor_input.tsv --input-sequence-dir . --output-filename refseq-PBFAV-VK --kmer-size 22 --syncmer-size 12 --threads 30
i get this error
`64      1.00    4.58    1.00    4.58    296.9GiB
128     0.96    4.48    1.01    4.52    299.6GiB
256     1.20    3.14    0.92    2.89    273.5GiB
512     1.71    3.84    0.87    3.34    257.8GiB
Best t_max (regarding expected query runtime): 256
write Layout header
layout created
terminate called after throwing an instance of 'std::invalid_argument'
what():  The size of the shape cannot be greater than the window size.
Aborted (core dumped)`
VERSION
    Last update:
    taxor-build version: 0.1.3
    SeqAn version: 3.4.0-rc.1

@bioinfo17 can you share your commands for building database with scracth. I downloaded my genomes as mentioned in document. But i still get the above error.


Getting java.lang.IllegalArgumentException: matrix too large

I am trying out tetrad through the py-tetrad library. The basic examples work fine, now I want to use a large dataset and run a DAG search algorithm for mixed data. The data has a shape of (1597997, 60), so I have a large number of samples. Is the dataset simply too large? What is the boundary?
Thanks for your help

Is that 1597997 variables with 60 cases? Or is it transposed the other way? Either way, you're right; it is a bit large. Sixty variables are not problematic for py-tetrad. Here's a recent paper of ours that takes causal search accurately out to 1000 variables or more using the BOSS algorithm:
https://arxiv.org/abs/2310.17679
We are trying to think of ways to extend that (accurately). But 1597997 variables can't be represented; I don't know of any causal search algorithm with super-good stats that will handle that many variables in any case. Usually, what people do is pick a target variable or set of target variables and choose only variables for a subset of the variables that are correlated with one of those.
If it's 1597997 samples, I calculate that will take about 800 MB to store, so you may need to increase the heap size allocated to Java. (I can look up how to do that in py-tetrad.) In general, though, you don't need that many samples for tests and scores to converge; you could take a random subsample of, say, 5000 from that and increase the random subsample size until you hit the limit.

There's a problem for mixed data as well (since you mentioned that). Take the case of just fully multinomial data. In fact, just assume for the nonce that it is all binary. If you use a test or score that is building multinomial tables for judging tests or scores, those tables could conceivably be very large in size. Say your conditioning set includes 10 variables; then you'd need a table with 2^11 = 2048 rows. This is do-able, but you can imagine how the problem could get out of hand. Also, you would need to do the actual counting for each such table--i.e., counting how many data points go into each cell in the table. This can take a very long time.
This problem exists for mixed data as well in Tetrad if you use the conditional Gaussian score since, for the discrete variables, you need essentially to construct tables like this. A possible workaround is to use the Degenerate Gaussian score, which multiplies indicator variables for all but one category for each discrete variable and treats the problem as linear, automatically converting the result back into a graph over the variable in the dataset. This may help in your case; it is in any case more scalable in terms of sample size.

Oh, here's the paper on the Degenerate Gaussian score--you can see how it works.
Andrews, B., Ramsey, J., & Cooper, G. F. (2019, July). Learning high-dimensional directed acyclic graphs with mixed data-types. In The 2019 ACM SIGKDD Workshop on Causal Discovery (pp. 4-21). PMLR.

@phyk Did you any success? I meant to ask...

Looks like this issue is dead--I'll close it. If you have further questions, please open a new issue. :-) We're publishing a new version, 7.6.2, hopefully within a week or so (though don't hold me to that date; it's not just up to me).

Sorry that I did not respond. I am playing around with it and will share my results in this issue as soon as I get some, to document for future users.

Oh, thanks!!!!! :-D

First update:
The settings I used are a dataframe with 1597997 rows , 60 columns. It consists of mixed data and I wanted to try the MGM algorithm.
The initial try failed due to the "java.lang.IllegalArgumentException: matrix too large" exception. Then I tried reducing the dataset rows (i.e. the number of samples) until there was no more exception.
For both 100_000 and 50_000 samples the exception rose again, for 20_000 samples it is now running for a while.

Sounds like this is in progress--I'll close it for now but feel free to re-open or make another issue.


Unity Playground Update

Update playground cdn locations.
Update playground sample scenes.

Please make sure to label your PR with "bug", "new feature" or "breaking change" label(s).
To prevent this PR from going to the changelog marked it with the "skip changelog" label.

Note: The labels section in the right side bar does NOT allow me to click and add tags. So I cant add the skip tags.

Snapshot stored with reference name:
refs/pull/14746/merge
Test environment:
https://babylonsnapshots.z22.web.core.windows.net/refs/pull/14746/merge/index.html
To test a playground add it to the URL, for example:
https://babylonsnapshots.z22.web.core.windows.net/refs/pull/14746/merge/index.html#WGZLGJ#4600
Links to test babylon tools with this snapshot:
https://playground.babylonjs.com/?snapshot=refs/pull/14746/merge
https://sandbox.babylonjs.com/?snapshot=refs/pull/14746/merge
https://gui.babylonjs.com/?snapshot=refs/pull/14746/merge
https://nme.babylonjs.com/?snapshot=refs/pull/14746/merge
To test the snapshot in the playground with a playground ID add it after the snapshot query string:
https://playground.babylonjs.com/?snapshot=refs/pull/14746/merge#BCU1XR#0


Add .goreleaser.yml

This is needed to be consistent with other SRE managed repos.

/lgtm

/label tide/merge-method-squash


Get base address directly from Library

https://github.com/szymonwieloch/rust-dlopen/issues/38

see #10


Please re-check again for version 14.42.0

Dear Developer Orchid,
I've found the issue of version 14.42.0 release. Please re-check again the modal function. All modal for this version is not working. Thanks!

PHP : 8.3.xxx
Laravel : 11.9.xxx
OS : macOS 15.0.1 (Apple M1)

Yes its very annoying , because my modals , does not show , its just empty like that .
so I need to Downgrade my Orchid .

Sorry to hear you ran into this issue — the release did go out a bit sooner than expected.
It should be fixed now. Thanks so much for your patience and support!


Delete microsoft-holographic-remoting-software-license-terms.md

Docs Build status updates of commit 1f8e414:
:warning: Validation status: warnings

File
Status
Preview URL
Details

mixed-reality-docs/holographic-remoting-player.md
:warning:Warning
View
Details

mixed-reality-docs/TOC.md
:warning:Warning
View
Details

mixed-reality-docs/microsoft-holographic-remoting-software-license-terms.md
:white_check_mark:Succeeded
View

mixed-reality-docs/holographic-remoting-player.md

Line 52: [Warning] Invalid file link:(~/microsoft-holographic-remoting-software-license-terms.md).

mixed-reality-docs/TOC.md

Line 0: [Warning] Invalid file link:(~/microsoft-holographic-remoting-software-license-terms.md).

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

Docs Build status updates of commit fb92c80:
:x: Validation status: errors
Please follow instructions here which may help to resolve issue.

File
Status
Preview URL
Details

.openpublishing.redirection.json
:x:Error

Details

.openpublishing.redirection.json

[Error] source_path 'mixed-reality/microsoft-holographic-remoting-software-license-terms' in master redirection file should point to a file of supported extension: .md, .yml.

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

Docs Build status updates of commit 0428077:
:warning: Validation status: warnings

File
Status
Preview URL
Details

mixed-reality-docs/holographic-remoting-player.md
:warning:Warning
View
Details

mixed-reality-docs/TOC.md
:warning:Warning
View
Details

.openpublishing.redirection.json
:white_check_mark:Succeeded

mixed-reality-docs/microsoft-holographic-remoting-software-license-terms.md
:white_check_mark:Succeeded
View

mixed-reality-docs/holographic-remoting-player.md

Line 52: [Warning] Invalid file link:(~/microsoft-holographic-remoting-software-license-terms.md).

mixed-reality-docs/TOC.md

Line 0: [Warning] Invalid file link:(~/microsoft-holographic-remoting-software-license-terms.md).

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

Docs Build status updates of commit 23c1f7b:
:warning: Validation status: warnings

File
Status
Preview URL
Details

mixed-reality-docs/TOC.md
:warning:Warning
View
Details

.openpublishing.redirection.json
:white_check_mark:Succeeded

mixed-reality-docs/holographic-remoting-player.md
:white_check_mark:Succeeded
View

mixed-reality-docs/microsoft-holographic-remoting-software-license-terms.md
:white_check_mark:Succeeded

mixed-reality-docs/TOC.md

Line 0: [Warning] Invalid file link:(~/microsoft-holographic-remoting-software-license-terms.md).

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

Docs Build status updates of commit 296a809:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

.openpublishing.redirection.json
:white_check_mark:Succeeded

mixed-reality-docs/TOC.md
:white_check_mark:Succeeded
View

mixed-reality-docs/holographic-remoting-player.md
:white_check_mark:Succeeded
View

mixed-reality-docs/microsoft-holographic-remoting-software-license-terms.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Fallback locale not working.

I been testing fallback locale and I figured out that's not working until in my model I initialize the variable public $useTranslationFallback = true; or refactor the next function:
private function useFallback()
{
    return $this->getFallbackLocale() != null ? true : false;
}

This maybe should be in the config or document it? What am I doing wrong?

Are you talking about the scope method?

The getTranslation() method I think.
For example: I have my locale to App::setLocale('fr'), but in my translations table I had only 'es' and 'en'.  My fallback_locale = 'es', so doing a $model->name must return a string with 'es' translation, right?; instead returns NULL until I do something like this:
//In my course.php
$this->useTranlationFallback = true;

//In my CourseController.php
App::setLocale('fr');
$course = Course::where('iso','=','MX')->first();
return $course->name;

This maybe should be in the config or document it? What am I doing wrong?

@quiquegarcia you are right this should move to the config.

@quiquegarcia done here
Documentation coming soon :)

Great work!
Recently I updated my project to Laravel 5, laravel-translatable continues working very well.
Thank you!


UAInboxAlertHandler.h using UIAlertView

Please remove deprecated API and replace with UIAlertController instead.
Is the source available somewhere where we can just fix ourself and submit a pull request?

We still support iOS 6+ and UIAlertController is only in iOS 8+. We will see if we can address it in a future release.
The pod just wraps our library - https://github.com/urbanairship/ios-library, so future tickets like these and any PR can be submitted for that repo.


Which version do you use in stable diffusion?

Which version do you use in stable diffusion?

We follow the baselines' versions including 1.4, 1.5, and 2.1


Using jQuery global in browser's console with webpack-ed code.

I include the file packaged in my html file;
<script src="bundle.js"></script>

and I require jquery in the entry file
require('jquery')

and when I type jQuery in chrome's console, it cause an error:

Because I want to use console to do some quick test. Like
// to quickly know the number of some elements inside console
$('li').length

Is there any way I can reference jQuery in console while using to code I packaged?

why are you including jquery twice?

I didn't.
I require jquery in entry file.
And I include bundle.js(webpack generated file) in html.
And I want to use jQuery in browser's console to do some quick test. How can I do this?

What does network tab tell you?

This is working as intended. The bundle shouldn't leak to the environemnt. Explicitly expose jQuery either with the output.library option or the expose-loader.

When debugging I often expose a module temporarily to window to test it. So like this:
window.jQuery = require('jquery');

@SpaceK33z
Where should I put this code in window.jQuery = require('jquery');?
I tried webpack.config.js
but get an error:
window.jQuery = require('jquery');
^
ReferenceError: window is not defined

This code would be in the entry file, where you also put the other require('jquery').


Qt bounty not showing anything.

The Qt bounty https://www.bountysource.com/issues/315019-add-a-tiling-window-manager-like-eclipse-or-visual-studio-have is dead. It's probably the web scraper since Qt bugs moved to bugreports.qt.io.

---
Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/11688709-qt-bounty-not-showing-anything?utm_campaign=plugin&utm_content=tracker%2F47&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F47&utm_medium=issues&utm_source=github).

Responded privately to the support ticket, but this is indeed related to Qt changing their issue tracker URL. The new issue is https://www.bountysource.com/issues/7571628-add-a-tiling-window-manager-like-eclipse-or-visual-studio-have and the bounties have been moved.
The team was already updated to reflect the changes, here: https://www.bountysource.com/teams/qt/issues?tracker_ids=13795429


error: value of type 'URL' has no member 'appending'

Description
I'm trying to compile a vapor api on Docker image with base swift:5.9-jammy.
After adding some basic URL functionality to a local package, it fails:
import Foundation

public extension FlottAPICall {
    var path: String { Self.path }
    var queryItems: [URLQueryItem] { [] }

    func buildUrl(baseUrl: URL) -> URL {
        baseUrl.appending(path: path).appending(queryItems: queryItems)
    }

    /// CustomStringConvertible
    var description: String {
        self.buildUrl(baseUrl: URL(string: "https://www.flott.app")!).path()
    }
}

#0 12.87 [14/881] Compiling FlottCommon FlottEndpoint.swift
#0 12.87 /build/common/Sources/FlottCommon/Endpoints/FlottEndpoint.swift:31:17: error: value of type 'URL' has no member 'appending'
#0 12.87         baseUrl.appending(path: path).appending(queryItems: queryItems)
#0 12.87         ~~~~~~~ ^~~~~~~~~
#0 12.87 /build/common/Sources/FlottCommon/Endpoints/FlottEndpoint.swift:36:71: error: cannot call value of non-function type 'String'
#0 12.87         self.buildUrl(baseUrl: URL(string: "https://www.flott.app")!).path()
#0 12.87                                                                       ^   ~~
#0 12.87
#0 12.87 error: fatalError

It compiles fine on macOS
Steps to reproduce

Take the code snippet from above and try to compile to on swift:5.9-jammy.
Expected behavior

I'd expect it to have the appending URL function.

Environment
(dev-env that does work)

Swift compiler version info: swift-driver version: 1.87.1 Apple Swift version 5.9 (swiftlang-<IP_ADDRESS>.108 clang-15<IP_ADDRESS>)
Xcode version info: Version 15.0.1 (15A507)
Deployment target: macOS 14.1.1 (23B81)

Additional context

Docker image base: https://hub.docker.com/layers/library/swift/5.9-jammy/images/sha256-3fdc5ac4d86fdcf953e11aba87cd0b32e56c1d7a39d1b0db8e48839f87172382?context=explore
Build command: RUN swift build -c release --static-swift-stdlib
Vapor version: 4.86.2

Looking through https://github.com/apple/swift-corelibs-foundation/blob/36a411b304063de2cbd3fe06adc662e7648d5a9d/Sources/Foundation/URL.swift it seems that Foundation forelimb still uses appendingPathComponent() (TBD) instead of the newer appending(path:).
Also, it's referenced on the swift-foundation repo, that work on URL will happen this year, so I assume this functionality is not available on linux yet: https://github.com/apple/swift-foundation#development-focus-for-2023

For anyone running into this, you can choose to use the deprecated appendingPathComponent, add a conditional compilation block based on the os (see here) or simply don't share URL code/functions between client and server. (I'm going with option 3 for now)

@parkera Could we have this transferred?


can't add frames with ids in DEFAULT_FILE_DISCARD

I have a problem trying to add a MLLT frame to an audio file.
This expression is what i'm talking about specifically:
let saved_frames = tag.frames()
    .filter(|frame| {
        !(frame.tag_alter_preservation()
          || (frame.file_alter_preservation()
              || DEFAULT_FILE_DISCARD.contains(&frame.id())))
    });

This makes it impossible to use the crate to add frames from DEFAULT_FILE_DISCARD, which contains MLLT.
This filter should probably only be applied to frames that were initially read from a file, and only if the tag is modified. I'm also not sure this needs to check the file alter preservation flag at all, since we are only modifying the tag, right?

Hey ahti, thank you for your feedback!
Yes, it seems we are too eager to discard tags. The DEFAULT_FILE_DISCARD filter should only be applied when the files contents are changed.


Add getter/setter to the plugin client

Hey guys,
currently there is no way to add dynamicly plugins to client.
I need this for the integration in the php-gitlab-api package, because
i want to attach the AuthenticationPlugin and the ErrorPlugin at runtime.
If there is a better way, let me think!

Well, I remember something about building the plugin chain. I think it makes it possible to add plugins runtime. Nowever this needs @joelwurtz 's confirmation.
Personally I think it is better to remove authentication and other stuff like that from the API.
The fact that your API client uses HTTP endpoints doesn't really matter from your application point of view.
Currently I am working on an API client which has three kinds of backends: REST, Cache (caching heavy requests) and a mock backend using fixtures.
That said, this is something that depends on the personal taste. With HttplugBundle + your custom api bundle you can hide this detail from your API client: you configure the API client and the HTTP Client and just inject it to the API Client. No matter if it is a PluginClient or just a guzzle adapter.
 Same endpoints, but no authentication data required as the proxy handles that. You could use the same API client, but you can't because of the burnt-in API credentials.

@sagikazarmark Yeah i already thought about to remove this "dynamic" from it. But currently anyone can use this library which effort, just $client = new Gitlab\Client('https://git.example.org');;.
If i remove it he have to do it:
$http = new PluginClient(HttpClientDiscovery::find());
$http->addPlugin(new Gitlab\ErrorPlugin()); // This needs the library
$http->addPlugin(new AuthenticationPlugin(new GitLabAuthentication(Client::AUTH_OAUTH_TOKEN, 's3cr3t', 'john'))); // GitLab has it own authentication algorithm

$client = new Gitlab\Client('https://git.example.org', $http);

Or i'm still wrong?

i think we originally designed the plugin client with the idea that you will have a way to know which plugins you need at the time you instantiate the client. and that you use additional configurations if you have different use cases for clients. mutability can lead to all kind of confusion.
if we start allowing to modify the plugins, we would also need a way to check whether a plugin is already configured, or you might add ErrorPlugin twice. @joelwurtz and i discussed that idea at symfony con if i remember correctly, and we discussed it in the group and came to the conclusion that its not a good idea.
if we would not change this, there are two ways you could handle this:

document how to set up the client
wrap the client passed by the library user in your own PluginClient. however, i am not sure if restarting the request in a nested PluginClient would lead to auth still being added.

maybe a compromise of both? if you get passed a PluginClient, assume that the user read the doc and did add the necessary plugins, otherwise create a PluginClient around the passed client?

If i remove it he have to do it

Not necessarily. You can always create a factory method with a default client. I remember we also planned something like a PluginClientFactory.
You can also accept a null http client and create one inside the constructor. But that would mean you have to rely on the discovery inside your API client, which is not necessarily bad, but comes at a price.

@dbu I know that modifiy the state of the object can lead to error but why not simply check inside the addPlugin method if the given plugin is already in the queue, if yes throw an exception.

document how to set up the client

This was my second intention (see my comment above, but i don't know if its best practice, because it would make the usage of this library a little bit harder.

wrap the client passed by the library user in your own PluginClient. however, i am not sure if restarting the request in a nested PluginClient would lead to auth still being added.

This is what i try to avoid, because this will definitly lead to errors. I'm not a big fan of create or wrap objects inside a constructor.

@sagikazarmark This indeed a good idea, a factory which create a standard client which have already the needed plugins configured. Maybe this is the way to go.

there are some valid use cases for adding multiple instances of the same plugin class. and mutability can be a more subtle problem. for example, if that same plugin client is also used for other requests, your users credentials might suddenly get pushed to other end points.
i think i would recommend the way mark proposes. then the user can either use your factory or do their own stuff:
$gitlab = new Gitlab\Client('https://git.example.org', Gitlab\HttpClientFactory::create('john', 's3cr3t'));

// factory is something like
public static function create($user, $pass, Client $client = null)
{
if (!$client) {
    $client = HttpClientDiscovery::find();
}
return new PluginClient($client, [
    new Gitlab\ErrorPlugin(), // This needs the library
    new AuthenticationPlugin(new GitLabAuthentication(Client::AUTH_OAUTH_TOKEN, 's3cr3t', 'john')), // GitLab has it own authentication algorithm
]);
}

or they do their own client and its their job to instantiate the plugins you need.

I'm not a fan of this overall, currently plugins are injected by constructor and are somehow immutable.
Having a add / append / preprend method will not assure someone that the plugin stack is consistent as how it was originally defined.
For your use case it's  the same thing than having different configuration for a HttpClient, you should have multiple plugin stacks :

$basePluginClient = new PluginClient($httpClient, [$plugin1, $plugin2]);

// Decorate (preprend plugin)
$authenticatedPlugin = new AuthenticationPlugin();
$extendedPluginClient = new PluginClient($basePluginClient, [$authenticatedPlugin]);

// New plugin stack (if you need to append)
$extendedPluginClient = new PluginClient($httpClient, [$plugin1, $plugin2, $authenticatedPlugin]);

However i find the current way of creating plugin client and stack not so user friendly, and want to add in a near futur a factory system which would allow to do the following :
$pluginClientFactory = new PluginClientFactory();
$pluginClient = $pluginClientFactory->create($httpClient, [
    'authentication' => [$myAuthenicationMethod],
    'cookie',
    'error',
    'log' => [$logger],
    ...
]);

So when you are in this use case (you need different plugin stack) the factory will be the recommended way to handle that.

@Baachi do you think the inputs from joel and me could solve what you want to do well enough? i now remember the main reason we did not want mutable plugin lists inside the PluginClient is that the order of plugins highly matters, at least for some of the plugins. we said the responsability should be in the code before the PluginClient is instantiated.

For sure, you give me a lot of idea's how to solve this problem, thanks a lot. I will close this PR, because why introduce unneeded complexity.
Guys you do a great job with this project :+1:

great that the project is useful to you! don't hesitate to ask for further help if you need, in issues or the php-http slack channel.
note to self: we should put some of what was discussed here into the documentation, created an issue to remember: https://github.com/php-http/documentation/issues/75

@Baachi thanks for the kind words. Glad this is useful for you as well.
The plugin factory is also a good idea.

i think the plugin factory is something each library would have to
provide. we can't provide it as we don't know what plugins the library
needs...

I meant the generic one that Joel mentioned.

i am not sure a generic one makes sense. if its
class PluginFactory
{
static function create($client, $plugins) {
return new PluginClient($client, $plugins);
}
}
that is too trivial. if it optionally uses the client factory to create the client itself, its still not much use. the only hard thing is collecting all plugins an application needs to be active, and that is not something the factory can help with.

To develop, my view is that each plugin has it's coresponding factory like a AuthenticationPluginFactory each of this define a name and a way to be instanciate
class AuthenticationPluginFactory implements PluginFactory
{
   public function getName()
   {
        return 'authentication';
   }

   public function create($options = [])
   {
        // Checks options with symfony options resolver ?

        // Create plugin
        return new AuthenticationPlugin($options['authentication']);
   }
}

Then the PluginClientFactory can register PluginFactory (and we can register all ours plugins by default, but also provide the register so people can add their own implementation).
Also @dbu i don't want to make the creation static so we can use this factory like a service.

i am not sure we need a factory for instantiating plugins. that feels like too much. also, AuthenticationPlugin::__construct() should validate the options, not a factory.
what could make sense is a PluginClientBuilder that allows to add plugins and can then give a PluginClient. like the symfony ContainerBuilder that is used to define what is needed to create the Container object.
in the context of the HttplugBundle, we currently are building a way to explicitly list plugins needed on services. other bundles could only add plugins using a compiler pass. a PluginClientBuilder could make this more flexible. the builder could use priorities for the plugins being added to handle timing issues.


[Feature request] Total delay for the whole animation

Hey! I've been playing around with the plugin and it feels really nice and snappy, thanks!
One problem I have is that if the scrolling happens over a large number of lines, then the animation can take quite a while to finish. For example, with a default_delay of 3ms, it looks fine when scrolling with <C-d> or similar, but using gg or other methods to go 100 lines downwards takes quite a while. 0.5ms or 1ms feels like a better number for such cases.
But it's not really possible to configure "if scrolling is over 20 lines, use 3ms, if over 90, use 0.5ms, etc.".
I'm thinking that a solution might be to have a "total delay" so that I could say that the total scrolling time should be 60ms and then the plugin would calculate the per-line delay automatically. Also, it could even skip scrolling every other line in some extreme cases (although I'm not sure how smooth that would look like 😄). With such a solution, we might be able to set the scroll_limit to a very high number and still have snappy scrolling (or even not have a limit at all).
What do you think of such an idea?

Hi!
That sounds like a good idea :) . The only issue that I will have to figure out how to make this work with folds. Currently, the distance calculated between current position and final position does not include the fold. A movement that might be 100 lines in distance might only be moving 5 because of a fold, making the per-line speed a bit inconsistent. Once I solve this fold issue I'll be happy to try and implement something like that :)
Until then, I recommend increasing the speed of the gg and G movements:
vim.keymap.set({ 'n', 'x' }, 'gg', "<Cmd>lua Scroll('gg', 0, 0, 1)<CR>")
vim.keymap.set({ 'n', 'x' }, 'G', "<Cmd>lua Scroll('G', 0, 1, 1)<CR>")

Thank you!

I've added a max_length option which will recalculate the line delay if the command goes over the max_length value :). I might rename it if I think of something better. It's currently on the feature branch but I am hoping to merge it with master today or tomorrow.
An example config using the max_length:
require('cinnamon').setup {
  extra_keymaps = true,
  override_keymaps = true,
  max_length = 500,
  scroll_limit = -1,
}

Nice, thanks! This already helps quite a bit.
I'm still thinking of skipping lines so that if the delay would be less than 0.5ms, it would scroll 2 lines at once, etc. I already have a PoC kind-of working, but will need to improve it a bit. Then I might just send a PR with my proposal 😄


Bug:

📜 Description
inside build & deploy section when devtron tries to show git info and access repo,
this error comes up: mkdir /ssh-keys/2: permission denied
👟 Reproduction steps
when trying to add gitlab.com and selecting private ssh key
👍 Expected behavior
it should show my commits on that repo
👎 Actual Behavior
mkdir /ssh-keys/2: permission denied
☸ Kubernetes version
microk8s latest
Cloud provider

kubernetes personal

🌍 Browser
Chrome
🧱 Your Environment
No response
✅ Proposed Solution
No response
👀 Have you spent some time to check if this issue has been raised before?

[X] I checked and didn't find any similar issue

🏢 Have you read the Code of Conduct?

[X] I have read the Code of Conduct

AB#3008

Try this for a quick fix
kubectl edit sts git-sensor -n devtroncd
For container git-sensor, remove allowPrivilegeEscalation: false and runAsNonRoot: true under securityContext as well as change runAsUser to 0 from 1000
let us know if this works for you

Fixed by #3393


Updated modal Layout

PR Fixes:

Updated the layout of the modal section in the questions page

Resolves #577
Checklist before requesting a review

[x] I have performed a self-review of my code
[x] I assure there is no similar/duplicate pull request regarding same issue

UI changes
Before:

After:

@hkirat Please review


PERMISSION_DENIED for google service account

I've successfully subscribed to Pub?Sub service under my own user account. Howewer when i set GOOGLE_APPLICATION_CREDENTIALS env variable to point service account key file i got permission denied exception. This service account has Pub/Sub Admin role. Here is stack trace of exception:
SEVERE: terminated streaming with exception
com.google.api.gax.rpc.PermissionDeniedException: io.grpc.StatusRuntimeException: PERMISSION_DENIED: User not authorized to perform this action.
	at com.google.api.gax.rpc.ApiExceptionFactory.createException(ApiExceptionFactory.java:55)
	at com.google.cloud.pubsub.v1.StreamingSubscriberConnection$1.onFailure(StreamingSubscriberConnection.java:237)
	at com.google.common.util.concurrent.Futures$4.run(Futures.java:1123)
	at com.google.common.util.concurrent.MoreExecutors$DirectExecutor.execute(MoreExecutors.java:435)
	at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:900)
	at com.google.common.util.concurrent.AbstractFuture.complete(AbstractFuture.java:811)
	at com.google.common.util.concurrent.AbstractFuture.setException(AbstractFuture.java:675)
	at com.google.common.util.concurrent.SettableFuture.setException(SettableFuture.java:53)
	at com.google.cloud.pubsub.v1.StreamingSubscriberConnection$StreamingPullResponseObserver.onError(StreamingSubscriberConnection.java:173)
	at io.grpc.stub.ClientCalls$StreamObserverToCallListenerAdapter.onClose(ClientCalls.java:419)
	at io.grpc.ForwardingClientCallListener.onClose(ForwardingClientCallListener.java:41)
	at io.grpc.internal.CensusStatsModule$StatsClientInterceptor$1$1.onClose(CensusStatsModule.java:684)
	at io.grpc.ForwardingClientCallListener.onClose(ForwardingClientCallListener.java:41)
	at io.grpc.internal.CensusTracingModule$TracingClientInterceptor$1$1.onClose(CensusTracingModule.java:392)
	at io.grpc.internal.ClientCallImpl.closeObserver(ClientCallImpl.java:475)
	at io.grpc.internal.ClientCallImpl.access$300(ClientCallImpl.java:63)
	at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl.close(ClientCallImpl.java:557)
	at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl.access$600(ClientCallImpl.java:478)
	at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInContext(ClientCallImpl.java:590)
	at io.grpc.internal.ContextRunnable.run(ContextRunnable.java:37)
	at io.grpc.internal.SerializingExecutor.run(SerializingExecutor.java:123)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at java.lang.Thread.run(Thread.java:745)
Caused by: io.grpc.StatusRuntimeException: PERMISSION_DENIED: User not authorized to perform this action.
	at io.grpc.Status.asRuntimeException(Status.java:526)
	... 19 more

I am also facing the same problem in production and with selective hosts. I am using the same JSON(service account credentials) on 30 different hosts and 3 of them have reported this error. This is a runtime error with a generic message. Please suggest a way to debug it.

I am also facing the same issue. Are you able to solve this?

No, we have decided to use RabbitMQ instead.

We have same issue, weird that some messages is received - some failed

Same problem here.
The publish role isn't sufficient to publish. The Subscriber role isn't sufficient to subscribe. Even the pub sub admin role isn't sufficient to publish or subscribe.
The only way we've been able to get this working is to use a service account with the owner role, which is obviously not acceptable.
There's clearly a privilege missing from all those pub sub roles. Even if this bug isn't going to get addressed, could we at least find out what privilege it is so we can create custom roles for pub sub that don't have all 1407 privileges on them like the Owner does?

This sounds bad. Am I understanding correctly that this issue is intermittent? Our authentication lib has to refresh credentials every hour or so. I suspect that the bug could creep in there.

@vchudnov-g  Single host sometimes succeeds and sometimes fails. We have also observed that only these 4 to 5 hosts which are ideal(haven't published a single message)for a day or more throws this exception. So maybe there is a problem in refreshing the credentials?

@PrashSi Am I understanding correctly that the failure is on the subscriber side and happens intermittently during streaming calls (pulling messages)?
Also are you running on any Google Cloud machines(GCE, GAE, GKE) or local machines?

Also, it would be great if any of you could do the following to help debug if you have cloud-debugger available:

set a watch point in OAuth2Credentials::shouldRefresh and log anytime expiresIn < 5000L

@hzyi-google Running on local machines.

I had a publisher and a few subscribers set up on my local machine and had them running for about 12 hours but could not reproduce this problem. The publisher publishes every 2 seconds. Anything different I can do to help increase the frequency of the bug?

I have observed this issue once in the following situation:

Spring boot application
Running in Google Container Engine
Application listening to 6 subscriptions
One of the subscribers stopped with this error about 4 days and 9 hours after launching the application
Between the application starting and the error occurring 1 message was published to a topic not connected to the erroneous subscription, no other messages were published.
Dependencies from the google-cloud-bom version 0.49.0-alpha

Same issue trying to use Stackdriver exporter.
WARNING: ApiException thrown when exporting TimeSeries.
com.google.api.gax.rpc.PermissionDeniedException: io.grpc.StatusRuntimeException: PERMISSION_DENIED: The caller does not have permission
at com.google.api.gax.rpc.ApiExceptionFactory.createException(ApiExceptionFactory.java:55)
at com.google.api.gax.grpc.GrpcApiExceptionFactory.create(GrpcApiExceptionFactory.java:72)
at com.google.api.gax.grpc.GrpcApiExceptionFactory.create(GrpcApiExceptionFactory.java:60)
at com.google.api.gax.grpc.GrpcExceptionCallable$ExceptionTransformingFuture.onFailure(GrpcExceptionCallable.java:95)
at com.google.api.core.ApiFutures$1.onFailure(ApiFutures.java:61)
at com.google.common.util.concurrent.Futures$4.run(Futures.java:1123)
at com.google.common.util.concurrent.MoreExecutors$DirectExecutor.execute(MoreExecutors.java:435)
at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:900)
at com.google.common.util.concurrent.AbstractFuture.complete(AbstractFuture.java:811)
at com.google.common.util.concurrent.AbstractFuture.setException(AbstractFuture.java:675)
at io.grpc.stub.ClientCalls$GrpcFuture.setException(ClientCalls.java:492)
at io.grpc.stub.ClientCalls$UnaryStreamToFuture.onClose(ClientCalls.java:467)
at io.grpc.PartialForwardingClientCallListener.onClose(PartialForwardingClientCallListener.java:39)
at io.grpc.ForwardingClientCallListener.onClose(ForwardingClientCallListener.java:23)
at io.grpc.ForwardingClientCallListener$SimpleForwardingClientCallListener.onClose(ForwardingClientCallListener.java:40)
at io.grpc.internal.CensusStatsModule$StatsClientInterceptor$1$1.onClose(CensusStatsModule.java:684)
at io.grpc.PartialForwardingClientCallListener.onClose(PartialForwardingClientCallListener.java:39)
at io.grpc.ForwardingClientCallListener.onClose(ForwardingClientCallListener.java:23)
at io.grpc.ForwardingClientCallListener$SimpleForwardingClientCallListener.onClose(ForwardingClientCallListener.java:40)
at io.grpc.internal.CensusTracingModule$TracingClientInterceptor$1$1.onClose(CensusTracingModule.java:391)
at io.grpc.internal.ClientCallImpl.closeObserver(ClientCallImpl.java:471)
at io.grpc.internal.ClientCallImpl.access$300(ClientCallImpl.java:63)
at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl.close(ClientCallImpl.java:553)
at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl.access$600(ClientCallImpl.java:474)
at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInContext(ClientCallImpl.java:591)
at io.grpc.internal.ContextRunnable.run(ContextRunnable.java:37)
at io.grpc.internal.SerializingExecutor.run(SerializingExecutor.java:123)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)```

I was able to make it work following the instructions from:
https://github.com/census-instrumentation/opencensus-java/tree/master/exporters/stats/stackdriver#quickstart
Specifically enabling billing to my gcp account.

@hzyi-google this one looks a tad scary.  Are you able to actively look at this?

@JustinBeckwith I've been trying to repro this but without any luck. I've been talking with Customer Solution Engineers to see if they can get more information from customers but didn't get anything useful. Could you help escalate this?

This issue appears to have diverged into a few scenarios:

Running locally never succeeded
Running on GCE without billing enabled

Closing this out and we can open a new issue with additional repro steps if it's still occurring.

Fecharam e não falaram nada com nada?

This issue appears to have diverged into a few scenarios:

Running locally never succeeded
Running on GCE without billing enabled

Closing this out and we can open a new issue with additional repro steps if it's still occurring.

Resolved?

I've got the same error.
To solve the error, please reference the following link.
https://cloud.google.com/iam/docs/permissions-reference

If you are using GCP service on Compute Engine then you need to provide Credentials explicitly to Publisher Class, faced the same issue this worked for me.
CredentialsProvider credentialsProvider =
FixedCredentialsProvider.create(
ServiceAccountCredentials.fromStream(PubSubUtil.class.getClassLoader().getResourceAsStream("key.json")));

I got the same issue.
For me locally it is working with my credentials and when I started to pass the default credential from VM, it started to fail with above error


Broken image in "Admin Services" page

Description:
Image in the following screenshot is broken in Admin Services page.

@ruthryi  can this be closed?

PR has been merged.


Logo spills over on text

On lower resolution screens, the logo gets pushed down and overflows on the next div

Fixed in e3fb68700900e77cca159dfdc5a5aa8f9add015c


error: wallet "ord" contains unexpected output descriptors, and does not appear to be an ord wallet, create a new wallet with ord wallet create

while trying
./ord --config config wallet create
./ord --config config wallet receive

the thing is, my node was left over from the lastest block.


Added checkout step to publish-images

The publish-images workflow failed with:
/home/runner/work/_temp/541137e8-6b47-4ce2-b49f-be1ebfc6e9b1.sh: line 1: ./.ci/publish-images.sh: No such file or directory

This is due to the missing checkout action, which is included in this PR.
Signed-off-by: Juraci Paixão Kröhling<EMAIL_ADDRESS>

Merging without further review, as it's a trivial change.


REQUEST: New membership for samzong.lu (Chinese nickname 船长)

GitHub Username
@samzong
Organization you are requesting membership in
Karmada website
Karmada docs
Requirements
I have reviewed the community membership guidelines
I have read the Contributor Guide
I have enabled 2FA on my GitHub account
I have subscribed to the Karmada mailing list
I am actively contributing to 1 or more Karmada subprojects
Sponsor 1
@RainbowMango
Sponsor 2
@kerthcet
Sponsor 3
@Arhell
List of contributions to the Karmada project
PRs authored:

https://github.com/karmada-io/website/pull/89

Issues authored:

https://github.com/karmada-io/community/issues/2
https://github.com/karmada-io/karmada/issues/1976

+1

qiu qiu ~

+1
@kevin-wangzefeng
@SAMZONG is now building a platform based on Karmada to serve customers and gave bunches of feedback as well as improvement proposals to the community.
/assign @kevin-wangzefeng

Invitation sent, you shall be receiving an email shortly. You can also visit https://github.com/karmada-io to accept the invitation.

@kevin-wangzefeng @RainbowMango Thanks for this.

/close
Seems all set now.


Landing page update

I can create a simple landing page by updating the html,css,javascript file.I am into UI/UX and frontend so assign this issue to me I will show some sample designs if you select one I can create that page, Thank you.

please assigned to me under GSSOC extended.


UI : Add mlModel Entity Page

See #1283
Describe your changes :

I worked on adding a machine learning model entity page.
Can access
http://localhost:3000/mlmodel/{mlModelFqn}

Type of change :

[x] Improvement
[x] New feature

Frontend Preview (Screenshots) :
https://user-images.githubusercontent.com/59080942/169547022-e586ee81-ab53-4ef0-b747-ad5f986e2c4c.mov

Checklist:

[x] I have read the CONTRIBUTING document.
[ ] I have commented on my code, particularly in hard-to-understand areas.
[ ] I have added tests that prove my fix is effective or that my feature works.
[x] All new and existing tests passed.

Reviewers
@open-metadata/ui

Unit tests will be track by this PR https://github.com/open-metadata/OpenMetadata/issues/5072

On the first page, I believe that Features should be what we show, as that gives the most info about the model. Also, the differentiation point about our ML view is that MlFeatures have FeatureSources which link a feature to a Table via an Entity Ref. We might need to show that as well

ooh the new features view looks great!


tests(least-connections) avoid starting test server using occupied ports

Tests are also failing in master, so maybe let's merge to master and cascade with a master -> next merge?

I am fine getting this to next, if it fixes the problem, let's just cherry pick it to master too.

gj folks!


Add API to get systemName as reported by OpenXR

I ran into https://github.com/StereoKit/StereoKit/discussions/343 (floor height inconsistent between devices) again and would really like to be able to do a check at startup to handle different systems. I suspect OpenXR's systemName property isn't always useful, but in my case I can see "XR-3" being reported in the SK initialization, so I can definitely detect that and use it in those cases (probably other headsets as well).

Btw, this adds SK.SystemName, next to the existing SK.System, which is a bit unfortunate. But from what I saw in the code System is a direct mapping of the underlying OpenXR struct, so it doesn't seem that easy to add systemName to it.

I do have a branch with this functionality in it! I was considering this to be part of a Device API that would probably deprecate a couple of sk_ functions. I believer device_get_name in particular should satisfy this particular thing? Would this work for you instead?

I guess so. I really just need the headset type name through some API.

I did ship Device.Name in v0.3.7-preview.8. Does that satisfy the need here?

Is there a specific context in which Device.Name is valid? I'm trying this:
       static void Main(string[] args)
        {
            SKSettings settings = new SKSettings
            {
                appName = "DutchSkies",
                assetsFolder = "Assets",
            };

            if (!SK.Initialize(settings))
                Environment.Exit(1);

            Log.Info($"Device: {Device.Name}");

With an x64 build on UWP I get System.NullReferenceException: 'Object reference not set to an instance of an object.'__imp__#15604(...) returned null.
Log output:
[SK diagnostic] Initializing StereoKit v0.3.7-preview.8 UWP x64...
[SK diagnostic] Initializing Assets
[SK diagnostic] Initializing Platform
'DutchSkies.exe' (Win32): Loaded 'C:\Program Files (x86)\Steam\steamapps\common\SteamVR\bin\vrclient_x64.dll'. Skipped loading symbols. Module is native, and native debugging is currently disabled.
'DutchSkies.exe' (Win32): Loaded 'C:\Windows\System32\shell32.dll'. Skipped loading symbols. Module is native, and native debugging is currently disabled.
'DutchSkies.exe' (Win32): Loaded 'C:\Windows\System32\setupapi.dll'. Skipped loading symbols. Module is native, and native debugging is currently disabled.
'DutchSkies.exe' (Win32): Loaded 'C:\Windows\System32\version.dll'. Skipped loading symbols. Module is native, and native debugging is currently disabled.
'DutchSkies.exe' (Win32): Loaded 'C:\Windows\System32\winmm.dll'. Skipped loading symbols. Module is native, and native debugging is currently disabled.
'DutchSkies.exe' (Win32): Loaded 'C:\Windows\System32\opengl32.dll'. Skipped loading symbols. Module is native, and native debugging is currently disabled.
'DutchSkies.exe' (Win32): Loaded 'C:\Windows\System32\vcruntime140.dll'. Skipped loading symbols. Module is native, and native debugging is currently disabled.
'DutchSkies.exe' (Win32): Loaded 'C:\Windows\System32\msvcp140.dll'. Skipped loading symbols. Module is native, and native debugging is currently disabled.
'DutchSkies.exe' (Win32): Loaded 'C:\Windows\System32\wtsapi32.dll'. Skipped loading symbols. Module is native, and native debugging is currently disabled.
'DutchSkies.exe' (Win32): Loaded 'C:\Windows\System32\glu32.dll'. Skipped loading symbols. Module is native, and native debugging is currently disabled.
'DutchSkies.exe' (Win32): Loaded 'C:\Windows\System32\vcruntime140_1.dll'. Skipped loading symbols. Module is native, and native debugging is currently disabled.
'DutchSkies.exe' (Win32): Loaded 'C:\Windows\System32\tdh.dll'. Skipped loading symbols. Module is native, and native debugging is currently disabled.
'DutchSkies.exe' (Win32): Loaded 'C:\Windows\System32\windows.storage.dll'. Skipped loading symbols. Module is native, and native debugging is currently disabled.
'DutchSkies.exe' (Win32): Loaded 'C:\Windows\System32\wldp.dll'. Skipped loading symbols. Module is native, and native debugging is currently disabled.
'DutchSkies.exe' (Win32): Loaded 'C:\Windows\System32\shlwapi.dll'. Skipped loading symbols. Module is native, and native debugging is currently disabled.
Tue Jan 17 2023 13:05:32.079 - //==============================================================================================
Tue Jan 17 2023 13:05:32.079 - ================================================================================================
Tue Jan 17 2023 13:05:32.080 - ================================================================================================
Tue Jan 17 2023 13:05:32.080 - DutchSkies.exe 1.23.7 startup with PID=1544, config=c:\fake_app_container_config_path, runtime=C:\Program Files (x86)\Steam\steamapps\common\SteamVR\
Tue Jan 17 2023 13:05:32.086 - [Settings] Load Default Json Settings from C:\Program Files (x86)\Steam\steamapps\common\SteamVR\drivers\htc\resources\settings\default.vrsettings
Tue Jan 17 2023 13:05:32.086 - [Settings] Load Default Json Settings from C:\Program Files (x86)\Steam\steamapps\common\SteamVR\drivers\lighthouse\resources\settings\default.vrsettings
Tue Jan 17 2023 13:05:32.087 - [Settings] Load Default Json Settings from C:\Program Files (x86)\Steam\steamapps\common\SteamVR\drivers\null\resources\settings\default.vrsettings
Tue Jan 17 2023 13:05:32.087 - [Settings] Load Default Json Settings from C:\Program Files (x86)\Steam\steamapps\common\SteamVR\resources\settings\default.vrsettings
Tue Jan 17 2023 13:05:32.088 - [Settings] Load Json Settings from c:\fake_app_container_config_path\steamvr.vrsettings
Tue Jan 17 2023 13:05:32.090 - [Settings] Load Default Json Settings from C:\Program Files (x86)\Steam\steamapps\common\SteamVR\drivers\htc\resources\settings\default.vrsettings
Tue Jan 17 2023 13:05:32.090 - [Settings] Load Default Json Settings from C:\Program Files (x86)\Steam\steamapps\common\SteamVR\drivers\lighthouse\resources\settings\default.vrsettings
Tue Jan 17 2023 13:05:32.091 - [Settings] Load Default Json Settings from C:\Program Files (x86)\Steam\steamapps\common\SteamVR\drivers\null\resources\settings\default.vrsettings
Tue Jan 17 2023 13:05:32.091 - [Settings] Load Default Json Settings from C:\Program Files (x86)\Steam\steamapps\common\SteamVR\resources\settings\default.vrsettings
Tue Jan 17 2023 13:05:32.092 - [Settings] Load Json Settings from c:\fake_app_container_config_path\steamvr.vrsettings
[SK diagnostic] available: XR_KHR_vulkan_enable
[SK diagnostic] available: XR_KHR_vulkan_enable2
[SK diagnostic] available: XR_KHR_D3D12_enable
[SK diagnostic] available: XR_KHR_opengl_enable
[SK diagnostic] available: XR_EXT_win32_appcontainer_compatible
[SK diagnostic] available: XR_KHR_binding_modification
[SK diagnostic] available: XR_KHR_visibility_mask
[SK diagnostic] available: XR_EXT_dpad_binding
[SK diagnostic] available: XR_EXT_frame_composition_report
[SK diagnostic] available: XR_EXT_hand_joints_motion_range
[SK diagnostic] available: XR_FB_display_refresh_rate
[SK diagnostic] available: XR_HTC_vive_cosmos_controller_interaction
[SK diagnostic] available: XR_HTC_vive_focus3_controller_interaction
[SK diagnostic] available: XR_MND_headless
[SK diagnostic] available: XR_VALVE_analog_threshold
[SK diagnostic] available: XR_HTCX_vive_tracker_interaction
[SK diagnostic] available: XR_EXT_debug_utils
[SK diagnostic] REQUESTED: XR_KHR_D3D11_enable
[SK diagnostic] REQUESTED: XR_KHR_win32_convert_performance_counter_time
[SK diagnostic] REQUESTED: XR_KHR_composition_layer_depth
[SK diagnostic] REQUESTED: XR_EXT_hand_tracking
[SK diagnostic] REQUESTED: XR_EXT_hp_mixed_reality_controller
[SK diagnostic] REQUESTED: XR_EXT_palm_pose
Tue Jan 17 2023 13:05:32.095 - Failed to find interface 'IVRPathsInternal_001'
Tue Jan 17 2023 13:05:32.095 - Failed to find interface 'IVRServer_XXX'
Tue Jan 17 2023 13:05:32.095 - Failed to find interface 'IVRSystemLayerInternal_XXX'
Tue Jan 17 2023 13:05:32.096 - //==============================================================================================
Tue Jan 17 2023 13:05:32.096 - ================================================================================================
Tue Jan 17 2023 13:05:32.096 - ================================================================================================
Tue Jan 17 2023 13:05:32.096 - DutchSkies.exe 1.23.7 startup with PID=1544, config=c:\fake_app_container_config_path, runtime=C:\Program Files (x86)\Steam\steamapps\common\SteamVR\
Tue Jan 17 2023 13:05:32.096 - vrclient type=VRApplication_OpenXRInstance
Tue Jan 17 2023 13:05:32.102 - [Settings] Load Default Json Settings from C:\Program Files (x86)\Steam\steamapps\common\SteamVR\drivers\htc\resources\settings\default.vrsettings
Tue Jan 17 2023 13:05:32.102 - [Settings] Load Default Json Settings from C:\Program Files (x86)\Steam\steamapps\common\SteamVR\drivers\lighthouse\resources\settings\default.vrsettings
Tue Jan 17 2023 13:05:32.103 - [Settings] Load Default Json Settings from C:\Program Files (x86)\Steam\steamapps\common\SteamVR\drivers\null\resources\settings\default.vrsettings
Tue Jan 17 2023 13:05:32.104 - [Settings] Load Default Json Settings from C:\Program Files (x86)\Steam\steamapps\common\SteamVR\resources\settings\default.vrsettings
Tue Jan 17 2023 13:05:32.105 - [Settings] Load Json Settings from c:\fake_app_container_config_path\steamvr.vrsettings
Tue Jan 17 2023 13:05:32.106 - WaitNamedPipe SteamVR_Namespace failed because no one is listening at that name.
Tue Jan 17 2023 13:05:32.107 - Not starting vrserver inside app container.
Tue Jan 17 2023 13:05:32.107 - Skipping starting apps because we're in an app container
Error [GENERAL | xrCreateInstance | OpenXR-Loader] : LoaderInstance::CreateInstance chained CreateInstance call failed
'DutchSkies.exe' (Win32): Unloaded 'C:\Windows\System32\tdh.dll'
'DutchSkies.exe' (Win32): Unloaded 'C:\Windows\System32\opengl32.dll'
'DutchSkies.exe' (Win32): Unloaded 'C:\Windows\System32\glu32.dll'
'DutchSkies.exe' (Win32): Unloaded 'C:\Windows\System32\winmm.dll'
'DutchSkies.exe' (Win32): Unloaded 'C:\Windows\System32\version.dll'
'DutchSkies.exe' (Win32): Unloaded 'C:\Windows\System32\vcruntime140_1.dll'
'DutchSkies.exe' (Win32): Unloaded 'C:\Windows\System32\msvcp140.dll'
'DutchSkies.exe' (Win32): Unloaded 'C:\Windows\System32\vcruntime140.dll'
'DutchSkies.exe' (Win32): Unloaded 'C:\Windows\System32\wldp.dll'
'DutchSkies.exe' (Win32): Unloaded 'C:\Windows\System32\windows.storage.dll'
'DutchSkies.exe' (Win32): Unloaded 'C:\Windows\System32\shlwapi.dll'
'DutchSkies.exe' (Win32): Unloaded 'C:\Windows\System32\shell32.dll'
'DutchSkies.exe' (Win32): Unloaded 'C:\Windows\System32\wtsapi32.dll'
'DutchSkies.exe' (Win32): Unloaded 'C:\Windows\System32\setupapi.dll'
'DutchSkies.exe' (Win32): Unloaded 'C:\Program Files (x86)\Steam\steamapps\common\SteamVR\bin\vrclient_x64.dll'
Error [GENERAL | xrCreateInstance | OpenXR-Loader] : xrCreateInstance failed
[SK info] Couldn't create OpenXR instance [XR_ERROR_RUNTIME_FAILURE], is OpenXR installed and set as the active runtime?
'DutchSkies.exe' (Win32): Loaded 'C:\Windows\System32\ResourcePolicyClient.dll'. Skipped loading symbols. Module is native, and native debugging is currently disabled.
'DutchSkies.exe' (Win32): Unloaded 'C:\Windows\System32\ResourcePolicyClient.dll'
onecore\windows\directx\database\helperlibrary\lib\perappusersettingsqueryimpl.cpp(148)\dxgi.dll!00007FFB5EF61A6B: (caller: 00007FFB5EF3E332) ReturnHr(1) tid(4abc) 80070005 Access is denied.
onecore\windows\directx\database\helperlibrary\lib\perappusersettingsqueryimpl.cpp(108)\dxgi.dll!00007FFB5EF61B34: (caller: 00007FFB5EF3E332) ReturnHr(2) tid(4abc) 80070005 Access is denied.
onecore\windows\directx\database\helperlibrary\lib\perappusersettingsqueryimpl.cpp(98)\dxgi.dll!00007FFB5EF61805: (caller: 00007FFB5EF2DF01) ReturnHr(3) tid(4abc) 80070005 Access is denied.
onecore\windows\directx\database\helperlibrary\lib\directxdatabasehelper.cpp(1410)\dxgi.dll!00007FFB5EF61925: (caller: 00007FFB5EF2DF01) ReturnHr(4) tid(4abc) 8000FFFF Catastrophic failure
onecore\windows\directx\database\helperlibrary\lib\perappusersettingsqueryimpl.cpp(148)\dxgi.dll!00007FFB5EF61A6B: (caller: 00007FFB5EF4BC56) ReturnHr(5) tid(4abc) 80070005 Access is denied.
onecore\windows\directx\database\helperlibrary\lib\perappusersettingsqueryimpl.cpp(108)\dxgi.dll!00007FFB5EF61B34: (caller: 00007FFB5EF4BC56) ReturnHr(6) tid(4abc) 80070005 Access is denied.
onecore\windows\directx\database\helperlibrary\lib\directxdatabasehelper.cpp(1354)\dxgi.dll!00007FFB5EF4BCCD: (caller: 00007FFB5EF4CFFF) ReturnHr(7) tid(4abc) 80070005 Access is denied.
onecore\windows\directx\database\helperlibrary\lib\directxdatabasehelper.cpp(516)\dxgi.dll!00007FFB5EF4D078: (caller: 00007FFB5EF4C163) ReturnHr(8) tid(4abc) 80070005 Access is denied.
'DutchSkies.exe' (Win32): Loaded 'C:\Windows\System32\windows.storage.dll'. Skipped loading symbols. Module is native, and native debugging is currently disabled.
'DutchSkies.exe' (Win32): Loaded 'C:\Windows\System32\wldp.dll'. Skipped loading symbols. Module is native, and native debugging is currently disabled.
'DutchSkies.exe' (Win32): Loaded 'C:\Windows\System32\shlwapi.dll'. Skipped loading symbols. Module is native, and native debugging is currently disabled.
onecore\windows\directx\database\helperlibrary\lib\directxdatabasehelper.cpp(383)\dxgi.dll!00007FFB5EF4B5D7: (caller: 00007FFB5EF49722) ReturnHr(9) tid(4abc) 80070005 Access is denied.
'DutchSkies.exe' (Win32): Loaded 'C:\Windows\System32\DriverStore\FileRepository\nvdmwi.inf_amd64_4fc110e8bf8c1c7d\nvdlistx.dll'. Skipped loading symbols. Module is native, and native debugging is currently disabled.
'DutchSkies.exe' (Win32): Loaded 'C:\Windows\System32\version.dll'. Skipped loading symbols. Module is native, and native debugging is currently disabled.
'DutchSkies.exe' (Win32): Unloaded 'C:\Windows\System32\version.dll'
'DutchSkies.exe' (Win32): Unloaded 'C:\Windows\System32\DriverStore\FileRepository\nvdmwi.inf_amd64_4fc110e8bf8c1c7d\nvdlistx.dll'
'DutchSkies.exe' (Win32): Loaded 'C:\Windows\System32\DriverStore\FileRepository\nvdmwi.inf_amd64_4fc110e8bf8c1c7d\nvldumdx.dll'. Skipped loading symbols. Module is native, and native debugging is currently disabled.
'DutchSkies.exe' (Win32): Loaded 'C:\Windows\System32\version.dll'. Skipped loading symbols. Module is native, and native debugging is currently disabled.
'DutchSkies.exe' (Win32): Loaded 'C:\Windows\System32\msasn1.dll'. Skipped loading symbols. Module is native, and native debugging is currently disabled.
'DutchSkies.exe' (Win32): Loaded 'C:\Windows\System32\cryptnet.dll'. Skipped loading symbols. Module is native, and native debugging is currently disabled.
'DutchSkies.exe' (Win32): Loaded 'C:\Windows\System32\drvstore.dll'. Skipped loading symbols. Module is native, and native debugging is currently disabled.
'DutchSkies.exe' (Win32): Loaded 'C:\Windows\System32\cryptbase.dll'. Skipped loading symbols. Module is native, and native debugging is currently disabled.
'DutchSkies.exe' (Win32): Loaded 'C:\Windows\System32\wintrust.dll'. Skipped loading symbols. Module is native, and native debugging is currently disabled.
'DutchSkies.exe' (Win32): Loaded 'C:\Windows\System32\imagehlp.dll'. Skipped loading symbols. Module is native, and native debugging is currently disabled.
'DutchSkies.exe' (Win32): Loaded 'C:\Windows\System32\rsaenh.dll'. Skipped loading symbols. Module is native, and native debugging is currently disabled.
'DutchSkies.exe' (Win32): Loaded 'C:\Windows\System32\DriverStore\FileRepository\nvdmwi.inf_amd64_4fc110e8bf8c1c7d\nvwgf2umx.dll'. Skipped loading symbols. Module is native, and native debugging is currently disabled.
'DutchSkies.exe' (Win32): Loaded 'C:\Windows\System32\shell32.dll'. Skipped loading symbols. Module is native, and native debugging is currently disabled.
'DutchSkies.exe' (Win32): Loaded 'C:\Windows\System32\winmm.dll'. Skipped loading symbols. Module is native, and native debugging is currently disabled.
'DutchSkies.exe' (Win32): Loaded 'C:\Windows\System32\DriverStore\FileRepository\nvdmwi.inf_amd64_4fc110e8bf8c1c7d\NvCamera\NvCameraAllowlisting64.dll'. Skipped loading symbols. Module is native, and native debugging is currently disabled.
'DutchSkies.exe' (Win32): Unloaded 'C:\Windows\System32\DriverStore\FileRepository\nvdmwi.inf_amd64_4fc110e8bf8c1c7d\NvCamera\NvCameraAllowlisting64.dll'
The thread 0x1f10 has exited with code 0 (0x0).
'DutchSkies.exe' (Win32): Loaded 'C:\Windows\System32\DXCore.dll'. Skipped loading symbols. Module is native, and native debugging is currently disabled.
[SK diagnostic] [sk_gpu] Using Direct3D 11: vendor 0x10DE, device 0x1F36
[SK diagnostic] [sk_gpu] Device: NVIDIA Quadro RTX 3000
[SK diagnostic] Starting a stereo display
[SK info] Couldn't create a stereo display, falling back to flatscreen
[SK diagnostic] Starting a flatscreen display
'DutchSkies.exe' (Win32): Loaded 'C:\Windows\System32\OneCoreUAPCommonProxyStub.dll'. Skipped loading symbols. Module is native, and native debugging is currently disabled.
'DutchSkies.exe' (Win32): Loaded 'C:\Windows\System32\msctf.dll'. Skipped loading symbols. Module is native, and native debugging is currently disabled.
'DutchSkies.exe' (Win32): Loaded 'C:\Windows\System32\Windows.Shell.ServiceHostBuilder.dll'. Skipped loading symbols. Module is native, and native debugging is currently disabled.
'DutchSkies.exe' (Win32): Loaded 'C:\Windows\System32\execmodelproxy.dll'. Skipped loading symbols. Module is native, and native debugging is currently disabled.
'DutchSkies.exe' (Win32): Loaded 'C:\Windows\System32\UiaManager.dll'. Skipped loading symbols. Module is native, and native debugging is currently disabled.
'DutchSkies.exe' (Win32): Loaded 'C:\Windows\System32\Windows.UI.Core.TextInput.dll'. Skipped loading symbols. Module is native, and native debugging is currently disabled.
'DutchSkies.exe' (Win32): Loaded 'C:\Windows\System32\Windows.Graphics.dll'. Skipped loading symbols. Module is native, and native debugging is currently disabled.
'DutchSkies.exe' (Win32): Loaded 'C:\Windows\System32\DriverStore\FileRepository\iigd_dch.inf_amd64_d0b39b11619fd0c4\igd10iumd64.dll'. Skipped loading symbols. Module is native, and native debugging is currently disabled.
'DutchSkies.exe' (Win32): Loaded 'C:\Windows\System32\apphelp.dll'. Skipped loading symbols. Module is native, and native debugging is currently disabled.
'DutchSkies.exe' (Win32): Loaded 'C:\Windows\System32\DriverStore\FileRepository\iigd_dch.inf_amd64_d0b39b11619fd0c4\igdgmm64.dll'. Skipped loading symbols. Module is native, and native debugging is currently disabled.
'DutchSkies.exe' (Win32): Loaded 'C:\Windows\System32\DriverStore\FileRepository\iigd_dch.inf_amd64_d0b39b11619fd0c4\igc64.dll'. Skipped loading symbols. Module is native, and native debugging is currently disabled.
'DutchSkies.exe' (Win32): Loaded 'C:\Windows\System32\dcomp.dll'. Skipped loading symbols. Module is native, and native debugging is currently disabled.
'DutchSkies.exe' (Win32): Loaded 'C:\Windows\System32\dwmapi.dll'. Skipped loading symbols. Module is native, and native debugging is currently disabled.
[SK diagnostic] Created swapchain: 1280x720 color:rgba32_linear depth:depth16
[SK diagnostic] Initializing Audio
'DutchSkies.exe' (Win32): Loaded 'C:\Windows\System32\Windows.Media.Devices.dll'. Skipped loading symbols. Module is native, and native debugging is currently disabled.
'DutchSkies.exe' (Win32): Loaded 'C:\Windows\System32\AudioSes.dll'. Skipped loading symbols. Module is native, and native debugging is currently disabled.
'DutchSkies.exe' (Win32): Loaded 'C:\Windows\System32\powrprof.dll'. Skipped loading symbols. Module is native, and native debugging is currently disabled.
'DutchSkies.exe' (Win32): Loaded 'C:\Windows\System32\umpdc.dll'. Skipped loading symbols. Module is native, and native debugging is currently disabled.
[SK diagnostic] ISAC audio backend not available, falling back to miniaudio! It's likely the device doesn't have Windows Sonic enabled, which can be found under Settings->Sound->Device Properties->Spatial Sound.
'DutchSkies.exe' (Win32): Loaded 'C:\Windows\System32\ResourcePolicyClient.dll'. Skipped loading symbols. Module is native, and native debugging is currently disabled.
The thread 0x4f78 has exited with code 0 (0x0).
The thread 0x5010 has exited with code 0 (0x0).
[SK info] Using audio backend: WASAPI
[SK diagnostic] Initializing Defaults
[SK diagnostic] Initializing World
[SK diagnostic] Initializing Sprites
[SK diagnostic] Initializing Lines
[SK diagnostic] Initializing UI
[SK diagnostic] Initializing Renderer
[SK diagnostic] Initializing Physics
[SK diagnostic] Initializing Input
[SK info] Initialization successful
**__imp__#15604**(...) returned null.

I did ship Device.Name in v0.3.7-preview.8. Does that satisfy the need here?

Not directly related to StereoKit itself, but I see that on HoloLens 2 the Device.Name value is "Windows Mixed Reality" (and not something like "HoloLens 2"). Is that to be expected?

Device.Name on UWP simulator might have a bug? I'll peek at that!
Device.Name is likely going to be somewhat generic on some runtimes! I don't believe I've seen WMR report anything else, but I think Oculus gives a bit more detail in this field.
OpenXR has always been about reporting capabilities and not platforms, so it could be a somewhat philosophical decision on their part to not be more specific!