Apply common schema structure to Azure cluster app

The goal here is to make the cluster-azure app values schema the role model for other providers.
We are going to provide multiple PRs to have atomic changes.
The goal is to have all properties be under these top level sections:

metadata
connectivity
controlPlane
nodePools
providerSpecific
internal

Details

[x] Move azure related properties into /providerSpecific
[x] Move bastion host related properties into /connectivity
[x] https://github.com/giantswarm/cluster-azure/pull/52
[x] https://github.com/giantswarm/cluster-azure/pull/53
[x] https://github.com/giantswarm/cluster-azure/pull/54
[x] https://github.com/giantswarm/cluster-azure/pull/55
[x] https://github.com/giantswarm/cluster-azure/pull/56
[x] https://github.com/giantswarm/cluster-azure/pull/60
[x] https://github.com/giantswarm/cluster-azure/pull/61
[x] https://github.com/giantswarm/cluster-azure/pull/64
[x] https://github.com/giantswarm/cluster-azure/pull/65

.defaults are passed on to machinedeployment / -pool resources. Documentation can be found upstream.
evictionMinimumReclaim
hardEvictionThresholds
softEvictionGracePeriod
softEvictionThresholds
Currently these can also be customized per machineDeployment (but not part of the schema).
@primeroz will bring the question to the team whether this customizability should be kept or removed.

Regarding the change in cluster-shared, I ran into a problem that needs to be sorted first. See https://gigantic.slack.com/archives/C01F7T2MNRL/p1676028130499329

For moving /kubernetesVersion into a section, I have asked in https://gigantic.slack.com/archives/C01F7T2MNRL/p1676025016779299 and Fer pointed out that the value is also used in node pools.

Done!


[Lead space - short] Web component: variant Visual QA

User Story

As a [user role below]:
DDS Designer

I need to:
test the Lead space - short

so that I can:
be sure the developer's code correctly works as designed

Additional Information

See the Epic (#6873 ) for the Design and Functional specs information
Designer will be added as a reviewer to the Pull Request.  Visual QA reviewer will be notified by Github when review is needed.
Creating a QA bug
Web Components Dev Issue (#6929)

Tasks
Ensure the Lead space - short component has been tested and reviewed by design + dev.
Acceptance criteria

[ ] Pattern is reviewed by designer and design defects are identified
[ ] New issues are opened to log individual defects
[ ] Screenshots of as-is and to-be design should be added to the issue when needed
[ ] Developer associated with building the pattern is assigned to the new issues
[ ] Appropriate labels are added to the issue  eg.  bug, dev

@RichKummer I assigned this Visual QA issue to you because you have been assigned to the PR, #7026.
cc:  @shixiedesign


EMS service could not authenticate/authorize ether provided customer fpa token or twilio rtd token, unable to set FPA token

Hi there,
I am getting the following error while using the quick-start demo for Twilio chat on android:
EMS service could not authenticate/authorize ether provided customer fpa token or twilio rtd token, unable to set FPA token
Can you pls help me to resolve this.
Thanks in advance.

Please check that you are using a correct accound and instance SID, and they are properly specified in your generated token.


Bad request

I followed the tutorial and did everything, after node app.js, I tried to log in and found the following error
ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client
I opened the background of Google Chrome and found that 400 (Bad request) shows that there is a problem with requestData

Try change the password as below:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'your new password';
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your new password' ;

Hello, I have successfully solved this problem, not setting a password is
one aspect of the problem, but the main reason is due to the
characteristics of mysql8, it can be run without strict encryption. I want
to ask if object storage is necessary (https://www.lingshulian.com) I want
to be able to store it on my server, and then call the image passed in it.
All in all, thank you very much for your reply, thank you.
lingshulian @.***> 于2022年7月10日周日 22:33写道：

Try change the password as below:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'your new password';
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your new password' ;
—
Reply to this email directly, view it on GitHub
https://github.com/lingshulian/vue3-socket-chat/issues/1#issuecomment-1179740151,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/APMVY4X77NP7CDQQUACGKUTVTLNK7ANCNFSM53EYFGVQ
.
You are receiving this because you authored the thread.Message ID:
@.***>

Hello, lingshulian is the recommended file storage method, you can not use lingshulian as the file storage, you only need to modify the code of part of the uploaded file, and return a request link after the upload is successful.


Fix for the progress bar corner radius issue #372

Fixed a bug causing the corner radius that are set to a ProgressBar, not being applied to the top left and the bottom left corners.

Thanks!


Refactor ghost erasure and tracked variables

(Initial, incomplete commit for draft pull request) This completely changes the way Verus erases ghost code for compilation and the way Verus checks tracked variable lifetimes in ghost code.  In the long run, this should allow us to completely replace the old ghost code erasure with the proposed ghost block extension to rustc.  In the short run, this should allow us to replace the old ghost code erasure with a macro-based erasure that would remove the last major dependency on our fork of rustc, hopefully allowing us to use a standard rustc build.  It also simplifies the way programmers use tracked variables (at least compared to the current rules for tracked).
I'll first review the old erasure mechanism, then discuss the long-term proposal, then the short-term proposal.
Note: lifetime_generate.rs is still incomplete in this draft commit.
Old Erasure Mechanism
The old mechanism was based on the observation that only exec code gets compiled, and only exec and proof code get borrow checked:
exec/proof/spec code --> type-check, mode-check
exec/proof code      --> type-check, mode-check --> lifetime (borrow) check
exec code            --> type-check, mode-check --> lifetime (borrow) check --> compile

Based on this, the old mechanism erased spec code after type checking and then erased proof code after lifetime checking, leaving only exec code at the end to compile.  However, while this erasure was simple in principle, it was difficult to erase code in Rust's HIR/THIR/MIR formats without making major changes to rustc.  Therefore, the actual implementation ran rustc three times, erasing different amounts of code near the rustc front end (in Rust's AST format) in each of the three runs.  This had many drawbacks:

Running rustc multiple times was slow.  In particular, users only get verification feedback after the 2nd run, doubling the startup latency for verification.
Mode checking operated on Rust HIR, while ghost code erasure operated on Rust AST.  To connect AST to HIR, we used spans, which was a hack.
We needed our own fork of rustc.
Running rustc three times with slightly different AST meant that type inference was not always consistent between the three runs.  Users often had to add extra type annotations to make sure that type checking succeeded in all three runs.

Ghost blocks
There has been a recent proposal to add ghost code as a Rust feature.  This proposal is syntactic: ghost code is marked explicitly in the source code by writing the ghost code in "ghost blocks".  In addition, ghost variables may be represented using new types (e.g. x: Ghost<t> instead of ghost x: t).  This proposal would have the advantage of requiring only one run of rustc, rather than three.
To prepare for this proposal, Verus has been switching over the last year to a more coarse-grained, syntactic style of expressing ghost code.  For example, calls from exec code to proof lemmas are now written inside of explicit proof blocks.  In fact, the syntactic distinction between exec and non-exec code may help make the code more readable.  However, we've also moved to a style that syntactically distinguishes between proof code and spec code, and this seems to be just annoying.  In particular, proof (tracked) arguments to functions have to be marked as tracked, as in let z = f(tracked x, tracked y); rather than just let z = f(x, y);.  The mode checker can easily infer these tracked annotations, but unfortunately, the mode checking runs after the syntactic splitting into exec/proof/spec code, when it's too late for the mode inference to help:
all code --> split into exec/proof/spec --> type-check, mode-check --> lifetime (borrow) check --> compile

Long-term proposal
To make programming in Verus more pleasant, this pull request reduces the reliance on syntax to distinguish between the different code modes.  Syntax is used to distinguish between exec and non-exec code (e.g. by using proof blocks), but not to distinguish between proof and spec code inside a proof block.  This allows programmers to write let z = f(x, y); rather than let z = f(tracked x, tracked y);.
This pull request assumes the simplest possible treatment of lifetime checking for non-exec code in the new ghost code Rust proposal: it assumes that the proposal skips lifetime checking of non-exec code entirely.  This means that Verus needs to have a separate way to check lifetimes of proof code.  This separate checking is the main purpose of this pull request.  Roughly, this separate checking looks like the following:
all code --> split into exec/non-exec --> type-check, mode-check --+--> lifetime (borrow) check exec code --> compile
                                                                   |
                                                                   +--> lifetime (borrow) check proof code

In this design, rustc performs type checking of all code, Verus performs mode checking of all code, rustc performs lifetime checking and compilation of exec code, and Verus performs lifetime checking of proof code.  (Verus will only need to check proof code that manipulates tracked data; proofs that work only on spec data trivially satisfy lifetime constraints.)
This pull request implements Verus's lifetime checking for proof code.  This checking no longer uses erase.rs and erase_rewrite.rs; these will eventually be deleted entirely.  Instead, the checking works by constructing synthetic Rust code to abstractly represent the various actions that the proof code performs, such as variable declarations, function calls, and pattern matching.  It then sends this synthetic code to a separate invocation of rustc.  (We could also consider using some other checker, such as Polonius, although generating synthetic Rust code is fairly easy.)  Since this synthetic code generation occurs after mode inference, it can use the infered modes to guide the synthetic code generation.
This approach should solve the drawbacks listed above:

It only requires running rustc once on the original source code.  (It does internally invoke rustc a second time, but only on a relatively small amount of synthetic code with no macros.  Furthermore, when verifying only one function at a time, we could configure Verus to only run the lifetime checking only on the function being verified.)
Both the mode checking and proof lifetime checking operate on Rust HIR/THIR, not on Rust AST.  There's no need to connect AST to HIR with spans.
Assuming the ghost code proposal becomes part of Rust, there will be no need to use our own fork of rustc.  (Until this happens, we might need our own fork of rustc to implement the ghost code proposal.  However, see the short-term proposal below for a way to use the standard rustc even without the ghost code proposal.)
Type checking happens only once, so there's no chance for multiple runs of rustc to encounter different type inference results.  Full type information is available to when generating the synthetic code, so it doesn't need to rely on type inference.

Short-term proposal
The long-term proposal relies on the ghost code proposal being implemented and adopted.  Before that happens, we can still use this pull request's proof-mode lifetime checking in a slightly hackier way to get some of the benefits of the long-term proposal.  In particular, the short-term proposal should be able to run with standard rustc, without relying on a separate fork of rustc, and the short-term proposal will allow programmers to write let z = f(x, y); rather than let z = f(tracked x, tracked y);.  The short-term proposal still requires running rustc multiple times on the original source code, although only twice instead of three times:
exec code --> type-check, mode-check --> lifetime (borrow) check exec code --> compile

all code --> type-check, mode-check --+
                                      |
                                      +--> lifetime (borrow) check proof code

To avoid needing a fork of rustc, the short-term proposal uses the syntax macro to erase non-exec code, rather than relying on erase.rs and erase_rewrite.rs.
This pull request implements the short-term proposal in its entirety (when using the new command-line option --erasure macro), except that there are still a few leftover unrelated dependencies of Verus on our rustc fork, so it doesn't completely get us off the fork.  But the remaining dependencies should be relatively easy to remove.
Possible alternative (even longer-term): MIR rewriting
There may be other ways to implement erasure and lifetime checking for Verus.  For example, if rustc exposes an official interface to read and transform "stable" MIR code, we might be able to use MIR transformation to erase spec code and proof code.  However, this support is likely to be further in the future.  It would also mean we'd have to perform MIR transformations based on HIR mode checking, although we might be able to rerun the mode checking at the MIR level.  I think we should continue to think about alternatives like this, but my hope is that this pull request can improve our lives in the short term regardless of future alternatives.
Ghost types
Right now, our ghost types (Ghost<T> and Tracked<T>) are somewhat annoying because programmers have to explicitly dereference them to retrieve the underlying T ghost value.  This is an orthogonal issue to this pull request, and this pull request does not address it.  However, as part of the long-term solution above, but separately from this pull request, we could try to integrate some automatic dereferencing of ghost types into the ghost code proposal, so that the Rust type checker could automatically add the necessary dereferencing.  As far as I recall, something like this was part of the original discussion for ghost code, although I don't think the details were ever settled.
Implementation details
Order of operations: long-term proposal
As discussed above, in the long-term proposal, rustc would only run once on the original source code.  Here's what would happen during that one run:

Parsing, AST construction, macro expansion (including the Verus syntax macro)
Rust AST -> HIR
Rust's type checking
Rust HIR/THIR -> MIR conversion
Rust's lifetime/borrow checking for non-ghost (exec) code
Verus HIR/THIR -> VIR conversion
Verus mode checking
Verus lifetime/borrow checking for proof code (by generating synthetic code and running rustc)
Verus SMT solving
Rust compilation to machine code (if --compile is set)

Order of operations: short-term proposal
The order of operations in the short-term proposal is a little messier because we have to run rustc twice on the original source code, once erasing ghost code and once keeping ghost code.  This causes some tension in the order of operations: it would be cleanest to run one rustc invocation entirely, and then the other entirely, but this would be slow.  For example, if we ran the ghost-erase rustc and then the ghost-keep rustc, then the user would receive no feedback about verification until parsing and macro expansion for both rustc invocations had completed.  On the other hand, if we ran the ghost-keep rustc and then the ghost-erase rustc, the user would receive no feedback about lifetime/borrow checking errors in exec functions until verification had completed.  So for better latency, the implementation interleaves the two rustc invocations (marked GHOST for keeping ghost and EXEC for erasing ghost):

GHOST: Parsing, AST construction, macro expansion (including the Verus syntax macro, keeping ghost code)
GHOST: Rust AST -> HIR
GHOST: Rust's type checking
GHOST: Verus HIR/THIR -> VIR conversion
GHOST: Verus mode checking
GHOST: Verus lifetime/borrow checking for both proof and exec code (by generating synthetic code and running rustc), but delaying any lifetime/borrow checking error messages until EXEC has a chance to run
GHOST: If there were no lifetime/borrow checking errors, run Verus SMT solving
EXEC: Parsing, AST construction, macro expansion (including the Verus syntax macro, erasing ghost code)
EXEC: Rust AST -> HIR
EXEC: Rust's type checking
EXEC: Rust HIR/THIR -> MIR conversion
EXEC: Rust's lifetime/borrow checking for non-ghost (exec) code
GHOST: If there were no EXEC errors, but there were GHOST lifetime/borrow checking errors, print the GHOST lifetime/borrow checking errors
EXEC: Rust compilation to machine code (if --compile is set)

To avoid having to run the EXEC lifetime/borrow checking before verification, which would add latency before verification, the short-term implementation takes advantage of the synthetic-code lifetime/borrow checking to perform a quick early test for lifetime/borrow checking on all code (even pure exec code).  If this detects any lifetime/borrow errors, the implementation skips verification and gives the EXEC rustc a chance to run, on the theory that the EXEC rustc will generate better error messages for any exec lifetime/borrow errors.  The GHOST lifetime/borrow errors are printed only if the EXEC rustc finds no errors.  Note that the long-term proposal avoids this complex interleaving; rustc only runs once on the original source code, and it naturally prints the regular exec lifetime/borrow checking errors first without so much effort.  The long-term proposal also doesn't require the synthetic code generation for all functions; it only requires it for proof code.
Synthetic code generation
The --log-all or --log-lifetime options will print the generated synthetic code for lifetime/borrow checking to a file in the .verus-log directory.  For the following example source code:
struct S {
}

spec fn fspec(i: u32, s1: S, s2: S) -> u32 {
    i
}

proof fn fproof(i: u32, tracked s1: S, tracked s2: S) -> u32 {
    i
}

fn fexec(i: u32, s1: S, s2: S) -> u32 {
    i
}

proof fn test_proof(i: u32, tracked s: S) {
    let j = fspec(i, s, s);
    let k = fproof(i, s, s);
}

fn test_exec(i: u32, s: S)
    requires i < 100
{
    proof {
        let j = fspec(i, s, s);
        let k = fproof(i, s, s);
    }
    let k = fexec(i, s, s);
    let n = fexec(i, s, s);
}

the following crate-lifetime.rs file is generated when logging is enabled:
#![allow(non_camel_case_types)]
fn f<A, B>(a: A) -> B { unimplemented!() }
fn notdet() -> bool { unimplemented!() }

struct T_0_S {
}

fn x_3_f_fexec_3(
    x_1_i: u32,
    x_4_s1: T_0_S,
    x_5_s2: T_0_S,
) -> u32
{
    x_1_i
}

fn x_8_f_test_proof_8(
    x_6_s: T_0_S,
)
{
    f::<_, u32>((x_6_s, x_6_s, ));
}

fn x_12_f_test_exec_12(
    x_1_i: u32,
    x_6_s: T_0_S,
)
{
    {
        f::<_, u32>((x_6_s, x_6_s, ));
    };
    let x_9_k = f::<_, u32>((x_1_i, x_6_s, x_6_s, ));
    let x_10_n = f::<_, u32>((x_1_i, x_6_s, x_6_s, ));
}

Note that the synthetic code erases all spec code, keeping only exec and proof code.  Also note that the synthetic code is simpler than the original source code in various ways, keeping only what's necessary for lifetime/borrow checking.  For example, all function calls are redirected to the same function f, which takes the function arguments as a tuple.
Error reporting
As discussed in the order of operations above, the implementation lets rustc print any exec-mode lifetime/borrow errors first.  In the example above, this results in the following output:
error[E0382]: use of moved value: `s`
   --> .\rust_verify\example\features.rs:210:25
    |
203 | fn test_exec(i: u32, s: S)
    |                      - move occurs because `s` has type `S`, which does not implement the `Copy` trait
...
210 |     let k = fexec(i, s, s);
    |                      -  ^ value used here after move
    |                      |
    |                      value moved here

error[E0382]: use of moved value: `s`
   --> .\rust_verify\example\features.rs:211:22
    |
203 | fn test_exec(i: u32, s: S)
    |                      - move occurs because `s` has type `S`, which does not implement the `Copy` trait
...
210 |     let k = fexec(i, s, s);
    |                         - value moved here
211 |     let n = fexec(i, s, s);
    |                      ^ value used here after move

error[E0382]: use of moved value: `s`
   --> .\rust_verify\example\features.rs:211:25
    |
203 | fn test_exec(i: u32, s: S)
    |                      - move occurs because `s` has type `S`, which does not implement the `Copy` trait
...
211 |     let n = fexec(i, s, s);
    |                      -  ^ value used here after move
    |                      |
    |                      value moved here

error: aborting due to 3 previous errors

If we change the example by commenting out the exec-mode error lines, then we will see the ghost-mode lifetime/borrow errors from the synthetic code:
error: use of moved value: `s`
   --> .\rust_verify\example\features.rs:198:37
    |
198 | proof fn test_proof(i: u32, tracked s: S) {
    |                                     ^
199 |     let j = fspec(i, s, s);
200 |     let k = fproof(i, s, s);
    |                       ^  ^

error: use of moved value: `s`
   --> .\rust_verify\example\features.rs:203:22
    |
203 | fn test_exec(i: u32, s: S)
    |                      ^
...
208 |         let k = fproof(i, s, s);
    |                           ^  ^

error: aborting due to 2 previous errors

The error messages here aren't quite as detailed, but hopefully they should be adequate.  The ghost-mode messages are generated by running rustc on the synthetic code, with rustc configured to generate errors in JSON format, capturing the JSON errors and parsing them to retrieve the line/column information and error messages, converting the synthetic line/column information back into spans for the original source code, and then sending the error messages and spans to the rustc diagnostics for the original source code.  It's possible that if we used, say, Polonius, instead of rustc, to do the lifetime/borrow checking, we wouldn't have to jump through so many hoops to manage the line/column/span information in the errors, but I haven't looked into this.

I'm going to mark this ready for review.  There's still work to do, but I think the pull request can be merged before the remaining tasks are completed.  The remaining tasks are:

The cell, cell_old_style, atomic, atomic_ghost, and ptr_old_style libraries need to be ported to the verus macro syntax.  Currently, these libraries are disabled via cfg when using the new ghost erasure (they are still enabled when using the old erasure, so the tests that rely on them still work via the old erasure)
Exec closures are almost supported, but they currently rely on old-style requires/ensures functions, which aren't supported.  We might just want to introduce new syntax for requires/ensures on exec closures.
Tests that use verus_code run the new ghost erasure, but tests that still use code run the old ghost erasure.  Eventually, all of these should be ported to verus_code.

By default, the new ghost code erasure is disabled.  The command line options --erasure macro --cfg erasure_macro_todo enable it (the cfg option is a temporary workaround until the cell, cell_old_style, atomic, atomic_ghost, and ptr_old_style libraries are ported).  Tests with verus_code use the new erasure, but there's a temporary opt-out with the --todo-no-macro-erasure option.  This opt-out is currently only used for two tests, both in exec_closures.rs.

By the way, here's some updated test code (the "synthetic code generation" description above is slightly out of date).
For this code:
struct S {
}

spec fn fspec(i: u32, s1: S, s2: S) -> u32 {
    i
}

proof fn fproof(i: u32, tracked s1: S, tracked s2: S) -> u32 {
    i
}

fn fexec(i: u32, s1: S, s2: S) -> u32 {
    i
}

proof fn test_proof(i: u32, tracked s: S) {
    let j = fspec(i, s, s);
    let k = fproof(i, s, s);
}

fn test_exec(i: u32, s: S)
    requires i < 100
{
    proof {
        let j = fspec(i, s, s);
        let k = fproof(i, s, s);
    }
    let k = fexec(i, s, s);
    let n = fexec(i, s, s);
}

the generated synthetic code is:
#![feature(box_patterns)]
#![allow(non_camel_case_types)]
#![allow(unused_imports)]
#![allow(unused_variables)]
#![allow(unreachable_patterns)]
#![allow(unused_parens)]
#![allow(unused_braces)]
#![allow(dead_code)]
#![allow(unreachable_code)]
#![allow(unused_mut)]
#![allow(unused_labels)]
use std::marker::PhantomData;
use std::rc::Rc;
use std::sync::Arc;
fn op<A, B>(a: A) -> B { unimplemented!() }
struct Tracked<A> { a: PhantomData<A> }
#[derive(Clone, Copy)] struct Ghost<A> { a: PhantomData<A> }
#[derive(Clone, Copy)] struct int;
#[derive(Clone, Copy)] struct nat;
struct FnSpec<Args, Output> { x: PhantomData<(Args, Output)> }
struct InvariantBlockGuard;
fn open_atomic_invariant_begin<'a, X, V>(_inv: &'a X) -> (&'a InvariantBlockGuard, V) { panic!(); }
fn open_local_invariant_begin<'a, X, V>(_inv: &'a X) -> (&'a InvariantBlockGuard, V) { panic!(); }
fn open_invariant_end<V>(_guard: &InvariantBlockGuard, _v: V) { panic!() }

struct D1_S {
}

fn f3_fproof(
    x4_i: (),
    x5_s1: D1_S,
    x6_s2: D1_S,
)
{
}

fn f8_fexec(
    x4_i: u32,
    x5_s1: D1_S,
    x6_s2: D1_S,
) -> u32
{
    x4_i
}

fn f11_test_proof(
    x4_i: (),
    x9_s: D1_S,
)
{
    f3_fproof(op::<_, ()>(()), x9_s, x9_s, );
}

fn f15_test_exec(
    x4_i: u32,
    x9_s: D1_S,
)
{
    {
        f3_fproof(op::<_, ()>(()), x9_s, x9_s, );
    };
    let x12_k: u32 = f8_fexec(x4_i, x9_s, x9_s, );
    let x13_n: u32 = f8_fexec(x4_i, x9_s, x9_s, );
}

For this code:
        #[verifier(external_body)]
        pub proof fn proof_to_ref<'a, T: 'a>(tracked t: T) -> (tracked t2: &'a T)
            ensures t == *t2
        {
            unimplemented!();
        }

        pub struct Foo<'a, T: 'a> {
            pub t: &'a T,
        }

        pub proof fn mk_foo<'a, T: 'a>(tracked t: T) -> (tracked t2: Foo<'a, T>) {
            Foo { t: proof_to_ref(t) }
        }

        impl<'a, T> Foo<'a, T> {
            proof fn mk_foo2(tracked t: T) -> (tracked t2: Self) {
                mk_foo(t)
            }
        }

        impl<T> Foo<'_, T> {
            proof fn mk_foo3(tracked t: T) -> (tracked t2: Self) {
                Foo::mk_foo2(t)
            }
        }

        impl<'a, T> Foo<'a, T> {
            proof fn mk_foo4(tracked t: T) -> (tracked t2: Self) {
                Foo::<'a, T>::mk_foo3(t)
            }
        }

        pub proof fn mk_foo5<'a, 'b: 'a, T: 'a, U: 'b>(tracked t: T, tracked u: U) -> (tracked r: (Foo<'a, T>, Foo<'b, U>)) {
            (
                Foo { t: proof_to_ref(t) },
                Foo { t: proof_to_ref(u) },
            )
        }

        proof fn bar<'a>(f: FnSpec(u32) -> bool, v: u32, foo: Foo<'a, u32>) -> bool {
            f(v)
        }

the generated synthetic code is:
#![feature(box_patterns)]
#![allow(non_camel_case_types)]
#![allow(unused_imports)]
#![allow(unused_variables)]
#![allow(unreachable_patterns)]
#![allow(unused_parens)]
#![allow(unused_braces)]
#![allow(dead_code)]
#![allow(unreachable_code)]
#![allow(unused_mut)]
#![allow(unused_labels)]
use std::marker::PhantomData;
use std::rc::Rc;
use std::sync::Arc;
fn op<A, B>(a: A) -> B { unimplemented!() }
struct Tracked<A> { a: PhantomData<A> }
#[derive(Clone, Copy)] struct Ghost<A> { a: PhantomData<A> }
#[derive(Clone, Copy)] struct int;
#[derive(Clone, Copy)] struct nat;
struct FnSpec<Args, Output> { x: PhantomData<(Args, Output)> }
struct InvariantBlockGuard;
fn open_atomic_invariant_begin<'a, X, V>(_inv: &'a X) -> (&'a InvariantBlockGuard, V) { panic!(); }
fn open_local_invariant_begin<'a, X, V>(_inv: &'a X) -> (&'a InvariantBlockGuard, V) { panic!(); }
fn open_invariant_end<V>(_guard: &InvariantBlockGuard, _v: V) { panic!() }

struct D7_Foo<'a3_a, A4_T: 'a3_a, > {
    x6_t: &'a3_a A4_T,
}

fn f2_proof_to_ref<'a3_a, A4_T: 'a3_a, >(
    x5_t: A4_T,
) -> &'a3_a A4_T
{
    panic!()
}

fn f9_mk_foo<'a3_a, A4_T: 'a3_a, >(
    x5_t: A4_T,
) -> D7_Foo<'a3_a, A4_T, >
{
    D7_Foo::<'_, A4_T, > { x6_t: f2_proof_to_ref::<A4_T, >(x5_t, ),  }
}

fn f11_mk_foo2<'a3_a, A4_T, >(
    x5_t: A4_T,
) -> D7_Foo<'a3_a, A4_T, >
{
    f9_mk_foo::<A4_T, >(x5_t, )
}

fn f13_mk_foo3<'a14__, A4_T, >(
    x5_t: A4_T,
) -> D7_Foo<'a14__, A4_T, >
{
    f11_mk_foo2::<A4_T, >(x5_t, )
}

fn f16_mk_foo4<'a3_a, A4_T, >(
    x5_t: A4_T,
) -> D7_Foo<'a3_a, A4_T, >
{
    f13_mk_foo3::<A4_T, >(x5_t, )
}

fn f20_mk_foo5<'a3_a, 'a21_b: 'a3_a, A4_T: 'a3_a, A17_U: 'a21_b, >(
    x5_t: A4_T,
    x18_u: A17_U,
) -> (D7_Foo<'a3_a, A4_T, >, D7_Foo<'a21_b, A17_U, >, )
{
    (D7_Foo::<'_, A4_T, > { x6_t: f2_proof_to_ref::<A4_T, >(x5_t, ),  } , D7_Foo::<'_, A17_U, > { x6_t: f2_proof_to_ref::<A17_U, >(x18_u, ),  } , )
}

fn f23_bar<'a3_a, >(
    x24_f: (),
    x25_v: (),
    x26_foo: (),
)
{
}

The latest commits https://github.com/verus-lang/verus/pull/347/commits/2c98879196fe31e13db7e9b6fb69e397481d4db1 and https://github.com/verus-lang/verus/pull/347/commits/168ea1863d23311ec7a48334a901e7f8dabe6a6d should address the comments above.


Drop dependency on deprecated gulp-util

gulp-util is deprecated. It should be replaced by dependencies on the individual components used by gulp-eol-enforce
See: https://medium.com/gulpjs/gulp-util-ca3b1f9f9ac5

I also need to fix require('gulp-util').File; in test/main.js

Just released version 1.0.0 with these changes.  Thanks for your help Chris!


Add scripts for building paclet for Wolfram internal repository.

Changes

Adds build scripts for Wolfram internal paclet repository.

Closing for now, as it is not clear whether the paclet will make it to the internal repository any time soon.


editor.setDecorations doesn't update the hover message

VSCode Version: 0.10.11
OS Version: OSX 10.10.5

Steps to Reproduce:

Create a simple plugin doing nothing but updating the same line decoration in a interval:

var i = 0;
var decType = window.createTextEditorDecorationType({});

setInterval(() => {
  var decoration = {
    range: new vscode.Range(0, 0, 0, 1000),
    hoverMessage: 'test' + (++i)
  };
  window.activeTextEditor.setDecorations(decType, [decoration]);
}, 200);

Observe the decoration hover message not being changed, even when the line content is changing (only deleting the line seems to update the message):

Thank you, nice find!

Wow, it was fast, thanks for fixing it! The credit for finding it goes to @asos-massimo.


build: add vscode config files for debugging

This project does not provide debugging configuration. Trying to improve this by pushing mine.

@ssbarnea I was surprised not to find the configuration files for debugging. If you want, these are mines.


add parallel-hashmap to the benchmarks?

Possibly consider also adding https://github.com/greg7mdp/parallel-hashmap
wdyt?

It definitely looks interesting.  We would happily accept pull requests that add it


Discover the steps needed to migrate MAVC interview to AL

As we migrate the first few interviews, add comments in here about what steps we each took to inform the next migrations and final instructions documentation.
Starting point is at https://github.com/suffolkLITLab/docassemble-assemblyline#migration:

Remove any references to MAVirtualCourt. Add an include block like this at the top
of your interview YAML file

include:
  - docassemble.AssemblyLine:al_package.yml
  - docassemble.MassAccess:massaccess.yml

Change references to basic_questions_intro_screen to al_intro_screen

Replace any VCIndividual objects with ALIndividual objects

This is what I've come up with, though I have a couple questions and I'm not sure everything I've labeled as optional is actually optional and visa versa. For a clear diff between an old form and a new form, see this commit on 209A Plaintiff Motion to Modify.
General

[ ] Change the include block to:

---
include:
  - docassemble.AssemblyLine:al_package.yml
  - docassemble.MassAccess:massaccess.yml
---

[ ] Create your own objects block for people based on your needs. The below will ask for exactly one user and one other party. TODO: Add documentation about the different ways to ask for different amounts of possible people.

---
objects:
  - users: ALPeopleList.using( target_number=1, ask_number=True )
  - other_parties: ALPeopleList.using( target_number=1, ask_number=True )
---

[ ] If you have your own question for choosing a court change the choices value from using macourts to using all_courts:

choices: all_courts.filter_courts(allowed_courts)

[ ] (optional) Change courts[0] to trial_court

Update attachments to ALDocument
Is it optional to convert to ALDocument?

[ ] Remove the blocks defining form_to_sign and form_to_file_no_cover.
[ ] When you need to display the form in the preview, use ${ al_user_bundle.as_pdf( key='preview' ) } instead of form_to_sign.
[ ] Remove other appearances of those two variables
[ ] Remove attachment code: from the download screen
[ ] Define your ALDocuments and ALBundles. Use the correct file names for your interview. I'm not sure where the template file name goes vs. the name shown to the user. Make sure to do it in two separate blocks:

---
objects:
  - al_court_bundle: ALDocumentBundle.using(elements=[attachment_var_name], filename="filename-court-will-see.pdf", title="All forms to send to the court")
  - al_user_bundle: ALDocumentBundle.using(elements=[attachment_var_name], filename="filename-user-will-see.pdf", title="Form to download")
---
objects:
  - attachment_var_name: ALDocument.using( enabled=True, has_addendum=False, title='Display Name of Form', filename='filename-human-will-see.pdf' )
---

[Halp: I'm concerned I've made an error in the repo here: https://github.com/SuffolkLITLab/docassemble-209aPlaintiffMotionToModify/commit/bd67f9fdbd6547aeb48bd845fdb9ac33fdde2c4e#diff-221941e601213702410f2e2f937dc7f0161f7af6f127393555a11cdc044a540aR365-R370. Not sure which bit is supposed to reference the actual template file name and which is just the name the file will have when it's given to the user. It's not clear to me from the documentation.]
Your ALDocumentBundle and ALDocument objects' attributes may need to be a little different. You can see the documentation for those objects in this file: https://github.com/SuffolkLITLab/docassemble-AssemblyLine/blob/main/docassemble/AssemblyLine/al_document.py

[ ] Add these lines to the bottom of your download screen. Make sure to use the name of your own bundles:

  ${ al_user_bundle.download_list_html( key='final' ) }

  ${ al_user_bundle.send_button_html( key='final' ) }

[ ] Remove the preview attachment block
[ ] In the other attachment block, add [i] to the end of the variable name:. E.g:

attachment:
    variable name: plaintiff_modify_209A_attachment[i]

[ ] In that same attachment block, remove the line with the name: specifier
[ ] In that same attachment block, remove the line with the filename: specifier
[ ] Replace users[0].signature with users[0].signature_if_final( i )

Dependencies
(optional)

[ ] (optional) On your Package page, make sure in your list of dependencies, docassemble.MAVirtualCourt is no longer selected
[ ] (optional) Make sure these are selected

[ ] docassemble.ALMassachusetts
[ ] docassemble.ALToolbox
[ ] docassemble.AssemblyLine
[ ] docassemble.MACourts
[ ] docassemble.MassAccess

Optional

[ ] (optional?) Use al_intro_screen instead of basic_questions_intro_screen
[ ] (optional) Remove any custom question about signing under oath. The AL package has one now.
[ ] (optional) If you're using users[0].name.first, use people_list_of_some_kind.gather() instead (even if you have only one of the type of person). Remove code after that refers to things like people_list_of_some_kind.gathered, people_list_of_some_kind.there_is_another, people_list_of_some_kind.ask_number, and people_list_of_some_kind.target_number.
[ ] (optional) For custom-built name questions, use .name_fields() and the sets specifier. E.g:

---
id: defendant name
sets:
  - other_parties[0].name.first
  - other_parties[0].name.last
question:  |
  What is the defendant's name?
fields:
  - code: |
      other_parties[0].name_fields()
---

That's what I was able to gather just from the diff. It may actually be more clear for folks to just look at the diff, but whatever helps is good 👍

Note that it might not be necessary to add [i] to end of the attachment name--it could already have been done. If the attachment object is a DADict, as was true starting ~ fall 2020

Just to check, in the above list where it says 'In the other attachment block, add [i] to the end of the variable name' - is that the same thing or a different thing?

Use this Trello card checklist to start converting: https://trello.com/c/sVCl4QWr/69-convert-mavc-interview-to-assemblyline. Closing now that this is contained in a Trello card as discussed.


pkg/cli: no nested subcommands

Though preferably avoided, nested subcommands may make usage easier, especially for upcoming kura crypt ....

RIP Kura (2018 - 2018).


Enable compilation time configuration of maximum section count and expose DetourIsFunctionImported

A few minor changes:

Expose detour_is_imported via a new public function DetourIsFunctionImported
Make certain runtime checks happy by masking pbTarget before casting to smaller type
Enable user to compile with a different number of supported section headers (leaves default at 32)

Microsoft Reviewers: Open in CodeFlow

DetourEnumerateModules appears to be flaky; failing in one flavor last build and two this time (both debug/2019).
-------------------------------------------------------------------------------
DetourEnumerateModules
  Passing nullptr, results in current module being returned
-------------------------------------------------------------------------------
test_module_api.cpp(237)
...............................................................................

test_module_api.cpp(243): PASSED:
  REQUIRE( GetLastError() == 0L )
with expansion:
  0 == 0

test_module_api.cpp(244): FAILED:
  REQUIRE( mod == reinterpret_cast<HMODULE>(&__ImageBase) )
with expansion:
  0x005b0000 == 0x01260000

0.000 s: Passing nullptr, results in current module being returned
0.000 s: DetourEnumerateModules
-------------------------------------------------------------------------------

None of my changes should have affected this function.  Maybe ASLR is enabled on the 2019 server images?  This test expects that the first module in memory is the exe, and given the behavior it seems the most likely culprit.

That sounds plausible.
The base address of .exes used to be quite predictable.

I sent out PR #227 to fix the test, thanks for pointing that out!

@bgianfo , what changes are still needed?

@bgianfo , what changes are still needed?

Sorry, no re-review was requested, so I didn't know it was ready.
Merged, thanks!


User Submission Form + Spooky Stories Page

Initial go at the User submission form.
Includes Captcha and an admin backend to view (but not manage) submissions.

Few comments but looks good overall! For a future discussion, we probably need a linter rule around snake case / camel case / pascal case of variable names and file names. Lots of mix case going on.

Few comments but looks good overall! For a future discussion, we probably need a linter rule around snake case / camel case / pascal case of variable names and file names. Lots of mix case going on.

This is my bad. I did standardize the css vars in my style lint pr at least.

Yeah we need lint rule to stick to snake case


Create a footer black-2

One need to make this component using HTML and Tailwind CSS. I would suggest to use Tailwind Playgrounds to make things faster and quicker.
Here is a reference to the component.

After building the component please raise a PR with a screenshot of the component and add the component in Footer/footer-black-2.html.
If you need to use any icon please use it from Hero Icons
Good luck.

assign me

Go ahead @jusinamine


Keep the application.yml of collector as simple as possible

The collector starts in standalone mode by default:

Don't need zookeeper
Use H2 instead of Elastic search as storage implementation.

FYI @clevertension

it is already finished

Done


Circular import error

I was eager to have found pydicom.pixel_data_handlers.pylibjpeg_handler.generate_frames, so I installed this package to enable it. However, similar to #56, I have the following error after pip install --user pylibjpeg:
> python -m pydicom.env_info
Traceback (most recent call last):
  File "/usr/lib/python3.10/runpy.py", line 187, in _run_module_as_main
    mod_name, mod_spec, code = _get_module_details(mod_name, _Error)
  File "/usr/lib/python3.10/runpy.py", line 110, in _get_module_details
    __import__(pkg_name)
  File "/home/nick/.local/lib/python3.10/site-packages/pydicom/__init__.py", line 32, in <module>
    from pydicom.dataelem import DataElement
  File "/home/nick/.local/lib/python3.10/site-packages/pydicom/dataelem.py", line 18, in <module>
    from pydicom import config  # don't import datetime_conversion directly
  File "/home/nick/.local/lib/python3.10/site-packages/pydicom/config.py", line 258, in <module>
    import pydicom.pixel_data_handlers.rle_handler as rle_handler  # noqa
  File "/home/nick/.local/lib/python3.10/site-packages/pydicom/pixel_data_handlers/rle_handler.py", line 51, in <module>
    from pydicom.encoders.native import _encode_frame
  File "/home/nick/.local/lib/python3.10/site-packages/pydicom/encoders/__init__.py", line 1, in <module>
    from pydicom.encoders.base import get_encoder, RLELosslessEncoder
  File "/home/nick/.local/lib/python3.10/site-packages/pydicom/encoders/base.py", line 869, in <module>
    RLELosslessEncoder.add_plugin(
  File "/home/nick/.local/lib/python3.10/site-packages/pydicom/encoders/base.py", line 84, in add_plugin
    module = import_module(import_path[0])
  File "/usr/lib/python3.10/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "/home/nick/.local/lib/python3.10/site-packages/pydicom/encoders/pylibjpeg.py", line 9, in <module>
    from pylibjpeg.utils import get_pixel_data_encoders
  File "/home/nick/.local/lib/python3.10/site-packages/pylibjpeg/__init__.py", line 38, in <module>
    add_handler()
  File "/home/nick/.local/lib/python3.10/site-packages/pylibjpeg/utils.py", line 24, in add_handler
    if handler not in pydicom.config.pixel_data_handlers:
AttributeError: partially initialized module 'pydicom' has no attribute 'config' (most likely due to a circular import)

Without pylibjpeg installed I get
> python -m pydicom.env_info
module       | version
------       | -------
platform     | Linux-5.15.12-arch1-1-x86_64-with-glibc2.33
Python       | 3.10.1 (main, Dec 18 2021, 23:53:45) [GCC 11.1.0]
pydicom      | 2.2.2
gdcm         | _module not found_
jpeg_ls      | _module not found_
numpy        | 1.21.5
PIL          | 8.4.0
pylibjpeg    | _module not found_
openjpeg     | _module not found_
libjpeg      | _module not found_

The installed version of pylibjpeg prints some errors (but does complete):
> pip install --user pylibjpeg
Collecting pylibjpeg
  Using cached pylibjpeg-1.3.0-py3-none-any.whl (28 kB)
Collecting pylibjpeg-openjpeg
  Using cached pylibjpeg-openjpeg-1.1.1.tar.gz (2.3 MB)
    ERROR: Command errored out with exit status 1:
     command: /usr/bin/python -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-pm4x0cuw/pylibjpeg-openjpeg_1baf7583772949f5b35b846de98cee56/setup.py'"'"'; __file__='"'"'/tmp/pip-install-pm4x0cuw/pylibjpeg-openjpeg_1baf7583772949f5b35b846de98cee56/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-pip-egg-info-0prroz49
         cwd: /tmp/pip-install-pm4x0cuw/pylibjpeg-openjpeg_1baf7583772949f5b35b846de98cee56/
    Complete output (11 lines):
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/tmp/pip-install-pm4x0cuw/pylibjpeg-openjpeg_1baf7583772949f5b35b846de98cee56/setup.py", line 87, in <module>
        setup_oj()
      File "/tmp/pip-install-pm4x0cuw/pylibjpeg-openjpeg_1baf7583772949f5b35b846de98cee56/setup.py", line 60, in setup_oj
        shutil.copy(
      File "/usr/lib/python3.10/shutil.py", line 417, in copy
        copyfile(src, dst, follow_symlinks=follow_symlinks)
      File "/usr/lib/python3.10/shutil.py", line 254, in copyfile
        with open(src, 'rb') as fsrc:
    FileNotFoundError: [Errno 2] No such file or directory: 'build_tools/cmake/CMakeLists.txt'
    ----------------------------------------
WARNING: Discarding https://files.pythonhosted.org/packages/71/e9/94f3d009e9f9f31bb76075641214bdabdbe557b26ce74ff71ef1c28b2c05/pylibjpeg-openjpeg-1.1.1.tar.gz#sha256=e7adfd8e2c63661b75219d5ae381ac50381054df41ca94d0d01ddfbe362a66cc (from https://pypi.org/simple/pylibjpeg-openjpeg/) (requires-python:>=3.6). Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
  Using cached pylibjpeg-openjpeg-1.1.0.tar.gz (2.3 MB)
    ERROR: Command errored out with exit status 1:
     command: /usr/bin/python -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-pm4x0cuw/pylibjpeg-openjpeg_aa94277196914aa0977c3af9a91bdadd/setup.py'"'"'; __file__='"'"'/tmp/pip-install-pm4x0cuw/pylibjpeg-openjpeg_aa94277196914aa0977c3af9a91bdadd/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-pip-egg-info-l4_vjocc
         cwd: /tmp/pip-install-pm4x0cuw/pylibjpeg-openjpeg_aa94277196914aa0977c3af9a91bdadd/
    Complete output (11 lines):
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/tmp/pip-install-pm4x0cuw/pylibjpeg-openjpeg_aa94277196914aa0977c3af9a91bdadd/setup.py", line 87, in <module>
        setup_oj()
      File "/tmp/pip-install-pm4x0cuw/pylibjpeg-openjpeg_aa94277196914aa0977c3af9a91bdadd/setup.py", line 60, in setup_oj
        shutil.copy(
      File "/usr/lib/python3.10/shutil.py", line 417, in copy
        copyfile(src, dst, follow_symlinks=follow_symlinks)
      File "/usr/lib/python3.10/shutil.py", line 254, in copyfile
        with open(src, 'rb') as fsrc:
    FileNotFoundError: [Errno 2] No such file or directory: 'build_tools/cmake/CMakeLists.txt'
    ----------------------------------------
WARNING: Discarding https://files.pythonhosted.org/packages/49/1c/43de9deec30e2a641a3a2f11efa6c13185fa2c77a962676e370a282a3814/pylibjpeg-openjpeg-1.1.0.tar.gz#sha256=66514f5d5df6fdfc704296a8420e4b1feb335fad4e6901435e00c37f353fb44e (from https://pypi.org/simple/pylibjpeg-openjpeg/) (requires-python:>=3.7). Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
Collecting pylibjpeg
  Using cached pylibjpeg-1.2.0-py3-none-any.whl (27 kB)
  Using cached pylibjpeg-1.1.1-py3-none-any.whl (29 kB)
  Using cached pylibjpeg-1.1.0-py3-none-any.whl (29 kB)
  Using cached pylibjpeg-1.0.0-py2.py3-none-any.whl (31 kB)
Requirement already satisfied: numpy in /usr/lib/python3.10/site-packages (from pylibjpeg) (1.21.5)
Installing collected packages: pylibjpeg
Successfully installed pylibjpeg-1.0.0

Anything I can do to fix this?

Managed to get it to work after uninstall, clone, install development version, install pylibjpeg-libjpeg:
pip uninstall --user pylibjpeg
git clone git@github.com:pydicom/pylibjpeg.git
pip install --user ./pylibjpeg
pip install --user pylibjpeg-libjpeg

Thank you, that works!

This is due to failing to build with Python 3.10 due to a file that was missing from the -openjpeg package. It should be fixed now anyway.


Desktop app on Mac plays notification sound even when disabled

I confirm (by marking "x" in the [ ] below: [x]):

[x] This is not a troubleshooting question. Troubleshooting questions go here: https://docs.mattermost.com/install/troubleshooting.html.
[ ] This doesn't reproduce on web browsers (such as in Chrome). If it does, issue reports go to the Mattermost Server repository. – not applicable
[x] I have read contributing guidelines.

Summary
Desktop app plays notification sounds on Mac even if notification sounds are disabled system-wide or for the Mattermost app.
Environment

Operating System: macOS
Mattermost Desktop App version: 5.0.4
Mattermost Server version: 6.6.1

Steps to reproduce
receive a notification
Expected behavior
if do not disturb is turned on or notification sounds are turned off for Mattermost, no sound is played
Observed behavior
sound plays even if notification sounds are turned off in the system

Thanks for the report, this unfortunately requires a native Node module to work correctly, which we do not support in our build process currently.
We will be supporting this in the near future however!

This is a really annoying bug. How near in the future can this be fixed?

This might now be fixed with the addition of the macos-notification-state module. However, it will only work outside of the MAS build due to Apple's App Sandbox restrictions. You can try it for yourself in the nightly buillds available here: https://community.mattermost.com/core/channels/desktop-builds

Wow, that was fast! I can confirm that mattermost-desktop-5.2.0-nightly.20220912-mac-m1 fixes this issue.

For the MAS issue, looks like this can be fixed: https://github.com/felixrieseberg/macos-notification-state/pull/27

This is fixed here: https://github.com/mattermost/desktop/pull/2972
Forgot to close this issue.


fontFamily "Arial" is not a system font and has not been loaded through Font.loadAsync.

Current behaviour
While trying to render TabView with content in Hebrew on Android - the app crash with error:

fontFamily "Arial" is not a system font and has not been loaded through Font.loadAsync.
If you intended to use a system font, make sure you typed the name correctly and that it is supported by your device operating system.
If this is a custom font, be sure to load it with Font.loadAsync.

Expected behaviour
To support Hebrew and the Ariel font (Or maybe a way to change the font to something that work on Android
Code sample
          <TabView
            navigationState={state}
            renderScene={SceneMap(state.routesObject)}
            renderTabBar={props => (
              <TabBar
                {...props}
                renderLabel={({ route, focused, color }) => (
                  <SFTMText>
                    {route.title}
                  </SFTMText>
                )}
                labelStyle={{ color: colors.themeGrey }}
                style={{ backgroundColor: colors.themeWhite }}
                indicatorStyle={styles.indicatorStyle}
                activeColor={colors.themeAction}
                scrollEnabled={Object.keys(state.routesObject).length > MAX_TABS_IN_SCREEN}/>
              )
            }
            onIndexChange={index => setState({ ...state, index })}
            initialLayout={{ width: screenWidth }}/>

What have you tried

To load Ariel font through Font.loadAsync as suggested

Your Environment

software
version

android

react-native
https://github.com/expo/react-native/archive/sdk-35.0.0.tar.gz

react-native-tab-view
2.11.0

react-native-gesture-handler
~1.3.0

react-native-reanimated
~1.2.0

node

npm or yarn
npm

Please check your code. We're not setting font family anywhere in the library.


#Feat: Footer section is not align properly.

Feature Request
The footer must contain additional social media handles and must align at the center of the hero page.
Description
The footer must contain additional social media handles, along with company newsletter page and must align at the center of the hero page. Currently , it has not align properly.
Proposed Solution
Align the CSS of the footer section of the hero page  at the center along with the additional social media handles

can you assign me this issue under gssoc 24.

Hello @chandel-aman,
Can you please assign me this issue for gssoc '24
Regards,
V Meenakshi Iyer


add github link to header

fix for issue #2
also adds necessary dev dependencies for previewing dummy app during development.

Looks great! I dropped the horizontal padding + translate animation for the links, since it made the TEDOpenSource left-aligned link not lign up with the main  in the header.
If it looks good to you go ahead and merge. Thanks!

Good call on the alignment.  I darkened the hover state colour a bit so it's more noticeable, now that the arrows are gone.

@samselikoff I bumped the version, can you npm publish or grant me permission to publish?

Added you , you should be all set to publish!
On Fri, Nov 20, 2015 at 7:08 PM, brenna<EMAIL_ADDRESS>wrote:

@samselikoff https://github.com/samselikoff I bumped the version, can
you npm publish or grant me permission to publish?
—
Reply to this email directly or view it on GitHub
https://github.com/tedconf/ember-ted-docs/pull/3#issuecomment-158426182.

thanks! 😎


Add brand option in iconVariant

Fixes #1737
Additional description
Actually, iconVariant is not ignored. The brand option was not present for iconVariant. The desired output(Icon button with brand color at background) can be obtained by setting iconVariant to brand.

The SLDS also have brand in the icon type as shown in the screenshot.

CONTRIBUTOR checklist (do not remove)
Please complete for every pull request

[x] First-time contributors should sign the Contributor License Agreement.  If you haven't before, wait a few minutes and a bot will comment on this pull request with instructions.
[x] npm run lint:fix has been run and linting passes.
[x] Mocha, Jest (Storyshots), and components/component-docs.json CI tests pass (npm test).
[ ] Tests have been added for new props to prevent regressions in the future. See readme.
[x] Review the appropriate Storybook stories. Open http://localhost:9001/.
[ ] The Accessibility panel of each Storybook story has 0 violations (aXe). Open http://localhost:9001/.
[x] Review tests are passing in the browser. Open http://localhost:8001/.
[ ] Review markup conforms to SLDS by looking at DOM snapshot strings.

REVIEWER checklist (do not remove)

[ ] TravisCI tests pass. This includes linting, Mocha, Jest, Storyshots, and components/component-docs.json tests.
[ ] Tests have been added for new props to prevent regressions in the future. See readme.
[ ] Review the appropriate Storybook stories. Open http://localhost:9001/.
[ ] The Accessibility panel of each Storybook story has 0 violations (aXe). Open http://localhost:9001/.
[ ] Review tests are passing in the browser. Open http://localhost:8001/.
[ ] Review markup conforms to SLDS by looking at DOM snapshot strings.

Required only if there are markup / UX changes

[ ] Add year-first date and commit SHA to last-slds-markup-review in package.json and push.
[ ] Request a review of the deployed Heroku app by the Salesforce UX Accessibility Team.
[ ] Add year-first review date, and commit SHA, last-accessibility-review, to package.json and push.
[ ] While the contributor's branch is checked out, run npm run local-update within locally cloned site repo to confirm the site will function correctly at the next release.

@pradumangoyal Great find. I will add this to my review backlog. Thanks!

This is working for me visually, but the markup does not match https://www.lightningdesignsystem.com/components/button-icons/
slds-button_icon isn't present for
					<Button
						assistiveText={{ icon: 'Icon Bare Small' }}
						iconCategory="utility"
						iconName="settings"
						iconVariant="brand"
						variant="icon"
					/>

@interactivellama, I have seen to it actually slds-button_icon className was not present in it for any type of button. I have added 'slds-button_icon': isIconto thegetClassNamefunction for the button component which provides required class whenever the variant of the button is passed asicon` which produce the following markup.

@interactivellama, I have updated which change the markup to required but causing Travis to fail. Should I update and push the snapshots?


Doc for Kubelet Configuration

Issue #, if available:
Documentation added/planned (if applicable):
Doc for Kubelet Configuration
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

/approve


Debug info?

I have setup the handler, but I am not certain it is doing anything. Is there a way to get debug info assuming it is firing or is is logging somewhere?

@AfterSpencer have you tried running it from the command line using a sample event JSON? There's one in this repository you can use.  If something is failing, it should report as such.

I am not 100% clear what you mean. I used the sample JSON to create the handler:
cat go_mailer.json {     "api_version": "core/v2",     "type": "Handler",     "metadata": {         "namespace": "default",         "name": "email"     },     "spec": {         "type": "pipe",         "command": "/var/lib/sensu/sensu-agent/sensu-email-handler -P 465 -f<EMAIL_ADDRESS>-t<EMAIL_ADDRESS>-s smtp.googlemail.com -u<EMAIL_ADDRESS>-p '<redacted>'",         "timeout": 10,         "filters": [             "is_incident",             "not_silenced"         ]     } }
Which looks like this when I look at sensuctl:
sensuctl handler list   Name    Type   Timeout           Filters            Mutator                                                                                Execute                                                                                Environment Variables   Assets  ─────── ────── ───────── ────────────────────────── ───────── ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── ─────────────────────── ────────   email   pipe        10   is_incident,not_silenced             RUN:  /var/lib/sensu/sensu-agent/sensu-email-handler -P 465 -f<EMAIL_ADDRESS>-t<EMAIL_ADDRESS>-s smtp.googlemail.com -u<EMAIL_ADDRESS>-p '<redacted>'
I have it attached to all the checks as shown in sensctl:
sensuctl check list         Name                                                          Command                                                    Interval   Cron   Timeout   TTL   Subscriptions   Handlers   Assets   Hooks   Publish?   Stdin?   Metric Format   Metric Handlers  ─────────────────── ────────────────────────────────────────────────────────────────────────────────────────────────────────── ────────── ────── ───────── ───── ─────────────── ────────── ──────── ─────── ────────── ──────── ─────────────── ─────────────────   apache-status       /opt/sensu/embedded/bin/check-process.rb                                                                         60                0     0   linux           email                       true       false   apt-status          /usr/lib/nagios/plugins/check_apt                                                                                60                0     0   linux           email                       true       false   check-cpu           /opt/sensu/embedded/lib/ruby/gems/2.4.0/gems/sensu-plugins-cpu-checks-3.0.0/bin/check-cpu.sh -w 75 -c 90         60                0     0   linux           email                       true       false   disk-status         sudo /opt/sensu/embedded/bin/check-disk-usage.rb -w 80 -c 90                                                     60                0     0   linux           email                       true       false   local-load-status   /usr/lib/nagios/plugins/check_load -w 5.0,4.0,3.0 -c 10.0,6.0,4.0                                                60                0     0   linux           email                       true       false   local-users         /usr/lib/nagios/plugins/check_users -w 5 -c 10                                                                   60                0     0   linux           email                       true       false   procs-status        /usr/lib/nagios/plugins/check_procs -w 250 -c 400 -s RSZDT                                                       60                0     0   linux           email                       true       false   swap-status         /usr/lib/nagios/plugins/check_swap -w 20 -c 10                                                                   60                0     0   linux           email                       true       false
When I run the command listed under the handler it seems to just hang without doing anything.
Thanks for responding! So far I like what I am seeing with Sensu Go.

Sorry for not being specific.  But there is a sample event json file in the repository.  Try using that to run the handler.
cat event.json | /var/lib/sensu/sensu-agent/sensu-email-handler -P 465 -f<EMAIL_ADDRESS>-t<EMAIL_ADDRESS>-s smtp.googlemail.com -u<EMAIL_ADDRESS>-p '<redacted>'
This should let you see any errors generated by the handler.

Gotcha! That is helpful. Here is the output
`cat ./event.json | /var/lib/sensu/sensu-agent/sensu-email-handler -P 465 -f @gmail.com -t @gmail.com -s smtp.googlemail.com -u @gmail.com -p ''
Error: failed to send email: EOF
Usage:
sensu-email-handler [flags]
Flags:
-f, --fromEmail string      The 'from' email address
-h, --help                  help for sensu-email-handler
-s, --smtpHost string       The SMTP host to use to send to send email
-p, --smtpPassword string   The SMTP password
-P, --smtpPort uint16       The SMTP server port (default 587)
-u, --smtpUsername string   The SMTP username
-t, --toEmail string        The 'to' email address
`

Can you try changing the port to 587 and see if that changes anything?

That was it! I was using 465 because that is what some of my other config uses and it works. Thanks for the help!

My pleasure, glad that fixed it for you.

Hello,
I have a similar problem. I want to test the email handler with my own SMTP server running on port 25 and that doesn't require any username or password.
From the external server that runs sensuctl I did this:
sensuctl event info webserver keepalive --format=json | \
  sensu-email-handler -f<EMAIL_ADDRESS>\
  -t<EMAIL_ADDRESS>-s relay.domain.com \
  -P 25 -S 'testing'

If I try that, I got:
sensu-email-handler: command not found
Error: not found

How can I test my email handler to make it work with my SMTP server?


Support the privileged flag for docker containerservice

Is your enhancement related to a problem? Please describe.

https://github.com/walrus-catalog-sandbox/terraform-docker-containerservice
Docker templates currently do not support the "privileged" flag. It may be useful in certain development/testing scenarios.
Describe the solution you'd like

Environment

Walrus version: main 3996861aa9fd10731e7c9912b4d62a84e154a2a0
UI version: dev-6762e0b

Test Result:

docker-containerservice v0.2.4: pass
kubernetes-containerservice v0.2.4: pass
kubernetes-containertask v0.2.1: pass


Some questions about another one redux tooling library.

Hi! My name is Sergei, I'm 5 year experienced react developer and in my projects I used these libraries:

redux
redux-toolkit
effector

And I found an explain of your motivation to create redux-cool in the documentation:
ReduxToolkit tried to solve these problems but with no result. I think that the creators of ReduxToolkit did not know about the important problems that emerge when we start using Redux in big and complex projects.
Could you describe what you mean? What problems? Why it gives you no result? What important problems? Any examples of complex projects? Would you try to resolve some problems locally in your project?
In our projects with react-toolkit we creating feature directory with store folder containing files:

feature.actions.ts
feature.reducer.ts
feature.types.ts
feature.epics.ts
feature.selectors.ts

Then we import each one in feature store api initializer:
import * as actions from './feature.actions.ts';
import * as selectors from './feature.selectors.ts';
import * as epics from './feature.epics.ts';
import { reducer } from './feature.reducer.ts';
export * from './feature.types.ts';

export const featureApi = {
  reducer,
  selectors,
  actions,
  epics,
}

And we got something like that:

And what's about typescript? I don't see any information about typescript support.
In any case you need to explain problems that you resolved, what you get and what you lost. Now it looks like you didn't understand how to cook apps with redux-toolkit, nothing personal.
I really wish you can make something that will be better than redux-toolkit, but now it is not so.
Regards, Sergei.

Hi Sergey! My name is Ruben! Thanks for the question.
I wrote this library to solve these three main problems. Problems
And the typescript support will be in 2 day․


Sorts results again at end of search()

CMR's default results sorting was used while testing export feature. This restores sorting to end of search()

Codecov Report

Merging #146 (5306595) into master (8761e2b) will decrease coverage by 0.18%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##           master     #146      +/-   ##
==========================================
- Coverage   89.19%   89.00%   -0.19%
==========================================
  Files          48       47       -1
  Lines        1592     1574      -18
==========================================
- Hits         1420     1401      -19
- Misses        172      173       +1

Flag
Coverage Δ

unittests
89.00% <100.00%> (-0.19%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

asf_search/search/search.py
94.44% <100.00%> (+0.06%)
:arrow_up:

asf_search/search/granule_search.py
66.66% <0.00%> (-33.34%)
:arrow_down:

asf_search/CMR/subquery.py
98.14% <0.00%> (-1.86%)
:arrow_down:

asf_search/__init__.py

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.


Leverage platform http service

As today to leverage the http service provided by quarkus we do rely on servlet but we can do much better and bypass the servlet engine.
To do so we need to create a sort of "platform http component" that leverage what the platform camel runs on has to offer i.e.

quarkus --> vertx-web
spring --> ???
widfly --> undertow/servlet

I would start by creating such component and quarkus binding here and once we have a stable enough API we can move the common part to main camel repository.

Sounds reasonable. Feel free to assign to me.

BTW, what is the relationship to the new quarkus router engine?

How should the URI scheme be called? http-server maybe?

How should the URI scheme be called? http-server maybe?

Going with platform-http after a discussion with @lburgazzoli

Btw is there anything that makes this http-platform component quarkus specific? I am asking as it may be something we should eventually move to upstream main Camel so it can be used elsewhere too.

There is a SPI for platform specific code so yes, the component should be moved to mian Camel as soon as the SPI is stable enough (there is still some work to be done to i.e. make this component usable for the rest dsl)


Windows + MSYS2 环境编译，翻译过程正常，但运行到最后阶段崩溃

环境：
Windows 10
MSYS2
mingw-w64-ucrt-x86_64-gcc
gcc.exe (Rev2, Built by MSYS2 project) 14.2.0
根据 README.md 拉取最新代码
> git clone https://github.com/lovemefan/SenseVoice.cpp
> cd SenseVoice.cpp
> git submodule sync && git submodule update --init --recursive
> git log
commit e05d5c3a4f64283df22772a5f1003d6da14daa00 (HEAD -> main, origin/main, origin/HEAD)
Merge: 9b7cb22 897c679
Author: Lovemefan<EMAIL_ADDRESS>Date:   Thu Dec 12 00:46:09 2024 +0800

    Merge pull request #35 from lovemefan/develop

    Add silero vad for sensevoic

编译无问题
> mkdir build && cd build
> cmake -DCMAKE_BUILD_TYPE=Release ..
-- Building for: Ninja
-- The CXX compiler identification is GNU 14.2.0
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: D:/tool/dev/msys64/ucrt64/bin/c++.exe - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- CMAKE_BUILD_TYPE is Release
-- Found Git: D:/tool/dev/git/bin/git.exe (found version "2.40.1.windows.1")
_: line 1: --version: command not found
-- The C compiler identification is GNU 14.2.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: D:/tool/dev/msys64/ucrt64/bin/cc.exe - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE
-- Warning: ccache not found - consider installing it for faster compilation or disable this warning with GGML_CCACHE=OFF
-- CMAKE_SYSTEM_PROCESSOR: AMD64
-- Including CPU backend
-- Found OpenMP_C: -fopenmp (found version "4.5")
-- Found OpenMP_CXX: -fopenmp (found version "4.5")
-- Found OpenMP: TRUE (found version "4.5")
-- Adding CPU backend variant ggml-cpu: -march=native
-- Configuring done (5.5s)
-- Generating done (0.1s)
-- Build files have been written to: Z:/SenseVoice.cpp/build

> cmake --build .
....
[31/31] Linking CXX executable bin\sense-voice-main.exe

识别过程ok，最后阶段崩溃
> ./sense-voice-main -m ./models/sense-voice-small-q4_k.gguf /z/audio.wav -t 4 -l en -ng
sense_voice_small_init_from_file_with_params_no_state: loading model from './models/sense-voice-small-q4_k.gguf'
sense_voice_init_with_params_no_state: use gpu    = 0
sense_voice_init_with_params_no_state: flash attn = 0
sense_voice_init_with_params_no_state: gpu_device = 0
sense_voice_init_with_params_no_state: devices    = 1
sense_voice_init_with_params_no_state: backends   = 1
sense_voice_model_load: version:      3
sense_voice_model_load: alignment:   32
sense_voice_model_load: data offset: 423680
sense_voice_model_load: loading model
sense_voice_model_load: n_vocab = 25055
sense_voice_model_load: n_encoder_hidden_state = 512
sense_voice_model_load: n_encoder_linear_units = 2048
sense_voice_model_load: n_encoder_attention_heads  = 4
sense_voice_model_load: n_encoder_layers = 50
sense_voice_model_load: n_mels  = 80
sense_voice_model_load: ftype  = 12
sense_voice_model_load: vocab[25055] loaded
sense_voice_model_load: CPU total size =   181.86 MB
sense_voice_model_load: n_tensors: 1212
sense_voice_model_load: load SenseVoiceSmall takes 0.080000 second
sense_voice_backend_init: using CPU backend
sense_voice_init_state: kv pad  size  =    3.67 MB
sense_voice_init_state: compute buffer (encoder)   =    3.09 MB
sense_voice_init_state: compute buffer (encoder)   =   17.43 MB
sense_voice_init_state: compute buffer (decoder)   =    5.54 MB

system_info: n_threads = 4 / 16 | AVX = 1 | AVX2 = 1 | AVX512 = 0 | FMA = 1 | NEON = 0 | ARM_FMA = 0 | F16C = 1 | FP16_VA = 0 | WASM_SIMD = 0 | SSE3 = 1 | SSSE3 = 1 | VSX = 0 | COREML = 0 | OPENVI
NO = 0

main: processing audio (25030616 samples, 1564.41345 sec) , 4 threads, 1 processors, lang = en...

[0.90-1.44] <|en|><|NEUTRAL|><|Speech|><|woitn|>so
[1.86-8.16] <|en|><|EMO_UNKNOWN|><|Speech|><|woitn|>not recommend as much as more less required i mean no js you need for the project because it's user setting it up on a local web server
[8.38-13.66] <|en|><|NEUTRAL|><|Speech|><|woitn|>this is all done for you so all you have to do really is download the project we like npm install npm run dev
[13.98-15.87] <|en|><|EMO_UNKNOWN|><|Speech|><|woitn|>and you'll automatically have it in your browser
....
....
[1550.21-1554.02] <|en|><|EMO_UNKNOWN|><|Speech|><|woitn|>i will take a look at why there were errors in this thing and fix that in the instructionss
fish: Job 1, './sense-voice-main -m ./models/…' terminated by signal SIGSEGV (Address boundary error)

Ubuntu23.10 转录此 wav，同样结尾崩溃
[1539.33-1539.62] <|en|><|EMO_UNKNOWN|><|Speech|><|woitn|>y
[1550.21-1554.02] <|en|><|EMO_UNKNOWN|><|Speech|><|woitn|>i will take a look at why there were errors in this thing and fix that in the instructionss
fish: Job 1, './sense-voice-main -m ./models/…' terminated by signal SIGSEGV (Address boundary error)

audio2.zip
这个是裁剪只剩最后一分钟的 .wav，可以在 Windows 和 Ubuntu 都触发结束时崩溃。
Windows 转录另一个 wav，结尾也崩溃，
但这次执行到了输出时间统计main: decoder audio use 862.880080 s, rtf is 0.187628.
[4588.06-4592.58] <|en|><|NEUTRAL|><|Speech|><|woitn|>and action sign up for your teams if you know who your teams are sign up for your teams
[4593.25-4593.60] <|en|><|EMO_UNKNOWN|><|Speech|><|woitn|>okay
[4595.42-4596.45] <|en|><|EMO_UNKNOWN|><|Speech|><|woitn|>i fall in love

main: decoder audio use 862.880080 s, rtf is 0.187628.

fish: Job 1, './sense-voice-main -m ./models/…' terminated by signal SIGSEGV (Address boundary error)

而同样的文件，这次在 Ubuntu23.10 可以成功结束
[4588.06-4592.58] <|en|><|NEUTRAL|><|Speech|><|woitn|>and action sign up for your teams if you know who your teams are sign up for your teams
[4593.25-4593.60] <|en|><|EMO_UNKNOWN|><|Speech|><|woitn|>okay
[4595.42-4596.45] <|en|><|EMO_UNKNOWN|><|Speech|><|woitn|>i fall in enough

main: decoder audio use 610.505706 s, rtf is 0.132751.

以上文件 whisper.cpp 处理均没有问题。

感谢反馈

当前bug已修复，请更新最新代码，目前还会有少量的内存泄露，后续继续修复


feat: apply prover c api to rust binding

Description
This PR creates the following c apis and apply to rust binding

math::UnivariateEvaluations<math::bn254::Fr, SIZE_MAX>
math::UnivariateEvaluations<base::RataionalField<math::bn254::Fr>, SIZE_MAX>
math::UnivariateDensePolynomial<math::bn254::Fr, SIZE_MAX>
math::UnivariateEvaluationDomain<math::bn254::Fr, SIZE_MAX>
zk::Blinder<math::bn254::Fr>
zk::ArgumentData<Poly, Evals>, where Poly and Evals refers to above implementations.
zk::halo2::Prover<PCS>, where PCS is SHPlonk implementations.

https://github.com/kroma-network/tachyon/pull/270/commits/5a72531db6a450c2fc69b463cf88d41860851583
change " But the rest of UnsafeZero() are fine because there's no such assumption." to "Any other cases of UnsafeZero() are fine because there's no such assumption."

https://github.com/kroma-network/tachyon/pull/270/commits/43d93e915e90ae96f287bf43b0db6aa1cc0fbcd8
change description to:
"When testing against Halo2, seeing squeezed elements is very helpful. Since the size of logging is small, I set it to level 1. It is fine to checkvk_str once per circuit, so I set it higher to level 3. You can see the log in terminal with these lines."
Refer to previous "first person comments" as well.

@chokobole Could you fix scope of e569c216b8cc2932729a3e69ab3e70196d19c4e5 please?


The POOL_FLAGS link is broken.

The hyperlink that is supposed to redirect to the page containing information about the POOL_FLAGS enum is broken. This is probably because W10 version 2004 is still really new and this documentation just came out.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 4088c928-a19e-b223-3f6f-503e8c7f459e
Version Independent ID: 9f39cccc-fcb4-7ea0-b915-95497671100b
Content: ExAllocatePool2 - Windows drivers
Content Source: wdk-ddi-src/content/wdm/nf-wdm-exallocatepool2.md
Product: windows-hardware
Technology: windows-devices
GitHub Login: @tedhudek
Microsoft Alias: tedhudek

Fixed! Please try again.  Thanks for the report!


Feature/admin improvements

Coverage increased (+1.5%) to 81.818% when pulling ef236e171e7fb76437ac56ea96dc46c943a2e77b on feature/admin-improvements into f99515ccbcc1a65c854b3c20f19336073ba3297c on master.


SSL Handshake failure with certain websites

When visiting certain websites (https://api.hearthstonejson.com) with tls enabled there is an handshake failure which should NOT be the case, both regular browser (Chrome/Firefox) and the ruby lib HTTParty connects perfectly to that website.
Errno 14077410 which corresponds to The Destination Site Does Not Like the Cipher
I believe HTTParty use the same OpenSSL version than Crystal (which is the system one v1.0.2)
Crystal compiler version:
➜   crystal -v
Crystal 0.24.1 (2018-01-27)

LLVM: 5.0.1
Default target: x86_64-apple-macosx

Example of failing code
require "http/client"
uri = URI.parse("https://api.hearthstonejson.com")
response = HTTP::Client.new(uri).get("/")

Stacktrace
SSL_connect: error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure (OpenSSL::SSL::Error)
  from /usr/local/Cellar/crystal-lang/0.24.1_2/src/openssl/ssl/socket.cr:34:9 in 'initialize'
  from OpenSSL::SSL::Socket::Client::new:context:sync_close:hostname<TCPSocket, OpenSSL::SSL::Context::Client, Bool, String>:OpenSSL::SSL::Socket::Client
  from /usr/local/Cellar/crystal-lang/0.24.1_2/src/http/client.cr:657:5 in 'socket'
  from /usr/local/Cellar/crystal-lang/0.24.1_2/src/http/client.cr:500:5 in 'exec_internal_single'
  from /usr/local/Cellar/crystal-lang/0.24.1_2/src/http/client.cr:486:5 in 'exec_internal'
  from /usr/local/Cellar/crystal-lang/0.24.1_2/src/http/client.cr:482:5 in 'exec'
  from /usr/local/Cellar/crystal-lang/0.24.1_2/src/http/client.cr:585:5 in 'exec'
  from /usr/local/Cellar/crystal-lang/0.24.1_2/src/http/client.cr:329:3 in 'get'
  from src/hsync.cr:25:1 in '__crystal_main'
  from /usr/local/Cellar/crystal-lang/0.24.1_2/src/crystal/main.cr:11:3 in '_crystal_main'
  from /usr/local/Cellar/crystal-lang/0.24.1_2/src/crystal/main.cr:112:5 in 'main_user_code'
  from /usr/local/  from /usr/local/Cellar/crystal-lang/0.24.1_2/src/crystal/main.cr:101:7 in 'main'

Sidenote
I don't believe this is a duplicate of https://github.com/crystal-lang/crystal/issues/5266 / https://github.com/crystal-lang/crystal/issues/3477. Not the same error code, and connecting to https://maps.googleapis.com works perfectly fine for me
I've performed an sslscan to see the supported cypher and got the following ones:
➜   sslscan api.hearthstonejson.com

...
Preferred TLSv1.2  128 bits  ECDHE-ECDSA-AES128-GCM-SHA256 Curve P-256 DHE 256
Accepted  TLSv1.2  128 bits  ECDHE-ECDSA-AES128-SHA        Curve P-256 DHE 256
Accepted  TLSv1.2  128 bits  ECDHE-ECDSA-AES128-SHA256     Curve P-256 DHE 256
Accepted  TLSv1.2  256 bits  ECDHE-ECDSA-AES256-GCM-SHA384 Curve P-256 DHE 256
Accepted  TLSv1.2  256 bits  ECDHE-ECDSA-AES256-SHA        Curve P-256 DHE 256
Accepted  TLSv1.2  256 bits  ECDHE-ECDSA-AES256-SHA384     Curve P-256 DHE 256
Preferred TLSv1.1  128 bits  ECDHE-ECDSA-AES128-SHA        Curve P-256 DHE 256
Accepted  TLSv1.1  256 bits  ECDHE-ECDSA-AES256-SHA        Curve P-256 DHE 256
Preferred TLSv1.0  128 bits  ECDHE-ECDSA-AES128-SHA        Curve P-256 DHE 256
Accepted  TLSv1.0  256 bits  ECDHE-ECDSA-AES256-SHA        Curve P-256 DHE 256
...

which seems to be among the ones that are supposedly supported (https://github.com/crystal-lang/crystal/blob/v0.24.1/src/openssl/ssl/context.cr#L13-L54)

Hello @vmeyet, thank you for you report.
Since Crystal needs to link with OpenSSL when compiling your script, will be great to know against which version it is linking.
A simple test will be run the following command:
$ crystal eval 'require "openssl"; pp LibSSL::OPENSSL_110, LibSSL::OPENSSL_102'

And confirm the output. For reference, here is the output of my Ubuntu 16.04 installation:
LibSSL::OPENSSL_110 # => false
LibSSL::OPENSSL_102 # => true

The ciphers you linked above refers to ciphers used by the server context, but not the ones used by client context (ie. HTTP::Client).
Client should work against any cipher proposed by server, unless specified in your own context.
As example, here is a non-HTTP client request:
require "socket"
require "openssl"

# nslookup api.hearthstonejson.com
socket = TCPSocket.new("<IP_ADDRESS>", 443)
context = OpenSSL::SSL::Context::Client.new

ssl_socket = OpenSSL::SSL::Socket::Client.new(socket, context)

And will notice the same failure as your report (using OpenSSL 1.0.2):
SSL_connect: error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure (OpenSSL::SSL::Error)
  from src/openssl/ssl/socket.cr:34:9 in 'initialize'
  from src/openssl/ssl/socket.cr:3:5 in 'new'
  from 3.cr:8:1 in '__crystal_main'
  from src/crystal/main.cr:11:3 in '_crystal_main'
  from src/crystal/main.cr:112:5 in 'main_user_code'
  from src/crystal/main.cr:101:7 in 'main'
  from src/crystal/main.cr:141:3 in 'main'
  from __libc_start_main
  from _start
  from ???

And even a direct openssl s_client connection fails:
$ openssl s_client -connect api.hearthstonejson.com:443
CONNECTED(00000003)
140599705142936:error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure:s23_clnt.c:769:
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 7 bytes and written 305 bytes
---
New, (NONE), Cipher is (NONE)
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
SSL-Session:
    Protocol  : TLSv1
    Cipher    : 0000
    Session-ID:
    Session-ID-ctx:
    Master-Key:
    Key-Arg   : None
    PSK identity: None
    PSK identity hint: None
    SRP username: None
    Start Time:<PHONE_NUMBER>
    Timeout   : 300 (sec)
    Verify return code: 0 (ok)
---

Also fails when forcing TLS version and preferred cipher:
$ openssl s_client -tls1_2 -cipher ECDHE-ECDSA-AES128-GCM-SHA256 -connect api.hearthstonejson.com:443
CONNECTED(00000003)
140323884238488:error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number:s3_pkt.c:362:

So I think the issue might be OpenSSL related than Crystal.
Can you perform these debug methods on your end?
Thank you.

Thanks for your answer, launching the code you gave me outputs:
➜  crystal eval 'require "openssl"; pp LibSSL::OPENSSL_110, LibSSL::OPENSSL_102'
LibSSL::OPENSSL_110 # => false
LibSSL::OPENSSL_102 # => false

by checking my openssl version, I got
➜  openssl version
OpenSSL 1.0.2n  7 Dec 2017
➜ /usr/bin/openssl version
OpenSSL 0.9.8zh 14 Jan 2016

It seems that the system version is 0.9.8 even though my version is 1.0.2n (as per the .zshrc $PATH resolution). It might be due to this, Crystal is probably using the obsolete version (from /usr/bin).
I have to do a bit of nasty stuff to change symlink the right version in /usr/bin directory. I'll try to see if it resolves this.
Also the ruby counterpart is using the right version and that's why it worked:
➜  irb
irb(main):001:0> require 'openssl'
=> true
irb(main):002:0> OpenSSL::OPENSSL_LIBRARY_VERSION
=> "OpenSSL 1.0.2n  7 Dec 2017"

If you're using OSX, you might want to use Homebrew's openssl instead:
https://github.com/Homebrew/brew/blob/master/docs/How-to-build-software-outside-Homebrew-with-Homebrew-keg-only-dependencies.md
Look at the pkg-config option.
Hope that helps.

the pkg-config option worked perfectly!
I've added export PKG_CONFIG_PATH=$(brew --prefix)/opt/openssl/lib/pkgconfig to my ~/.zshrc and re-run my script and it worked.
Thanks for you help, I believe this can be closed.
Sorry for the hassle due to my (not great) setup.


Webpack not working with PUG (Jade)

I've asked on discord, gitter, IRC..., I've searched in SO, google, Github's random repos, webpack docs, articles... I just can't make this work. Something's wrong. And this seems to be something people have been having troubles with very little or 0 help.
Bug report
What is the current behavior?
In this last iteration I'm trying to run my simple MVC Express+Pug with "webpack-dev-server --config webpack.config.js --env.NODE_ENV=development --mode=development --progress --open --host localhost.
Using HMR (all the steps to config webpackDevMiddleware and webpack-hot-middleware), the html-webpack-plugin, webpack-dev-server, I expect a quick development experience, being able to see on the browser my *.pug files show data sent down by the controller. The static content is shown, but not the dynamic content from Express. Also, browser should auto refresh on pug changes, but it stays quiet.
Because I'm not doing a SPA, and I think one has to spawn a new plugin object per *.pug page, I made a simple js util to collect all the pages so I can do this:
    new HtmlWebPackPlugin({
      filename: 'index.html',
      template: './src/views/pages/index.pug',
      inject: true,
    }), ...pugPages.pages(env),

I've tested and it works so that's a ton of repetitive code I don't need to write.
With that hack, I get to see the PUG pages. But they don't receive the data sent down by the Express controller.
For example:
index.js:
router.get('/', (req, res, next) => {
  res.render('index', { msg: 'index page' });
  next();
});

index.pug::
extends ../layout

block head
  include ../partials/head

block content
  h1 You ware in #{msg}
  //h1= htmlWebpackPlugin.options.title
  //p Welcome to #{htmlWebpackPlugin.options.title}
  //script.
  //  console.log(!{JSON.stringify(htmlWebpackPlugin.options)})

Shows "You are in ->" instead of "You are in -> index page".
As you can tell I was trying with htmlWebpackPlugin.options.title. But if that's the only way this works, I can't get pug the data from Express. And Webpack is not auto-reloading the browser on change (changes in pug files or anywhere else). I have to manually refresh the browser.
Also, in the current step of trying different approaches with the documentation and other articles, I now get a browser error:

This is yet a new error that just appeared right now. You can see in the repo's package.json I have all the @babel packages, and .babelrc with @babel/preset-env preset.
If the current behavior is a bug, please provide the steps to reproduce.
I made a leaner branch with everything in place to make it easier. Here it is: https://github.com/nmaxcom/Express-pug-webpack
What is the expected behavior?
According to Webpack's docs, it should run the app, bundling static assets (which it does) and opening a local connection to see the current state of the site (which it does too).
I was expecting a correct "watch" of files, which on modification would reload server if necessary (although with HMR it shouldn't be) and update the browser view without a manual refresh.
Other relevant information:
Node.js v10.16.0
darwin 16.7.0
npm 6.9.0
webpack 4.29.0
html-webpack-plugin 3.2.0

Running pug templates with the HtmlWebPackPlugin runs them at build time and this is unrelated to your server code. Expecting to see your msg here doesn't make sense... You should not use HtmlWebPackPlugin if you want to pass variables from server here.

Makes sense. But if don't use HtmlWebPackPlugin, I can't use webpack-dev-server because it won't render the templates.
I'm just really trying to make it work. After countless articles, docs and repos using express+pug+webpack, running express with a templating engine and a swift dev environment, doesn't seem possible.
Is there something I missed?

I can't use webpack-dev-server because it won't render the templates.

You can. Use it only to generate JS assets. Setup proxy to your express server at the webpack-dev-server.


Support drag&drop item (child of DragLinearLayout)  between multiple draglinearlayouts?

Hi, it's unlikely that DragLinearLayout will support what you want. It was built from the ground up as a ViewGroup that only manages its immediate child views.
You may want to take a look at the platform drag & drop APIs.
If you have any specific ideas or topics of discussion, feel free to reopen this issue.


Unexpected token

I just installed and tried to run bilibili-get and I got this error
user@host:/home/tmp# bilibili-get https://www.bilibili.com/video/av22216245 -l
/usr/local/lib/node_modules/bilibili-get/lib/index.js:25
          .map(v => ({ ...location, ...info, ...v }))
                       ^^^
SyntaxError: Unexpected token ...
    at Object.exports.runInThisContext (vm.js:76:16)
    at Module._compile (module.js:542:28)
    at Object.Module._extensions..js (module.js:579:10)
    at Module.load (module.js:487:32)
    at tryModuleLoad (module.js:446:12)
    at Function.Module._load (module.js:438:3)
    at Module.require (module.js:497:17)
    at require (internal/module.js:20:19)
    at Object.<anonymous> (/usr/local/lib/node_modules/bilibili-get/bin/bilibili-get:8:16)
    at Module._compile (module.js:570:32)

how can I fix this?
here is my system information
user@host:/home/tmp# npm -v && node -v
3.10.8
v6.9.0

The script uses ES6 parameter spreading syntax which works only for Node.js > 9.0.

Okay, so I installed node 9.11.1 and I got this now
root@nana:/home/web/get# bilibili-get https://www.bilibili.com/video/av22216245 -q 116
extracting video metadata...
[1/1] av22216245: start download "【KEYABINGO！4】EP01恶搞躲避球【真的假字幕组】"...
[1/1] av22216245: video quality:
[1/1] av22216245:     116     flv_p60        高清 1080P60
[1/1] av22216245:     74      flv720_p60     高清 720P60
[1/1] av22216245:   * 80      flv            高清 1080P
[1/1] av22216245:     64      flv720         高清 720P
[1/1] av22216245:     32      flv480         清晰 480P
[1/1] av22216245:     15      flv360         流畅 360P
[1/1] av22216245: output format: flv
[1/1] av22216245: output path:
[1/1] av22216245:     /home/web/get/av22216245 【KEYABINGO！4】EP01恶搞躲避球【真的假字幕组】(1).flv
[1/1] av22216245: downloading video segment 1/4...
Exception: [AbstractOptionHandler.cc:69] errorCode=28 We encountered a problem while processing the option '--download-result'.
  -> [OptionHandlerImpl.cc:444] errorCode=1 download-result must be one of the following:'default' 'full'
Usage:
 --download-result=OPT        This option changes the way "Download Results"
                              is formatted. If OPT is 'default', print GID,
                              status, average download speed and path/URI. If
                              multiple files are involved, path/URI of first
                              requested file is printed and remaining ones are
                              omitted.
                              If OPT is 'full', print GID, status, average
                              download speed, percentage of progress and
                              path/URI. The percentage of progress and
                              path/URI are printed for each requested file in
                              each row.

                              Possible Values: default, full
                              Default: default
                              Tags: #advanced
ERROR: download command failed with code 28.

that option is not shown when I do bilibili-get --help
adding --download-result=full is still giving the same error

Errrrrr… this is an option supported by aria2 > 1.23.0 (the latest release is 1.33.1).

I see,
I uses aria2c from apt install aria2 which give me aria2 version 1.19.0
I'll try manually compiling aria2

Or you can try some PPA source 😺

already midway compiling and I don't know how to find PPA source for it


Ad hoc archiving

Some overview of steps needed (I'll break these into sub-issues as I go)

[ ] Set up staging server

[ ] Figure out S3 bucket copying

[ ] Set up auto-deploy of testing server
[ ] Get tests to pass completely
[ ] Add Page for MyVault
[ ] Add tabs for MyVault
[ ] Figure out better messaging system from Hypatia to Zenodotus for status updates.
[ ] Add querying of status to Hypatia
[ ] Consider other IP addresses for scraping. GreenDesk?
[ ] Get internet fallover working for more IPs and redundancy
[ ] Account rotation and management?
[ ] Add privacy access to MyVault items
[ ] Search MyVault by text (image?)
[ ] Do we have a retainment policy? 5 years? 5 months? Request?

@ericaryan please verify and close (Most of these checks are separate issues)

👍


Week 2 - Day 1 - Post on Pods and Deployments

Closing in favor of https://github.com/Azure/Cloud-Native/pull/89


Make userOrg configurable

It would be nice if userOrg would be configurable so that we could upload to our own bintray repos if needed.

Fixed.


Roadmap to v1.0.0 💯

Based on the recent feature request, I've been brainstorming how we could incorporate them into this package and solidify the API.
Since there are similarities between these features, it would be best if we synchronize these ideas and lay them out here. Below is what I imagine the package to look like. Anyone's input is more than welcome!

Overview
Let's begin with the end in mind. Here's what the directory structure would potentially look like:
src/
  components/
    __tests__
    Linkify.jsx
    LinkifyIt.jsx
  decorators/
    hrefDecorator.js
    textDecorator.js
  index.js
.babelrc
.gitignore
LICENSE
README.md
package.json

Requirements
There are several components to get this done.
Custom Handlers
Related: #10, #20
File: src/components/LinkifyIt.jsx
To allow flexibility of and prevent convoluting the base Linkify component, we will introduce a LinkifyIt component. This would allow us to take advantage of existing logic from linkify-it without tightly coupling this package to it.
Href Decorator
Related: #21
File: src/decorators/hrefDecorator.js
To support modifying a matched href. This would be more so a collection of utility implementations that would commonly be used for the examples below.
Examples:

Wrap a url with a tracking url
Add query parameters to a url

Text Decorator
Related: #22
File: src/decorators/textDecorator.js
Similar to the above, except modifying the actual text that is displayed.
Examples:

Hide the protocol in a url
Display external link icons (https://en.wikipedia.org/wiki/Help:External_link_icons)

Miscellaneous

Compatibility with react-native
Persist compatibility with server-side rendering

I'd love to hear some feedback and get some extra hands on this roadmap!

One thing I'd like to achieve is to do custom things with the text depending on the URL. For example:
// calling it "textProxy" but it can be "textDecorator" or "whatEver"
<Linkify textProxy={(text, href) => {
  if (youtubeURLregex.test(href)) {
    return Watch on YouTube
  } else {
    return text
  }
}}>
  ...
</Linkify>

In other words, I think I should be able to "intervene" both the href and the text and when my "callback" is executed it should be passed both things.

It would be super dandy if this would identify and link telephone numbers as well (US as a first step).

Is react native supported yet?

What is the breaking change for moving from 0.2.2 to 1.0.0?
Any plan to release 1.0.0?