Error when implementing lazy listener example with AWS Lambda

Testing the example to implement a lazy listener for long running tasks with AWS Lambda.
Getting an error without stack trace: [ERROR] 2021-11-18T03:10:15.994Z ebb119ae-e4ab-4f61-a609-39e1804c7415 Failed to run an internal function ('text')
Reproducible in:
pip freeze | grep slack
python --version
sw_vers && uname -v # or `ver`

The slack_bolt version: 1
(Paste the output of pip freeze | grep slack)
$  pip3 freeze | grep slack
slack==0.0.2
slack-bolt==1.6.1
slack-sdk==3.6.0
slackclient==2.9.3
Python runtime version
python 3.9
(Paste the output of python --version)
OS info
(Paste the output of sw_vers && uname -v on macOS/Linux or ver on Windows OS)
AWS Lambda
Steps to reproduce:
(Share the commands to run, source code, and project settings (e.g., setup.py))
Code:
# process_before_response must be True when running on FaaS
APP = App(
    token=SLACK_BOT_TOKEN,
    signing_secret=SLACK_SIGNING_SECRET,
    process_before_response=True)

def respond_to_slack(ack):
    ''' Respond to slack within 3 seconds'''
    ack('trying')

def run_long_process(respond, body):
    ''' Post ack long running process'''
    time.sleep(5)  # longer than 3 seconds
    respond(f"Completed! (task: {body['text']})")

APP.message('help')(
    ack=respond_to_slack,  # responsible for calling `ack()`
    lazy=[run_long_process]  # unable to call `ack()` / can have multiple functions
)

Expected result:
Expect the ack to work and then the long process function to execute after
Actual result:
Failed to run an internal function ('text')  (No stack trace)
(Tell what actually happened with logs, screenshots)
Requirements
Please read the Contributing guidelines and Code of Conduct before creating this issue or pull request. By submitting, you are agreeing to those rules.

Hi @joshight, thanks for writing in!
Perhaps, you copied the code from the example for slash command handling. As for the message event handling, the payload data structure is not the same. Instead of body['text'], you can use body['event']['text']. A safe code would be:
# have event or payload argument here
# refer to https://slack.dev/bolt-python/api-docs/slack_bolt/kwargs_injection/args.html to see the list of available args
def run_long_process(respond, event):
    ''' Post ack long running process'''
    if 'text' in event:
        time.sleep(5)  # longer than 3 seconds
        respond(f"Completed! (task: {event['text']})")

I hope this helps! If everything is clear now, would you mind closing this issue?

Hi @seratch, thanks for the help. That resolved my issue. Closing it now.


Pod type and Pod Type Array

Adapting two types for swap_endian method:

Pod Type (Not inside a struct, such as float)
Pod Type Array (Not inside a struct, such as float[2])

Pod type and Pod Type Array test pass, need to merge code to main branch.

@truehang
POD stands for "Plain Old Data." In C++, a POD type refers to a simple data structure that doesn't have private or protected members, inheritance, virtual functions, or other complex user-defined operations.
The significance of POD types lies in their ability to be safely manipulated or copied at the byte level, such as with the memcpy function.
The C++ standard defines two related type traits to determine whether a type is a POD or its subsets:

Trivial: A type is considered trivial if its constructors, copy/move constructors, and destructor are all trivial, and it doesn’t have virtual functions or virtual base classes.
Standard Layout: A type is considered standard layout if it doesn’t have virtual functions or virtual base classes, all its non-static data members have the same access control (public, private, protected), it doesn't inherit from another standard layout type, among other attributes.

A POD type satisfies both the trivial and standard layout conditions.
After C++11, the definitions and traits for these types were clarified and enhanced. The standard introduced type trait checks such as std::is_pod, std::is_trivial, and std::is_standard_layout.
For instance:
struct Example1 { int a; double b; };  // This is a POD
struct Example2 { int a; private: double b; };  // Not Standard Layout, so not POD
class Example3 { virtual void foo() {} };  // Has a virtual function, so it's neither Trivial nor Standard Layout, hence not POD

Note: In C++20, std::is_pod was deprecated since the concept was considered outdated in terms of modern C++ programming practices. However, understanding it remains valuable, especially when interfacing with older codebases or C-style APIs.

OK, since is_pod is deprecated, let's use is_trivial && is_standard_layout.


Fix #14: MockServer expectations abort during unrelated panic

I think this should solve this issue.
I used debug for when the thread is already panicking, not sure if it should be a higher level log.

Thank you!


Give more control on connection tasks

Currently there is no way to shut a connection down except signaling a global shutdown.
Having this ability can be useful to detect slow clients and prevent some attacks.

Related (but orthogonal) to this great enhancement proposal, I see by default the TCP keepalive is disabled in axum-server, as TCP keepalive is disabled by default in hyper.  This means dead TCP connections could be left undetected and accumulate over time eventually leading to resource exhaustion with error similar to
ERROR                 main hyper::server::tcp: accept error: Too many open files (os error 24)

To alleviate the issue, one can enable TCP keepalive with code like:
use axum::{routing::get, Router};
use std::net::SocketAddr;

#[tokio::main]
async fn main() {
    let app = Router::new().route("/", get(|| async { "Hello, world!" }));

    let addr = SocketAddr::from(([127, 0, 0, 1], 3000));
    println!("listening on {}", addr);
    axum_server::bind(addr)
        .addr_incoming_config(
            AddrIncomingConfig::default()
                .tcp_keepalive(Some(Duration::from_secs(60)))
                .build(),
        ).serve(app.into_make_service())
        .await
        .unwrap();
}

So far testing on a host that experienced this problem within a day or two shows very promising behavior.

from_tcp method can be used to enable TCP keepalive by providing custom TcpListener.

Furthermore, currently the only configurable property for TCP keepalive in axum  for incoming/accepted connections is the Keepalive time as defined at https://en.wikipedia.org/wiki/Keepalive.  The other two properties,Keepalive interval and Keepalive retry are not currently configurable and are set to None by default .
Specifically, even though all three parameters are supported by the socket2 crate, only Keepalive time is exposed by the hyper crate for configuration via AddrIncoming.html#method.set_keepalive which the axum crate depends upon.
Opportunities for improvement.

Here is a PR for hyper to make all three TCP Keepalive parameters configurable:
https://github.com/hyperium/hyper/pull/2989
If it was accepted, I would then post the corresponding PR to make this configurable at the axum-server layer.

Per empirical evidence enabling TCP keepalive with intervals and retries drastically/significantly improves the stability of persistent TCP connections while reducing the number of file descriptors via closing down dead connections.

FYI https://github.com/hyperium/hyper/pull/2991 was accepted.

It seems the AddrIncomingConfig was removed. I don't see any example or documentation to set the tcp_keepalive duration in the latest version. Was that feature removed @programatik29?
Relates to: https://github.com/programatik29/axum-server/pulls

Was that feature removed
Yes, but it can be manually implemented like this:

use axum_server::accept::Accept;
use log::error;
use socket2::{SockRef, TcpKeepalive};
use std::{marker::PhantomData, time::Duration};
use tokio::net::TcpStream;

#[derive(Clone, Copy, Debug, Default)]
pub(crate) struct CustomAcceptor<S, I>(I, PhantomData<S>);

impl<S, I> CustomAcceptor<S, I> {
    pub(crate) fn new(inner: I) -> Self {
        Self(inner, PhantomData)
    }
}

impl<S, I: Accept<TcpStream, S>> axum_server::accept::Accept<TcpStream, S>
    for CustomAcceptor<S, I>
{
    type Stream = <I as Accept<TcpStream, S>>::Stream;
    type Service = <I as Accept<TcpStream, S>>::Service;
    type Future = I::Future;

    fn accept(&self, stream: TcpStream, service: S) -> I::Future {
        if stream.set_nodelay(true).is_err() {
            error!("failed to set TCP nodelay");
        }

        if SockRef::from(&stream)
            .set_tcp_keepalive(
                &TcpKeepalive::new()
                    .with_time(Duration::from_secs(10))
                    .with_interval(Duration::from_secs(10))
                    .with_retries(2),
            )
            .is_err()
        {
            error!("failed to set TCP keepalive");
        }

        self.0.accept(stream, service)
    }
}

fn main() {
    let http_server = axum_server::bind{_rustls}(...)
        .map(CustomAcceptor::new)
        .serve(...);
}


plata-theme: 0.8.9 -> 0.8.90

Motivation for this change
Routine version bump. The "0.8.90" version is not a typo.
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nix-review --run "nix-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

Notify maintainers
cc @

Likely .90 is used to indicate it is a beta or RC for 0.9.

The release notes call them release candidates https://gitlab.com/tista500/plata-theme/-/tags/0.8.91


A pile of warnings on Clang

Minimal demonstration case:
#include "greatest.h"

TEST x_should_equal_1(void) {
  int x = 1;
  ASSERT_EQ_FMT(1, x, "%d");
  PASS();
}

SUITE(the_suite) {
  RUN_TEST(x_should_equal_1);
}

GREATEST_MAIN_DEFS();

int main (int argc, char** argv) {
  GREATEST_MAIN_BEGIN();
  RUN_SUITE(the_suite);
  GREATEST_MAIN_END();
}

When I try to compile this (as main.c) using clang -std=c11 -Weverything main.c, I get the following warning spew:
main.c:5:3: warning: format string is not a string literal [-Wformat-nonliteral]
  ASSERT_EQ_FMT(1, x, "%d");
  ^~~~~~~~~~~~~~~~~~~~~~~~~
./greatest.h:992:24: note: expanded from macro 'ASSERT_EQ_FMT'
#define ASSERT_EQ_FMT  GREATEST_ASSERT_EQ_FMT
                       ^
./greatest.h:389:5: note: expanded from macro 'GREATEST_ASSERT_EQ_FMT'
    GREATEST_ASSERT_EQ_FMTm(#EXP " != " #GOT, EXP, GOT, FMT)
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./greatest.h:442:38: note: expanded from macro 'GREATEST_ASSERT_EQ_FMTm'
            fprintf(GREATEST_STDOUT, greatest_FMT, EXP);                \
                                     ^~~~~~~~~~~~
main.c:5:3: warning: format string is not a string literal [-Wformat-nonliteral]
  ASSERT_EQ_FMT(1, x, "%d");
  ^~~~~~~~~~~~~~~~~~~~~~~~~
./greatest.h:992:24: note: expanded from macro 'ASSERT_EQ_FMT'
#define ASSERT_EQ_FMT  GREATEST_ASSERT_EQ_FMT
                       ^
./greatest.h:389:5: note: expanded from macro 'GREATEST_ASSERT_EQ_FMT'
    GREATEST_ASSERT_EQ_FMTm(#EXP " != " #GOT, EXP, GOT, FMT)
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./greatest.h:444:38: note: expanded from macro 'GREATEST_ASSERT_EQ_FMTm'
            fprintf(GREATEST_STDOUT, greatest_FMT, GOT);                \
                                     ^~~~~~~~~~~~
./greatest.h:208:18: warning: padding struct 'struct greatest_run_info' with 2 bytes to align 'tests_run' [-Wpadded]
    unsigned int tests_run;     /* total test count */
                 ^
./greatest.h:222:17: warning: padding struct 'struct greatest_run_info' with 4 bytes to align 'msg' [-Wpadded]
    const char *msg;
                ^
main.c:13:1: warning: cast from 'const void *' to 'unsigned char *' drops const qualifier [-Wcast-qual]
GREATEST_MAIN_DEFS();
^
./greatest.h:893:43: note: expanded from macro 'GREATEST_MAIN_DEFS'
    unsigned char *buf = (unsigned char *)t, diff_mark = ' ';           \
                                          ^
5 warnings generated.

I know that these can be suppressed with a few pragmas, but it'd be nice if the library didn't emit them in the first place.
Information of consequence: I'm on Arch and am using Clang 4.0.0, and my version of greatest.h is the latest git (as of the time of this issue).

Thanks, I'll see if I can reproduce and fix them. The first six messages are the same thing twice (with three levels of context), and the padding and cast ones should be straightforward to fix.


Could you please give me a instance?

Sorry, I don't know what you're asking! Can you elaborate?

I'd like to see a little more of django-organizations, and I hope you provide a good example for reference.
发送自 Windows 10 版邮件https://go.microsoft.com/fwlink/?LinkId=550986应用

发件人: Ben Lopatin<EMAIL_ADDRESS>发送时间: Tuesday, July 9, 2019 1:25:34 AM
收件人: bennylope/django-organizations
抄送: Chise1; Author
主题: Re: [bennylope/django-organizations] Could you please give me a instance? (#180)
Sorry, I don't know what you're asking! Can you elaborate?
―
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/bennylope/django-organizations/issues/180?email_source=notifications&email_token=ALKPN2SKEHQV77FQVB3NIHLP6N2A5A5CNFSM4H64Q232YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODZNZETQ#issuecomment-509317710, or mute the threadhttps://github.com/notifications/unsubscribe-auth/ALKPN2QLI7FC2W4L2KRHW2LP6N2A5ANCNFSM4H64Q23Q.

Hi @bennylope ,
I'm trying to run example on your git repos, but cant get it run normaly. This logs is what i've got when runserver:

ERRORS:
accounts.AccountUser: (models.E012) 'unique_together' refers to the non-existent field 'organization'.
accounts.AccountUser: (models.E012) 'unique_together' refers to the non-existent field 'user'.
accounts.AccountUser: (models.E015) 'ordering' refers to the non-existent field 'organization'.
accounts.AccountUser: (models.E015) 'ordering' refers to the non-existent field 'user'.
vendors.VendorUser: (models.E012) 'unique_together' refers to the non-existent field 'organization'.
vendors.VendorUser: (models.E012) 'unique_together' refers to the non-existent field 'user'.
vendors.VendorUser: (models.E015) 'ordering' refers to the non-existent field 'organization'.
vendors.VendorUser: (models.E015) 'ordering' refers to the non-existent field 'user'.

System check identified 8 issues (0 silenced).
(Using Django 2.1 and Python 3.6)
I've same request as Chise1, could you provide us a good example (a little more detail) for reference?
Many Thanks,


Nami Subaccounts with ledger - Lost

Hello
Im in a similar situation.
Nami stop responding.
I try to restore with the seeds and the process hung and never finish the restore. I try Chrome and Edge.
I use Ledger cold wallet to create subaccounts on Nami. So for the account with ADA protected by ledger I dont have the seeds, just the password Nami gives you for subaccounts.
I load the seeds on ccvault.io for the 0 nami account, but there is no way to get all the subscounts generated by Nami in my case protected by ledger.
Any way te get access outside Nami the the sub accounts 1, 2, etc.
I have the passwords for the subaccounts.
Other issue its that Nami give you 2 option, import and create account. But under import, dont talk about import its own accounts, only Daedalus or Yoroi and no tipical "restore" for any Nami user, any way I think that is a lack of info og the user interface, but any way i cant finish the process, Nami accept my phrases but get stuck in the password step on two browsers.
I cant be the only one with this issue.
Nami its not working properly.
Any other way to get ehe subaccounts over other wallet? Ccavault dont bring the ledger linked account with Nami were my ADA are.
Please any help.
Thanks

I select restore.
The phase were accepted and after place the password, stay there for ever.
Funy thing is that im not creating an account, I am "importing"...
Please developers, if I have a Nami account, the option should be "restoring" at the first page.

Does ccvault not allow you to create subaccounts from a hardware wallet? I think it does actually.
Anyway, I think the reason why the wallet cannot be created is that the localStorage of Nami seems not to be empty and so Nami throws an error when you try import a wallet. Have you fully removed the extension before?

Funy thing is that im not creating an account, I am "importing"...

No you import a seed phrase. You always create a new account with name and password. These are two different things


feat(SDK): add HyperealVR SDK support

The pull request implements the HyperealVR SDK for VRTK.
The setup is pretty strightforward:

Import Hypereal VR Unity Plugin (https://www.hypereal.com/#/developer/resource/download)
Drag HyperealVRMain prefab into the scene.
Add VRTK_SDKSetup script onto the HyperealVRMain and choose Hypereal SDK in SDK selection.
Add the setup into SDKManager.

Notice:

For some versions of plugin, HyPointerLaser script is attached on the controllers. Remove them before use.

Since we only have one button on each controller, we could not map all VRTK buttons. The menu button on the right controller is mapped to VRTK button-menu while the menu button on the  left is mapped to button-two of VRTK. VRTK button-one has not been mapped to any button of the controller.

HyperealVR setting menu will pop out when double clicking the menu button on the right. Currently, there's issue with double clicking. Our engineer is working on that and the fixed SDK is releasing next Tuesday (July 18th).

Hey there! I suggest also editing the GETTING_STARTED document to include the above description. Look at the already included descriptions for the other SDKs to see the wording used. Make sure to link the Unity plugin there, too. 😄

There were the following issues with your Pull Request

Commit: 4643f3b0b40a9b1c9a844a4915d2196ec289f7e6
Commits must be in the following format: %{type}(%{scope}): %{description}

Guidelines are available at https://github.com/thestonefox/SteamVR_Unity_Toolkit

This message was auto-generated by https://gitcop.com

Just squash the commits and make sure the resulting single commit's commit message is the one you used for the first commit, then force push the branch. That will update the PR here 😄

Oh I forget to close the details tag. I will update it now.

Ohh! Interestingly it just showed up fine when asking GitHub to render the markdown document. 🤷♂

Transform GetHeadset(), Transform GetHeadsetCamera(), Transform GetPlayArea() function changed.
Previous implementation may cause error when component not found.

It's probably also worth updating the README.md document and adding HyperRealVR to the Supported SDK table
I'd also suggest marking it as experimental as no one has confirmed this SDK is working other than the author of the PR.

I found that there's new a new method  public abstract float GetButtonSenseAxis(ButtonTypes buttonType, VRTK_ControllerReference controllerReference);. I will implement it and submit the changes later.

Need I update the examples and SDKSetups prefab?

Yeah we include all the supported SDKs in that prefab which is then used in the example scenes.
Previously there were some issues with that prefab, so one needed to only edit it with all the vendor SDKs imported... I think that has been fixed, though, because the SDK Setups auto-populate in their OnEnable these days. May be good to check with @thestonefox after you edited the prefab 😄

I forget to update the readme.md.
Sorry about that.

@crmxm Double check your SDK still compiles with out errors as there have been more methods added to the SDK since this PR:
e.g.
https://github.com/thestonefox/VRTK/blob/release/3.3.0-alpha/Assets/VRTK/SDK/Base/SDK_BaseController.cs#L264

I updated the code.  It is up-to-date with the current release branch, and it works fine.

all looks good to me now. @bddckr do you want to have a final look over as well?

Looks good to me, except I didn't check the files' first line. Dunno if the used doc generator number there is correct.

Ah well, if the docs dont auto gen properly, i'll fix that stuff in the auto gen doc commit ;)


kernel: allow to be built on remote builder

When building a kernel for a different architecture, the build
fails because preferLocalBuild tries to run the wrong binaries
locally (i.e. aarch64 binaries on x86-64).

Motivation for this change
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

Tested with
$ nix-build -A linux_ayufan_5_9 --system 'aarch64-linux' -j 0

in https://github.com/Mic92/nur-packages/

not sure if there is a better way?

cc @cleverca22

I am not sure this change is required at all. I've been remote building kernels for my aarch64 machines for a while now. The build machine doesn't have the binfmt setup so whenever it has to build aarch64 derivations it does so on a remote machine.
What error did you run into without this change and how did you setup the remote builders?

I am not sure this change is required at all. I've been remote building kernels for my aarch64 machines for a while now. The build machine doesn't have the binfmt setup so whenever it has to build aarch64 derivations it does so on a remote machine.
What error did you run into without this change and how did you setup the remote builders?

$ nix-build -A linux_ayufan_5_9 --system 'aarch64-linux' -j 0
these 2 derivations will be built:
  /nix/store/ry84gwy7ypqj6qym3k0y1jvadcajnbpn-installkernel.drv
  /nix/store/pzdgpi52xf7d1v8jmhnav53axrlq538d-linux-5.9.0-1145-ayufan.drv
building '/nix/store/ry84gwy7ypqj6qym3k0y1jvadcajnbpn-installkernel.drv'...

ErroSysErrorvexecuting '/nix/store/g2xbi9c7gxrq8d2gmpmyx39fb8x5wkwb-bash-4.4-p23/bin/bash': Exec format error
error: --- Error --- nix-daemon
builder for '/nix/store/ry84gwy7ypqj6qym3k0y1jvadcajnbpn-installkernel.drv' failed with exit code 1; last 2 log lines:

  ErroSysErrorvexecuting '/nix/store/g2xbi9c7gxrq8d2gmpmyx39fb8x5wkwb-bash-4.4-p23/bin/bash': Exec format error
error: --- Error ----------------------------------------------------------------------------------------------------------------------------------------------------------- nix-build
1 dependencies of derivation '/nix/store/pzdgpi52xf7d1v8jmhnav53axrlq538d-linux-5.9.0-1145-ayufan.drv' failed to build
$ nix log /nix/store/ry84gwy7ypqj6qym3k0y1jvadcajnbpn-installkernel.drv
───────┬──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
       │ STDIN
───────┼──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
   1   │ ^A
   2   │ ^E^@^@^@^@^@^@^@Error^@^@^@^@^@^@^@^@^@^@^@^H^@^@^@^@^@^@^@SysError^@^@^@^@^@^@^@^@v^@^@^@^@^@^@^@executing '/nix/store/g2xbi9c7gxrq8d2gmpmyx39fb8x5wkwb-bash-4.4-p23/bin/bash': Exec format error^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@

This my nix config:
# WARNING: this file is generated from the nix.* options in
# your NixOS configuration, typically
# /etc/nixos/configuration.nix.  Do not edit it!
build-users-group = nixbld
max-jobs = auto
cores = 0
sandbox = true

substituters = https://nix-community.cachix.org https://mic92.cachix.org https://cache.nixos.org/
trusted-substituters =
trusted-public-keys = nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs= mic92.cachix.org-1:gi8IhgiT3CYZnJsaW7fxznzTkMUOn1RY4GmXdT/nXYQ= cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
auto-optimise-store = false
require-sigs = true
trusted-users = nix joerg root
allowed-users = *

system-features = nixos-test benchmark big-parallel kvm
sandbox-fallback = false

builders-use-substitutes = true
keep-outputs = true
keep-derivations = true
# in zfs we trust
fsync-metadata = false
experimental-features = nix-command flakes

flake-registry = /nix/store/phbpq3yxyf96kilx3k9yaxlkyjwcqr01-source/flake-registry.json

I am not sure this change is required at all. I've been remote building kernels for my aarch64 machines for a while now. The build machine doesn't have the binfmt setup so whenever it has to build aarch64 derivations it does so on a remote machine.
What error did you run into without this change and how did you setup the remote builders?

$ nix-build -A linux_ayufan_5_9 --system 'aarch64-linux' -j 0
these 2 derivations will be built:
  /nix/store/ry84gwy7ypqj6qym3k0y1jvadcajnbpn-installkernel.drv
  /nix/store/pzdgpi52xf7d1v8jmhnav53axrlq538d-linux-5.9.0-1145-ayufan.drv
building '/nix/store/ry84gwy7ypqj6qym3k0y1jvadcajnbpn-installkernel.drv'...

ErroSysErrorvexecuting '/nix/store/g2xbi9c7gxrq8d2gmpmyx39fb8x5wkwb-bash-4.4-p23/bin/bash': Exec format error
error: --- Error --- nix-daemon
builder for '/nix/store/ry84gwy7ypqj6qym3k0y1jvadcajnbpn-installkernel.drv' failed with exit code 1; last 2 log lines:

  ErroSysErrorvexecuting '/nix/store/g2xbi9c7gxrq8d2gmpmyx39fb8x5wkwb-bash-4.4-p23/bin/bash': Exec format error
error: --- Error ----------------------------------------------------------------------------------------------------------------------------------------------------------- nix-build
1 dependencies of derivation '/nix/store/pzdgpi52xf7d1v8jmhnav53axrlq538d-linux-5.9.0-1145-ayufan.drv' failed to build
$ nix log /nix/store/ry84gwy7ypqj6qym3k0y1jvadcajnbpn-installkernel.drv
───────┬──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
       │ STDIN
───────┼──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
   1   │ ^A
   2   │ ^E^@^@^@^@^@^@^@Error^@^@^@^@^@^@^@^@^@^@^@^H^@^@^@^@^@^@^@SysError^@^@^@^@^@^@^@^@v^@^@^@^@^@^@^@executing '/nix/store/g2xbi9c7gxrq8d2gmpmyx39fb8x5wkwb-bash-4.4-p23/bin/bash': Exec format error^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@

By setting --system … you are telling Nix that your local machine is that system type. What you really want is to pass the correct system into the nixpkgs invocation so that the derivations will have system = "aarch64-linux"; while your local machine is still x86_64-linux (or whatever). Then the remote builder logic works. --system really isn't thought for these kinds of things.
Apply this patch to your nur repo:
diff --git a/default.nix b/default.nix
index c7aa03f..43819be 100644
--- a/default.nix
+++ b/default.nix
@@ -1,4 +1,4 @@
-{ pkgs ? import <nixpkgs> { } }:
+{ system ? builtins.currentSystem,  pkgs ? import <nixpkgs> { inherit system; } }:

 rec {
   bitwarden_rs_ldap = pkgs.callPackage ./pkgs/bitwarden_rs_ldap { };

And then build like this: nix-build -A linux_ayufan_5_6 --argstr system "aarch64-linux"

Thanks!


Add a flag to control Cassandra consistency level

Resolves #699
$ go run ./cmd/collector/main.go -h | grep consistency
      --cassandra-archive.consistency string                 The Cassandra consistency level, e.g. ANY, ONE, TWO, THREE, QUORUM, ALL, LOCAL_QUORUM, EACH_QUORUM, LOCAL_ONE (default LOCAL_ONE)
      --cassandra.consistency string                         The Cassandra consistency level, e.g. ANY, ONE, TWO, THREE, QUORUM, ALL, LOCAL_QUORUM, EACH_QUORUM, LOCAL_ONE (default LOCAL_ONE)

Signed-off-by: Yuri Shkuro<EMAIL_ADDRESS>cc @LarsMilland

Coverage remained the same at 100.0% when pulling f1cc064ba1212fd487a204e1f9e0b811441ae75d on fix-699 into 9fe8cc80d533cc2e0bf2f490d41e7d69fa3c0625 on master.


Update tuto "Explorer"

This PR aims to:

update obsolete info, links, and illustrations from the " Explorer" tutorial
Remove the " Smart contract interaction " part which is related to the nemeton Testnet

Action items :

[x] Remove the " Smart contract interaction " part
[x] Change Title from " Explorer & smart contract" to " Explorer"
[x] Change all the links related to the nemeton Explorer
[x] Modify step " Send Transaction " by replacing an illustration and the new explorer address
[x] Reorganize some points

Suggestions:
Should we modify the GitHub repo "Awesome block explorer"?
There is a link to this repo in the tutorial. Maybe we have to update something but I'm not sure about what we have to change in this repo (some testnet links and some documentation links)

Summary by CodeRabbit

Documentation

Updated links and text in the tutorial for the OKP4 Explorer, including changing references to the "OKP4 Drunemeton testnet" and minor adjustments to instructions for interacting with the explorer interface.

This LGTM. I'm just holding off for the fix in https://github.com/okp4/okp4d/pull/583 to address the linter issue you have in this PR.


Closing the menu when a user clicks on it

Done

Do you suggest we should collapse the sidebar whenever the user navigates through pages? why?

I see - it's mobile only thing. ok :)


Upgrade Support Bundle to 1.0.5

Sling 9 / 10 cannot support any Support Bundle's before 1.0.5 because of the removal of the org.apache.commons.json and org.json.

Fixed by release 1.0.2


Allow setproperty! for PointerWrappers with special structs

As discussed in #77 this adds the functionality to set properties also for structs as in #72 using the same approach like #74.

Do you think of an additional test than the ones I already added? If so, what kind of test were you thinking of?


[Feature Request] Support for GitHub-flavored Markdown Callouts/Alerts in READMEs on Typst Universe

Description
GitHub has support for a Markdown extension called Alerts. These alerts allow for documentation information to be displayed with distinctive colors and icons to indicate the significance of the content.
Seeing as these are already supported by GitHub and are already being used by package developers (myself included), having this capability in Typst Universe would allow for a higher level of parity across platforms for package documentation.
The types of alerts being requested would follow the list as provided on GitHub Docs.
> [!NOTE]
> Useful information that users should know, even when skimming content.

> [!TIP]
> Helpful advice for doing things better or more easily.

> [!IMPORTANT]
> Key information users need to know to achieve their goal.

> [!WARNING]
> Urgent info that needs immediate user attention to avoid problems.

> [!CAUTION]
> Advises about risks or negative outcomes of certain actions.

This displays as...

[!NOTE]
Useful information that users should know, even when skimming content.

[!TIP]
Helpful advice for doing things better or more easily.

[!IMPORTANT]
Key information users need to know to achieve their goal.

[!WARNING]
Urgent info that needs immediate user attention to avoid problems.

[!CAUTION]
Advises about risks or negative outcomes of certain actions.

Thank you for your consideration!

Has been reposted to the webapp issues page!

I'm closing this issue to avoid duplicates then, it is indeed better to have in webapp-issues.


add Mappable to Parsing/JSON

Project URL
https://github.com/leavez/Mappable
Category
Parsing / JSON
Description
Added Mappable library link and description in README file.
Why it should be included to awesome-ios (optional)
Mappable is a lightweight, yet powerful, framework to convert JSON to model, specially optimized for immutable property initialization.
Checklist

[x] Only one project/change is in this pull request
[x] Has unit tests, integration tests or UI tests
[x] Addition in chronological order (bottom of category)
[x] Supports iOS 9 / tvOS 10 or later
[x] Supports Swift 4 or later
[x] Has a commit from less than 2 years ago
[x] Has a clear README in English

          1 Warning

:warning:
Found 7 link issues, a project collaborator will take care of these, thanks :)

Link issues by awesome_bot

Line
Status
Link

189
302
https://developer.apple.com/library/content/referencelibrary/GettingStarted/DevelopiOSAppsSwift/ redirects tohttps://developer.apple.com/library/archive/referencelibrary/GettingStarted/DevelopiOSAppsSwift/

190
302
https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/OOP_ObjC/Introduction/Introduction.html redirects tohttps://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/OOP_ObjC/Introduction/Introduction.html

191
302
https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/ProgrammingWithObjectiveC/Introduction/Introduction.html redirects tohttps://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/ProgrammingWithObjectiveC/Introduction/Introduction.html

204
301
https://www.codeschool.com/courses/exploring-google-maps-for-ios redirects tohttps://www.pluralsight.com/courses/google-maps-api-get-started

334
301
https://github.com/WeltN24/Carlos redirects tohttps://github.com/spring-media/Carlos

3059
301
https://www.codeschool.com/courses/try-objective-c redirects tohttps://www.pluralsight.com/courses/objective-c

3144
404
https://itunes.apple.com/us/book/using-swift-cocoa-objective/id888894773?mt=11

  Generated by :no_entry_sign: Danger


Disrespecting Travis

From 1 failure 26 days ago to 16 today with commits directly against master I sense a degree of disrespect for Travis.
If there is a desire to a) begin merging to branches and creating pull requests and b) caring about the travis build results, then lets do it.

I had prepared two pull requests to begin addressing subject B. However project team commits directly to master without following a branch and pull request process has made contribution difficult.

@philoserf I think you bring up an interesting topic, and @chef-cookbooks/aws-cookbook-collaborators should definitely get heads together and sort out how this should flow.
Thanks for bringing up the topic.

@tas50 You're extremely active on committing to master directly, and there now also seems to be many PRs that were mergeable, that are no longer.
How do you want to proceed with maintaining this cookbook?

Sorry about breaking the world.  We worked pretty hard to get the cookbook project as a whole to a manageable state.  That required a lot of auto commits and a ton of boilerplate cleanup.  Some changes like adding the standardized rubocop file did break travis. The repos are now in a standardized state so the instability of this repo should be a thing of the past.


The Android app cannot load the Flutter control when playing the Release APK ,It's add Flutter existing Android App

It's good in debug mode

Hi @tianzhiguo123
can you please provide your flutter doctor -v?
Also, to better address the issue, would be helpful if you could post a minimal code sample to reproduce the problem
Thank you

Hi @tianzhiguo123
can you please provide your flutter doctor -v?
Also, to better address the issue, would be helpful if you could post a minimal code sample to reproduce the problem
Thank you

Thank you !This is a project of our company. Demo can't be reproduced

Hi @tianzhiguo123
I understand you cannot release the source code,
but could you please provide your flutter doctor -v,
your pubspec.yaml and any available crash log
Thank you

Hi @tianzhiguo123
I understand you cannot release the source code,
but could you please provide your flutter doctor -v,
your pubspec.yaml and any available crash log
Thank you

ok

Hi @tianzhiguo123
I understand you cannot release the source code,
but could you please provide your flutter doctor -v,
your pubspec.yaml and any available crash log
Thank you

Hi @tianzhiguo123
You need to provide information to better address the issue
Does this happen on emulator too? Did it occur on other physical devices?
Please provide complete flutter doctor -v and flutter run --verbose reproducing the crash or errors
To better address the issue, please a create separate minimal sample code that causes the issue
Thank you

@ tianzhiguo123，您好：
您需要提供信息以更好地解决此问题。
这是否也在模拟器上发生？它是否发生在其他物理设备上？
请提供完整flutter doctor -v和flutter run --verbose再现崩溃或错误，
为了更好地解决这个问题，请大家创建导致问题分开最小的示例代码
谢谢

no

Hi @tianzhiguo123
Can you please provide your pubspec.yaml from Flutter Module and build.gradle from Android folder? More information is needed to better address the issue
Thank you

Hi @tianzhiguo123
Can you please provide your pubspec.yaml from Flutter Module and build.gradle from Android folder? More information is needed to better address the issue
Thank you

only these,friend

Hi @tianzhiguo123
Can you please copy/paste the complete logs here?
Thank you

Hi @tianzhiguo123
Without additional information, we are unfortunately not sure how to resolve this issue. We are
therefore reluctantly going to close this bug for now. Please don't hesitate to comment on the
bug if you have any more information for us; we will reopen it right away!
Thanks for your contribution


Combined keywords into a single email

Combined the keywords into a single email body:

Should avoid spamming users emails if they have multiple searches.

Should we also add a link to where the searches can be found? i.e. https://www.zeeguu.org/articles/mySearches?

I see an A/B testing opportunity here: one approach just mentions that there are new articles. The other one provides titles and links too :)

That's also a good idea!
Added the link;

Looks good! Nice, that the user will not get spammed, and I think the issue with my version - was that it was not using subscription.search.keywords :-)


Configure QEMU to run independent of the host clock

We have been struggling for years with issues related to how QEMU attempts to synchronize guest timer interrupts with the host clock, for example #12553. The symptom is that heavily loaded sanitycheck runs have tests spuriously failing due to timing related issues.
This creates noise in our CI runs which masks true bugs in our system which manifest only intermittently, causing real issues that will happen all the time at scale to be 'swept under the rug'; right now any time a test fails sanitycheck retries it a few times and only consecutive failures produce an error.
QEMU does nominally support some options to decouple the guest from host clock:
-rtc [base=utc|localtime|date][,clock=host|rt|vm][,driftfix=none|slew]
                set the RTC base and clock, enable drift fix for clock ticks (x86 only)
-icount [shift=N|auto][,align=on|off][,sleep=on|off,rr=record|replay,rrfile=<filename>,rrsnapshot=<snapshot>]
                enable virtual instruction counter with 2^N clock ticks per
                instruction, enable aligning the host and virtual clocks
                or disable real time cpu sleeping

Unfortunately to date nobody has ever gotten this working.
The objective is as follows: for all architectures that use QEMU for sanitycheck runs (currently x86, x86_64, arm, riscv32, xtensa, nios2) configure QEMU to use icount.
Beware that there may be bugs in QEMU which prevent this from working, and whoever works on this should be prepared to dive into the QEMU source and/or work with QEMU upstream.
Also it's worth noting that moving ANY arch to use icount is progress, so even if we can get only some but not all arches working with this, that is worth doing. At this time I recommend x86 and ARM (the qemu_x86 and mps2_an385 targets) as priority. But eventually we need them all to finally get rid of these spurious sanitycheck failures.
If we manage to get this working for all arches, then we can remove the logic in CI which keeps retrying failed tests.
Known build targets that use QEMU emulation, each tickbox is a separate board.cmake that sets QEMU_FLAGS_${ARCH}:

[ ] qemu_xtensa
[x] mps2_an385
[ ] qemu_cortex_m0
[ ] qemu_cortex_m3
[ ] mps2_an521
[ ] qemu_cortex_r5
[ ] qemu_cortex_a53
[ ] qemu_nios2
[ ] qemu_riscv32
[ ] qemu_riscv64
[ ] hifive1
[ ] qemu_x86 (and related targets)
[ ] qemu_x86_64

Check these tickboxes as patches are merged (not submitted) to indicate that they are now using icount.

I did some sanitychecks with "-icount shift=4,align=off,sleep=off" on qemu_x86 and mps2_an385, only tests/kernel/critical/kernel_critical failed on mps2_an385. And run that case(tests/kernel/critical/kernel_critical) on mps2_an385 specially, I can get this case run successfully, but it takes long time to execute, so it's why get the timeout result on sanitychecks. And it means icount mode produces deterministic output, but does not provide cycle accurate.
I will try to review the qemu code to try to understand icount mode well, and then do next plan.

@wentongwu thanks for the update :)

I remember tests/kernel/critical takes a while even without icount, so perhaps we need to change the test to not take so much time.

I run several rounds stress tests, founding more failed/timeout, and most of them are related to timer accurateness, I need do more debug and code review.

With below patch, I did some sanitychecks again with "-icount shift=4,align=off,sleep=off -rtc clock=vm" on qemu_x86 and mps2_an385, so far no error occured. Still reviewing qemu code...
diff --git a/tests/kernel/critical/src/main.c b/tests/kernel/critical/src/main.c
index 372f931fa1..38d26a987c 100644
--- a/tests/kernel/critical/src/main.c
+++ b/tests/kernel/critical/src/main.c
@@ -32,8 +32,8 @@
#include <linker/sections.h>
#include <ztest.h>
-#define NUM_MILLISECONDS        5000
-#define TEST_TIMEOUT            20000
+#define NUM_MILLISECONDS        500
+#define TEST_TIMEOUT            2000
static u32_t critical_var;
static u32_t alt_thread_iterations;

With below patch in every code path,  four processes run " for i in {1..10000}; do ./scripts/sanitycheck
-p qemu_x86 -p mps2_an385 -T tests/kernel ; done " individually in four different code path on the same one machine (ubuntu 18.04), two processes with "-icount shift=4,align=off,sleep=off -rtc clock=vm" configuration, one process with "-icount shift=4,align=off,sleep=off" configuration, the last one with the default configuration (the original configuration, no changes on qemu configuration). So far the default one easily fail, others run correctly.
diff --git a/scripts/sanitycheck b/scripts/sanitycheck
index 662172cda2..12788cf555 100755
--- a/scripts/sanitycheck
+++ b/scripts/sanitycheck
@@ -1453,7 +1453,7 @@ testcase_valid_keys = {"tags": {"type": "set", "required": False},
"build_on_all": {"type": "bool", "default": False},
"skip": {"type": "bool", "default": False},
"slow": {"type": "bool", "default": False},

                  "timeout": {"type": "int", "default": 60},

                  "timeout": {"type": "int", "default": 600},
                  "min_ram": {"type": "int", "default": 8},
                  "depends_on": {"type": "set"},
                  "min_flash": {"type": "int", "default": 32},

five minutes is a lot for a default. how many / which tests start taking longer than 60 seconds with the icount change?

"-icount shift=4,align=off,sleep=off -rtc clock=vm"

Can you give some detail on how these parameters were selected? What do you observe for different shift values, and why did you settle on 4?

@andrewboie if 10 PRs submitted at the same time, what's the CI's behavior? run shippable for each PR one by one ? or run shippable for all the PRs at the same time ? Thanks

@wentongwu it runs it on  the last patch in the series.
Having said that, your PRs need to be bisectable without breaking the build.

@wentongwu it runs it on the last patch in the series.
Having said that, your PRs need to be bisectable without breaking the build.

I mean if ten different developers submit their own PRs at the same time, will CI schedule it one by one or run it concurrently? If concurrently, icount mode can't guarantee the complete time of the test case, because first it will take longer time than normal mode, second more qemu processes in one machine will cause little time for each qemu process.

If concurrently, icount mode can't guarantee the complete time of the test case

I see what you mean. The build slaves are supposed to be load balanced, with the number of CPUs selected for the job matching the hardware it is running on.
Having said that, perhaps we need a more sophisticated accounting on how long tests are taking to complete to determine whether they have gotten stuck somewhere.
Are you at the point where icount is working but we just need longer test timeouts?

from the point of qemu end user, it seems icount mode is working for mps2_an385 and qemu_x86.
and for mps2_an385, the shift value located in [1:4] is working except there are some timeouts. And for qemu_x86, the shift value located in [4, 9] also is working except there is a always failed case( kernel.memory_protection.stack_random) which need more time debug.
how to run icount mode. Run this command first (export QEMU_EXTRA_FLAGS="-icount shift=N, align=off,sleep=off -rtc clock=vm") which is to set icount mode and it's parameters( N is the shift value),  and then run Zephyr as usual.
for why other shift values not working, I'm GDBing qemu which runs zephyr.elf to try to figure out the reason, and it related to Zephyr's timer driver and also Qemu timer's implementation(timer hardware).

problems to solve for platform mps2_an385 (will update here if found more failed case):

shift=9, tests/kernel/lifo/lifo_usage/kernel.lifo.usage case always fail.
so far there are some timeout cases, we can adjust timeout value as #17107 do.
find the most stable shift value by test results and qemu icount code analysis.

for the fail with shift=9 or shift=10 on case tests/kernel/lifo/lifo_usage/kernel.lifo.usage, I think the reason is that the frequency of the emulated CPU is too low, 2Mhz(2^9ns per instruction) or 1Mhz(2^10ns per instruction), and actually the frequency of mps2_an385 should be 25Mhz.
struct timeout_order_data timeout_order_data[] = {
        {0, &lifo_timeout[0], 20, 2, 0},
        {0, &lifo_timeout[0], 40, 4, 1},
        {0, &lifo_timeout[0], 0, 0, 2},
        {0, &lifo_timeout[0], 10, 1, 3},
        {0, &lifo_timeout[0], 30, 3, 4},
};

And Qemu in icount mode can give deterministic execution for guest code timeout if the frequency of the emulated CPU is similar to or great than the real frequency. But if the frequency of the emulated CPU is too high, that means the shift value is too low, the test code in Zephyr like spin_for_ms will take very long wall time to complete the test case, so it's very likely timeout happened for that cases spinning for some time.
So I think for the guest code timeout,  similar to the real frequency of the machine, at least for mps2_an385, is the best choice (And before this conclusion, I'm trying to make every shift work for our test cases, now it seems we can't achieve it).

another timing issue in Zephyr test case is that we use the delta between two point-in-time, for example case tests/kernel/timer/timer_api
void test_timer_k_define(void)
{
...
        k_timer_start(&ktimer, DURATION, PERIOD);

        /* Call the k_timer_start() again to make sure that
         * the initial timeout request gets cancelled and new
         * one will get added.
         */
        busy_wait_ms(DURATION / 2);
        k_timer_start(&ktimer, DURATION, PERIOD);
        tdata.timestamp = k_uptime_get();
        busy_wait_ms(DURATION + PERIOD * EXPIRE_TIMES + PERIOD / 2);

...
}

and case tests/kernel/sched/schedule_api
void test_slice_reset(void)
{
...
                /*set reference time*/
                cycles_delta(&elapsed_slice);

                /* current thread (ztest native) consumed a half timeslice*/
                t32 = k_cycle_get_32();
                while (k_cycle_get_32() - t32 < HALF_SLICE_SIZE_CYCLES) {
#if defined(CONFIG_ARCH_POSIX)
                        k_busy_wait(50);
#endif
                }

                /* relinquish CPU and wait for each thread to complete*/
                for (int i = 0; i < NUM_THREAD; i++) {
                        k_sem_take(&sema, K_FOREVER);
                }

...
}

And I don't think the time point in Qemu icount mode is accurate, even though the cases using delta between two time point are PASSED on most of the shift value, but I believe there should be deviation. So my recommendation is to not use time point in test case instead we should use timeout in guest code. I post this point in Qemu mail list https://lists.gnu.org/archive/html/qemu-devel/2019-08/msg01497.html, so far nobody answer me, but I will post more to try to discuss it with Qemu developer, hope I'm right.

What is the current status of this?

What is the current status of this?

all my changes are here https://github.com/wentongwu/zephyr/commits/icount
after you visit Shanghai, I have no time to handle this issue. If this issue is urgent, I will try to find the root cause for the only failed case next week.

Currently fighting with this on the ARM64 port when using the QEMU release by Xilinx. The only way to have all the tests passing is basically using -icount shift=0,align=off,sleep=off and disabling timeouts in the sanitycheck script.

Currently fighting with this on the ARM64 port when using the QEMU release by Xilinx. The only way to have all the tests passing is basically using -icount shift=0,align=off,sleep=off and disabling timeouts in the sanitycheck script.

@carlocaione
that's great, as my above comments the method about how to choose value of shift is that the the clock-frequency decided by shift should be similar to the real frequency of that machine(at least that's correct for mps2_an385), so I guess the clock-frequency of your system is most close to 1/(2^0 ns), could you please confirm that? Thanks
yes, the little of shift value the more host time(wall time) needed for some cases which spin to reach some time period like busy_wait_ms, I think the timeout on your side should also happen on these cases.

that's great, as my above comments the method about how to choose value of shift is that the the clock-frequency decided by shift should be similar to the real frequency of that machine(at least that's correct for mps2_an385), so I guess the clock-frequency of your system is most close to 1/(2^0 ns), could you please confirm that?

I'm seriously confused by this statement. Can you give a technical explanation of this? 1/(2^0 ns) is 1MHz that is definitely a low frequency for my platform.
I did some tests today. Let focus for example on the tests/kernel/sleep/kernel.timing. This keeps failing when not using -icount.
In particular what fails is:
start_tick = k_uptime_get_32();
k_sleep(ONE_SECOND);
end_tick = k_uptime_get_32();

if (!sleep_time_valid(start_tick, end_tick, ONE_SECOND_ALIGNED)) {

When not using -icount I have something like start_tick==51 and end_tick==1054.
When using -icount shift=0,align=off,sleep=off I have start_tick==1 and end_tick==1001

So basically when not using -icount we are off by a few ticks. ONE_SECOND_ALIGNED is strictly 1000 so I was thinking if here one workaround could just relax a bit this alignment when -icount is not used.
Please note that this solves one of the two problems I have. The other issue is that when using -icount some tests just take too much time for the 60s timeout we have in the sanitycheck script.

Just to add one more thing. This behavior is strictly dependent on QEMU.
When I test my ARM64 branch with a regular QEMU emulating a Cortex-A53 virt platform I don't need any -icount trick and I'm able to pass 100% of the test. The -icount trick is only useful when emulating a Xilinx board using the QEMU released by Xilinx.

that's great, as my above comments the method about how to choose value of shift is that the the clock-frequency decided by shift should be similar to the real frequency of that machine(at least that's correct for mps2_an385), so I guess the clock-frequency of your system is most close to 1/(2^0 ns), could you please confirm that?

I'm seriously confused by this statement. Can you give a technical explanation of this? 1/(2^0 ns) is 1MHz that is definitely a low frequency for my platform.

should be 1GHz

should be 1GHz

Ah, I cannot do math apparently. You are right. Still I don't get the reasoning behind.

So it turns out that at least in my case I just forgot to select QEMU_TARGET. With that I pass all the tests again.

I've moved this to 2.3 but we've made some good progress lately.

quick testing, seems most of other QEMU platforms also can work, will pick-up little timeout or failed cases.

@andrewboie Are you going to develop test case for that QEMU configuration?

The current manifestation of the lack for this enhancement is the following:
tests/counter/counter_basic_api failing on mps2_an385 in CI occasionally.

I found and fixed two issues that were exposed by enabling icount on x86 targets:
https://github.com/zephyrproject-rtos/zephyr/pull/24879
https://github.com/zephyrproject-rtos/zephyr/pull/24880
After https://github.com/zephyrproject-rtos/zephyr/pull/24879 is merged, I have found icount works well on 32-bit x86, and I think we should enable it. I tested with -icount shift=7,align=off,sleep=off -rtc clock=vm
x86_64 unfortunately has other issues. With icount turned on and the above fix applied, I still see:
Deleting output directory /dev/shm/sanity-out
INFO    - JOBS: 48
INFO    - Building initial testcase list...
INFO    - 176 test configurations selected, 631 configurations discarded due to filters.
INFO    - Adding tasks to the queue...
INFO    - Total complete:   39/ 176  22%  skipped:   12, failed:    0
ERROR   - qemu_x86_64               tests/kernel/mbox/mbox_usage/kernel.mailbox.usage  FAILED: Failed
ERROR   - see: /dev/shm/sanity-out/qemu_x86_64/tests/kernel/mbox/mbox_usage/kernel.mailbox.usage/handler.log
INFO    - Total complete:   48/ 176  27%  skipped:   12, failed:    1
ERROR   - qemu_x86_64               tests/kernel/lifo/lifo_usage/kernel.lifo.usage     FAILED: Failed
ERROR   - see: /dev/shm/sanity-out/qemu_x86_64/tests/kernel/lifo/lifo_usage/kernel.lifo.usage/handler.log
INFO    - Total complete:   97/ 176  55%  skipped:   17, failed:    2
ERROR   - qemu_x86_64               tests/kernel/smp/kernel.multiprocessing.smp        FAILED: Failed
ERROR   - see: /dev/shm/sanity-out/qemu_x86_64/tests/kernel/smp/kernel.multiprocessing.smp/handler.log
INFO    - Total complete:  106/ 176  60%  skipped:   19, failed:    3
ERROR   - qemu_x86_64               tests/kernel/common/kernel.common.misra            FAILED: Timeout
ERROR   - see: /dev/shm/sanity-out/qemu_x86_64/tests/kernel/common/kernel.common.misra/handler.log
INFO    - Total complete:  107/ 176  60%  skipped:   19, failed:    4
ERROR   - qemu_x86_64               tests/kernel/common/kernel.common                  FAILED: Timeout
ERROR   - see: /dev/shm/sanity-out/qemu_x86_64/tests/kernel/common/kernel.common/handler.log
INFO    - Total complete:  108/ 176  61%  skipped:   19, failed:    5
ERROR   - qemu_x86_64               tests/kernel/spinlock/kernel.multiprocessing.spinlock FAILED: Timeout
ERROR   - see: /dev/shm/sanity-out/qemu_x86_64/tests/kernel/spinlock/kernel.multiprocessing.spinlock/handler.log
INFO    - Total complete:  109/ 176  61%  skipped:   19, failed:    6
ERROR   - qemu_x86_64               samples/portability/cmsis_rtos_v2/timer_synchronization/sample.portability.cmsis_rtos_v2.timer_synchronization FAILED: Timeout
ERROR   - see: /dev/shm/sanity-out/qemu_x86_64/samples/portability/cmsis_rtos_v2/timer_synchronization/sample.portability.cmsis_rtos_v2.timer_synchronization/handler.log
INFO    - Total complete:  121/ 176  68%  skipped:   19, failed:    7
ERROR   - qemu_x86_64               tests/kernel/mem_protect/userspace/kernel.memory_protection.userspace FAILED: Failed
ERROR   - see: /dev/shm/sanity-out/qemu_x86_64/tests/kernel/mem_protect/userspace/kernel.memory_protection.userspace/handler.log
INFO    - Total complete:  176/ 176  100%  skipped:   20, failed:    8
INFO    - 148 of 156 tests passed (94.87%), 8 failed, 20 skipped with 0 warnings in 116.42 seconds
INFO    - In total 818 test cases were executed on 1 out of total 243 platforms (0.41%)

INFO    - 20/86 qemu_x86_64               tests/kernel/smp/kernel.multiprocessing.smp        FAILED Failed (qemu 16.006s)
ERROR   - see: /home/wentongw/zephyr/zephyrproject/zephyr/sanity-out/qemu_x86_64/tests/kernel/smp/kernel.multiprocessing.smp/handler.log

this problem should be "with icount mode enable, although configure Qemu multi cpu, there is only one vCPU thread to handle guest code", for case test_coop_resched_threads current cooperative thread doesn't give up the only vCPU and other high priority cooperative thread doesn't get vCPU time to run, so there is assert.

INFO    - 61/86 qemu_x86_64               tests/kernel/mbox/mbox_usage/kernel.mailbox.usage  FAILED Failed (qemu 2.324s)
ERROR   - see: /home/wentongw/zephyr/zephyrproject/zephyr/sanity-out/qemu_x86_64/tests/kernel/mbox/mbox_usage/kernel.mailbox.usage/handler.log

if increase the timeout value as below, this case can pass almost because the same reason, only one vCPU run for QEMU icount even configured multi cores, sender thread can't complete within 2 milliseconds virtual time.
diff --git a/tests/kernel/mbox/mbox_usage/src/main.c b/tests/kernel/mbox/mbox_usage/src/main.c
index d97ae50565..12bdffefec 100644
--- a/tests/kernel/mbox/mbox_usage/src/main.c
+++ b/tests/kernel/mbox/mbox_usage/src/main.c
@@ -103,7 +103,7 @@ void test_msg_receiver(void)
                              test_send, &mbox, NULL, NULL,
                              K_PRIO_PREEMPT(0), 0, K_NO_WAIT);

-       msg_receiver(&mbox, K_ANY, K_MSEC(2));
+       msg_receiver(&mbox, K_ANY, K_MSEC(200));
        k_thread_abort(tid);
 }

INFO    - 74/86 qemu_x86_64               tests/kernel/lifo/lifo_usage/kernel.lifo.usage     FAILED Failed (qemu 7.419s)
ERROR   - see: /home/wentongw/zephyr/zephyrproject/zephyr/sanity-out/qemu_x86_64/tests/kernel/lifo/lifo_usage/kernel.lifo.usage/handler.log

INFO    - 61/86 qemu_x86_64               tests/kernel/mbox/mbox_usage/kernel.mailbox.usage  FAILED Failed (qemu 2.324s)
ERROR   - see: /home/wentongw/zephyr/zephyrproject/zephyr/sanity-out/qemu_x86_64/tests/kernel/mbox/mbox_usage/kernel.mailbox.usage/handler.log

INFO    - 71/86 qemu_x86_64               tests/kernel/mem_protect/userspace/kernel.memory_protection.userspace FAILED Exited with 2 (qemu)
ERROR   - see: /home/wentongw/zephyr/zephyrproject/zephyr/sanity-out/qemu_x86_64/tests/kernel/mem_protect/userspace/kernel.memory_protection.userspace/handler.log

these three issues are all related to only one vCPU existed when icount enabled, but actually run time CONFIG_MP_NUM_CPUS=2

INFO    - 50/86 qemu_x86_64               tests/kernel/spinlock/kernel.multiprocessing.spinlock FAILED Timeout (qemu 61.099s)
ERROR   - see: /home/wentongw/zephyr/zephyrproject/zephyr/sanity-out/qemu_x86_64/tests/kernel/spinlock/kernel.multiprocessing.spinlock/handler.log

this case requires
tests:
  kernel.multiprocessing.spinlock:
    filter: CONFIG_SMP and CONFIG_MP_NUM_CPUS > 1

but we only have one core with icount enabled.

I see only above 5 failed cases with icount enabled on qemu_x86_64 platform, if config CONFIG_MP_NUM_CPUS=1 for these 5 cases, qemu_x86_64 can work well with -icount shift=5,align=off,sleep=off -rtc clock=vm

OK. I think we should open a separate issue specifically for x86_64 SMP. We may need a completely different emulator to do this right, or this may have to be a documented limitation.

Solution for ARC should be in https://github.com/zephyrproject-rtos/zephyr/pull/26646.


Add a DTMF instrument

This showcases the capability of GoDAW's instrument API for having instruments provide their own UI and way to play a given note. The note data for this instrument is the key on a phone keypad

One with the traditional phone keypad will do :D

This PR depends on #25

I tested both seems to be working


Add jest-snapshot tests

This completes the conversion from Ava to Jest tests.

package.json.ejs: Added script to update snapshots, removed react-native-mock and setup files in the jest block that were causing memory leak errors.

Tests/Setup.js.ejs re-written to use jest mocks rather than using mockery. Includes support for components and their tests that use the react-native-i18n library.

Re-wrote component tests to use snapshots to replace previous tests that used Enzyme/shallow to test the generated output. Because some people might want to use Enzyme/shallow for their component tests, I left in examples that exercise 'onPress' callbacks. This also shows that the shallow component tests are still working with jest.

Added more tests to the boilerplate (LoginReduxTest, FixtureApiTest) to improve test coverage.

Added flags to ExamplesRegistry function calls in components that tells code coverage reports to ignore them

This might be enough to cut Andross. We're very close.


Timeout tests are sometimes generated by Fuzzing for simple functions

Description
Timeout tests are sometimes generated by Fuzzing for simplest functions.
For example for a+b
To Reproduce

Install UnitTestBot plugin built from main in IntelliJ IDEA
Open/create a project (Maven with JDK 17 was used)
Generate tests for the following class with default settings:

public class Addition {
    public int addition(int a, int b){
        return a + b;
    }
}

Expected behavior
One test is expected to be generated.
Actual behavior
Once there was also a timeout test generated by Fuzzing.
Screenshots, logs
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;

import java.time.Duration;
import java.util.concurrent.TimeUnit;

import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertTimeoutPreemptively;

public final class AdditionTest {
    ///region Test suites for executable org.example.Addition.addition

    ///region SYMBOLIC EXECUTION: SUCCESSFUL EXECUTIONS for method addition(int, int)

    /**
     * @utbot.classUnderTest {@link Addition}
     * @utbot.methodUnderTest {@link Addition#addition(int, int)}
     * @utbot.returnsFrom {@code return a + b;}
     */
    @Test
    @DisplayName("addition: -> return a + b")
    public void testAddition_ReturnAPlusB() {
        Addition addition = new Addition();

        int actual = addition.addition(-255, -255);

        assertEquals(-510, actual);
    }
    ///endregion

    ///region FUZZER: TIMEOUTS for method addition(int, int)

    /**
     * @utbot.classUnderTest {@link Addition}
     * @utbot.methodUnderTest {@link Addition#addition(int, int)}
     */
    @Test
    @DisplayName("addition: a = -1 (mutated from -4194305), b = -2147483646 (mutated from min)")
    @org.junit.jupiter.api.Timeout(value = 1000L, unit = TimeUnit.MILLISECONDS)
    public void testAddition() {
        Addition addition = new Addition();

        /* This execution may take longer than the 1000 ms timeout
         and therefore fail due to exceeding the timeout. */
        assertTimeoutPreemptively(Duration.ofMillis(1000L), () -> addition.addition(-1, -2147483646));
    }
    ///endregion

    ///endregion
}

There seems to be nothing special in logs with this exact Fuzzing test generation:
utbot-engine-current_part.log
idea_part.log
Environment
IntelliJ IDEA 2023.1 (Community Edition)
Project - Maven
JDK - corretto-17
Additional context
Sometimes reproducing for simple functions of different times.
But has not reproduced on same function in a row.
Probably there is some performance issue with concrete execution.

Reproducing on spring-petclinic simple Entity class Person:
	///region FUZZER: TIMEOUTS for method getFirstName()

	/**
	 * @utbot.classUnderTest {@link Person}
	 * @utbot.methodUnderTest {@link Person#getFirstName()}
	 */
	@Test
	@DisplayName("getFirstName: ")
	@Timeout(value = 1000L, unit = TimeUnit.MILLISECONDS)
	public void testGetFirstName() {
		Person person = new Person();
		person.setFirstName("ZX");
		person.setLastName("10");

        /* This execution may take longer than the 1000 ms timeout
         and therefore fail due to exceeding the timeout. */
		assertTimeoutPreemptively(Duration.ofMillis(1000L), () -> person.getFirstName());
	}
	///endregion


Fix rounding on float16 conversions

Closes  #8366
When casting a Chainerx array in the native backend to float16 the float16 code differs subtly from the numpy one in the rounding of elements.
https://github.com/numpy/numpy/blob/1f8fb2ca31a7f41a23c60e4ffcb38b3e0cb201f7/numpy/core/src/npymath/halffloat.c#L339-L347
This caused the IRemainder test to yield 150 failures for 1 million runs.
After fixing the number went down to 0.
The fp64 to fp16 case has been similarly fixed to match the numpy logic as some of the calculations were different and it was not clear where did they come from.

Also please write tests.

I added an initial try for testing it, it is for the float32 case,
If its ok I will extend it to take the float64 in account too.
Since this is a numpy related change I was doubting on how to do the testing.
The two alternatives that I though was to explicitly test if a number was not rounded, or
add a new python test which compares chainerx and numpy type castings. I went for the first one since the scope seems broader and the later its extensively tested in the routines.

Jenkins, test this please.

Jenkins CI test (for commit 51e1ec43f62a0d1ce79b40c94bacc81cbbbefe25, target branch master) succeeded!

LGTM.

Jenkins CI test (for commit 51e1ec43f62a0d1ce79b40c94bacc81cbbbefe25, target branch master) failed with status FAILURE.


Large package size

When I install the same conda environment that includes openblas using both conda-forge and defaults I find that the conda-forge environment has a larger binary for openblas
conda create -n openblas-size-cf -c conda-forge openblas
conda create -n openblas-size-defaults -c defaults openblas

$ du -hs openblas-size-cf/
96M	openblas-size-cf/
$ du -hs openblas-size-defaults/
60M	openblas-size

Can you check conda-forge/label/gcc7 as well?

Can you check conda-forge/label/gcc7 as well?

I got 104M from the gcc7 label :-(
> conda create --name openblas-size-cf --channel conda-forge/label/gcc7 openblas

Solving environment: done

## Package Plan ##

  environment location: /home/user/miniconda3/envs/openblas-size-cf

  added / updated specs:
    - openblas

The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    openblas-0.3.3             |    h9ac9557_1001        15.8 MB  conda-forge/label/gcc7
    libgfortran-ng-7.3.0       |       hdf63c60_0         1.3 MB  defaults
    libgcc-ng-7.3.0            |       hdf63c60_0         6.1 MB  conda-forge/label/gcc7
    ------------------------------------------------------------
                                           Total:        23.2 MB

The following NEW packages will be INSTALLED:

    libgcc-ng:      7.3.0-hdf63c60_0    conda-forge/label/gcc7
    libgfortran-ng: 7.3.0-hdf63c60_0    defaults
    openblas:       0.3.3-h9ac9557_1001 conda-forge/label/gcc7

cd ~/miniconda3/envs
du -hs openblas-size-cf/

104M	openblas-size-cf

@isuruf for gdal and its dependencies I used -O2 -Wl,-S to create smaller binaries. Would that be a good fit for openblas?

BTW, here is the size difference for gdal:
> du -hs gdal-size-*
927M	gdal-size-cf
1.5G	gdal-size-defaults

As you can see the -S is quite effective in reducing the size. I know that @jjhelmus has more info on the consequences of using -S and the loss of information/debug symbols but I'm ignorant on the topic, just copied-n-pasted what worked :grimacing:

-s for OpenBLAS should be ok I reckon since most of the performance critical stuff is in assembly AFAIK. See also https://github.com/cython/cython/issues/2102#issuecomment-404321524

-Wl,-S strips debugging symbols which can make stack traces hard to follow.  This is not great if you are trying to remotely debug an issue but it is much better than -Wl,-s which strips all debugging information, even function names.
For example a stack trace of segmentation fault when compiled with -Wl,-S would look something like this:
(gdb) bt
#0  0x0000000000400560 in crasher ()
#1  0x0000000000400595 in main ()

with -Wl,-s you loose the function names:
(gdb) bt
#0  0x0000000000400560 in ?? ()
#1  0x0000000000400595 in ?? ()

Another argument to try is -Os which instructs the compiler to optimize for size rather than performance.  As @mingwandroid mentioned this may not have much effect on performance of OpenBLAS because the critical portions are written in assembly.

@jjhelmus thanks for explain it to me again :smile: (I promise to save this comment and come back here instead of asking it for the nth time :grimacing:)
I guess that, in conda-forge, we must decided between the ability to debug vs smaller packages. I believe that we can sacrifice debugging b/c we are not really promising "support." With that said the levels to choose from are -S, -s, and -0s (the last one seems to be OK only for openblas though if I understood @jjhelmus comment correctly).
I believe that -S, no debug symbols but keeping the function names, is OK. I'll make a few tests locally to see how much we can reduce our packages.
PS: I'm adding a topic of discussion for our next meeting about this.

I believe you want to figure out why ADs is so much smaller than CFs first.

How does AD ship the static library (if at all)?

AD ships the static libraries in a separate package, libopenblas-static.

AD ships the static libraries in a separate package, libopenblas-static.

I created a new issue for this at #69. This is something that has come up in our docker images, and would be useful for us to fix.


Add images in spanish to Maya notebook

Rising issue so that we don't forget... Also change links for the profiles in spanish...

Closed by #42, right?

right!


KspCraftOrganizer now includes .version file

KspCraftOrganizer release now includes .version file

Cool! Merging with thanks...


Child menu of nested menu is hidden behind first menu if inside MudAppBar

Bug type
Component
Component name
MudMenu
What happened?
If a nested MudMenu is inside a MudAppBar, the child Menu is hidden behind the parent MudMenu. With this bug, the child menu can not be accessed.
Changing the Z-value of the two MudMenu's did not help either.
Example Code:
<MudAppBar Elevation="0">           <MudMenu<EMAIL_ADDRESS>Variant="Variant.Filled" Color="Color.Secondary" AnchorOrigin="Origin.CenterCenter" TransformOrigin="Origin.TopRight" Dense>         <MudMenuItem>             <MudMenu<EMAIL_ADDRESS>AnchorOrigin="Origin.TopLeft" TransformOrigin="Origin.TopRight" Dense>                 <ActivatorContent>                     <MudMenuItem<EMAIL_ADDRESS>Language</MudMenuItem>                 </ActivatorContent>                 <ChildContent>                     <MudMenuItem >English</MudMenuItem>                     <MudMenuItem >German</MudMenuItem>                     <MudMenuItem >English</MudMenuItem>                 </ChildContent>             </MudMenu>         </MudMenuItem>     </MudMenu> </MudAppBar>
Reproduction Link:
https://try.mudblazor.com/snippet/mEwdYWQZxhKkLZbd
Any help is much appreciated.
Expected behavior
The child MudMenu should be on top of the parent MudMenu so that it is clickable.
Reproduction link
https://try.mudblazor.com/snippet/mEwdYWQZxhKkLZbd
Reproduction steps
https://try.mudblazor.com/snippet/mEwdYWQZxhKkLZbd
Relevant log output
No response
Version (bug)
6.9.0
Version (working)
No response
What browsers are you seeing the problem on?
Chrome, Microsoft Edge
On what operating system are you experiencing the issue?
Windows
Pull Request

[ ] I would like to do a Pull Request

Code of Conduct

[X] I agree to follow this project's Code of Conduct

Dup of https://github.com/MudBlazor/MudBlazor/issues/7385
Fix: #6909


Provide ZoneSetType method and add Type to ZoneOpts

Current cloudflare-go version
master
Description
The CloudFlare API proides a way to make a zone "CNAME-only" (i.e. Customer manages the DNS for the zone and just points a CNAME at CloudFlare). This is known as a "partial" type zone in the API. The Go SDK should also provide a way to toggle this (it already allows the type to be set on zone creation but not to modify the type on an existing zone).
Use cases
I would like to be able to manage a CNAME-only zone using the Terraform provider.
Potential cloudflare-go usage
client := meta.(*cloudflare.API)
newType = "partial"
client.ZoneSetPaused(context.Background(), zoneID, newType)

References
No response

Thanks for raising this one but I'm a little uncertain as to what your end goal is. You mention you'd like to manage partial zones in Terraform which is already supported (see https://registry.terraform.io/providers/cloudflare/cloudflare/latest/docs/resources/zone#type) but your Go example points at pausing a zone which doesn't need to know whether the zone is full or partially managed. Could you confirm?


fix: Use tinygo 0.25.0

Ⅰ. Describe what this PR did
Use tinygo 0.25.0 to work around possible GC issuees in 0.27.0.
Ⅱ. Does this pull request fix one issue?

Ⅲ. Why don't you add test cases (unit test/integration test)?
Ⅳ. Describe how to verify it
Ⅴ. Special notes for reviews

Codecov Report

Merging #309 (f6c8527) into main (48978e5) will decrease coverage by 0.28%.
The diff coverage is n/a.

Additional details and impacted files

@@            Coverage Diff             @@
##             main     #309      +/-   ##
==========================================
- Coverage   41.94%   41.67%   -0.28%
==========================================
  Files          44       44
  Lines        5850     5850
==========================================
- Hits         2454     2438      -16
- Misses       3221     3237      +16
  Partials      175      175

see 1 file with indirect coverage changes


Improve UX/help user pick a unique environment name

We should see what we can do to avoid a user from creating an environment name that is not unique at the subscription level. Today, if they pick a name already in use, they will see this error:

The user then has to know that they should delete the .azure directory or amend details in the appropriate environment subdirectory. This is non-obvious. A better UX would be to alert them before creating this and ask them to pick a new name via prompt etc.

Might be a dupe so feel free to close if it already exists

Completed with the new default env name


build .netframework on commandline in CI

the .net framework target should build on the cli in ci/cd

@AddressXception - is this ticket still valid?


Per-render-pass duration timing for TB(D)R

Description
Partially a duplicate of #2335 , but intended for solving a different problem.
The "Time durations for the actions" feature as it stands inserts a vkCmdWriteTimestamp query before and after each draw command and subtracts the results to fetch the per-draw-call GPU timings,
and the duration value for a vkCmdBeginRenderPass is simply the sum of its child draw commands' duration values.
While this can be useful on immediate-mode rendering GPUs, any timestamp value inside a render pass is nonsensical[^tbdr-timestamp-behavior] on tile-based rendering GPUs including Adreno and Mali; "draw calls" do not exist in any meaningful discrete form, making the very concept of timing them entirely meaningless.
From this it follows that the value for a vkCmdBeginRenderPass is also nonsensical on these GPUs.
What can be useful on TB(D)Rs is inserting a timestamp query before and after each render pass and subtracting the results to yield per-render-pass GPU timings.
Of course this still is subject to non-trivial error due to pipelining of render passes on TB(D)R etc. , but RenderDoc is not a profiler and this type of timings is still very useful.
As for the actual change that would be needed, I don't imagine it to be too far from what is noted on #2335.
(I've only had a cursory look on FetchCounters etc.)
I'm more than happy to invest my time if you're open to accepting a PR for this, but I'm definitely going to need directions.
Environment

RenderDoc version: 1.20
Operating System: Android
Graphics API: Vulkan

(Worth noting is that the same reasoning should hold for Metal on Apple SoCs, seeing that Metal support seems to be in development)
[^tbdr-timestamp-behavior]: At least on Adreno and Mali, the actual value we get seems to be the timestamp value written when the last executed tile's fragment shading completes for the draw call, having been overwritten with each tile execution, but this behavior is in no way defined by the API.

RenderDoc is not a profiler and there are no plans to change that in the foreseeable future, so new profiling-related features and improvements like this are effectively not in scope for the project. Any changes to the existing profiling features are restricted purely to porting of the functionality already exposed (e.g. to new APIs or IHV toolkits for per-draw counters).


GS 308E: Lack of traffic sensor data

Hi @ckarrie, thanks again for this integration. I tried to set it up with my Netgear GS 308 E (no P), could log in fine, get some basic information like IP, name and such, but no updates on traffic on port sensors. Updates seem to be an issue, as I changed the name of the switch, which wasn't reflected up until a restart of Home Assistant. No sensor data even after restart.
Switch Firmware is: V1.00.11EN
If you finde the time and are in the mood for some netgearing...
Thanks and all the best!

Bonjour idem de mon coté Pas de possibilité d'avoir des stats
Peut tu corriger ton code ou l'adapter pour ce model
Merci et bonne chance !

For me it worked to change
PORT_STATISTICS_URL_TMPL = 'http://{ip}/port_statistics.htm' and change the Bootloader to ['V0.00.00']
in the init.py in the gs108e folder

Hi @mapo-89 , unfortunately it doesn't work for me, but I might be too stupid and overlook something. Can you elaborate where exactly you changed the entries?
After restart it says setup failed at the integration.

@estozehn For me it worked to change PORT_STATISTICS_URL_TMPL = 'http://{ip}/port_statistics.htm' and change the Bootloader to ['V0.00.00'] in the init.py in the gs108e folder

Bonjour peut tu nous en dire plus sur quelle fichier a modifier ou a la limite rendre compatible ton code merci

Hi, the GS308E firmware compared to the G108 is different. I finally owned a GS308E so there will be an update soon

Si besoin je veut bien être testeur

Des news ?

Des news ?

I'm working in it. The GS308EP I owned was damaged. New one works fine.

Hi @williamwwlr @mapo-89 @mapo-89 @el97 could you check out the https://github.com/ckarrie/ckw-ha-gs108e/tree/gs3x-branch if the traffic sensors works for your GS3xx devices? It seems for me, the calculated TX/RX speed is wrong (factor 10?). Any help is appreciated.

Oops, mentioned the wrong person. @estozehn should be the man

Hi @ckarrie, receiving data, awesome. I'll do some checks and testing and let you know.
Thanks for sticking to it. This is great!

@estozehn can we close this issue?

@foxey Yes, I'd say so.

all looks good

Great, thanks!


feat(setComputed): add setComputed method

Add setComputed method
Add setComputed type definition
Add setComputed flow definition

Closes #55

desperately needed ... is there a workaround for that i could use now?

@podlebar  wrapper.vm._computedWatchers['key'].value = 'somevalue'

@podlebar this is released in 1.0.0-beta.2


Improve Cards

I would like to work on improving the speaker cards.

@HarshCasper please assign me this issue.

@HarshCasper pls assign this issue to me

I am facing this error when I made a fresh pull.

@HarshCasper I have raised a PR, if any changes are required do let me know.


wildcard question

I am currently using argparse, but would like to switch to useing docopt due to its convenient usage of commands.
Based on #168 I understand that repeat arguments are a good idea.
I have the following use case and am unsure how to go about implementing this using docopt:
"""analyse.py

Usage:
    analyse.py -h, --help
    analyse.py  [--description --author --version]
    analyse.py [-i FILE] [-o FILE] [-g NAME...] [-p NUMBERS]

Options:
    -h, --help                          Show this help message and exit
    --description                       Print a complete description of this program.
    --author                            Get information about the authors of this script.
    --version                           Get version information about this script.
    -i FILE --input=FILE           Supply the name of the input file
    -o FILE --output=FILE          Supply the name of the file in which to write the output.
    -p NUMBERS --percentage=NUMBERS     Supply percentage [default: 60]
    -g NAME..., --gradients=NAME... Supply gradient files
"""

from docopt import docopt

if __name__ == '__main__':
    arguments = docopt(__doc__)
    print (arguments)

I can call something like this:
python analyse.py --output test.dat --input blub.dat -g a.dat -g b.dat -g c.dat

With an output behaviour I expect:
{'-,': False,
 '--author': False,
 '--description': False,
 '--gradients': ['a.dat', 'b.dat', 'c.dat'],
 '--help': 0,
 '--input': 'blub.dat',
 '--output': 'test.dat',
 '--percentage': '60',
 '--version': False}

Now my analysis does not just have 3 files with the argument -g, but more a few 100s, so I would like to be able to use a wildcard:
python analyse.py --output test.dat --input blub.dat -g *.dat

Why would this be a bad idea? How can I use docopt to not having to explicitly define my 100s of input files I want to analyse?

For what I know, it's because in POSIX/GUN, command line usu. has one require argument/no argument for an option(flag). I personally think unfixed number of argument is acceptable. Some cli-tool provide optional argument for options(sorry I forget which). But this can be a bad idea if the cli allow this form
program [-g NAME...] [VAR]

No. docopt does not support this feature unless you accept
program [options] NAME...

You can try this, if it meets your needs and save you some coding time :) But plz note the wildchar is interpreted by your terminal, not the program


Argument parser woes with strings

The argument parser accepts quoted multi word strings as arguments, but replaces commas inside the string with spaces. Also empty strings don't work. I would like to use both of these things.
Mixing multiple delimiters is kinda dubious anyway, but I made this parser to handle inputs like
cmd "first, argument", second    3 ""

into four arguments first, argument, second, 3 and <empty string>:
public static object RunCommand(string commandWithArgs) {
...
		uConsoleHistory.Add(commandWithArgs);
		Regex parser = new Regex("["+new string(uConsoleInput.m_DelimterChars)+"](?=(?:[^\"]*\"[^\"]*\")*(?![^\"]*\"))");
		string[] tokens = parser.Split(commandWithArgs);
		tokens = tokens.Where(x => !string.IsNullOrEmpty(x)).ToArray();
		tokens = tokens.Select(x => x.StartsWith("\"") && x.EndsWith("\"") ? x.Substring(1, x.Length-2) : x).ToArray();
		BuildArgListFromTokens(tokens);
...

private static void BuildArgListFromTokens(string[] tokens) {
...
			//if (tokens[i][0] == '\"') {
			//fix to allow explicitly defined empty strings as arguments
			if (tokens[i].Length > 0 && tokens[i][0] == '\"') {

(Seeing as this is an open source project I thought I'd report some PB3 bugs here instead. I can make a PR if you want.)

Actually I don't really like comma as a separator at all, it just feels weird in a console environment and it's messing with things like arbitrary number of arguments that should be treated as strings.


Add progress notifications for database that would contain lots of tables

This PR fixes #19458.
Typically this would only be shown when there are a lot of tables within a selected database. Otherwise, it would just execute quickly and return the below prompt:

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

4 of 4 (100.0%)  changed or added relevant lines in 2 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.001%) to 41.72%

Totals

Change from base Build<PHONE_NUMBER>:
0.001%

Covered Lines:
27743

Relevant Lines:
62044

💛  - Coveralls


[BUG] Notification Error

The notification stuck on my computer and its keep on pooping out for same pokemon in which doesn't even show on the map. I have remove the pokemon from my notification list without luck. Whats should I do? HELP.. Restart the Map, Reboot the computer, Reinstall.. nothing work..
Forget to mention this is for 0.1.2

I've encountered the exact same problem.  Removing the pokemon from the list does eventually stop it, but it looks like it queues up twenty or so notifications, probably longer if it's left going without removing the pokemon from the notification list.  The specific trigger seems to be linked to a pokemon that you have a notification set for timing out on the map.  It doesn't happen every time, but that's the only time i've experienced this issue.  It points to the location of the timed out pokemon which is now empty.

Hi stratzvyda,
It does not stop on my end. Instead its getting worse. Unsure how we can fixed this.  Guess need to wait for the next version

XD it didn't notify me at all, it's so weird


Embed providers in terraformer executable

Since now it's possible to create separate executable per provider with build/main.go, it'd be good to embed Terraform provider in Terraformer for simpler installation.

I think this is not necessary, because the terraformer can use different versions of providers. Today there is an easy installation with terraform init, it's simple.

Okay, let's close this issue for now then.


Convert all root calls to pathlib

Anywhere we are using
root = os.path.dirname(os.path.abspath(__file__))

or any variant of that (i.e., os.path.aabspath("")), should be changed to the more robust
import pathlib
root = pathlib.Path("../..").resolve()

... taking care to make sure that the proper relative path (e.g., ../.. vs. ../../../) is resolved based on the script location.

@jameshalgren I think that pathlib.Path(".") will resolve to the current working directory (os.getcwd()), not the script location.
For the script location, pathlib.Path(__file__).resolve() works.

Closed; superseded by #210

Closed; superseded by #210


Unescape multiple occurrences of escape characters

Closes #19

Coverage remained the same at 100.0% when pulling be0a92d4960f273178fd0031574069a721333b15 on bugfix/escape-multiple into bb2fb97de2e999980e5b6205e881659ffdbff30e on master.

Coverage remained the same at 100.0% when pulling be0a92d4960f273178fd0031574069a721333b15 on bugfix/escape-multiple into bb2fb97de2e999980e5b6205e881659ffdbff30e on master.


Host Firewall: Attaching a label to a node before deploying Cilium breaks the host firewall

Bug report
When trying to deploy the host firewall, attaching a label to the node before deploying Cilium makes the agent unable to pick up the label and deploy the host policy correctly.
While the issue was observed with the host firewall, the fact that the label is not displayed in cilium endpoint list may not be specific to this feature.
General Information

Cilium version: v1.9.0-rc2
Kernel version: 4.19.112
Orchestration system version in use: GKE, K8s v1.15.12-gke.20

How to reproduce the issue

Create a GKE cluster (see https://docs.cilium.io/en/latest/gettingstarted/k8s-install-gke/).
Attach the node-access=ssh label to a node, see the GSG at https://docs.cilium.io/en/v1.9.0-rc2/gettingstarted/host-firewall/:$ kubectl label node $NODE_NAME node-access=ssh

Deploy Cilium with the host firewall enabled (don't forget to disable per-endpoint routing, currently incompatible with the host firewall):$ kubectl create namespace cilium
$ helm install cilium ./cilium \
  --namespace cilium \
  --set nodeinit.enabled=true \
  --set nodeinit.reconfigureKubelet=true \
  --set nodeinit.removeCbrBridge=true \
  --set cni.binPath=/home/kubernetes/bin \
  --set ipam.mode=kubernetes \
  --set nativeRoutingCIDR=$NATIVE_CIDR \
  --set hostFirewall=true \
  --set devices=eth0 \
  --set endpointRoutes.enabled=false \
  --set tunnel=disabled

Note: the exact steps I ran were: a) Deploy Cilium, b) Attach the label, c) Uninstall then redeploy CIlium.
To follow the GSG, enable the audit mode, then apply a policy:$ CILIUM_NAMESPACE=cilium
$ CILIUM_POD_NAME=$(kubectl -n $CILIUM_NAMESPACE get pods -o json | jq -r '.items[] | select( .metadata.labels."k8s-app" == "cilium" and .spec.nodeName == env.NODE_NAME ).metadata.name')
$ HOST_EP_ID=$(kubectl -n $CILIUM_NAMESPACE exec $CILIUM_POD_NAME -- cilium endpoint list -o jsonpath='{[?(@.status.identity.id==1)].id}')
$ kubectl -n $CILIUM_NAMESPACE exec $CILIUM_POD_NAME -- cilium endpoint config $HOST_EP_ID PolicyAuditMode=Enabled
Endpoint 293 configuration updated successfully
$ kubectl -n $CILIUM_NAMESPACE exec $CILIUM_POD_NAME -- cilium endpoint config $HOST_EP_ID | grep PolicyAuditMode
PolicyAuditMode          Enabled
$ kubectl create -f https://raw.githubusercontent.com/cilium/cilium/v1.9.0-rc2/examples/policies/host/demo-host-policy.yaml
ciliumclusterwidenetworkpolicy.cilium.io/demo-host-policy created

The node-access=ssh for the host should then appear in the list of endpoints. The ingress policy enforcement should also be marked as Disabled (Audit). What happens instead is that neither the label nor the policy are being reported:
$ kubectl -n $CILIUM_NAMESPACE exec $CILIUM_POD_NAME -- cilium endpoint list
ENDPOINT   POLICY (ingress)   POLICY (egress)   IDENTITY   LABELS (source:key[=value])                      IPv6   IPv4          STATUS
           ENFORCEMENT        ENFORCEMENT
293        Disabled           Disabled          1          k8s:cloud.google.com/gke-nodepool=default-pool                        ready
                                                           k8s:cloud.google.com/gke-os-distribution=cos
                                                           reserved:host
1867       Disabled           Disabled          4          reserved:health                                         <IP_ADDRESS>   ready

However, Kubernetes is aware of the label:
$ kubectl get nodes $NODE_NAME --show-labels
NAME                                         STATUS   ROLES    AGE   VERSION           LABELS
gke-test-cluster-default-pool-fa00e972-xziz   Ready    <none>   1d   v1.15.12-gke.20   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/fluentd-ds-ready=true,beta.kubernetes.io/instance-type=n1-standard-4,beta.kubernetes.io/os=linux,cloud.google.com/gke-nodepool=default-pool,cloud.google.com/gke-os-distribution=cos,failure-domain.beta.kubernetes.io/region=europe-west2,failure-domain.beta.kubernetes.io/zone=europe-west2-a,kubernetes.io/arch=amd64,kubernetes.io/hostname=gke-test-cluster-default-pool-fa00e972-xziz,kubernetes.io/os=linux,node-access=ssh

Attempting to display the policy verdicts for the host with cilium monitor prints nothing.
The issue can be solved by removing and re-creating the label (or possibly by simply overwriting it, I have not tried):
$ kubectl label node $NODE_NAME node-access-
$ kubectl label node $NODE_NAME node-access=ssh

After that, everything works as expected.
A note is being added to the GSG to make sure users attach the label first, in https://github.com/cilium/cilium/pull/13673.

I'm currently unable to reproduce with a GKE cluster. I tried with both Cilium master and v1.9.0-rc2. I also tried two series of steps:

Create cluster

Add label

Install Cilium

Create cluster

Install Cilium

Uninstall Cilium

Add label

Install Cilium.

The one difference that may matter is the K8s version. I tried with v1.18.16-gke.502 because that's what GKE now supports and I wasn't able to get a working GKE cluster with a v1.15.12-gke.20. I'll see if I can reproduce with the development VM and K8s 1.15.

I was able to reproduce in https://github.com/cilium/cilium/pull/15714. Fix is incoming.


[ExpansionTile] Wire through crossAxisAlignment, alignment, and textBaseline properties to the expanded tile

Description
Adds new properties to the ExpansionTile for aligning the children.
alignment property to align the Column used for children.
crossAxisAlignment property to position the children inside the Column.
textBaseline to define a baseline for alignment when crossAxisAlignment value is CrossAxisAlignment.baseline
Related Issues
Related Issues #15427
Tests
Adds tests for the new properties
Checklist
Before you create this PR confirm that it meets all requirements listed below by checking the relevant checkboxes ([x]). This will ensure a smooth and quick review process.

[x] I read the Contributor Guide and followed the process outlined there for submitting PRs.
[x] I signed the CLA.
[x] I read and followed the Flutter Style Guide, including Features we expect every widget to implement.
[x] I read the Tree Hygiene wiki page, which explains my responsibilities.
[x] I updated/added relevant documentation (doc comments with ///).
[x] All existing and new tests are passing.
[x] The analyzer (flutter analyze --flutter-repo) does not report any problems on my PR.
[x] I am willing to follow-up on review comments in a timely manner.

Breaking Change
Did any tests fail when you ran them? Please read Handling breaking changes.

[x] No, no existing tests failed, so this is not a breaking change.
[ ] Yes, this is a breaking change. If not, delete the remainder of this section.

[ ] I wrote a design doc: https://flutter.dev/go/template Replace this with a link to your design doc's short link
[ ] I got input from the developer relations team, specifically from: Replace with the names of who gave advice
[ ] I wrote a migration guide: Replace with a link to your migration guide

@shihaohong thank you the reviews. I'll do the appropriate changes and write test cases for default values and textBaseLine.

Also, I'm not sure why it's failing customer testing (https://github.com/flutter/flutter/pull/56190/checks?check_run_id=667288798), maybe rebase/merge with master?


CanIgnoreReturnValue Error

In NativeTemplateStyle.java can not resolve symble
import com.google.errorprone.annotations.CanIgnoreReturnValue
" CanIgnoreReturnValue " can't find.

did you find the solution? I am facing the same problem.

Same i go back to old version .

I didn't find any solutions so I left Admob and using Unity now. It's better than Admob. eCPM rate is also high.

@DarkEye42 @NomanShaikh175 @HmimssaSoufiane
Add this dependency in your nativetemplate module gradle file
implementation 'com.google.errorprone:error_prone_annotations:2.9.0'

why not fixing this already?

@DarkEye42 @NomanShaikh175 @HmimssaSoufiane Add this dependency in your nativetemplate module gradle file implementation 'com.google.errorprone:error_prone_annotations:2.9.0'

Thanks for the Quick Solution. But it will just take a single commit to resolve this issue for new users. @maddevrelgithubbot  @kluever Please implement this thing so that the code should be error free for a newbie.


Cleanup error classes and CI

Pull in https://github.com/ncipollo/release-action/commit/8f0b206fd3bfed01c574d4012e58b1d62ff5ff44:

some refactors
a proper build of lib/Main.js that'll fix the CI error in https://github.com/gdcorp-action-public-forks/ncipollo-release-action/runs/2170458091

@jkeslin-godaddy Can you take a look as well please?

Uhoh. Apparently we cannot merge from the original repo when the fork is already ahead of the original repo.

Thanks for the reviews. Since it looks like this can't be merged, I opened #3 to fix CI. It applies the same change as this line: https://github.com/gdcorp-action-public-forks/ncipollo-release-action/pull/2/commits/8f0b206fd3bfed01c574d4012e58b1d62ff5ff44#diff-63cb66804dcebdccb13013f5a1f2e79087fb681d0309a952f8c41093f82813fcR58
Closing this now.


Saloon Testing/Mocking (Coming Soon!)

Just wanted to open an issue here to let people know that I am currently working on a mocking system for Saloon. It's going to introduce two ways to mock in Saloon, one way would be the "Larvel" way - inspired by the wonderful testing that is provided by Illuminate/Http. The other way would require a bit more intervention but I hope would still be useful especially when writing SDKs.
Laravel Mocking
Laravel mocking will have slightly more features than the standard PHP mocking that can be used within SDKs. This is because Laravel has a super powerful service container. See the testing page in the Laravel docs. I will recrate how it works there.
Mocking for SDKs
SDK mocking is slightly different, but the idea is that you will be able to tell Saloon to send a fake response when a request has been created.
$mockClient = new SaloonMockClient();
$mockClient->addResponse(200, $data, $headers);
$mockClient->addResponse(500, $data, $headers);

$response = (new SaloonRequest)->send($mockClient); // 200
$response = (new SaloonRequest)->send($mockClient); // 500

Here's an example of how it could be implemented
$sdk = new ForgeSdk($token, $saloonMockClient);
$sdk->getServers(); // Internally sends $saloonRequest->send($this->mockClient);

Extra Features

Interceptors and handlers to have a new argument to specify if they can be run during tests
Saloon plugins to have a new argument to specify if they can be run during tests

Awesome 👍 That's what I'm looking for.

@lao9s It's coming very soon, just making my final polishes on it at the moment.


Webmanifest icon links are invalid

Looks like during build, Parcel prefixes the urls in there with ../public/<img> (which isnt even valid in the first place as they are placed on the top level) but also does not attach the correct hashes.

Interestingly, it works on deploy previews:

Has already been fixed. Let me update production :)

Should be fixed now.

Interestingly, it works on deploy previews:

Yeah, I've disabled the option to deploy every PR to production at the moment, because we have moments that we are merging quite a lot.
Might enable it again pretty soon. But for this moment, I think it's better to deploy after a couple of PR's.