Cleaner EBNF grammar

Would it be possible to modify the current ebnf grammar so instead the current
syntax where you're forced to have the first rule and colon after the rule name on
the same line:
grammar = '''
    rule : rule1
        | rule2
'''

you could have indented and clean blocks like this (fornmat used on glsl specs):
grammar = '''
    rule :
        rule1
        rule2
'''

or maybe (not very clean one):
grammar = '''
    rule :
         | rule1
         | rule2
'''

or:
grammar = '''
    rule
         : rule1
         | rule2
'''

or (inspired from Antlr4 ):
grammar = '''
    rule
         : rule1
         | rule2
         ;
'''

Rationale: That way the EBNF grammar will become much more readable and not only that, you'll be able to fold long grammars easily on your favourite text editor because the grammar now has proper indentation, example here.
Guess it's a matter to tweak a bit this file, even if you don't like the idea, could you explain how you'd do so?
Thanks.

I like these versions:
1.
        rule:
            rule1
            rule2

        rule
             : rule1
             | rule2

The first one is cleaner and the positions of the alternatives are easy to rearrange. But I'm worried that it's not clear enough that each line is a different option.
The second one is a little bit weird, but it might work.
I'll have to give it some thought, to make sure it won't collide with other concepts.

Yeah, I do agree, the first one is the "optimal" one from the whole set of EBNF grammars (as it doesn't contain redundant/verbose elements, it's the most pythonic one :))
Also, did you look this repo, it contains a lot of ebnf grammars ready to go... it'd be cool if they could be used out of the box with lark, or maybe converting them automatically to lark... Guess adding more additional arguments to the Lark constructor to specify which type of ebnf you're dealing with would be ugly.
I mean, I guess this is some sort of tradeoff... usually you want your functions/constructor/ui/gui to be as minimal as possible so they become clear as water for users, quoting:

The ideal numbers of arguments for a function is zero (niladic). Next comes one (monadic), followed closely by two (dyadic). Three arguments (triadic) should be avoided where possible. More than three (polyadic) requires very special justification ‐ and then shouldn't be used anyway.

Anyway, just give it some thoughts, I like to bring to the table new use-cases or improvements about usability ;)
B.

it'd be cool if they could be used out of the box with lark, or maybe converting them automatically to lark

Yes, that's a good idea. I'd say converting them is the way to go. However, Not all of them can be converted; many of them require code that resides in the grammar to work correctly.
The conversion script can be added to lark.tools.

Guys, just for the sake of making my point cleared (sometimes the best way to prove something is by presenting visual samples) I want you to take a look to the below comparison between the syntax used here and the lark one:
GLSLangSpec.4.60.original_ebnf

    variable_identifier :
        IDENTIFIER
    primary_expression :
        variable_identifier
        INTCONSTANT
        UINTCONSTANT
        FLOATCONSTANT
        BOOLCONSTANT
        DOUBLECONSTANT
        LEFT_PAREN expression RIGHT_PAREN
    postfix_expression :
        primary_expression
        postfix_expression LEFT_BRACKET integer_expression RIGHT_BRACKET
        function_call
        postfix_expression DOT FIELD_SELECTION
        postfix_expression INC_OP
        postfix_expression DEC_OP
    integer_expression :
        expression
    function_call :
        function_call_or_method
    function_call_or_method :
        function_call_generic
    function_call_generic :
        function_call_header_with_parameters RIGHT_PAREN
        function_call_header_no_parameters RIGHT_PAREN
    function_call_header_no_parameters :
        function_call_header VOID
        function_call_header
    function_call_header_with_parameters :
        function_call_header assignment_expression
        function_call_header_with_parameters COMMA assignment_expression
    function_call_header :
        function_identifier LEFT_PAREN
    function_identifier :
        type_specifier
        postfix_expression
    unary_expression :
        postfix_expression
        INC_OP unary_expression
        DEC_OP unary_expression
        unary_operator unary_expression
    unary_operator :
        PLUS
        DASH
        BANG
        TILDE
    multiplicative_expression :
        unary_expression
        multiplicative_expression STAR unary_expression
        multiplicative_expression SLASH unary_expression
        multiplicative_expression PERCENT unary_expression
    additive_expression :
        multiplicative_expression
        additive_expression PLUS multiplicative_expression
        additive_expression DASH multiplicative_expression
    shift_expression :
        additive_expression
        shift_expression LEFT_OP additive_expression
        shift_expression RIGHT_OP additive_expression
    relational_expression :
        shift_expression
        relational_expression LEFT_ANGLE shift_expression
        relational_expression RIGHT_ANGLE shift_expression
        relational_expression LE_OP shift_expression
        relational_expression GE_OP shift_expression
    equality_expression :
        relational_expression
        equality_expression EQ_OP relational_expression
        equality_expression NE_OP relational_expression
    and_expression :
        equality_expression
        and_expression AMPERSAND equality_expression
    exclusive_or_expression :
        and_expression
        exclusive_or_expression CARET and_expression
    inclusive_or_expression :
        exclusive_or_expression
        inclusive_or_expression VERTICAL_BAR exclusive_or_expression
    logical_and_expression :
        inclusive_or_expression
        logical_and_expression AND_OP inclusive_or_expression
    logical_xor_expression :
        logical_and_expression
        logical_xor_expression XOR_OP logical_and_expression
    logical_or_expression :
        logical_xor_expression
        logical_or_expression OR_OP logical_xor_expression
    conditional_expression :
        logical_or_expression
        logical_or_expression QUESTION expression COLON assignment_expression
    assignment_expression :
        conditional_expression
        unary_expression assignment_operator assignment_expression
    assignment_operator :
        EQUAL
        MUL_ASSIGN
        DIV_ASSIGN
        MOD_ASSIGN
        ADD_ASSIGN
        SUB_ASSIGN
        LEFT_ASSIGN
        RIGHT_ASSIGN
        AND_ASSIGN
        XOR_ASSIGN
        OR_ASSIGN
    expression :
        assignment_expression
        expression COMMA assignment_expression
    constant_expression :
        conditional_expression
    declaration :
        function_prototype SEMICOLON
        init_declarator_list SEMICOLON
        PRECISION precision_qualifier type_specifier SEMICOLON
        type_qualifier IDENTIFIER LEFT_BRACE struct_declaration_list RIGHT_BRACE SEMICOLON
        type_qualifier IDENTIFIER LEFT_BRACE struct_declaration_list RIGHT_BRACE IDENTIFIER
        SEMICOLON
        type_qualifier IDENTIFIER LEFT_BRACE struct_declaration_list RIGHT_BRACE IDENTIFIER
        array_specifier SEMICOLON
        type_qualifier SEMICOLON
        type_qualifier IDENTIFIER SEMICOLON
        type_qualifier IDENTIFIER identifier_list SEMICOLON
    identifier_list :
        COMMA IDENTIFIER
        identifier_list COMMA IDENTIFIER
    function_prototype :
        function_declarator RIGHT_PAREN
    function_declarator :
        function_header
        function_header_with_parameters
    function_header_with_parameters :
        function_header parameter_declaration
        function_header_with_parameters COMMA parameter_declaration
    function_header :
        fully_specified_type IDENTIFIER LEFT_PAREN
    parameter_declarator :
        type_specifier IDENTIFIER
        type_specifier IDENTIFIER array_specifier
    parameter_declaration :
        type_qualifier parameter_declarator
        parameter_declarator
        type_qualifier parameter_type_specifier
        parameter_type_specifier
    parameter_type_specifier :
        type_specifier
    init_declarator_list :
        single_declaration
        init_declarator_list COMMA IDENTIFIER
        init_declarator_list COMMA IDENTIFIER array_specifier
        init_declarator_list COMMA IDENTIFIER array_specifier EQUAL initializer
        init_declarator_list COMMA IDENTIFIER EQUAL initializer
    single_declaration :
        fully_specified_type
        fully_specified_type IDENTIFIER
        fully_specified_type IDENTIFIER array_specifier
        fully_specified_type IDENTIFIER array_specifier EQUAL initializer
        fully_specified_type IDENTIFIER EQUAL initializer
    fully_specified_type :
        type_specifier
        type_qualifier type_specifier
    invariant_qualifier :
        INVARIANT
    interpolation_qualifier :
        SMOOTH
        FLAT
        NOPERSPECTIVE
    layout_qualifier :
        LAYOUT LEFT_PAREN layout_qualifier_id_list RIGHT_PAREN
    layout_qualifier_id_list :
        layout_qualifier_id
        layout_qualifier_id_list COMMA layout_qualifier_id
    layout_qualifier_id :
        IDENTIFIER
        IDENTIFIER EQUAL constant_expression
        SHARED
    precise_qualifier :
        PRECISE
    type_qualifier :
        single_type_qualifier
        type_qualifier single_type_qualifier
    single_type_qualifier :
        storage_qualifier
        layout_qualifier
        precision_qualifier
        interpolation_qualifier
        invariant_qualifier
        precise_qualifier
    storage_qualifier :
        CONST
        IN
        OUT
        INOUT
        CENTROID
        PATCH
        SAMPLE
        UNIFORM
        BUFFER
        SHARED
        COHERENT
        VOLATILE
        RESTRICT
        READONLY
        WRITEONLY
        SUBROUTINE
        SUBROUTINE LEFT_PAREN type_name_list RIGHT_PAREN
    type_name_list :
        TYPE_NAME
        type_name_list COMMA TYPE_NAME
    type_specifier :
        type_specifier_nonarray
        type_specifier_nonarray array_specifier
    array_specifier :
        LEFT_BRACKET RIGHT_BRACKET
        LEFT_BRACKET constant_expression RIGHT_BRACKET
        array_specifier LEFT_BRACKET RIGHT_BRACKET
        array_specifier LEFT_BRACKET constant_expression RIGHT_BRACKET
    type_specifier_nonarray :
        VOID
        FLOAT
        DOUBLE
        INT
        UINT
        BOOL
        VEC2
        VEC3
        VEC4
        DVEC2
        DVEC3
        DVEC4
        BVEC2
        BVEC3
        BVEC4
        IVEC2
        IVEC3
        IVEC4
        UVEC2
        UVEC3
        UVEC4
        MAT2
        MAT3
        MAT4
        MAT2X2
        MAT2X3
        MAT2X4
        MAT3X2
        MAT3X3
        MAT3X4
        MAT4X2
        MAT4X3
        MAT4X4
        DMAT2
        DMAT3
        DMAT4
        DMAT2X2
        DMAT2X3
        DMAT2X4
        DMAT3X2
        DMAT3X3
        DMAT3X4
        DMAT4X2
        DMAT4X3
        DMAT4X4
        ATOMIC_UINT
        SAMPLER2D
        SAMPLER3D
        SAMPLERCUBE
        SAMPLER2DSHADOW
        SAMPLERCUBESHADOW
        SAMPLER2DARRAY
        SAMPLER2DARRAYSHADOW
        SAMPLERCUBEARRAY
        SAMPLERCUBEARRAYSHADOW
        ISAMPLER2D
        ISAMPLER3D
        ISAMPLERCUBE
        ISAMPLER2DARRAY
        ISAMPLERCUBEARRAY
        USAMPLER2D
        USAMPLER3D
        USAMPLERCUBE
        USAMPLER2DARRAY
        USAMPLERCUBEARRAY
        SAMPLER1D
        SAMPLER1DSHADOW
        SAMPLER1DARRAY
        SAMPLER1DARRAYSHADOW
        ISAMPLER1D
        ISAMPLER1DARRAY
        USAMPLER1D
        USAMPLER1DARRAY
        SAMPLER2DRECT
        SAMPLER2DRECTSHADOW
        ISAMPLER2DRECT
        USAMPLER2DRECT
        SAMPLERBUFFER
        ISAMPLERBUFFER
        USAMPLERBUFFER
        SAMPLER2DMS
        ISAMPLER2DMS
        USAMPLER2DMS
        SAMPLER2DMSARRAY
        ISAMPLER2DMSARRAY
        USAMPLER2DMSARRAY
        IMAGE2D
        IIMAGE2D
        UIMAGE2D
        IMAGE3D
        IIMAGE3D
        UIMAGE3D
        IMAGECUBE
        IIMAGECUBE
        UIMAGECUBE
        IMAGEBUFFER
        IIMAGEBUFFER
        UIMAGEBUFFER
        IMAGE1D
        IIMAGE1D
        UIMAGE1D
        IMAGE1DARRAY
        IIMAGE1DARRAY
        UIMAGE1DARRAY
        IMAGE2DRECT
        IIMAGE2DRECT
        UIMAGE2DRECT
        IMAGE2DARRAY
        IIMAGE2DARRAY
        UIMAGE2DARRAY
        IMAGECUBEARRAY
        IIMAGECUBEARRAY
        UIMAGECUBEARRAY
        IMAGE2DMS
        IIMAGE2DMS
        UIMAGE2DMS
        IMAGE2DMSARRAY
        IIMAGE2DMSARRAY
        UIMAGE2DMSARRAY
        struct_specifier
        TYPE_NAME
    precision_qualifier :
        HIGH_PRECISION
        MEDIUM_PRECISION
        LOW_PRECISION
    struct_specifier :
        STRUCT IDENTIFIER LEFT_BRACE struct_declaration_list RIGHT_BRACE
        STRUCT LEFT_BRACE struct_declaration_list RIGHT_BRACE
    struct_declaration_list :
        struct_declaration
        struct_declaration_list struct_declaration
    struct_declaration :
        type_specifier struct_declarator_list SEMICOLON
        type_qualifier type_specifier struct_declarator_list SEMICOLON
    struct_declarator_list :
        struct_declarator
        struct_declarator_list COMMA struct_declarator
    struct_declarator :
        IDENTIFIER
        IDENTIFIER array_specifier
    initializer :
        assignment_expression
        LEFT_BRACE initializer_list RIGHT_BRACE
        LEFT_BRACE initializer_list COMMA RIGHT_BRACE
    initializer_list :
        initializer
        initializer_list COMMA initializer
    declaration_statement :
        declaration
    statement :
        compound_statement
        simple_statement
    simple_statement :
        declaration_statement
        expression_statement
        selection_statement
        switch_statement
        case_label
        iteration_statement
        jump_statement
    compound_statement :
        LEFT_BRACE RIGHT_BRACE
        LEFT_BRACE statement_list RIGHT_BRACE
    statement_no_new_scope :
        compound_statement_no_new_scope
        simple_statement
    compound_statement_no_new_scope :
        LEFT_BRACE RIGHT_BRACE
        LEFT_BRACE statement_list RIGHT_BRACE
    statement_list :
        statement
        statement_list statement
    expression_statement :
        SEMICOLON
        expression SEMICOLON
    selection_statement :
        IF LEFT_PAREN expression RIGHT_PAREN selection_rest_statement
    selection_rest_statement :
        statement ELSE statement
        statement
    condition :
        expression
        fully_specified_type IDENTIFIER EQUAL initializer
    switch_statement :
        SWITCH LEFT_PAREN expression RIGHT_PAREN LEFT_BRACE switch_statement_list
        RIGHT_BRACE
    switch_statement_list :
        /* nothing */
        statement_list
    case_label :
        CASE expression COLON
        DEFAULT COLON
    iteration_statement :
        WHILE LEFT_PAREN condition RIGHT_PAREN statement_no_new_scope
        DO statement WHILE LEFT_PAREN expression RIGHT_PAREN SEMICOLON
        FOR LEFT_PAREN for_init_statement for_rest_statement RIGHT_PAREN statement_no_new_scope
    for_init_statement :
        expression_statement
        declaration_statement
    conditionopt :
        condition
        /* empty */
    for_rest_statement :
        conditionopt SEMICOLON
        conditionopt SEMICOLON expression
    jump_statement :
        CONTINUE SEMICOLON
        BREAK SEMICOLON
        RETURN SEMICOLON
        RETURN expression SEMICOLON
        DISCARD SEMICOLON // Fragment shader only
    translation_unit :
        external_declaration
        translation_unit external_declaration
    external_declaration :
        function_definition
        declaration
        SEMICOLON
    function_definition :
        function_prototype compound_statement_no_new_scope

GLSLangSpec.4.60.lark_ebnf

    variable_identifier : IDENTIFIER
    primary_expression : variable_identifier
        | INTCONSTANT
        | UINTCONSTANT
        | FLOATCONSTANT
        | BOOLCONSTANT
        | DOUBLECONSTANT
        | LEFT_PAREN expression RIGHT_PAREN
    postfix_expression : primary_expression
        | postfix_expression LEFT_BRACKET integer_expression RIGHT_BRACKET
        | function_call
        | postfix_expression DOT FIELD_SELECTION
        | postfix_expression INC_OP
        | postfix_expression DEC_OP
    integer_expression : expression
    function_call : function_call_or_method
    function_call_or_method : function_call_generic
    function_call_generic : function_call_header_with_parameters RIGHT_PAREN
        | function_call_header_no_parameters RIGHT_PAREN
    function_call_header_no_parameters : function_call_header VOID
        | function_call_header
    function_call_header_with_parameters : function_call_header assignment_expression
        | function_call_header_with_parameters COMMA assignment_expression
    function_call_header : function_identifier LEFT_PAREN
    function_identifier : type_specifier
        | postfix_expression
    unary_expression : postfix_expression
        | INC_OP unary_expression
        | DEC_OP unary_expression
        | unary_operator unary_expression
    unary_operator : PLUS
        | DASH
        | BANG
        | TILDE
    multiplicative_expression : unary_expression
        | multiplicative_expression STAR unary_expression
        | multiplicative_expression SLASH unary_expression
        | multiplicative_expression PERCENT unary_expression
    additive_expression : multiplicative_expression
        | additive_expression PLUS multiplicative_expression
        | additive_expression DASH multiplicative_expression
    shift_expression : additive_expression
        | shift_expression LEFT_OP additive_expression
        | shift_expression RIGHT_OP additive_expression
    relational_expression : shift_expression
        | relational_expression LEFT_ANGLE shift_expression
        | relational_expression RIGHT_ANGLE shift_expression
        | relational_expression LE_OP shift_expression
        | relational_expression GE_OP shift_expression
    equality_expression : relational_expression
        | equality_expression EQ_OP relational_expression
        | equality_expression NE_OP relational_expression
    and_expression : equality_expression
        | and_expression AMPERSAND equality_expression
    exclusive_or_expression : and_expression
        | exclusive_or_expression CARET and_expression
    inclusive_or_expression : exclusive_or_expression
        | inclusive_or_expression VERTICAL_BAR exclusive_or_expression
    logical_and_expression : inclusive_or_expression
        | logical_and_expression AND_OP inclusive_or_expression
    logical_xor_expression : logical_and_expression
        | logical_xor_expression XOR_OP logical_and_expression
    logical_or_expression : logical_xor_expression
        | logical_or_expression OR_OP logical_xor_expression
    conditional_expression : logical_or_expression
        | logical_or_expression QUESTION expression COLON assignment_expression
    assignment_expression : conditional_expression
        | unary_expression assignment_operator assignment_expression
    assignment_operator : EQUAL
        | MUL_ASSIGN
        | DIV_ASSIGN
        | MOD_ASSIGN
        | ADD_ASSIGN
        | SUB_ASSIGN
        | LEFT_ASSIGN
        | RIGHT_ASSIGN
        | AND_ASSIGN
        | XOR_ASSIGN
        | OR_ASSIGN
    expression : assignment_expression
        | expression COMMA assignment_expression
    constant_expression : conditional_expression
    declaration : function_prototype SEMICOLON
        | init_declarator_list SEMICOLON
        | PRECISION precision_qualifier type_specifier SEMICOLON
        | type_qualifier IDENTIFIER LEFT_BRACE struct_declaration_list RIGHT_BRACE SEMICOLON
        | type_qualifier IDENTIFIER LEFT_BRACE struct_declaration_list RIGHT_BRACE IDENTIFIER
        | SEMICOLON
        | type_qualifier IDENTIFIER LEFT_BRACE struct_declaration_list RIGHT_BRACE IDENTIFIER
        | array_specifier SEMICOLON
        | type_qualifier SEMICOLON
        | type_qualifier IDENTIFIER SEMICOLON
        | type_qualifier IDENTIFIER identifier_list SEMICOLON
    identifier_list : COMMA IDENTIFIER
        | identifier_list COMMA IDENTIFIER
    function_prototype : function_declarator RIGHT_PAREN
    function_declarator : function_header
        | function_header_with_parameters
    function_header_with_parameters : function_header parameter_declaration
        | function_header_with_parameters COMMA parameter_declaration
    function_header : fully_specified_type IDENTIFIER LEFT_PAREN
    parameter_declarator : type_specifier IDENTIFIER
        | type_specifier IDENTIFIER array_specifier
    parameter_declaration : type_qualifier parameter_declarator
        | parameter_declarator
        | type_qualifier parameter_type_specifier
        | parameter_type_specifier
    parameter_type_specifier : type_specifier
    init_declarator_list : single_declaration
        | init_declarator_list COMMA IDENTIFIER
        | init_declarator_list COMMA IDENTIFIER array_specifier
        | init_declarator_list COMMA IDENTIFIER array_specifier EQUAL initializer
        | init_declarator_list COMMA IDENTIFIER EQUAL initializer
    single_declaration : fully_specified_type
        | fully_specified_type IDENTIFIER
        | fully_specified_type IDENTIFIER array_specifier
        | fully_specified_type IDENTIFIER array_specifier EQUAL initializer
        | fully_specified_type IDENTIFIER EQUAL initializer
    fully_specified_type : type_specifier
        | type_qualifier type_specifier
    invariant_qualifier : INVARIANT
    interpolation_qualifier : SMOOTH
        | FLAT
        | NOPERSPECTIVE
    layout_qualifier : LAYOUT LEFT_PAREN layout_qualifier_id_list RIGHT_PAREN
    layout_qualifier_id_list : layout_qualifier_id
        | layout_qualifier_id_list COMMA layout_qualifier_id
    layout_qualifier_id : IDENTIFIER
        | IDENTIFIER EQUAL constant_expression
        | SHARED
    precise_qualifier : PRECISE
    type_qualifier : single_type_qualifier
        | type_qualifier single_type_qualifier
    single_type_qualifier : storage_qualifier
        | layout_qualifier
        | precision_qualifier
        | interpolation_qualifier
        | invariant_qualifier
        | precise_qualifier
    storage_qualifier : CONST
        | IN
        | OUT
        | INOUT
        | CENTROID
        | PATCH
        | SAMPLE
        | UNIFORM
        | BUFFER
        | SHARED
        | COHERENT
        | VOLATILE
        | RESTRICT
        | READONLY
        | WRITEONLY
        | SUBROUTINE
        | SUBROUTINE LEFT_PAREN type_name_list RIGHT_PAREN
    type_name_list : TYPE_NAME
        | type_name_list COMMA TYPE_NAME
    type_specifier : type_specifier_nonarray
        | type_specifier_nonarray array_specifier
    array_specifier : LEFT_BRACKET RIGHT_BRACKET
        | LEFT_BRACKET constant_expression RIGHT_BRACKET
        | array_specifier LEFT_BRACKET RIGHT_BRACKET
        | array_specifier LEFT_BRACKET constant_expression RIGHT_BRACKET
    type_specifier_nonarray : VOID
        | FLOAT
        | DOUBLE
        | INT
        | UINT
        | BOOL
        | VEC2
        | VEC3
        | VEC4
        | DVEC2
        | DVEC3
        | DVEC4
        | BVEC2
        | BVEC3
        | BVEC4
        | IVEC2
        | IVEC3
        | IVEC4
        | UVEC2
        | UVEC3
        | UVEC4
        | MAT2
        | MAT3
        | MAT4
        | MAT2X2
        | MAT2X3
        | MAT2X4
        | MAT3X2
        | MAT3X3
        | MAT3X4
        | MAT4X2
        | MAT4X3
        | MAT4X4
        | DMAT2
        | DMAT3
        | DMAT4
        | DMAT2X2
        | DMAT2X3
        | DMAT2X4
        | DMAT3X2
        | DMAT3X3
        | DMAT3X4
        | DMAT4X2
        | DMAT4X3
        | DMAT4X4
        | ATOMIC_UINT
        | SAMPLER2D
        | SAMPLER3D
        | SAMPLERCUBE
        | SAMPLER2DSHADOW
        | SAMPLERCUBESHADOW
        | SAMPLER2DARRAY
        | SAMPLER2DARRAYSHADOW
        | SAMPLERCUBEARRAY
        | SAMPLERCUBEARRAYSHADOW
        | ISAMPLER2D
        | ISAMPLER3D
        | ISAMPLERCUBE
        | ISAMPLER2DARRAY
        | ISAMPLERCUBEARRAY
        | USAMPLER2D
        | USAMPLER3D
        | USAMPLERCUBE
        | USAMPLER2DARRAY
        | USAMPLERCUBEARRAY
        | SAMPLER1D
        | SAMPLER1DSHADOW
        | SAMPLER1DARRAY
        | SAMPLER1DARRAYSHADOW
        | ISAMPLER1D
        | ISAMPLER1DARRAY
        | USAMPLER1D
        | USAMPLER1DARRAY
        | SAMPLER2DRECT
        | SAMPLER2DRECTSHADOW
        | ISAMPLER2DRECT
        | USAMPLER2DRECT
        | SAMPLERBUFFER
        | ISAMPLERBUFFER
        | USAMPLERBUFFER
        | SAMPLER2DMS
        | ISAMPLER2DMS
        | USAMPLER2DMS
        | SAMPLER2DMSARRAY
        | ISAMPLER2DMSARRAY
        | USAMPLER2DMSARRAY
        | IMAGE2D
        | IIMAGE2D
        | UIMAGE2D
        | IMAGE3D
        | IIMAGE3D
        | UIMAGE3D
        | IMAGECUBE
        | IIMAGECUBE
        | UIMAGECUBE
        | IMAGEBUFFER
        | IIMAGEBUFFER
        | UIMAGEBUFFER
        | IMAGE1D
        | IIMAGE1D
        | UIMAGE1D
        | IMAGE1DARRAY
        | IIMAGE1DARRAY
        | UIMAGE1DARRAY
        | IMAGE2DRECT
        | IIMAGE2DRECT
        | UIMAGE2DRECT
        | IMAGE2DARRAY
        | IIMAGE2DARRAY
        | UIMAGE2DARRAY
        | IMAGECUBEARRAY
        | IIMAGECUBEARRAY
        | UIMAGECUBEARRAY
        | IMAGE2DMS
        | IIMAGE2DMS
        | UIMAGE2DMS
        | IMAGE2DMSARRAY
        | IIMAGE2DMSARRAY
        | UIMAGE2DMSARRAY
        | struct_specifier
        | TYPE_NAME
    precision_qualifier : HIGH_PRECISION
        | MEDIUM_PRECISION
        | LOW_PRECISION
    struct_specifier : STRUCT IDENTIFIER LEFT_BRACE struct_declaration_list RIGHT_BRACE
        | STRUCT LEFT_BRACE struct_declaration_list RIGHT_BRACE
    struct_declaration_list : struct_declaration
        | struct_declaration_list struct_declaration
    struct_declaration : type_specifier struct_declarator_list SEMICOLON
        | type_qualifier type_specifier struct_declarator_list SEMICOLON
    struct_declarator_list : struct_declarator
        | struct_declarator_list COMMA struct_declarator
    struct_declarator : IDENTIFIER
        | IDENTIFIER array_specifier
    initializer : assignment_expression
        | LEFT_BRACE initializer_list RIGHT_BRACE
        | LEFT_BRACE initializer_list COMMA RIGHT_BRACE
    initializer_list : initializer
        | initializer_list COMMA initializer
    declaration_statement : declaration
    statement : compound_statement
        | simple_statement
    simple_statement : declaration_statement
        | expression_statement
        | selection_statement
        | switch_statement
        | case_label
        | iteration_statement
        | jump_statement
    compound_statement : LEFT_BRACE RIGHT_BRACE
        | LEFT_BRACE statement_list RIGHT_BRACE
    statement_no_new_scope : compound_statement_no_new_scope
        | simple_statement
    compound_statement_no_new_scope : LEFT_BRACE RIGHT_BRACE
        | LEFT_BRACE statement_list RIGHT_BRACE
    statement_list : statement
        | statement_list statement
    expression_statement : SEMICOLON
        | expression SEMICOLON
    selection_statement : IF LEFT_PAREN expression RIGHT_PAREN selection_rest_statement
    selection_rest_statement : statement ELSE statement
        | statement
    condition : expression
        | fully_specified_type IDENTIFIER EQUAL initializer
    switch_statement : SWITCH LEFT_PAREN expression RIGHT_PAREN LEFT_BRACE switch_statement_list
        | RIGHT_BRACE
    switch_statement_list : /* nothing */
        | statement_list
    case_label : CASE expression COLON
        | DEFAULT COLON
    iteration_statement : WHILE LEFT_PAREN condition RIGHT_PAREN statement_no_new_scope
        | DO statement WHILE LEFT_PAREN expression RIGHT_PAREN SEMICOLON
        | FOR LEFT_PAREN for_init_statement for_rest_statement RIGHT_PAREN statement_no_new_scope
    for_init_statement : expression_statement
        | declaration_statement
    conditionopt : condition
        | /* empty */
    for_rest_statement : conditionopt SEMICOLON
        | conditionopt SEMICOLON expression
    jump_statement : CONTINUE SEMICOLON
        | BREAK SEMICOLON
        | RETURN SEMICOLON
        | RETURN expression SEMICOLON
        | DISCARD SEMICOLON // Fragment shader only
    translation_unit : external_declaration
        | translation_unit external_declaration
    external_declaration : function_definition
        | declaration
        | SEMICOLON
    function_definition : function_prototype compound_statement_no_new_scope

Now, you tell me, which one is easier to understand and work with (improving, tweaking, ...)?

But I'm worried that it's not clear enough that each line is a different option.

@erezsh : Well, my background is a lot of years coding on c/c++ and when I started using python many years ago I thought I wouldn't survive without braces... nowadays is the other way around, each time i see redundant tokens like braces I become sad ;)
@whitten : Just for the record, I think that particular syntax is the worst from the whole set of proposals (worst=less elegant and less cleaner)
NS: I haven't checked correctness (just a fast adaptation), so not sure if you'd transform this:
conditionopt :
    condition
    /* empty */

like:
conditionopt : condition
    /* empty */

nor this:
switch_statement_list :
    /* nothing */
    statement_list

like:
switch_statement_list : /* nothing */
   | statement_list

guess that's just wrong syntax...

Ideally, you'd be able to express the same rule on different ways, for instance:
flow_stmt1: break_stmt | continue_stmt | return_stmt | raise_stmt | yield_stmt

flow_stmt2:
    break_stmt | continue_stmt | return_stmt | raise_stmt | yield_stmt

flow_stmt3:
    break_stmt
    continue_stmt
    return_stmt
    raise_stmt
    yield_stmt

So, flow_stmt1==flow_stmt2==flow_stmt3

Yep, that's what I was planning.

I suggest one more way how to write multiple right-sides of the rule.
foo: bar1 | bar2

foo: bar1
foo: bar2

The main reason for such format (currently, it is rejected because of the duplicity of the left-side) is that you can easilly add comments with explanation for every line. I already have a (naive) preprocessor for that.

@marxsk Line comments are already possible
>>> from lark import Lark
>>> p=Lark("""
...				// Comment
...     start: "a"
...             // Another comment
...          | "b"
...             // And C
...          | "c"
... """)
>>>
>>> p.parse('c'
... )

Could the lark grammar be reimplemented in Lark?

@gideongrinberg It kinda is. We have a mirror that should match exactly what the actual parser accepts: lark.lark, but that is not what is being used internally. That is still being parsed with the lalr parser, but the rules are encoded here

I just had a crazy thought. What if Lark accepted a grammar_grammar argument, which would describe the syntax for the grammar? (it should work as long as the structure is the same as lark.lark)

@erezsh That actually sounds like a good idea. I would suggest that the argument takes a Lark instance (e.g. Something that has a .parse(str) -> Tree method). This would allow the grammar to use a Transformer to fix things that don't exactly match between EBNF syntax. This system would allow us to easily use EBNF grammars in a different syntax. (The current built-in grammar would have to stay ofcourse)

@MegaIng It would be interesting to try! Though seems like it's just a single function, parse(str) -> Tree.
So passing grammar_parser = Lark.open('lark.lark', ...).parse will have no effect, other than extra processing.
It will require a bit of work, because currently there is a deviation of structure between lark.lark and the native grammar loader.

I just had a crazy thought. What if Lark accepted a grammar_grammar argument, which would describe the syntax for the grammar? (it should work as long as the structure is the same as lark.lark)

We need standards. That's probably a bad idea in case I wanted to read other's code
BUT it could be a good idea because it allows people who don't know Lark's grammar, but instead something like ANTLR, to be able to write grammar. We could have a libraries of possible default grammar-grammar-grammars.

@ThatXliner Well, if they produce a Tree that corresponds to lark.lark, I imagine the reconstructor should be able to automatically generate a working lark grammar. In theory, at least.

@brupelo
Just my 2 cents about the format of the alternatives that I haven't seen mentioned explicitly.
rule: SOME_TERMINAL some_rule some_other_rule ANOTHER_TERMINAL
        | TERMINAL3

Is actually implying parenthesis by using the line break.  The above is actually.
rule: (SOME_TERMINAL some_rule some_other_rule ANOTHER_TERMINAL)     | TERMINAL3

I can understand the thinking that following the rule declaration having the rest of the line empty means that the definition of the rule is an indented block. This is very YAML-like.
Note: I really don't like the ANTLR :  |  ; notation and I used ANTLER before it was converted to JAVA.
Note: about notation, regardless of the multiline format used to define a rule I think it is imperative that the colon always be used to indicate the preceding string is either a rule or terminal.
If it is true that currently having nothing on the line after a rule declaration is an error then allowing the
grammar = '''
    rule :
        rule1
        rule2
'''

format could be okay. I think that being explicit about what the alternatives are
   rule:
            | rule1
            | rule2

matches the YAML list construct where list item starts with "- " and in this case a rule alternative would start with '| ".
To me that is a pretty clear meaning where each alternative is listed on a single line (which implies parenthesis) and has a preceeding indent followed by the alternative tag "| ". It would be one more extension to EBNF that Lark adds.
If the above was added along with a predefined EMPTY terminal and documentation reflected the use of EMPTY when that is what you mean then having nothing after the colon on the line shouldn't be confusing.
Now if Lark supported inline rule definitions (even more like YAML) I would not be happy.
// this would be very bad   :-)
rule:
    | rule2: TERMINAL1 TERMINAL2
    | rule3: TERMINAL3 rule2


feat(api): Citadel rewards

Background
Support rewards with added/paid filters for citadel. Currently possible to fill skeleton and utilize api sdk method. But should go with follow up, after this ticket https://github.com/Citadel-DAO/citadel-contracts/issues/57 will be closed. Probably sdk should go first, and then api.
Tasks

[x] Support rewards list in api
[ ] Extend with _dataTypeHash in rewards events.

https://github.com/Badger-Finance/badger-api/pull/1169

https://github.com/Badger-Finance/badger-sdk/pull/152

https://github.com/Badger-Finance/badger-api/pull/1179


Does not work in IE 11.

I have integrated this package in my simple project. For chrome, works well. but does not work in IE 11. I have got following error.
SCRIPT1003**: Excepted ':'** vue-page-transition.common.js (91, 1)
Please help me. Regards

Just had the same issue! Is there any resolution on this?

Just had the same issue! Is there any resolution on this?

We had to rely on built-in vue page transition because it was breaking our whole project in IE11. So we removed it unfortunately

Me too, Just removed

Same issue for me too, any news on this?

why is this closed? It's broken on ie11.

If you still need something working on IE11, please use this fork https://github.com/matteocacciola/vue-page-transition


EAS Build Error: Could not find or load main class org.gradle.wrapper.GradleWrapperMain

Build/Submit details page URL
https://expo.dev/accounts/euterpesolutions/projects/quantify-mobile/builds/9b13e024-5e69-44be-8264-c7bc46380045
Summary
When running a eas build for Android my organization receives the following error
Running './gradlew :app:bundleRelease' in /home/expo/workingdir/build/frontend/android

[stderr] Error: Could not find or load main class org.gradle.wrapper.GradleWrapperMain

Error: Gradle build failed with unknown error. Please see logs for the "Run gradlew" phase.

Managed or bare?
Managed
Environment
expo-env-info 1.0.4 environment info:
    System:
      OS: Linux 5.18 Fedora Linux 36 (Workstation Edition)
      Shell: 5.1.16 - /bin/bash
    Binaries:
      Node: 14.19.0 - /usr/bin/node
      npm: 6.14.16 - /usr/bin/npm
    npmPackages:
      expo: ^44.0.0 => 44.0.6
      react: 17.0.1 => 17.0.1
      react-dom: 17.0.1 => 17.0.1
      react-native: 0.64.3 => 0.64.3
      react-native-web: 0.17.1 => 0.17.1
    npmGlobalPackages:
      eas-cli: 0.54.1
      expo-cli: 5.4.9
    Expo Workflow: bare

Error output
✔ Select platform › Android
Error: Cannot find module 'expo-dev-client/package.json'
Require stack:
- /home/lawton/Development/quantify-mobile/frontend/noop.js
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:902:15)
    at resolveFileName (/usr/local/lib/node_modules/eas-cli/node_modules/resolve-from/index.js:29:39)
    at resolveFrom (/usr/local/lib/node_modules/eas-cli/node_modules/resolve-from/index.js:43:9)
    at module.exports (/usr/local/lib/node_modules/eas-cli/node_modules/resolve-from/index.js:46:47)
    at isExpoDevClientInstalledAsync (/usr/local/lib/node_modules/eas-cli/build/build/utils/devClient.js:68:36)
    at ensureExpoDevClientInstalledForDevClientBuildsAsync (/usr/local/lib/node_modules/eas-cli/build/build/utils/devClient.js:18:15)
    at runBuildAndSubmitAsync (/usr/local/lib/node_modules/eas-cli/build/build/runBuildAndSubmit.js:47:79)
    at async Build.runAsync (/usr/local/lib/node_modules/eas-cli/build/commands/build/index.js:20:9)
    at async Build._run (/usr/local/lib/node_modules/eas-cli/node_modules/@oclif/core/lib/command.js:67:22)
    at async Config.runCommand (/usr/local/lib/node_modules/eas-cli/node_modules/@oclif/core/lib/config/config.js:268:25) {
  code: 'MODULE_NOT_FOUND',
  requireStack: [ '/home/lawton/Development/quantify-mobile/frontend/noop.js' ]
}
- Linking to project @euterpesolutions/quantify-mobile
✔ Linked to project @euterpesolutions/quantify-mobile (https://expo.dev/accounts/euterpesolutions/projects/quantify-mobile)
Specifying "android.package" in app.json is deprecated for bare workflow projects.
EAS Build depends only on the value in the native code. Please remove the deprecated configuration.
✔ Using remote Android credentials (Expo server)
✔ Using Keystore from configuration: Build Credentials vPVCS6IbKG (default)

Compressing project files and uploading to EAS Build. Learn more: https://expo.fyi/eas-build-archive
- Compressing project files
- Uploading to EAS Build (0 / 507 KB)
✔ Uploaded to EAS
Starting Android build

Build details: https://expo.dev/accounts/euterpesolutions/projects/quantify-mobile/builds/594a35a8-bd90-4e4d-a6dd-180ba46ef4e4

Waiting for build to complete. You can press Ctrl+C to exit.
- Waiting for build to complete.
✖ Build failed

🤖 Android build failed:
Gradle build failed with unknown error. Please see logs for the "Run gradlew" phase.

Reproducible demo or steps to reproduce from a blank project
eas build

When running a eas build for Android my organization receives the following error

that error means that your gradle wrapper is missing from your repo, most likely it's gitignored

Managed or bare?
Managed

but expo-env-info output below is detecting it as a bare project, so you ejected at some point, either delete android and ios directories or add them to the gitignore

Reproducible demo or steps to reproduce from a blank project
eas build

If you don't know a how to reproduce the issue just say that, providing false information about the issue wastes everyone's time even in cases like this where it's obvious that you did not run those reproduction steps on a blank project


Use babel-polyfill

Is there a reason this setup uses babel-runtime over babel-polyfill?
As per this issue https://github.com/babel/babel/issues/3825, babel-polyfill is most useful for applications, so that it can have as close as possible to a real ES6 environment, since a limitation of
babel-runtime is that it does not work with certain parts of ES6, such as certain instance methods.

Thanks for reminding me of the reason why I disabled runtime helpers and polyfills in previous version. So the best solution now is still to disable it and let user handle the polyfill stuffs?

I think it's best to have a smart default with the option of disabling it (or adding to it).
The reason I opened this issue was because Nuxt uses this plugin for babel presets (https://github.com/nuxt/nuxt.js/issues/271), but since it doesn't provide the original webpack configuration (like Vue templates) it can be cumbersome to modify the entry presets.
If babel-polyfill is recommended for applications, and this plugin is used for app starter templates, what there be a downside of having it as the default?
I ran into a problem where a plugin that I was creating was using babel runtime-helpers,  but when I tried to check if a function was an es6 generator or async function, I started getting errors. I wanted to refrain from using babel-polyfill for it, since I saw that it was recommended that they use the runtime helpers and not pollute the global scope. But I will look into providing specific polyfills to babel-runtime in the meantime.

@alidcastano babel-polyfill should be included in webpack entry not here, babel preset can't do this anyways.

Ok, that's true. I will go ahead and close this issue then and open one instead on the Nuxt repo.


Fix heightfield shape instance passing

In previous commit I introduced static to fix compiling issue while prototyping, and accidentally left it in. It works, but only for the first created shape. All other height fields assume the shape of the first one.
The height field shape is created just the same as any other shape and can reuse same code.

Thanks!


Many things go wrong in connectng to a postgres db

Issue Type: Bug
HI,
It is my first encounter with Azure data studio and many things go wrong:
1- I want to add a connection via browse -> azure. It asks me to choose my azure account in a web browser which is ok, but then it says: Failed to load some Azure accounts. Error: Failed to get credential for account 4e06eaf7-38e3-41de-b0fe-fab7d10f4492. Please go to the accounts dialog and refresh the account. Refreshing the account does the same thing as before and I end in a loop of errors
2- connecting manually to a postgres DB after installing the extension also fails : An unexpected error occurred while connecting. Please file an issue with the title 'Unexpected Error Occurred while Connecting' and include the log file C:\Users\owin.gruters\AppData\Roaming\azuredatastudio\logs\20210616T120727\renderer1.log. There is unfortunaltely no place to include the log in this tool
For both restarting does not work
3- the tool for reporting this issue is rediculous. There is too many text and I have to open github. Why not just redirect immediately to github wthout that intermediate screen?
renderer1.log
Azure Data Studio version: azuredatastudio 1.29.0 (0f5cfdc2c8c2433028842e16dc5ac1a65da24292, 2021-05-15T01:12:11.112Z)
OS version: Windows_NT x64 10.0.19041

System Info

Item
Value

CPUs
Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz (8 x 2808)

GPU Status
2d_canvas: enabledgpu_compositing: enabledmultiple_raster_threads: enabled_onoop_rasterization: enabledopengl: enabled_onprotected_video_decode: enabledrasterization: enabledskia_renderer: enabled_onvideo_decode: enabledvulkan: disabled_offwebgl: enabledwebgl2: enabled

Load (avg)
undefined

Memory (System)
31.85GB (17.75GB free)

Process Argv

Screen Reader
no

VM
0%

Extensions (1)

Extension
Author (truncated)
Version

azuredatastudio-postgresql
Mic
0.2.7

From the logs I see this error :
could not connect to server: Connection timed out (0x0000274C/10060)
	Is the server running on host "xxxxxx.postgres.database.azure.com" (xxx.xxx.xxx.xxx) and accepting
	TCP/IP connections on port 5432?

Have you verified that the server is set up to accept external connections? I believe there's some additional steps you have to take such as setting up firewall rules documented here : https://docs.microsoft.com/azure/postgresql/howto-manage-firewall-using-portal
For the first issue about the Azure credentials error that sounds more like a general issue with the Azure tree. Could you open up a separate issue documenting exactly what steps you're taking and where this error is showing up?


Crash on opening a factory-plan

Problem Description
Hello, really enjoying the new update for the Factory Planner, but sadly it crashes every time I try to open one of my factory-plans.
Description of the setup:
Currently I only have 2 plans inside the factory planner. One containing the plans for iron plate and one for copper plates.
The other plan is for green and red science.
Clicking on the first plan always results in a crash (see error message below).
Clicking on the second plan seems fine.
Switching the positions of the plans still results in only crashing on the iron/copper plate plan.
Trying to delete / edit the plan results in the same error message
Possible causes for the error:
I think what could be causing the problem, is the way how the new default machines get set.
I don't remember exactly what it was, but I think the standard machine for smelting / assembling selected was a foundry.
When i switched to the assembler / basic smelter for all categories, I think something got damaged, as I cant select the foundry anymore (as it should be, since im at the start of the game). But maybe the problem is that the crashing plan got updated in a weird way and tries to access something that's not accessible (hence the nil value exception on the object I suppose)
What I tried so far:

Changing positions of the plans -> It seems like it has nothing to do with the plans
Enabling / Disablind the "Pause game" function -> doenst change anything
Editing / Deleting the Plan -> results in the same crash
Recreating the same setup to see if it will result in a crash -> It didnt crash so far
Turning off item icons -> doesnt change anything

My Factory Planner Preferences:

Attach Factory product icons
Fold out subfloors
Mark recipe as done
percentage
recipe comments

Error Message:
The mod Factory Planner (2.0.1) caused a non-recoverable error.
Please report this error to the mod author.
Error while running event factoryplanner::on_gui_click (ID 1)
factoryplanner/util/context.lua:88: attempt to index local 'object' (a nil value)
stack traceback:
factoryplanner/util/context.lua:88: in function 'set'
factoryplanner/ui/main/factory_list.lua:100: in function 'handler'
factoryplanner/ui/base/modal_dialog.lua:354: in function 'handler'
factoryplanner/ui/event_handler.lua:169: in function <factoryplanner/ui/event_handler.lua:121>
Screenshots of the setup:
This Plan still works fine

This Plan is an exact copy of the First Plan

Clicking on the first created Plan will result in the crash

All other mods currently enabled:

Elevated Rails
Quality
Space Age
AAI Containers & Warehouses
Auto Deconstruct
Bullet Trails
Cleaned Concrete
Creative Mod
Disco Science
Even Distribution
Factorio Library
Factory Planner
Fill4Me
Fluid Wagon Color Mask
Fox TODO
Honk
Infinity Invo
InformaTron
Jetpack
Quality of Life Research
Rate Calculator
Robot Attrition
Shield Projector
Soundpack Alerts and Sirens Updated
Stats GUI
Text Plates
Tree Collision
VehilceSnap

If I can provide any more Information that could be helpful for finding the bug please let me know,
and thank you for bringing your mod to 2.0 so quickly, it really adds so much convenience to the game :)
Reproduction
Clicking on the first factory Plan I added results in a crash.
It doesnt matter if I try to select, edit or remove the plan.
Recreating an exact copy of the Plan seems fine and interacting with it doesnt result in a crash.
As mentioned above, I think the way default machines get updated seem to have an unwanted Side-effect.
Sadly I only roughly remember what it was, but I remember sawing a foundry set as a default machine for an item, even though it wasnt set before, and I cant choose the foundry on any other plan, since I dont have it unlocked yet.

Update:

I unloaded the mod.
Loaded my save game.
Saved the game without the mod.
Added the Mod again

I tried to recreate the plans I already had. When adding a plan for green Science, it chooses the Foundry as the basic machine for the transport belt (see pictures)

I now have the same setup as I did before, but until now no crash occured.
Im not sure if maybe clicking on "Set for all categories" is what causes the porblem.
This time I  only used "Set as default" and it seems fine for now.

Hello, thanks for the incredible bug report. It's the same issue as #362, and even with your very detailed descriptions, I can't quite replicate it. It gets into a bad state somehow, which is automatically repaired by changing anything about the installed mods, which makes it hard to replicate.
I think unfortunately I can't do anything about this until someone figures out a reproduction from scratch, sorry about that. Closing this for now.


Help me command line build Chromium on windows

Description
I am building Chromium on windows, but got error on some device
Who's implementing?

[X] I'm willing to implement this feature myself

The problem
Command line i am using:
gn gen out/Official --args="is_official_build=true is_debug=false target_cpu=\"x86\" enable_nacl=false proprietary_codecs = true ffmpeg_branding = \"Chrome\""
ninja -C out\Official chrome

What is best command line to build Chromium to make it like Chrome?
Thanks
Possible solutions
Change command line build
Alternatives
No response
Additional context
No response

Please add more information for us to better understand what your issue is.


Move DateTest and EscapedTest to text package

Let's move DateTest and EscapedTest to text package.

Closed by ddff51f.


Best way to use univers to sort and compare Package versions

This relates to work I'm doing for issue #1228.
For the past week or so I've been using several helper functions I created inside the Package class, together with a new property function I've added, to compare and sort Package versions using univers  version classes -- needed to find the closest greater-than fixed by version and both the closest and the latest non-vulnerable versions.
I now understand that univers has built-in mapping that provides a far more straightforward (and no doubt less error-prone ;-) way to accomplish the same goals.  I'm currently cleaning up my issue #1228 code (though with much more to do on that issue) so I can push that code and then explore using the built-in univers capabilities.  If I have any questions related to the process, I'll post them here, and will also share here the results of my univers adventure.

I've been exploring univers, PURLs and vulnerablecode Package objects and trying to understand the relationships among

a package string like<EMAIL_ADDRESS>the PURL/PackageURL equivalent of the package string, and
a vulnerable Package like models.Package.objects.create(type="maven", namespace="com.fasterxml.jackson.core", name="jackson-databind", version="2.13.1") .

It looks like if I start with a simple package string, the only way to convert that to a vulnerablecode Package is to

first convert the string to a PURL with PackageURL.from_string()
convert the PURL to a dictionary with PURL.to_dict()
and then convert the purl_to_dict to a vulnerablecode Package with

        vulnerablecode_package = models.Package.objects.create(
            type=purl_to_dict.get("type"),
            namespace=purl_to_dict.get("namespace"),
            name=purl_to_dict.get("name"),
            version=purl_to_dict.get("version"),
            qualifiers=purl_to_dict.get("qualifiers"),
            subpath=purl_to_dict.get("subpath"),
        )

My experience in the last few hours has also been that if the original string has no subpath, the conversion steps will create a null value for the subpath, which will throw an error: django.db.utils.IntegrityError: null value in column "subpath" violates not-null constraint.  To avoid this I've had to take this step:
        if purl_to_dict.get("subpath") is None:
            purl_to_dict["subpath"] = ""

I suspect there is a far easier/more straightforward to accomplish converting a package string to a vulnerablecode Package but have yet to find it . . . .  🤔

In my testing this morning (trying to convert a list of purl-like strings to a list of vulnerablecode Package objects that I can then sort) I see that I also need to avoid the error django.db.utils.IntegrityError: null value in column "qualifiers" violates not-null constraint, which for now I'm doing with
            if purl_to_dict.get("qualifiers") is None:
                purl_to_dict["qualifiers"] = {}

re: https://github.com/nexB/vulnerablecode/issues/1265#issuecomment-1673579993
Where is the "purl_to_dict" created in the first place?


start_timeout doesn't get pass when start_instance=False

Actually closed in #3497 but in #3554 I am adding some tests


DOM Testing issue in JEST

https://stackoverflow.com/questions/45997768/how-to-test-the-dom-events-using-jest
this is my issue i have posted in stackoverflow somebody help me out this i'm struggling to identify the solution

The issue is no longer available on stackoverflow, thus im closing this. If you still have any questions, please just create new issue.


Updating a localized field via multiple REST API async call only saves one value

Bug Report
If I try to save multiple localized values for a document field using multiple REST API PATCH method async calls (one for each locale) is resulting in some of the updates to be ignored.
Current Behavior
I don't get any errors but only a localized value is persited on DB.
Expected Behavior
All the given localized values for the field are persisted on DB.
Possible Solution
Using a breakpoint between the API calls to increase the time distance between them it worked correctly so I presume it's a concurrency problem.
Could be related to issue #1406 ?
Steps to Reproduce

Save the same collection field in 2 locales using 2 API calls

const saveLocale = async (id: string, collection: string, locale: string, payload: { [key: string]: unknown }) => {
  const url = `http://localhost:3000/api/${collection}/${id}?depth=0&locale=${locale}&fallback-locale=null`;

  const httpResponse = await fetch(url, {
    method: 'PATCH',
    body: JSON.stringify(payload),
    headers: {
      'Content-Type': 'application/json',
    },
  });
};

await saveLocale('63511e5b03f3a5092d821a44', 'homepage', 'fr', {'title': 'Nouvelle vague'});
await saveLocale('63511e5b03f3a5092d821a44', 'homepage', 'de', {'title': 'Neue Welle'});

Verify that only one value has been saved on DB. In my case only the last one (locale 'de') has been saved.

Detailed Description
Payload version: 1.1.15
Localization configuration:
localization: {
  locales: ['en', 'it', 'fr', 'de'],
  defaultLocale: 'en',
  fallback: true,
},

Collection versioning configuration:
versions: {
  drafts: true,
},

Extras: SEO plugin installed

@JessChowdhury please get an environment set up to reproduce this within Payload, and once you have it, we can pair on figuring out what is happening here!

I have an update on this issue.
Actually calling the 2 APIs like in the oversimplified example I shared is working.
Calling them in a cycle like in our actual code is not working:
const saveLocale = async (id: string, collection: string, locale: string, payload: { [key: string]: unknown }) => {
  const url = `http://localhost:3000/api/${collection}/${id}?depth=0&locale=${locale}&fallback-locale=null`;

  const httpResponse = await fetch(url, {
    method: 'PATCH',
    body: JSON.stringify(payload),
    headers: {
      'Content-Type': 'application/json',
    },
  });

  const response = await httpResponse.json();

  return response;
};

const test = async () => {
  const updates = [{
    id: '63511e5b03f3a5092d821a44',
    collection: 'homepage',
    locale: 'fr',
    payload: {'title': 'Nouvelle vague from test'}
  },
  {
    id: '63511e5b03f3a5092d821a44',
    collection: 'homepage',
    locale: 'de',
    payload: {'title': 'Neue Welle from test'}
  }];

  const saveAllLocales = updates.map(x => saveLocale(x.id, x.collection, x.locale, x.payload));

  const responses = await Promise.all(saveAllLocales);
};

I understand that this issue is closed as it makes sense that parallel updates can be problematic. The usecase of updating a complete document with all its translations at once however still exists.
Is there a ways to update a whole document with all its translations in one call?
I mean just like I can receive the complete document with all its translations when I specify locale=all via the api, is there a way to update a document like that?


Issues to configure the MiniWXstation

Hi there,
This is Greg, TI2GBB from Costa Rica, I´m trying to configure this project using  arduino IDE 1.8.13
I´m getting this error when I tried to upload the  code to the ESP8266
_Arduino:1.8.13 (Windows 10), board:"NodeMCU 1.0 (ESP-12E Module), 80 MHz, Flash, Legacy (new can return nullptr), All SSL ciphers (most compatible), 4MB (FS:2MB OTA:~1019KB), 2, v2 Lower Memory, Disabled, None, Only Sketch, 57600"
In file included from C:\Users\Gregory\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4/tools/sdk/libc/xtensa-lx106-elf/include/sys/stdio.h:6:0,
             from C:\Users\Gregory\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4/tools/sdk/libc/xtensa-lx106-elf/include/stdio.h:63,

             from C:\Users\Gregory\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266/Arduino.h:32,

             from sketch\bme_V09.ino.cpp:1:

C:\Users\Gregory\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4/tools/sdk/libc/xtensa-lx106-elf/include/sys/pgmspace.h:25:130: error: 'const char HTTP_HEAD []' redeclared as different kind of symbol
#define PROGMEM attribute((section( "".irom.text." FILE "." __STRINGIZE(LINE) "."  __STRINGIZE(COUNTER) """)))
                                                                                ^

C:\Users\Gregory\Desktop\MiniWXStation-master\V09\bme_V09\bme_V09.ino:465:24: note: in expansion of macro 'PROGMEM'
const char HTTP_HEAD[] PROGMEM = "{{callsign}} Weather Station";
                    ^

In file included from C:\Users\Gregory\Desktop\MiniWXStation-master\V09\bme_V09\bme_V09.ino:34:0:
C:\Users\Gregory\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\libraries\ESP8266WebServer\src/ESP8266WebServer.h:34:39: error: previous declaration of 'HTTPMethod HTTP_HEAD'
enum HTTPMethod { HTTP_ANY, HTTP_GET, HTTP_HEAD, HTTP_POST, HTTP_PUT, HTTP_PATCH, HTTP_DELETE, HTTP_OPTIONS };
                                   ^

exit status 1
Error compiling from board  NodeMCU 1.0 (ESP-12E Module)._
I would like to request help to fix this problem,  I´m not arduino expert, I´m uploading the code however is failing, I really want to understand and  fix this issue to share the knowledge with other  HAM Radio colleagues and boy scouts of my Area.
Thanks in advance!

Hi Greg, there is a know compatibility issue between MiniWX_v09 and the newest ESP8266 SDK, related to the use of "HTTP_HEAD" tag i used in source code. At that times HTTP_HEAD was not used inside SDK, so there wasn't any problem at all, in the newest SK instead HTTP_HEAD is (at good reason) used so the "redeclaration" message from the compiler.
Please consider using the new 1.1f version of MiniWX or instead rename all the occurrencies of HTTP_HEAD inside miniwx source code in something else, as example "HTTP_HEADER". This should fix the problem, let me know.

Just changed it for you, try to download and compile the new v09, now everything should be fine (but still consider to use the latest v1.1f...)


Update setup.py

fixed a very small issue with the format operator
should it not be {0} instead of {}?

nvm its not...

Hi yusuf-a
Thanks for taking the time to try to fix this issue. I don't think that's the issue, as you seem to have pointed out. Both {0} and {} work with the format operator.


Stock YFC500 (STM Variant)

Hi Clemens.
Not finally ready, but done so far!
~The LED and Button order is still cowlicked :-/
Checked KiCad schematics, PCB and sources, but in my understanding they don't fit together. Also CoverUITest's setBars4() and setBars7() don't harmonize in my view with KiCad stuff.
However, I build the STM stuff flexible, and once I know the real LED & Button IDs, it will be quite easy to change.~
ST-Link Debugger is also in PlatformIO.ini now (got problems with picoprobe's uart when not in debug mode).
Till now I tested only with UART & CoverTestUI, ~but as soon as we/I identified the real LED & Button IDs,~ I would connect to mainboard, and if you're interested, I can offer to write afterwards a detailed Readme with instructions and pictures.
BTW: To get Home and Play button, I moved R33 (0 Ohm bridge) to R34, as well as R37 to R42.
Bridging R34 and R42 might also be enough, but by moving, you also remove the lane to J6 which looked more save to me.
Cabling Stock Cover UI (mine is a RM-ECOW-V1.3.0, 2020.05.08, STM32F030R8):
J6 Pin 1 = TX
J6 Pin 3 = RX
J6 Pin 7 = GND
J6 Pin 9 = 5V
And not to forget: Could compile your Pico-SDK code, but due to lack of an OM-CoverUI I couldn't test :-;

Found LED definition within LowLevel code. Now it look like expected.

Hi Clemens!
Short update: "Don't pull for now"... looks like I fully switch from HAL to arduino framework to get STM and GD handled together ;-)

As informed.
Will do a new one once I get framework-arduino and framwork-arduinogd32 handled together (some how ;-))

Ok, looking forward to it


Update text

Problem encountered on https://dotnet.microsoft.com/learn/aspnet/blazor-tutorial/run#
Operating System: windows
The text: In your command prompt, run the following command: 'dotnet watch'
should be updated to read 'dotnet watch run'

@mairaw @pranavkm - thoughts? Should the command be updated to dotnet watch run?

@DavidVanPluto could you list the results of running dotnet --info? Starting in .NET 6, dotnet watch is an alias for dotnet watch run, so I would expect it to work if you're using the 6.0 SDK that was released today: https://get.dot.net

We made changes to the tutorial this morning but the first step is to install .NET 6 SDK.
There are a couple of ways we can go about this: /cc @danroth27

We explicitly call out the version on the install page
We add a step to verify you're running on the latest/expected SDK
On the create step, we add the framework option so if you don't have 6 installed, you get an error

Maybe step 1 is enough?


Documentation of Project Init and as well as plugins

Can be ajusted if need be. Added quick explanation of basic bearclaw usage, as well as a plugin example.

Thank you for the pull request! Just added some notes, let me know what you think

Just saw this part:

Can be ajusted if need be

Will merge now, as is, and make modifications during readme overhaul today! Thank you for your contribution!


Tools / Tool Calling Support for Langchin

Will there be support for Tool calling in ChatOllama?
https://js.langchain.com/docs/integrations/chat/

  const chatModel = new ChatOllama({
    temperature: 0.1,
    baseUrl: import.meta.env.VITE_OLLAMA_HOST as string,
    model: 'mistral',
  }).bind({
    tools,
  });

Throw
Object literal may only specify known properties, and 'tools' does not exist in type 'Partial<ChatOllamaCallOptions>'.ts(2353)

Hi, @briannezhad , are you talking about the tool call support on https://js.langchain.com/docs/integrations/chat/ollama? This is not for that class ChatOllama. Maybe this repo's name is quite confusing. :-)

Oops! 😁


Fix logging calls with wrong arguments

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/6860/
Test PASSed.

@calvinjia  PTAL

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/6876/
Test PASSed.

alluxio-bot, merge this please.

alluxio-bot, cherry-pick this to branch-2.1 please


Update connection-cds-native.md

removed line saying solution aware flow is required

@MSFTMan @JimDaly Can you pls validate this change?

Adding @prsi-msft  since he owns these docs. But it looks good to me.

@JimDaly @davidyack
A better change would have been to retain the line, and say that both solution-aware and solution-agnostic flows can be created using CDS current environment. Can you please modify?

@MSFTMan : Thanks for your contribution! The author(s) have been notified to review your proposed change. @MSFTMAN


Cannot install vue-router in other vue plugin

Version
4.0.15
Reproduction link
www.npmjs.com
Steps to reproduce
I created a new vue plugin. and I add "vue-router": "^4.0.15" in my vue plugin dependencies.

I use  app.install(Router) in my install function.
pnpm link my-vue-plugin
3.startup vue project

then I got a warn and a error
[Vue warn]: injection "Symbol([vue-router]: router)" not found.
app.js:79 Uncaught TypeError: Cannot read properties of null (reading 'parent')
at warnDeprecatedUsage (nirvana-js-sdk.esm-bundler.js?38c5:3096:1)
at setup (nirvana-js-sdk.esm-bundler.js?38c5:2984:1)
at callWithErrorHandling (runtime-core.esm-bundler.js?8f05:155:1)
at setupStatefulComponent (runtime-core.esm-bundler.js?8f05:7109:1)
at setupComponent (runtime-core.esm-bundler.js?8f05:7063:1)
at mountComponent (runtime-core.esm-bundler.js?8f05:4951:1)
at processComponent (runtime-core.esm-bundler.js?8f05:4926:1)
at patch (runtime-core.esm-bundler.js?8f05:4518:1)
at mountChildren (runtime-core.esm-bundler.js?8f05:4714:1)
at processFragment (runtime-core.esm-bundler.js?8f05:4885:1)
the getCurrentInstance() return null?
function warnDeprecatedUsage() {
    const instance = getCurrentInstance();
    const parentName = instance.parent && instance.parent.type.name;
    if (parentName &&
        (parentName === 'KeepAlive' || parentName.includes('Transition'))) {
        const comp = parentName === 'KeepAlive' ? 'keep-alive' : 'transition';
        warn(`<router-view> can no longer be used directly inside <transition> or <keep-alive>.\n` +
            `Use slot props instead:\n\n` +
            `<router-view v-slot="{ Component }">\n` +
            `  <${comp}>\n` +
            `    <component :is="Component" />\n` +
            `  </${comp}>\n` +
            `</router-view>`);
    }
}

What is expected?
use vue-router in my vue plugin has worked
What is actually happening?
the getCurrentInstance() return null
but app._context.provides contains key 'Symbol([vue-router]: router)'

vue-router must be a peer dependency, like vue. You can see more explanations of what to do in Vue repository. I personally use yalc to handle this.

Remember to use the forum or the Discord chat to ask questions!

vue-router must be a peer dependency, like vue. You can see more explanations of what to do in Vue repository. I personally use yalc to handle this.
Remember to use the forum or the Discord chat to ask questions!

it's worked .thank u  :)

How npm handles this

vue-router 必须是对等依赖项，如 vue。你可以在 Vue 存储库中看到更多关于做什么的解释。我个人使用 yalc 来处理这个问题。
记得使用论坛或Discord 聊天来提问！

它的工作。谢谢你:)

pnpm 如何处理这个

vue-router 必须是对等依赖项，如 vue。你可以在 Vue 存储库中查看更多关于什么的解释。我个人 yalc 来处理这个。
记得使用论坛或Discord聊天来聊天！

它的工作。谢谢你:)

How pnpm handles this

vue-router must be a peer dependency, like vue. You can see more explanations of what to do in Vue repository. I personally use yalc to handle this.
Remember to use the forum or the Discord chat to ask questions!

it's worked .thank u :)

How pnpm handles this

vue-router must be a peer dependency, like vue. You can see more explanations of what to do in Vue repository. I personally use yalc to handle this.
Remember to use the forum or the Discord chat to ask questions!

Sorry if this is the wrong place to ask but, how do you do this? i stumble on the same issue where I'm creating an plugin for myself which already has some router functionality. Importing it in my vite plugin and using said functionality will throw an error that const router = useRouter() is undefined. i tried adding vue-router to peerDependencies inside the plugin and also add it to the vite.config als external like so
    rollupOptions: {
      external: ['vue', 'vue-i18n'],
      output: {
        globals: {
          vue: 'Vue',
          'vue-i18n': 'vue-i18n',
        },
      },
    },


Fix sams

This PR includes a couple fixes for the SAMSSampler, as well as for the ProposalEngine:

Add a property in the base class ProposalEngine to retrieve the set of possible chemical states
Ensure that the list of chemical states in the SAMSSampler contains the same elements as on initialization, and only elements that are able to be proposed by the ProposalEngine
Add a subtraction step as specified in the paper.

Thanks! One question, actually. I just realized from the test--I've implemented the property to return the list of chemical states from SmallMoleculeProposalEngine but not the PolymerProposalEngines. That's going to make this test fail (as it should), since the SAMSSampler now uses that property to get the list of chemical states.

I can try to implement that for the PolymerProposalEngines here (though I'm not exactly sure how.

Right now, the base class implementation just returns an empty list. Should I instead raise a NotImplementedError or something more informative like that?

I can try to implement that for the PolymerProposalEngines here (though I'm not exactly sure how.

We're going to need to make that change if you want to have the SAMS sampler operate this way.
What about, instead of eliminating the old SAMS sampler behavior, you allow the old or new behavior to be selectable as an option? If the ProposalEngine returns a NotImplementedError, the SAMS sampler will use the old behavior (no subtraction to keep lowest free energy zero); otherwise, it will use the new behavior. Alternatively, this could be selected via a flag.

Right now, the base class implementation just returns an empty list. Should I instead raise a NotImplementedError or something more informative like that?

Yes!

If the ProposalEngine returns a NotImplementedError, the SAMS sampler will use the old behavior (no subtraction to keep lowest free energy zero); otherwise, it will use the new behavior. Alternatively, this could be selected via a flag.

Ok. Perhaps I can pair this with a logger warning to alert the user as to what happened, and then we can fix the other ProposalEngines in a future PR.

Ok, I see what happened here. I will fix this.

Ok, tests pass, going to merge this.

Awesome, thanks!


some cleanups while reading the code

A couple of cleanup changes I found useful while reading through the code (especially the main and UI files).
First commits contain refactorings and fixes about the argument parser.
Then, come some style changes to make flake8 less noisy (to a point I find it usable in my editor).

Will mostly be included in #145


New PR to test SignCLA at 2018-08-09 16:37:14.994643574 -0400 EDT m=+5.140424498

Body of PR

corp-pass-staging: test succeeded


Why "No error" in compat.execute

I don't see any mention of "No error" in lua doc for 5.1-4. Isn't it "exit" instead which is a documented output of os.execute?

Your question isn't clear to me? can you elaborate/rephrase please?

compat.execute reads
function compat.execute(cmd)
    local res1,res2,res3 = os.execute(cmd)
    if res2 == "No error" and res3 == 0 and compat.is_windows then
...

The test condition only concerns lua 5.2+ because in lua 5.1 both res2 and res3 are nil. In lua 5.2-4
This function is equivalent to the ISO C function system. It passes command to be executed by an operating system shell. Its first result is true if the command terminated successfully, or nil otherwise. After this first result the function returns a string plus a number, as follows:

"exit": the command terminated normally; the following number is the exit status of the command.
"signal": the command was terminated by a signal; the following number is the signal that terminated the command.

and res2 is either 'exit' or 'signal'. So, if we stick to the official Lua online documentation, the test condition is never met.

this is Windows specifc. Windows can return errors as negative number I think, or something. That is why Lua may report an error from os.execute, but then the error message it gets from the cruntime is passed along. In the case where the exit code hits this special case, then Lua will report an error, but the error message returned by Lua will be "No error" (from the runtime). So Lua treats it as an error, but it wasn't.
You can check the Lua mailing archives on some discussion on this. iirc it was finally fixed in Lua 5.4.x
So now I recall; Lua code checks for a -1 return value of the C call. But in Windows -1 can be valid exitcodes. So the proper thing to do is clear errno, and check that afterwards. Because just checking for -1 will match the case of an error as well as a -1 exit code (but not an error).

see: https://www.lua-users.org/lists/lua-l/2018-11/msg00321.html
and follow up: https://www.lua-users.org/lists/lua-l/2019-01/msg00125.html

So the official documentation of lua is not 100% accurate...

Those docs are typically very accurate. But especially older versions of Lua didn't take that into account. 5.4 now does the right thing, but 5.1/2/3 do not, hence those special cases.

I came to that question in the very particular situation of luatex that embeds lua 5.3 except for os.execute that returns 5.1 like output. Of course, this can cause problems with penlight. Hence the documentation must be very clean in the luatex ecosystem as far as windows is concerned of course. But all this is out of purpose here.
Thanks.


Enable eager execution fails after testing if executing eagerly

System information

Have I written custom code (as opposed to using a stock example script provided in TensorFlow): Yes
OS Platform and Distribution (e.g., Linux Ubuntu 16.04): Colab
TensorFlow installed from (source or binary): pip install -q "tensorflow==1.13.1"
TensorFlow version (use command below): 1.13.1
Python version: 2.7.15rc1

Describe the current behavior
Calling tf.enable_eager_execution() after tf.executing_eagerly() fails with:
ValueError: tf.enable_eager_execution must be called at program startup.

Note that this happens at program startup (after runtime restart on Colab). Calling tf.enable_eager_execution() by itself does not result in the exception. Not to confuse with issue #21893
Describe the expected behavior
It should be possible to check whether tensorflow is executing eagerly before programs enable eager execution. This is relevant for forward compatibility with tensorflow 2.0.0-alpha0 which does not implement enable_eager_execution() but instead reports:
AttributeError: 'module' object has no attribute 'enable_eager_execution'

Code to reproduce the issue
import tensorflow as tf
if not tf.executing_eagerly():
    tf.enable_eager_execution()

Other info / logs
Include any logs or source code that would be helpful to diagnose the problem. If including tracebacks, please include the full traceback. Large logs and files should be attached.
ValueErrorTraceback (most recent call last)
 in ()
7
8 if not tf.executing_eagerly():
----> 9   tf.enable_eager_execution()
1 frames
/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/ops.pyc in enable_eager_execution(config, device_policy, execution_mode)
5459         device_policy=device_policy,
5460         execution_mode=execution_mode,
-> 5461         server_def=None)
5462
5463
/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/ops.pyc in enable_eager_execution_internal(config, device_policy, execution_mode, server_def)
5538   else:
5539     raise ValueError(
-> 5540         "tf.enable_eager_execution must be called at program startup.")
5541
5542   # Monkey patch to get rid of an unnecessary conditional since the context is
ValueError: tf.enable_eager_execution must be called at program startup.

From what I tested, I believe this behavior has been fixed already in the latest tf-nightly and should be coming in 1.14. If not please let us know and re-open.

@TerjeNorderhaug: Though the exception has been fixed in the nightlies, were you looking for the tf.executing_eagerly symbol to be included in 2.0?

The tf.executing_eagerly symbol is already in the 2.0 api and works as I expected with the 2.0.0-alpha0 as well as the tf-nightly-gpu-2.0-preview.


Error: Illegal Parameter:  -vm6058T

I am trying to build the C API. I have no prior experience with OpenDSS, or Pascal. The steps I have taken so far to do so are:

Installed the free pascal compiler

sudo apt install fp-compiler-3.0.4

Downloaded and built klusolve from root of dss_capi

git clone git@github.com:dss-extensions/klusolve.git`
cmake -DUSE_SYSTEM_SUITESPARSE=OFF -DUSE_SYSTEM_EIGEN3=OFF -DKLUSOLVE_LIB_TYPE=STATIC ..
cmake --build . --config Release

Clone the dss-extensions/dss_capi repository into the root of already cloned dss_capi repo

/dss_capi$ git clone git@github.com:dss-extensions/dss_capi.git

Merged contents of klusolve/lib into dss_capi/lib

cp -r klusolve/lib/linux_x64 lib/linux_x64

Result of running the build script

dss_capi$ ./build/build_linux_x64.sh
+ python3 src/classic_to_ctx.py
+ rm -rf build/units_x64
+ mkdir build/units_x64
+ fpc -Px86_64 @src/linux-x64.cfg -B src/dss_capi.lpr
Error: Illegal parameter: -vm6058
Error: /usr/bin/ppcx64 returned an error exitcode

I am on an intel x86 machine running Ubuntu 20.04 (if that matters).

Use Free Pascal 3.2.2 instead (3.0.4 is from 2017, we need 3.2 for some language features and proper ARM support).
The original FPC installer from https://sourceforge.net/projects/freepascal/files/Linux/3.2.2/fpc-3.2.2.x86_64-linux.tar/download should work fine if the new version is not in the Ubuntu repository. Just remember to add it to your path, etc.

Managed to figure that out - but now I'm getting this
/usr/bin/ld: cannot find -lklusolvex

I noticed #110 - ironically enough I'm trying to create Rust bindings to the C API.

Ah, didn't notice you used the static option for klusolvex. The build scripts/options still need some tweaks as noted in #110.

So I followed the instructions from the SourceForge klusolve repository, and have the following lib folder structure in my local klusolve:
lib
└── linux_x64
    ├── libklusolvex.a
    └── libklusolvex.so

The SourceForge repository mentions linking these files, but I'm not sure how to do that properly because libklusolvex.so doesn't actually point to anything.

instructions from the SourceForge

Don't follow those. We use a fork, it's almost completely a rewrite of the original klusolve, hence the name klusolvex to differentiate it.

doesn't actually point to anything.

I'm not sure I understand what you mean by that.
For a static build, you would use the .a, but you'd need to update the build flags in DSS C-API etc.
If you don't need a static build, just remove -DKLUSOLVE_LIB_TYPE=STATIC from the CMake configuration.
You can see how our binaries are built from these two:

https://github.com/dss-extensions/klusolve/blob/master/ci/build_linux_x64.sh#L12-L17
https://github.com/dss-extensions/dss_capi/blob/master/.github/workflows/builds.yml#L9

I've got it building - but I'm having another issue. Going to open a separate one if that's alright.


Major refactor

Using code from @PeterStaev to refactor hooks (#22). Node Sass now runs in separate process. Fixes a number of issues with plugin and fixes livesync for 2.5+. Does reduce LiveSync support in 2.4.x and lower.

Thanks again, @PeterStaev! Your changes have been merged via this PR (along with some other updates to the app package). Updated to 1.0.0-rc.2. Will become 1.0.0 when {N} 3.0.0 ships.


Notification Spam

The @zappr (npub1hswpe3sy2wdmgzzyd9nl8r32gc7nhkh60tmlx9er5dfk9u0f40qst048qg) bot tagged about 200+ pubkeys in a note, in which hundreds of people decided to reply to that note (note1ve7z2zsg67ragphw4d40ywgj0zwyyzjpuyd85cp35xdeg4p9nzjsreqzha).
This yielded hundreds of notifications, in which everyone was replying about how it was destroying their notifications.
Replies and other events associated with a note that a pubkey was tagged I don't think should yield a notification to that pubkey.

Also, could be nice to be able to delete notifications.

This has been resolved in https://github.com/vitorpamplona/amethyst/releases/tag/v0.21.1


Set minimum version of source modules in large-image's extras_requires

Following up from #708
I recently realized an issue when deploying large-image on Heroku if following the latest changes.
If you simply add the following to your dependencies:
large-image[gdal,ometiff]>=1.12.0

You can easily run into a situation where your source modules' and large-image core's versions are mismatched.
Let's say I bump that dependency to large-image[gdal,ometiff]>=1.13.0. The only package that will update is large-image not large-image-source-gdal, etc. due to the build cache on Heroku as large-image-source-gdal's version is unspecified. This version mismatch can sometimes be an issue that will raise an error on import.
Would there be a clean way to set a minimum version of the source modules in large-image's setup.py? Normally you could easily just pass around the same version specified, but large-image uses scm and I'm unsure how to get the version tag.
Ideally, this would look like:
__version__ = ...
setup(
    name='large-image',
    #use_scm_version={'local_scheme': prerelease_local_scheme},
    version=__version__,
    ...
    extras_require={
        'gdal': [f'large-image-source-gdal>={__version__}'],
        ...
    },
)

This is just a thought and I'm usually of the opinion that being explicit is best. E.g., specify each dependency outright with a pinned version rather than using the extras convenience.
However, this quickly becomes verbose if you have a few tile sources and you have to use a custom dependabot script in order to bump the large-image packages together.
If we were able to set a min version of the source modules for large-image's extras then this sort of dependency specification would work well with dependabot so that we can have 1 PR update all large-image packages.

I've experienced this issue a few times already and I suspect it will become more prevalent if django-large-image finds its way into more Girder4 projects

Similarly, this is a problem for each of the source modules. Let's say I specify just large-image-source-gdal>=1.12.0 and bump that -- then the large-image core module would not be updated.
I think we should set these minimum version across the source modules and large-image core to mitigate mismatched versions under the specified minimum in the downstream project


Add support for reverse proxy mode

Hi,
This project looks very interesting.
However, my use case is to run it in testing/staging environments, in a k8s cluster to simulate timeouts and other issues with particular services, not to run it locally during development.
Have you considered implementing a reverse proxy mode, where you would provide a target host and port to forward the requests to during startup?

Hey @gdubicki, thanks for reaching out! Dev Proxy is meant to be used on clients to intercept outgoing API requests and provide you with contextual guidance. We haven't considered implementing routing. The good news is, that Dev Proxy supports plugins so you could build your own. Have you considered using Yarp for the reverse proxy piece?

Closing due to lack of further comments


The only supported ciphers are AES-128-CBC and AES-256-CBC with the correct key length

After installing the package in a Laravel 5.6 project.
Doing:
php artisan vendor:publish --provider="BeyondCode\Credentials\CredentialsServiceProvider" --tag="config"
Leaving the defaults as is.
App Key was set by:
php artisan key:generate
Also I did:
php artisan config:clear
php artisan config:cache
Then running:
php artisan credentials:edit
I get:
RuntimeException  : The only supported ciphers are AES-128-CBC and AES-256-CBC with the correct key lengths.
at /home/johndoe/server/vendor/laravel/framework/src/Illuminate/Encryption/Encrypter.php:43
39|         if (static::supported($key, $cipher)) {
40|             $this->key = $key;
41|             $this->cipher = $cipher;
42|         } else {

43|             throw new RuntimeException('The only supported ciphers are AES-128-CBC and AES-256-CBC with the correct key lengths.');
44|         }
45|     }
46|
47|     /**

Exception trace:
1   Illuminate\Encryption\Encrypter::__construct("", "AES-256-CBC")
/home/johndoe/server/vendor/beyondcode/laravel-credentials/src/CredentialsServiceProvider.php:54
2   BeyondCode\Credentials\CredentialsServiceProvider::BeyondCode\Credentials{closure}(Object(Illuminate\Foundation\Application), [])
/home/johndoe/server/vendor/laravel/framework/src/Illuminate/Container/Container.php:764
Please use the argument -v to see more details.

Hi @kornatzky,
try in a different order:
// Clear your cache
$ php artisan config:clear

// Edit your config
$ php artisan credentials:edit

// Cache it
$ php artisan config:cache

Works. Thanks Saw this only now. Somehow the notification did not reach me.


Welcome page

ça a vraiment rien à voir avec le dashboard

yes, it's got nothing to do with the dashboard, but we're not going to make 10 react applications in a single extension, so we might as well combine everything in one application and put the dashboard, welcome and settings in it - the only thing that should be separate is the popup, because we can't do otherwise.

It could be added when the dashboard is made

  if (details.reason === 'install') {
    // code...
  }
});```


Does This Mod Work with Starlight [Fabric]

I saw this mod on curseforge and wanted to use but I'm using starlight just wanted to know if it worked with starlight

It hasn't been tested, but you're welcome to try it out and let us know

And it seems to work perfectly fine so I'm going to try testing it with some more mods and keep you update if i run into any problems.


Add a wiki: Little Tail Wiki

An anonymous user has submitted a new wiki via our submission form.
Link to origin wiki: https://forlittletail.fandom.com
Link to destination (independent) wiki: https://littletail.wiki

The independent wiki is behind Fandom in coverage, and seems inactive and unmaintained. A number of pages have rendering issues, e.g.:


extended NaCl.java

No issue - just a pointer to a equivalent NaCl.java file that I have been using for my naclj clojure project:
"https://github.com/franks42/naclj/blob/master/src-java/com/github/franks42/naclj/NaCl.java"
I've taken your original NaCl.java file and added a few more ffi interfaces. (Pretty much) all of them are tested in my clojure code and "should just work".
Furthermore, I got rid of the hard-coded constants and replaced them with interfaces to libsodium's function calls to get the same values. Do not believe those constants will change any time soon, but using the functions should make it easier to stay in sync with libsodium.
As I borrowed/stole/copied your initial work, I hope I can pay you back a little when you do the same for some of the additions.
Thanks!
-Frank.

@franks42 thanks for the positive feedback Frank and I'm happy that it helped you. I will take into consideration your project, but feel free to send any pull requests or improvements.


Bugfixes

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


Multi file dataset workflow

Implement/wireframe the multi-file dataset workflow and detail pages.

At this point, the schema has been created that would implement this change. I've also created models for the organization and accounts (to generically specify a user or an organization as the owner of a particular dataset).
Now, to finish this off, we need to implement the final model changes.


Need endcall before join webrtc video conference

I just use this plugin and jitsi meet in my project, when I receive call, a in-call UI will be shown. I am listen to the onAnswer event, and want to join the webrtc vc if the call accept.
Fail, a message is shown, "There's another call is progress..."
cordova.plugins.CordovaCall.on('answer', function(){
cordova.plugins.jitsiplugin.join("room_abc");
});
If I call endCall first, I can go to the vc successfully, but there is a endcall beep sound, if there is any way i can do if I want to go to webrtc video conference when user answer call, or if there is any way to disable beep sound when calling endCall, thanks
cordova.plugins.CordovaCall.on('answer', function(){
cordova.plugins.CordovaCall.endCall(function(){
cordova.plugins.jitsiplugin.join("room_abc");
});
});

Well, I'm no expert in any of this but from what you've described, I think the jitsi plugin that you are using is using ConnectionService instance to handle the state of the VC call, hence that error is shown, since there can only be one call at one time.
If that's the case, you have to somehow combine these 2 plugins together to make it work. But if the jitsi plugin has that particular instance, I do think that you don't even need this plugin at all. Just go in and modify the plugin to have a receiveCall function and handle everything accordingly.
That's my take on this. Hope it helps.

Did you found a solution?


I cant use GAM with organizational unit

Hi, i have a problem when i want works with ou
I follow the guide but it doesn't work.
I put this command " .\gam.exe ou '/Prueba Chromebook' vacation on subject 'prueba' message 'prueba' startdate '2022-12-31' enddate '2022-1-1' "
It shows me the following error "ERROR:( 'invalid_grant: Bad Request', {' errror' : 'invalid_grant', 'error_description' : 'Bad Request'})
With the parameter 'user' i can without problem but with ou no.
I used this command in august with 6.21 version and I did not have problems.

I can't with groups either

Alberto,
Try reauthentication:
gam oauth remove
gam oauth create
Ross
On Fri, Dec 9, 2022 at 2:25 AM AlbertoCruzVK @.***>
wrote:

I can't with groups either
—
Reply to this email directly, view it on GitHub
https://github.com/GAM-team/GAM/issues/1583#issuecomment-1344125031, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/ACCTYL2SGC7GIGPEURI3UETWMMCLDANCNFSM6AAAAAASZFHTYY
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

--
Ross Scroggs
@.***


mci_ipm_encode : FAILED to ENCODE ASCII into EBCDIC File format

When using the mci_ipm_encode tool to encode ascii file into EBCDIC format get following error :
UnicodeDecodeError: 'ascii' codec can't decode byte 0x80 in position 0: ordinal not in range(128)
options used : --in-encoding ascii --out-encoding cp500
Anybody idea how to solve this issue ?
quote
return _iso8583_to_dict(b, iso_config, encoding, hex_bitmap)
File "c:\users\vastesaeger\appdata\local\programs\python\python39\lib\site-packages\cardutil\iso8583.py", line 170, in _iso8583_to_dict
return_values["MTI"] = message_type_indicator.decode(encoding)
UnicodeDecodeError: 'ascii' codec can't decode byte 0x80 in position 0: ordinal not in range(128)
unquote

Hi there,
In general, if you are just converting an "Ascii" file, I would advise that you instead use the Latin1 encoding which is the default.
Strict ASCII as implemented in python will complain about any char coded above 128.. that may be what you want but unlikely.
So try rerunning with just --out-encoding cp500 or with --in-encoding latin1 --out-encoding cp500 if you want to be explicit.
Let me know how you go.

THANKS FOR YOUR INFORMATION VERY USEFULL, I'M STEP FUTHER and i think i miss in the config.py couple of entries in bit_config. Is there anybody who has a full bit_config table?
"bit_config": {
"1": {"field_name": "Bitmap secondary", "field_type": "FIXED", "field_length": 8},
"2": {"field_name": "PAN", "field_type": "LLVAR", "field_length": 0},  # "field_processor": "PAN"},
"3": {"field_name": "Processing code", "field_type": "FIXED", "field_length": 6},
"4": {"field_name": "Amount transaction", "field_type": "FIXED", "field_length": 12,
"field_python_type": "long"},
"5": {"field_name": "Amount, Reconciliation", "field_type": "FIXED", "field_length": 12,
"field_python_type": "long"},
"6": {"field_name": "Amount, Cardholder billing", "field_type": "FIXED", "field_length": 12,
"field_python_type": "long"},
"9": {"field_name": "Conversion rate, Reconciliation", "field_type": "FIXED", "field_length": 8,
"field_python_type": "long"},
.......

I believe it's a full config for MasterCard so if you are still missing config it could be another issue. The default config has been used in production systems for a few years now without issue.

Please let me know if you have resolved the issue.