Helm chart should have parity with raw yaml deployment

Is your feature request related to a problem? Please describe.
Some Alluxio features such as tiered storage, and credentials as secret env variables cannot be configured using helm charts as of now.
Describe the solution you'd like
Properties recognized by helm chart should provide greater configurability.
Describe alternatives you've considered
Urgency
Additional context
If parity is not there, the convenience of a helm chart is meaningless.

Features that should be included:

tiered storage
secrets such as aws credentials as env variables
arbitrary JAVA_OPTS for different process types
choice b/w daemonset or replicaset for alluxio workers

Open Items as of today:

Persistent volumes should be configurable for embedded journal. Currently emptyDir ephemeral storage is used by default and any restart, such as for configuration updates, will loose metadata


How to setup workspace

I tried:
git clone
gradlew setupDecompWorkspace
import to IDEA
gradlew genIntellejRuns(gradlew gIR)
run "Minecraft Client" and get OpenModsCore missing
add OpenModsLib jar to ./run/asset/mods and get Duplicate Mods
How to setup?

You need to check out submodules:
git submodule init
git submodule update

Also, this line needs to be added to JVM arguments on run configuration:
-Dfml.coreMods.load=openmods.core.OpenModsCorePlugin
And then you have to make sure you also have OpenPeripheralCore in classpath -  either as deobfuscated jar in mod folder or as separate project (not sure how to do it in IDEA without messing with project structure).

Thx! It’s worth adding it to readme


media-types: init at 10.1.0

Description of changes
Add package media-types version 8.0.0.
This package includes the latest changes in mime.types.
In nginx mime-types added missing types specified in the recommended nginx settings - https://github.com/h5bp/server-configs-nginx
Also removed duplicate extensions in nginx mime-types.
Example:
nginx[130522]: nginx: [warn] duplicate extension "frm", content type: "application/x-maker", previous content type: "application/vnd.ufdl" in /etc/nginx/nginx-mime.types:760
nginx[130522]: nginx: [warn] duplicate extension "fm", content type: "application/x-maker", previous content type: "application/vnd.framemaker" in /etc/nginx/nginx-mime.types:760
nginx[130522]: nginx: [warn] duplicate extension "shp", content type: "application/x-qgis", previous content type: "application/vnd.shp" in /etc/nginx/nginx-mime.types:772
nginx[130522]: nginx: [warn] duplicate extension "shx", content type: "application/x-qgis", previous content type: "application/vnd.shx" in /etc/nginx/nginx-mime.types:772
nginx[130522]: nginx: [warn] duplicate extension "sce", content type: "application/x-scilab", previous content type: "application/vnd.etsi.asic-e+zip" in /etc/nginx/nginx-mime.types:778
nginx[130522]: nginx: [warn] duplicate extension "amr", content type: "audio/AMR", previous content type: "audio/AMR" in /etc/nginx/nginx-mime.types:825
nginx[130522]: nginx: [warn] duplicate extension "awb", content type: "audio/AMR-WB", previous content type: "audio/AMR-WB" in /etc/nginx/nginx-mime.types:826
nginx[130522]: nginx: [warn] duplicate extension "qcp", content type: "audio/EVRC-QCP", previous content type: "audio/EVRC-QCP" in /etc/nginx/nginx-mime.types:836
nginx[130522]: nginx: [warn] duplicate extension "chm", content type: "chemical/x-chemdraw", previous content type: "application/vnd.ms-htmlhelp" in /etc/nginx/nginx-mime.types:884
nginx[130522]: nginx: [warn] duplicate extension "cif", content type: "chemical/x-cif", previous content type: "application/vnd.multiad.creator.cif" in /etc/nginx/nginx-mime.types:885
nginx[130522]: nginx: [warn] duplicate extension "cml", content type: "chemical/x-cml", previous content type: "application/cellml+xml" in /etc/nginx/nginx-mime.types:887
nginx[130522]: nginx: [warn] duplicate extension "sdf", content type: "chemical/x-mdl-sdfile", previous content type: "application/vnd.Kinar" in /etc/nginx/nginx-mime.types:911
nginx[130522]: nginx: [warn] duplicate extension "mpc", content type: "chemical/x-mopac-input", previous content type: "application/vnd.mophun.certificate" in /etc/nginx/nginx-mime.types:917
nginx[130522]: nginx: [warn] duplicate extension "aso", content type: "chemical/x-ncbi-asn1-binary", previous content type: "application/vnd.accpac.simply.aso" in /etc/nginx/nginx-mime.types:922
nginx[130522]: nginx: [warn] duplicate extension "asn", content type: "chemical/x-ncbi-asn1-spec", previous content type: "chemical/x-ncbi-asn1" in /etc/nginx/nginx-mime.types:923
nginx[130522]: nginx: [warn] duplicate extension "pdb", content type: "chemical/x-pdb", previous content type: "application/vnd.palm" in /etc/nginx/nginx-mime.types:924
nginx[130522]: nginx: [warn] duplicate extension "pgb", content type: "image/vnd.globalgraphics.pgb", previous content type: "image/vnd.globalgraphics.pgb" in /etc/nginx/nginx-mime.types:987
nginx[130522]: nginx: [warn] duplicate extension "cpt", content type: "image/x-corelphotopaint", previous content type: "application/mac-compactpro" in /etc/nginx/nginx-mime.types:1008
nginx[130522]: nginx: [warn] duplicate extension "art", content type: "message/rfc822", previous content type: "image/x-jg" in /etc/nginx/nginx-mime.types:1027
nginx[130522]: nginx: [warn] duplicate extension "gsm", content type: "model/vnd.gdl", previous content type: "audio/x-gsm" in /etc/nginx/nginx-mime.types:1043
nginx[130522]: nginx: [warn] duplicate extension "csh", content type: "text/x-csh", previous content type: "application/x-csh" in /etc/nginx/nginx-mime.types:1122
nginx[130522]: nginx: [warn] duplicate extension "sh", content type: "text/x-sh", previous content type: "application/x-sh" in /etc/nginx/nginx-mime.types:1138
nginx[130522]: nginx: [warn] duplicate extension "tcl", content type: "text/x-tcl", previous content type: "application/x-tcl" in /etc/nginx/nginx-mime.types:1139
nginx[130522]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx[130522]: nginx: configuration file /etc/nginx/nginx.conf test is successful

cc @SuperSandro2000 @pennae @ajs124 @dasJ
Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[x] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
22.11 Release Notes (or backporting 22.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[ ] Fits CONTRIBUTING.md.

cc @SuperSandro2000 @ncfavier @ajs124

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/prs-ready-for-review/3032/1566

I don't understand this, what are you pointing to exactly? The mime.types file in that repository is only ~100 lines and I don't see Debian's media-types mentioned anywhere.

Here are the recommended mime-types for compression:
https://github.com/h5bp/server-configs-nginx/blob/main/h5bp/web_performance/compression.conf

If these need to be changed it should be done in the NixOS module.

These changes are required first:
https://github.com/NixOS/nixpkgs/pull/188002
https://github.com/NixOS/nixpkgs/pull/187994

Great, so you are changing them. Please explain why this package is needed.

Great, so you are changing them. Please explain why this package is needed.

This package includes more `mime-types', is frequently updated and synchronized with the IANA media types.

Update PR and package to version 10.0.0.

What is the status here? Should we merge or not?

I don't know how to optimize it better.
Can leave it like this :)

What is the status here? Should we merge or not?

The manual patching is not very robust and I think it will break unnoticed with the next update.

The manual patching is not very robust and I think it will break unnoticed with the next update.

Added small test.

Update to 10.1.0 version.

Changed the license since it's actually public domain.
I think we should merge this. The changes doesn't seem to be huge but some more text types will probably compress more files. Waiting for some more feedback and will merge in a few days otherwise.

If the current option doesn't fits, perhaps then bury the file in a separate repository, such as nix-community, and update manually?

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/prs-ready-for-review/3032/2851

Update PR.
Synchronized some mime-types with ${pkgs.nginx}/conf/mime.types.

Diff LGTM. Would prefer to see this as a configurable NixOS module though.

There was such an idea, but I didn’t try to implement it. And there were doubts that such PR could be merged to upstream.
This PR has been hanging around for quite a long time. In addition, now it also requires minor adjustments.


Automated testing and local development UX for email login

Once #1143 is completed and there is a localstack setup (see https://github.com/usdigitalresponse/usdr-gost/pull/1157 which adds that). We should improve the email-based login system with the following:

Make it possible for contributors to login without 1) configuring an SMTP server w/ node mailer and 2) adding themselves to the users seed: https://github.com/usdigitalresponse/usdr-gost/blob/10ffd7335b3bb482a40b35745d6d61225730c2aa/packages/server/seeds/dev/ref/users.js#L18-L139
Write automated tests that validate SES was correctly called and that the login token contained in the email is valid for login for that user
Add some sort-of UX helper (utilizing localstack) for local development to ease logging-in without bypassing the email flow

Per discussion in Slack cc/ @TylerHendrickson @as1729
Note from @TylerHendrickson:

The LocalStack SES service provides an endpoint at GET /_aws/ses that can be used to retrieve sent SES messages as JSON.

I'm working on #653 and was planning on adding tests with localstack. Is that in progress elsewhere/should I hold off on that? I've got it part of the docker-compose setup and functional with SDK v3 but no tests yet.

(or, I can take on this ticket and roll it into the work for #653)

@jakekreider I think #1157 adds localstack due to being blocked on that S3 stuff.
Do feel free to take this ticket on! Feel to ping me if you want to brainstorm the local dev ux.

Assigning myself this ticket, primarily to address this bullet point:

Make it possible for contributors to login without 1) configuring an SMTP server w/ node mailer and 2) adding themselves to the users seed

because I found this step confusing during onboarding.

I think this issue may have been addressed in https://github.com/usdigitalresponse/usdr-gost/pull/2540
@sanason Let me know if you agree and/or had anything else planned for this issue; if not I can close it out.

I think this issue may have been addressed in #2540
@sanason Let me know if you agree and/or had anything else planned for this issue; if not I can close it out.

@TylerHendrickson Yeah, Jeff fixed all of the local development UX problems, both in #2450 and by adding Mailpit.
I did do some investigation related to the other suggestions in this ticket.

Add some sort-of UX helper (utilizing localstack) for local development to ease logging-in without bypassing the email flow

I think the creator of the ticket was suggesting that we eliminate the SMTP email-sending pathway and use only the SES API email-sending pathway in all environments (mocking SES with Localstack in the local dev environment). The problem with this idea is that having a dev tool like Mailpit is really nice and I was unable to find any comparable "UX helper" that works with Localstack SES. The cloud/pro version of Localstack has a UI for viewing received emails but I didn't find anything good that was self-hosted and free.

Write automated tests that validate SES was correctly called and that the login token contained in the email is valid for login for that user

Writing an e2e test for login still might be worth doing. I wrote a Cypress test that seemed to work, against a test db that I migrated and seeded manually, but I was defeated by the task of automating the initialization of the db. The way the repo is structured makes it difficult for the code in e2e to perform db migration and we don't have the backend service set up to handle its migrations itself on start-up.

TL;DR for my previous comment - Yes, I think this can be closed. If we ever go on a Cypress-test-writing bender, we should remember to write a login test but I don't think we need a ticket to remind us of that.


A config section that accepts an integer as the rim width (defaults is same as it is "post" this potential addition).
A Boolean to disable all (registered) wet biomes (defaults to false).
A config section that accepts a string of Biomes to never generate (empty by default, uses the same system as registering wet biomes).
A Boolean that overrides rim heights and has the rim flush with the terrain (e.g. if the rim goes into a mountain it won't cut it off it will "go" with it smoothly, is set to false by default).
I would like to hear feedback on what you think of these and if you want to consider adding a few!
Lastly, bug-fix:
In wet biomes like rivers, or BOP kelp forest/coral reef etc.
When you have the rim set to "go to bedrock" mode, when the water generates it overrides the rim blocks and leaves floating rim blocks above the water (the floating blocks were fixed in 1.7.1 but the water still overrides the rim).

Try using minecraft:stone as the rim block, it'll be replaced by the biome top block
I can look into that
Do you mean remove them from world gen? I can't do that, or it's outside the scope of this mod. The Some Like It Dry mod can reduce or remove oceans.
See point 3, check out mods like biome tweaker or dimensional control for that.
I'm not quite sure what you're asking here. If you want the rim flush with the hex rather than one block above, that's what the sunken biome config is for.
Yeah that shouldn't be happening, I'll look into it. Also note that the coral_reef and kelp_forest biomes are added to the sunken biome list by default in the newest version. If you config file what generated before, you'll need to add those biomes yourself (or delete the config file to let it regenerate).

Can the Boolean still be an opinion though (false by default)? How it looks is subjective to each person in my opinion.

I can appreciate the look is subjective, but adding that in isn't as easy as just throwing in an extra config option. Parts of the terrain height code are built around the fact that the edges are all the same height, and I don't plan on spending time rewriting that for an idea I don't think looks good.


[INTEL MKL] Updated the DNNL version from v2.1 to v2.2 release candidate

@penpornk , this is the TensorFlow 2.5 targeted DNNL version. please review. Thanks a lot!

The oneDNN CI Build failed. Is this expected?

The oneDNN CI Build failed. Is this expected?

@penpornk It is failing a bf16 remapper test that I don't see in our internal tests.  We will try to reproduce.
I would recommend you go ahead and merge, we will submit a patch if we can reproduce.  Thanks.

@agramesh1 Got it. I'll merge this if other tests pass. Thank you for the quick reply!

@penpornk , regard to the build error found in the Ubuntu CPU CI test, we couldn't reproduce it in our local machine or our internal testing machine. This could be another similar issues we had before. probably we only need to add the following lines in the third_party/mkl_dnn/mkldnn_v1.BUILD to fix it?
a/third_party/mkl_dnn/mkldnn_v1.BUILD
+++ b/third_party/mkl_dnn/mkldnn_v1.BUILD
@@ -93,6 +93,7 @@ _TEXTUAL_HDRS_LIST = glob([
"include/**/",
"src/common/.hpp",
"src/common/ittnotify/*.h",

"src/common/ittnotify/legacy/.h",
"src/cpu/.hpp",
"src/cpu/**/*.hpp",

@cuixiaom Thank you for the suggestion! I've already fixed it internally with a similar fix (changing "src/common/ittnotify/*.h", to "src/common/ittnotify/**/*.h",).

Dear @penpornk and @vpirogov, may you please comment: there is another update planned to add oneDNN v2.2 release, correct? Currently the sources for mkl_dnn_v1 have been updated to https://github.com/oneapi-src/oneDNN/archive/3d1e248f293cb962eb73bfc1298a0c66a3ad3298.tar.gz, but it seems to be not the final v2.2 release, right?

Hi @alenik01, TF 2.5 will likely use this commit (unless there are some patches needed). For the master branch, I think we will update to the final v2.2 release once they are out. Cc'ing @agramesh1 for more info.

@penpornk @alenik01 there was a fix made after this commit, and expect that that it will tagged v2.2.  So looks like we will have a patch for upgrading to the tagged branch.

@alenik01 The update to v2.2 went into master yesterday (#48248). We are cherry-picking the update into TF 2.5 (#48345).

@penpornk, thanks for pointing this out, I will update mkl_dnn_acl_compatible accordingly.

@alenik01 Thank you! Do you think we can go back to using the same repository now that the branch cut is done?

@penpornk, we, unfortunately, have some problems with compiling JIT'ed sources (currently they are excluded in Bazel for our repository build).

@alenik01 Using the mkl_dnn_v1 repository will only force you to use the same BUILD file. You can still use a different build rule (like how it was before the ACL PR) and exclude the x64 sources.

@penpornk, having the same BUILD file with different targets is indeed possible. May you please comment, will mkl_dnn_v1 repository be updated in terms of oneDNN version from time to time? E.g., v2.3 release is scheduled for the end of June.

@alenik01 Yes, the mkl_dnn_v1 repository is updated from time to time by the @TensorFlow-MKL team. (But not necessarily every minor release, for example, from v1.6.4, we skipped v1.7-v1.8 and upgraded to v2.1.) cc: @agramesh1
If in the future you need to use a different oneDNN version from mkl_dnn_v1 or need a different update schedule, we can create a separate repo again. :)

@alenik01 @penpornk we don't have any specific schedule for updating oneDNN, we do skip revs if there is no need to upgrade.

@penpornk @agramesh1 Many thanks for the explanation. The point is that if a new functionality will be added to oneDNN v2.3 we would like to update the repository, thus I suggest to keep separate BUILD files and repositories for some time.

@alenik01 Sounds good to me. Thank you for the clarification!


Fix bug with maxNativeZoom == 0

Setting maxNativeZoom to 0 does not work as expected (only use zoom level 0) but instead disables the function.
This PR fixes this problem.
Same fix applies for (afaik current stable) 0.7.5

Nice catch, thanks!

Can you apply the same patch to stable (0.7.5), too?
Or should I make a PR for this one as well?


[1.8.9] WorldBorder not sent to client after /worldborder set 200

Tested on SF 1.8.9 d3c31faa86dad12fd69cf494d0a3974ade985a4e (8 behind)
WorldBorder not sent to client after /worldborder set 200
Tested on single player dev environment on SpongeForge.
Reconnecting shows correct border, attempting to walk through border before reconnecting rubberbands you back.

Works fine on latest SpongeForge.


Scoped spawn API to spawn non-static futures

crossbeam, rayon, and scoped_threadpool all have an API that allows you to safely spawn threads with non-'static closures. It's kind of complicated and requires unsafe code to implement. I was wondering if it would be possible to do the same thing with runtime's spawn method, and how much interest there is in spawning non-'static futures. It could be implemented in a separate crate at first and only merged in at some point in the future if it makes sense to do so.

This seems similar to https://github.com/withoutboats/juliex/issues/19; replying on there (:

Hi!  I did a little bit of prototyping along the lines mentioned by @yoshuawuyts in the other thread (where we don't directly spawn crossbeam threads and block).  Would be really helpful to hear some expert opinions on this (esp. the unsafe-ties).   Below, we summarize what we are looking to address, and a possible implementation
Motivation
Present executors (tokio, juliex, futures-rs) all support spawning 'static futures onto a thread-pool.  owever, it is often useful to parallelly spawn a stream of futures.  While the future combinators such as for_each_concurrent offer concurrency, they are bundled as a single Task structure by the executor, and hence are not driven parallelly. This can be seen when benchmarking a reasonable
number (> ~1K) of I/O futures, or a few CPU heavy futures.
Scope API
We propose an API similar to crossbeam::scope to allow controlled spawning of futures that are not 'static. The key function is:
pub fn scope<'a, T: Send + 'static,
             F: FnOnce(&mut Scope<'a, T>)>(f: F)
             -> impl Stream {
    // ...
}

This function is used as follows:
#[tokio::test]
async fn scoped_futures() {
    let not_copy = String::from("hello world!");
    let not_copy_ref = &not_copy;

    let mut stream = crate::scope(|s| {
        for _ in 0..10 {
            let proc = async || {
                assert_eq!(not_copy_ref, "hello world!");
            };
            s.spawn(proc());
        }
    });

    // Uncomment this for compile error
    // std::mem::drop(not_copy);

    use futures::StreamExt;
    let mut count = 0;
    while let Some(_) = stream.next().await {
        count += 1;
    }
    assert_eq!(count, 10);
}

Implementation
Our current implementation simply uses unsafe glue to actually spawn the futures. Then, it records the lifetime of the futures in the returned Stream object.
Currently, for soundness, we simply panic! if the stream is dropped before it is fully driven. Another option (not implemented here), may be to drive the stream using a current-thread executor inside the Drop impl.  That might be right analogue of crossbeam waiting on the join of spawned threads.  Would be great to hear any thoughts on the problem, and the safety of this implementation.
Please find the implementation here: https://github.com/rmanoka/tokio-scoped

@rmanoka thanks for sharing; that looks very cool!


Fix main link

According to https://github.com/yuvipanda/hubtraf/commit/78ab8b5ad9d09ce245f5056adebce843978c4351#diff-2eeaed663bd0d25b7e608891384b7298

Thank you very much, @1kastner!


DOCS: Update readme

Minor changes to README.md
Added a note about the sematic PR convention.

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 80.48%. Comparing base (fa00714) to head (6b22da5).

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #4709      +/-   ##
==========================================
- Coverage   80.48%   80.48%   -0.01%
==========================================
  Files         122      122
  Lines       54964    54964
==========================================
- Hits        44240    44238       -2
- Misses      10724    10726       +2

@Suggestions were added along with a link to the commit-style actions yaml in the README.md.


Food and Drink for September 13 OKC JUG

Meeting Date: September 13
Pizza:

2 cheese

2 pepperoni

2 sausage

2 supreme

2 veggie

Drinks:

2 Coke

1 Sprite

1 Dr. Pepper

1 Diet Coke (just for @drodmaster : )

20 plates

Ordered as requested. Should arrive at 11:15 - 11:30.Plates cups, and napkins are already at prototek.


[FEATURE] Support macro for meta-programming in macro

Maybe something like:
#
for (name) in (expr) (block_expr) ->
{
    @&__it: expr.iterator();
    while _it.has_next() {
        name: __it.next();
        block_expr
    }
}
#

Maybe something like:
#
for (name) in (expr) (block_expr) ->
{
    @&__it: expr.iterator();
    while _it.has_next() {
        name: __it.next();
        block_expr
    }
}
#


keybinds: fix mouse pass

Describe your PR, what does it fix/add?
Fixes mouse pass not refocusing active Wayland surface when passing to XWayland surface.
Is there anything you want to mention? (unchecked code, possible bugs, found problems, breaking compatibility, etc.)
Couldn't find any reason for not using last surface for the mouse in old commits. Maybe I missed something I don't know about? Doesn't introduce any bugs from my testing.
Is it ready for merging, or does it need work?
Ready for merging

the focus can be different. Probably better to track both at beginning. See g_pSeatManager->state


Shebang line in Flutter script causes issues on macOS Monterey

Description
When installing and using the Flutter SDK on macOS Monterey, I encountered an issue where the shebang line in the Flutter script (#!/usr/bin/env bash) caused problems. Changing it to #!/bin/bash resolved the issue. This problem can affect users who have bash located in a different path or have env misconfigured.
Steps to Reproduce:

Clone the Flutter SDK repository:

git clone https://github.com/flutter/flutter.git -b stable ~/development/flutter

Add Flutter to PATH:

export PATH="$PATH:~/development/flutter/bin"

Run flutter doctor or any other Flutter command.

Expected Behavior:
The Flutter command should execute without any issues.
Actual Behavior:
The Flutter command fails to execute, and only outputs ./flutter.
Workaround:

Workaround 1:Changing the shebang line in all the Flutter scripts from #!/usr/bin/env bash to #!/bin/bash resolves the issue:

sed -i '' '1s|.*|#!/bin/bash|' ~/development/flutter/bin/flutter

**Workaround 2: Adding bash to the PATH in the shell configuration file (~/.zshrc or ~/.bash_profile).

export PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/local/bin:$PATH"

Suggested Solution:
Modify the shebang line in the Flutter script to ensure compatibility across different environments or provide documentation to help users resolve this issue.
Additional Information:

macOS Version: Monterey
Flutter Version: 3.22.0

Sample Installation Script:
Here's a sample script that includes the workaround for this issue:
#!/bin/bash

FLUTTER_PATH="$HOME/development/flutter"

modify_shebang() {
  if head -n 1 "$FLUTTER_PATH/bin/flutter" | grep -q "#!/usr/bin/env bash"; then
    echo "Modifying shebang line in Flutter script..."
    sed -i '' '1s|.*|#!/bin/bash|' "$FLUTTER_PATH/bin/flutter"
  fi
}

if [ -d "$FLUTTER_PATH" ]; then
  echo "Flutter SDK is already installed at $FLUTTER_PATH"
  modify_shebang
else
  echo "Cloning Flutter SDK..."
  git clone https://github.com/flutter/flutter.git -b stable "$FLUTTER_PATH"
  modify_shebang
  echo "Flutter SDK installed at $FLUTTER_PATH"
fi

SHELL_RC_FILE="$HOME/.zshrc"
if ! grep -q 'export PATH="$PATH:$HOME/development/flutter/bin"' "$SHELL_RC_FILE"; then
  echo 'export PATH="$PATH:$HOME/development/flutter/bin"' >> "$SHELL_RC_FILE"
  source "$SHELL_RC_FILE"
  echo "Flutter added to PATH in $SHELL_RC_FILE"
fi

flutter doctor

echo "Flutter installation script completed."

Thanks for the report @masekere
I am on macOS Monterey and have installed flutter by following the steps you mentioned, but didn't get any errors and able to run all flutter commands properly.

The Flutter command fails to execute, and only outputs ./flutter.

Do you get any error or log that we can take a look ?

Thanks for the response.
I did not get any error log since the program fails by not running everything in the script. However, if bash is added to the environment, the script executes without failure.
I had to add bash to my environment by running the following command:
export PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/local/bin:$PATH"

This resolved the issue for me.
Do you have any suggestions for making this solution more permanent, or any other recommendations?
Thank you for your help!

Thanks for the feedback @masekere
According to the documentation, zsh is the default shell for macOS supporting Catalina and above. Maybe check https://github.com/flutter/flutter/issues/122148 and see if it resembles your case and solving it would also resolve your issue as well.


New topic for Umbraco

Thank you for contributing! Please confirm this pull request meets the following requirements:

[x] I followed the contributing guidelines: https://github.com/github/explore/blob/master/CONTRIBUTING.md
[x] I have no affiliation with the project I am suggesting (as a maintainer, creator, contractor, or employee).

Which change are you proposing?

[ ] Suggesting edits to an existing topic or collection
[x] Curating a new topic or collection

Curating a new topic or collection

[x] I've formatted my changes as a new folder directory, named for the topic or collection as it appears in the URL on GitHub (e.g. https://github.com/topics/[NAME] or https://github.com/collections/[NAME])
[x] My folder contains a *.png image (if applicable) and index.md
[x] All required fields in my index.md conform to the Style Guide and API docs: https://github.com/github/explore/tree/master/docs

Umbraco has become the leading open source CMS on the Microsoft ASP.NET stack.
By curating this topic, it will provide context to potential users.

In the interest of transparency, I have contributed code to the Umbraco-CMS project, but I am not a maintainer, creator, contractor or employee of the organisation. Just an active (eager) community member, hopefully that's not seen as a conflict of interest here?

Awesome, thank you @talsafran!


Does not play linked video correctly

Please tick all applicable boxes.

[X] I am using Python 3.5 or higher (run python --version on the command line)
[X] I have followed the official guides to install the bot for my system
[X] I have updated my dependencies to the latest version using the appropriate update script

Which version are you using?

[X] The latest master version (1.9.7)
[ ] The latest review version

What type of issue are you creating?

[X] Bug
[ ] Feature request
[ ] Question

Description of issue
The issue I'm running into on my server is that when any user plays specific videos it plays some arbitrary video. It consistently plays specific videos though.
Steps to reproduce

!play  https://www.youtube.com/watch?v=M5625-IKTXk becomes PIORES intros do Youtube
!play https://www.youtube.com/watch?v=lEMljqDrgMY becomes Sucker for Pain - Lil Wayne, Wiz Khalifa & Imagine Dragons w/ Logic & Ty Dolla $ign ft X Ambassadors

Log file
Here is the relevant log messages
[186.4312684535980225] 2018-05-25 23:39:21,582 - INFO - musicbot.bot | In bot.py::MainThread(140689413682944), line 2734 in on_message: <id>/<user>: !play  https://www.youtube.com/watch?v=M5625-IKTXk
[186.4833190441131592] 2018-05-25 23:39:21,634 - DEBUG - musicbot.bot | In bot.py::MainThread(140689413682944), line 1517 in cmd_play: {'_type': 'url', 'url': 'ytsearch: https:%2F%2Fwww.youtube.com%2Fwatch?v=M5625-IKTXk', 'ie_key': None, 'extractor': 'generic', 'webpage_url': ' https:%2F%2Fwww.youtube.com%2Fwatch?v=M5625-IKTXk', 'webpage_url_basename': ' https:%2F%2Fwww.youtube.com%2Fwatch', 'extractor_key': 'Generic'}
[189.7359869480133057] 2018-05-25 23:39:24,886 - DEBUG - musicbot.entry | In entry.py::MainThread(140689413682944), line 54 in get_ready_future: Created future for None
[189.7396049499511719] 2018-05-25 23:39:24,890 - DEBUG - musicbot.bot | In bot.py::MainThread(140689413682944), line 825 in serialize_queue: Serializing queue for <id>
[189.7403049468994141] 2018-05-25 23:39:24,891 - INFO - musicbot.entry | In entry.py::MainThread(140689413682944), line 220 in _really_download: Download started: https://www.youtube.com/watch?v=AiwxMGTBuuo
[191.1594419479370117] 2018-05-25 23:39:26,310 - INFO - musicbot.bot | In bot.py::MainThread(140689413682944), line 2734 in on_message: <id>/<user>: !clear
[192.0447630882263184] 2018-05-25 23:39:27,195 - INFO - musicbot.entry | In entry.py::MainThread(140689413682944), line 230 in _really_download: Download complete: https://www.youtube.com/watch?v=AiwxMGTBuuo

Looking at the logs, it looks like there is a bug in the generic extractor where it'll search youtube with the url that should just be recognized as a youtube link.

Doing a little bit more digging and it looks like when youtube links play it's just by luck that it works for some of them. Some URLs result in direct results where it's not a search, for example this
However some youtube links seem to be encoded and searched for directly. Here is the result list which seems to change over time to be the correct result. Youtube Search

I wasn't able to reproduce the issue with the commands provided.

Note in your logs this:
[186.4312684535980225] 2018-05-25 23:39:21,582 - INFO - musicbot.bot | In bot.py::MainThread(140689413682944), line 2734 in on_message: <id>/<user>: !play  https://www.youtube.com/watch?v=M5625-IKTXk

Your users are using the play command with two spaces between !play and the URL, rather than one. Two spaces causes unintended behavior where the bot will treat the URL like a search query rather than playing it directly. As the bot intends for search queries to be playable too, there's not really too much I can do to prevent users accidentally doing this, so it might be wise to advise them that only one space is needed between the command and the URL.

@jaydenkieran I mean that's pretty lazy parsing, if there is absolutely nothing when you split on spaces then shouldn't it be expected behavior that the first argument of value be the first passed argument to the extrator?
If it's not a bug then it's just a bad design choice to allow two spaces (which is nearly invisible to the user) to act as a search query. In general I don't think any real search command would start with two spaces. This only affects people who don't see they may have mistakenly copied a link or copied a previously played string.
If it looks like a bug, acts like a bug, and it's not a bug, then it's a bug.

Sure. You’re welcome to submit a patch. I have no real interest in improving design flaws (or in this case - something that has simply been overlooked) at the moment and would rather focus on critical bugs.

When I have time I'll submit a PR.

@jaydenkieran Created a PR with a simple enough fix for this.

@ImthePeach Any particular reason it's on hold?

Most likely because this doesn't need to be a priority, and any occurence of this is, realistically, just user error. There are other, far larger issues in review that should be fixed before introducing extra things.

Sure I guess, but it's also such a minor change that it doesn't and shouldn't impede anyone...

I've worked it and fixed it locally because it's an annoying bug that is nearly invisible.

It's on hold because we are busy doing other things right now, we will check out your PR when we get to it but because this issue only occurs when you accidentally double space instead of hitting it once this issue isn't of a high enough priority to get taken care of immediately. When we do implement it, it would sit in the review branch for some time anyways before we would have it pushed to the master branch based on other developments being worked on. Simply put we will test it and add it near the time we do the next push from review to master.

This issue is fixed in the review branch. See merge here.


Custom MainGate

The goal of this milestone is to get familiar with Halo2 and create a multi-purpose gate to be across circuits. It should include:
Standard-like PLONK gate, inspired by MainGate from halo2wrong.
Assignment functions for different operations, like: is_bool, is_equal, is_zero, mul, add, select
The gate constrants should be:
a - Advice column
b - Advice column
c - Advice column
d - Advice column
e - Advice column

sa - Fixed column - selector for a
sb - Fixed column - selector for b
sc - Fixed column - selector for c
sd - Fixed column - selector for d
se - Fixed column - selector for e

s_mul_ab - Fixed column - selector for a * b
s_mul_cd - Fixed column - selector for c * d

s_constant - Fixed column - selector for s

instance - Instance column

g_s - Selector

g_s * (a * sa + b * sb + c * sc + d * sd + e * se + a * b * s_mul_ab + c * d * s_mul_cd + s_constant)

The MainChip struct should implement the Chip trait.
The columns should be constructed separately from MainChip, inside the constructor function for MainConfig (or CommonConfig). e.g.:
impl MainConfig {
  pub fn new<F: FieldExt>(meta: &mut ConstraintSystem<F>) -> Self {
    let advice = [(); NUM_ADVICE].map(|_| meta.advice_column());
    let fixed = [(); NUM_FIXED].map(|_| meta.fixed_column());
    let instance = meta.instance_column();

    advice.map(|c| meta.enable_equality(c));
    fixed.map(|c| meta.enable_equality(c));
    meta.enable_equality(instance);

    Self { advice, fixed, instance }
  }
}

The MainChip struct will have the following structure:
struct MainChip<F> {
  advice: [AssignedCell<F, F>; NUM_ADVICE],
  fixed: [F; NUM_FIXED],
}

Since Chip API allows just one assignment function -- which means also one return type.
For MainChip, we will define constructor:
impl MainChip<F> {
  pub fn new([AssignedCell<F, F>; NUM_ADVICE], fixed: [F; NUM_FIXED]) -> Self {
    Self { values, fixed }
  }
}

During the assignment, the values will be copied into advice columns in order defined in the CommonConfig (or MainConfig).
impl<F: FieldExt> Chip<F> for MainChip<F> {
	type Output = AssignedCell<F, F>;

	fn configure(common: &CommonConfig, meta: &mut ConstraintSystem<F>) -> Selector {
		let selector = meta.selector();

		meta.create_gate("main_gate", |v_cells| {
			/// MainGate constraints from above
		});

		selector
	}

	fn synthesize(
		self, common: &CommonConfig, selector: &Selector, mut layouter: impl Layouter<F>,
	) -> Result<Self::Output, Error> {
		layouter.assign_region(
			|| "main_gate",
			|region: Region<'_, F>| {
				let mut ctx = RegionCtx::new(region, 0);
				ctx.enable(selector.clone())?;

				// ...Assign advice and fixed columns...

				Ok(res)
			},
		)
	}
}

For different arithmetic operations and constraints, we will use Chipset API on top of MainGate's Chip API.
For AddChipset:
impl<F: FieldExt> AddChipset<F> {
	pub fn new(x: AssignedCell<F, F>, y: AssignedCell<F, F>) -> Self {
		Self { x, y }
	}
}

impl<F: FieldExt> Chipset<F> for AddChipset<F> {
        // Selector for main_gate
	type Config = Selector;
	type Output = AssignedCell<F, F>;

	fn synthesize(
		self, common: &CommonConfig, config: &Self::Config, mut layouter: impl Layouter<F>,
	) -> Result<Self::Output, Error> {
	        let zero = layouter.assign_region(
			|| "assign_values",
			|region: Region<'_, F>| {
				let mut ctx = RegionCtx::new(region, 0);
                                 // ...Assign zero value to a cell
				Ok(zero)
			},
		)?;

                let advices = [self.x, self.y, zero, zero, zero];
                let fixed = [F::one(), F::one(), -F::one(), ...zeros];
	        let main_chip = MainChip::new(advices, fixed);
                let res = main_chip.synthesize(common, config)?;

		Ok(res)
	}
}

Pull request:
https://github.com/eigen-trust/protocol/pull/132


Reference Ravi and Larochelle in About section

The About mini-ImageNet section cites Vinyals et al. for proposing mini-ImageNet. This is true but when they published their paper, they did not include the classes which comprise mini-ImageNet until over a year later in Appendix B of a new submission on arXiv. The Ravi and Larochelle paper you cite in your Acknowledgements section created their own split since Vinyals et al. did not provide one.
The README.md on this repo cites the Ravi and Larochelle paper, but never mentions that the train, val, and test csv files come from that paper instead of the Vinyals paper which has a very different split of classes. It would be helpful to include the information of the origin of the train, val, and test splits in the About mini-ImageNet section.

Thanks a lot for reporting this valuable issue.
I've updated the README.md file and included the information you provided (I've also included your GitHub account in the acknowledgments).
You may also create a pull request to update this project so that your account name will be added to the contributors' list.


Autosort

🆒 Your use case
The whole idea of using Capo is to cleverly sort the elements of the <head> tag.
I'm wondering why this hasn't been done before?
I wrote a plugin for the Nitro server for myself, you can see below. Mostly consists of copy-paste, because types in logger.mjs are not exported.
The plugin is executed on every hit, and this is actually not correct, as I understand it. Therefore, I want to hear what are the possibilities for optimization and other things? Then I can make a PR request if you're interested.
🆕 The solution you'd like

nuxt/src/server/plugins/capo.ts
import type { NitroApp } from 'nitropack'
import { JSDOM } from 'jsdom'

const ElementWeights: { [key: string]: any } = {
  META: 10,
  TITLE: 9,
  PRECONNECT: 8,
  ASYNC_SCRIPT: 7,
  IMPORT_STYLES: 6,
  SYNC_SCRIPT: 5,
  SYNC_STYLES: 4,
  PRELOAD: 3,
  DEFER_SCRIPT: 2,
  PREFETCH_PRERENDER: 1,
  OTHER: 0,
}

const ElementDetectors = {
  META: isMeta,
  TITLE: isTitle,
  PRECONNECT: isPreconnect,
  ASYNC_SCRIPT: isAsyncScript,
  IMPORT_STYLES: isImportStyles,
  SYNC_SCRIPT: isSyncScript,
  SYNC_STYLES: isSyncStyles,
  PRELOAD: isPreload,
  DEFER_SCRIPT: isDeferScript,
  PREFETCH_PRERENDER: isPrefetchPrerender,
}

function isMeta (element: Element) {
  return element.matches('meta:is([charset], [http-equiv], [name=viewport])')
}

function isTitle (element: Element) {
  return element.matches('title')
}

function isPreconnect (element: Element) {
  return element.matches('link[rel=preconnect]')
}

function isAsyncScript (element: Element) {
  return element.matches('script[async]')
}

function isImportStyles (element: Element) {
  const importRe = /@import/
  if (element.matches('style')) {
    return importRe.test(element.textContent || '')
  }
  return false
}

function isSyncScript (element: Element) {
  return element.matches('script:not([defer],[async],[type*=json])')
}

function isSyncStyles (element: Element) {
  return element.matches('link[rel=stylesheet],style')
}

function isPreload (element: Element) {
  return element.matches('link[rel=preload]')
}

function isDeferScript (element: Element) {
  return element.matches('script[defer]')
}

function isPrefetchPrerender (element: Element) {
  return element.matches('link:is([rel=prefetch], [rel=dns-prefetch], [rel=prerender])')
}

function getWeight (element: Element) {
  for (const [id, detector] of Object.entries(ElementDetectors)) {
    if (detector(element)) {
      return ElementWeights[id]
    }
  }
  return ElementWeights.OTHER
}

function getHeadWeights (document: Document) {
  const headChildren = Array.from(document.head.children)
  return headChildren.map((element) => {
    return [element, getWeight(element)]
  })
}

function getSortedHead (document: Document) {
  const headWeights = getHeadWeights(document)
  const sortedHead = document.createElement('head')
  const sortedWeights = [...headWeights].sort((a, b) => {
    return b[1] - a[1]
  })

  sortedWeights.forEach(([element]) => {
    sortedHead.appendChild(element.cloneNode(true))
  })

  return sortedHead
}

export default defineNitroPlugin((nitroApp: NitroApp) => {
  nitroApp.hooks.hook('render:response', (response) => {
    if (response.headers && !response.headers['content-type']?.startsWith('text/html')) {
      return
    }

    const dom = new JSDOM(response.body)
    const sortedHead = getSortedHead(dom.window.document)

    response.body = response.body?.replace(/<head>(?:.|\n)*<\/head>/, sortedHead.outerHTML)
  })
})

🔍 Alternatives you've considered
No response
ℹ Additional info
After sorting view in Capo plugin for chrome:
real production site without autosort

real production site with autosort

I think need to update capo functions to match plugin result.

Syncing code with actual Capo.js repo, now get full match on production site

nuxt/src/server/plugins/capo.ts
import type { NitroApp } from 'nitropack'
import { JSDOM } from 'jsdom'
import { getSortedHead } from '@/utils/capo'

export default defineNitroPlugin((nitroApp: NitroApp) => {
  nitroApp.hooks.hook('render:response', (response) => {
    if (response.headers && !response.headers['content-type']?.startsWith('text/html')) {
      return
    }

    const dom = new JSDOM(response.body)
    const sortedHead = getSortedHead(dom.window.document)

    response.body = response.body?.replace(/<head>(?:.|\n)*<\/head>/, sortedHead.outerHTML.trim())
  })
})

nuxt/src/utils/capo.ts
const ElementWeights: { [key: string]: number } = {
  META: 10,
  TITLE: 9,
  PRECONNECT: 8,
  ASYNC_SCRIPT: 7,
  IMPORT_STYLES: 6,
  SYNC_SCRIPT: 5,
  SYNC_STYLES: 4,
  PRELOAD: 3,
  DEFER_SCRIPT: 2,
  PREFETCH_PRERENDER: 1,
  OTHER: 0,
}

const ElementDetectors: { [key: string]: (element: Element) => boolean } = {
  META: isMeta,
  TITLE: isTitle,
  PRECONNECT: isPreconnect,
  ASYNC_SCRIPT: isAsyncScript,
  IMPORT_STYLES: isImportStyles,
  SYNC_SCRIPT: isSyncScript,
  SYNC_STYLES: isSyncStyles,
  PRELOAD: isPreload,
  DEFER_SCRIPT: isDeferScript,
  PREFETCH_PRERENDER: isPrefetchPrerender,
}

function isMeta (element: Element) {
  return element.matches('meta:is([charset], [http-equiv], [name=viewport]), base')
}

function isTitle (element: Element) {
  return element.matches('title')
}

function isPreconnect (element: Element) {
  return element.matches('link[rel=preconnect]')
}

function isAsyncScript (element: Element) {
  return element.matches('script[src][async]')
}

function isImportStyles (element: Element) {
  const importRe = /@import/

  if (element.matches('style')) {
    return importRe.test(element.textContent || '')
  }

  return false
}

function isSyncScript (element: Element) {
  return element.matches('script:not([src][defer],[src][type=module],[src][async],[type*=json])')
}

function isSyncStyles (element: Element) {
  return element.matches('link[rel=stylesheet],style')
}

function isPreload (element: Element) {
  return element.matches('link:is([rel=preload], [rel=modulepreload])')
}

function isDeferScript (element: Element) {
  return element.matches('script[src][defer], script:not([src][async])[src][type=module]')
}

function isPrefetchPrerender (element: Element) {
  return element.matches('link:is([rel=prefetch], [rel=dns-prefetch], [rel=prerender])')
}

function getWeight (element: Element) {
  for (const [id, detector] of Object.entries(ElementDetectors)) {
    if (detector(element)) {
      return ElementWeights[id]
    }
  }

  return ElementWeights.OTHER
}

function getHeadWeights (document: Document) {
  const headChildren = Array.from(document.head.children)
  return headChildren.map((element): [Element, number] => {
    return [element, getWeight(element)]
  })
}

function getSortedHead (document: Document) {
  const headWeights = getHeadWeights(document)

  headWeights.sort((a, b) => {
    return b[1] - a[1]
  })

  const sortedHead = document.createElement('head')
  const sortedWeights = [...headWeights].sort((a, b) => b[1] - a[1])
  sortedWeights.forEach(([element]) => sortedHead.appendChild(element.cloneNode(true)))

  return sortedHead
}

export { getSortedHead }

This would be very interesting, and this is exactly the kind of discussion I was hoping for. I don't know if it's possible to do without deeper integration with unhead though (cc: @harlan-zw).

I wrote this module for my production site, but after a careful analysis of the output of Capo.js and how Nuxt forms the head, I came to the conclusion that Nuxt forms the head quite well on its own.
The difference lies only in the location of the meta tags (opengraph and others), which are actually recommended to be placed at the beginning, but Capo puts them at the end.
This is confirmed in the presentation by Harry Roberts, who inspired the developer Capo.js to write the plugin.
Harry Roberts
https://speakerdeck.com/csswizardry/get-your-head-straight?slide=88

So briefly, Unhead will sort tags that are critical (for functionality) to be in the right position. The ordering is as follows:
-2 - <meta charset ...>
-1 - <base>
0 - <meta http-equiv="ontent-security-policy" ... >
1 - <title>
Where the default order is 10.
Is there any details on how stable Capo.js is? I know it performs better theoretically but these hard and fast rules seem brittle.
Anyway you could use the entries:resolve hook to add the below weights for the relevant elemeents.
const ElementWeights = {
  META: 10,
  TITLE: 9,
  PRECONNECT: 8,
  ASYNC_SCRIPT: 7,
  IMPORT_STYLES: 6,
  SYNC_SCRIPT: 5,
  SYNC_STYLES: 4,
  PRELOAD: 3,
  DEFER_SCRIPT: 2,
  PREFETCH_PRERENDER: 1,
  OTHER: 0
};

I'll create a demo when I have a chance

One of the challenges is that Nuxt bundle renderer also renders resource hints outside unhead. Maybe there is a way we can integrate the two so sorting can be consistent?

I think it would make sense that any head tags Nuxt wants to render SSR goes through Unhead, then the user can make use of Unhead plugins to customize the output however they like without relying on HTML regex. I think this requires coupling the renderer directly with the Unhead though, currently, there's a renderMeta abstraction in the way.
Stuck at the airport so I gave the capo.js demo a go: https://stackblitz.com/edit/nuxt-starter-ybmzxf?file=plugins%2Fcapo.ts

This can be just wrapped in a plugin for this nuxt-capo module!

With Nuxt v3.7 it will now be possible to implement this 👍

This is built-in to Nuxt now 🥇


About setting of VAE

Feature request  / 功能建议
Not a feature request, but question about vae setting in the tech report. As mentioned in Table1 of tech report, increasing latent channel lead to better PSNR. So why you choose 8x8x4x16 rather than 8x8x4x32?
Motivation / 动机
NA
Your contribution / 您的贡献
NA

Can you provide detailed explanations, thank you.

As shown in Table 1 in your paper, Variants-C(Compression8×8×4, Latent channel32) show better reconstruction quality than Variants-B(Compression8×8×4, Latent channel16), Why do you choose Variants-B for DiT training rather than Variants-C?

Based on experience with text2image, increasing the latent channel raises the learning difficulty and slows the convergence, often requiring larger model sizes to accommodate the larger latent channel. We believe that 16 channels are more suitable for a 5B model. However, this part has not been rigorously validated through ablation studies.


RangeError: Incorrect timeZone information provided

Temporal.Now.plainDateISO(timezone) fails for non-canonical timezones, e.g. 'US/Pacific'
Error message is RangeError: Incorrect timeZone information provided.
I couldn't find if that is expected or not.

Can you provide a bit more information about the environment you ran that command in?
Running that function in the upstream spec polyfill (https://github.com/tc39/proposal-temporal/blob/3f82e8d48d3c062d07a4ae77dc175d65cc3be8ae/polyfill/package.json#L18) seems to indicate that works, and we have had reports recently that there are issues in newer browser builds that might cause this to fail (e.g. #264 ).

Running that command in Node v19.9 also works just fine for me.

Thanks for the quick reply @12wrigja.
Oh, indeed it works in Node. Just tested with v18.16.
We are using Temporal on an Expo (React Native) app with Hermes.

This is probably because Hermes doesn't implement the Intl API surface:
https://hermesengine.dev/playground/
I ran
const a = Intl.DateTimeFormat('en-US').resolvedOptions().timeZone;

in that playground and got a ReferenceError:
Uncaught ReferenceError: Property 'Intl' doesn't exist
    at global (/tmp/hermes-input.js:1:11)

I don't think we will support such environments, given that the Intl API surface is standardized as the provider for ICU / Intl-related data (and shipping our own versions of this is something we definitely want to avoid given the code-size bloat).
It might be possible to get this working in Hermes if there was an Intl API polyfill.

A quick search indicates that the Intl API surface is a fairly common polyfill for React Native apps: https://stackoverflow.com/questions/41736735/react-native-and-intl-polyfill-required-on-android-device

Interesting that it doesn't work in Hermes Playground, but Hermes does have support for Intl now, according to these:
https://github.com/facebook/hermes/blob/main/doc/Features.md#supported
https://reactnative.dev/blog/2022/07/08/hermes-as-the-default#ios-intl
https://hermesengine.dev/docs/intl/
And have been using Intl directly in our app for a while now.
But maybe there is indeed some part of the spec (https://hermesengine.dev/docs/intl/#not-yet-supported) that is needed for Temporal to work that is not working correctly in Hermes?
Can also confirm
const a = Intl.DateTimeFormat('en-US').resolvedOptions().timeZone;

does log Europe/London in our app.
Would you recommend raising this with Hermes instead?

Can you post the entire resolvedOptions value?
I don't see the polyfill source throwing an error that exactly matches that text, but we do throw a similar sounding error when timezone ID parsing fails: https://github.com/js-temporal/temporal-polyfill/blob/73ed89bdd9ecbc553972f030df3a1114d898c18a/lib/ecmascript.ts#L693 (RangeError: Invalid time zone).
Are you able to step through the operation with a debugger attached to find out what code causes the error to be thrown? That would help narrow down whether this is a problem in our code or in Hermes Intl / native platform support.

Can you post the entire resolvedOptions value?

console.log(Intl.DateTimeFormat('en-US').resolvedOptions());
// => {"locale": "en-US", "timeZone": "Europe/London"}

Does this help?

But also, was able to find that the exact error message does come from Hermes: https://github.com/facebook/hermes/blob/main/lib/Platform/Intl/PlatformIntlApple.mm#L1431

This is probably caused by https://github.com/js-temporal/temporal-polyfill/blob/73ed89bdd9ecbc553972f030df3a1114d898c18a/lib/ecmascript.ts#L356-L366
new Intl.DateTimeFormat('en-us', {
      timeZone: String('Europe/London'),
      hour12: false,
      era: 'short',
      year: 'numeric',
      month: 'numeric',
      day: 'numeric',
      hour: 'numeric',
      minute: 'numeric',
      second: 'numeric'
    })

might also repro that error, and does seem to point to something missing/wrong with Hermes Intl support.

Oh, quick test with Intl.DateTimeFormat('en-US', { timeZone: 'US/Pacific' }).format(new Date()) causes the crash. i.e. Definitely nothing to do with Temporal implementation, but just under the hood Intl one.

Yep! Thanks!


Nearby: No longer keeps loading until timeout when map is zoomed out

Description (required)
Fixes #6044
Put briefly, the map now only searches in up to 300km radius centered on the screen's center.
The change wasnn't that simple, as loading the list of items even for a 50km radius can result in timeout for some locations, so I implemented an algorithm based on binary search to figure out the appropriate radius to list items inside, by first making some COUNT queries. Also, the centermost pins now appear on top.
Tests performed (required)
Tested BetaDebug on Medium Phone AVD and a Physical Device with API levels 34 and 33 respectively.
Screenshots (for UI changes only)
https://github.com/user-attachments/assets/e589876f-2853-4677-81d9-556eb358d4b0

Looks fantastic! I am trying it now.


connecting

d2r was updated today and koolo starts the exe but then does nothing and wont skip the splash screen or create a game, could the patch 2.7.3 cause koolo to stop working? can someone try and run the bot and let me know if it works for them so i know its not something on my end?

Most likely seems to be the issue

Yes, new patch broke some things

ok ty for the heads up and i love the new changes btw and terrorzones working now is absolutely awesome ty for all your work :)

Thanks for all the work, ETA on how long this will take to fix ?

this issue means this bot is dead, so please revive it.

give it a try

give it a try

it's working again.
but no teleport. instead it is walking

for me its still just not responding when i start the bot and it doesnt skip the splash screens and when i do it manually and get to the character screen it is just locked up and i cant click anything


added support for validating HS512 JWT tokens

Added support for validating HS512 JWT tokens
Description
added a hs512 case to handle the tokens
Motivation and Context
We have JWT tokens signed by HS512 method. Its was throwing invalid signature. So had to add this extension
How Has This Been Tested?
I have added tests with valid HS512 signed tokens

Thanks! Can you also update https://github.com/checkr/flagr/blob/master/pkg/config/env.go#L166?

Updated

🎉

@zhouzhuojie Can you deploy the latest changes to docker hub?

Done. Also opened an issue about auto release. https://github.com/checkr/flagr/issues/292


Error response when violating a global privilege restriction is misleading

If the root element of the policy file has a "granting-privileges" attribute, and an authenticated user does not have any of the privileges listed in that attribute, the error message in the response indicates that remote access is not allowed.  This is due to the isRemoteAllowed() check being:
boolean isRemoteAllowed() { return hasPrivilegesInRootNodeOfXml() && isAccessAllowedFrom(remoteEndpoint); }
It seems like there should be a separate check for "hasPrivilegesInRootNodeOfXml()", with its own error response.

Sorry, don't get it. Could you post an example what you a refering to and what your environment and context is ? Vanilla Jolokia has neither a isRemoteAllowed() nor a hasPrivilegesInRootNodeOfXml() .....

Sorry, apparently I was confused by a code snippet someone sent me explaining the issue.  It turns out it's in our restrictor, not jolokia.  At best, this is an improvement request for the ability to specify a custom error message when rejecting access.

Where would you like to specify the error message ? Could you please elaborate a bit on your use case ?
In general I'm not positive for returning why a check fails to the client as it possibly can be used for probing. If you want to log it to your log, let your custom restrictor do it.
If you dont mind I'm going to close this issue. Feel free to reopen it with a description of your use case and why such an error response would be helpful.

I've updated the original comment, but apparently can only re-open if I was the one who closed it.  I certainly agree that returning "why" is information leakage, but the existing behaviour seems to be prone to that.  From that perspective, that we have to leak mis-information is at least a little amusing.

Hmm, I suppose we can put anything custom within "isTypeAllowed", as that response is generic enough as-is.


feat(project): Enable publication on maven

Signed-off-by: James Hart<EMAIL_ADDRESS>PR summary
This PR enables publication of artifacts to Maven central
Fixes: <! -- link to issue -->
PR Checklist
Please make sure that your PR fulfills the following requirements:

[x] The commit message follows the Angular Commit Message Guidelines.
[ ] Tests for the changes have been added (for bug fixes / features)
[ ] Docs have been added / updated (for bug fixes / features)

PR Type

[ ] Bugfix
[ ] Feature
[ ] Code style update (formatting, local variables)
[ ] Refactoring (no functional changes, no api changes)
[ ] New tests
[x] Build/CI related changes
[ ] Documentation content changes
[ ] Other (please describe)

What is the current behavior?
SDK behaviour is unchanged
What is the new behavior?
SDK behaviour is unchanged
Does this PR introduce a breaking change?

[ ] Yes
[x] No

Other information

:tada: This PR is included in version 0.1.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


the app some error

E/flitecameradem: [qarth_debug:]  get PatchStore::createDisableExceptionQarthFile method fail.
E/AndroidRuntime: FATAL EXCEPTION: main
Process: android.example.com.tflitecamerademo, PID: 6675
java.lang.IllegalArgumentException: Cannot copy between a TensorFlowLite tensor with shape [1, 1917, 1, 4] and a Java object with shape [1, 1917, 1, 2].
at org.tensorflow.lite.Tensor.throwExceptionIfTypeIsIncompatible(Tensor.java:242)
at org.tensorflow.lite.Tensor.copyTo(Tensor.java:116)
at org.tensorflow.lite.NativeInterpreterWrapper.run(NativeInterpreterWrapper.java:157)
at org.tensorflow.lite.Interpreter.runForMultipleInputsOutputs(Interpreter.java:250)
at com.example.android.tflitecamerademo.ImageClassifier.classifyFrame(ImageClassifier.java:107)
at com.example.android.tflitecamerademo.CustomCameraFragment.lambda$new$0$CustomCameraFragment(CustomCameraFragment.java:109)
at com.example.android.tflitecamerademo.-$$Lambda$CustomCameraFragment$I_thQX2Vv8tCIzJNCQ28EJmbkMY.onClick(Unknown Source:2)
at android.view.View.performClick(View.java:6663)
at android.view.View.performClickInternal(View.java:6635)
at android.view.View.access$3100(View.java:794)
at android.view.View$PerformClick.run(View.java:26199)
at android.os.Handler.handleCallback(Handler.java:907)
at android.os.Handler.dispatchMessage(Handler.java:105)
at android.os.Looper.loop(Looper.java:216)
at android.app.ActivityThread.main(ActivityThread.java:7593)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:524)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:987)

Hmm I think there’s a bug on my end, I’ll look into this today

I am having the same issue. please respond.

+1
I am having the same issue. please respond.

I’m on vacation at the moment. If someone can solve this issue and make a pull request I’ll be glad to merge it

how many labels are you using xunaizhong20 ..??

Update: I tested it for quite a few models and figured out that models with label count greater than or equal to 3 are working seamlessly.

That’s strange, I was hoping I accidentally hard coded the label count. I’m not sure why it fails with 1 or 2 labels 😕

@shashanksoni06 if you hardcode mLabelList.size() when you have 2 labels are you able to get it to run?

@bourdakos1 No, even hard coding mLabelList.size() to sizes less than 3 are not working.

@bourdakos1 @Android-BRUCE @Shashanksoni06
com.example.android.tflitecamerademo.ImageClassifier
line99
// The models output expects a shape of [1 x 1917 x 1 x labels_size + 1]
float[][][][] boxPredictionsPointer = new float[1][NUM_ANCHORS][1][mLabelList.size() + 2];

@xunaizhong20  you got it running for any number of labels you want ??

@Shashanksoni06 Never tried

@xunaizhong20
It is working because you may be using 2 labels. that makes mLabelList.size() + 2 equals to 4. If you put any other value the app will crash.

@Shashanksoni06 You're right～but you can if "mLabelList.size()"~Do you understand what I mean～

Can someone confirm that the tensor expects a shape of max(4, mLabelList.size())?

@bourdakos1 works for me (with 2 labels). Thx

@stspanho thanks :) can someone try hardcoding 4 and using like 5 labels?

Oh man I’m dumb.... it’s a typo
This:
float[][][][] _boxPredictionsPointer_ = new float[1][NUM_ANCHORS][1][mLabelList.size() + 1];

Should be this:
float[][][][] _boxPredictionsPointer_ = new float[1][NUM_ANCHORS][1][4];

It’s always 4, because it represents each of the box coordinates. I think I copy pasted the class line twice and tested with 3 labels 🤦♂
If somebody wants to make this change and make a pull request I’ll merge it. Otherwise it will have to wait a few days for me to be at a computer.

@bourdakos1 I see why it worked when i hard coded the second line too. LOL . thanks,it works like a charm now.

fixed with #2, thanks everyone for all the help!


[BUG] Unable to restore an index from snapshot that was a write index at the time

What is the bug?
I'm unable to restore an index to OpenSearch from a Snapshot where the Snapshot was taken at the time of the index being the write index for the alias.
Since the snapshot was taken, ISM has naturally rolled over and created new write indices.
I have an ISM enabled index, continually rolling over and deleting indices as they age out. During this process I take a snapshot and store it in my defined repository.
How can one reproduce the bug?
Steps to reproduce the behaviour:

Configure an ISM enabled index, rolling over at regular intervals
Take a snapshot and wait for the ISM policy to cycle through, rolling over and deleting the index
Attempt to restore the index that was (at the time of the snapshot) the write index of an alias
See error "Failed to restore snapshot", "alias [rollover_alias] has more than one write index "

What is the expected behaviour?
I should be able to restore the chosen index, setting explicitly that it should not be the write index.
What is your host/environment?

OS: [RedHat 8]
Version [v 2.15.0]
Plugins [ISM, repository-gcs]

Do you have any screenshots?
Screenshot attached.

Issue initially raised on the OpenSeach Slack channel;
https://opensearch.slack.com/archives/C051JEH8MNU/p1727277154286109

[Catch All Triage - 1, 2, 3, 4]


[DO NOT MERGE] Update tpv on production to version 2.1.0

Update tpv on production to 2.1.0.
Job destinations are defined in tpv destinations.yml.j2 instead of job conf.
Job conf limits are now in aarnet.usegalaxy.org.au and templated into the job conf.
Pull request linting has updated to check templating of files as well as tpv lint.
TPV shared rules for tools will be used in addition to Galaxy Australia's tool rules. GA's rules take precedence.
GA tool rules now always have mem values and rule IDs.
This PR also removes some legacy dtd code.
I'm changing this from 'draft' to 'ready for review' but it can't be merged without first disabling the automatic copying of tpv files to production. I'd like to merge this early in the day when there is a lower rate of job submission.

Tool specifications in tools.yml have previously had lowest cores/mem as default and higher resource allocations set in conditional rules. This changes to have the non-failing condition with the highest cores/mem as default and lower resource allocations set in conditional rules, e.g. deeptools_plot_heatmap
  toolshed.g2.bx.psu.edu/repos/bgruening/deeptools_plot_heatmap/deeptools_plot_heatmap/.*:
    cores: 3
    rules:
    - if: input_size >= 0.3
      cores: 7

changes to
  toolshed.g2.bx.psu.edu/repos/bgruening/deeptools_plot_heatmap/deeptools_plot_heatmap/.*:
    cores: 7
    mem: 26.9
    rules:
    - id: deeptools_plot_heatmap_small_input_rule
      if: input_size < 0.3
      cores: 3
      mem: 11.5

Using this convention should make it easier to switch to using a shared database rule for a tool.  If we wanted to use shared_db for deeptools_plot_heatmap we could either delete the entry entirely or delete {cores: 7, mem: 26.9} from the above.

This PR doesn't change the rank function in any way but I do think it needs to change.  I'm working on alternatives to the rank function on dev. We can swap the rank function later on when we have seen what the new edge cases will be on production.


Define IR, define type systems, and implement Codegen

Define a typesystem-parameterized expression language IR for SSM
Define built-in types needed by codegen
Define a flat and polymorphic type system which wrap those built-in types
Compile IR to C using language-c-quote

Note that the codegen phase leaves a few major language features/compiler passes unimplemented:

user-defined data types (@EmilySillars)
scope analysis and memory management (@Scanteianu)
type inference and monomorphization (@XijiaoLi + @LeoQiao18)
lambda lifting + defunctionalization

The design and implementation of type classes is also as of yet unattempted.
Right now, the AST -> IR lowering phase is not yet implemented, but I will work on that once I merge this work with @hmontero1205 and @maxhhelman 's most recent changes to the language frontend.


Add task instructions to UI

After using the HOT tasking manager, having a task briefing and instructions makes it easy for beginners to try out the tool and learn at the same time.
This is also very useful even for the Mapbox data team to document things like background tile layers to use, what features to focus on, what to ignore and documentation to commonly used tags for a task.
@aaronlidman I have written a sample briefing for krakatoa: https://gist.github.com/planemad/1c71b237d8a1fedc25f3
For now it could be easily added as another tab Instructions before Task and Activity.

Similar to #63. Would make sense to show a modal when you open a project for the first time/switch to a project, and make the modal also accessible on demand from a More info / (i) button. cc @ajithranka


How to call from pyscript?

Checklist

[X] I have filled out the template to the best of my ability.
[X] This only contains 1 feature request (if you have multiple feature requests, open one feature request for each feature request).
[X] This issue is not a duplicate feature request of previous feature requests.

Is your feature request related to a problem? Please describe.
I can't figure out how to call the chime_tts.say service from within pyscript.  I'm not getting any errors, but I'm also not getting any audio from the media_player.  Specifically, I don't think I'm indicating the target/entity_id properly.  Here is what I've tried:
    service.call("chime_tts", "say",
            data={
            'target':"media_player.entrywalltablet",
            'chime_path':"custom_chime_path_2",
            'end_chime_path':'',
            'offset':'0',
            'final_delay':'0',
            'tts_playback_speed':'100',
            'volume_level':'1',
            'message':"Not Ready",
            'tts_platform':"google_translate",
            'gender':"female",
            'announce':'true'})

This is the yaml in Developer->Services that does work (produces audio):
service: chime_tts.say
target:
  entity_id: media_player.entrywalltablet
data:
  chime_path: custom_chime_path_2
  end_chime_path: ""
  offset: -300
  final_delay: 0
  tts_playback_speed: 100
  volume_level: 1
  message: hello world
  tts_platform: google_translate
  gender: female
  announce: true

Any idea how to make the call from pyscript?
Describe the solution you'd like
I need help with the pyscript call.
Describe alternatives you've considered
I also tried
service.call("chime_tts", "say",
        data={
        'entity_id':"media_player.entrywalltablet",
        'chime_path':"custom_chime_path_2",
        'end_chime_path':'',
        'offset':'0',
        'final_delay':'0',
        'tts_playback_speed':'100',
        'volume_level':'1',
        'message':"Not Ready",
        'tts_platform':"google_translate",
        'gender':"female",
        'announce':'true'})

Additional context
I'm not getting any related errors in the system log.

I am not famliar with pyscript, however I suggest as a starting point that you enable debug logging for Chime TTS in order to review the full logs. This should allow you to understand:

Whether pyscript is actually calling the chime_tts.say service
which parameter values are received by the service, and
if there is any other useful information which might provide more clarity.

To turn on debug logging:

Change the logging level for Chime TTS:

service: logger.set_level
data:
  custom_components.chime_tts: debug

With debug logging enabled, call the pyrscript which in turn calls the chime_tts.say service.

Check your log for Chime TTS messages:

https://{YOUR_HOME_ASSISTANT_ADDRESS}:8123/config/logs?filter=chime_tts

and click LOAD FULL LOGS

Thanks.. here's the log.  I must not be formatting the data section of the service call correctly.
2024-01-29 10:37:45.068 DEBUG (MainThread) [custom_components.chime_tts] ----- Chime TTS Say Called. Version v0.13.0 -----
2024-01-29 10:37:45.072 DEBUG (MainThread) [custom_components.chime_tts.helpers] ----- General Parameters -----
2024-01-29 10:37:45.073 DEBUG (MainThread) [custom_components.chime_tts.helpers] * entity_ids = []
2024-01-29 10:37:45.073 DEBUG (MainThread) [custom_components.chime_tts.helpers] * cache = False
2024-01-29 10:37:45.073 DEBUG (MainThread) [custom_components.chime_tts.helpers] * offset = 450.0
2024-01-29 10:37:45.073 DEBUG (MainThread) [custom_components.chime_tts.helpers] * final_delay = 0.0
2024-01-29 10:37:45.073 DEBUG (MainThread) [custom_components.chime_tts.helpers] * tts_playback_speed = 100.0
2024-01-29 10:37:45.073 DEBUG (MainThread) [custom_components.chime_tts.helpers] * announce = False
2024-01-29 10:37:45.073 DEBUG (MainThread) [custom_components.chime_tts.helpers] * volume_level = -1.0
2024-01-29 10:37:45.073 DEBUG (MainThread) [custom_components.chime_tts.helpers] * join_players = False
2024-01-29 10:37:45.073 DEBUG (MainThread) [custom_components.chime_tts.helpers] * unjoin_players = False
2024-01-29 10:37:45.074 DEBUG (MainThread) [custom_components.chime_tts] async_get_playback_audio_path

Now I'm on the right track with some additional debugging I added to helpers.py.  This is what the syntax should look like from pyscript:
    service.call("chime_tts", "say",
            entity_id="media_player.entrywalltablet",
            chime_path="custom_chime_path_2",
            offset=0,
            volume_level=1,
            message="Not Ready",
            tts_platform="google_translate",
            gender="female")

Solution found above https://github.com/nimroddolev/chime_tts/issues/75#issuecomment-1915839484


Add 16k user-data limit as EC2 limitation/gotcha

Include note about workaround (put script in S3, retrieve that and execute it).
Include reference:
http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html#instancedata-add-user-data

@abdulirfan3 How about this edited version, for when you PR:

  Instance user-data is limited to [16KB](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html#instancedata-add-user-data). (This limit applies to the data in raw form, not base64-encoded form.) If larger data is needed, it can be downloaded from S3 by a user-data script.

(It'd be even better if there's a good link with a sample script or similar.)

Apropos, I ran across this that discusses not only getting userdata from S3, but security issues. Is it secure to store EC2 User-Data shell scripts in a private S3 bucket?
(Don't want to butt in. Just reviewing issues that may not be big efforts.)


add Angular Turkey

Have you a community image? ☺

@Caballerog I could not able to upload in the images_raw dir. Here is the PNG version of our logo; https://avatars2.githubusercontent.com/u/47100904?s=200&v=4

@mobilerast don't worry, I've upload the image and edit the information in the JSON :-)


Database Integration testing strategies

https://github.com/jbogard/Respawn
DB transaction with rollback
DTC (windows only strategy that might not be viable long term)
sqlite : cheap to create a new DB (we see this strategy in rails and others)
test only DB created and recreated now and then (as opposed to creating it when running tests)
test only DB created when running tests

Test with custom clean up procedure : might leave things dirty but you might eventually get something good enough


Add snapcraft support to build snaps

git-standup is awesome, thanks for making it. We recently had a team sprint and it was great to be able to summarise all the work done with one command. Love it <3
During that sprint I created a snap package of git-standup so it can be featured in the Snap Store, which is a cross-distribution app-store for Linux. Once in the store, it can be easily installed via ‘snap install’ or via GNOME Software or KDE Discover on most distros.
A single snap (built for many architectures) in the Snap Store will be installable on numerous popular Linux distributions with no changes. It’ll also be discoverable via the Snap Store, where releases are under your control.
If you're willing to publish this under the git-standup project name, you just need to create an account and then register the git-standup name.
A snap file created by snapcraft (our free software tool for building snaps) can then be released in the Snap Store with snap push --release stable *.snap. You'll want to install snapcraft (brew install snapcraft, snap install snapcraft, or apt install snapcraft) and login (snapcraft login) first, though.
You may also want to consider using https://build.snapcraft.io/ which is a free build service, that can create armhf, amd64, i386, arm64 and other builds of git-standup, and push them to the store automatically. Alternatively it’s possible to integrate publishing the snap via your existing travis CI / release process.
I appreciate you may not be aware of snaps and snapcraft, and I’d of course be happy to answer any questions you may have.

Thanks


Handling the minimal tls version for MySQL and Postgres

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

[x] The PR has modified HISTORY.rst describing any customer-facing, functional changes. Note that this does not include changes only to help content. (see Modifying change log).

[x] I adhere to the Command Guidelines.

add to S163.

Hi @akamath46297, can you add test for you new parameter and make CI pass?

@akamath46297, any update for this PR?

@akamath46297, any update for this PR?

@akamath46297, any update for this PR?

@yonzhan awaiting MS deployment to get the tests out.

@yonzhan awaiting MS deployment to get the tests out.

Given not ready in deployment, I will mark the PR as DoNotMerge now. When it is ready, please let me know and let's start the merge process.

There are 1119 files changed...
It seems you mess up the commit history.


Fix Update In Progress Failure During ResizeFileSystem

Is this a bug fix or adding new feature?
Bug fix
What is this PR about? / Why do we need it?
Fixes error that occurs when a timeout occurs and the administrative action shows that the update request was successful
What testing is done?
Unit

Validated works as expected locally

/approve
/lgtm


Setup SkyConnect

[ ] Actual own a zigbee device
[ ] Figure out device id for SkyConnect
[ ] Setup zigbee2mqtt (or something)
[ ] Test in Home Assistant

Device ID:
Command: lsusb
Result:
Bus 001 Device 015: ID 10c4:ea60 Silicon Labs CP210x UART Bridge
---
# yaml-language-server: $schema=https://kubernetes-schemas.devbu.io/nodefeaturerules_v1alpha1.json
apiVersion: nfd.k8s-sigs.io/v1alpha1
kind: NodeFeatureRule
metadata:
  name: skyconnect-zigbee-device
  rules:
    - # SkyConnect USB
      name: skyconnect.zigbee
      labels:
        skyconnect.feature.node.kubernetes.io/zigbee: "true"
      matchFeatures:
        - feature: usb.device
          matchExpressions:
            vendor: { op: In, value: ["10c4"] }
            device: { op: In, value: ["ea60"] }

Device class was zero or not set. Not sure why. We will try this way first.


how to get https certificate in qnap?

Every time I try to get a certificate this happens:
[/share/CACHEDEV1_DATA/.qpkg/Tailscale] # sudo ./tailscale cert qnap.tailnet-name.ts.net
Failed to connect to local Tailscale daemon for /localapi/v0/cert/qnap.tailnet-name.ts.net; not running? Error: dial unix /var/run/tailscale/tailscaled.sock: connect: no such file or directory
Even if i just type in sudo ./tailscale cert same error happens

turns out all commands needed the -socket argument
./tailscale -socket var/run/tailscale/tailscaled.sock

For those who care, the location of tailscaled.sock has now been changed (to the expected default /tmp/tailscale/tailscaled.sock) so you don't need to specify --socket and just use: ./tailscale cert.


Check for legal paths in volume mount points in application configuration

Replaced by https://clusterhq.atlassian.net/browse/FLOC-239
Extracted from the initial config loading branch:
    def test_error_on_invalid_volume_path(self):
        """
        ``Configuration._applications_from_configuration`` raises an
        ``KeyError`` if the application_configuration uses invalid unix paths
        for volumes.
        """
        # The implementation can use os.path.isabs to check that an absolute
        # path is used.
        config = dict(
            applications={u'mysql-hybridcluster': dict(
                image=u'repository:tag', volume=u'invalid//path//')})
        parser = Configuration()
        exception = self.assertRaises(KeyError,
                                      parser._applications_from_configuration,
                                      config)
        self.assertEqual(
            "Application 'mysql-hybridcluster' has a config error. "
            "The volume mount path must be an absolute path.",
            exception.message
        )

We are moving our development planning to JIRA. This issue is now being tracked at https://clusterhq.atlassian.net/browse/FLOC-239. You are welcome to file additional issues in GitHub if that's easier for you.


Accessibility: Card options menu verbiage changes

Time Tracking: MA-126
This is done when:

[x] Card option "reload" changed to "reload this card"
[x] Card option "hide" changed to "hide this card"

[ ] PR 1683 Test Plan PASS on iOS
[ ] PR 1683 Test Plan PASS on Android

@xxwwyytt1 Need your help on a failed testing on iOS.


Whenever I try to install extension from Marketplace it shows error "end of central directory record signature not found"

VSCode Version: Code 1.17.2 (b813d12980308015bcd2b3a2f6efa5c810c33ba5, 2017-10-16T13:59:46.104Z)
OS Version: Windows_NT x64 10.0.16299
Extensions:

Extension
Author (truncated)
Version

beautify
Hoo
1.3.0

python
ms-
0.9.1

cpptools
ms-
0.14.6

bootstrap-3-snippets
wcw
0.1.0

(2 theme extensions excluded)

Steps to Reproduce:

Reproduces without extensions: Yes/No

@joaomoreno Maybe provide a more informative error message?
And is the cause of this issue incorrect config of proxy?

Still have the problem. I am using 1.20.1.

Let's catch this bug and expose a download link for the extension VSIX.

I tried to install extension manually. doesn't work after relaunch.

Might be of your interest:
https://github.com/thejoshwolfe/yauzl/issues/69
https://github.com/thejoshwolfe/yauzl/issues/72

Verification in dev:
Open https://github.com/Microsoft/vscode/blob/b51d61e3625330fb4e391082be7bea75ae0fb59e/src/vs/base/node/zip.ts#L123 and change the following line:

This will make the zip library fail on extract.
The experience should then go as such:

That appears to be a separate issue.


fetch_order => 'desc' not working

$aMessage = $oFolder->query()->since(now()->subDays(3))->get(); // used this
fetch_order => 'desc' //used this on config/imap.php but not working?
is there any way to get mail with desired order?

try:
$aMessage = $oFolder->query()->since(now()->subDays(3))->setFetchOrder("desc")->get(); // used this

Thank you for your message but this does not work.

However, it works well for me... Look documentation : https://www.php-imap.com/api/query .
Check that $aMessage = $oFolder->query()->since(now()->subDays(3))->get(); // used this is returning the list of your messages to you.
Otherwise I don't see ...

Thanks for reply.
I've seen and used as per documentation:
This is my controller:
use Webklex\IMAP\Facades\Client;
public function index(){
$oClient = Client::account('default');
$oClient->connect('default');
$aFolder = $oClient->getFolders('INBOX.read');
return view('backend.emails.index',compact('aFolder'));
}
This is my Blade:
@foreach($aFolder as $oFolder)
@php $aMessage = $oFolder->query()->since(now()->subDays(1))->setFetchOrder("desc")->get();@endphp
@foreach($aMessage as $message)

{{$message->getFrom()[0]->mail}}
{{$message->getSubject()}}

{{$message->getDate()}}

{{$message->getTextBody()}}

@endforeach
@endforeach
**Mail appear well but not as per order. If anything you found wrong let me know... **

I'm facing the same problem, however I want to get emails from a specific sender, in descending order.
My currently structure is:
$messages = $query->from('sender@email.com')->setFetchOrder("desc")->get();
With all the config/imap.php files seted as  'fetch_order' => 'desc',

I'm facing the exact same issue.
imap.php is set to desc
i get messages with:
$messaggi = $inbox->messages()->all()->setFetchOrder("desc")->setFetchBody(false)->paginate($per_page = 30, $page = $request->page, $page_name = 'page');
mails are sorted correctly by date (day of the month), but the time of the email is still sorted ascending.
So, basically, I have 9 december shown before 8, as it should, but all emails from 9 december are sorted oldest to newest. There is no way, apparently, to show the most recent email at the top of a datatable.

Is there any update on this?
I tried :
$inboxFolder->query()
->setFetchOrder("desc");
->setFetchOrderDesc);
->fetchOrderDesc();
I also tried changing it from imap.php in both folders ( laravel-imap / php-imap ).
However nothing worked, it had no effect and the order is always from old email to new email, meaning the oldest is shown at the top or has the first index.

// Get the messages in the inbox
$messages = $folder->messages()->all();
// Paginate the messages in descending order and retrieve 5 items per page
$messages = $messages->setFetchOrder("desc")->paginate(5);
// Reverse the order of the paginated results without creating a new instance
$messages->setCollection(collect(array_reverse($messages->items())));
to imap.php
'fetch_order' => 'desc',

It looks like a bug still exist. I am using version 2.4.1 due to not able to use PHP 8 on my project and sorting DESC was not working not matter what I tried. So finally I adopted a workaround:
Use $query->reverse(); // or put ->reverse(); at the end of your request to reverse the order of the fetched messages.
Hope this helps someone :-)


session destructor not getting invoked consistently

we have an async ssl server. every thing works fine. what we are seeing is that there is no consistency on the session destructor getting invoked. it randomly gets invoked. Our session object is pretty huge and it can quickly bring down our server. Wonder any one observed/reported this already . Please advise.
Thanks

You have undefined behaviour. Most likely a race condition or something surviving longer than you think holding on to a shared_ptr.
I have limited information as I only have the above paragraph to go on.
My suggesting would be to think about reducing the "pretty huge" session object into more composable pieces.
You may want to look at handler tracking (see boost asio docs) and logging object lifetimes.

closing this as not seeing this anymore.


I still get confused by this onto ("what is this onto on?").

I still get confused by this onto ("what is this onto on?").
Out-of-scope for this PR, but I'd suggest to rename to ontology.
Originally posted by @gavanderhoorn in https://github.com/tud-cor/mc_mros_reasoner/pull/85#discussion_r484345113

fixed in #104


setup & configuration questions

Attempting to get tootik running alongside a few other services on the same machine.
Similar issues to #44 perhaps?

running curl -v https://tootik.patatas.ca seems to give the expected output.
I'm running tootik behind nginx, with nginx listening on port 443 and proxy_passing to port 8080.
modified the nginx.conf to listen on port 1965 and then send requests to either my existing gemini capsule on internal port 1966, or to tootik on port 8965, using https://pastebin.com/QHWhAWyM as a guide.

What works:

I can create users via Lagrange
I can successfully post DMs to my Mastodon accounts
and I can follow those accounts from tootik.

What isn't working yet:

cannot see any outside users' posts within Lagrange
I don't think my Mastodon accounts are actually successfully following my tootik account (?)
cannot see tootik posts from Mastodon accounts (except DMs).

typical errors I'm getting in logs:
"Failed to verify activity","activity":"https://  [mastodon server/account/status]  /activity","type":"Create","error":"failed to verify message: wrong host: <IP_ADDRESS>:8080"}
Or instead of Create, it might be Follow or Accept or Delete activities.
Not sure what else to try. I'm hoping I configured the header forwarding properly in nginx but it's quite possible it's incorrect? Here's my server block:
server {
        server_name tootik.patatas.ca;

        include /etc/nginx/default.d/*.conf;

        location / {
                proxy_pass http://<IP_ADDRESS>:8080;
#               proxy_pass http://localhost:8080;
                proxy_pass_request_headers on;
                proxy_set_header Signature $http_signature;
                proxy_set_header Collection-Syncronization $http_collection_synchronization;
#               proxy_http_version 1.1;

        }

        location /inbox/$user {

                proxy_method POST;
                proxy_pass_request_headers on;
                proxy_pass http://<IP_ADDRESS>:8080;
#               proxy_pass http://localhost:8080;
#               proxy_http_version 1.1;
                proxy_set_header Signature $http_signature;
                proxy_set_header Collection-Synchronization $http_collection_synchronization;
        }

    listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/tootik.patatas.ca/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/tootik.patatas.ca/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot

}

And then lastly here's my tootik.service in case there's anything that jumps out as a possible issue:
[Unit]
Description=tootik
After=network.target

[Service]
ExecStart=tootik -plain -domain tootik.patatas.ca -addr <IP_ADDRESS>:8080 -gemaddr :8965 -gopheraddr :70 -fingeraddr :79 -blocklist /home/tootik/tootik-cfg/patatas-blocklist.csv -cert /etc/letsencrypt/live/tootik.patatas.ca/fullchain.pem -key /etc/letsencrypt/live/tootik.patatas.ca/privkey.pem -gemcert /home/tootik/tootik-cfg/gemini-cert.pem -gemkey /home/tootik/tootik-cfg/gemini-key.pem -db /home/tootik/tootik-data/db.sqlite3
User=tootik
Group=tootik
AmbientCapabilities=CAP_NET_BIND_SERVICE
NoNewPrivileges=true
Restart=always

[Install]
WantedBy=multi-user.target

Thanks very much! :)

Wheeee!
Got it working :)
For the record: I added a few lines into my server block, which now looks like this:
server {
	server_name tootik.patatas.ca;

	include /etc/nginx/default.d/*.conf;

	location / {
		proxy_pass http://<IP_ADDRESS>:8080;
		proxy_pass_request_headers on;
		proxy_set_header Signature $http_signature;
		proxy_set_header Collection-Syncronization $http_collection_synchronization;
		proxy_http_version 1.1;
		proxy_set_header Host $host;
		proxy_set_header X-Forwarded-For $remote_addr;
		proxy_set_header X-Forwarded-Proto $scheme;
	}

	location /inbox/$user {

		proxy_method POST;
		proxy_pass_request_headers on;
		proxy_pass http://<IP_ADDRESS>:8080;
		proxy_http_version 1.1;
		proxy_set_header Signature $http_signature;
		proxy_set_header Collection-Synchronization $http_collection_synchronization;
        	proxy_set_header X-Forwarded-For $remote_addr;
        	proxy_set_header X-Forwarded-Proto $scheme;
        	proxy_set_header Host $host;
	}

    listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/tootik.patatas.ca/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/tootik.patatas.ca/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot

}

server {
    if ($host = tootik.patatas.ca) {
        return 301 https://$host$request_uri;
    } # managed by Certbot

	listen 80;
	server_name tootik.patatas.ca;
    return 404; # managed by Certbot

}

I'm assuming the two location sections are redundant, so I'll fiddle around with it some more to see - but at present it seems to be federating properly and I don't feel like messing with it any more at the moment ;)
And in case it helps anyone, here's how I modified the instructions at https://pastebin.com/QHWhAWyM to direct the gemini:// traffic:
stream {

    ###
    ### Setup
    ###

    # connection-limiting
    limit_conn_zone               $binary_remote_addr zone=addr:10m;
    limit_conn_log_level          warn;
    limit_conn                    addr 1;

    # logging
    log_format                    basic '$remote_addr $upstream_addr [$time_local] '
                                  '$protocol $status $bytes_sent $bytes_received '
                                  '$session_time';
    access_log                    syslog:server=unix:/dev/log basic;
    error_log                     stderr info;
    error_log                     /var/log/nginx/error.log warn;

    # map SNI -> backend service
    map $ssl_preread_server_name  $name {
        gemini.patatas.ca	patatas;
	tootik.patatas.ca	tootik;
    }

    ###
    ### Frontends
    ###

    # Gemini
    server {
        listen                    1965;
        ssl_preread               on;
        proxy_buffer_size         16k;

        # pass requests directly to the corresponding Gemini server
        proxy_pass                $name;
    }

    ###
    ### Backends
    ###

    # personal gemlog
    upstream patatas {
        server                    <IP_ADDRESS>:1966;
    }
    # tootik instance
    upstream tootik {
	server			  <IP_ADDRESS>:8965;
    }
}

Classic case of preserving Host+Signature when proxying, maybe I should make this even clearer in https://github.com/dimkr/tootik/blob/main/SETUP.md#running-behind-a-reverse-proxy

If I actually felt like I knew what I was doing I'd try and write up a PR for you, but I really just kinda flailed around until I stumbled on a working config.
It was a pretty good learning experience - but yeah, if there was an example nginx config in the guide, that would be fantastic too :)
Anyway, great to know that it's possible to run tootik alongside several other things. I'll probably also write a blog post about how to get the setup working; tootik seems like a great way to have decentralized inter-gemini socializing, and most people are probably running a capsule already if they're looking to run tootik.


Assigning ArrayCollection to ADG.dataProvider

We have few lines of code that were working in flex:
var arrDDResult:Array = e.result as Array;
arrDGDataProvider = arrDDResult[0][0] as ArrayCollection;
Adg.dataProvider = arrDGDataProvider ;
Using Above lines in Royale arrDGDataProvider has null value
We have changed these lines into Royale like:
var arrDDResult:Array = e.result as Array;
arrDGDataProvider = arrDDResult[0] as ArrayCollection;
Adg.dataProvider  = arrDGDataProvider.getItemAt(0).source ;
After these changes ,Now its working as Flex But it takes more time to populate data in ADG .
It seems two Dimension Array  arrDDResult[0][0]  is not working in Royale.

I don't see a test case to analyze see why it would take more time.
In Flex/Flash, the runtime resolves types and knows how to interpret bracket access.  In Royale on JS, the browser runtime is not as smart and Royale's compiler must be told what the type is in order to generate anything other than simple property lookups via bracket access.
ArrayCollection is a Proxy so bracket access on Proxy must be explicitly typed.  So, in theory the following should work:
var arrDDResult:Array = e.result as Array;
arrDGDataProvider = (arrDDResult[0] as ArrayCollection)[0] as ArrayCollection;
Adg.dataProvider = arrDGDataProvider ;
Or:
var arrDDResult:Array = e.result as Array;
// assumes var arrDGDataProvider:ArrayCollection;
arrDGDataProvider = arrDDResult[0] as ArrayCollection;
Adg.dataProvider = arrDGDataProvider[0] ;

@aharui the only browser that does not support es6 Proxy is IE. Using that could allow it to work in the browser just like Flex/Flash... but obviously not for IE11. Something to consider in the not too distant future?
see: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Proxy#Browser_compatibility

https://paste.apache.org/t60p8
In our application we are retrieving data from Java side as
var arrDDResult:Array = e.result as Array;
arrDGDataProvider = arrDDResult[0] as ArrayCollection;
dg.dataProvider = arrDGDataProvider.getItemAt(0).source ;
In Example
var arrDDResult:Array = e.result as Array;          is replaced with
[Bindable] public var data:Array =  new Array(["abc", "f","abc", "f","abc"]);
var arrDDResult:Array = data as Array;
So,its not populating data in AdvancedDataGrid
please Replace e.result with suitable Data and then check this example

data returned from server side is of type ArrayList<Hashtable[]>[]
and on retrieval we are assigning the result to dataprovider of adg:
var arrDDResult:Array = e.result as Array;
arrDGDataProvider = (arrDDResult[0] as ArrayCollection)[0] as ArrayCollection;
dg.dataProvider = arrDGDataProvider ;
It takes too much time to populate the grid with data
during debugging we found that below given line takes 30 seconds to execute
dg.dataProvider = arrDGDataProvider
We have tried both of your provided solutions.

Data Population Video:

@aharui  Thanks a lot


Compile run vscode to add Chinese plugin is invalid

Problem description
why does the packaged VsCode put into the Chinese plug-in and modify the configuration to take effect, but the compiled and run VsCode related plug-in has been put into the corresponding extension directory, but it does not take effect
rendering
abnormal：

normal:

@developers-youcong I am not sure what is the issue here. Can you please provide steps to reproduce?

step1:
Start listening

step2:
Run it by >.\scripts\code.bat

step3:
After executing the code. Bat command, an interface will pop up

I have added the Chinese plug-in, normally, it should be like this, as shown in the picture:

In general, this is the case:
The compiled and running vscode is added to the Chinese plug-in, without translation (the configuration has been modified), while the packaged vscode has been translated (the configuration has been modified). I wonder why this is happening?

Language pack extensions are not supported while running from dev.