Fix Issue with SConsCPPConditionalScanner misinterpreting ifdefs suffixed with L or UL

SConsCPPConditionalScanner
Was misinterpreting
#ifdef X123L
and
#ifdef X123UL
And removing L and UL which is only appropriate when the ifdef'd symbol is numeric with L or UL suffixing.
See Issue #4623 for some more discussion.
Contributor Checklist:

[x] I have created a new test or updated the unit tests to cover the new/changed functionality.
[x] I have updated CHANGES.txt and RELEASE.txt (and read the README.rst).
[x] I have updated the appropriate documentation

Equivalent regex using quantifier.
UL{0,2} U character followed by zero to two L characters.
^(\d+)(?:L|UL{0,2})?

@bdbaddog my c/c++ is a little rusty but I believe the literal integer suffixes are case insensitive.
l L u U ul UL etc...
Might have to be something like this (you get the idea):
^(\d+)(?:[lL]|[uU][lL]{0,2})?

References:

https://en.cppreference.com/w/cpp/language/integer_literal
https://learn.microsoft.com/en-us/cpp/cpp/numeric-boolean-and-pointer-literals-cpp?view=msvc-170

@jcbrill - good point. I'll update and push a bit later today.

MSVS 2022 seems to accept mixed case.
Not sure about mingw-64/gcc.
test.c:
#include <stdio.h>

#if 123u
#endif
#if 123U
#endif
#if 123l
#endif
#if 123L
#endif
#if 123ul
#endif
#if 123UL
#endif
#if 123uL
#endif
#if 123Ul
#endif
#if 123ull
#endif
#if 123ULL
#endif
#if 123Ull
#endif
#if 123uLL
#endif
#if 123UlL
#endif
#if 123ULl
#endif
#if 123ulL
#endif
#if 123uLl
#endif

int main(int argc, char** argv) {

    unsigned u_1 = 123u;
    unsigned u_2 = 123U;
    long l_1 = 123l;
    long l_2 = 123L;
    unsigned long ul_1 = 123ul;
    unsigned long ul_2 = 123UL;
    unsigned long ul_3 = 123uL;
    unsigned long ul_4 = 123Ul;
    unsigned long long ull_1 = 123ull;
    unsigned long long ull_2 = 123ULL;
    unsigned long long ull_3 = 123Ull;
    unsigned long long ull_4 = 123uLL;
    unsigned long long ull_5 = 123UlL;
    unsigned long long ull_6 = 123ULl;
    unsigned long long ull_7 = 123ulL;
    unsigned long long ull_8 = 123uLl;

    printf("Hello, World!\n");

    return 0;
}

compile and run:
@setlocal
@if exist test.obj @del test.obj
@if exist test.exe @del test.exe
@call C:\Software\MSVS-2019-142-Com\VC\Auxiliary\Build\vcvarsall.bat amd64
cl /Wall test.c
@test.exe
@endlocal

output (only unreferenced variable warnings):
**********************************************************************
** Visual Studio 2019 Developer Command Prompt v16.11.41
** Copyright (c) 2021 Microsoft Corporation
**********************************************************************
[vcvarsall.bat] Environment initialized for: 'x64'
test.c
test.c(36): warning C4100: 'argv': unreferenced formal parameter
test.c(36): warning C4100: 'argc': unreferenced formal parameter
test.c(47): warning C4189: 'ull_2': local variable is initialized but not referenced
test.c(49): warning C4189: 'ull_4': local variable is initialized but not referenced
test.c(45): warning C4189: 'ul_4': local variable is initialized but not referenced
test.c(44): warning C4189: 'ul_3': local variable is initialized but not referenced
test.c(39): warning C4189: 'u_2': local variable is initialized but not referenced
test.c(50): warning C4189: 'ull_5': local variable is initialized but not referenced
test.c(48): warning C4189: 'ull_3': local variable is initialized but not referenced
test.c(41): warning C4189: 'l_2': local variable is initialized but not referenced
test.c(43): warning C4189: 'ul_2': local variable is initialized but not referenced
test.c(46): warning C4189: 'ull_1': local variable is initialized but not referenced
test.c(42): warning C4189: 'ul_1': local variable is initialized but not referenced
test.c(52): warning C4189: 'ull_7': local variable is initialized but not referenced
test.c(40): warning C4189: 'l_1': local variable is initialized but not referenced
test.c(51): warning C4189: 'ull_6': local variable is initialized but not referenced
test.c(38): warning C4189: 'u_1': local variable is initialized but not referenced
test.c(53): warning C4189: 'ull_8': local variable is initialized but not referenced
Microsoft (R) Incremental Linker Version 14.29.30156.0
Copyright (C) Microsoft Corporation.  All rights reserved.

/out:test.exe
test.obj
Hello, World!

@bdbaddog The original implementation did not account for a long long (e.g., ll or LL) specifier only long (e.g., l or L).
I believe this may be correct: ^(\d+)(?:[lL]{1,2}|[uU][lL]{0,2})?

@bdbaddog I believe the suffix for the hex constant regex immediately above the changed line needs to be modified as well.

The hex regex prefix should probably be 0[xX] as 0x and 0X are allowed.
While VS2022 accepts mixing case for long-long, I'm not sure the c specification specifically allows it:
(<IP_ADDRESS>) hexadecimal-prefix: one of
              0x    0X

...

(<IP_ADDRESS>) long-long-suffix: one of
              ll    LL

Although for SCons purposes it probably does not matter.  At worst, SCons accepts the specification and the compilation has warnings/errors(?).

too bad Python re doesn't support POSIX character classes. then you could just use [:xdigit:].

Fragment from pycparser:
    hex_prefix = '0[xX]'
    hex_digits = '[0-9a-fA-F]+'
    bin_prefix = '0[bB]'
    bin_digits = '[01]+'

    # integer constants (K&R2: A.2.5.1)
    integer_suffix_opt = r'(([uU]ll)|([uU]LL)|(ll[uU]?)|(LL[uU]?)|([uU][lL])|([lL][uU]?)|[uU])?'
    decimal_constant = '(0'+integer_suffix_opt+')|([1-9][0-9]*'+integer_suffix_opt+')'
    octal_constant = '0[0-7]*'+integer_suffix_opt
    hex_constant = hex_prefix+hex_digits+integer_suffix_opt
    bin_constant = bin_prefix+bin_digits+integer_suffix_opt

Notes:

accepts ll and LL but not lL and Ll
accepts ull, Ull, uLL, ULL, llu, llU, LLu, LLU
accepts hex constants 0x and 0X
accepts binary constants 0b and 0B

Makes sense.

Candidate regexes without anchors (i.e., beginning of string ^ and/or end of string $):
r'(0[xX][0-9a-fA-F]+)(?:([uU]ll)|([uU]LL)|(ll[uU]?)|(LL[uU]?)|([uU][lL])|([lL][uU]?)|[uU])?'  # Hexadecimal
r'(0[bB][01]+)(?:([uU]ll)|([uU]LL)|(ll[uU]?)|(LL[uU]?)|([uU][lL])|([lL][uU]?)|[uU])?'         # Binary
r'(0|[1-9][0-9]*)(?:([uU]ll)|([uU]LL)|(ll[uU]?)|(LL[uU]?)|([uU][lL])|([lL][uU]?)|[uU])?'      # Decimal
r'(0[0-7]*)(?:([uU]ll)|([uU]LL)|(ll[uU]?)|(LL[uU]?)|([uU][lL])|([lL][uU]?)|[uU])?'            # Octal

Notes:

The optional integer suffix is the same for all four regexes.  The optional integer suffix should perhaps be a constant that is added to each of the four regexes for maintenance and readability.
As written, the decimal and octal regexes will both match 0 with an optional suffix
As noted above, VS2022 appears to accept optional integer suffixes that the c specification does not.

Test symbols:
# Hexadecimal

0x0123456789ABCDEF
0x0123456789ABCDEFull
0x0123456789ABCDEFUll
0x0123456789ABCDEFuLL
0x0123456789ABCDEFULL
0x0123456789ABCDEFllu
0x0123456789ABCDEFllU
0x0123456789ABCDEFLLu
0x0123456789ABCDEFLLU
0x0123456789ABCDEFul
0x0123456789ABCDEFuL
0x0123456789ABCDEFUl
0x0123456789ABCDEFUL
0x0123456789ABCDEFlu
0x0123456789ABCDEFlU
0x0123456789ABCDEFl
0x0123456789ABCDEFLu
0x0123456789ABCDEFLU
0x0123456789ABCDEFL
0x0123456789ABCDEFu
0x0123456789ABCDEFU
0X0123456789ABCDEF
0X0123456789ABCDEFull
0X0123456789ABCDEFUll
0X0123456789ABCDEFuLL
0X0123456789ABCDEFULL
0X0123456789ABCDEFllu
0X0123456789ABCDEFllU
0X0123456789ABCDEFLLu
0X0123456789ABCDEFLLU
0X0123456789ABCDEFul
0X0123456789ABCDEFuL
0X0123456789ABCDEFUl
0X0123456789ABCDEFUL
0X0123456789ABCDEFlu
0X0123456789ABCDEFlU
0X0123456789ABCDEFl
0X0123456789ABCDEFLu
0X0123456789ABCDEFLU
0X0123456789ABCDEFL
0X0123456789ABCDEFu
0X0123456789ABCDEFU
0x0123456789abcdef
0x0123456789abcdefull
0x0123456789abcdefUll
0x0123456789abcdefuLL
0x0123456789abcdefULL
0x0123456789abcdefllu
0x0123456789abcdefllU
0x0123456789abcdefLLu
0x0123456789abcdefLLU
0x0123456789abcdeful
0x0123456789abcdefuL
0x0123456789abcdefUl
0x0123456789abcdefUL
0x0123456789abcdeflu
0x0123456789abcdeflU
0x0123456789abcdefl
0x0123456789abcdefLu
0x0123456789abcdefLU
0x0123456789abcdefL
0x0123456789abcdefu
0x0123456789abcdefU
0X0123456789abcdef
0X0123456789abcdefull
0X0123456789abcdefUll
0X0123456789abcdefuLL
0X0123456789abcdefULL
0X0123456789abcdefllu
0X0123456789abcdefllU
0X0123456789abcdefLLu
0X0123456789abcdefLLU
0X0123456789abcdeful
0X0123456789abcdefuL
0X0123456789abcdefUl
0X0123456789abcdefUL
0X0123456789abcdeflu
0X0123456789abcdeflU
0X0123456789abcdefl
0X0123456789abcdefLu
0X0123456789abcdefLU
0X0123456789abcdefL
0X0123456789abcdefu
0X0123456789abcdefU

# Binary

0b01
0b01ull
0b01Ull
0b01uLL
0b01ULL
0b01llu
0b01llU
0b01LLu
0b01LLU
0b01ul
0b01uL
0b01Ul
0b01UL
0b01lu
0b01lU
0b01l
0b01Lu
0b01LU
0b01L
0b01u
0b01U
0b01
0B01ull
0B01Ull
0B01uLL
0B01ULL
0B01llu
0B01llU
0B01LLu
0B01LLU
0B01ul
0B01uL
0B01Ul
0B01UL
0B01lu
0B01lU
0B01l
0B01Lu
0B01LU
0B01L
0B01u
0B01U

# Decimal

0
0ull
0Ull
0uLL
0ULL
0llu
0llU
0LLu
0LLU
0ul
0uL
0Ul
0UL
0lu
0lU
0l
0Lu
0LU
0L
0u
0U
1234567890
1234567890ull
1234567890Ull
1234567890uLL
1234567890ULL
1234567890llu
1234567890llU
1234567890LLu
1234567890LLU
1234567890ul
1234567890uL
1234567890Ul
1234567890UL
1234567890lu
1234567890lU
1234567890l
1234567890Lu
1234567890LU
1234567890L
1234567890u
1234567890U

# Octal

01234567
01234567ull
01234567Ull
01234567uLL
01234567ULL
01234567llu
01234567llU
01234567LLu
01234567LLU
01234567ul
01234567uL
01234567Ul
01234567UL
01234567lu
01234567lU
01234567l
01234567Lu
01234567LU
01234567L
01234567u
01234567U

To add to the muck, both C and C++ standards are clear that the order of the unsigned suffix and the long or long-long suffix doesn't matter.  C++ in the very latest edition seems to add a new suffix to this party: z or Z, as follows:
integer-suffix :
    unsigned-suffix long-suffix(opt)
    unsigned-suffix long-long-suffix(opt)
    unsigned-suffix size-suffix(opt)
    long-suffix unsigned-suffix(opt)
    long-long-suffix unsigned-suffix(opt)
    size-suffix unsigned-suffix(opt)
unsigned-suffix : one of
    u U
long-suffix : one of
    l L
long-long-suffix : one of
    ll LL
size-suffix : one of
    z Z

while the C standard has its own addition:
integer-suffix:
    unsigned-suffix long-suffixopt
    unsigned-suffix long-long-suffix
    unsigned-suffix bit-precise-int-suffix
    long-suffix unsigned-suffixopt
    long-long-suffix unsigned-suffixopt
    bit-precise-int-suffix unsigned-suffixopt
bit-precise-int-suffix: one of
    wb WB
unsigned-suffix: one of
    u U
long-suffix: one of
    l L
long-long-suffix: one of
    ll LL

Sigh.  What's the smallest possible change we can make to move forward?

Python supports a case-ignoring regex, no? That would simplify it a bit...

Possibly.  The standard applies that the long long token is case-insensitive and not necessarily the pair of characters independently (I think).  If that is true, then ignoring case might not produce the same behavior as the standard(s) and/or compilers.  As noted above, VS appears to ignore case in this instance.
The ordering of the suffixes not mattering is a bit more problematic.
A temporary variable holding the suffix specification would allow the other three regexes to append the variable contents or build via f-string.
This may be a case of what is "just good enough" versus "follow a standard from which the compilers may be taking liberties".

Sigh. What's the smallest possible change we can make to move forward?

Perhaps:

specify the suffix regex in a temporary
add the suffix regex to the hexadecimal specification which was not updated in this PR (but should)
add the suffix regex to the decimal specification
[optionally] add the binary regex specification
ignore octal for now as the current decimal specification accepts all octal numbers anyway

The optional integer suffix regex might be described by the assignment to int_suffix_opt:
# unsigned-suffix long-suffix(opt)
# unsigned-suffix long-long-suffix(opt)
# unsigned-suffix size-suffix(opt)
# unsigned-suffix bit-precise-int-suffix

[uU](?:l{1,2}|L{1,2}|wb|WB|z|Z)?

# long-suffix unsigned-suffix(opt)
# long-long-suffix unsigned-suffix(opt)
# size-suffix unsigned-suffix(opt)
# bit-precise-int-suffix unsigned-suffix(opt)

(?:l{1,2}|L{1,2}|z|Z|wb|WB)[uU]?

Combined:

int_suffix_opt = r'(?:[uU](?:l{1,2}|L{1,2}|wb|WB|z|Z)?|(?:l{1,2}|L{1,2}|z|Z|wb|WB)[uU]?)?'

NOT TESTED
+
+   int_suffix_opt = r'(?:[uU](?:l{1,2}|L{1,2}|wb|WB|z|Z)?|(?:l{1,2}|L{1,2}|z|Z|wb|WB)[uU]?)?'

    # A separate list of expressions to be evaluated and substituted
    # sequentially, not all at once.
    CPP_to_Python_Eval_List = [
        [r'defined\s+(\w+)',                 '"\\1" in __dict__'],
        [r'defined\s*\((\w+)\)',             '"\\1" in __dict__'],
-       [r'(0x[0-9A-Fa-f]+)(?:L|UL)?',  '\\1'],
+       [fr'(0[xX][0-9A-Fa-f]+){int_suffix_opt}', '\\1']
+       [fr'(0[bB][01]+){int_suffix_opt}', '\\1']
-       [r'(\d+)(?:L|UL)?',  '\\1'],
+       [fr'(\d+){int_suffix_opt}',  '\\1'],
    ]

Notes:

Fixes hexadecimal spec (0[xX]) and optional integer suffix.
Adds binary specification (0[bB]) and optional integer suffix
Fixes decimal specification optional integer suffix
The decimal specification accepts octal values as before

The above does not include the start anchor added in this PR:
-       [r'(\d+)(?:L|UL)?',  '\\1'],
+       [r'^(\d+)(?:L|ULL|UL|U)?',  '\\1'],

I'm not sure what the definition of the beginning of the string is, but I would image as written, the start anchor may not match a negative integer (e.g., -100) specification.
In some cases, zero-length word boundary anchors might work.  Unary plus (+) and minus (-) could be a problem (which appears to exist in the current implementation).
More work could be necessary to prevent matching a substring of a token rather than a complete token.  Again, I have not looked at any of the surrounding code.

@mwichmann At your convenience, request for comments.
Possible solution:
int_suffix_opt = r'(?:[uU](?:l{1,2}|L{1,2}|wb|WB|z|Z)?|(?:l{1,2}|L{1,2}|z|Z|wb|WB)[uU]?)?'  # <= added optional suffix
neg_lookbehind = r'(?<![a-zA-Z0-9_])'                                                       # <= added
neg_lookahead = r'(?![a-zA-Z0-9_])'                                                         # <= added

# A separate list of expressions to be evaluated and substituted
# sequentially, not all at once.
CPP_to_Python_Eval_List = [
    [r'defined\s+(\w+)',                 '"\\1" in __dict__'],
    [r'defined\s*\((\w+)\)',             '"\\1" in __dict__'],
    [fr'{neg_lookbehind}(0[xX][0-9A-Fa-f]+){int_suffix_opt}{neg_lookahead}', '\\1'],  # <= modified hexadecimal
    [fr'{neg_lookbehind}(0[bB][01]+){int_suffix_opt}{neg_lookahead}', '\\1'],         # <= added binary
    [fr'{neg_lookbehind}(\d+){int_suffix_opt}{neg_lookahead}', '\\1'],                # <= modified decimal
]

Comments:

int_suffix_opt is the optional integer suffix specifications
neg_lookbehind is the hex/bin/dec expression is not preceded by a valid identifier character [a-zA-Z0-9_]
neg_lookahead is the hex/bin/dec expression not followed by a valid identifier character [a-zA-Z0-9_]

The negative lookbehind and lookahead should prevent capturing an integer specification in the middle of an identifier.  At least that is the hope.
The problem with using the beginning of the string anchor (^) and end of string anchor ($) is that the string being substituted is not necessarily a single token (in a lexer context).
For example: #if X123U || X123ULL || 1234L.  The first two terms should be ignored (identifiers) and the third term should have the L stripped.  The third term is not the beginning of the string.
I am still not sure if unary minus is a problem when used with comparison operators.  The unary minus is not part of the integer token in the c grammar (i.e., I believe the unary minus operator is applied  to the integer constant).  Unary plus is likely the same.  Not sure if this matters.  If it does, this makes the problem more difficult.
It is too bad the actual c preprocessor isn't run against the file of interest and the preprocessor output parsed for include files.  pycparser expects the preprocessor output rather than the source files.
I though this could be done with gcc and msvc (i.e., invoke only the preprocessor without compiling).  Not sure about other compilers.

The problem with using the beginning of the string anchor (^) and end of string anchor ($) is that the string being substituted is not necessarily a single token (in a lexer context).
For example: #if X123U || X123ULL || 1234L. The first two terms should be ignored (identifiers) and the third term should have the L stripped. The third term is not the beginning of the string.

We're not using a real lexer, so this may or may not be a concern... I think SCons/cpp.py splits into words, but I'm not motivated to check at the moment.  There's a related possible problem, though, with parenthesized expressions - not function-like macros, but ones like this:
#define PAGE_SIZE		(1UL << PAGE_SHIFT)

The thing is, all of these may not be real problems - the only thing the scanner needs to do is make a good guess about file-level dependencies.  If the macro above isn't used to somehow protect a header file from being included, it shouldn't matter if we convert it when we shouldn't, or vice versa.

I think SCons/cpp.py splits into words, but I'm not motivated to check at the moment.

I believe it is line-based or line-based and not word-based.
I believe there is a problem with definitions that use the optional extended suffix even if they are constants as the suffix is not stripped in the definition.
For example:
#define X0U 0U
#if X0U
#include <file904-yes>
#else
#include <file904-no>
#endif

I need to test against the current code again.  The issue is that the definition uses the symbol 0U.  When the integer conversion for 0U fails it becomes the string literal '0U'. The string literal rather than the value 0 causes the #if to be true.

The do_define method needs to evaluate (i.e., eval_expression) it's value rather than simply attempting an int conversion.
Verbose output for the PR code change and an alternative implementation is shown below.  There are likely still errors in the alternative implementation.
Degenerate examples where the PR (and master) code produces incorrect results:

Example 1
#define X2345ULL 1
#if !(X2345ULL > 4567ull)
#include <file901-yes>    # <=== Expected
#else
#include <file901-no>
#endif

Current PR [<file901-no>]:
do_define ('X2345ULL', None, '1')
do_define cpp_namespace['X2345ULL']: 1
eval_expression CPP_to_Python ('!(X2345ULL > 4567ull)',)
CPP_to_Python: '!(X2345ULL > 4567ull)' -> ' not (X2345ULL > 4567ull)' -> ' not (X2345ULL > 4567ull)'  # <=== 4567ull INTEGER LITERAL
eval_expression cpp_namespace:
  'X2345ULL': 1
eval_expression ' not (X2345ULL > 4567ull)' -> <class 'SyntaxError'> -> 0

Alternative [<file901-yes>]:
do_define ('X2345ULL', None, '1')
eval_expression CPP_to_Python ('1',)
CPP_to_Python: '1' -> '1' -> '1'
eval_expression '1' -> 1
do_define cpp_namespace['X2345ULL']: 1
eval_expression CPP_to_Python ('!(X2345ULL > 4567ull)',)
CPP_to_Python: '!(X2345ULL > 4567ull)' -> ' not (X2345ULL > 4567ull)' -> ' not (X2345ULL > 4567)'
eval_expression cpp_namespace:
  'X2345ULL': 1
eval_expression ' not (X2345ULL > 4567)' -> True

Example 2:
#if !0ull
#include <file902-yes>  # <=== Expected
#else
#include <file902-no>
#endif

Current PR [<file902-no>]:
eval_expression CPP_to_Python ('!0ull',)
CPP_to_Python: '!0ull' -> ' not 0ull' -> ' not 0ull'
eval_expression ' not 0ull' -> <class 'SyntaxError'> -> 0

Alternative [<file902-yes>]:
eval_expression CPP_to_Python ('!0ull',)
CPP_to_Python: '!0ull' -> ' not 0ull' -> ' not 0o0'
eval_expression ' not 0o0' -> True

Example 3:
#define X0U 0U
#if X0U
#include <file904-yes>
#else
#include <file904-no>  # <=== Expected
#endif

Current PR [<file904-yes>]:
do_define ('X0U', None, '0U')
do_define cpp_namespace['X0U']: '0U'
eval_expression CPP_to_Python ('X0U',)
CPP_to_Python: 'X0U' -> 'X0U' -> 'X0U'
eval_expression cpp_namespace:
  'X0U': '0U'
eval_expression 'X0U' -> '0U'

Alternative [<file904-no>]:
do_define ('X0U', None, '0U')
eval_expression CPP_to_Python ('0U',)
CPP_to_Python: '0U' -> '0U' -> '0o0'
eval_expression '0o0' -> 0
do_define cpp_namespace['X0U']: 0
eval_expression CPP_to_Python ('X0U',)
CPP_to_Python: 'X0U' -> 'X0U' -> 'X0U'
eval_expression cpp_namespace:
  'X0U': 0
eval_expression 'X0U' -> 0

Example 4:
#define XF1 (0x0U & 0x1U)
#if XF1
#include <file905-yes>
#else
#include <file905-no>  # <=== Expected
#endif

Current PR [<file905-yes>]:
do_define ('XF1', None, '(0x0U & 0x1U)')
do_define cpp_namespace['XF1']: '(0x0U & 0x1U)'
eval_expression CPP_to_Python ('XF1',)
CPP_to_Python: 'XF1' -> 'XF1' -> 'XF1'
eval_expression cpp_namespace:
  'XF1': '(0x0U & 0x1U)'
eval_expression 'XF1' -> '(0x0U & 0x1U)'

Alternative [<file905-no>]:
do_define ('XF1', None, '(0x0U & 0x1U)')
eval_expression CPP_to_Python ('(0x0U & 0x1U)',)
CPP_to_Python: '(0x0U & 0x1U)' -> '(0x0U & 0x1U)' -> '(0x0 & 0x1)'
eval_expression '(0x0 & 0x1)' -> 0
do_define cpp_namespace['XF1']: 0
eval_expression CPP_to_Python ('XF1',)
CPP_to_Python: 'XF1' -> 'XF1' -> 'XF1'
eval_expression cpp_namespace:
  'XF1': 0
eval_expression 'XF1' -> 0

Alternative implementation:

Regexes
int_suffix_opt = r'(?:[uU](?:l{1,2}|L{1,2}|[zZ]|wb|WB)?|(?:l{1,2}|L{1,2}|[zZ]|wb|WB)[uU]?)?'

hex_integer = fr'(0[xX][0-9A-Fa-f]+){int_suffix_opt}'
bin_integer = fr'(0[bB][01]+){int_suffix_opt}'
oct_integer = fr'(0[0-7]*){int_suffix_opt}'
dec_integer = fr'([1-9][0-9]*){int_suffix_opt}'

ident_chars = r'[a-zA-Z0-9_]'
neg_lookbehind = fr'(?<!{ident_chars})'
neg_lookahead = fr'(?!{ident_chars})'

# A separate list of expressions to be evaluated and substituted
# sequentially, not all at once.
CPP_to_Python_Eval_List = [
    [r'defined\s+(\w+)',                 '"\\1" in __dict__'],
    [r'defined\s*\((\w+)\)',             '"\\1" in __dict__'],
    [fr'{neg_lookbehind}{hex_integer}{neg_lookahead}', '\\1'],
    [fr'{neg_lookbehind}{bin_integer}{neg_lookahead}', '\\1'],
    [fr'{neg_lookbehind}{oct_integer}{neg_lookahead}', '0o\\1'],
    [fr'{neg_lookbehind}{dec_integer}{neg_lookahead}', '\\1'],
]

do_define (eval_expression_t not shown)
def do_define(self, t) -> None:
    """
    Default handling of a #define line.
    """
    _, name, args, expansion = t
    rval, success = self.eval_expression_t(t[2:])
    if success and isinstance(rval, int):
        expansion = rval
    else:
        # handle "defined" chain "! (defined (A) || defined (B)" ...
        if "defined " in expansion:
            self.cpp_namespace[name] = self.eval_expression(t[2:])
            return

    if args:
        evaluator = FunctionEvaluator(name, args[1:-1], expansion)
        self.cpp_namespace[name] = evaluator
    else:
        self.cpp_namespace[name] = expansion

Closing in favor of #4629


make csx files directly runnable on Windows, OSX and Linux

register .csx extensions on windows
change scaffolding to add shebang and mark as executable on osx/Linux
update readme to describe way of invoking scripts

NOTE: I had messed up my old branch so bad I just created this new branch to apply the changes cleanly

I added a test that we can execute the script directly, which will fail if we don't have the whole shebang. (lol)

@tomlm Looks like it fails on *nix 😸

So when do you guys do releases?


search domain in the VM should be the identical to the host search domain

With vsock, since traffic is managed by an userland netstack on the host, DNS properties such as search domain should be the same on the host and in the VM.

@gbraad told me that minishift has code for that purpose also.

This should be part of the start and will likely solve many of the issues we see on Hyperkit and Hyper-V as often the external resolving is impeded. For some unknown reason the nameserver provided by the default switch does not respond.


Not uploading artwork

Hey, it seems that the artwork functionality is broken? I am 100% sure that I set up everything correctly since the tidal asset has been successfully uploaded and it's getting used whenever I play something, but none of the album artworks ever get uploaded.

Hi,
I am not sure what you mean by "they haven been successfully uploaded and it's getting used whenever I play something but none of the album artworks ever get uploaded". Do you see something like DiscordAPI: Upload of asset <name> was successful when running NowPlaing-for-TIDAL from the command line but it doesn't appear on the Discord application page under Rich Presence -> Art Assets?

What I meant is that the default "tidal" icon gets uploaded (so I guess my config file is configured correctly), but whenever I play music it shows that one instead of the album artwork and it doesn't seem to upload anything besides that.

How would I go about running the program from the command line so I can see what the logs are saying?

I just checked and I didn't actually implement that the logs are written to the command-line. The only way to see them is by heading into Visual Studio and building and running the application from source.
I quickly did this and I am seeing the following line: NowPlaying-for-TIDAL Error: 0 : TidalApi: Could not get the key from TIDAL desktop for the following Reason: Could not find: '[info] - Session was changed' Basically, the issue lies in SimpleTidalApi. I need it to query the TIDAL API about further information about the song, for example, a URL to its album artwork. For the TIDAL API I need a token, which I parse from TIDAL's logs. This is the part that is currently broken because TIDAL changed their logging output.
I had a quick look, however, I currently have no time to fix this but you can give it a shot if you'd like. I recommend completely throwing out my weird string slicing operations (for some reason you write weird code when you are younger :p) and use a regular expression instead to find the token in TIDAL's log file. You can also find a test there to quickly check whether you can query TIDAL's API using this token.
I will probably fix this at some point in the future but for now I have to work on other stuff. I am also now working under Linux where I can't use this project, hence the low priority. If you decide to fix it yourself, you can create a pull request afterwards. Let me know if you have any questions along the way.

I am actually not sure, would need to try it out. Here is the test I mentioned earlier: https://github.com/Kaufi-Jonas/SimpleTidalApi/blob/master/SimpleTidalApi/SimpleTidalApiTests/ClientTests.cs
You can try hardcoding the key in that file with what you found and check whether you get a result back.


Tilt (Zwischenposition/Lüftungsposition) no longer available since latest update

Hi Stefan,
the covers for out sleeping room have been moving to tilt-posion (cover.open_cover_tilt) using your intergration for weeks.
No, since the last update, I get an error "Entity cover.sz_2 does not support this service.".
I have checked all ...tilt... services seem to be no longer available (cover.open_cover_tilt, cover.close_cover_tilt, cover.set_cover_tilt_position, ...).
Best regards
Frank

Hi Frank, what exactly do you mean? I also do nto have the function anymore foe the status.
What did you had previously implemented? Can you share this to me?
I was not able to have exactly what you described...

Hi,
over the past weeks I have been using an automation to set the Commeo covers of the sleeping room to "tilt" (Lüftungsposition).
service: cover.open_cover_tilt data: {} target:   entity_id: cover.sz
Since the last update I get an error message instead of setting the device to tilt.
Fehler beim Ausführen einer Aktion
Entity cover.sz_2 does not support this service.
Opening and closing the device (or setting it to a certain percentage) still works as before.
But all the services including "tilt" seem to be not available.
I see the following errors in my logfiles:
Logger: homeassistant.components.websocket_api.http.connection
Source: components/websocket_api/connection.py:150
Integration: Home Assistant WebSocket API (documentation, issues)
First occurred: 10:51:08 (4 occurrences)
Last logged: 12:31:58
[547967065904] Error handling message: Entity cover.az_2 does not support this service. (unknown_error) from <IP_ADDRESS> (Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/<IP_ADDRESS> Safari/537.36)
[547967065904] Error handling message: Entity cover.sz_2 does not support this service. (unknown_error) from <IP_ADDRESS> (Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/<IP_ADDRESS> Safari/537.36)
[547502662912] Error handling message: Entity cover.sz_2 does not support this service. (unknown_error) from <IP_ADDRESS> (Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/<IP_ADDRESS> Safari/537.36)
Logger: homeassistant.helpers.script.websocket_api_script
Source: helpers/script.py:409
First occurred: 10:51:08 (4 occurrences)
Last logged: 12:31:58
websocket_api script: Error executing script. Error for call_service at pos 1: Entity cover.az_2 does not support this service.
websocket_api script: Error executing script. Error for call_service at pos 1: Entity cover.sz_2 does not support this service.
Take care
Frank

Hi Frank,
Tilting is not implemented yet in this new version. Should be not much work though.
Please wait a little longer.
Best

Hi Stefan,
�
OK, I didn’t see anything about this functionality missing in the current version in the change logs.
�
I now have set the cover to a certain percentage to “emulate” the tilt setting.
�
But setting the covers to “tilt” is much easier as this setting is saved in the devices and one does not have to figure out the percentage manually.
�
I am using “tilt” for sun protection in summertime as well, but I guess this feature will not be missed for the next few months here… 😉
�
Take care
�
� � � � � � � � � � � � � � � � � � � � � Frank
�
Von: Stefan Altheimer @.>
Gesendet: Dienstag, 8. November 2022 12:44
An: Kannix2005/homeassistant-selve @.>
Cc: Frank Frommelt @.>; Author @.>
Betreff: Re: [Kannix2005/homeassistant-selve] Tilt (Zwischenposition/Lüftungsposition) no longer available since latest update (Issue #5)
�
Hi Frank,
Tilting is not implemented yet in this new version. Should be not much work though.
Please wait a little longer.
Best
—
Reply to this email directly, view it on GitHub https://github.com/Kannix2005/homeassistant-selve/issues/5#issuecomment-1307077411 , or unsubscribe https://github.com/notifications/unsubscribe-auth/AN5XG725VGWSLW43ADELIN3WHI4HJANCNFSM6AAAAAAR2D6NZ4 .
You are receiving this because you authored the thread.  https://github.com/notifications/beacon/AN5XG72AFCQHKISBUW5M5H3WHI4HJA5CNFSM6AAAAAAR2D6NZ6WGG33NNVSW45C7OR4XAZNMJFZXG5LFINXW23LFNZ2KUY3PNVWWK3TUL5UWJTSN5BVSG.gif Message ID: @.*** @.***> >

Hi, over the past weeks I have been using an automation to set the Commeo covers of the sleeping room to "tilt" (Lüftungsposition).
service: cover.open_cover_tilt data: {} target: entity_id: cover.sz
Since the last update I get an error message instead of setting the device to tilt.
Fehler beim Ausführen einer Aktion Entity cover.sz_2 does not support this service.
Opening and closing the device (or setting it to a certain percentage) still works as before.
But all the services including "tilt" seem to be not available.
I see the following errors in my logfiles:
Logger: homeassistant.components.websocket_api.http.connection Source: components/websocket_api/connection.py:150 Integration: Home Assistant WebSocket API (documentation, issues) First occurred: 10:51:08 (4 occurrences) Last logged: 12:31:58
[547967065904] Error handling message: Entity cover.az_2 does not support this service. (unknown_error) from <IP_ADDRESS> (Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/<IP_ADDRESS> Safari/537.36) [547967065904] Error handling message: Entity cover.sz_2 does not support this service. (unknown_error) from <IP_ADDRESS> (Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/<IP_ADDRESS> Safari/537.36) [547502662912] Error handling message: Entity cover.sz_2 does not support this service. (unknown_error) from <IP_ADDRESS> (Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/<IP_ADDRESS> Safari/537.36)
Logger: homeassistant.helpers.script.websocket_api_script Source: helpers/script.py:409 First occurred: 10:51:08 (4 occurrences) Last logged: 12:31:58
websocket_api script: Error executing script. Error for call_service at pos 1: Entity cover.az_2 does not support this service. websocket_api script: Error executing script. Error for call_service at pos 1: Entity cover.sz_2 does not support this service.
 I was never able to make percentage runs :(

Can you check with the new version if it works as intended?

Hi Stefan,
�
sorry for the late reply, but I was out for vacation for a loooong time….
�
Basically, it now works as expected, but one thing is a bit strange and I do not know if this is coming from hacs or your integration:
�
The two Open and Close Buttons and the the Kippstellung/Tilt buttons (and related services) work as expected.
But as you see in the screen shots the “Abdeckung kippend öffnen” or “Abdeckung kippend schließen” Buttons
are only selectable when the cover is not completely closed oder completely opened.
They should be available at any state of the cover as they are only saved intermediated positions of the cover.
�
What from my perspective is a bit strange (but this is the same in all versions of the integration) is that
Position 100% represents “open cover” and position 0% is “closed cover”.
 Dezember 2022 12:29
An: Kannix2005/homeassistant-selve @.>
Cc: Frank Frommelt @.>; Author @.>
Betreff: Re: [Kannix2005/homeassistant-selve] Tilt (Zwischenposition/Lüftungsposition) no longer available since latest update (Issue #5)
�
Can you check with the new version if it works as intended?
—
Reply to this email directly, view it on GitHub https://github.com/Kannix2005/homeassistant-selve/issues/5#issuecomment-1361197515 , or unsubscribe https://github.com/notifications/unsubscribe-auth/AN5XG77CEOPHFLGCCQ5PSWLWOLSXDANCNFSM6AAAAAAR2D6NZ4 .
You are receiving this because you authored the thread.  https://github.com/notifications/beacon/AN5XG7YEI2GG7FQNFKRID43WOLSXDA5CNFSM6AAAAAAR2D6NZ6WGG33NNVSW45C7OR4XAZNMJFZXG5LFINXW23LFNZ2KUY3PNVWWK3TUL5UWJTSREI44W.gif Message ID: @.*** @.***> >

The buttons should now be always accessible.
I added an option to reverse the direction of the covers. Though it may not work for now - don´t know why though. You can try though.
I´m closing this issue because the core problem has been solved.

Hello.
I have just installed 3.0.6-1. The Tilt service does not seem to be available for my 6 Iveo shutters.
Is this a bug or will the function be available sometimes?


Fix https favicon issue and scott's Picture

Fixed These issues as seen in the pictures. Nice Podcast Wes BTW.

thanks a ton!


cilium/cmd: Disable TestCountUniqueIPsecKeys on net-next

Since the net-next version bump in #18496, this test is consistently
failing. Unfortunately, the net-next bump was necessary to fix a bigger
issue where all pipelines were broken, so let us disable that test for
now.

/test-runtime

Apparently the check is not sufficient, as the test is not skipped. Need to investigate.

Apparently NETNEXT is not set within the VM - so I decided to just check the kernel version instead.

/test-runtime

/test-runtime

@tklauser Awesome, then I'm closing this in favor of yours. We can always re-open if needed.


issue using converted vnect.pkl

i converted the caffemodel using the caffe_weights_to_pickle.py.
however, when i want to load the vnect.pkl with tensorflow, i get:
DataLossError (see above for traceback): Unable to open table file models/weights/vnect_tf: Data loss: not an sstable (bad magic number): perhaps your file is in a different file format and you need to use a different restore operator?
thanks for any help

check vnect_model.py in the models folder. But I am not sure should we directly save the model from there.

@yukaliu07 could you maybe explain how/where to use saver.save?

@yukaliu07 could you maybe provide some more detail on how to use saver.save? I have implemented it as follows, but the model files that this returns, give me wrong results:
with tf.Session() as sess:
    saver = tf.train.Saver()
    tf_writer = tf.summary.FileWriter(logdir='./', graph=sess.graph)

    sess.run(tf.global_variables_initializer())
    saver.save(sess, './vnect_tf')
    print(model.res5b_branch2c_new)
    print(model.heatmap, model.x_heatmap, model.y_heatmap, model.z_heatmap)

@lavage
with tf.Session() as sess:         saver = tf.train.Saver() 	model.load_weights(sess, model_file) 	save_path = saver.save(sess, "./vnect_tf")

@yukaliu07
I use the code but the pkl can't convert correctly.
Error message:
Traceback (most recent call last):
File "models/vnect_model.py", line 175, in
model = VNect(368)
File "models/vnect_model.py", line 13, in init
self._create_network()
File "models/vnect_model.py", line 94, in _create_network
self.res4d_branch2a = tc.lvnectayers.conv2d(self.res4c, kernel_size=1, num_outputs=256, scope='res4d_branch2a')
AttributeError: 'module' object has no attribute 'lvnectayers'

Hello,
I had tried this code with these follows.
1.Download weights from the author of paper
2.change weights with using './caffe_weight_to_pickle.py'

run '/models/vnect_model.py' to get

vnect_tf.data-00000-of-00001
vnect_tf.index
vnect_tf.meta

run '/demo_tf.py'

But I am getting an error like this
2018-09-27 16:11:48.784541: W tensorflow/core/util/tensor_slice_reader.cc:95] Could not open models/weights/vnect_tf: Failed precondition: models/weights/vnect_tf; Is a directory: perhaps your file is in a different file format and you need to use a different restore operator?

@Robinchacko
At step 3 on your method, i guess you should fix the location of model file in demo_tf.py

I changed code line 173-181 in vnect_tf.py
if __name__ == '__main__':
    model_file = 'vnect.pkl'
    model = VNect(368)

    with tf.Session() as sess:
        saver = tf.train.Saver()
        model.load_weights(sess, model_file)
        save_path = saver.save(sess, "./vnect_tf")

@powermew Thanks for the reply. I have tried the methods that you have mentioned . But couldn't solve the problem. Could you please send me the files that you have edited.
<EMAIL_ADDRESS>] .

@musab1234,
Hi, did you get the model files? Could you share it?

Can you send your weight and model files?I have sent a email to the author since last week, but he haven't replied yet. my email is<EMAIL_ADDRESS>

can you send the weight and model file? much appreciation<EMAIL_ADDRESS>

Can you send the weight and the model file? Much appreciation<EMAIL_ADDRESS>


Android: Phone Calls- add AndroidFlags FLAG_ONGOING_EVENT

Still trying to get some form of incoming call working on Android
Currently using latest addition loopSound to get a ringtone to play on incoming call, works fine, except the notification dismisses itself in 3-4 secs
Could we also get FLAG_ONGOING_EVENT for AndroidFlags such that the notification remains heads-up until interacted with?
1- ongoing: true doesn't do anything (reproduced in stock rn app, similar issue here https://github.com/invertase/notifee/issues/450),
2- foregroundService doesn't work either. I read that it now takes 10 seconds to show, but even after 10 seconds, doesn't show. Android docs mention an exception for foregroundServiceType=phoneCall: https://developer.android.com/guide/components/foreground-services , but that doesn't work either
3- Fullscreen notifications have issues I mentioned earlier https://github.com/invertase/notifee/issues/501
I tried adding the constant value 2 for FLAG_ONGOING_EVENT in notification flags but it throws an error

an error

what error? Just curious - as with the other issues, more than happy to accept any PR that seems reasonable. It's not a use case I personally need (so I'm not motivated to personally author it, being honest) but it is one I would like to support (so I am motivated to collaborate in any way possible...)

TBF this is a use case that is supposedly already addressed in the lib with the ongoing attribute, so this could be a bug rather than a feature request
EDIT: Looks like I misunderstood ongoing, which means "ongoing in the notification panel" rather than "persists as heads-up". So my bad, no, not a bug, and seems FLAG_ONGOING_EVENT has the same behavior, which does not solve the persistent notification use case
Sorry for the confusion, closing this while looking for other options

Did you manage to have an persistent incoming call notification working ?
Cause I'm having a similar issue:
my notification is being moved to the "notifications shade" instead of staying on the foreground and visible, despite being associated with a foreground service, and being setup as ongoing.

@hadri3n you might like the work that happened this week --> #1134

@hadri3n you might like the work that happened this week --> #1134

I may actually love it ! Thanks for pointing it out ! 🙏


ref is not forwarded

First of all thank you for making and maintaining this project, it has been very helpful to me, I appreciate it!
But now I've run into a problem where a library requires me to pass the ref to a component and mui-image does not seem to support this.
If you don't mind I will create a pull request to get this sorted out as soon as possible. If you have any preference as to which element to pass the ref to, let me know. Otherwise I would just pass it on to the <img/> rather than the container.

i dont know why but this breaks the "shift" feature 🤔


Support WriteBatchWithIndex

WriteBatch is an iterable object, but that's not currently exposed through pyrocksdb.
It seems to just be WriteBatch.iterate(handler) from Java and Perl examples.

Mis-titled this - I don't need the WriteBatchWithIndex option -- it's just standard WriteBatch, but it has an iterable.

Fixed with https://github.com/stephan-hof/pyrocksdb/commit/302d1a64404d6b248cae543d11696302cf624fd5.


Retrieve a reference to a genomics pipeline pushed from Dockstore and display it in a Project

Analysts browsing public pipelines from the dockstore UI have a button by which they can push a pipeline reference into a Saturn Project, where it could subsequently be used to launch workflows.
See the UX flow referenced here
Where the steps in that flow are:

User logins to Dockstore with google ID
User searches for TOPMed WDL
User clicks 'send to Saturn'
User is transferred to our UX, where they select a Saturn project
Saturn as an application retrieves a reference to the method from Dockstore and calls the Workbench-Services "blank configuration" API
User is taken to screen in their project where batch pipelines are displayed.

Note that this flow was recently implemented in FireCloud. https://broadinstitute.atlassian.net/browse/GAWB-3098
Note that this case used a more complicated UX flow. For present purposes, if it makes development easier we can make the simplifying assumption that a user has an account and has at least one existing workspace.
Design needs:
"wireframes +" level interaction and visual design. No up-front user research needed. Designs must cover:

How issue selection works
Where tool references are placed within the overall project
How tool references are represented (an icon?)
How a user view details of a tool (look to FireCloud for inspiration)
How the blank databinding is represented, and its relation to the parent tool reference.

Engineering design needs:
Needs tech doc. FireCloud backend logic should be leverageable here. The overall flow of APIs should be the same. At a rough level, this is:
Saturn exposes a URL that Dockstore can hit with query parameters representing a specific tool
User is brought into our UX flow where they select their workspace.
Our system then goes to query dockstore for the particular tool, imports it and places a blank config in the workspace.
We need to document our the required API sequencing here, and call out any non-UI work that might need to be done (hopefully the answer is 'none)
External dependencies:
We need the Dockstore team at UCSC to add a 'send to Saturn' button analogous to their 'send to FireCloud' button, but pointed at the Saturn URL

See UI design mocks with a clickthrough path here

Note that we'll use the same flow as in firecloud where a user makes a blank method configuration
"Method Configurations" are an area specifically flagged for "rethink" in the FireCloud Feature Evaluation. Job launching has been highlighted as an area of urgent design need.
However, for reasons of expedience, we will be using existing method configuration APIs for the time being. There will be a separate release in future quarters targeted at improving the experience of batch pipeline launching.
We should however avoid using the name 'method configuration' in the UI. What in FireCloud was called a 'method', Dockstore would call a 'Tool'. We will use this language going forward. We should avoid 'method configuration' in favor of 'data binding'.
We should also invert the way these two items relate. In FireCloud, we present 'configurations' as the primary entity. In Saturn, the tool should be the primary entity with the data binding living beneath it.


Tolerances for $swipe

I was working on a directive to make it so you can slideout an offscreen menu via swipe, and I noticed a lot of the time, it was calling the cancel action seemingly prematurely.
Digging into the docs and code, it seems that the $swipe service has some tolerances: if you move Y pixels vertically before moving X pixels horizontally, it will cancel the swipe.
Thing is, the tolerances seem a bit too tight when testing on my Nexus 4.
Using this demo: http://cwspear.github.io/angular-menu-slideout/, I was logging when cancel was getting called and it was calling it about 1 out or every 3 or 4 times on what I would have considered perfectly good swipes.
Is it possible to make the tolerances Angular uses configurable?

PR: #5812

I'm closing this issue since the ngTouch module will be deprecated in AngularJS 1.7.0, and we will not do any more work on it. This is because touch handling is a complex topic, and there are stand-alone libraries that are better equipped to handle all the nuances and edge cases. For example, https://hammerjs.github.io/, which is also used by Angular.


vcpkg Documentation Survey

Hi! Augustin from the vcpkg team here. We are looking for feedback on our documentation and in-product help. We would appreciate it if you took 5 minutes to complete this survey. All feedback (positive or negative) is welcome! https://www.surveymonkey.com/r/JLPJTD9

Thank you everyone for taking the survey and rating our docs and in-product help! The survey is now closed. The average rating for our docs was 6.1 stars out of 10. In-product help was at 6.6 stars out of 10. We also received some very useful text feedback which we will be reviewing. We will use the feedback to improve your experience and re-run this survey at a later date to compare.


Downloads are failing (interrupted) for any custom protocol

Anything downloaded from a custom protocol (including beaker: or dat:) is failing to finish downloading. They immediately emit 'interrupted' without hitting the protocol handler.

Fixed


Add private-database package

i'll squash commits after code review and QC

Hello @frenautvh,
Your pull request is now closed due to inactivity.
Feel free to re-open it if you have any update.
Anna Bot for OVH UX <3

Hello @frenautvh,
Your pull request is now closed due to inactivity.
Feel free to re-open it if you have any update.
Anna Bot for OVH UX <3


Document network access of Prisma

Can be based on https://prisma.slack.com/archives/C044YLSN49E/p1681933341507699?thread_ts=1681815921.969089&cid=C044YLSN49E

Possibly related: https://github.com/prisma/docs/issues/1639

👋 Hi there,
We're reviewing and tidying up our backlog to focus on the most relevant and impactful issues. After careful consideration, we're closing issues that haven't had any recent activity or align with our current priorities.
If you believe this issue is still important or unresolved, you're welcome to reopen it or create a new one with updated details. Your feedback is always valued and we're here to help ensure our docs continue to improve.
Thank you for your understand and contributions!


Install Mod_security-nginx error

when I make the Modsecurity-nginx is show some error "configure.ac:40: error: possibly undefined macro: AM_PROG_AR
configure:20298: error: possibly undefined macro: AM_DEFAULT_VERBOSITY
" ??? why?

I have to use ModSecurity-nginx? but I use ModSecurity is normal when i add the "proxy_force_ranges on" in the nginx.conf and I want to know What is the difference between the two versions? I think most people use Modsecurity in production but no ModSecurity-nginx

Hi @Hello-Linux,
The differences are explained here: https://www.trustwave.com/Resources/SpiderLabs-Blog/An-Overview-of-the-Upcoming-libModSecurity/
Apart from that build.sh error did you managed to have ModSecurity compiled?

@zimmerle   yes

@zimmerle   I don't quite understand what you ask

That error does not means that ModSecurity won't work. I am asking to continue the compilation process in order to identify if that particular error is causing you any trouble or not.


The saga of the Black border around Errands Icon on KDE Plamsa continues

This was said to be fixed here: https://github.com/mrvladus/Errands/commit/9633b79557a75a22c56853fb47049ecd1647f00a
I tried uninstalling Errands and reinstalling it and I've been consistently updating the app as well (like I did 45 minutes ago; thanks for that!). I also deleted the image, downloaded it from the above commit and copied it back into /usr/share/icons/hicolor/scalable/apps/.
It's odd, because everywhere I see the icon, it acts with transparency, minus when the app is opened. I don't have this issue with other app icons.
Anyway, I'm not terribly worried about it myself (other issues are more important, I'm sure), but I did want to let you know, just the same.

I tried removing ~/.cache/icon-cache.kcache per this with no success: https://github.com/xournalpp/xournalpp/issues/3280#issuecomment-903575040

Actually, deleting ~/.cache/icon-cache.kcache worked! I had to restart for it to take. Thanks for your time! Closing...


Permanent Links via immutable fields?

I have the usecase where I need to be able to define fields that can only be set on creation an not changed later. The usecase are permanent links and references between objects.
Is there currently any way to realize this? How do people currently handle this?
Of course I could just tell this to contributors, but enforcing it is always more reliable.

So the value can be updated if it's blank, but once it has a value and the entry is saved, the field is visible but disabled, correct?

yes!

I'm interested in this feature as well. Is this something that you would accept contributions for?

This can be achieved with custom widgets, so I'm closing this as not planned.


drivers: flash: Add the flash driver of the stm32f1x family

Most of the code is copied from the stm32f0x family
Tested on stm32f103ze soc
Signed-off-by: Findlay Feng<EMAIL_ADDRESS>

Will we be able to get this into 2.0?

@findlayfeng, any plan for this work?


Ability to enable unstable feature in tests

tests.rs
#[rustversion::attr(nightly, feature(arbitrary_enum_discriminant))]

mod something;

error[E0658]: discriminants on non-unit variants are experimental
 --> tests/derive/enums/regular_enum.rs:9:9
  |
9 |     } = 0xde,
  |         ^^^^
  |
  = note: see issue #60553 <https://github.com/rust-lang/rust/issues/60553> for more information
  = help: add `#![feature(arbitrary_enum_discriminant)]` to the crate attributes to enable

error: aborting due to previous error

For more information about this error, try `rustc --explain E0658`.
error: could not compile `endiannezz`.

To learn more, run the command again with --verbose.

inner attribute (#![...]) is needed to enable unstable features. and the ability to use user-defined attributes as inner attributes is not yet stable and probably does not work at this time.
I'd recommend using a build script instead: https://github.com/dtolnay/rustversion/issues/8#issuecomment-555233586

I'll close this in favor of https://github.com/rust-lang/rust/issues/60553, since the required work here is in rustc, not this crate.
If there end up being changes required based on how that issue plays out, we can reopen an issue.

See also #8.

I'll close this in favor of rust-lang/rust#60553, since the required work here is in rustc, not this crate.
If there end up being changes required based on how that issue plays out, we can reopen an issue.

The linked issue is closed, but is that the right one? Seems like this would be blocked on https://github.com/rust-lang/rust/issues/54726

You're right. Fixed.


Add Stylistic

Since Stylistic (https://eslint.style/) originated directly from ESLint and is being actively developed, it would be a good addition. I am currently implementing it in my projects.

@stylistic/eslint-plugin unifies 4 plugins and together they have 284 718 weekly downloads with a strong upward trend.
Weekly downloads:
@stylistic/eslint-plugin: 51 798
@stylistic/eslint-plugin-js: 87 983
@stylistic/eslint-plugin-ts: 60 678
@stylistic/eslint-plugin-jsx: 51 985
@stylistic/eslint-plugin-plus: 32 274

Great find! I will indeed endeavor to incorporate this in a new release.


open_bci_v3.py: Remove unnecessary bytes()

open_bci_v3.py seems to try to use bytes() to create a byte from a specified code.  However this is not what bytes() does; rather, it creates a string representation of a number (or a sequence of null bytes of a certain length in Python 3).  The resulting behavior is still OK since comparing the strings obtained this way will still work correctly; but it's a weird thing to do.
Another option would be to use '\xA0' and '\xC0' directly and not using struct.unpack() at all, but I think it's better to keep it this way for consistency with the rest of conversions.

Ahoy!
Sorry, it took some time but even if this commit seemed trivial I wanted to make sure that the signals were actually untouched. Done, thanks for the work ;)


width and height of svg symbols

I tried to use svg symbols for nodes. This is my HTML.
    <body>
        <div id="app">
            <svg>
                <symbol id="sym01" viewBox="0 0 100 100"><circle cx="50" cy="50" r="45" stroke-width="5"stroke="blue" fill="red"/></symbol>
            </svg>
            <d3-network :net-nodes="nodes" :net-links="links" :options="options"></d3-network>
        </div>
    </body>

and then in my nodes list I have:
{ id: 2, name: 'my node 2', svgSym: '<svg class="icon"><use xlink:href="#sym01" /></svg>'}

Am I using symbols correctly?
In the graph options I have nodeSize: 50 and this makes 'regular' nodes have width and height equal to 50 (radius is 25), but it makes my 'special' node with id:2 have width and height equal to 25 (radius is 12.5). I guess somewhere you have something that defines width and height of the embedded svg as half of the value specified in the nodeSize attribute. Is this discrepancy intentional?

A jsfiddle here: https://jsfiddle.net/valenz/ung6t3w4/

1- No, use an svg doc, not a symbol, maybe the name of the prop is confuse.
2 yes, was intentional, but I don't remember why :smile: , I will fix it now.
Working fiddle: https://jsfiddle.net/ung6t3w4/1/

Updated fiddle: https://jsfiddle.net/ung6t3w4/2/
(the labels positions doesn't work with custom sizes...)


Error when re-arranging widgets over plot. Kinetic, 16.04

When I try to re-arrange widgets in rqt, whenever I pass with it over a plot widget, I get the error:
Traceback (most recent call last):
  File "/opt/ros/kinetic/lib/python2.7/dist-packages/qt_gui/dock_widget.py", line 90, in _event
    new_parent = self._get_new_parent(widget)
  File "/opt/ros/kinetic/lib/python2.7/dist-packages/qt_gui/dock_widget.py", line 139, in _get_new_parent
    widget = widget.parent()
TypeError: 'Canvas' object is not callable

So is there any workthrough for this issue for now?

I believe the consensus was that we won't get an upstream fix for this and
we will have to wait until Ros switches to Python 3 (I hate that Python 2
is still widely used, it's been a decade already!).
On Sun, Feb 16, 2020, 03:45 DanielChen<EMAIL_ADDRESS>wrote:

So is there any workthrough for this issue for now?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/ros-visualization/rqt_plot/issues/35?email_source=notifications&email_token=ABDLVRTF2PKL2Y6AAXAXWMLRDD4LBA5CNFSM4IPC6SZKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEL4A64Y#issuecomment-586682227,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABDLVRWQXWSZHOAHWYNNLEDRDD4LBANCNFSM4IPC6SZA
.

Hi there,
I came across this error myself and I did a bit of digging.
It's not an issue with rqt_plot as such, but rather with the version of matplotlib installed.
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/matplotlib/backends/backend_qt5agg.py", line 77, in paintEvent
    self.resizeEvent(event)
  File "/opt/ros/melodic/lib/python2.7/dist-packages/rqt_plot/data_plot/mat_data_plot.py", line 110, in resizeEvent
    self.figure.tight_layout()
  File "/usr/lib/python2.7/dist-packages/matplotlib/figure.py", line 2031, in tight_layout
    self.subplots_adjust(**kwargs)
  File "/usr/lib/python2.7/dist-packages/matplotlib/figure.py", line 1881, in subplots_adjust
    self.subplotpars.update(*args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/matplotlib/figure.py", line 241, in update
    raise ValueError('bottom cannot be >= top')
ValueError: bottom cannot be >= top
[rqt-2] process has died [pid 14148, exit code -6, cmd /opt/ros/melodic/lib/rqt_gui/rqt_gui --perspective-file=/opt/ros/melodic/share/viz/rqt/a.perspective __name:=rqt __log:=/home/berger/.ros/log/faf34a34-74f0-11ea-89cc-0242ac190002/rqt-2.log].
log file: /home/berger/.ros/log/faf34a34-74f0-11ea-89cc-0242ac190002/rqt-2*.log

More specifically, i've encountered this issue with a particular rqt perspective configuration and matplotlib version 2.1.1. However after upgrading to matplotlib 2.2.5 I can confirm that the error goes away and instead I get a rather harmless warning:
/usr/local/lib/python2.7/dist-packages/matplotlib/tight_layout.py:182: UserWarning: The bottom and top margins cannot be made large enough to accommodate all axes decorations.
  warnings.warn('The bottom and top margins cannot be made large '

A quickfix to this issue would be something like the following on the rqt_plot side:
https://github.com/ros-visualization/rqt_plot/blob/master/src/rqt_plot/data_plot/mat_data_plot.py#L110
try:
    self.figure.tight_layout()
except ValueError:
    pass

A quickfix to this issue would be something like the following on the rqt_plot side:

@bergercookie Please consider to create a pull request for the proposed workaround.

2.2.5

@bergercookie Yes, it was because of matplotlib version issues, I resolved by upgrading to 2.2.5. Thanks

To bump this further, I encountered this issue and fixed by upgrading matplotlib.
sudo pip install --upgrade matplotlib


clojure project build using gradle clojurephant plugin "namespace not found after loading "

Expected Behavior
I'm trying to build clojure project with gradle build tool using clojurephant plugin. The project should compile and work fine.
Current Behavior
I'm getting error  "namespace not found after loading "
Context

Steps to reproduce
I've the project here on github
Environment

**clojurephant version:0.6.0
**Gradle version: 7.3
**Java version:17.0.1
**OS version: Fedora 35

I've asked in stackoverflow as well https://stackoverflow.com/questions/70285116/gradle-project-build-using-clojurephant-couldnt-find-test-spec

As the Stack Overflow answerer indicated it's just an issue with your ns form:
https://github.com/rajcspsg/clojure-gradle-demo/pull/1
Hope that helps!


Add docc support and publish documentation to GitHub pages

Move Guides into swift-docc based format
Publish documentation to Github pages

https://github.com/apple/swift-docc/pull/109

Fixed the CR suggestion and rebased main to solve the conflicts.
Could you please review this again? @phausler

here is what it looks like currently: https://phausler.github.io/swift-async-algorithms/documentation/asyncalgorithms/


DOCS: Add a page about the network settings to be done on the vehicle's motherboard for SSH to work

Also, add photos.

Wait tell I get start testing the bot. I was planning on installing a DHCP server on the bot to make connecting a little bit easier. I would create the docs myself after it's done. Also suggest other enhancements to make connecting easier (and also to allow us to connect the bot to the internet without much effort).

@pranaypratyush DHCP servers don't need to be installed. They are bundled with Ubuntu. We can't use DHCP, it would make connecting harder. Static IP ssh-ing is easier because we know the IP. We can't find the IP of a DHCP computer on the network. Or can we?
And this issue is my work, because I have the photos. I will create a skeleton page, you can improve on it.

Added page with screenshots: https://github.com/auviitkgp/kraken_3.0/wiki/Network-settings-to-be-made-on-the-vehicle
cc @pranaypratyush @prudhvid
@pranaypratyush If you want to add more details, feel free. Wiki can be edited by anyone.

I think you got it wrong. DHCP won't decide the ip of the bot. We will set that as some default value ( and  maybe give it a default NETBios domain name ). The DHCP server will assign IPs to the clients (our lappy(s)). After this is done we won't require any configuration change on our lappy to ssh. Also we would have a domain name to ssh to instead of remembering an ip.

Hmm, okay. But I still don't see any significant advantage. IP addresses are not a stretch anyway, they can be automated with one simple shell alias. And it's a onetime configuration, and no installation is required. So, I think our present option is better, unless we see some significant advantage in installing DHCP server on the vehicle.
@prudhvid and @nevinvalsaraj What are your takes?

Yes of course. But being engineers I think the whole purpose of our life is automation (and taking other people's jobs). Plus your methods ( even the ssh command ) would still work after I have configured. Of course it's a non-essential feature but why not do it if we can ( would take like 30 min to test and won't have to touch it again. also it won't interfere with anything else ).

@pranaypratyush I really don't get it. Why should we do it when there's no value addition? It would install another package, which is completely unnecessary.

Just coz we are engineers

does not cut it.

P.S. Interesting discussion though.
cc @auviitkgp/developers

LOL.

@pranaypratyush I'm all for automating stuff, but I think a whole DHCP server for a one node network is overkill. After all, engineers prioritize optimization.
@icyflame Maybe we can have a shell snippet with the required aliases and so forth that can be sourced to .shellrc by anyone wanting to configure an SSH connection.

@nevinvalsaraj Good idea, I have been thinking about that. I have already added rsync commands for syncing local code onto vehicle and vehicle code onto machine, but they are in the dotfiles repository. I will isolate this stuff into a .shellrc file.


Add template features

A template includes many things! ✨ Here is a list of what we think should be included in this template:

[ ] CI

[ ] Runs tests and checks

Clippy checks

[ ] Dependabot file
[ ] Deployment

[ ] Pre-commit hooks (Should not run tests)

[ ] Clippy
[ ] Check (cargo check), sort dependencies
[ ] Import ordering and granularity (uses nightly fmt)
[ ] User must install an a npm library (add note to README)

[ ] Issue and PR templates
[ ] README

[ ] Badges

Codecov
Discord
Discourse
License
Others?

[ ] CONTRIBUTING guide

When to discussion vs issue?
Link to best practices guide
Link to code of conduct

[ ] LICENSE
[ ] Code owners file

Who can deploy
PRs need one review from one code owner
No merge commits, everybody rebase! 🕺

[ ] Releases

[ ] release-please

Runs publish part of CI, publish on crates.io
Automatically tags and creates GH release
Updates Cargo.toml with tag
Conventional commits (?)

[ ] GH repo settings

[ ] All commits must be signed
[ ] Default to "Squash and merge"
[ ] Automatically delete branch on merge

[ ] Nix support

Installs tooling and binaries outside of Rust ecosystem

[ ] wasmpack

Support for libs that use Wasm in browser for example

Added the one over here as well @bgins: https://github.com/fission-codes/rust-template/issues/1.

We can't move GH settings over via templates, but I did make signing commits default at the org level for our working groups/fission-codes.


Expose reference to Python file from Interactive Window cell

Currently, it is not possible to trace back from an Interactive Window to the original source Python file.
As discussed with @amunger there isn't always a 1:1 match from Interactive Window to Python files depending on the jupyter.interactiveWindow.creationMode setting, but it should technically be possible to link from a cell back to the Python file similar to what jupyter.interactive.goToCode is doing.
It would be great if we could expose this capability so that extensions could update the original source as the Interactive Window is read-only.

Consider this an upvote so data wranger can support interactive windows! https://github.com/microsoft/vscode-data-wrangler/issues/18

I'd very much like Data Wrangler to be able to interact with the Interactive Window.

Closing this as out of scope of now,
@pwang347 we can discuss this offline if and when this is necessary.
Right now it feels like a nice to have.


Test that NettyBlockHoundIntegration can be loaded with ServiceLoader

Motivation:
If something is mis-configured, the "main" test will fail but it is unclear
whether it fails because the integration does not work or it wasn't applied
at all.
Also see:
https://github.com/netty/netty/issues/9738#issuecomment-548416693
Modifications:
This change adds a test that uses the same mechanism as BlockHound does
(ServiceLoader) and checks that NettyBlockHoundIntegration is present.
Result:
It is now clear whether the integration is not working or it wasn't loaded at all.

@netty-bot test this please


Identify the candidate technologies for Nucleus and conduct a Trade Study

Had discussions with KDP and CWS product teams, to consider KDP and CWS as candidate technologies for Nucleus. Currently evaluating the features of KDP and CWS.

Met with Galen to setup CWS and Airflow. features are very much comparable.
Kevin will be sending over KDP Quick Start guide soon.
Will be looking into Talend. Trade study in work.

Ramesh did not get KDP documentation yet.
@jpl-jengelke provided some new tools to look at.

The trade study will include around 3 serious options: CWS + 2 others.
Some other option considered can be excluded from the trade study (KDP, Talend Open Studio, ...). The reason for the exclusion will be quickly motivated in the trade study.

@ramesh-maddegoda prepared a draft trade study.
@jordanpadams how do you think cumulus should be analyzed in this trade study, or should we have a specific ticket to analyze the "lessons learned" from cumulus development and operations by ESDIS ?

@tloubrieu-jpl @ramesh-maddegoda not sure how that should fit here. definitely want to learn more about what it does, but my understanding is it is a customized pipeline capability linking their ETL pipeline together. some minor research into that may be helpful, but not sure how deep we want to dive there.

We decided to work on a POC for:

Apache AirFlow
CWS, need to ask when they are planning to update with the latest Camunda.
Optionally: Camunda Community Edition

The POC

The slide deck of the Trade Study.
https://docs.google.com/presentation/d/1xbaJQ6e9jg3XZn2VXsfygKlUMZ_gW4c_t65Vkq0daKI/edit#slide=id.g12d488fa3c5_0_132
The detailed trade study (please check all work sheets in the following file).
https://docs.google.com/spreadsheets/d/17Yxf1m6f4VvLd6QFuqJADAhwKPhqQnQemtMb9MqWyDI/edit#gid=1253358367


Research options for persistency

Research options for persistency.
Relational (Postgre) vs NoSQL (Mongo) vs K-V Store (ETCD) with Go.
Implications like not supported stack - for instance K-V store is not provided out of the box on CF stack.
SM will run on CF first, so the initial setup should consider this.

The deliverable for research task is a comprehensive comment inside the issue that provide valuable information about the researched topic. It will be very helpful to be organised a knowledge sharing session with the team on the topic, that explains the matter and provide some examples. The issue can be closed once the team agrees on the technology that shall be used for each one specific aspect.

Research options for persistency
A relational database (Postgres) shall be used for the initial implementation of the Service Manager. The decision is based on the fact that the current database model backing the Service Manager is best fitted for a relation database.
There's a lot of options for components like database drivers and tools, which enhance the workflow when developing Go applications which use relational databases. The same cannot be said for NoSQL databases or some other key-value store.
A curated list of awesome Go storage projects and libraries.


create tests to match with other libs

Can you explain a reasons behind this PR?

correct me if i'm wrong, but i was thinking that one of the main concerns of this project was to be able to easily replace others libs that are worse in terms of size/speed, and this tests checks it

The simple case will not show compatibility issues. All color libraries add single color in the same way. You need more complex issues to find a problem.
All libraries does complex examples in a different way. There is no way to be 100% compatible with them because they are not compatible to each other.

you're right, this PR doesn't check it 100%, but i was thinking that it kinda helps 😄 but feel free to close it if doesn't make sense

Yeap. The difference will be on red('a ' + green('b') + ' c') vs chalk.red('a ' + chalk.green('b') + ' c').
Chalk reset the color (from green) and then switch it back to red. Nano Colors just switch green to red.
I am not sure that we need to change it.


Cold Wallet NFC Card

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
I want to integrate CryptoPlatz Vault, NFC Cold Wallet Card with Trust Wallet.
Describe the solution you'd like
A clear and concise description of what you want to happen.
The seed phrase and private keys will be stored encrypted in CryptoPlatz NFC Card.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Checklist

[ ] task number 1

[ ] subtask number 1
[ ] subtask number 2

[ ] task number 2
[ ] task number 3

Resources

www.cryptoplatz.ch
Resources link
Additional context
Add any other context or screenshots about the feature request here.

Hello, I didn't understand your request - please more specific, closing it for now.

Hi
I want to store the private key on NFC Card, not on smartphone.

It would work as a HW wallet, correct?
Trust Wallet currently does not support hardware wallets, but we intend to add that in the future. Check back later. Sorry, CryptoPlatz will be probably not the first HW wallet supported.


Store and reload answers for exercises

When students make a list of exercises it is nice that they can find back their previous answer and even in the list of exercises check immediately the one they succeeded and the one that still need to be done.
I started to change the views/Exercise to store the date and be able to reload it.
@hamed-musallam The problem is that as far as I know we can not currently change the molecule in an existing editor. Can you check the code so that the Molecule Editor is only created when we know if there is or not a current answer ?

@hamed-musallam Please check https://github.com/zakodium/react-ocl/issues/4#issuecomment-583253185


Football gamemode ! WTF OMG

https://www.youtube.com/watch?v=LsowTlWzNtU

Isn't that just Leap, but with people and custom skins. This can be done, but it looks pretty boring.


Fixed an ultra minor typo

strech => stretch
Noticed a Invalid column size: strech when reading through the samples. http://imgur.com/a/lsAbP   Hence, this minor fix to the typo.

This seems like a small (but important) contribution, so no Contribution License Agreement is required at this point. We will now review your pull request.
Thanks,
Microsoft Pull Request Bot

Thanks!


drivers: ethernet: enc424j600: change mac addr runtime

Add ability to change mac address at runtime using net mgmt config call

Sorry, I cannot get this compliance check to fix and I do not have time to keep fixing it.

Sorry, I cannot get this compliance check to fix and I do not have time to keep fixing it. I give up.

Squash your commits into the first one (you shouldn't use fixup commits), and force push the single commit.


ESP32 is not able to connect to wifi

Hello There,
i had done this using another guide.
but your map function is i want to check.
i'm running ESP32 code on ESP32 MH et code is running smoothly.
BUT after BLE scan, ESP 32 is not able to connect to any wifi
is there any change in board.txt file()?
or is there any other configuration i have to do?
Thanks

No extra configuration needed, the program runs a loop, scan->report->scan->report reconnecting to wifi automatically.

Thanks for your reply, I have done this by some modification in code.
Still I am not getting perfect result of location due to placing of gateway, I am using nrf52832 as gateway and send its data to dashboard through mqtt. Can you suggest more rssi filter algorithms. I added Kalman and average filter to get results. Results are considerable good if all gateway are in open space without wall. If wall comes in between beacon and Gateway, then result is not  good show wrong placing. So if you can help me regarding it, then please help me.
So two point:

Location of gateway to get more accurate results?
overcome the wall effect of beacon?


Use decimal.js for new money type

@tbergq Tip - I used this lighter version instead: https://github.com/MikeMcl/decimal.js-light/ (it's the same but without some less needed features)

Thanks for pointing it out, I made a new issue to investigate it #1546


--extra-output metadata option outputs different metadata than the expected compilation JSON output with bytecode_hash = "ipfs"

Component
Forge
Have you ensured that all of these are up to date?

[X] Foundry
[X] Foundryup

What version of Foundry are you on?
forge 0.2.0 (4fcd7e0 2022-05-26T00:04:48.079145Z)
What command(s) is the bug in?
forge build
Operating System
macOS (Apple Silicon)
Describe the bug
When outputting the solc compilation metadata using --extra-output metadata or --extra-output-files metadata the resulting metadata is not matching the bytecode IPFS hash of the compiled contract.
To reproduce in a fresh project:
forge init
forge build --extra-output metadata

then inspect the json output in out/Contract.sol/Contract.json.
I've done the same setup with hardhat and raw solcjs, both produce the expected metadata that matches exactly the IPFS hash appended to the bytecode.
For the same, empty contract, here's the metadata that hardhat outputs:
{
  "compiler": { "version": "0.8.13+commit.abaa5c0e" },
  "language": "Solidity",
  "output": {
    "abi": [],
    "devdoc": { "kind": "dev", "methods": {}, "version": 1 },
    "userdoc": { "kind": "user", "methods": {}, "version": 1 }
  },
  "settings": {
    "compilationTarget": { "contracts/Contract.sol": "Contract" },
    "evmVersion": "london",
    "libraries": {},
    "metadata": { "bytecodeHash": "ipfs" },
    "optimizer": { "enabled": false, "runs": 200 },
    "remappings": []
  },
  "sources": {
    "contracts/Contract.sol": {
      "keccak256": "0x88c53f90b24a07c57711738987ddc81838a43c4ab7b6ce2986f1b470500ebe86",
      "license": "UNLICENSED",
      "urls": [
        "bzz-raw://58178e99c552a2042318a4be96c35abdda48f5a1537a5c5c27c234b5dda43f2f",
        "dweb:/ipfs/QmTgVWYsTQyBx7PsNtmUaryTF27cjLQseyk4sxYGChd5ui"
      ]
    }
  },
  "version": 1
}

and here's the metadata that forge outputs:
{
    "compiler": { "version": "0.8.13+commit.abaa5c0e" },
    "language": "Solidity",
    "output": {
      "abi": [],
      "devdoc": { "kind": "dev", "methods": {}, "version": 1 },
      "userdoc": { "kind": "user", "methods": {}, "version": 1 }
    },
    "settings": {
      "compilationTarget": {
        "/Users/joaquim/solidity_projects/foundry_metadata_tests/src/Contract.sol": "Contract"
      },
      "remappings": [
        ":ds-test/=/Users/joaquim/solidity_projects/foundry_metadata_tests/lib/forge-std/lib/ds-test/src/",
        ":forge-std/=/Users/joaquim/solidity_projects/foundry_metadata_tests/lib/forge-std/src/",
        ":src/=/Users/joaquim/solidity_projects/foundry_metadata_tests/src/"
      ],
      "optimizer": { "enabled": true, "runs": 200 },
      "metadata": { "bytecodeHash": "ipfs" },
      "outputSelection": {},
      "evmVersion": "london"
    },
    "sources": {
      "/Users/joaquim/solidity_projects/foundry_metadata_tests/src/Contract.sol": {
        "keccak256": "0x88c53f90b24a07c57711738987ddc81838a43c4ab7b6ce2986f1b470500ebe86",
        "urls": [
          "bzz-raw://58178e99c552a2042318a4be96c35abdda48f5a1537a5c5c27c234b5dda43f2f",
          "dweb:/ipfs/QmTgVWYsTQyBx7PsNtmUaryTF27cjLQseyk4sxYGChd5ui"
        ],
        "license": "UNLICENSED"
      }
    },
    "version": 1
  }

Both hardhat and solcjs output metadata with relative paths, but forge outputs absolute paths. This seems strange to me as this metadata is supposed to be used to help re-compile the contracts on other machines, absolute paths make no sense to me here.
I've looked at the ethers-rs source and have noticed the function: with_stripped_file_prefixes
This seems relevant to my problem, is it possible that forge is not calling this function to strip the base paths out of the compilation artifacts, therefore causing a mismatch between the IPFS hash of the metadata and the IPFS hash appended to the bytecode by the compiler?
Might be totally wrong on this, but it's my best guess.
Any help on figuring out this mystery would be greatly appreciated, I can provide sample test code to compare extracted IPFS hashes from bytecode and computed IPFS hashes from a file if it helps.

Ref #1315

should be fixed by 1317

thanks for the quick turn around @mattsse ! testing this asap, will report back

@mattsse what's the easiest way for me to test this fix?

we haven't bumped it yet on foundry
the easiest way would be to build it forge yourself with patched ethers is by following this: https://github.com/foundry-rs/foundry/blob/master/Cargo.toml#L52
then cargo build --bin forge --release and the binary will be in target/release/forge

@mattsse Thank you! the metadata output now has relative paths has expected.
However, I'm still not getting a match between the output metadata IPFS hash and the IPFS hash appended to the bytecode by solc.
In my investigation, I found a few issues in ethers-rs related to json serialization/deserialization. I'm going to create a new issue over there with my findings, to keep the conversation focused.
Thank you again for your hard work.

@mattsse FYI, opened https://github.com/gakonst/ethers-rs/issues/1325 - the serialization of the compiler metadata output is altering its original contents, resulting in a different IPFS hash than the one that gets appended to the bytecode.

Is this solved?

Just tested it today. The new rawMetadata field is now present in the output.
I would suggest writing a test comparing the raw metadata and the parsed one. There's still some differences. Last one i noticed is a missing settings.evmVersion field.


Support for the experimental syntax 'decorators-legacy' isn't currently enabled

My package.json
{
	"name": "upgrade",
	"version": "0.1.0",
	"private": true,
	"dependencies": {
		"react": "^16.6.0",
		"react-dom": "^16.6.0",
		"react-scripts": "2.1.1"
	},
	"scripts": {
		"start": "react-scripts start",
		"build": "react-scripts build",
		"test": "react-scripts test",
		"eject": "react-scripts eject"
	},
	"eslintConfig": {
		"extends": "react-app"
	},
	"browserslist": [
		">0.2%",
		"not dead",
		"not ie <= 11",
		"not op_mini all"
	],
	"devDependencies": {
		"@babel/plugin-proposal-class-properties": "^7.1.0",
		"@babel/plugin-proposal-decorators": "^7.1.2"

	}
}

My .babelrc
{
    "presets": [
        "react-app", [
            "env",
            {
                "targets": {
                    "browsers": "> 2%"
                }
            }
        ]
    ],
    "plugins": [
        ["@babel/plugin-proposal-decorators", { "legacy": true }],
        ["@babel/plugin-proposal-class-properties", { "loose" : true }],
        ["@babel/plugin-syntax-decorators"]
    ]
}

create-react-app version 2.1.1
How to turn on the decorators?

Hi! You don't need to configure babel (and actually cannot without ejecting).
Decorators are only supported if you're using TypeScript, you cannot use them with normal JS.
I suggest you don't try decorators because they're still a proposal going under change.

Hello.
I met the same problem. In create-react-app version 2.1.1.
Delete node_modules first, and then install node_modules.
I'm configuring through. babelrc
{    "presets": [       "react-app"     ],     "plugins": [       [         "@babel/plugin-proposal-decorators",         {           "legacy": true         }       ]     ] }
Hope to help you.

Hello.
I met the same problem. In create-react-app version 2.1.1.
My solution is deleteing node_modules, and then you need install node_modules.
next configuring . babelrc
{ "presets": [ "react-app" ], "plugins": [ [ "@babel/plugin-proposal-decorators", { "legacy": true } ] ] }
then you can use ES6 Decorator syntax.
Hope to help you.

It doesn't work!

@happystory, as @Timer mentioned above, this isn't supported right now. There are a few options - ejecting, or my preferred would be to create a fork of react-scripts.
You could also fork our Babel preset, and use that instead (Yarn let's you do this with resolutions).


Feature: Removed fluid interface from module entity/interface

added missing doctypes to the module interface
removes return types from interface
removes fluid style from module entity

@Ocramius sry this switched from a Fix to a Feature :>


Coprocessor is much slower when select range is not point range.

I ran a benchmark on a 10000 records table.
query like
select * from t where id = 1 or id = 2

takes 800us, but query like
select * from t where id > 0 and id <=2

takes 2ms.
Both return 2 records, the difference is that first select ranges are point range, but the second select is not.

The overhead for seek a key in lock cf is not trivial, because there are a lot of tombstones in lock cf.


Fix broken R test: Install Homebrew GCC

Missing GCC Fortran causes installation failure of a dependency package (igraph).
@trivialfis @CodingCat @RAMitchell This should fix the R test.

@hcho3 If this is a bug in some R dependencies, we might just report it to the upstream ...  Watching your commit history I can almost feel your pain. :)

@trivialfis It appears to be configuration problem, where the Fortran compiler is not located properly. Looks like there is some difference between my Macbook Pro and Travis CI.

@hcho3 Not having the correct toolchain after "configure" phase is a bug in build system.   But it's autotools ...  We can still raise an issue: https://github.com/igraph/rigraph

@trivialfis And now other dependencies are randomly failing to download :(

Let's see if we can come up with a minimal reproduction of the build bug in igraph...

Phew, the R build is finally fixed.

Shall we merge it?


Can not connect SSE method

Thanks for awesome project !!
In this case, i can not send to client that message. In client, i got a notification that no active within 45000 milliseconds. No response recceived.

This is not a PocketBase issue.
In order to receive any messages you need to subscribe to a specific topic - either collectionId/* or collectionId/recordId. For more details about the realtime APIs please refer to https://pocketbase.io/docs/api-realtime/.
If you need further help, please open a Q&A discussion elaborating more on your use case and why you can't use the JS SDK.

Additionally note that the onRealtimeConnectRequest hook is triggered right before establishing the SSE client connection, so if you are trying to send a realtime message you need to attach to some other hook.

Thanks, I have done this !!


Expose InertiaAppProps type from the index

Because the <App /> component receives InertiaAppProps as its props, using said type elsewhere is sometimes required. Currently, it's accessible by digging to "inertia-adapter-solid/dist/types/App", which would work but isn't too pretty.
This one liner PR (despite having 7 commits, git rebases ftw) simply exposes the type from the index file, so import { type InertiaAppProps } from "inertia-adapter-solid" works. This also makes it more convenient for tsconfig using stricter module resolution modes ("moduleResolution": "bundler" in mind here), where "inertia-adapter-solid/dist/types/App" is not recognised at all.

Hello, is there anything here to modify before you're able to merge ? Thanks

Hello, sorry for the big delay.
I'm not sure what your intended use case is. This type is used internally only for type-hinting the inertia root hydration process, and is not intended to be used in the App itself.
I've quickly checked with the other adapters and neither expose this internal type either.

I took over with my own fork; no longer relevant.


Check data returned for orientation, accelerometer and gyroscope

Seems to return different results when compared to daydream-controller.js.

Resolved via 2499a97ce2878ddb3e0f35d4b58b57b3accd4609.
See this answer for more information.


Width, height & orientation in metadata not updated after rotate()

Loaded an image with EXIF orientation indicating it is rotated CW 90deg. At this point, if I call rotate(), I expect that the image is rotated to the correct orientation, and also that the width and height metadata to be updated, but they are not. The image data itself is indeed rotated, but the metadata is unchanged.
      let md = await normalizedImage.metadata();
      console.log(
        `Before rotate & flatten: ${md.width} x ${md.height} orientation: ${md.orientation}`
      );
      normalizedImage = await normalizedImage
        .rotate()
        .flatten({ background: { r: 255, g: 255, b: 255 } });

      md = await normalizedImage.metadata();
      console.log(
        `After rotate & flatten: ${md.width} x ${md.height} orientation: ${md.orientation}`
      );

Console output:
Before rotate & flatten: 2640 x 1980 orientation: 8
After rotate & flatten: 2640 x 1980 orientation: 8

Hi, in this code sample, the reference to normalizedImage remains unchanged and still refers to the original unprocessed image (as flatten returns the same instance for chaining purposes).
Try something like the following (untested):
      const processedImage = await normalizedImage
        .rotate()
        .flatten({ background: { r: 255, g: 255, b: 255 } })
        .toBuffer();

      md = await sharp(processedImage).metadata();

I hope this information helped. Please feel free to re-open with more details if further help is required.

Hi, I'm trying to do this too. That solution does work, but it requires reading the image data twice. Is there a way to do this without calling toBuffer() inbetween?

I have a same problem too, because if read twice, it's so slow.

Here's a possible approach for combining auto-orient and resize in a single pipeline.
let { width, height, orientation } = await sharp(input).metadata();
if (orientation > 4) {
  [width, height] = [height, width];
}
await sharp(input).rotate().resize({ width, height })...


DuckDB Native Schema Inference

This was already implemented. We do a SELECT * FROM <table> LIMIT 0 which because of the Arrow vtab implementation, returns an Arrow record with 0 rows and the schema already embedded. Any other method of inferring the schema would be worse than this.


#10217 Support for multiple params with the same name

Fixes for #10217

Any news on this pull request? It is required for me to implement filters in my app

@omnilight I'll verify it ASAP

The patch produces JS errors:
Grid column definition:
[
    'attribute' => 'state[]'
    'filter' => function ($column, $model, $attribute) {
        return Html::activeDropDownList($model, $attribute, ['ok' => 'ok', 'incoming' => 'incoming', 'other' => 'other'], ['multiple' => true, 'class' => 'form-control']);
     },
     'value' => 'state'
],

Chrome, JS debug:

Could you please test it once more, fix bugs and ensure that all works really good?

Fixed variable assignment

Merged with adjustments https://github.com/yiisoft/yii2/commit/d3cfb87ba67a328d197d1a9e52dbb12a7bf8476b

Thank you!

Greate! Thank you!


digitizer mode on X6 breaks single shot fidelity measurement

SingleShot measurement filter returns empty array when X6 is put in digitizer mode. averager mode is fine, though. Expected behavior??

I would say that this is not expected. In principle, only digitizer mode is appropriate for the SingleShot filter.


Restructure API Reference content to improve left sidebar

[ ] Closes #xxxx
[ ] I am familiar with the contributing guidelines
[ ] Tests added
[ ] Updates entries in docs/sphinx/source/reference for API changes.
[ ] Adds description and name entries in the appropriate "what's new" file in docs/sphinx/source/whatsnew for all changes. Includes link to the GitHub Issue with :issue:`num` or this Pull Request with :pull:`num`. Includes contributor name and/or GitHub username (link with :ghuser:`user`).
[ ] New code is fully documented. Includes numpydoc compliant docstrings, examples, and comments where necessary.
[ ] Pull request is nearly complete and ready for detailed review.
[ ] Maintainer: Appropriate GitHub Labels (including remote-data) and Milestone are assigned to the Pull Request and linked Issue.

The sidebar in the pydata-sphinx-theme reflects the document hierarchy; it shows the tree relationship between parent pages and children pages.  Unfortunately, unlike the RTD theme we used to use, it doesn't seem to have any ability to group siblings by what section of the page their toctree entry appears in.  That results in unwieldy layers of the tree with 50+ elements.  I think this is what @wholmgren was referring to in https://github.com/pvlib/pvlib-python/issues/329#issuecomment-1295437513.
I have looked into this at some length and I don't think there's any way to somehow include the in-page header/layout information in the left sidebar.  It is possible to show captions for the top-level tree nodes as I did for bifacial_radiance, but I don't think that can be used anywhere but the top level, plus they can't expand/collapse their lists.  The only way I have found to more or less replicate our sidebar from the RTD theme is to rearrange the content such that the document (folder) hierarchy reflects the desired structure.  The first commit on this PR branch tries it out for the PV Modeling subsection of our API Reference:

main (link)
this PR (link)

Unfortunately this also means that things that used to be all on one page (e.g. the IAM and Temperature toctrees) are now separate pages.  I don't think there's any way around this with the pydata theme; if we want a tree-like sidebar then we have to have a tree-like page hierarchy.
Switching to another theme is another possibility, but I'm not enthusiastic about that idea.
For now I've only changed the "PV Modeling" section in order to get feedback on this approach.  If it is accepted then I will proceed with restructuring the other sections as well.

I think it is an improvement.  Independent of this, there are some awkward categories and this may or may not be the right time or place to discuss them.  Some things are categorized by what they model; others by how they model something.  I'm not sure, for example, where empirical models of PV module behavior would fit.

After having looked into this a bit, there doesn't seem to be a better solution than what @kanderso-nrel proposes. Thus, I am in favor of changing the document/file structure

@kanderso-nrel I like the new layout too.

I like it a lot!

Thanks everyone for taking a look.  I broke up the pv_modeling, effects_on_pv_system_output, and irradiance pages since they had in-page headers that could be recast as directory structure.  modelchain is another candidate but I thought it would be better to keep all that in one page since those class methods are more related to each other than the functions on the other pages are.  The other pages didn't have in-page headers so I left them alone.
As always there's more that could be done to improve the Reference section, but I'm inclined to call this an improvement as-is and leave other changes to the future.  Test failure is unrelated.

@kanderso-nrel this is a significant improvement to the API reference. I have more hope that I can locate the page for a specific function.

Ok, glad to hear it.  I'm waiting to finalize this PR until #1602 is merged; better to resolve these pesky conflicts here in this PR.  After that I'll submit a PR for the release itself.

One thing that is not clear is where various existing and future fitting functions should go.  In general I think the best place for them would be as close as possible to the models they serve, both in the code (except if they are really long) and in the API reference.  There could be a section listing just fitting functions as there is now, but I would see that as secondary.

I'm pretty sure I've correctly fixed up all the merge conflicts here, but of course we should expect additional conflicts in any open PRs that touch this part of the docs.  I won't bother folks for a green checkmark before merging since several people have already expressed support.
Let's take up @adriesse's point about where functions should live and be listed in a separate issue (Anton, can you open one?).


Modify ctr run to search for read-only flag instead of readonly

We pass --read-only argument to ctr to be interpreted at
https://github.com/containerd/containerd/blob/master/cmd/ctr/commands/commands.go#L100-L103
ctr run looks for if readonly is defined instead of read-only, which is not defined. This allows for ctr run to set the container's filesystem as readonly.

Thanks, change looks good, but needs sign (git commit -a -s --amend)

Thanks for the note!

Codecov Report

Merging #3872 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master    #3872   +/-   ##
=======================================
  Coverage   42.34%   42.34%
=======================================
  Files         130      130
  Lines       14683    14683
=======================================
  Hits         6217     6217
  Misses       7540     7540
  Partials      926      926

Flag
Coverage Δ

#linux
45.76% <ø> (ø)
:arrow_up:

#windows
37.82% <ø> (ø)
:arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 5af0dcb...787be0e. Read the comment docs.

This seems like a reasonable bug fix for backport, although ctr is not supported officially. Any opinions on taking back to release/1.3 and release/1.2? @containerd/containerd-maintainers @containerd/containerd-reviewers

@estesp I am ok to cherry-pick to release/1.3 and release/1.2.


Can this patch work for mid 2012 Macbook Pro Retina Display 15"?

I found a link to your github page from a apple discussion thread. I think I am having the same problems on my mac. I don't see an option to attach an image but the crash report says but here is a link
https://i.imgur.com/Gj2YjrF.png
It works fine when it is one but then it will just randomly crash. If I close it without shutting down it does not turn back on. Somebody said to uncheck "enable power nap" on a discussion board so I tried that as well but it still shuts down and then does not turn back on. I had IT here at school put in a new battery that I bought just a week or so ago. Sorry for the long message I didn't mean to take up too much of your time I just wanted to give you as much information as possible so you knew what was going on.
Thank You,

Also want to know whether the method would work on my MBPR 15" mid-2012. Have the same problem:
GPU Panic: mux-regs 2 0 a0 99 0 8 severity 3 WS-ready 1 switch-state 0 IG FBs 1 EG FBs 0:0 power-state 3 3D busy HDA idle system-state 1 power-level 20:20
Many thanks!

The problem on mac mid-2012 is totally different, my fix can't solve this mac version's problem. Sorry.