libtensorflowlite target compilation failed

System information

OS Platform and Distribution (e.g., Linux Ubuntu 16.04): Linux Ubuntu 20.04
TensorFlow installed from (source or binary): from source
TensorFlow version: 2.4.0, 2.4.1., latest (tried few)
Python version: Python 3.8.10
Installed using virtualenv? pip? conda?: pip
Bazel version (if compiling from source): bazel 3.7.2
GCC/Compiler version (if compiling from source): 9.3.0

Describe the problem
I'm trying to build from source Tensorflow Lite with Select Tensorflow Operation for ARM64 architecture using Bazel build system and I get the compilation error.
/home/anastasiia/.cache/bazel/_bazel_anastasiia/db1857d8efe24e737c8a02a07ecf55c7/external/boringssl/BUILD:147:11: C++ compilation of rule '@boringssl//:ssl' failed (Exit 1): aarch64-linux-gnu-gcc failed: error executing command /home/anastasiia/.cache/bazel/_bazel_anastasiia/db1857d8efe24e737c8a02a07ecf55c7/external/aarch64_linux_toolchain/bin/aarch64-linux-gnu-gcc -fstack-protector -g0 -O2 -DNDEBUG -ffunction-sections ... (remaining 40 argument(s) skipped)
In file included from /usr/include/openssl/ssl.h:18,
                 from external/boringssl/src/ssl/bio_ssl.cc:10:
/usr/include/openssl/bio.h:687:1: error: expected constructor, destructor, or type conversion before 'DEPRECATEDIN_1_1_0'
 DEPRECATEDIN_1_1_0(int BIO_get_port(const char *str, unsigned short *port_ptr))

For ARM build I used tutorial: build_arm
For Select TF operations: ops_select
Looks like an issue is in the dependency library openssl.
Without Select TF ops everything is ok.
Provide the exact sequence of commands / steps that you executed before running into the problem

git clone https://github.com/tensorflow/tensorflow.git tensorflow_src
Add the TensorFlow ops delegate library dependency to the build dependencies. In the file tensorflow/lite/BUILD for target libtensorflowlite add dependency : tensorflow/lite/delegates/flex:delegate.
bazel build --config=elinux_aarch64 --config=monolithic -c opt //tensorflow/lite:libtensorflowlite.so

Any other info / logs
ERROR: /home/anastasiia/.cache/bazel/_bazel_anastasiia/db1857d8efe24e737c8a02a07ecf55c7/external/boringssl/BUILD:147:11: C++ compilation of rule '@boringssl//:ssl' failed (Exit 1): aarch64-linux-gnu-gcc failed: error executing command /home/anastasiia/.cache/bazel/_bazel_anastasiia/db1857d8efe24e737c8a02a07ecf55c7/external/aarch64_linux_toolchain/bin/aarch64-linux-gnu-gcc -fstack-protector -g0 -O2 -DNDEBUG -ffunction-sections ... (remaining 40 argument(s) skipped)
In file included from /usr/include/openssl/ssl.h:18,
                 from external/boringssl/src/ssl/bio_ssl.cc:10:
/usr/include/openssl/bio.h:687:1: error: expected constructor, destructor, or type conversion before 'DEPRECATEDIN_1_1_0'
 DEPRECATEDIN_1_1_0(int BIO_get_port(const char *str, unsigned short *port_ptr))
 ^~~~~~~~~~~~~~~~~~
In file included from /usr/include/openssl/asn1.h:23,
                 from /usr/include/openssl/objects.h:15,
                 from /usr/include/openssl/evp.h:28,
                 from /usr/include/openssl/x509.h:18,
                 from /usr/include/openssl/ssl.h:20,
                 from external/boringssl/src/ssl/bio_ssl.cc:10:
/usr/include/openssl/bn.h:183:43: error: 'BN_ULONG' does not name a type; did you mean 'SHA_LONG'?
 int BN_abs_is_word(const BIGNUM *a, const BN_ULONG w);
                                           ^~~~~~~~
                                           SHA_LONG
/usr/include/openssl/bn.h:186:39: error: 'BN_ULONG' does not name a type; did you mean 'SHA_LONG'?
 int BN_is_word(const BIGNUM *a, const BN_ULONG w);
                                       ^~~~~~~~
                                       SHA_LONG
/usr/include/openssl/bn.h:214:22: error: 'BN_ULONG' was not declared in this scope
 int BN_num_bits_word(BN_ULONG l);
                      ^~~~~~~~
/usr/include/openssl/bn.h:214:22: note: suggested alternative: 'SHA_LONG'
 int BN_num_bits_word(BN_ULONG l);
                      ^~~~~~~~
                      SHA_LONG
/usr/include/openssl/bn.h:266:1: error: 'BN_ULONG' does not name a type; did you mean 'SHA_LONG'?
 BN_ULONG BN_mod_word(const BIGNUM *a, BN_ULONG w);
 ^~~~~~~~
 SHA_LONG
/usr/include/openssl/bn.h:267:1: error: 'BN_ULONG' does not name a type; did you mean 'SHA_LONG'?
 BN_ULONG BN_div_word(BIGNUM *a, BN_ULONG w);
 ^~~~~~~~
 SHA_LONG
/usr/include/openssl/bn.h:268:28: error: 'BN_ULONG' has not been declared
 int BN_mul_word(BIGNUM *a, BN_ULONG w);
                            ^~~~~~~~
/usr/include/openssl/bn.h:269:28: error: 'BN_ULONG' has not been declared
 int BN_add_word(BIGNUM *a, BN_ULONG w);
                            ^~~~~~~~
/usr/include/openssl/bn.h:270:28: error: 'BN_ULONG' has not been declared
 int BN_sub_word(BIGNUM *a, BN_ULONG w);
                            ^~~~~~~~
/usr/include/openssl/bn.h:271:28: error: 'BN_ULONG' has not been declared
 int BN_set_word(BIGNUM *a, BN_ULONG w);
                            ^~~~~~~~
/usr/include/openssl/bn.h:272:1: error: 'BN_ULONG' does not name a type; did you mean 'SHA_LONG'?
 BN_ULONG BN_get_word(const BIGNUM *a);
 ^~~~~~~~
 SHA_LONG
/usr/include/openssl/bn.h:288:37: error: 'BN_ULONG' has not been declared
 int BN_mod_exp_mont_word(BIGNUM *r, BN_ULONG a, const BIGNUM *p,
                                     ^~~~~~~~
/usr/include/openssl/bn.h:323:24: error: variable or field 'BN_consttime_swap' declared void
 void BN_consttime_swap(BN_ULONG swap, BIGNUM *a, BIGNUM *b, int nwords);
                        ^~~~~~~~
/usr/include/openssl/bn.h:323:24: error: 'BN_ULONG' was not declared in this scope
/usr/include/openssl/bn.h:323:24: note: suggested alternative: 'SHA_LONG'
 void BN_consttime_swap(BN_ULONG swap, BIGNUM *a, BIGNUM *b, int nwords);
                        ^~~~~~~~
                        SHA_LONG
/usr/include/openssl/bn.h:323:46: error: expected primary-expression before '*' token
 void BN_consttime_swap(BN_ULONG swap, BIGNUM *a, BIGNUM *b, int nwords);
                                              ^
/usr/include/openssl/bn.h:323:47: error: 'a' was not declared in this scope
 void BN_consttime_swap(BN_ULONG swap, BIGNUM *a, BIGNUM *b, int nwords);
                                               ^
/usr/include/openssl/bn.h:323:57: error: expected primary-expression before '*' token
 void BN_consttime_swap(BN_ULONG swap, BIGNUM *a, BIGNUM *b, int nwords);
                                                         ^
/usr/include/openssl/bn.h:323:58: error: 'b' was not declared in this scope
 void BN_consttime_swap(BN_ULONG swap, BIGNUM *a, BIGNUM *b, int nwords);
                                                          ^
/usr/include/openssl/bn.h:323:61: error: expected primary-expression before 'int'
 void BN_consttime_swap(BN_ULONG swap, BIGNUM *a, BIGNUM *b, int nwords);
                                                             ^~~
/usr/include/openssl/bn.h:332:1: error: expected constructor, destructor, or type conversion before 'DEPRECATEDIN_0_9_8'
 DEPRECATEDIN_0_9_8(int
 ^~~~~~~~~~~~~~~~~~
/usr/include/openssl/bn.h:403:1: error: expected constructor, destructor, or type conversion before 'DEPRECATEDIN_0_9_8'
 DEPRECATEDIN_0_9_8(int BN_get_params(int which)) /* 0, mul, 1 high, 2 low, 3
 ^~~~~~~~~~~~~~~~~~
In file included from /usr/include/openssl/objects.h:15,
                 from /usr/include/openssl/evp.h:28,
                 from /usr/include/openssl/x509.h:18,
                 from /usr/include/openssl/ssl.h:20,
                 from external/boringssl/src/ssl/bio_ssl.cc:10:
/usr/include/openssl/asn1.h:555:7: error: expected constructor, destructor, or type conversion before 'unsigned'
 const unsigned char *ASN1_STRING_get0_data(const ASN1_STRING *x);
       ^~~~~~~~
In file included from /usr/include/openssl/x509.h:22,
                 from /usr/include/openssl/ssl.h:20,
                 from external/boringssl/src/ssl/bio_ssl.cc:10:
/usr/include/openssl/ec.h:274:1: error: expected constructor, destructor, or type conversion before 'DEPRECATEDIN_1_2_0'
 DEPRECATEDIN_1_2_0(int EC_GROUP_get_curve_GFp(const EC_GROUP *group, BIGNUM *p,
 ^~~~~~~~~~~~~~~~~~
/usr/include/openssl/ec.h:543:1: error: expected constructor, destructor, or type conversion before 'DEPRECATEDIN_1_2_0'
 DEPRECATEDIN_1_2_0(int EC_POINT_get_affine_coordinates_GFp(const EC_GROUP *group,
 ^~~~~~~~~~~~~~~~~~
/usr/include/openssl/ec.h:631:1: error: expected constructor, destructor, or type conversion before 'size_t'
 size_t EC_POINT_point2oct(const EC_GROUP *group, const EC_POINT *p,
 ^~~~~~
In file included from /usr/include/openssl/x509.h:25,
                 from /usr/include/openssl/ssl.h:20,
                 from external/boringssl/src/ssl/bio_ssl.cc:10:
/usr/include/openssl/rsa.h:240:1: error: expected constructor, destructor, or type conversion before 'int'
 int RSA_generate_key_ex(RSA *rsa, int bits, BIGNUM *e, BN_GENCB *cb);
 ^~~
In file included from /usr/include/openssl/dsa.h:25,
                 from /usr/include/openssl/x509.h:26,
                 from /usr/include/openssl/ssl.h:20,
                 from external/boringssl/src/ssl/bio_ssl.cc:10:
/usr/include/openssl/dh.h:142:1: error: expected constructor, destructor, or type conversion before 'int'
 int DH_generate_parameters_ex(DH *dh, int prime_len, int generator,
 ^~~
In file included from /usr/include/openssl/x509.h:26,
                 from /usr/include/openssl/ssl.h:20,
                 from external/boringssl/src/ssl/bio_ssl.cc:10:
/usr/include/openssl/dsa.h:103:1: error: expected constructor, destructor, or type conversion before 'int'
 int DSA_sign(int type, const unsigned char *dgst, int dlen,
 ^~~
/usr/include/openssl/dsa.h:127:1: error: expected constructor, destructor, or type conversion before 'int'
 int DSA_generate_parameters_ex(DSA *dsa, int bits,
 ^~~
In file included from /usr/include/openssl/ssl.h:20,
                 from external/boringssl/src/ssl/bio_ssl.cc:10:
/usr/include/openssl/x509.h:728:1: error: expected constructor, destructor, or type conversion before 'DEPRECATEDIN_1_1_0'
 DEPRECATEDIN_1_1_0(ASN1_TIME *X509_CRL_get_nextUpdate(X509_CRL *crl))
 ^~~~~~~~~~~~~~~~~~
In file included from /usr/include/openssl/ssl.h:26,
                 from external/boringssl/src/ssl/bio_ssl.cc:10:
/usr/include/openssl/hmac.h:33:12: error: expected constructor, destructor, or type conversion before 'int'
 /*__owur*/ int HMAC_Init_ex(HMAC_CTX *ctx, const void *key, int len,
            ^~~
In file included from external/boringssl/src/ssl/bio_ssl.cc:10:
/usr/include/openssl/ssl.h:991:1: error: expected constructor, destructor, or type conversion before 'typedef'
 typedef enum {
 ^~~~~~~
/usr/include/openssl/ssl.h:1042:3: error: 'OSSL_HANDSHAKE_STATE' does not name a type; did you mean 'SSL_CB_HANDSHAKE_START'?
 } OSSL_HANDSHAKE_STATE;
   ^~~~~~~~~~~~~~~~~~~~
   SSL_CB_HANDSHAKE_START
/usr/include/openssl/ssl.h:1878:1: error: expected constructor, destructor, or type conversion before 'DEPRECATEDIN_1_1_0'
 DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_server_method(void))
 ^~~~~~~~~~~~~~~~~~
/usr/include/openssl/ssl.h:1997:8: error: 'OSSL_HANDSHAKE_STATE' does not name a type; did you mean 'SSL_CB_HANDSHAKE_START'?
 __owur OSSL_HANDSHAKE_STATE SSL_get_state(const SSL *ssl);
        ^~~~~~~~~~~~~~~~~~~~
        SSL_CB_HANDSHAKE_START
external/boringssl/src/ssl/bio_ssl.cc: In function 'SSL* get_ssl(BIO*)':
external/boringssl/src/ssl/bio_ssl.cc:16:37: error: invalid use of incomplete type 'BIO' {aka 'struct bio_st'}
   return reinterpret_cast<SSL *>(bio->ptr);
                                     ^~
In file included from /usr/include/openssl/crypto.h:25,
                 from /usr/include/openssl/bio.h:20,
                 from /usr/include/openssl/ssl.h:18,
                 from external/boringssl/src/ssl/bio_ssl.cc:10:
/usr/include/openssl/ossl_typ.h:79:16: note: forward declaration of 'BIO' {aka 'struct bio_st'}
 typedef struct bio_st BIO;
                ^~~~~~
external/boringssl/src/ssl/bio_ssl.cc: In function 'int ssl_read(BIO*, char*, int)':
external/boringssl/src/ssl/bio_ssl.cc:40:10: error: invalid use of incomplete type 'BIO' {aka 'struct bio_st'}
       bio->retry_reason = BIO_RR_ACCEPT;
          ^~
In file included from /usr/include/openssl/crypto.h:25,
                 from /usr/include/openssl/bio.h:20,
                 from /usr/include/openssl/ssl.h:18,
                 from external/boringssl/src/ssl/bio_ssl.cc:10:
/usr/include/openssl/ossl_typ.h:79:16: note: forward declaration of 'BIO' {aka 'struct bio_st'}
 typedef struct bio_st BIO;
                ^~~~~~
external/boringssl/src/ssl/bio_ssl.cc:45:10: error: invalid use of incomplete type 'BIO' {aka 'struct bio_st'}
       bio->retry_reason = BIO_RR_CONNECT;
          ^~
In file included from /usr/include/openssl/crypto.h:25,
                 from /usr/include/openssl/bio.h:20,
                 from /usr/include/openssl/ssl.h:18,
                 from external/boringssl/src/ssl/bio_ssl.cc:10:
/usr/include/openssl/ossl_typ.h:79:16: note: forward declaration of 'BIO' {aka 'struct bio_st'}
 typedef struct bio_st BIO;
                ^~~~~~
external/boringssl/src/ssl/bio_ssl.cc: In function 'int ssl_write(BIO*, const char*, int)':
external/boringssl/src/ssl/bio_ssl.cc:80:10: error: invalid use of incomplete type 'BIO' {aka 'struct bio_st'}
       bio->retry_reason = BIO_RR_CONNECT;
          ^~
In file included from /usr/include/openssl/crypto.h:25,
                 from /usr/include/openssl/bio.h:20,
                 from /usr/include/openssl/ssl.h:18,
                 from external/boringssl/src/ssl/bio_ssl.cc:10:
/usr/include/openssl/ossl_typ.h:79:16: note: forward declaration of 'BIO' {aka 'struct bio_st'}
 typedef struct bio_st BIO;
                ^~~~~~
external/boringssl/src/ssl/bio_ssl.cc: In function 'long int ssl_ctrl(BIO*, int, long int, void*)':
external/boringssl/src/ssl/bio_ssl.cc:101:10: error: invalid use of incomplete type 'BIO' {aka 'struct bio_st'}
       bio->shutdown = num;
          ^~
In file included from /usr/include/openssl/crypto.h:25,
                 from /usr/include/openssl/bio.h:20,
                 from /usr/include/openssl/ssl.h:18,
                 from external/boringssl/src/ssl/bio_ssl.cc:10:
/usr/include/openssl/ossl_typ.h:79:16: note: forward declaration of 'BIO' {aka 'struct bio_st'}
 typedef struct bio_st BIO;
                ^~~~~~
external/boringssl/src/ssl/bio_ssl.cc:102:10: error: invalid use of incomplete type 'BIO' {aka 'struct bio_st'}
       bio->ptr = ptr;
          ^~
In file included from /usr/include/openssl/crypto.h:25,
                 from /usr/include/openssl/bio.h:20,
                 from /usr/include/openssl/ssl.h:18,
                 from external/boringssl/src/ssl/bio_ssl.cc:10:
/usr/include/openssl/ossl_typ.h:79:16: note: forward declaration of 'BIO' {aka 'struct bio_st'}
 typedef struct bio_st BIO;
                ^~~~~~
external/boringssl/src/ssl/bio_ssl.cc:103:10: error: invalid use of incomplete type 'BIO' {aka 'struct bio_st'}
       bio->init = 1;
          ^~
In file included from /usr/include/openssl/crypto.h:25,
                 from /usr/include/openssl/bio.h:20,
                 from /usr/include/openssl/ssl.h:18,
                 from external/boringssl/src/ssl/bio_ssl.cc:10:
/usr/include/openssl/ossl_typ.h:79:16: note: forward declaration of 'BIO' {aka 'struct bio_st'}
 typedef struct bio_st BIO;
                ^~~~~~
external/boringssl/src/ssl/bio_ssl.cc:107:17: error: invalid use of incomplete type 'BIO' {aka 'struct bio_st'}
       return bio->shutdown;
                 ^~
In file included from /usr/include/openssl/crypto.h:25,
                 from /usr/include/openssl/bio.h:20,
                 from /usr/include/openssl/ssl.h:18,
                 from external/boringssl/src/ssl/bio_ssl.cc:10:
/usr/include/openssl/ossl_typ.h:79:16: note: forward declaration of 'BIO' {aka 'struct bio_st'}
 typedef struct bio_st BIO;
                ^~~~~~
external/boringssl/src/ssl/bio_ssl.cc:110:10: error: invalid use of incomplete type 'BIO' {aka 'struct bio_st'}
       bio->shutdown = num;
          ^~
In file included from /usr/include/openssl/crypto.h:25,
                 from /usr/include/openssl/bio.h:20,
                 from /usr/include/openssl/ssl.h:18,
                 from external/boringssl/src/ssl/bio_ssl.cc:10:
/usr/include/openssl/ossl_typ.h:79:16: note: forward declaration of 'BIO' {aka 'struct bio_st'}
 typedef struct bio_st BIO;
                ^~~~~~
external/boringssl/src/ssl/bio_ssl.cc: In function 'int ssl_free(BIO*)':
external/boringssl/src/ssl/bio_ssl.cc:148:10: error: invalid use of incomplete type 'BIO' {aka 'struct bio_st'}
   if (bio->shutdown) {
          ^~
In file included from /usr/include/openssl/crypto.h:25,
                 from /usr/include/openssl/bio.h:20,
                 from /usr/include/openssl/ssl.h:18,
                 from external/boringssl/src/ssl/bio_ssl.cc:10:
/usr/include/openssl/ossl_typ.h:79:16: note: forward declaration of 'BIO' {aka 'struct bio_st'}
 typedef struct bio_st BIO;
                ^~~~~~
external/boringssl/src/ssl/bio_ssl.cc: At global scope:
external/boringssl/src/ssl/bio_ssl.cc:170:25: error: variable 'const BIO_METHOD ssl_method' has initializer but incomplete type
 static const BIO_METHOD ssl_method = {
                         ^~~~~~~~~~
In file included from /usr/include/openssl/ssl.h:18,
                 from external/boringssl/src/ssl/bio_ssl.cc:10:
external/boringssl/src/ssl/bio_ssl.cc:177:6: error: expected identifier before numeric constant
 long BIO_set_ssl(BIO *bio, SSL *ssl, int take_owership) {
      ^~~~~~~~~~~
external/boringssl/src/ssl/bio_ssl.cc:177:6: error: expected ',' or '...' before numeric constant
external/boringssl/src/ssl/bio_ssl.cc: In function 'long int BIO_ctrl(BIO*, int)':
external/boringssl/src/ssl/bio_ssl.cc:178:39: error: 'take_owership' was not declared in this scope
   return BIO_ctrl(bio, BIO_C_SET_SSL, take_owership, ssl);
                                       ^~~~~~~~~~~~~
external/boringssl/src/ssl/bio_ssl.cc:178:54: error: 'ssl' was not declared in this scope
   return BIO_ctrl(bio, BIO_C_SET_SSL, take_owership, ssl);
                                                      ^~~
Target //tensorflow/lite:libtensorflowlite.so failed to build
Use --verbose_failures to see the command lines of failed build steps.
INFO: Elapsed time: 368.325s, Critical Path: 108.73s
INFO: 1656 processes: 241 internal, 1415 local.
FAILED: Build did NOT complete successfully

Thanks

@AnastGerus
please refer to issue with same error and let us know.
Issues for reference:
link, link1

Hi @Saduf2019 ,
yes, the proposed issue helped a lot.
Sorry, that I didn't manage to find it myself. Thanks a lot for your help!
Note for those who looking for an answer:
You need to hide the system's openssl library. For this go to usr/include  folder and make sudo mv openssl openssl.original.

@AnastGerus Thank you for leaving a note!
The number of issues in this repo that are ended with no answer and
Are you satisfied with the resolution of your issue?
[Yes](https://docs.google.com/forms/d/e/1FAIpQLSfaP12TRhd9xSxjXZjcZFNXPGk4kc1-qMdv3gc6bEP90vY1ew/viewform?entry.85265664=Yes&entry.2137816233=https://github.com/tensorflow/tensorflow/issues/52018)
[No](https://docs.google.com/forms/d/e/1FAIpQLSfaP12TRhd9xSxjXZjcZFNXPGk4kc1-qMdv3gc6bEP90vY1ew/viewform?entry.85265664=No&entry.2137816233=https://github.com/tensorflow/tensorflow/issues/52018)

is maddening.

Metrics became goals and automation enabled moving support away from the developers.


Feature/issue 13 numfocus reorg

updating web site with new format, case studies, NumFOCUS, etc.

This looks great Bob!
On Wed, Mar 2, 2016 at 5:06 PM, Bob Carpenter<EMAIL_ADDRESS>wrote:

Merged #14 https://github.com/stan-dev/stan-dev.github.io/pull/14.
—
Reply to this email directly or view it on GitHub
https://github.com/stan-dev/stan-dev.github.io/pull/14#event-575381874.


Remove target-context flags

As a user of the Docker App CLI tool
So that I have a consistent user experience with the Docker CLI
I want the target context flag removed
- What I did
Remove all the --target-context and references to it in the README.md
- How I did it
By removing all the --target-context and references to it in the README.md
- How to verify it
Check the commands to see that the flags are not there anymore
- Description for the changelog
Remove target-context flags
- A picture of a cute animal (not mandatory but encouraged)

I strongly object to this change, assuming docker-app continues to spin up a container with the invocation image in order to do installs/uninstalls.
In my environment, it is not possible to run arbitrary containers on the swarm manager nodes. With docker-app 0.8.0, I've had to make sure that my Docker context is set to my local Docker engine (e.g., DOCKER_CONTEXT=default), and run docker-app commands with --target-context=the-remote-cluster. Otherwise, it attempts to run the invocation container on the manager node and fails.
Removing --target-context will completely break my ability to deploy apps, if an invocation container is needed.

@kinghuang Thank you for you feedback!
What do you think about instead of this, we use --context as the target and introducing a new experimental flag called --invocation-context?
So in your example, you could just use something like:
$ docker app install --context the-remote-cluster --invocation-context default myapp

Yes, I believe an --invocation-context option will work, and achieves the goal of consistency with the rest of the Docker CLI. An associated environment variable for the option would be greatly appreciated, too!


Default ctrl+d and ctrl+r keyboard shortcuts not working

Issue Type: Bug
I don't have any extensions added and no customizations made.
OOTB vs code doesn't recongnize ctrl+d (keybord shortcut to select same occurence of the word) or ctrl+r (reveal active file in sidebar).
VS Code version: Code 1.45.1 (5763d909d5f12fe19f215cbfdd29a91c0fa9208a, 2020-05-14T08:27:35.169Z)
OS version: Windows_NT x64 10.0.18363

System Info

Item
Value

CPUs
Intel(R) Core(TM) i7-9700K CPU @ 3.60GHz (8 x 3600)

GPU Status
2d_canvas: enabledflash_3d: enabledflash_stage3d: enabledflash_stage3d_baseline: enabledgpu_compositing: enabledmultiple_raster_threads: enabled_onoop_rasterization: disabled_offprotected_video_decode: unavailable_offrasterization: enabledskia_renderer: disabled_off_okvideo_decode: enabledviz_display_compositor: enabled_onviz_hit_test_surface_layer: disabled_off_okwebgl: enabledwebgl2: enabled

Load (avg)
undefined

Memory (System)
31.84GB (20.03GB free)

Process Argv
.

Screen Reader
no

VM
0%

Extensions: none

Ctrl+D requires a selection to start with.
Ctrl+R is "Open Recent"
When you open the keyboard shortcut editor you can filter for keyboard shortcuts and see what they are bound to. There is also Help > Keyboard Shortcut Reference or you can type the commands in the command palette to see what they are bound to.


pkg in vendor includes more unused files, need to clean them

I used dep ensure to download pkgs into vendor directory, and found there are more unused files, such as docs files, test files, etc...
for examples:
vendor/github.com/termie/go-shutil/
├── LICENSE
├── README.rst
├── shutil.go
├── shutil_test.go
└── test
    ├── testdir
    │   ├── file1
    │   └── file2
    ├── testfile
    └── testfile2

If I commit vendor directory into GIT repo (to build without network and speed up), it will be made repo more larger.
In my point, only shutil.go is necessary in my sample for build.

includes *.go, *.cgo in pkg, instead of full GIT repo.
excludes *_test.go
excludes empty dirs

In the past, I used govendor, that can get a clean vendor directory.
vendor/github.com/termie/go-shutil/
├── LICENSE
├── README.rst
└── shutil.go

Hi! Thanks for the issue 😄
We refer to this general category of work as "pruning." As of last week, there is a dep prune subcommand that will trim down the contents of your vendor directory, at least somewhat.
However, please do note that that subcommand is unlikely to stick around in the long term, because (to summarize) it presents challenges for verifying package contents, and because we do ultimately view vendor/ as an implementation detail.
#120 is the canonical issue about this - see that for much more information and discussion.


[#4615] Customizable estimation for messages written outside the EventLoop

Motivation:
Estimation algorithm currently used for WriteTasks is complicated and wrong. Additionally, some code relies on outbound buffer size incremented only on actual writes to the outbound buffer.
Modifications:

Throw away the old estimator and replace with a simple algorithm that uses the client-provided estimator along with a statically configured WriteTask overhead (io.netty.transport.writeTaskSizeOverhead system property with the default value of 48 bytes)
Add a io.netty.transport.estimateSizeOnSubmit boolean system property allowing the clients to disable the message estimation outside the event loop

Result:
Task estimation is user controllable and produces better results bydefault

This is for the 4.1 branch, I'll cross-port to 4.0/5.0 once you approve. Default task size is hardcoded, I could do something more fancy like detecting the JVM bitness and CompressedOOPS, but it's way too complicated and the users can just change the value as necessary.

@technocoreai only one tiny comment. No need to port this to other branches, I will just cherry-pick it from 4.1 once in there.

@normanmaurer I've updated the patch, it now initializes the size to 0 and then updates it if the estimation is enabled and channel is still open, is that fine?

Cherry-picked into 4.0 (cfd6793bb7b1ae6769cf0b3eaffd1aecfa6fbd32) and 4.1 (cfd6793bb7b1ae6769cf0b3eaffd1aecfa6fbd32)
@technocoreai thanks again!

@normanmaurer The commit looks the same for branches and I don't see it in the log. Do you intend to push the 4.0 fix later?

@technocoreai sorry I somehow thought I pushed to 4.0 as well. Just updated the comment to link to the correct commit sha and pushed it. d2ddb528e4427d201866280017176723cfb93a5a

@normanmaurer thanks!


some typo

Signed-off-by: yanxuean<EMAIL_ADDRESS>

Codecov Report

Merging #1794 into master will not change coverage.
The diff coverage is 100%.

@@           Coverage Diff           @@
##           master    #1794   +/-   ##
=======================================
  Coverage   49.33%   49.33%
=======================================
  Files          77       77
  Lines        7692     7692
=======================================
  Hits         3795     3795
  Misses       3252     3252
  Partials      645      645

Flag
Coverage Δ

#linux
49.4% <100%> (ø)
:arrow_up:

#windows
44.89% <100%> (ø)
:arrow_up:

Impacted Files
Coverage Δ

gc/gc.go
67.85% <100%> (ø)
: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 2b1c915...8130779. Read the comment docs.

LGTM

could you fix other typos as well at once in this PR?
https://goreportcard.com/report/github.com/containerd/containerd#misspell

LGTM

@AkihiroSuda  Has merged. I modify it in another pr later.


create predicate tables

@cmungall We've discussed this before, but putting it in a ticket in case others want to weigh in.
For each predicate (i.e., object/data/annotation property) you may want to consider creating a separate table instead of having a predicate column. You can (of course) create views for each predicate, but AFIK sqlite does not support materialized views, and overuse of views can affect performance.
For instance,  suppose you have a part_of table. A query to find everything that an entity is part of would look something like:
select
   s.subject, p.objects
from
  statements s
inner join
  part_of p
on
  s.subject = p.subject

A query for your rdfslabel would be:
select distinct
  s.subject, l.value, count(*)
from
  statements s
inner join
  rdfslabel l
on
  s.subject = l.subject
group by
  s.subject, l.value
having
  count(*) > 1

These queries can (of course) be made into views.
Also, using predicate tables may allow for better handling of datatypes. That is, you may be able to specify if something is a sting, int, datetime, etc., depending on the table. For instance, if the part_of table always has a CURIE as the object, you can declare the datatype for the column as sting and check that the expression conforms. This could be quite helpful for datetime values, which I find myself often having to things like pull out the year or months parts, and order.

create suggestion. It would be easy to autogenerate these from e.g. RO (in fact we did this wth OBD many years back..)
We might want to create separate views for existentials and aboxes - or just have a view over the edge table
views are great. performance wise they are identical to doing the more verbose expanded query, so there is no performance loss in using them. And they can always be materialized by a CREATE TABLE statement (yes, not a MV sensu stricto but good enough especially for warehouse type databases)

Cool :)
I assume by OBD you mean Ontology-Based Database. Is any of that code base reusable?

See https://github.com/cmungall/semantic-sql#previous-work but I wouldn't spend too much time looking at it except as a curiosity. @balhoff still has nightmares about it

this was the procedure for materializing views:
https://github.com/phenoscape/OBDAPI/blob/16f7bae75184bc438b21eb91a0cebef80438071f/sql/obd-matview-funcs.sql#L17-L52

And the first reasoner I ever encountered! 😀
https://github.com/phenoscape/OBDAPI/blob/master/scripts/obd-reasoner.pl


config_aqm Unable to configure flowset, flowset busy!

pflog0: promiscuous mode enabled
ipfw2 (+ipv6) initialized, divert loadable, nat loadable, default to accept, logging disabled
DUMMYNET 0 with IPv6 initialized (100409)
load_dn_aqm dn_aqm PIE loaded
load_dn_aqm dn_aqm CODEL loaded
load_dn_sched dn_sched FIFO loaded
load_dn_sched dn_sched QFQ loaded
load_dn_sched dn_sched RR loaded
load_dn_sched dn_sched WF2Q+ loaded
load_dn_sched dn_sched PRIO loaded
load_dn_sched dn_sched FQ_CODEL loaded
load_dn_sched dn_sched FQ_PIE loaded
ovpnc1: link state changed to UP
gif0: link state changed to DOWN
gif0: link state changed to UP
gif0: link state changed to DOWN
gif0: link state changed to UP
gif0: link state changed to DOWN
gif0: link state changed to UP
ovpnc1: link state changed to DOWN
ovpnc1: link state changed to UP
pid 27327 (python2.7), uid 0, was killed: out of swap space
Bump sched buckets to 256 (was 0)
Bump sched buckets to 256 (was 0)
config_aqm Unable to configure flowset, flowset busy!
config_aqm Unable to configure flowset, flowset busy!
config_aqm Unable to configure flowset, flowset busy!
config_aqm Unable to configure flowset, flowset busy!
config_aqm Unable to configure flowset, flowset busy!
config_aqm Unable to configure flowset, flowset busy!
config_aqm Unable to configure flowset, flowset busy!
Bump sched buckets to 256 (was 0)
Bump sched buckets to 256 (was 0)
config_aqm Unable to configure flowset, flowset busy!
config_aqm Unable to configure flowset, flowset busy!
config_aqm Unable to configure flowset, flowset busy!
config_aqm Unable to configure flowset, flowset busy!
config_aqm Unable to configure flowset, flowset busy!
config_aqm Unable to configure flowset, flowset busy!
config_aqm Unable to configure flowset, flowset busy!
Bump sched buckets to 256 (was 0)
Bump sched buckets to 256 (was 0)
config_aqm Unable to configure flowset, flowset busy!
config_aqm Unable to configure flowset, flowset busy!
config_aqm Unable to configure flowset, flowset busy!
config_aqm Unable to configure flowset, flowset busy!
config_aqm Unable to configure flowset, flowset busy!
config_aqm Unable to configure flowset, flowset busy!
config_aqm Unable to configure flowset, flowset busy!
root@OPNsense:/var/netflow #

@KyleSanderson please read https://github.com/opnsense/core/blob/master/CONTRIBUTING.md Without background of the specific setup, features that are used and a way to reproduce the issue its highly unlikely that anyone will try to help out.

# pid 27327 (python2.7), uid 0, was killed: out of swap space

This is weird and likely the issue: RAM is depleted? Do you have swap space? And how much memory is consumed in general? What hardware specs are this?

4G. flowd sqlite DBs consumed 2G... rm'd them.

CC'ing @RasoolAlSaadi he wrote the AQM code.

@KyleSanderson
I guess you are trying to use CoDel/PIE (not FQ_CoDel/FQ_PIE), is that right?
It seems that the pipe/queue is currently busy (a traffic is passing through pipe/queue ipfw rule) while you are trying to reconfigure AQM.
Due to the fact that the internal variables of each AQM instance is allocated and freed dynamically, re-configuring AQM (e.g. select CoDel for a pipe that currently uses PIE) can lead the AQM code to access unallocated memory  (freed during AQM re-configuration) and kernel panic could happen. Therefore, I tried to avoid any potential kernel panic by preventing re-configuring AQM for busy pipe/queue.
Try one of the following solutions:

Temporarily block the traffic (using IPFW rules) from passing through AQM PIE/queue until you finish your configuration.
Delete the old pipes/queues that need to be re-configured with AQM and create them again with all the desired settings.
Reboot the firewall

If the above solutions do not work, please provide me more details about in which cases the error message appears so I can provide you a suitable solution.
Regards,
Rasool

Thanks for following up @RasoolAlSaadi
I'm trying to use FQ_Codel on OPNsense however this is implemented via a checkbox so I'm not certain if it's actually applying?
My status is the following, however considering there's 0 flows I'd assume this is not working at all?
Limiters:
10000: 150.000 Mbit/s    0 ms burst 0
q75536  50 sl. 0 flows (1 buckets) sched 10000 weight 0 lmax 0 pri 0 droptail
 sched 75536 type FIFO flags 0x1 256 buckets 0 active
    mask:  0x00 0x00000000/0x0000 -> 0xffffffff/0x0000
10001: 150.000 Mbit/s    0 ms burst 0
q75537  50 sl. 0 flows (1 buckets) sched 10001 weight 0 lmax 0 pri 0 droptail
 sched 75537 type FIFO flags 0x1 256 buckets 0 active
    mask:  0x00 0x00000000/0x0000 -> 0xffffffff/0x0000

Queues:
q10006  50 sl. 0 flows (1 buckets) sched 10000 weight 60 lmax 0 pri 0
q10007  50 sl. 0 flows (1 buckets) sched 10001 weight 60 lmax 0 pri 0
q10005  50 sl. 0 flows (1 buckets) sched 10001 weight 20 lmax 0 pri 0
q10002  50 sl. 0 flows (1 buckets) sched 10001 weight 5 lmax 0 pri 0
q10003  50 sl. 0 flows (1 buckets) sched 10000 weight 5 lmax 0 pri 0
q10000  50 sl. 0 flows (1 buckets) sched 10000 weight 10 lmax 0 pri 0
q10001  50 sl. 0 flows (1 buckets) sched 10001 weight 10 lmax 0 pri 0

I have two 150 Mbit pipes
Queues: https://i.imgur.com/GPs12mY.png
Rules: https://i.imgur.com/ra1mdfD.png
I don't want to say (accuse, rather) it isn't working at all, however performing a speedtest exceeds the pipe; so I'm not all too convinced traffic shaping is actually working on the platform... Thoughts?

@KyleSanderson
To be honest, I don't have any experience with OPNsense. However, the traffic shaping should work fine if the traffic passes through the limiter.
I don't see any output related to AQM in the status you posted. So, I hope @AdSchellevis or @fichtner can help you to configure the firewall with AQM as they have good experience with that.
If "config_aqm Unable to configure flowset, flowset busy!" still appears, please provide me a way to reproduce the issue so I can see what happens.

@fichtner any update on enabling FQ-PIE in the GUI? It looks like support was merged 6(!) months ago.

Not sure if it is helpful or not, but I got the same errors when I tried to apply.
I got pretty mixed results when testing afterwards as it wasn't quite working as I had expected, but it did do something.

Specifically, if I can configure a PIPE with no mask, I get no errors.
If I configure a "Upload" Pipe Source Masked and a "Download" Pipe Destination Masked and hit apply, I get the flowset error.

The only clean way here seems to not reuse pipes or unload IPFW, but considering the low frequency of reports and no actual problems we're closing this. A special thanks to @RasoolAlSaadi for the authors explanation of how AQM works and what the error message means exactly. :)

@fichtner I appreciate you're cleaning up issues, but the bug report is this doesn't work at all. Was this actually fixed? I had to switch to LEDE many moons ago for hw offloading with AQM, but I'm not certain this changed?

I'm reading raw ipfw dump, flowd bug (not related), then report of shaping not working, then feature request for fq-pie. It's hard to follow... I went by title, expecting the intention there was clear.
17.1 added "shared forwarding option", because up until 16.7 the policy routing (firewall rules with gateway) would blackhole the traffic and not provide them to ipfw/aqm. I could have likely been your issue.

I've played around quite a bit and I can conclude from my previous report, it's working fine. I haven't been able to reproduce the error messages from quite some time.
I can see traffic matching my proper queues and it's definitely working:
root@phoenix:~ # ipfw -a list
00100   0     0 allow pfsync from any to any
00110   0     0 allow carp from any to any
00120   0     0 allow ip from any to any layer2 mac-type 0x0806,0x8035
00130   0     0 allow ip from any to any layer2 mac-type 0x888e,0x88c7
00140   0     0 allow ip from any to any layer2 mac-type 0x8863,0x8864
00150   0     0 deny ip from any to any layer2 not mac-type 0x0800,0x86dd
00200   0     0 skipto 60000 ip6 from ::1 to any
00201   0     0 skipto 60000 ip4 from <IP_ADDRESS>/8 to any
00202   0     0 skipto 60000 ip6 from any to ::1
00203   0     0 skipto 60000 ip4 from any to <IP_ADDRESS>/8
01002   0     0 skipto 60000 udp from any to <IP_ADDRESS> dst-port 53 keep-state
01002  85  7194 skipto 60000 ip from any to { <IP_ADDRESS> or <IP_ADDRESS> } in
01002 138 34499 skipto 60000 ip from { <IP_ADDRESS> or <IP_ADDRESS> } to any out
01002   0     0 skipto 60000 icmp from { <IP_ADDRESS> or <IP_ADDRESS> } to any out icmptypes 0
01002   0     0 skipto 60000 icmp from any to { <IP_ADDRESS> or <IP_ADDRESS> } in icmptypes 8
06000  81  8897 skipto 60000 tcp from any to any out
06199 166 15550 skipto 60000 ip from any to any
30000   0     0 count ip from any to any
60000   0     0 return ip from any to any
60001   2   154 queue 10000 ip from any to <IP_ADDRESS> in via igb0
60002   1   121 queue 10000 ip from any to <IP_ADDRESS> in via igb0
60003   0     0 queue 10000 ip from any to <IP_ADDRESS> in via igb0
60004   0     0 queue 10000 ip from any to <IP_ADDRESS> in via igb0
60005   3   231 queue 10003 ip from <IP_ADDRESS> to any out via igb0
60006   2   173 queue 10003 ip from <IP_ADDRESS> to any out via igb0
60007   0     0 queue 10003 ip from <IP_ADDRESS> to any out via igb0
60008   0     0 queue 10003 ip from <IP_ADDRESS> to any out via igb0
60009   1    52 queue 10002 ip from <IP_ADDRESS> to <IP_ADDRESS> in via igb0
60010   0     0 queue 10002 ip from any to <IP_ADDRESS> src-port 563 in via igb0
60011   1    81 queue 10005 ip from <IP_ADDRESS> to <IP_ADDRESS> out via igb0
60012   0     0 queue 10005 ip from <IP_ADDRESS> to any dst-port 563 out via igb0
60013  71  5688 queue 10001 ip from any to any in via igb0
60014  63  6691 queue 10004 ip from any to any out via igb0
65533 326 52949 allow ip from any to any
65534   0     0 deny ip from any to any
65535   7   426 allow ip from any to any

I'm basically configured 2 a pipe for upload/download/a high, medium, low queue for up/down and than rules that match "in" traffic and "out" traffic to drop them in the respective queues with FQ_Codel setup at the pipes:
http://www.dslreports.com/speedtest/18260817

@animosity22 thanks for the update :)

Can we run like "add 59999 skipto 70000 ip from any to any" before running /usr/local/etc/ipfw.rules and pull it out once it's completed?


Extension Methods for Common CanBuild Scenarios

Had some extensions methods to simplify code like
return context.PropertyInfo?.GetCustomAttributes(typeof(MaxLengthAttribute)).ToList().Any() ?? false;
PropertyInfo is going to be made a Maybe as well

This was baked into the AbstractAttributeBlueprint Class in c346d2b3882c286436a5d0479131413fb668918f

Baked this into the AbstractAttributeBlueprint in c346d2b3882c286436a5d0479131413fb668918f


Waila factory type tooltip only showing Smelting

When I look at a factory, waila shows the correct processing type for what seems like 1 tick, then it changes to showing "smelting", no matter what kind of factory it is. And it always shows the factory type tooltip even if I turn off that option in waila settings.
With Waila-1.5.9 and Mekanism-<IP_ADDRESS>

Not sure about the second bug, but the first bug is due to how I manage factory tiers.  I'll look into it when I have a chance, but its very low priority behind all the other content being developed for v8.  Thanks for reporting!


Rename wagtail.contrib.wagtailstyleguide to wagtail.contrib.styleguide

I decided to try my hand at renaming a module as described in #1504. I'm new to Wagtail's codebase, so I tried to follow @kaedroho's existing module-renaming PRs as closely as possible — hopefully I didn't overlook anything too significant!

Thanks, except for my comment above, this looks good!
I won't merge this yet as I'd like to get all the renames for the contrib modules merged around the same time, and my other pull requests haven't been reviewed yet...

Thanks a lot, @iKevinY

Just noticed, wagtail/contrib/wagtailstyleguide/__init__.py needs to contain: default_app_config = 'wagtail.contrib.wagtailstyleguide.apps.WagtailStyleGuideAppConfig'.

@tomdyson No worries!
@kaedroho Thanks for the review! I've fixed up the commits and rebased.

Noticed that some merge conflicts were introduced, so I've rebased on top of master and pushed.

Rebased again to fix merge conflicts introduced by 84563247f691917697edd57c27950c2c7ee8191b. The build is failing due to JavaScript code style check, but it seems #1813 will resolve this.

You can also rebase on top of #1813, which will allow this PR to pass its checks. You will then not have to do anything when #1813 is merged.
git remote add takeflight https://github.com/takeflight/wagtail.git
git fetch takeflight
git checkout wagtailstyleguide-rename
git rebase takeflight/fix/javascript-style-error
git push origin -f

@timheap Good idea; I forgot about the fact that you could fetch PRs as if they were actual branches.

:+1:

Sorry to bump this again. We still haven't decided the approach to renaming these modules while maintaining backwards compatibility.

No problem, I'll keep the PR open anyways for when that decision is made.

In fact, this pull request could be closed in favor of the broader solution adopted in #2089.

@BertrandBordage Ah, it's been so long since I made this PR! It probably makes sense to close this in favour of #2089.

Closing in favour of #2089.


Error on install

Describe the bug
Hey there, currently having issues with the latest pull of the install script. I am running this on Kali 2020.4 as root with the GOPATH / GOROOT path as seen in the screenshot below. During install, I get an error message:
  Using /usr/local/lib/python3.9/dist-packages/EditorConfig-0.12.3-py3.9.egg
Finished processing dependencies for LinkFinder==1.0
Traceback (most recent call last):
  File "/root/Tools/pymeta/setup.py", line 3, in <module>
    with open("README.md", "r") as fh:
FileNotFoundError: [Errno 2] No such file or directory: 'README.md

And left with a bunch of tools uninstalled. While I understand the README.md says installer is as is, I did not have this error message on a pull I did last week of this app. Any help would be much appreciated as to what I am missing. Thank you!
To Reproduce
Steps to reproduce the behavior:

Run the install script.

Expected behavior
Tools being installed when running the install script.
Screenshots
If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

Architecture: x64
OS: Kali
Version 2020.4

I guess this issue is occurring due to the Go PATH not set correctly
try adding these to your .bashrc
and then run the ./install.sh again
export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export PATH=$GOPATH/bin:$GOROOT/bin:$PATH

I guess this issue is occurring due to the Go PATH not set correctly
try adding these to your .bashrc
and then run the ./install.sh again
export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export PATH=$GOPATH/bin:$GOROOT/bin:$PATH

Hey @detonxx
That fixed my issue. Thank you. I submitted a pull request to get that added into the readme.md to prevent further confusion for those who are unfamiliar with path. #63

Hey @detonxx
That fixed my issue. Thank you. I submitted a pull request to get that added into the readme.md to prevent further confusion for those who are unfamiliar with path. #63

Sure.... @six2dez is working on the "Wiki" part, which may include all these steps for installation and post installation.
It would be up soon. Do check it out later !

Sure.... @six2dez is working on the "Wiki" part, which may include all these steps for installation and post installation.
It would be up soon. Do check it out later !

I did the ./install.sh on my parrot os terminal, it ran well but the tools required did not install and I was told to install them manually which I don't know how. Please can someone assist me?

everytime i run the ./install.sh command, my installation stucks after completing the repositories installation.i have waite for 4-5 hours, but it doesn't help

I did the ./install.sh on my parrot os terminal, it ran well but the tools required did not install and I was told to install them manually which I don't know how. Please can someone assist me?

Can you please provide more information about the non installed tools?

everytime i run the ./install.sh command, my installation stucks after completing the repositories installation.i have waited for 4-5 hours, but it doesn't help

Could you please share the error from the terminal?


Create accountclaim test file

The accountclaim controller needs tests. This is a simple placeholder test to be changed as more PRs change the accountclaim controller.

/hold

/lgtm

/hold cancel


XHProf does not work

Hi, there.
I use the fresh repo.
My features:
vagrant_box: geerlingguy/ubuntu1404
installed_extras:
  - adminer
  # - blackfire
  # - drupalconsole
  - mailhog
  - memcached
  # - newrelic
  # - nodejs
  - pimpmylog
  # - redis
  # - ruby
  # - selenium
  # - solr
  - varnish
  - xdebug
  - xhprof

# If you install `memcached`:
php_memcached_package: php5-memcached

# If you install `xhprof`:
xhprof_download_url: https://github.com/phacility/xhprof/archive/master.tar.gz
xhprof_download_folder_name: xhprof-master

I have the issue with XHProf:
==> drupalvm: TASK [geerlingguy.php-xhprof : Build XHProf.] **********************************
==> drupalvm: An exception occurred during task execution. To see the full traceback, use -vvv. The error was: OSError: [Errno 2] No such file or directory: '/root/xhprof-master/extension'
==> drupalvm: failed: [localhost] (item=phpize) => {"failed": true, "item": "phpize", "module_stderr": "Traceback (most recent call last):\n  File \"/tmp/ansible_I03gNu/ansible_module_command.py\", line 250, in <module>\n    main()\n  File \"/tmp/ansible_I03gNu/ansible_module_command.py\", line 186, in main\n    os.chdir(chdir)\nOSError: [Errno 2] No such file or directory: '/root/xhprof-master/extension'\n", "module_stdout": "", "msg": "MODULE FAILURE", "parsed": false}
==> drupalvm: An exception occurred during task execution. To see the full traceback, use -vvv. The error was: OSError: [Errno 2] No such file or directory: '/root/xhprof-master/extension'
==> drupalvm: failed: [localhost] (item=./configure) => {"failed": true, "item": "./configure", "module_stderr": "Traceback (most recent call last):\n  File \"/tmp/ansible_N4ywN3/ansible_module_command.py\", line 250, in <module>\n    main()\n  File \"/tmp/ansible_N4ywN3/ansible_module_command.py\", line 186, in main\n    os.chdir(chdir)\nOSError: [Errno 2] No such file or directory: '/root/xhprof-master/extension'\n", "module_stdout": "", "msg": "MODULE FAILURE", "parsed": false}
==> drupalvm: An exception occurred during task execution. To see the full traceback, use -vvv. The error was: OSError: [Errno 2] No such file or directory: '/root/xhprof-master/extension'
==> drupalvm: failed: [localhost] (item=make) => {"failed": true, "item": "make", "module_stderr": "Traceback (most recent call last):\n  File \"/tmp/ansible_fHLUsB/ansible_module_command.py\", line 250, in <module>\n    main()\n  File \"/tmp/ansible_fHLUsB/ansible_module_command.py\", line 186, in main\n    os.chdir(chdir)\nOSError: [Errno 2] No such file or directory: '/root/xhprof-master/extension'\n", "module_stdout": "", "msg": "MODULE FAILURE", "parsed": false}

The Drupal Module XHProf says: You must enable the xhprof php extension to use this feature.
Regards, Artu,

If you need to use an older version of PHP (e.g. 5.6), then you also need to switch out the XHProf repository for the version that works with 5.6—see the documentation on this page: http://docs.drupalvm.com/en/latest/other/php-56/
# If you install `xhprof`:
xhprof_download_url: https://github.com/phacility/xhprof/archive/master.tar.gz
xhprof_download_folder_name: xhprof-master

I added these lines into an end of the config.yml file. I wrote above.
But it's no success.

Okay, in that case, what's your php_version set to?

php_version: "5.6"
php_packages:
  - php5
  - php5-apcu
  - php5-mcrypt
  - php5-cli
  - php5-common
  - php5-curl
  - php5-dev
  - php5-fpm
  - php5-gd
  - php5-sqlite
  - php-pear
  - libpcre3-dev
php_conf_paths:
  - /etc/php5/fpm
  - /etc/php5/apache2
  - /etc/php5/cli
php_extension_conf_paths:
  - /etc/php5/fpm/conf.d
  - /etc/php5/apache2/conf.d
  - /etc/php5/cli/conf.d
php_fpm_daemon: php5-fpm
php_fpm_conf_path: "/etc/php5/fpm"
php_fpm_pool_conf_path: "/etc/php5/fpm/pool.d/www.conf"
php_mysql_package: php5-mysql

Testing now using the above values.

geerlingguy, thank you.
I think we could close it,
because I updated my DVM and have no problem with XHProf.

Awesome, glad it's working!


[egui::Windows compatibility] Graph rendering stay on top of all egui::Windows

Hi,
Thanks a lot for the quick bug fix that makes compatibility with egui::Windows available.
I have discovered a new bug.
Graph rendering stay on top of all the egui::Windows  even if the Window where the graph is not focused.
I tested different configuration of GraphView, always with the same behavior.

My versions (using last commit version on master) :
egui = "0.26.0"
egui_extras = { version = "0.26.0", features = ["svg", "image"]}
eframe = { version = "0.26.0", default-features = false, features = [
    "accesskit",     # Make egui comptaible with screen readers. NOTE: adds a lot of dependencies.
    "default_fonts", # Embed the default egui fonts.
    "glow",          # Use the glow rendering backend. Alternative: "wgpu".
    "persistence",   # Enable restoring app state when restarting the app.
] }
egui_tracing = "0.2.1"

serde = { version = "1", features = ["derive"] }
serde_json = { version = "1.0", features = ["raw_value"]}
ron = "0.8"
egui_graphs = { git = "https://github.com/blitzarx1/egui_graphs", branch = "master", features = ["egui_persistence", "serde"]}

Thanks for the report! I know the reason, I will try to fix it today.

I refused from using egui layer ordering mechanism for ordering graph drawing, because it conflicts with other egui components, which is demonstrated by this bug.
I returned to simple time ordering and I will keep it this way for now.

fix is in the master

I was having the same issue and have been debugging this, only to find out this was being fixed the moment I found the cause.
But alas, #180 still doesn't fix it for us. We render the graph in an egui Window, and it renders the graph under the window.


Errors executing torchrun for train.py on Apple Silicon M2 Pro

When attempting to do fine tuning, I'm getting the following error in the output:
RuntimeError: Distributed package doesn't have NCCL built in
Searching here indicates this is related to CUDA and other NVIDIA GPU related rendering.
So, I added the following snippet to train.py, which is supposed to force CPU only (same workaround used by this user in another meta-related repo: https://github.com/markasoftware/llama-cpu):
torch.distributed.init_process_group("gloo")
Now the NCCL error goes away, but I get this error instead:
AttributeError: module 'torch._C' has no attribute '_cuda_setDevice'
Again, I have no NVIDIA GPU or other such software on my system. I've tried a myriad of workarounds for my apple silicon, but haven't gotten very far.
Anything I'm missing here?
I'm running on python 3.10.9 with all requirements.txt entries installed as required via pip.

Issue was resolved by adding the following comment, for systems where CUDA is not present but for some reason is attempting to be engaged:
--no_cuda=True


Tokens cannot be generated with shared scopes

Description:
In 2.0 to 3.2 migrated setup tokens cannot be generated from shared scopes.
Steps to reproduce:

Migrate to 3.2 from 2.0
Create and Attach a shared scope to an API
Subscribe to the API and generate an access token for the shared scope
The generated token contains only default scopes

Affected Product Version:
APIM 2.0 to 3.2 Migration
Environment details (with versions):

OS:
Client:
Env (Docker/K8s):

Optional Fields
Related Issues:

Suggested Labels:

Suggested Assignees:

This is not reproducible. hence closing.


Show how many mines are not flagged yet

Let's say that there are 200 mines and 197 flags. I think there should be something that says "3 mines not flagged yet" or "197/200 mines flagged" or something like that.

I honestly think we should just add a counter for flags. Otherwise you could win the game by just placing the flags around and watching if the counter moves or not (which it should if you place the flag on the mine position). Maybe my understanding is wrong though

I honestly think we should just add a counter for flags. Otherwise you could win the game by just placing the flags around and watching if the counter moves or not (which it should if you place the flag on the mine position). Maybe my understanding is wrong though

Fixed in 00570c9

Fixed in 00570c9


Plugin includes snippets multiple times when imported multiple times

Hey! first of all, thank you for making this!
I have a question about how stuff is bundled, because I ran into an "issue" while using:
When you import some .scss file in multiple other .scss files, for example some variables.scss file, the variables are included multiple times in the "final" scss build. Is this intentional?
I would expect that the plugin includes every file that was imported/used only once.
Thanks and have a great day!
// Edit
same thing if I use @use instead of @import

It uses scss-bundle internally, I guess the option dedupeGlobs can solve your issue.

It did! Thank you, and sorry I did not see that in the readme.


Inference does not extend to generics of types, causing widened covariant types, and errors for contravariant types

Bug Report
When a generic type is constrained by another generic type, the inference doesn't extend to the second generic type unless it is explicitly included in the function signature. In short, <T, U extends I<T>>(_: U) will always infer unknown for T. I couldn't find any issues referencing this, but the behavior has to be known about. For most types, e.g. covariant ones, this isn't strictly incorrect, it just produces a wider type than a user might expect. However, for contravariant types, this will actually caused a rejection of valid code. Both instances can be "fixed" by manually specifying both types in the signature, e.g. <T, U extends I<T>>(_: U & I<T>) but this is clunky and may not be obvious to some people (i.e. me).
I could believe that this is also a design limitation, but given the semantics of extends, I would think it's possible to "insert" these extra intersections whenever a type is constrained by a generic. Most times it will be meaningless, but in this instance it will allow inference to pick up the appropriate type.
🔎 Search Terms
inference, bound, constraint
🕗 Version & Regression Information

This is the behavior in every version I tried (3.3, 4.2, beta, nightly), and I reviewed the FAQ for entries about ________ (I'm not sure what should go in this blank, but I did not find any references in the FAQ)

⏯ Playground Link
Playground link with relevant code
💻 Code
Admittedly, but examples are a little contrived, but I have run into them in actual code, where I need references to both types.
Covariant example
interface Covariant<T> {
    val: T
}

declare function covariantSimple<T, C extends Covariant<T>>(inp: C): { inp: C, inner: T };
covariantSimple({ val: { foo: 5 } }).inner.foo;
//^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ object is unknown
// but object should / would normally be inferred to be of type { foo: number }

// manually specifying the intersection in the type tells typescript how to do the inference
declare function covariantIntersection<T, C extends Covariant<T>>(inp: C & Covariant<T>): { inp: C, inner: T };
covariantIntersection({ val: { foo: 5 } }).inner.foo;  // no error

Contravariant example
interface Contravariant<T> {
    (val: T): boolean;
}

declare function contravariantSimple<T, C extends Contravariant<T>>(inp: C): C;
contravariantSimple(({ val }: { val: boolean }) => val);
//                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
// Argument of type '...' is not assignable to parameter of type 'Contravariant<unknown>'
// same error, but since the type is contravariant, failure to infer a narrower type for T causes a type error

// like before, manually specifying the intersection allows typescript to infer properly
declare function contravariantIntersection<T, C extends Contravariant<T>>(inp: C & Contravariant<T>): C;
contravariantIntersection(({ val }: { val: boolean }) => val); // no error

🙁 Actual behavior
When a generic type is constrained by another generic type, the inference doesn't extend to the second generic type unless it is explicitly included in the signature.
🙂 Expected behavior
The inference magically works!

This is an intentional design of constraints; we tried doing this at one point and it actively made a bunch of stuff worse.
I've never seen a case where the function couldn't be rewritten in terms of fewer type parameters without loss of generality, e.g.
function covariantSimple<T extends Covariant<unknown>>(inp: T): { inp: T, inner: T["val"] } {
    return { inp, inner: inp.val };
}

covariantSimple({ val: { foo: 5 } }).inner.foo;

You should really never have two type parameters without two values; this is either a soundness hole in the implied body of the function or an oversight in the signature.
contravariantSimple's compilation failure is a legitimate error because there's no way for the function to correctly call an arbitrary thing passed to it.

I can totally believe that it's not worth doing, or that implementing it is more complicated than these simple extensions. However, I still think there are important differences to at least how these are carried out currently.
For simplicity, let's talk only about the contravariant case. I understand why contravariantSimple is erring, but it's only because typescript is not inferring a value for T, because there does exist a valid signature where T is inferred, as evidenced by contravariantIntersection. However imagine that T is not entirely unbound, but instead constrained to extend another type, say S, and somehow the return type needed to include the inferred T (for this purpose I'm going to specify that as the return type, even though it doesn't make a lot of sense; also note that in most cases you might not have to use conditional types to extract T, although it arguably makes it simpler for complex types). My definition of the declaration would now look like:
declare function contravariantExtends<C extends Contravariant<never>>(inp: C): C extends Contravarant<infer T> ? T extends S ? T : never : never;

I would argue that the intent of this is less clear than
declare function contravariantIntersection<T extends S, C extends Contravariant<T>>(inp: C & Contravariant<T>): T;

even with the intersection, although "ideally" (in the sense of this issue) without it. More importantly, they're different in that covariantExtends will return never for "invalid" inputs, versus contravariantIntersection will error. Also, to use T inside the function body is very simple with contravariantIntersection, but contravarnatExtends will likely need a wrapper type to use T effectively in the implementation. There's also likely a difference in the way they handle union types. I'm sure that those could be addressed, but they aren't addressed with the way I wrote it.
If I'm missing something obvious, then this is almost certainly irrelevant. However given your note about implementation I'm going to close it anyway, because it is very reasonable to think this isn't worth doing.

Also, this union trick is especially useful with Invariant types e.g.
interface Invariant<T> {
    (inp: T): T;
}

Some examples are in this playground link, but essentially since it's invariant with respect to T, it's not possible to set some default parameter to make it the most general. The only way to make it work with the single parameter version is to define some super type which can be filled with generic constraints, and then narrow the return type so that it's never if the input doesn't actually extend the invariant type (see playground).
Also, using the invariant type will be difficult to use in any implements, because the input and return types don't align, e.g. if they needed to be chained, or the constraint was useful in the definition. All this is just to say that IMO invariantSimple is the reasonable way to implement this, but it doesn't work for the complexity described. For a lot of reasons, the invariantIntersection is probably the best way to implement it that works, although it still feels clunky. And the way recommended is maybe feasible, but produces sub-par results, and would be hard to implement in many situations.


Issues with sensor.toLineProtocol()

Hi,
Is it mandatory to have Serial.println() with sensor.toLineProtocol()?
no data is published into influx cloud if i do not have Serial.println(). My issue is if i have Serial.println() is makes my connection too slow.
Pls let me know on your response.
Regds
Rahul.

did some changes and added some wrappers. Issue is resolved


[depends on: invenio-app-ils#923] search: sort by title

added config fields to allow sorting the catalogue by titles (available in both frontsite and backoffice)
depends on inveniosoftware/invenio-app-ils#923
closes #111

The amended commit fixes sorting by name, it used to not work.


A way to create scrollspy

Hey, guys. As far as I understand, waypoint creates a span element, which is checked if currently visible. This span is just a line. What if the waypoint is a component (with height say 1000px) and you want to trigger onEnter and onLeave when this component is visible.
Is it somehow possible to do?

So far in my apps I've used the span to generate the scrollspy (my scrollbars behave similarly to the ones in Boostrap, which only requires the single span). But I can imagine situations where one might want a scrollspy that factors in the height of some component.
One way to do this would be to add two waypoints: one at the top of your component, and one at the bottom. I know it's not ideal to do this every time, but you should be able to make a simple HoC component abstraction to abstract it. I've been toying with the idea of making a simple wrapper for my particular use case (even though I don't need height to be accounted for), so that I don't have to use the low-level API that this lib provides.
Also, there's been a lot of discussion about converting this lib itself to a HoC (see: #87 and #41 ). I admit I haven't fully read both of those issues – only skimmed them so far – but I remember it being mentioned that factoring in the height of the contents of the waypoint could be taken into account.
If this interests you, you should read up on those issues and see what's been talked about so far. Again, I haven't read them fully but from what I remember other contributors to this lib would at least consider a refactor to make this a HoC. I'm open to it, too!
Lmk if that helps :v:

Ah, interesting @VladShcherbin . I hadn't considered the problem of the component mounting and extending beyond both boundaries. If there was some way to determine the position of a waypoint on mount, then you could do what you're looking for in a robust way. I haven't thought too hard about doing that, but a quick glance at the API suggests that it might not be possible.
I agree that the most elegant way to handle this would be a lib that functions like your second example.

I too hadn't considered the mounting issue. Thanks for adding that to the discussion. If a waypoint was allowed to have children we could take that scenario into account. I'm happy to accept a PR adding support for this use-case using a regular children approach. If we can come up with a use-case that necessitates a HOC I'd be open for that too. The use-cases I've seen so far however haven't really needed a HOC approach.

Waypoint mounting can be delayed, Ex:
class WaypointLazy extends React.Component {

  state = { render: <span style={{fontSize: 0}} /> };

  componentDidMount() {
    setTimeout(() => this.setState({ render: <Waypoint {...this.props} /> }));
  }

  render() {
    return { this.state.render };
  }
}

I'm working on two projects relate to scroll behaviours, both derived from React-waypoint code.
First one is react-scrollaware is generic scroll event handler HoC, is almost complete.
Second is react-scrolled a WIP project builded on top of react-scrollaware. It will be a library of components and HoC scroll behaviours, will include too a Waypoint implementation.  But like a say is still at early stage and good amount of local code is already not commited.
Any feedback is welcome.

This should be resolved by #152. I'm going to close this issue.
@VladShcherbin , I'm curious to hear if the approach in #152 works for your use case.


Question: Dropdown sub-menus in responsive

When using dropdowns in the responsive layout, I'm having an issue with the sub-menu getting cut off if it extends beyond the black header bar. Is anyone else having this problem?

I fixed this with the following CSS, but I'm wondering if anyone sees any issues with this or if I'm overlooking anything?
div.nav-collapse.in.collapse {
  overflow: visible;
}

@mindctrl I just tried it out in my installation where I was having the same issue and it resolved it for me.


fix: change django dockerfile baseimage

Fixes #56
Describe the changes you have made in this PR -

Migrate all dockerfile base images to debian-bullseye based images

Screenshots of the changes (If any) -
Note: Please check Allow edits from maintainers. before creating the PR.

@The-Debarghya check this issue  #55 and add the command which can allow to install additional OS packages

@The-Debarghya we can convert the python images in generic template and make it configurable for a different frameworks based  on the configuration file.
Please checkout #65

fixed in #65
So, closing this PR!


Add marsman/boostrap/default styles for simple form

Closes #27

What do you think @fjsanpedro? I'm only using one method, instead of 2, but having the behaviour unified was necessary, as you suggested!

Great, ready to 🚀


Upgrading Jetty from 9.2 to 9.3

The effort to upgrade Jetty from 9.2 to 9.3.
In general the observation is that there are some vulnerabilities that
are not being merged back to 9.2 anymore.
Ref. https://snyk.io/vuln/SNYK-JAVA-ORGECLIPSEJETTY-32383

Closing in favor of PR #410


Add ability to use custom preset

This PR aims to be able to define a custom preset reusable in different project. It is like https://github.com/laravel/pint/pull/89 but in a different way.
It allows the developer to define a pint.json like
{
    "preset": "vendor/spatie/pint-preset/preset.json",
    "rules": {
        "declare_strict_types": true
    }
}

Where the preset is the extraction of the rules key in a pint.json.
For example :
{
    "@PSR12": true,
    "no_unused_imports": true,
    "declare_strict_types":  true
}

The custom preset can also be used through --preset option : pint --preset=vendor/spatie/pint-preset/preset.json

@nunomaduro sorry to disturb but any update on the review ?

I am not sure about this pull request, so going to close it for now. May open it in the future again!

@nunomaduro not sure about the feature or the implementation ?


Committing many events can lead to UniqueConstraintViolationException

When multiple processes commit events at the "same time", a UniqueConstraintViolationException can be thrown:
An exception occurred while executing 'INSERT INTO neos_eventsourcing_eventstore_events (id, stream, version, type, payload, metadata, correlationidentifier, causationidentifier, recordedat) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)' with params ...:
SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry
'<stream>-<version>' for key 'stream_version_uniq'

The reason for this is that we read the current version stream before appending new event records so it might happen that the same version is read twice.
Example code to trigger this behavior: https://gist.github.com/bwaidelich/97601b598fb52fc5d45f3cde36e16ce9
A solution might be to block reading until the transaction is committed (maybe not feasible/scaleable) or to catch the UniqueConstraintViolationException and retry (with exponential backoff)

To my understanding, the whole situation is based on the fact that the current stream version is picked from the database, incremented and written back to the database. Since this always has time in between there’s a chance for other processes to do the same.
Instead of a stored procedure, I’d suggest something like this:
INSERT INTO events
(stream,
 version,
 type,
 payload,
 metadata,
 id,
 correlationidentifier,
 causationidentifier,
 recordedat)
    (
        SELECT "Some.Stream",
               COALESCE(MAX(version), 0) + 1,
               "Some.Type",
               "{event:data}",
               "{meta:data}",
               "Some.Uuid",
               "",
               "",
               NOW()
        FROM events
        WHERE stream = "Some.Stream"
    );

Of course it's to be tested if this works for every supported database platform.

@stephanschuler Thanks for your feedback.
In fact that's why I (roughly) suggested as well when we talked about it.
We would have to respect the specified expectVersion (if not ANY) somehow..
But according to @skurfuerst and @kitsunet a subselect during INSERT won't be transaction-safe (right?)

Ah, that's the part of the conversation I missed.

Ah, that's the part of the conversation I missed.

We just briefly covered it during our slack call the other day.
I still like the idea to insert & check version with a single SQL statement, but it'll be one query per event anyways and I don't know how we could guarantee that all events are committed atomically with increasing versions respecting the expectVersion constraint with that approach..

But according to @skurfuerst and @kitsunet a subselect during INSERT won't be transaction-safe

You can wrap a select and insert into a transaction and AFAIK a subselect is just syntax sugar for a separate query into variables. But that won't solve the underlying issue here. It will just prevent that the select will see the change of another transaction before the insert, i.e. it solves the issue of the read being consistent with the following write.
The issue we have though is exactly opposit - two reads seeing the same value, calculating a new value and then assuming no write happens in between. The read+write is technically atomic, but one of the two writes will fail for exactly that reason - atomicity doesn't guarantee every operation to succeed.
So the "correct" way to handle this, is retry. Blocking won't help either, unless we block on the DB side and let's better not start with (manual) table locks - it will just cripple read performance.

After experimenting with this a little more, I think that we have to switch the transaction isolation level to READ_UNCOMMITTED. That way everything works as expected (with retries instead of blocking reads) but in the worst case there are holes in the sequence number column (which should not pose a problem).
With other isolation levels it always ended up blocking the read

I'll create a PR asap so we can discuss this on the actual implementation


bug/Docx with table and merged cell duplicates text

Docx table parsing. When table has merged cells, the text inside the merged cell gets outputted multiple times (repeat count is the number of merged cells).
Unstructured 0.10.30, python-docx 1.1.0
Reproduce:
Parse example file, notice topmost merged cells text "DSFSFAD" get repeated on output.
test_table.docx

@tkumpumak do you have a point-of-view (POV) on what would be the preferred behavior for merged cells?
I think it comes down to two choices:

Blank spanned cells. Include a cell for every row/column intersection in the table, but only show text appearing in a merged cell in the upper-left cell of the spanned cells.
Omit spanned cells. Only include cells that actually exist, i.e. the text of a merged cell appears when the top-left cell of that merge is encountered an all other spanned cells are omitted from the output.

The first option produces a uniform table as output, i.e. all rows have the same number of cells but includes "empty" cells. Option 2 on the other hand loses the relationship of columns and/or rows, like if row 3 has 2 cells and row 1 has 3 then you can't tell which cell might be the column heading for cell 3, 2 and you can't tell which other cells are in the same column as that cell either.
In either option you lose the relationship (perhaps as headings) of spanned cells to at least some of their rows/columns. This is probably the one good thing about the current behavior (which is rooted in how python-docx currently treats merges).

If you are talking about the "text" output on element, then likely duplicated text should not be preset. If about the table "html_as_text" then it might be a bit more complicated.
Let me explain why I found this issue if it helps with the solution. I was checking some data and noticed there was lot's of duplicated text in the parsed documents. It turned out that these docx files had layout done with tables. In this case the documents were CV:s and they had full paragraphs of text on each of these merged rows.
I guess the handling should be consistent between different file parsers. How is the table extraction doing it on pdf or other file formats that extract tables? What would be the least surprising result for the merged cell case? At least for me it would be that the text would not be duplicated. But cannot say that in behalf of other users.

Hmm, good point drawing the distinction between .text and metadata.text_as_html. Whatever we do with the latter it seems clear the former should have no repeated text that does not appear so in the document itself.
I think I can pick up this focused case this week and we'll see where we go with the HTML output separately. Thanks very much for the benefit of your perspective on this :)

@scanny hi,
still having this duplicated text problem with this kind of table structure :
merged_table2.docx
table doc:

after partition_docx :

python-docx                             1.1.2
unstructured                            0.14.3


⚠ Processors has degraded performance

In 0f7dc8c, Processors ($STATUS_URL) experienced degraded performance:

HTTP code: 200
Response time: 1203 ms

Resolved: Processors performance has improved in 17c83b5.


Feature Support Gateway

Support gateway config , to support ping POD ip across subnet. like:

https://github.com/spidernet-io/spiderpool/issues/514


Only include the await! macro when compiling with nightly Rust

In preparation to removing the unstable feature, I think it would be interesting not to include the await! macro on non-nightly builds, since it cannot work.
docs.rs uses nightly Rust for the generation so the macro will be there.
Disadvantadges:

It may be confusing not to have the macro when attempting to use it on non-nightly Rust although it is there in the docs.

Thoughts?

I guess this begs the larger question of whether it makes sense at all to continue supporting those unstable features or whether we should completely remove them. I don't think nb will play a major role in our async story.

Yes, probably. Specially since changes to generators in Rust nightly would break it without us being able to do anything about it and furthermore, await is a reserved keyword in Rust edition 2018.
We quickly agreed to just remove the unstable feature in the last EWG meeting but maybe this was not thought thoroughly.
Are there actual users of nb's try_nb! or await!?
try_nb! is not problematic, but a lot has happened since futures 0.1.
If removing these this crate will get really thin. Just nb::Result and block!. Many of the examples about the async story would also need to go.

We quickly agreed to just remove the unstable feature in the last EWG meeting but maybe this was not thought thoroughly.

I don't recall agreeing only for the unstable flag to go or the functions themselves. ;)

Are there actual users of nb's try_nb! or await!?
try_nb! is not problematic, but a lot has happened since futures 0.1.

Don't know but since unstable things are not only clearly marked unstable but also only working with a nightly compiler I'm not worried at all. But we can certainly discuss later today in the meeting.

If removing these this crate will get really thin. Just nb::Result and block!. Many of the examples about the async story would also need to go.

Well, that's its main use.

As discussed in the 2020-06-30 meeting we'll wait a few more days and if there're no major objections we're going to remove all unstable cfg-gated functionality and move everything to edition 2018. If needed we can readd the removed functionality in a future proof way without breakage after the 1.0 release.


solve problem pagination

become a contributor with only one line : >

I am still confused about the pagination. I don't know whether it's correct or not.......

We basically need to paginate() it first and then all() it for future processing, and left itself as paginator.

This PR is a duplicate of #51 thus we will close it.


Support for external solvers and solver output parsing?

Hi, I'm checking if there are any plans or thoughts related to these features that would be useful for us:

Ability to read and parse solver output files into rustsat::types::Assignment objects, maybe something like Assignment::from_solver_output(reader) and Assignment::from_solver_output_path(path).
Ability to run an external program as a solver. The user would just specify the path + command line arguments, and under the hood it'd invoke an external process, pipe the output of SatInstance::to_dimacs to the solver, check the exit status as usual (supporting also external processes that report satisfiability using error codes 0/10/20) and parse the output using Assignment::from_solver_output.

In particular, we'd be currently interested in using multi-threaded Gimsatul as the external solver.
Here feature 1 alone would already be useful, and even if we had feature 2, we'd still like to have also feature 1, as it'd make it possible to have workflows in which e.g. SAT instance generation and solution parsing is done on one computer, while SAT solving is done in another machine.
If it helps, I can try to find someone who could contribute these features, but I'd like to first know if this makes sense, if this kind of features should be insider RustSAT or in another crate that depends on it, and if there are already some plans related to this?

Since I am developing RustSAT mainly based on what I need for my own work, there isn't really a clear roadmap for what I would want to do (except for some rough ideas tracked as issues). That being said, I agree that a more flexible option to include any solver via files/pipes sounds quite helpful, and I think it would nicely extend RustSAT. I can give this a try myself sometime, but if you need it urgently, you would need to find somebody else to contribute this.

Skimming through gimsatul a bit right now, it looks like including it via the API more directly is not as trivial as for the other solvers I've worked on so far. So even more reason to add functionality for external solvers.

Since I am not sure when I will get to this, I'll drop some notes on how I would approach this here, in case somebody else wants to pick this up. Also, if anybody is interested to do this, feel free to reach out to me to talk about this more.
Solver output parsing:

Add Assignment::from_vline(line: String) function, creating an assignment from a solver output assignment line (starting with a v , hence dubbed v-line
Add Assignment::from_solver_output<R: BufRead>(reader: R), scanning through solver output and calling from_vline when a v-line is detected
Add Assignment::from_solver_output_path<P: AsRef<Path>>(path: P) calling from_solver_output

External solver:

Implement in rustsat::solvers::external and reexport main type(s) from rustsat::solvers
One main type ExternalSolver with a ExternalSolver::new(config: Config) initializer
Config specifies executable path, optional arguments, whether to write output to file or capture via a pipe, ...
Run solver via std::process::Command
Detect solving result from exit code or s-line and parse solution from v-line

If I get to this at one point myself, these notes should also be quite helpful.

Hi @chrjabs. I think I am almost finished (okay I just miracolusly used rm -rf in the wrong directory), but still I have one problems now.

In the code that you have sent  the let reader = fio::open_compressed_uncompressed_read(path).context("failed to open reader")?; variable does not satisfy the BufRead trait and I could not solve this.

Just wrap the reader in a std::io::BufReader. In the file parsers in the fio module I'm mostly doing that inside the parser function, but I should change that to not potentially buffer a reader again that is already buffered.

For completeness, note that with the just released RustSAT 0.6 you can now use ExternalSolver

Great,  thank you so much!
Attila Mályusz
On Thu 17. Oct 2024 at 16:38, Jukka Suomela @.***>
wrote:

Awesome, many thanks!
—
Reply to this email directly, view it on GitHub
https://github.com/chrjabs/rustsat/issues/78#issuecomment-2419735935,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AHDEVUQMGHEOABR7ZMNOWWDZ37DWBAVCNFSM6AAAAABP46JWF6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDIMJZG4ZTKOJTGU
.
You are receiving this because you commented.Message ID:
@.***>


WIP - Beginnings of nested settings class PreLoad

Not finished, but it's a start.

Reference: #21

@rofr All tests are passing so I think it's at least at a good point to give some code review. Can you take a look and see if there's anything that sticks out?

I changed some prefix / bindingPath bits to fix a bug and needed to make some changes that effects this PR.


Adding a new payment network icon

Hello,
Is there any provision for adding icons for a new payment network?
The official website is https://www.rupay.co.in/

Hello @suyash01 - apologies not he late response! That is certainly something we can consider.
Ideally, we would add a icon for "RuPay" itself - would that be sufficient for your use case?

Yes, that will suffice. Thanks for such high quality icons.


GH-72 CLI

@dzikoysk Ok did like u said.
Now only things left are:
Pandonium-Builder.jar:

Add 'version' argument
Find project version fields in pom.xml files and replace them with provided version

Github actions:

Add publishing to pandanlang maven repo (im really tired so guess I'll only start with that tomorrow).

Thanks! I'll try to make a review tomorrow as soon as I'll find time.

Pandonium-Builder sources should be moved to pandomium-builder/pandomium-cli module. Then, GitHub actions should build the up to date jar and run it to build natives and deploy them 🤔

@dzikoysk Yeah gonna do it when it works 100%.
Last problem im having is with the github api. Already opened an issue on their repo for that.
I just organized the code of https://github.com/Osiris-Team/pandomium-builder so its more readable.
New: It will update both pom.xml files  tags and create a maven-install.sh script which then gets executed by github-actions.

@dzikoysk Seems like everything is working. Only thing left for you is to add your maven repo details as secrets (see maven publish action for more info) I guess.
Idk why the pom.xml files are formatted so weirdly, tried to fix it multiple times without success.

I kind of need this, so it would be great if you could review and push the changes to the main branch as soon as possible❤

Right, pandomium-builder is here so I'll try to make a review tomorrow. As I'm not that active these days in this repo, I can add you as collaborator if you want to simplify maintenance process 👍

@dzikoysk ?

Sorry, was quite busy today. A few questions:

Why we have to keep these JARs in repository?

I think it should be generated through the task, don't you think so? 🤔

pandomium/pom.xml is in fact broken, I see this API is quite primitive. Tbh why do you even need to rewrite this file, I don't see any specific reason to do that, as it's only replaces predefined nodes with static values.

@dzikoysk I kept the jars in the directory because you did.

I think it should be generated through the task, don't you think so? 🤔

I have no clue about maven and how you publish them.

pandomium/pom.xml is in fact broken, I see this API is quite primitive. Tbh why do you even need to rewrite this file, I don't see any specific reason to do that, as it's only replaces predefined nodes with static values.

This is again a maven thing. I thought u would have to update the <version> tags of both pom.xml (/pom.xml and /pandonium/pom.xml) files so that it's correct on your maven repo.

General code style and various snippets are dirty as hell, but it might be improved in the future, so don't worry.
Ok great!


adminServiceBaseUrl in the Analytics Dashboard needs to change when configuring with APIM distributed setup.

Description:
adminServiceBaseUrl in the Analytics Dashboard needs to change when configuring with APIM distributed setup.
In the APIM distributed setup, we have to remove this config and use publisher URL in the implementation.
(This configuration can find in the <wso2am-analytics-3.0.0>/conf/dashboard/deployment.yaml file.)
This point needs to address in the official document[1].
[1] - https://apim.docs.wso2.com/en/latest/learn/analytics/configuring-apim-analytics/
Suggested Labels:
APIM-3.0.0

Fixed with https://github.com/wso2/docs-apim/pull/1114


Updated LTR copy PS commands to remove whitespaces

Updated the Copy-AzSqlDatabaseLongTermRetentionBackup PS commands for LTR copies to remove whitespaces to correct the syntax.

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

Looks good; merging. Thanks @Peter-Msft.


Typings

Would it be possible to get some typescript typings for this package, either in the repo or on definitely typed?

Hey @hennessyevan, we've been getting more requests for this (and our other JS projects) lately, so it's definitely something we're planning to look into in the near future. I don't have an exact timeline at the moment but I'll be sure to update you when we get to it.

+1 on typings!

There should be typings for the param argument to buildURL.

Hey @guanzo,
I agree that params deserves better typings. As a team, we are planning to pull in imgix-url-params as a dependency from which these definitions can be robustly constructed. This will help account for changes to the rendering API, as well as any new parameters that get added. To that end, params was assigned a very rudimentary type just to start out, but we expect to start work on pulling in these definitions in the near future. Hope that helps.

Ok great, thanks for clarifying. Sorry I called you guys lazy!

:tada: This issue has been resolved in version 0.3.0-beta.1 :tada:
The release is available on:

npm package (@beta dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

Hey @robinJonsson, the typings should be included in the project's index.d.ts file.

Hi @sherwinski, I meant that the params argument is still pointing to an empty object. It would be great if params had the correct types.

Ah sorry about that, I misunderstood your first comment. Apologies for the delays on this feature, but we have finally set aside time to build this out later this year.


Mismatch between MATLAB- and python-generated grids

There is (see screenshot) a difference between the Grid object when generated using python roms-tools vs MATLAB. Per our discussion my understanding is that topography smoothing is applied before the mask is generated, leading to the problem.

Related to #66

@nmolem looking at your MATLAB scripts, they define the mask by choosing a threshold of 0.11 meters for the dealiased interpolated bathymetry h_dealiased, i.e.,

land where h_dealiased < 0.11 m
ocean where h_dealiased > 0.11 m

Is there a deeper meaning behind that 0.11 meter threshold?
@dafyddstephenson the difference in your plot above stems from the fact that the python package simply uses a threshold of 0 meters.

I don't remember why I picked 0.11 meter. Surely no deeper meaning and you can pick 0m as well.

@NoraLoose got it. Well this isn't the most scientifically rigorous argument for a parameter choice but the map resulting from 0.11 definitely looks a lot more like Wales 😂🏴

Sometimes, it's better to be lucky than good.

This issue is resolved because we are now inferring the mask from a separate coastline dataset, rather than from the regridded topography together with a threshold.
This is what the improved mask looks like now for the 30 x 30 Wales grid.


is it possible to use this library with Jetpack Compose?

is it possible to use this library with Jetpack Compose? If anyone has had experience with this library and Jetpack Compose, please share your experience

not possible


Updated arguments for person as per list

Updated mutations and tests for finalised arguments for person, as listed in https://docs.google.com/document/d/1B1O2tqaubbEHzXSWhvSDYqYu2lwdNKg4Vy04ukMfrUU/edit?pli=1#. Made update mutation more elegant. Name is optional, as suggested in the document.

Could you confirm if publisher should be in the arguments? Or can it be removed? It's not there in the Modelling Discussions

We have no need for publisher at the moment. Let's leave it out until someone comes up with a specific need.

Note that you'll have to rebase against master due to other PRs that were merged.
Make sure you're careful with files you add and delete. I typically use git add <file> individually for each file that I need to add, to avoid the problem of adding additional files. I see that you added tests/data/person/._EXPECTED_PERSON.txt which is probably a temporary file from your text editor.

Resolved issues, conflicts do not show up in the terminal, not sure why they're here.

did you git fetch to download the latest changes to your local version?

Yes, I tried git fetch, not getting conflicts on my end.