Mumble bridge locks audio down to CELT

Describe the bug
The mumble bridge connects without advertising Opus support, which downgrades the audio codec to CELT for everyone.
To Reproduce
Configure matterbridge to bridge a mumble room, notice how when the bridge is connected the server codec under Server -> Information switches to CELT 0.7.0, while if it isn't connected it uses Opus.
Expected behavior
Matterbridge should advertise Opus support when connecting.
Screenshots/debug logs

Use logs from running matterbridge -debug if possible.
Deferring to @kmein
Environment (please complete the following information):

OS: NixOS 21.11
Matterbridge version: 1.22.3
If self compiled: output of git rev-parse HEAD

Additional context
Please add your configuration file  (be sure to exclude or anonymize private data (tokens/passwords))
Deferering to @kmein

Sorry, wrong version. We were using 1.19.0 and it appears to be fixed with 1.22.3.

Correction. It worked because we forced the server to use mumble and that worked fine. When we stop forcing Opus then Matterbridge then the bridge forces everyone back to CELT.

@s3lph do you have an idea?

Hm it appears that the only currently available option to enable Opus support is to actually enable the Opus codec in gumble, which pulls in an entirely new dependency (github.com/layeh/gopus, a Go wrapper around the Opus C implementation). Enabling Opus support is as simple as adding a single import:
diff --git a/bridge/mumble/mumble.go b/bridge/mumble/mumble.go
index 2281d1c2..7c48c991 100644
--- a/bridge/mumble/mumble.go
+++ b/bridge/mumble/mumble.go
@@ -12,6 +12,7 @@ import (

        "layeh.com/gumble/gumble"
        "layeh.com/gumble/gumbleutil"
+       _ "layeh.com/gumble/opus"

        "github.com/42wim/matterbridge/bridge"
        "github.com/42wim/matterbridge/bridge/config"

I'm not quite sure whether I'm doing something wrong, but building the Opus library seems to not work properly with vendoring (the opus-1.1.2 source is checked into the gopus repo):
~/go/src/github.com/42wim/matterbridge $ go build
# layeh.com/gopus
vendor/layeh.com/gopus/opus_nonshared.go:9:11: fatal error: opus-1.1.2/config.h: No such file or directory
    9 | // #include "opus-1.1.2/config.h"
      |             ^~~~~~~~~~~~~~~~~~~~~
compilation terminated.

I see 3 potential ways going forward. Personally, I'm not a huge fan of introducting this actually completely unnecessary dependency (since we're not processing any audio). :

We get gopus to build. @42wim do you have any ideas how to fix this? I'm not really familiar with Go's build system. If this is easy to fix, this is the most simple solution for this issue.
We don't use gopus, but provide a stub codec that claims to implement Opus. Rather ugly, but I implemented this as a POC and it's working.
We open a PR on Gumble adding an option that would allow us to explicitly set the "Opus supported" flag without requiring to pull in the Opus dependency.

@42wim any thoughts?

@s3lph thanks for looking into this, as gopus is requiring CGO, this is something I rather not do, want to keep matterbridge pure go as possible.
I think option 3 is the cleanest if you're willing to do this, but I'm also fine with option 2 if that's less work :)

https://github.com/layeh/gumble/pull/61

Fixed by #1764


feat(auth): grant continue request

Changes proposed in this pull request

Closes #269

Context

Checklist

[ ] Related issues linked using fixes #number
[ ] Tests added/updated
[ ] Documentation added
[ ] Make sure that all checks pass

Will change the base to main once https://github.com/interledger/rafiki/pull/370 is merged in.

OpenAPI validation will fail in the auth tests until https://github.com/interledger/open-payments/pull/143 is merged in.


add yaml

This pr builds a yaml file for Spring library reference to support the Intellij plugin for Azure SDK reference.
The yaml follows structure of Spring Initializr's library mapping schema and thus contains all keys under property of dependencies to describe a library. For those blank or meaningless values, we reserve them in case of further usage.
After discussing with @stliu and @wangmingliang-ms ,hierarchy of yaml is organized as : Service -> Feature -> Package. Taking cosmosdb starter as example, it is described as Cosmos DB -> Spring Data Cosmos -> azure-spring-boot-starter-cosmos. For the value of service and feature:

For spring library that has underlying package in java-packages.csv, we use its underlying library's ServiceName and DisplayName as the service and feature.
For the rest like aad starter, we create the service and feature value ourselves and also try to follow the specification as java-pacakges.csv.

@saragluna and @chenrujun , please help to check the values of each Spring library, thanks~

@backwind1233


Bug: Cannot "keep updated" when exporting library

Debug log ID
7V7YK3CD-euc
What happened?
When I try to export a library with the "Better BibTeX" format I do not have the option to "Keep updated".

Uncheck "export files". You cannot export files for a "keep updated" export.

That solves it. Thank you for educating me.


Testing deployment script on new machine

This introduces a deployment script for working with secrets.
Notes:

Not sure about the process for deploying alerts at the moment, since it's not running on Docker on the existing machine I'm replicating.
Also not sure about the process for deploying to a new hostname.  Didn't want to push that and accidentally replace the existing API, @ericboucher if you could advise.

I think pushing the hostname is fine, nothing should happen unless we change it on the DNS side as well

Here's where we're at:

We can build and deploy using AWS Secrets running in EC2, without having to manually pass around keys
The instance is up and running and the deploy command has been run

Some open questions/issues:

There's an issue running code coverages tests, that I've filed here.  Seems to be present in master as well for the code coverage, so not addressing as part of this ticket.
It's not clear what should be able to be tested and when.  Seems like we generally align to not testing the use of external services until we deploy.  Which is outside of the scope of this ticket, but does make it difficult to know if I'm surfacing new or existing issues while developing.  I've kept the secrets to only be required when deploying, not when developing, although that means some functionality won't be available without us passing around ENV vars.
What if anything about the alerts DB changes with a new deployment?
And the DNS needs to be changed to point at a new EC2 instance.

For now, I've run the deployment commands and it is up-and-running at <IP_ADDRESS>.
@ericboucher could you advise on points 3 and 4?


Add random secret (in vault) for presto cluster communication

A random secret is required for cluster communication in presto.
This secret should be added to vault and used by presto by referencing vault in a template stanza.

it could be done via ansible tasks

So we mean to replace this hardcoded cluster secret?
https://github.com/fredrikhgrelland/terraform-nomad-presto/blob/f7dedcb09f20d151b15cf0bf779d88794d3e523d/example/main.tf#L6

Inorder to use vault stanza in nomad jobs to retrieve secrets need to have vault integration with nomad in place as sited by Ole Andre in the following issue :Nomad needs to be vault integrated in order to use vault interpolations in jobs.
Without this integration in place, i end up getting the following error:
stderr:
Error: error applying jobspec: Unexpected response code: 500 (Vault not enabled and Vault policies requested)

  on ../main.tf line 57, in resource "nomad_job" "nomad_job_presto":
  57: resource "nomad_job" "nomad_job_presto" {

Workaround :
Trying out :https://github.com/fredrikhgrelland/vagrant-hashistack/issues/380#issuecomment-704769756


Delete acmecorp.json in favor of peoplefinder.json

@gertd @authereal is this still required?

@gertd @authereal is this still required?

As I understand it, acmecorp.json is now obsolete since @ogazitt updated the peoplefinder.json


Make TestKanikoTaskRun more portable

Changes
This test could, previously, only run on specific environment, and
would depend on GCP on the CI. This is not more the case with this
changes as it is now able to run on any kubernetes.
We start a registry in the same namespace the test happens, and we
push build/push the image on this local registry. To validate the
digest, we need to run a new pod using skopeo and jq to get the
remote digest.
Marking it as wip for now as it needs a little bit of refactoring :angel:
Signed-off-by: Vincent Demeester<EMAIL_ADDRESS>/cc @afrittoli @bobcatfish @ImJasonH
Submitter Checklist
These are the criteria that every PR should meet, please check them off as you
review them:

[x] Includes tests (if functionality changed/added)
[ ] Includes docs (if user facing)
[x] Commit messages follow commit message best practices

See the contribution guide for more details.
Double check this list of stuff that's easy to miss:

If you are adding a new binary/image to the cmd dir, please update
the release Task to build and release this image.

/approve


unionfind: robustly avoid changing Idxs in the GVN map

Stop hoping that keeping the smallest Idx as canonical will yield good results, and instead explicitly inform the UnionFind of what we expect not to move.
Fixes #6126
I attempted running the sightglass benchmark on this, but I think my setup was too noisy – any differences in performance disappeared when I re-ran the specific benchmark on which the difference was reported (though I only did it manually for the few first reported differences).

cc @cfallin

I attempted running the sightglass benchmark on this, but I think my setup was too noisy – any differences in performance disappeared when I re-ran the specific benchmark on which the difference was reported (though I only did it manually for the few first reported differences).

Are you on linux? If so you can try measuring instructions retired (pass -m insts-retired), which is much much less noisy. I can usually get good results with just a single process and ten iterations.

Although I haven't carefully reviewed this PR, I'm cautiously optimistic about it. The filetest changes look promising and the general approach feels plausible. Making use of a magic value for "rank" is a clever way to get this behavior almost for free out of an otherwise-standard union-find implementation.
I agree with @fitzgen that it feels unsatisfying to have the case of merging two pinned IDs just print a warning. But it's better than the status quo where we get the same result without any indication that something went wrong.
At worst, this PR would be a good starting point for evaluating how often we have this problem in practice. My guess is we don't see #6126 come up very often in normal use of Cranelift, in which case it's good that this PR is a very small change, algorithmically speaking. But maybe my guess is wrong and it'd be nice to discover that.
I would also be interested to know what fraction of nodes in the union-find do not get pinned with this PR. If we pinned everything before merging, this approach would just warn on every merge. If we merge things and then pin them afterward though, that's fine. I can't really focus right now to picture how this works out but it'd be nice to develop a better understanding.
@meithecatte, if you're using Linux and want lower-variance performance measurements, I've documented the rather extreme measures I use to isolate a CPU core for benchmarks. You don't need performance measurements to justify merging this PR, but if there's a measurable improvement, that's definitely a nice extra argument in favor.

I agree with @fitzgen that it feels unsatisfying to have the case of merging two pinned IDs just print a warning. But it's better than the status quo where we get the same result without any indication that something went wrong.

If it's any consolation, this happening is in the "missed optimization" category, and won't cause a miscompilation or ICE. See https://github.com/bytecodealliance/wasmtime/issues/6126#issuecomment-1490776800

I would also be interested to know what fraction of nodes in the union-find do not get pinned with this PR. If we pinned everything before merging, this approach would just warn on every merge. If we merge things and then pin them afterward though, that's fine. I can't really focus right now to picture how this works out but it'd be nice to develop a better understanding.

The test suite passes if I replace the log::warn with a panic. I've convinced myself that the only situation in which we union two pinned eclasses, is if there's a rewrite rule (or a chain of them) that lets us derive A -> B, and separately A -> C, and yet there's no way to go B -> C nor C -> B in isolation. Intuitively, it seems unlikely that we would have rules where this could arise, but the problem of analyzing a ruleset to reliably decide if it's possible seems like a thesis.

So, it looks like the warn! isn't shown during cargo test, and in normal runs needs an explicit RUST_LOG=warn or higher. Sounds like the likelyhood of the warning being seen is quite low. I suppose that one option would be to have this be a debug_assert! – scream if we're in debug mode (i.e. someone's probably observing), carry on if we're in release mode (i.e. probably deployed somewhere).
I also tried running the benchmarks as -m insts-retired, as you suggested. This ended as follows:
~/src/sightglass$ time cargo run -- benchmark -m insts-retired --small-workloads --processes 1 --engine /tmp/wasmtime_main.so --engine ~/dev/wasmtime/target/release/libwasmtime_bench_api.so -- benchmarks/all.suite
warning: virtual workspace defaulting to `resolver = "1"` despite one or more workspace members being on edition 2021 which implies `resolver = "2"`
note: to keep the current resolver, specify `workspace.resolver = "1"` in the workspace root's manifest
note: to use the edition 2021 resolver, specify `workspace.resolver = "2"` in the workspace root's manifest
note: for more details see https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions
    Finished dev [unoptimized + debuginfo] target(s) in 0.06s
     Running `target/debug/sightglass-cli benchmark -m insts-retired --small-workloads --processes 1 --engine /tmp/wasmtime_main.so --engine /home/maya/dev/wasmtime/target/release/libwasmtime_bench_api.so -- benchmarks/all.suite`
Error: The variance of one of the samples is zero

real	8m15.667s
user	13m56.404s
sys	4m19.762s

Thanks for tackling this @meithecatte ! As @fitzgen noted, I'm still on parental leave until Feb 12 so I can't review anything properly until then, but I'm watching email and will try not to block things when my input is useful!
I'd agree that this is generally a good approach, with the caveat that we must not warn, and especially not debug-assert, if two pinned values are union'd. As @meithecatte noted, analyzing the rules to prove this can't occur is a hard problem and above the abstraction level we likely want to work at. This case shouldn't happen in normal use (values numbered sequentially as built, rules generally rewriting toward better expressions), but compilation is still correct if it does happen (as noted in this comment that @meithecatte linked), and moreover the entire point of aegraphs is to approximate egraphs with lower cost -- this means that we can expect suboptimal outcomes in some cases (this is the price we pay for no fixpoint loop).
So, since it can happen in normal operation, and is not incorrect, we must not panic (even in a debug build), and we probably shouldn't warn -- that has the potential to create a log-storm issue at the most inopportune time (e.g. a DoS vector in production where the compiler was happy before). My vote would be to choose the lower ID to break the tie, as we do today, but either choice should be valid I think.

So, since it can happen in normal operation, and is not incorrect, we must not panic (even in a debug build), and we probably shouldn't warn -- that has the potential to create a log-storm issue at the most inopportune time (e.g. a DoS vector in production where the compiler was happy before).

Good point. Perhaps something like the Linux kernel's WARN_ONCE?

My vote would be to choose the lower ID to break the tie, as we do today, but either choice should be valid I think.

Perhaps it indeed makes sense to use this as a heuristic.

I'd agree that this is generally a good approach, with the caveat that we must not warn, and especially not debug-assert, if two pinned values are union'd. As @meithecatte noted, analyzing the rules to prove this can't occur is a hard problem and above the abstraction level we likely want to work at. This case shouldn't happen in normal use (values numbered sequentially as built, rules generally rewriting toward better expressions), but compilation is still correct if it does happen (as noted in https://github.com/bytecodealliance/wasmtime/issues/6126#issuecomment-1490776800 that @meithecatte linked), and moreover the entire point of aegraphs is to approximate egraphs with lower cost -- this means that we can expect suboptimal outcomes in some cases (this is the price we pay for no fixpoint loop).

Indeed, though I'd argue that this case triggering would probably mean that there's a reasonable rewrite rule that we haven't implemented. I don't know about you, but I'd like to know if it happened.

Indeed, though I'd argue that this case triggering would probably mean that there's a reasonable rewrite rule that we haven't implemented. I don't know about you, but I'd like to know if it happened.

Sure, agreed it would be nice to get this information! In my mind, it looks more like a "compiler stat", like a regalloc spill, or a worst-case fallback isel rule firing: regrettable, but not rising to the level of warn!. Remember that we have a lot of embedders of wasmtime in, e.g., server runtimes and game engines and such, and folks may, e.g., pipe warnings to devops folks (Slack channels and such); an "I should address this" missing optimization to the compiler engineer is a far cry from a "disk is almost full" or "frame dropped" message or something like that.
Or another way perhaps: it is an implementation quality signal rather than a runtime urgency signal. Warnings should occur when the person operating the software might want to take some action, not when the compiler engineer might want to add an optimization.
We have a nascent "stats framework" idea, which appears in the aegraphs framework and in regalloc2 as well; perhaps "two pinned values union'd" is another stat event and whenever we go fishing for optimization work to do, we notice if the value is nonzero?

We have a nascent "stats framework" idea, which appears in the aegraphs framework and in regalloc2 as well; perhaps "two pinned values union'd" is another stat event and whenever we go fishing for optimization work to do, we notice if the value is nonzero?

Okay, you've convinced me, I made it a stat. It's a bit of a hack at the moment – should I pass in a &mut Stats as a separate argument to union instead? Doing it this way seemed less ugly...

Okay, you've convinced me, I made it a stat. It's a bit of a hack – should I pass in a &mut Stats as a separate argument to union instead? Doing it this way seemed less ugly...

Yeah, I think your approach is perfectly reasonable, and better than trying to pass the whole stats struct in repeatedly.

Looks good to me too! I'll allow someone else to do the detailed review since I'm still technically on leave but all my concerns are addressed :-)

@meithecatte would you mind rebasing on the latest main, just to be sure everything is still good (since some other egraphs-related changes have been made in the meantime)?
Sorry for the delay on this; I'm back from leave officially tomorrow and will review and merge if tests are green.

@meithecatte would you mind rebasing on the latest main, just to be sure everything is still good (since some other egraphs-related changes have been made in the meantime)?

Sure thing! No conflicts, and the tests passed on my end.

Sorry for the delay on this; I'm back from leave officially tomorrow and will review and merge if tests are green.

Don't worry, I don't mind.


Cilium Envoy Config CRD

WIP
This builds on top of #18748.
<!-- Enter the release note text here if needed or remove this section! -->

/test

/test

/test

/test

Upgrade/downgrade tests will keep on failing until 1.11 is released with recently merged backport (https://github.com/cilium/cilium/pull/18800)

superseded by https://github.com/cilium/cilium/pull/18894. closing.


vim crashes with glibc relocation error

Issue description
Trying to run vim_configurable on the unstable channel results in:
vim: relocation error: /nix/store/jh5w04046mfpl6i7mcfd0xp6cgz1xi7s-glibc-2.25/lib/libresolv.so.2: symbol __res_maybe_init, version GLIBC_PRIVATE not defined in file libc.so.6 with link time reference
Steps to reproduce
nix-shell -p vim_configurable
run vim in nix-shell
Technical details

system: "x86_64-linux"
host os: Linux 4.14.24, NixOS, 18.03pre130932.cc4677c36ee (Impala)
multi-user?: yes
sandbox: yes
version: nix-env (Nix) 2.0
channels(root): "nixos-18.03pre130932.cc4677c36ee"
channels(nixtest): ""
nixpkgs: /nix/var/nix/profiles/per-user/root/channels/nixos/nixpkgs

Could not reproduce.
[localhost] git log | head -n 1
commit cc4677c36ee8d880e881459ad114fd2224b3ac1c
[localhost] LD_LIBRARY_PATH=/run/opengl-driver NIX_PATH=nixpkgs=$PWD nix-shell -p vim_configurable --run vim

works for me

Surely unstable isn't still using glibc 2.25?? Try updating your channel?
$ nix run -f channel:nixos-unstable vim -c sh -c 'command -v vim; ldd $(command -v vim)'
/nix/store/m16yg0mdipp48mk0bia19xnk4wyqa9x7-vim-8.0.1451/bin/vim
	linux-vdso.so.1 (0x00007ffdd5564000)
	libm.so.6 => /nix/store/2kcrj1ksd2a14bm5sky182fv2xwfhfap-glibc-2.26-131/lib/libm.so.6 (0x00007f4333685000)
	libncursesw.so.6 => /nix/store/069g827lh3hrhp4vkcq3rsh5jh65pm3l-ncurses-6.0-20171125/lib/libncursesw.so.6 (0x00007f4333418000)
	libdl.so.2 => /nix/store/2kcrj1ksd2a14bm5sky182fv2xwfhfap-glibc-2.26-131/lib/libdl.so.2 (0x00007f4333214000)
	libc.so.6 => /nix/store/2kcrj1ksd2a14bm5sky182fv2xwfhfap-glibc-2.26-131/lib/libc.so.6 (0x00007f4332e62000)
	/nix/store/2kcrj1ksd2a14bm5sky182fv2xwfhfap-glibc-2.26-131/lib/ld-linux-x86-64.so.2 => /nix/store/2kcrj1ksd2a14bm5sky182fv2xwfhfap-glibc-2.26-131/lib64/ld-linux-x86-64.so.2 (0x00007f43339d1000)

Any idea where 2.25 is coming from? Your LD_LIBRARY_PATH, maybe?

All my channels (system and user) are on unstable right now. I ran nix-channel --update and nix-env -u to ensure that my userenv is up to date. It seems that LD_LIBRARY_PATH is the problem. Clearing it solves the problem.
Before clearing it my LD_LIBRARY_PATH is (only nix no individual seetings):
/nix/store/5mm2z9h5yd5sz47gvb2ajy9cdrdx33p7-dbus-1.10.16-lib/lib:/nix/store/zn7bynb1ga8mpyfmpfkrakdm9fgfzwhj-gtk+-2.24.31/lib:/nix/store/g0sldw8m9yxdr2qkwa2fm7g3iznapwss-gconf-2.32.4/lib:/nix/store/drppp523rzzlb0y3pkmk6vjs5418v40p-python-2.7.13/lib:/nix/store/6f73f1hw1frnfqp6bqn12vk1xw2fmjsb-libutempter-1.1.6/lib:/nix/store/qp9llri2ciscw78hdlgmdm8lc4rv5x0r-vte-0.28.2/lib:/nix/store/wnxskmdx7r7kjq6bj908rgzvfxd4naxf-keybinder-0.3.0/lib:/nix/store/abw9a1shahmh2jdmwfmq0kmdlg3f58iy-gnome-common-3.18.0/lib:/run/opengl-driver/lib

from that it ends up with a mixed glibc setting (ldd ``which vim`` | grep glibc)
        libm.so.6 => /nix/store/2kcrj1ksd2a14bm5sky182fv2xwfhfap-glibc-2.26-131/lib/libm.so.6 (0x00007f24c0a40000)
	libdl.so.2 => /nix/store/2kcrj1ksd2a14bm5sky182fv2xwfhfap-glibc-2.26-131/lib/libdl.so.2 (0x00007f24c05cf000)
	libpthread.so.0 => /nix/store/2kcrj1ksd2a14bm5sky182fv2xwfhfap-glibc-2.26-131/lib/libpthread.so.0 (0x00007f24c0183000)
	libutil.so.1 => /nix/store/2kcrj1ksd2a14bm5sky182fv2xwfhfap-glibc-2.26-131/lib/libutil.so.1 (0x00007f24bff80000)
	libc.so.6 => /nix/store/2kcrj1ksd2a14bm5sky182fv2xwfhfap-glibc-2.26-131/lib/libc.so.6 (0x00007f24bfbce000)
	libresolv.so.2 => /nix/store/jh5w04046mfpl6i7mcfd0xp6cgz1xi7s-glibc-2.25/lib/libresolv.so.2 (0x00007f24bac24000)
	librt.so.1 => /nix/store/jh5w04046mfpl6i7mcfd0xp6cgz1xi7s-glibc-2.25/lib/librt.so.1 (0x00007f24ba384000)
	/nix/store/2kcrj1ksd2a14bm5sky182fv2xwfhfap-glibc-2.26-131/lib/ld-linux-x86-64.so.2 => /nix/store/2kcrj1ksd2a14bm5sky182fv2xwfhfap-glibc-2.26-131/lib64/ld-linux-x86-64.so.2 (0x00007f24c2604000)

The problem is caused by the dbus path:
$ ldd /nix/store/5mm2z9h5yd5sz47gvb2ajy9cdrdx33p7-dbus-1.10.16-lib/lib/libdbus-1.so | grep glibc
	libpthread.so.0 => /nix/store/jh5w04046mfpl6i7mcfd0xp6cgz1xi7s-glibc-2.25/lib/libpthread.so.0 (0x00007f9418891000)
	libc.so.6 => /nix/store/jh5w04046mfpl6i7mcfd0xp6cgz1xi7s-glibc-2.25/lib/libc.so.6 (0x00007f94184f2000)
	/nix/store/2kcrj1ksd2a14bm5sky182fv2xwfhfap-glibc-2.26-131/lib64/ld-linux-x86-64.so.2 (0x00007f9418cff000)
	libresolv.so.2 => /nix/store/jh5w04046mfpl6i7mcfd0xp6cgz1xi7s-glibc-2.25/lib/libresolv.so.2 (0x00007f94182dc000)
	librt.so.1 => /nix/store/jh5w04046mfpl6i7mcfd0xp6cgz1xi7s-glibc-2.25/lib/librt.so.1 (0x00007f9417ecf000)
	libm.so.6 => /nix/store/jh5w04046mfpl6i7mcfd0xp6cgz1xi7s-glibc-2.25/lib/libm.so.6 (0x00007f9417bbc000)

Any idea why an old dbus path pops up here (the system version 1.10.24)?

After uninstalling/installing the packages in my userenv, the problem disappeared. I still do not understand why a simple update of channel and environment did not work.
Thanks for the feedback.


error in 7.1.1

Underflow in restore - more restores than save
at android.graphics.Canvas.native_restore(Native Method)

the same error

Underflow in restore - more restores than saves

Same Issue occur on OS 6.0
 Underflow in restore - more restores than saves                                                                                at android.graphics.Canvas.native_restore(Native Method)                                                                                at android.graphics.Canvas.restore(Canvas.java:540)                                                                                at com.andexert.library.RippleView.draw(RippleView.java:166)

Same issue occur on OS 6.0
 Underflow in restore - more restores than saves                                                                                at android.graphics.Canvas.native_restore(Native Method)                                                                                at android.graphics.Canvas.restore(Canvas.java:540)                                                                                at com.andexert.library.RippleView.draw(RippleView.java:166)

use fork https://github.com/patrickpissurno/RippleEffect/
with fix error
tested - all OK

小米4C 7.0系统直接崩溃出现以上错误

I tried the fixed version https://github.com/patrickpissurno/RippleEffect/
It do works! @boomsya


chore(ubuntu-version): change to ubuntu-20.04

Introduction :pencil2:
Include a summary of the changes and related feature(s) or issue(s).
Resolution :heavy_check_mark:
List all changes made to the codebase.
Miscellaneous :heavy_plus_sign:
List any additional fixes or improvements.

@Zainzzkk I think we can close this as tests are still flaky on Ubuntu-22.04 public runner.


upgrade google-tts-api to 0.0.6

upgrades google-tts-api to 0.0.6 to fix breaking api change from google.

Thanks!


UG-651 IT-16525 Re-disable nova_cross_az_attach

This override was disabled in newton due to [1], however this issue has
been resolved in stable/ocata so we can now disable this option in
rcp-openstack's master (ocata).
[1] https://review.openstack.org/#/c/468147/

recheck_cit_xenial_deploy_swift

recheck_cit_artifact_xenial_python
recheck_cit_artifact_xenial_container

echeck_cit_xenial_deploy_swift

recheck_cit_xenial_deploy_swift

recheck_cit_xenial_deploy_swift

recheck_cit_xenial_deploy_swift

recheck cit_xenial_deploy_swift

recheck_cit_xenial_deploy_swift

recheck_cit_xenial_deploy_swift

recheck_cit_xenial_deploy_swift


Update docs to mention new logging package and the standard Go testing framework

@geeknoid: Adding do-not-merge/release-note-label-needed because the release note process has not been followed.

One of the following labels is required "release-note", "release-note-action-required", or "release-note-none".
Please see: https://github.com/kubernetes/community/blob/master/contributors/devel/pull-requests.md#write-release-notes-if-needed.
Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

glog doesn't allow its output to be captured in any way unfortunately.
People have submitted PRs to enable this, but glog is specifically not
taking PRs.
On Fri, Dec 15, 2017 at 4:06 PM, Kuat<EMAIL_ADDRESS>wrote:

@kyessenov commented on this pull request.
In DEV-CONVENTIONS.md
https://github.com/istio/istio/pull/2211#discussion_r157323995:

log messages that may correlate to significant changes in the system.  This is

the recommended default log level for most systems.

Logging HTTP requests and their exit code

System state changing

glog.V(3) - Extended information about changes

More info about system state changes

glog.V(4) - Debug level verbosity (for now)

Logging in particularly thorny parts of code where you may want to come

back later and check it

-As per the comments, the practical production level at runtime is V(2). Developers and QE
-environments may wish to run at V(3) or V(4). If you wish to change the log
-level, you can pass in -v=X where X is the desired maximum level to log.
+Istio code is expected to use the standard Istio logging package.
Imagine, I'm tracing pilot code path. With glog, I can see each step as it
flows through envoy, to pilot, to kubernetes, to etcd, and back. With a new
library, I only get to see the first bits, and then it's glog. I'd hope at
the very least, that we can redirect glog output to istio logger. Does zap
provide such a feature?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/istio/istio/pull/2211#discussion_r157323995, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AVucHeXtek7NxBeFqxXCEYnqTfqSOHdsks5tAwmSgaJpZM4REH04
.

Can we fork glog, and rewire godep import to an internal zap-compatible
package?
On Fri, Dec 15, 2017 at 4:10 PM Martin Taillefer<EMAIL_ADDRESS>wrote:

glog doesn't allow its output to be captured in any way unfortunately.
People have submitted PRs to enable this, but glog is specifically not
taking PRs.
On Fri, Dec 15, 2017 at 4:06 PM, Kuat<EMAIL_ADDRESS>wrote:

@kyessenov commented on this pull request.
In DEV-CONVENTIONS.md
https://github.com/istio/istio/pull/2211#discussion_r157323995:

log messages that may correlate to significant changes in the
system. This is

the recommended default log level for most systems.

Logging HTTP requests and their exit code

System state changing

glog.V(3) - Extended information about changes

More info about system state changes

glog.V(4) - Debug level verbosity (for now)

Logging in particularly thorny parts of code where you may want to
come

back later and check it

-As per the comments, the practical production level at runtime is V(2).
Developers and QE
-environments may wish to run at V(3) or V(4). If you wish to change the
log
-level, you can pass in -v=X where X is the desired maximum level to
log.
+Istio code is expected to use the standard Istio logging package.
Imagine, I'm tracing pilot code path. With glog, I can see each step as
it
flows through envoy, to pilot, to kubernetes, to etcd, and back. With a
new
library, I only get to see the first bits, and then it's glog. I'd hope
at
the very least, that we can redirect glog output to istio logger. Does
zap
provide such a feature?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/istio/istio/pull/2211#discussion_r157323995, or
mute
the thread
<
https://github.com/notifications/unsubscribe-auth/AVucHeXtek7NxBeFqxXCEYnqTfqSOHdsks5tAwmSgaJpZM4REH04
.

—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/istio/istio/pull/2211#issuecomment-352142571, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AJGIxhUiAqzWFecmno3wrrRq9Bd8lIhyks5tAwp8gaJpZM4REH04
.

I don't know about the godep voodoo, but conceptually this would be pretty
simple.
On Fri, Dec 15, 2017 at 4:12 PM, Kuat<EMAIL_ADDRESS>wrote:

Can we fork glog, and rewire godep import to an internal zap-compatible
package?
On Fri, Dec 15, 2017 at 4:10 PM Martin Taillefer<EMAIL_ADDRESS>
wrote:

glog doesn't allow its output to be captured in any way unfortunately.
People have submitted PRs to enable this, but glog is specifically not
taking PRs.
On Fri, Dec 15, 2017 at 4:06 PM, Kuat<EMAIL_ADDRESS>wrote:

@kyessenov commented on this pull request.
In DEV-CONVENTIONS.md
https://github.com/istio/istio/pull/2211#discussion_r157323995:

log messages that may correlate to significant changes in the
system. This is

the recommended default log level for most systems.

Logging HTTP requests and their exit code

System state changing

glog.V(3) - Extended information about changes

More info about system state changes

glog.V(4) - Debug level verbosity (for now)

Logging in particularly thorny parts of code where you may want to
come

back later and check it

-As per the comments, the practical production level at runtime is
V(2).
Developers and QE
-environments may wish to run at V(3) or V(4). If you wish to change
the
log
-level, you can pass in -v=X where X is the desired maximum level to
log.
+Istio code is expected to use the standard Istio logging package.
Imagine, I'm tracing pilot code path. With glog, I can see each step as
it
flows through envoy, to pilot, to kubernetes, to etcd, and back. With a
new
library, I only get to see the first bits, and then it's glog. I'd hope
at
the very least, that we can redirect glog output to istio logger. Does
zap
provide such a feature?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/istio/istio/pull/2211#discussion_r157323995, or
mute
the thread
<
https://github.com/notifications/unsubscribe-auth/
AVucHeXtek7NxBeFqxXCEYnqTfqSOHdsks5tAwmSgaJpZM4REH04
.

—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/istio/istio/pull/2211#issuecomment-352142571, or
mute
the thread
<https://github.com/notifications/unsubscribe-auth/
AJGIxhUiAqzWFecmno3wrrRq9Bd8lIhyks5tAwp8gaJpZM4REH04>
.

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/istio/istio/pull/2211#issuecomment-352142808, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AVucHbJUDYoZR-sP9j9q3hOHXXxfNrjSks5tAwrugaJpZM4REH04
.

/lgtm
/approve


fix: remove the vite clean rake task

fix issue #91

Working on testing this locally but running into an issue that only happens when I install this version of the gem, so I suspect that it's related.
After finding the error, I tried following the recommended fix step for Vite but it didn't go well. Below are the steps and results that I tried:
Error from localhost:3000/maglev/editor:
Showing ~/.gem/ruby/3.3.0/bundler/gems/maglev-core-b911a675285a/app/views/maglev/editor/show.html.erb where line #17 raised:

Vite Ruby can't find images/logo.png in the manifests.

Possible causes:
  - The last build failed. Try running `bin/vite build --clear --mode=development` manually and check for errors.

Running the recommended command resulted in:
vite build --clear --mode=development
Check that your vite.json configuration file is available in the load path:

	No such file or directory @ rb_sysopen - /Users/malak/development/society-three-phx/config/vite.json

Removed vite cache and output dirs:
	/Users/malak/development/society-three-phx/public/vite
	/Users/malak/development/society-three-phx/public/vite-ssr
	/Users/malak/development/society-three-phx/tmp/cache/vite
	/Users/malak/development/society-three-phx/node_modules/.vite
Building with Vite ⚡
vite v5.4.11 building for development...
✓ 0 modules transformed.
(node:9833) ExperimentalWarning: CommonJS module /opt/homebrew/lib/node_modules/npm/node_modules/debug/src/node.js is loading ES Module /opt/homebrew/lib/node_modules/npm/node_modules/supports-color/index.js using require().
Support for loading ES Module in require() is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
x Build failed in 5ms
error during build:
Could not resolve entry module "index.html".
    at getRollupError (file:///Users/malak/.npm/_npx/9ed06546b0653f96/node_modules/rollup/dist/es/shared/parseAst.js:396:41)
    at error (file:///Users/malak/.npm/_npx/9ed06546b0653f96/node_modules/rollup/dist/es/shared/parseAst.js:392:42)
    at ModuleLoader.loadEntryModule (file:///Users/malak/.npm/_npx/9ed06546b0653f96/node_modules/rollup/dist/es/shared/node-entry.js:20104:20)
    at async Promise.all (index 0)

pid 9833 exit 1
Build with Vite failed! ❌

After that, I remembered that there was a maglev:vite:build command so I gave it a try. It seemed to imply I needed to do an npm i, which I did, yet I still had the same result with a second maglev:vite:build... the three steps are included together here:
 ✘  ~/development/society-three-phx   main ±  rails maglev:vite:build
Building with Vite ⚡
Usage Error: Couldn't find the node_modules state file - running an install might help (findPackageLocation)

$ yarn run [--inspect] [--inspect-brk] [-T,--top-level] [-B,--binaries-only] [--require #0] <scriptName> ...

pid 10066 exit 1
Build with Vite failed! ❌
 ✘  ~/development/society-three-phx   main ±  npm i
(node:10107) ExperimentalWarning: CommonJS module /opt/homebrew/lib/node_modules/npm/node_modules/debug/src/node.js is loading ES Module /opt/homebrew/lib/node_modules/npm/node_modules/supports-color/index.js using require().
Support for loading ES Module in require() is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)

up to date, audited 19 packages in 382ms

6 packages are looking for funding
  run `npm fund` for details

found 0 vulnerabilities
 ~/development/society-three-phx   main ±  rails maglev:vite:build
Building with Vite ⚡
Usage Error: Couldn't find the node_modules state file - running an install might help (findPackageLocation)

$ yarn run [--inspect] [--inspect-brk] [-T,--top-level] [-B,--binaries-only] [--require #0] <scriptName> ...

pid 10148 exit 1
Build with Vite failed! ❌

I'm not very familiar with Vite at all, so I'm not sure how these may or may not be related to the change you made. If there's any extra logging or output that would be helpful please let me know. :D Thanks again for getting this out so quickly!

@malakada hope it helps -> https://docs.maglev.dev/guides/troubleshooting#in-my-terminal-i-see-the-following-error


Diagnostics file permissions

Summary :

To ensure the diagnostics file is not written to a world readable location
Setting the file permissions to user only before writing

thank you :)

btw, if you haven't seen it, all of the file writing for navigator is handled here: https://github.com/ansible/ansible-navigator/blob/main/src/ansible_navigator/utils/serialize.py We should talk about if we should move this and use it in the serialize funcs as the default way of writing all files, and what the default permissions would be (or just write the file if no special perms are needed) That is way outside the scope of this PR, so it can wait for sure.

We should definitely discuss about that. Meanwhile I'm going through it: https://github.com/ansible/ansible-navigator/blob/main/src/ansible_navigator/utils/serialize.py and trying to understand how we can approach this.


Use CMake FetchContent for Catch2

Submodules are awkward and require the user of the library to clone the repo with special arg (--recurse-submodules) in order to fetch dependencies. CMake can do better than that if we use its FetchContent functionality.
With the changes in this PR one can simply clone the repo and cmake as usual to get a working build without submodules.

Not too sure why it broke clang/release but I also don't have it setup on my machine to try debug it. Any ideas @Bronek ?

Not too sure why it broke clang/release but I also don't have it setup on my machine to try debug it. Any ideas @Bronek ?

no idea, seems unrelated to this PR


Variable naming/ordering from run to run

Hello cjdrake,
If I take an input equation and perform tseytin cnf transform, this final cnf will have extra variables introduced. For the same input question, if I repeat the transform, I noticed that the output differs from run to run. It's likely that all the outputs are logically equivalent.
I wanted your take/understanding on what to expect. Can you please comment?
To rephrase-
will the outputs be "identical" from run to run or they are just guaranteed to be logically equivalent wherein the variable naming differs. by "identical" the terms can be in different order - however everything else such as variable naming - will it be identical?
For e.g.,
AND(v, ~v_1, v_2) is not physically identical to AND(v, ~v_2, v_1) where v_2 & v_1 are  v_2 are newly introduced variables for tseytin. In the second case the variable naming has changed (non-deterministic, although there is logical equivalence)
Thanks.

Hi Chris, thanks a lot for your work -- the library is an absolute gem.
There's one unfortunate peculiarity, very similar to the one reported by @acoader above, probably coming from the same source, that the results of simplify() are not consistent. So for commutative operators the arguments come in random order, different for different runs.
As I try to cache the results of equiv(), for the cache to work it's necessary that the arguments are represented in a reproducible form, remaining the same between runs. But because these arguments are themselves results of simplify()'cation, just stringizing them wouldn't work. To overcome this problem I had to convert the arguments into tuples and then sort them, which regrettably takes tens of seconds in my case. I wonder if there's any chance this can be resolved? Or maybe there's a faster way to get a sort of a canonical form for an expression?


Support for Django 5.1

@fjsj Thank you for your comment.  I appreciate you pointing it out. I've made the correction and pushed a new commit.  https://github.com/django-webpack/django-webpack-loader/pull/406/commits/d5ee0f036b203b7e0f09281d532b05534fa60885


Broken Mac Support for 0.5 (MacOS Sur Version 11.6)

Describe your bug here.
When I try to build the game using the source code, at the end, it gives me an error about something to do with a linker command failing with it's first exit code.
Command Prompt/Terminal logs (if existing)
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Are you modding a build from source or with Lua?
Source
What is your build target?
Mac
Did you edit anything in this build? If so, mention or summarize your changes.
No.

Nevermind I figured it out
I forgot one step of buliding
thats it

Nevermind I figured it out
I forgot one step of buliding thats it

Can you tell me please?


multiple motion-ui animations in series

This is my template for home:
---
name: home
url: /
controller: HomeController
---
Click me: <input type="checkbox" ng-model="checked">

Welcome to Foundation for Apps!

This is version 1.0.2 Matterhorn.

The only other thing I've modified is adding a controller to app:
  angular.module('application', [
    'ui.router',
    'ngAnimate',

    //foundation
    'foundation',
    'foundation.dynamicRouting',
    'foundation.dynamicRouting.animations'
  ])
    .config(config)
    .run(run)
    .controller('HomeController', HomeController);
  ;
...
...
...
  HomeController.$inject = ['$scope', '$state', '$animate', '$window', 'FoundationApi'];
  function HomeController($scope, $state, $animate, $window, FoundationApi) {
    $scope.animate = function(type) {
      if(type === 'Text') {

        $scope.animateText = 'wiggle';
        console.log($scope.animateText);
        setTimeout(function() {
          console.log('timeout');
          $scope.animateText = '';

          console.log($scope.animateText);
        }, 1500);
      }

    }
  }

The problem is that I cannot seem to get 'wiggle' to happen more than once. How does one reset the state of the dom element? Using the check button to hide the element (and check again to show) will reset the state, but even if I did find a way to do that programmatically it would likely be overkill.

Take a look at this CSS Tricks article, which gets into a few methods for restarting animations. The two solutions it references are:

Remove the animation class, force a reflow, and then re-add the class. If you just remove the class and then immediately re-add it, the browser doesn't perceive it as an actual change in state. There are a few ways to do this—the one referenced in the article is element.offsetWidth = element.offsetWidth;.
Reset the play state. The CSS property is called animation-play-state, and the JavaScript version is animationPlayState. Change it to paused, and then immediately change it to running, and the animation will play again. Of course, the property is vendor prefixed, so you'll need to modify webkitAnimationPlayState and so on.

Hope that helps!

I see, I'm more of a back-end javascript developer myself so I wasn't aware of these options. That helps a lot, thanks for the thorough response. My issue personal issue is resolved but do you see something like a wiggle-once and a wiggle class being implemented to automate this?

There is an infinite class you can apply to an animating element, and that will make the animation play forever. It seemed like your use case, though, was needing to get the animation to play again at some point. But, if you just need the animation to play forever without stopping, you can just add the class infinite.


Error while publishing Cannot read properties of undefined (reading 'getWorkspaceSettings')

hello, I have a problem with the AL extension in version v12.7.964847, when I to press the F5 button to publish I get the following error:
[Error - 14:00:10] Sending notification workspace/didChangeConfiguration failed
TypeError: Cannot read properties of undefined (reading 'getWorkspaceSettings')
at didChangeConfiguration (c:\Users\user.vscode\extensions\ms-dynamics-smb.al-12.7.964847\dist\webpack:\al\src\services\editorService.ts:103:17)
at t.SyncConfigurationFeature.unregister [as onDidChangeConfiguration] (c:\Users\user.vscode\extensions\ms-dynamics-smb.al-12.7.964847\dist\webpack:\al\node_modules\vscode-languageclient\lib\common\configuration.js:165:32)
at t.SyncConfigurationFeature.register (c:\Users\user.vscode\extensions\ms-dynamics-smb.al-12.7.964847\dist\webpack:\al\node_modules\vscode-languageclient\lib\common\configuration.js:128:5)
at t.SyncConfigurationFeature.async [as initialize] (c:\Users\user.vscode\extensions\ms-dynamics-smb.al-12.7.964847\dist\webpack:\al\node_modules\vscode-languageclient\lib\common\configuration.js:119:5)
at S.initializationFailedHandler [as initializeFeatures] (c:\Users\user.vscode\extensions\ms-dynamics-smb.al-12.7.964847\dist\webpack:\al\node_modules\vscode-languageclient\lib\common\client.js:1289:5)
at StartFailed [as doInitialize] (c:\Users\user.vscode\extensions\ms-dynamics-smb.al-12.7.964847\dist\webpack:\al\node_modules\vscode-languageclient\lib\common\client.js:827:37)
at S.start (c:\Users\user.vscode\extensions\ms-dynamics-smb.al-12.7.964847\dist\webpack:\al\node_modules\vscode-languageclient\lib\common\client.js:709:39)
In older versions I have no problems to publish, but it returns me error the environment for being in an old version.
Can anyone help me?

Duplicate of https://github.com/microsoft/AL/issues/7664


Add support for Animated QR codes

Is your feature request related to a problem? Please describe.
Since API v5.1 you can support animated QR codes for additional security. See #275 for the API issue around this.
We should allow the user to use the animated QR codes.
What area is it related to
BankID
Describe the solution you'd like
I would have liked for the solution to be stateless, as Active Login is today, but as per my knowledge the animated QR codes is not possible to implement (in a safe way) without storing state on the server. Only one image can be generated at a time, needs to be done on the server and the server needs a secret. Therefore my suggestion is to make this feature optional (in case you can't or don't want to store state on the server). The state handling should be hidden behind an interface, but default to something built into ASP.NET Core.
Additional context
I've tried it out locally, so I have some working code.

I looked into his now as well. How about using a encrypted object (machineKey) for the request instead? Then you could avoid state (or move it to the client for storage) without exposing the qrSecret?
{
orderRef = ...
qrToken = current  calculated
qrRef = encrypted [
(qrSecret),
(randomNumber)
]
}
Then you could decrypt the qrSecret and calculate a new qrToken-response for the next image on the poll? There's some client libraries for generating qr codes on the client as well.

Got this as a response from BankID (translated):

Thanks for your mail. The reason we do not want you to send qrStartSecret to the user's browser / user agent is because the browser cannot be considered secure. The risk is that malicious software is in it and that the software reveals qrStartSecret, which could result in the entire sequence of moving QR codes being recreated elsewhere.
If I have understood your description correctly, then you have made an effort to protect qrStartSecret in such a way that it is not exposed to the browser, and you live up to our recommendation that qrStartSecret should be a secret that is only shared between us and your service / server. Clever! We see a certain risk that you may have problems with the timing, because the algorithm is based on knowing the time that has passed since you received the first answer from us. It can probably be solved by including the start time in the blob that is sent back and forth.

So should be safe as long as it's not able to be brute forced, which it shouldn't, as no data is encrypted that is known.


Argparse format errors in AnalyzeVacuumUtility

python AnalyzeVacuumUtility/analyze-vacuum-schema.py --help
Traceback (most recent call last):                                                                                File "AnalyzeVacuumUtility/analyze-vacuum-schema.py", line 97, in <module>                                                                  full_args = parser.parse_args()                                                                                File "/usr/lib64/python3.6/argparse.py", line 1734, in parse_args                                                                           args, argv = self.parse_known_args(args, namespace)                                                                                File "/usr/lib64/python3.6/argparse.py", line 1766, in parse_known_args                                                                     namespace, args = self._parse_known_args(args, namespace)                                                                               File "/usr/lib64/python3.6/argparse.py", line 1972, in _parse_known_args                                                                    start_index = consume_optional(start_index)                                                                                File "/usr/lib64/python3.6/argparse.py", line 1912, in consume_optional     take_action(action, args, option_string)   File "/usr/lib64/python3.6/argparse.py", line 1840, in take_action     action(self, namespace, argument_values, option_string)   File "/usr/lib64/python3.6/argparse.py", line 1024, in __call__     parser.print_help()   File "/usr/lib64/python3.6/argparse.py", line 2366, in print_help                                                                           self._print_message(self.format_help(), file)                                                                                File "/usr/lib64/python3.6/argparse.py", line 2350, in format_help     return formatter.format_help()   File "/usr/lib64/python3.6/argparse.py", line 282, in format_help     help = self._root_section.format_help()   File "/usr/lib64/python3.6/argparse.py", line 213, in format_help                                                                           item_help = join([func(*args) for func, args in self.items])   File "/usr/lib64/python3.6/argparse.py", line 213, in <listcomp>     item_help = join([func(*args) for func, args in self.items])                                                                            File "/usr/lib64/python3.6/argparse.py", line 213, in format_help     item_help = join([func(*args) for func, args in self.items])                                                                            File "/usr/lib64/python3.6/argparse.py", line 213, in <listcomp>     item_help = join([func(*args) for func, args in self.items])   File "/usr/lib64/python3.6/argparse.py", line 523, in _format_action                                                                        help_text = self._expand_help(action)                                                                                File "/usr/lib64/python3.6/argparse.py", line 610, in _expand_help     return self._get_help_string(action) % params ValueError: unsupported format character 't' (0x74) at index 30
Description of changes:
Remove "%" characters from argument help strings
Include redshift_connector in requirements.txt
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Thanks for spotting that error. I have merged in the fix.


LLM Detection for Perf Analyzer in CAPI and Triton Backend [ DO NOT MERGE, just ideas ]

to be merged with https://github.com/triton-inference-server/client/pull/463

Please change target branch to pa-llm-metrics, and add a PR description

Should we merge this?
/s

the ticket that spawned this PR was made will not do
@jbkyang-nvi i think we can safely close this PR

the ticket that spawned this PR was made will not do @jbkyang-nvi i think we can safely close this PR

Thanks for noticing. Closed


Citibank Australia supports 2FA

With SMS.  They may also have custom stuff for Android and iThingy by the looks of it.

I think we've added other sites that are specific to certain countries (a recent influx of Canadian banks, I think), so I don't think there's any reason to keep this one of the list.
Anyone care to put together a PR?

Given that the majority, if not all, of Citibank subsidiaries support Two Factor Authentication through the use of a one-time-pin, accessible either through a mobile application or SMS, it may be worthwhile simply maintaining one Citibank entry on twofactorauth.org.
As can be seen below, Citibank possesses 59 subsidiaries:

More information regarding Citibank's TFA solutions can be found below:
Citibank Australia OTP
Citibank Singapore OTP
Citibank Privatebank Security Token
Citibank UK OTP (Citibank UK only seems to request a token when performing certain actions, not when logging in, which conflicts with twofactorauth.org's definition of TFA.

Closing this ticket as per #1627.


Disable extension for JSON files

Hello,
I would like to know if it's actually possible to disable this extensions for certains files? Like the JSON ones. Maybe by using a glob in settings.

There is currently no option to disable it for some file pattern.
The extension does not run on JSON language, it runs on javascript and javascriptreact as specified here
Prettier throws an error on JSON object files and thus, the extension shouldn't do anything (a log in the developer tool)
Is this issue about JSON betting prettified or about a feature request?

It performs on JSON and sometimes on certain JS files, by removing empty lines breaks, which is super annoying :(
JS file:

JSON file:

Do you have any other formatter installed (extension)? prettier does not remove single line breaks like on your JS file.
For the JSON file, removing lines is the behavior of vscode's embed formatter.

I don't think. editor.formatOnSave is set to true, and when prettier-vscode is disabled, it doesn't do that. Very strange.

About which file type are you speaking? Both?
Just to be sure about your JSON file. If you set "json.format.enable": false, in your settings, does it still happen ? This is the embed json formatter.
Can you try<EMAIL_ADDRESS>with the command line on your JS file?
Can you also test with all extensions disabled but prettier ?
I'm unable to reproduce your problem with the JS file. With the JSON file I think this is the embed formatter.

"json.format.enable": false does the trick for the JSON files 👍
I disable every extensions except this one, and still encounter the problem. But it doesn't appear when I use the babylon parser (only appear with the flow parser)

Still seems there is an issue tho. I cannot reproduce this issue with the flow parser and a minimal code. Is it possible for you to provide a minimal code which produce this error and your settings for prettier.
Note: I also tried with CRLF

I isolate the bug. Here is the minimal setup to reproduce it:
// @flow

import React, { Component } from 'react';
import { connect } from 'react-redux';
import { t } from '../utils/i18n';

class MyClass extends Component {
  render() {
    return (
      <span>
        {t('price info', { price: '8€' })}
      </span>
    );
  }
}
const mapStateToProps = (state, ownProps) => ({
  navigation: ownProps.navigation,
});
const mapDispatchToProps = (dispatch, ownProps) => ({});
export default connect(mapStateToProps)(MyClass);

It doesn't happen if I remove the € character, and seems not related to this plugin (does the same using prettier directly). I should create an issue on the prettier repo.

No need, I found one: https://github.com/prettier/prettier/issues/770


The metrics-explorer is not pinging the shards and replicas , what could be the issue?

i have executed the command:
kubectl exec -n kube-system clickhouse-operator-79d5fb8464-wkftq -c metrics-exporter -- wget -qO- http://chi-repl-prod-prdc01-0-1.ch-prod.svc.cluster.local:8123/ping
it is returning any response, it should have returned "ok" message but results "Operation timeout "

check status of your current pods
kubectl get pods -n ch-prod | grep chi
also check your service have endpoints
kubectl get svc -n ch-prod chi-repl-prod-prdc01-0-1 -o wide


amplify-modelgen produces error regarding missing field-level rules that are present

Before opening, please confirm:

[X] I have installed the latest version of the Amplify CLI (see above), and confirmed that the issue still persists.
[X] I have searched for duplicate or closed issues.
[X] I have read the guide for submitting bug reports.
[X] I have done my best to include a minimal, self-contained set of instructions for consistently reproducing the issue.

How did you install the Amplify CLI?
npm
If applicable, what version of Node.js are you using?
18.12.1
Amplify CLI Version
10.6.2
What operating system are you using?
Mac
Amplify Codegen Command
Not applicable
Describe the bug
I've created a schema for Amplify DataStore whereby I want all fields to be either private to the owner or to admin with the exception of one field: username, which should be queryable by all including those not logged in. To achieve this, I believe I have to use field-level @auth rules. When I create my schema with field-level rules, amplify-modelgen complains with the following error:
InvalidDirectiveError: When using field-level authorization rules you need to add rules to all of the model's required fields with at least read permissions. Found model "User" with required fields ["email","status","userId"] missing field-level authorization rules.

For more information visit https://docs.amplify.aws/cli/graphql/authorization-rules/#field-level-authorization-rules

As you can see from my schema below, I've done as the error requests and all of my required fields have at least read permissions. However, it still produces the same error.
Expected behavior
It should successfully generate the model without error or have improved error messaging.
Reproduction steps

Run the Amplify installation steps.
Add Amplify API with DataStore functionality.
create a User GraphQL type in the schema file as below.
run node amplify/scripts/amplify-modelgen.js

GraphQL schema(s)

# Put schemas below this line

type User @model {
  email: AWSEmail!
    @auth(
      rules: [
        {
          allow: groups
          groups: ["Admin"]
          operations: [read, create, delete, update]
        }
        { allow: owner, operations: [read, create, delete, update] }
      ]
    )
  status: Status!
    @auth(
      rules: [
        {
          allow: groups
          groups: ["Admin"]
          operations: [read, create, delete, update]
        }
        { allow: owner, operations: [read, create, delete, update] }
      ]
    )
  username: String!
    @auth(
      rules: [
        {
          allow: groups
          groups: ["Admin"]
          operations: [read, create, delete, update]
        }
        { allow: public, operations: [read] }
        { allow: owner, operations: [read, create, delete, update] }
      ]
    )
  userId: ID!
    @primaryKey
    @auth(
      rules: [
        {
          allow: groups
          groups: ["Admin"]
          operations: [read, create, delete, update]
        }
        { allow: owner, operations: [read, create, delete, update] }
      ]
    )
}

Log output

# Put your logs below this line

2023-01-20T10:45:32.860Z|info : amplify models codegen
2023-01-20T10:45:32.908Z|info : amplify-cli-core.banner-message/index.ts.fetch banner messages from https://aws-amplify.github.io/amplify-cli/banner-message.json({}
2023-01-20T10:46:36.525Z|info : amplify models codegen
2023-01-20T10:46:36.570Z|info : amplify-cli-core.banner-message/index.ts.fetch banner messages from https://aws-amplify.github.io/amplify-cli/banner-message.json({}
2023-01-20T10:47:29.219Z|info : amplify models codegen
2023-01-20T10:47:29.265Z|info : amplify-cli-core.banner-message/index.ts.fetch banner messages from https://aws-amplify.github.io/amplify-cli/banner-message.json({}
2023-01-20T10:50:05.935Z|info : amplify models codegen
2023-01-20T10:50:05.981Z|info : amplify-cli-core.banner-message/index.ts.fetch banner messages from https://aws-amplify.github.io/amplify-cli/banner-message.json({}
2023-01-20T10:50:23.316Z|info : amplify models codegen
2023-01-20T10:50:23.360Z|info : amplify-cli-core.banner-message/index.ts.fetch banner messages from https://aws-amplify.github.io/amplify-cli/banner-message.json({}
2023-01-20T10:50:45.374Z|info : amplify models codegen
2023-01-20T10:50:45.419Z|info : amplify-cli-core.banner-message/index.ts.fetch banner messages from https://aws-amplify.github.io/amplify-cli/banner-message.json({}
2023-01-20T10:51:10.838Z|info : amplify models codegen
2023-01-20T10:51:10.883Z|info : amplify-cli-core.banner-message/index.ts.fetch banner messages from https://aws-amplify.github.io/amplify-cli/banner-message.json({}
2023-01-20T10:51:49.007Z|info : amplify models codegen
2023-01-20T10:51:49.052Z|info : amplify-cli-core.banner-message/index.ts.fetch banner messages from https://aws-amplify.github.io/amplify-cli/banner-message.json({}
2023-01-20T10:54:21.394Z|info : amplify status core  {"acm":"User","api":true,"yes":false}
2023-01-20T10:54:21.440Z|info : amplify-cli-core.banner-message/index.ts.fetch banner messages from https://aws-amplify.github.io/amplify-cli/banner-message.json({}
2023-01-20T10:56:56.552Z|info : amplify models codegen
2023-01-20T10:56:56.598Z|info : amplify-cli-core.banner-message/index.ts.fetch banner messages from https://aws-amplify.github.io/amplify-cli/banner-message.json({}
2023-01-20T10:57:10.288Z|info : amplify models codegen
2023-01-20T10:57:10.333Z|info : amplify-cli-core.banner-message/index.ts.fetch banner messages from https://aws-amplify.github.io/amplify-cli/banner-message.json({}
2023-01-20T10:57:23.040Z|info : amplify models codegen
2023-01-20T10:57:23.085Z|info : amplify-cli-core.banner-message/index.ts.fetch banner messages from https://aws-amplify.github.io/amplify-cli/banner-message.json({}
2023-01-20T11:10:10.198Z|info : amplify version core
2023-01-20T11:25:18.675Z|info : amplify models codegen
2023-01-20T11:25:18.722Z|info : amplify-cli-core.banner-message/index.ts.fetch banner messages from https://aws-amplify.github.io/amplify-cli/banner-message.json({}
2023-01-20T11:26:58.118Z|info : amplify diagnose core  {"send-report":true,"yes":false}
2023-01-20T11:26:58.164Z|info : amplify-cli-core.banner-message/index.ts.fetch banner messages from https://aws-amplify.github.io/amplify-cli/banner-message.json({}

Additional information
No response

I can now see where the problem lies. In my example, I would need { allow: public, operations: [read] } in addition to the current rules on every required field, which I currently do not have.


Document how to use memory profiling

          Not going to block on it, but we should have something for how to use the feature in `profiling.md`.

Originally posted by @hymm in https://github.com/bevyengine/bevy/pull/8272#pullrequestreview-1386606286
We should also encourage users to keep this off when profiling except when explicitly needed due to the high overhead.

hello @alice-i-cecile ,
I am interested in contributing to the Beavy project on GitHub, and I noticed that there is an open issue related to creating a document.
As a new contributor, I would like to work on resolving this issue by creating the requested document. I believe that this will be a great opportunity for me to learn more about open source development and contribute to the project.
Before I proceed, I would like to confirm with you if the issue is still open and available for contributions. Additionally, I would appreciate any suggestions or feedback you may have to help me get started with creating the document.

Great :) This is still available.
In order to turn this on, you need to enable the cargo feature added here when running your app.
This is the file we should be modifying: https://github.com/bevyengine/bevy/blob/main/docs/profiling.md :) Try your best to get tracy set up on your PC so you can test that the instructions work too! If you get stuck in the install process, post a new Discussion here for troubleshooting help so others can Google errors you run into in the future.

@mockersf I've just tried using this on a MacBook in order to update the docs here.
The Zone Info tab shows information as in your PR:

However, the Memory tab is missing function names for the call stacks:

(Screenshots unhelpfully and somewhat irrationally truncated to not include my full name.)
Is this something that you would expect to work, or should I add a note in the docs that this isn't supported?

probably not supported for now!


Enable horizontal scaling on FMD pods

https://user-guide.cloud-platform.service.justice.gov.uk/documentation/concepts/deploying.html#horizontal-pod-autoscaling-hpa

Our limitRange.defaultRequest.cpu is set to 10m
Currently the actual usage is 7m and 6m

The snippet in the docs is wrong
targetCPUtilizationPercentage only existed in v1 of this resource
https://stackoverflow.com/questions/41643709/kubernetes-autoscaler-targetcpuutilizationpercentage


Having problems downloading for macOS Catalina

My mac is not letting me open the zip file!

/duplicate - see #74782


Mouse movement Error

I tryed to uninstalled/reinstalled everything and to cange the mouse-settings but it dose not react on any mouse movement. The mouse keys works just fine. i tryed it on Rainbow six siege. no Error-code or something like that. Hope someone can help.
(Edit.1) Fallout 4 don´t work either.
(Edit.2) I need to unplug the controller from the xbox and conect it to the PC not sure if this is intended and the mouse deadzone calibration does not work.
(Edit.3) The mouse dose not centers in the midle of the screen
(Edit.4) it seem like that is dose not lock on the Xbox app because of the name (it stays blue/dose not turn green)
(Edit.5) Canged the SlimDX Runtime to the 64x Bit version now it crashes after about 2 seconds
Version: -v<IP_ADDRESS>
Sorry for any grammar mistakes im german

I believe you'll need to go back to the x86 version of Slim DX.
What is the exact title of the "Xbox Console Companion" window?  My first guess is the XboxApp is localized for you with a string we aren't comparing correctly, and we failed to detect it.

On the german version the Name is "Xbox Konsole-Begleiter"

@DavidRieman is there any known time when the app will be updated

I'm not exactly sure if its what fixed mine, but I did a few things so try them all: I change my mouse tick rate to 9, I changed both sensitivities to 14200, I use dead zoning default with a 500 final modifier, and what I think TRULY FIXED IT was: go into the xboxkeyboardmouse master file, click downloads, profiles, choose your custom, not the default, and under mouse settings, change the deadzone to 6000  also oen game before app then use windows button


⚠ ReportPortal Server has degraded performance

In 4819dcb, ReportPortal Server (https://reporting.its-telekom.eu/) experienced degraded performance:

HTTP code: 200
Response time: 3450 ms

Resolved: ReportPortal Server performance has improved in ea58bdd after 6 minutes.


tooltip: Hide scroll button tooltip on transition

Previously, if the user hovered over the "scroll to bottom" button as it was disappearing and did not move the mouse, the tippy would remain visible even though the button was hidden.
Presently, the tippy is explicitly destroyed when the transition animation finishes.
This issue was also attempted in #28680, but the approach there involved the use of a timer to destroy the tippy, which could have led to inconsistent behavior. My approach differs in that I used the transitionend event to detect when the button is completely hidden.
Fixes #28656

Screenshots and screen captures:
Old behaviour
Screencast from 09.03.2024 17:22:41.webm
New bevahoiur
Screencast from 09.03.2024 17:23:32.webm

Self-review checklist

[x] Self-reviewed the changes for clarity and maintainability
(variable names, code reuse, readability, etc.).

Communicate decisions, questions, and potential concerns.

[x] Explains differences from previous plans (e.g., issue description).
[x] Highlights technical choices and bugs encountered.
[ ] Calls out remaining decisions and concerns.
[ ] Automated tests verify logic where appropriate.

Individual commits are ready for review (see commit discipline).

[x] Each commit is a coherent idea.
[x] Commit message(s) explain reasoning and motivation for changes.

Completed manual review and testing of the following:

[x] Visual appearance of the changes.
[ ] Responsiveness and internationalization.
[x] Strings and tooltips.
[ ] End-to-end functionality of buttons, interactions and flows.
[ ] Corner cases, error conditions, and easily imagined bugs.

Hi @amanagr, @alya, I would be grateful if you could review this PR.

Please flag for again for review once conflicts are resolved. Thanks!

@alya I've solved the conflict

@zulipbot add "feedback-wanted"

@zulipbot add "feedback wanted"

@tudor-pagu thanks for working on this. Left a comment.

Please squash all your commits into one. LGTM now.

@amanagr
I've squashed the commits.

Thanks!

This looks good, though can be simplified a bit with expectOne; I'll do that and integrate it.

I also bulked out the comments to make it more clear why we need this special logic. Thanks for fixing this @tudor-pagu!


Good work and a fork of forks

Good work.
Did fork your repo and i modified it a bit. Please have a look. https://github.com/rognerud/dbt2looker-bigquery/compare/main...magnusica:dbt2looker-bigquery:feature/some_improvements_likely
Maybe not everything is too your liking but it pretty much generates as looker generates the lookml.

Thanks Magnus I think I will try to integrate it :)
Keeping the code as similar as the default code, is my intention as well 👍


[CI] Keep ninja test only for Windows.

This PR addresses the frequent timeouts encountered by the Windows portability build-only test suite. Currently, the suite includes two tests: one using MSBuild and another using Ninja, both with MSVC 2022. To mitigate the timeout issue, this PR disables the MSBuild test while retaining the Ninja test.

Are we losing coverage of important cases by doing this? Would it be better to use msbuild for some MSVC versions and ninja for other versions, so that we still have reasonable assurance that both build systems actually work?

There is a single version of MSVC to support, 2022. We do use MSBUILD in the distrib-tests building gRPC and a few examples so I think it still has a basic coverage for MSBUILD.


Loading ICC profiles at runtime

This PR adds support for adding an ICC color profile at runtime using the cmsOpenProfileFromFile function. In my application, I need to load color profiles from a clients computer, so I cannot use include_bytes!, since I don't know the profile they have.
Since the whole crate is undocumented, I have not added documentation either. I hope that's OK.
The test run fine, but the last test in transform.rs crashes. I had it disabled when I ran my tests.

Hello? Any reaction?

Sorry! I wasn't getting github notifications!
I didn't add file method, because you can use Rust to load the file.
Profile::new_icc(file::get("path").unwrap());

https://crates.io/crates/file


Cannot pip install -r requirements.txt

There is a line in requirements.txt that I believe prevents users from outside of latch from testing this repository.
https://github.com/latchbio/latch/blob/0d9fbcdca1975ddd82fa38b8ff2c7b6c801667e1/requirements.txt#L39
Specifically, flaightkit<EMAIL_ADDRESS>requires ssh permissions to flaightkit, which doesn't work if you don't have latch perms on.
[koeng@node2 latch]$ sudo python3 -m pip install -r requirements.txt
Collecting flaightkit<EMAIL_ADDRESS>  Cloning<EMAIL_ADDRESS>to /tmp/pip-install-qds5zb9p/flaightkit_8a3c08c60cf4455ba889656c66ec57d1
  Running command git clone --filter=blob:none --quiet<EMAIL_ADDRESS>/tmp/pip-install-qds5zb9p/flaightkit_8a3c08c60cf4455ba889656c66ec57d1
The authenticity of host 'github.com (<IP_ADDRESS>)' can't be established.
ED25519 key fingerprint is SHA256:+DiY3wvvV6TuJJhbpZisF/zLDA0zPMSvHdkr4UvCOqU.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
  Warning: Permanently added 'github.com' (ED25519) to the list of known hosts.
<EMAIL_ADDRESS>Permission denied (publickey).
  fatal: Could not read from remote repository.

  Please make sure you have the correct access rights
  and the repository exists.
  error: subprocess-exited-with-error

  × git clone --filter=blob:none --quiet<EMAIL_ADDRESS>/tmp/pip-install-qds5zb9p/flaightkit_8a3c08c60cf4455ba889656c66ec57d1 did not run successfully.
  │ exit code: 128
  ╰─> See above for output.

  note: This error originates from a subprocess, and is likely not a problem with pip.
error: subprocess-exited-with-error

× git clone --filter=blob:none --quiet<EMAIL_ADDRESS>/tmp/pip-install-qds5zb9p/flaightkit_8a3c08c60cf4455ba889656c66ec57d1 did not run successfully.
│ exit code: 128
╰─> See above for output.

note: This error originates from a subprocess, and is likely not a problem with pip.

This was pretty outdated - I just recompiled it based on our newest dependencies. For reference however, for local development we just pip (cd /path/to/latch && python3 -m pip install .).


🌱 remove some conditionals from workflows

Too many conditionals were added recently (and earlier), remove the extras.

/override test-centos-e2e-integration-main  test-ubuntu-integration-main
Not relevant

/cc @kashifest @lentzi90
Per discussion about workflow conditionals, fixing IPAM to be the same.

/cc @kashifest @smoshiur1237
lgtm please

/override test-centos-e2e-integration-main test-ubuntu-integration-main
Not relevant


footer covering up bottom on page-body

Looks like the page-body isn't being adjusted properly for the fixed footer.
This is noticeable when content reaches the bottom of the page. i.e. configuration and console output screens. Here is an example screenshot

BTW, this is on Safari 8 and Chrome Canary 42

I think the issue might be height: 100%!important; being applied to .page-body (here) and possibly .row
When I remove this from .page-body the content flow fixed itself; but there is a horizontal scroll. Removing this from .row at the same time; remove the scroll but kept the scrollbar.
So, Adding overflow-x: hidden to .page-body remove the scroll bar.
I'm not sure the purpose of having the height set to 100%, or what issues will arise out of overflow-x: hidden

I adjusted the #page-body to height: 85%!:important; and that cleaned up the issue for me in Safari 8. Yes, that was a total hack and there's likely more elegant ways to fix this issue, but it worked well enough for my purposes. I don't see any problems with a horizontal scroll appearing.

Yeah; it fixes it - but it creates a weird gap when the page is real tall; or contains to cut it off when the page is too short.
I'm running off a branch right now with overflow-x: hidden and it's seems to work well. I submitted the pull request #58 for you to see the diff

This might be related to issue #57 , might what to see if the fix being pushed out by Jenkins in 1.597 fixes it

This too was fixed upstream in Jenkins 1.598 (actually there is another issue now with the footer causing too much spacing; not sure if upstream issue or theme :/)


(feat): Replacing cookies from footer to banner.

Describe the changes you've made
I've added banner for cookies. I think this might be more better idea/way to use cookies
While I don't know what to add in the footer I don't know about any social media links this project have
Edit:
Now after commit 4694661 it also fixes #226
I've replaced this

with this

and this

 :warning: NOTE:
I'd like to know if you guys have some socials for this app or in general. Cause that footer is still incomplete.

Checklist

[x] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[x] All new and existing tests passed.
[x] The title of my pull request is a short description of the requested changes.

Hope you like the idea @cyntss
Glad to here any suggestions :raised_hands:

Thank you for the contribution. We've closed this PR as we don't have a need to change our UI for the footer at the moment.


Added a no-duplicate-switch-case rule

PR checklist

[x] Addresses an existing issue: #2916
[x] New feature, bugfix, or enhancement

[x] Includes tests

[x] Documentation update

Overview of change:
Added a no-duplicate-switch-case rule to enforce that no switch case should contain the same textual value as a previous switch statement.
CHANGELOG.md entry:
[new-rule] no-duplicate-switch-case

@JoshuaKGoldberg The rule needs to be added to all.ts and latest.ts. That's why CI is failing.

I'd like to get this merged. So I updated the configuration presets and merged master.
@adidahiya do you want to take another look before merging this?

Thanks @ajafff for the updates!
A side note: there are a few other PRs from me waiting for action (on my part). I don't know when I'll be able to get to them :(


Feature/segments type operations

doc toolchain fixes are merged to develop

doc toolchain fixes are merged to develop


Setup visualization dashboard

Use kibana?

Hi, I would like to work on this issue. What files should I look into to get started with?


test_up_down_consistency not delivering on its promise

Hi,
Thanks for creating this plugin. I've always wanted to have such tests, but never had enough time to write them in my projects.
After introducing it to my codebase, I wanted to see examples of test failures. For test test_up_down_consistency the description states:

Assert that all downgrades succeed.
While downgrading may not be lossless operation data-wise, there’s a theory of database migrations that says that the revisions in existence for a database should be able to go from an entirely blank schema to the finished product, and back again.

The body of the test in fact runs all upgrades and then runs all downgrades. While this confirms that the downgrades can be run successfully, it doesn't test what is the result of the downgrades. For example, such migration would not result in failure of the test (while it's clear that upgrade and downgrade are not "consistent"):
def upgrade():
    op.create_table(
        "foobar",
        sa.Column("id", sa.BigInteger(), nullable=False),
        sa.PrimaryKeyConstraint("id"),
    )

def downgrade():
    pass

The above downgrade "runs successfully", but does not deliver on the "go from an entirely blank schema to the finished product, and back again [to an entirely blank schema]" part. This test does not verify that the database after upgrade+downgrade is in the same state as it was before the upgrade.
[feature request] As a minimum it would be nice to check if, after running all downgrades, the schema is (again) empty.
If you don't want to add any logic to this test, it would be good to at least change the test description to be not misleading as to what this test checks. For example:

Assert that all downgrades can be run successfully (without verifying that the state after upgrade+downgrade is the same as before upgrade).

Also, the test name should be changed from test_up_down_consistency to test_up_down_does_not_crash.

That's definitely an good point I hadn't considered when writing the test.
In general, it's probably intractable to assert the database is the same as it was at the start (or at best, it would require a bunch of database-specific code to make this assertion. And even if we got something perfect, this test is (anecdotally) the one that's most frequently disabled, so it would probably make this test too strict to be practical anyway.
my first take for a potentially more useful approximation of the idea, would be to change the test from (essentially):
 alembic_runner.migrate_up_to('head')
 alembic_runner.migrate_up_to('base')

to
 alembic_runner.migrate_up_to('head')
 alembic_runner.migrate_up_to('base')
 alembic_runner.migrate_up_to('head')

The round-trip back up to head would at least ensure that the migrations are idempotent enough to not prevent your upgrade DDL from producing the correct end-state after a downgrade.

Hi @DanCardin, thanks for your swift reply!
The idea you showed is very interesting indeed - while in an indirect way, it should catch probably most of the potential issues. I can't imagine any possible case where this would not work - however I guess that this test will probably start failing for some people.
The approach I was thinking about earlier would be to do:
pre_upgrade_db_snapshot = metadata.reflect(engine)
alembic_runner.migrate_up_to('new_revision')
alembic_runner.migrate_up_to('old_revision')
post_downgrade_db_snapshot = metadata.reflect(engine)

assert pre_upgrade_db_snapshot == post_downgrade_db_snapshot

This of course would be just an estimation - however probably a good enough one for most cases?

that's also an interesting approach. I think they're ultimately testing different enough things that it might be worth doing both tbh.
My suggestion (while it may break existing users) is more likely to work for existing users because it's less strict and just checks the observable output of running the migrations (like i would when developing a migration locally doing upgrade/downgrade/upgrade roundtrips). Plus I could revise this test fairly quickly.
While your suggestion is more strict (which is def a good thing for some) but I'd say is much more likely to fail for existing histories. So I'd likely add this as experimental or default disabled (for now). I might have time to prototype this solution (i imagine the equality check is going to be the main bulk of the work since i'm not sure how comparable things like tables are, let alone metadata) some time soon

I started prototyping our your suggestion. The problem seems like it could either be relatively simple in one way, or else much more difficult in the other.
If you round-trip each individual migration, doing the check. then it seems to be pretty difficult. the MetaData contains a lot of non-eq-implementing state (tables, indices, schemas, etc) that'd all need to have a sensible comparison mechanism implemented for them. I wonder if alembic could help here since it's already figuring out diffs...
Alternatively, you could do one big full upgrade, then a full downgrade and assert that the tables/indices/schemas are empty on the metadata at the end. This seems much more tractable and seems like it should logically do the thing you want?

the MetaData contains a lot of non-eq-implementing state (tables, indices, schemas, etc) that'd all need to have a sensible comparison mechanism implemented for them

I didn't have time to check this yet, but possibly the pickled Metadata may be equal when done before and after the round-trip:
https://docs.sqlalchemy.org/en/14/core/serializer.html

Regular pickle.loads()/dumps() can be used to fully dump any MetaData object, typically one which was reflected from an existing database at some previous point in time.

As for the second part:

Alternatively, you could do one big full upgrade, then a full downgrade and assert that the tables/indices/schemas are empty on the metadata at the end. This seems much more tractable and seems like it should logically do the thing you want?

While this does not test everything, it's a good starting point for sure! We could detect here all cases like (table/type/index/...) created in upgrade, but not deleted in downgrade, which already is a huge step forward.
Note that a false negative for this test can be achieved with:
# migration1.py

def upgrade():
   create_table(table_name='foo', Column('Col1'))

def downgrade():
   drop_table('foo')

# migration2.py

def upgrade():
   add_column(table='foo', Column('Col2'))

def downgrade():
   print("I never wrote any downgrade for this")

When doing only one assertion after full round-trip null_state1 -> migration1 -> migration2 -> migration1 -> null_state2 we will get succeeding assert null_state1 == null_state2 == <empty database>, but the "step-by-step verification approach" would fail:
null_state
     -> upgrade to migration1
         -> upgrade to migration2
     <- downgrade to migration1  # run Test1 after this step
<- downgrade_to_null_state       # run Test2 after this step

# Test2: This will succeed - this is the "full roundtrip at once" version of this test
assert db_state_after(null_state) == db_state_after(downgrade_to_null_state)

# Test1: Additional assert in "step-by-step verification approach", not present in "full roundtrip at once". This will fail!
assert db_state_after(upgrade to migration1) == db_state_after(downgrade to migration1)

Looking at the alembic comparison implementation, https://github.com/sqlalchemy/alembic/blob/main/alembic/autogenerate/compare.py, there's enough going on that it's probably too challenging to maintain a comparison implementation here.
But perhaps I can hook it up where it performs the equivalent of an autogenerate between the before MetaData and the upgrade->downgrade MetaData.
That way (similarly to the existing tests), I can take advantage of all the existing alembic comparison code (already nicely maintained by zzzeek, so i dont have to!). I'll try to see whether it's realistic. I know that certain things about alembic's implementation aren't super amenable to this kind of hooking, but if it works, then this sounds ideal.
If I can't get it to work, then at least the full history roundtrip is another known-straightforward option.

Also fwiw, 0.5.1 released the updated up_down_consistency test. But i may or may not have the bandwidth to start looking into the above alembic comparison code, to see if it's usable.

So I think I managed to get something that generally works like suggested above.
Given alembic's API and impl of the comparison functions, It seemed impractical to actually use those directly (although if someone can come up with a more direct impl, i'd be all for it).
Instead, this uses the same reasoning that test_models_match_ddl uses, namely that the autogenerate feature itself ought to be able to tell the difference between two metadata we might produce (original vs upgrade1, and original -> upgrade2</sup -> downgrade vs upgrade1</sup).
I think this is maybe actually close to best-case scenario, using alembic builtin autogeneration capabilities, because if someone (alembic-utils, for example) implements support for new autogenerated objects/comparisons, then this automatically benefits from it


[Docs] Screenshot comparison tool recommendations

Any recommendations for screenshot comparison tools? This would be great to include in the docs!
I want to upload my screenshots, compare them, and come out with a static link I can send to a designer or PM!

I don't think this is a good approach.  All of these are independent and can change with any environment change (such as minor OS version, new RN version, etc.).

@LeoNatan. I hear you! Changes to screenshots are certainly inevitable and a concern. I think there must be a sustainable way to expect certain changes, but also to catch and reject unexpected changes. This problem reminds me a lot of the discussion around Jest Snapshot Testing.

Loki provides this for storybook: https://github.com/oblador/loki

Closing this issue. Maintaining such recommendations in docs is out of scope for the project.


Fixed CMakeLists.txt

Use find_path to verify lua existence. Works for CMake 3.4 on Ubuntu 15.04.

Thanks for the change. It probably makes more sense to use the find_package FindLua module (https://cmake.org/cmake/help/latest/module/FindLua.html) which will populate all the other variables properly too.


Dragonfly web management page unable to view preheating details

Failed and ongoing preheating tasks cannot view preheating details

Successful preheating tasks can view detailed preheating information

@Liam-Zhao

@zsksy123 Please send preheat failure response data

Please send preheat failure response data

After investigation, it was found that the preheating task was not a failed one and detailed information cannot be viewed
When the API is used to view the preheating information, the detailed information of the preheating task without the Authorization field cannot be displayed on the web page
The details are as follows.

Preheating through the Open API will not work even if the Authorization field is added, but preheating tasks created through the console will

@zsksy123
The error occurred because you set headers to null, so the page cannot be accessed. This problem has been fixed.

The error occurred because you set headers to null, so the page cannot be accessed. This problem has been fixed.

I can't access it this way either
curl --location --request POST "http://${host}/api/v1/jobs"
--header 'Content-Type: application/json'
--header "Authorization: ${bearer_token}"
--data-raw '{
"type": "preheat",
"args": {
"type": "image",
"url": "https://ghcr.io/v2/dragonflyoss/dragonfly2/manager/manifests/v2.0.5"
}
}'


Any PiP splitscreen - select/change any source

Please read conditions below carefully, and don't delete this part. Invalid issues will be closed.

No apps related to piracy or intellectual property infringement is allowed.
We can't guarantee if the app will be developed by anyone.
We encourage you to develop the app by yourself. This would be a great contribution to webOS homebrew community.

[* ] I understand conditions above
[ ] (Optional) I'd like to develop this app by myself

Issue content starts below this line

A custom Picture in Picture (overlay, move, resize pip 2
Option to flip between 1&2
Select any source/app for each pip panel….
(Screen one has audio by default)
Wayland composited windows (free as much memory as poss 🤷🏼♀) ?
Perhaps run 2 apps at same time and trick them into sitting in our panes as if that was WebOS?

Hello! After getting a TV running webOS 8/9, I'm able to dig for a bit. This is possible with some caveats.
The list of allowed apps are defined by webOS. And they're modifiable with luna call luna://com.webos.service.config/setConfigs once you get root. Basically, you only need to add new app IDs to existing settings.
{
  "configs": {
    "multiview.recommendedApps": [
      {
        "subApp": [
          {
            "appId": "com.webos.app.browser",
            "rank": 1
          },
          {
            "appId": "com.webos.app.camera",
            "rank": 2
          },
          {
            "appId": "com.webos.app.miracast",
            "rank": 3
          },
          {
            "appId": "youtube.leanback.v4",
            "rank": 4
          },
          {
            "appId": "spotify-beehive",
            "rank": 5
          },
          {
            "appId": "com.limelight.webos",
            "rank": 6
          },
          {
            "appId": "org.xbmc.kodi",
            "rank": 7
          }
        ],
        "mainAppId": "com.webos.app.livetv",
        "blacklistCountryGroup": [
          "CN",
          "HK"
        ]
      },

For some apps (like Moonlight), it seems that video can't work in multiview mode though.
I'll do researches and publish my findings when I have more resources, and hopefully we could make this feature more useful.


Add to comunity plugins

Hello! I Can't find throw community plugins search in obsidian

Only examined plugins are searchable on the Community plugins tab. I believe the Obsidian team will soon examine HK Code Block and register it to the plugin list. Until then, you should manually download HK Code Block, or you may use BRAT.