Scraping maintainers frozen at 3 April 2019?

Hello,
I've noticed something a bit odd, it seems that maintainer scraping has been frozen at 2019-04-03.
$ curl https://cranchecks.info/maintainers/maelle.salmon_at_yahoo.se | jq '.data.date_updated'
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  1779  100  1779    0     0   2691      0 --:--:-- --:--:-- --:--:--  2691
"2019-04-03T12:01:43.725Z"

$ curl https://cranchecks.info/maintainers/zkamvar_at_gmail.com | jq '.data.date_updated'
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  1242  100  1242    0     0   1040      0  0:00:01  0:00:01 --:--:--  1040
"2019-04-03T12:01:43.744Z"

$ curl https://cranchecks.info/maintainers/hadley_at_rstudio.com | jq '.data.date_updated'
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  9913  100  9913    0     0  13981      0 --:--:-- --:--:-- --:--:-- 13981
"2019-04-03T12:01:43.806Z"

$ curl https://cranchecks.info/maintainers/edd_at_debian.org | jq '.data.date_updated'
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 14573  100 14573    0     0  14301      0  0:00:01  0:00:01 --:--:-- 14301
"2019-04-03T12:01:43.793Z"

Is there something I'm doing wrong on my side?

thanks @zkamvar for this. It is stuck at that date. Something must be wrong with the script that gathers that data.

[x] updatated now - @zkamvar try again, should work now
[ ] i still need to push a fix for pages that are 404, which the current scraping code chokes on

This appears to work on my end. Thanks you!
$ curl https://cranchecks.info/maintainers/maelle.salmon_at_yahoo.se | jq '.data.date_updated'
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  1816  100  1816    0     0   1474      0  0:00:01  0:00:01 --:--:--  1475
"2019-06-25T04:00:34.420Z"
$ curl https://cranchecks.info/maintainers/zkamvar_at_gmail.com | jq '.data.date_updated'
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  1242  100  1242    0     0   1013      0  0:00:01  0:00:01 --:--:--  1013
"2019-06-25T08:00:34.467Z"
$ curl https://cranchecks.info/maintainers/hadley_at_rstudio.com | jq '.data.date_updated'
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  9565  100  9565    0     0   8640      0  0:00:01  0:00:01 --:--:--  8640
"2019-06-25T08:00:34.490Z"
$ curl https://cranchecks.info/maintainers/edd_at_debian.org | jq '.data.date_updated'
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 14618  100 14618    0     0  17805      0 --:--:-- --:--:-- --:--:-- 17783
"2019-06-25T08:00:34.485Z"

great, glad it works now


🐛 noUselessElse has a unhelpful/unclear description

Environment information
CLI:
  Version:                      1.4.0
  Color support:                true

Platform:
  CPU Architecture:             aarch64
  OS:                           macos

Environment:
  BIOME_LOG_DIR:                unset
  NO_COLOR:                     unset
  TERM:                         "xterm-256color"
  JS_RUNTIME_VERSION:           "v20.4.0"
  JS_RUNTIME_NAME:              "node"
  NODE_PACKAGE_MANAGER:         unset

Biome Configuration:
  Status:                       Loaded successfully
  Formatter disabled:           false
  Linter disabled:              false
  Organize imports disabled:    false
  VCS disabled:                 true

Workspace:
  Open Documents:               0

What happened?
Currently, the description for the noUselessElse rule reads

Disallow else block when the if block breaks early.
If an if block breaks early using a breaking statement (return, break, continue, or throw), then the else block becomes useless. Its contents can be placed outside of the block.

which is not very clear in explaining why the else block becomes useless. This could result in people who cannot interpret the reasoning of why the else block becomes useless to disable the rule.
Expected result
A better alternative could be something like this

If an if block breaks early using a breaking statement (return, break, continue, or throw), the else block becomes unnecessary. This is because the contents of the else block will never be executed in conjunction with the if block, as the breaking statement ensures the control flow exits the if block immediately. Therefore, the else block is redundant, and its contents can be more effectively placed outside of the block, enhancing clarity and efficiency in the code structure.

Let me know if I should modify anything or make a PR for it.
Code of Conduct

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

Therefore, the else block is redundant, and its contents can be more effectively placed outside of the block, enhancing clarity and efficiency in the code structure.

if (a) {
  return ...;
} else if (b) {
  return ...;
}

Here the else is redundant, but the condition is not, so the "block" should remain:
if (a) {
  return ...;
}

if (b) {
  return ...;
}

I think rather than talking about "blocks", the description should talk about the else clause itself.


Crashes from FIPS provider EVP_RAND_generate when statically linked to libcrypto

Hello!
I am trying to investigate a segfault from EVP_RAND_generate in the FIPS provider when libcrypto is linked statically to my application. These do not occur when linking to libcrypto dynamically. I get segfaults in two different scenarios. One, if the openssl fipsinstall command is not run so the self tests are performed at run time, in this case, checking if the FIPS default property is set: (OpenSSL 3.0.7, no debug symbols, can provide if required)
Program received signal SIGSEGV, Segmentation fault.
0x0000000000589ac4 in err_string_data_cmp ()
(gdb) bt
#0  0x0000000000589ac4 in err_string_data_cmp ()
#1  0x00007ffff7f05a48 in EVP_RAND_generate () from /home/ubuntu/dep/ssl307static/lib64/ossl-modules/fips.so
#2  0x00007ffff7f2bf5b in RAND_priv_bytes_ex () from /home/ubuntu/dep/ssl307static/lib64/ossl-modules/fips.so
#3  0x00007ffff7ec895d in bnrand_range () from /home/ubuntu/dep/ssl307static/lib64/ossl-modules/fips.so
#4  0x00007ffff7f54863 in BN_BLINDING_create_param () from /home/ubuntu/dep/ssl307static/lib64/ossl-modules/fips.so
#5  0x00007ffff7f2d29e in RSA_setup_blinding () from /home/ubuntu/dep/ssl307static/lib64/ossl-modules/fips.so
#6  0x00007ffff7f30963 in rsa_ossl_private_encrypt () from /home/ubuntu/dep/ssl307static/lib64/ossl-modules/fips.so
#7  0x00007ffff7f32e55 in RSA_sign () from /home/ubuntu/dep/ssl307static/lib64/ossl-modules/fips.so
#8  0x00007ffff7eaa48c in rsa_sign () from /home/ubuntu/dep/ssl307static/lib64/ossl-modules/fips.so
#9  0x00007ffff7e8035c in self_test_sign () from /home/ubuntu/dep/ssl307static/lib64/ossl-modules/fips.so
#10 0x00007ffff7e80e71 in SELF_TEST_kats () from /home/ubuntu/dep/ssl307static/lib64/ossl-modules/fips.so
#11 0x00007ffff7e7f51c in SELF_TEST_post () from /home/ubuntu/dep/ssl307static/lib64/ossl-modules/fips.so
#12 0x00007ffff7e7dd1e in OSSL_provider_init_int () from /home/ubuntu/dep/ssl307static/lib64/ossl-modules/fips.so
#13 0x00000000005c426e in provider_activate ()
#14 0x00000000005c52ac in ossl_provider_activate ()
#15 0x00000000007271e3 in provider_conf_init ()
#16 0x000000000055d73b in CONF_modules_load ()
#17 0x000000000055e0e4 in CONF_modules_load_file_ex ()
#18 0x00000000006b490a in ossl_config_int ()
#19 0x00000000005b987f in ossl_init_config_ossl_ ()
#20 0x000000000079060f in __pthread_once_slow (once_control=0xa52570 <config>, init_routine=0x5b9870 <ossl_init_config_ossl_>) at pthread_once.c:116
#21 0x00000000005c6f6d in CRYPTO_THREAD_run_once ()
#22 0x00000000005ba0d3 in OPENSSL_init_crypto ()
#23 0x00000000005d9a98 in ossl_ctx_global_properties ()
#24 0x000000000059a5c2 in EVP_default_properties_is_fips_enabled ()

If the openssl fipsinstall command is run, it completes succesfully; however, a segfault is then given when libcurl (also linked statically to the application) tries to initialize a TLS session (OpenSSL 3.0.3, debug symbols enabled):
Thread 1 "acvp_app" received signal SIGSEGV, Segmentation fault.
0x00007ffff7ef06e1 in evp_rand_get_ctx_params_locked (ctx=0xaf3560, params=0x7fffffffc360) at crypto/evp/evp_rand.c:401
401	    return ctx->meth->get_ctx_params(ctx->algctx, params);
(gdb) bt
#0  0x00007ffff7ef06e1 in evp_rand_get_ctx_params_locked (ctx=0xaf3560, params=0x7fffffffc360) at crypto/evp/evp_rand.c:401
#1  0x00007ffff7ef0c85 in evp_rand_generate_locked (ctx=0xaf3560, out=0xc7a120 "", outlen=32, strength=0, prediction_resistance=0, addin=0x0, addin_len=0) at crypto/evp/evp_rand.c:551
#2  0x00007ffff7ef0e1e in EVP_RAND_generate (ctx=0xaf3560, out=0xc7a120 "", outlen=32, strength=0, prediction_resistance=0, addin=0x0, addin_len=0) at crypto/evp/evp_rand.c:580
#3  0x00007ffff7f1cdcc in RAND_priv_bytes_ex (ctx=0xb0b690, buf=0xc7a120 "", num=32, strength=0) at crypto/rand/rand_lib.c:335
#4  0x00007ffff7e71e24 in ecx_gen (gctx=0xc86650) at providers/implementations/keymgmt/ecx_kmgmt.c:597
#5  0x00007ffff7e71fc0 in x25519_gen (genctx=0xc86650, osslcb=0x5e38ba <ossl_callback_to_pkey_gencb>, cbarg=0xc9e930) at providers/implementations/keymgmt/ecx_kmgmt.c:640
#6  0x00000000005d87ef in evp_keymgmt_gen (keymgmt=0xb88820, genctx=0xc86650, cb=0x5e38ba <ossl_callback_to_pkey_gencb>, cbarg=0xc9e930) at crypto/evp/keymgmt_meth.c:375
#7  0x00000000005d7547 in evp_keymgmt_util_gen (target=0xc62ac0, keymgmt=0xb88820, genctx=0xc86650, cb=0x5e38ba <ossl_callback_to_pkey_gencb>, cbarg=0xc9e930)
    at crypto/evp/keymgmt_lib.c:511
#8  0x00000000005e3b72 in EVP_PKEY_generate (ctx=0xc9e930, ppkey=0x7fffffffc5f0) at crypto/evp/pmeth_gn.c:189
#9  0x00000000005e3e57 in EVP_PKEY_keygen (ctx=0xc9e930, ppkey=0x7fffffffc5f0) at crypto/evp/pmeth_gn.c:274
#10 0x00000000004e4132 in ssl_generate_pkey_group (s=0xc8d2f0, id=29) at ssl/s3_lib.c:4716
#11 0x0000000000521c3a in add_key_share (s=0xc8d2f0, pkt=0x7fffffffc800, curve_id=29) at ssl/statem/extensions_clnt.c:609
#12 0x0000000000521f7b in tls_construct_ctos_key_share (s=0xc8d2f0, pkt=0x7fffffffc800, context=128, x=0x0, chainidx=0) at ssl/statem/extensions_clnt.c:692
#13 0x000000000051d2f4 in tls_construct_extensions (s=0xc8d2f0, pkt=0x7fffffffc800, context=128, x=0x0, chainidx=0) at ssl/statem/extensions.c:842
#14 0x0000000000531d52 in tls_construct_client_hello (s=0xc8d2f0, pkt=0x7fffffffc800) at ssl/statem/statem_clnt.c:1270
#15 0x000000000052ed96 in write_state_machine (s=0xc8d2f0) at ssl/statem/statem.c:852
#16 0x000000000052e012 in state_machine (s=0xc8d2f0, server=0) at ssl/statem/statem.c:451
#17 0x000000000052da60 in ossl_statem_connect (s=0xc8d2f0) at ssl/statem/statem.c:265
#18 0x00000000004f5eea in SSL_do_handshake (s=0xc8d2f0) at ssl/ssl_lib.c:3923
#19 0x00000000004f127d in SSL_connect (s=0xc8d2f0) at ssl/ssl_lib.c:1745
#20 0x00000000004d5aa9 in ossl_connect_step2 ()
#21 0x00000000004d9ca6 in ossl_connect_common ()
#22 0x00000000004a4c0a in ssl_cf_connect ()
#23 0x000000000048bbc9 in multi_runsingle ()
#24 0x000000000048cf86 in curl_multi_perform ()
#25 0x000000000048135b in curl_easy_perform ()
#26 0x000000000044e2e8 in acvp_curl_http_post (ctx=ctx@entry=0xb20fc0, url=url@entry=0x7fffffffceb0 "https://demo.acvts.nist.gov:443/acvp/v1/login",
    data=data@entry=0xb28020 "[basic json payload, removed from backtrace], data_len=data_len@entry=46) at acvp_transport.c:352

Tested OpenSSL versions:
3.0.2
3.0.3
3.0.7
Configuration: no-shared enable-fips --prefix=/path
Tested libcurl versions:
7.80.0
7.87.0
Configuration: --disable-shared --with-ssl=/path --prefix=/path
Link to Curl configuration code: https://github.com/cisco/libacvp/blob/libacvp_1_TBD_throttle/src/acvp_transport.c#L277
The changes I am testing to our build system (improving our linking configuration options) are not yet committed, but I can place the WIP on a branch in the above repo if required.
Thanks,
Andrew

Hello,
After testing, both crashes seem to go away if no-threads is used at build time.
Thanks,
Andrew

Could you try to explicitly initialize the OpenSSL library with OPENSSL_init_crypto(OPENSSL_INIT_CONFIG, NULL) as a workaround?

#0  0x0000000000589ac4 in err_string_data_cmp ()
#1  0x00007ffff7f05a48 in EVP_RAND_generate () from /home/ubuntu/dep/ssl307static/lib64/ossl-modules/fips.so

Looks like the FIPS module is trying to raise some error here. Typically it does so via callbacks, back into the application's version of libcrypto. You can see that in frame 1 we are in fips.so, but in frame 0 we are not. But I guess we're missing some stack frames since EVP_RAND_generate() does not directly call err_string_data_cmp(). Probably worth running this with debug symbols and optimisation set to 0.
Is your application linked against the same version of libcrypto that the FIPS module is? (It shouldn't have to be, but it would be interesting to know if we have some incompatibility between versions).

Statically linking libcrypto while using the FIPS provider works just fine if glibc is still dynamically linked; this problem seems unrelated to OpenSSL. Sorry for the noise, and thanks!
Andrew


[bug] home_url missing trailing / (slash) on home

Grav version 1.7.44 and 1.7.43
From the docs:

The home_url is particularly useful to use to link back to the homepage of your site. It is similar to base_url but takes the currently active language into account.

Description:
On home (index) {{ home_url }} returns the home_url without trailing / slash: https://localhost/mysite returns /mysite
On subpages a trailing slash is correctly added: https://localhost/mysite/subpage returns /mysite/
Expected output:
On home (index) {{ home_url }} returns the home_url with trailing / slash: https://localhost/mysite returns /mysite/
Impact: Consistency - this becomes  a concern when the site should be crawled by search engines, or re-written by static-site generators.
Current workaround: extend template php to add a slash, if needed. See:  oxygen.php

Search engines and browsers treat URLs with or without a trailing slash the same.  If you asked someone to type a URL they woud never add a trailing slash to the URL, so in general it's simpler and easier to have a URL without the trailing slash.
I think the rule of thumb weather you use a trailing slash or not is to be consistent.  If you don't use a trailing slash, then consistently don't use it.  I don't think forcing a trailing slash is a good idea because for most people they don't use it.  Best to go with the common use case, and not have it.

@rhukster: You are right about consistency.
Please take note that the current implementation of  {{ home_url }} in Grav 1.7.45 is inconsistent:

Home does not add a trailing slash to the URL
Subpages do add a trailing slash

wget --no-parent requires trailing slashes.


[BUG] starlette.TestClient with Jinja2Templates and middleware

Describe the bug
The problem arise when using starlette TestClient to get a template response that passes through a middleware.
To Reproduce
I made a repo with the minimal fastapi app to raise the error:
https://github.com/bloomingmath/fastapi-middleware-issue
To reproduce, clone the repo and run pytest main.py
Expected behavior
I expect the test to run flawlessly, but it raise AssertionError as shown in the readme.md of the same repo.
Environment

OS: Ubuntu 18.04
Python 3.7.5
attrs==19.3.0
certifi==2019.11.28
chardet==3.0.4
fastapi==0.45.0
idna==2.8
importlib-metadata==1.3.0
Jinja2==2.10.3
MarkupSafe==1.1.1
more-itertools==8.0.2
packaging==19.2
pluggy==0.13.1
py==1.8.0
pydantic==1.2
pyparsing==2.4.5
pytest==5.3.2
requests==2.22.0
six==1.13.0
starlette==0.12.9
urllib3==1.25.7
wcwidth==0.1.7
zipp==0.6.0

This is related issue, in starlette, maybe...
https://github.com/encode/starlette/issues/472
Hmm.. this is strange, maybe. Somehow, message["type"] is not "http.response.start", in starlette's middleware.
I print debugged, this value is "http.response.template".
actual value is like below.
{'type': 'http.response.template', 'template': <Template 'page.html'>, 'context': {'request': <starlette.requests.Request object at 0x7f9f2ced5850>}}

but async-asgi-testclient is ok
Writing similar tests, using async-asgi-testclient.
import pytest

@pytest.mark.asyncio
async def test_middleware2():
    from async_asgi_testclient import TestClient

    async with TestClient(app) as client:
        response = await client.get("/")
        assert "X-Process-Time" in response.headers

test is passed.
then, message value is below
{'type': 'http.response.start', 'status': 200, 'headers': [(b'content-length', b'131'), (b'content-type', b'text/html; charset=utf-8')]}

You are right @podhmo, the problem is with starlette and not with fastapi. Also, using async-asgi-testclient permits testing the application until starlette's test client is fixed.
Thank you for your help.

OK. I understood completely. This is the same issue as https://github.com/encode/starlette/issues/472

Starlette's template response class treats specially when scope has { "extensions": { "http.response.template": ...}}, then returns "http.response.template" message. ( here )
when Starlette's testclient sendindg http request, always attaching data including { "extensions": { "http.response.template": ...}} ( here )
And, BaseMiddleware asserting "http.response.start" message. ( here )

So, test is failed.

Thanks for the help here @podhmo ! :clap: :bow:
Thanks for reporting back and closing the issue @bloomingmath  :+1:


How to determine if verification is successful or not?

From the code, the following is the way to verify a token.
void verify(std::string some_token)
{
	auto verifier = jwt::verify().allow_algorithm(jwt::algorithm::hs256{ "secret" }).with_issuer("auth0");

	verifier.verify(jwt::decode(some_token));
}

if this function is called, @Thalhammer , please how can the status of the verification be determined since the function returns a void (because verifier.verify() return void).
Thanks.

If you take a look at the test cases or the documentation https://github.com/Thalhammer/jwt-cpp/blob/65b632b674da7fcc189adf7336c652108188aa29/include/jwt-cpp/jwt.h#L1472 you can see that it throws if the verification fails for any reason. The exception might vary depending on the reason of failure, but you know for sure the token is valid if it does not throw.
So you would do something along the lines of this:
bool verify(std::string some_token)
{
        try {
	       auto verifier = jwt::verify().allow_algorithm(jwt::algorithm::hs256{ "secret"}).with_issuer("auth0");
	       verifier.verify(jwt::decode(some_token));
               return true;
        } catch(const std::exception& e) {
               return false;
        }
}

Also note that you can store and reuse a verifier unless the params conditions change. The verifier is designed to do that and it might improve performance.

Thanks for your response @Thalhammer I understand better. I will close this issue.


after reload view, the keyboard shortcuts command will executed multiple times.

[x] I am on the latest Hyper.app version
[x] I have searched the issues of this repo and believe that this is not a duplicate

OS version and name: windows10+x64
Hyper.app version: 2.0
Link of a Gist with the contents of your .hyper.js:
Relevant information from devtools no
The issue is reproducible in vanilla Hyper.app: execute menu -> view -> reload,  then create new tab. you will find create tow tabs.

Issue
https://github.com/zeit/hyper/blob/a14c55640c47c4e294095e50a610c5e77d2fad22/lib/containers/hyper.js#L56
I think when reload view, the method will create a new Mousetrap, because of the mousetrap do not save and is null.

Nice catch.
Thank you for your analyze.

@chabou another problem after reload is the active area is empty, it should show the cwd of the current tab. you can try to resolve it.

I'm running on canary and I still have this problem. I've installed Hyper 10 minutes ago, and changed nothing in the configuration so far (except for the updateChannel) and installed no plugins.


It doesn't work

I choose format and nothing happens. Whether I select the text or not. I am online. Using Notepad++ 6.9.2

Hi, thenrich2009
It can work on my Notepad++ 6.9.2 normally.
Please make sure:
First step:
download sqlformat.dll and put it into Notepad++\plugins directory
Second step:
add "Format SQL" into Context Menu by select Settings->Edit Popup ContextMenu, modify contextMenu.xml by adding this line:
<Item FolderName="Plugin commands" PluginEntryName="SQL Format" PluginCommandItemName="Format" ItemNameAs="Format SQL"/>

Third step:
Restart Notepad++, write a simple sql, then test the context menu "Plugin commands/Format SQL"

I followed the steps. It didn't work.
Is there some kind of logging to troubleshoot this?


⚠ Samsung has degraded performance

In 2720f73, Samsung (https://samsung.com) experienced degraded performance:

HTTP code: 200
Response time: 2564 ms

Resolved: Samsung performance has improved in 614561b.


DBZ-3619 Oracle DDL parser add "UNIQUE INDEX" logging support

https://issues.redhat.com/browse/DBZ-3619
This adds the capability to parse SUPPLEMENTAL LOG DATA (UNIQUE) COLUMNS as well as the user's failing syntax which is SUPPLEMENTAL LOG DATA (UNIQUE INDEX) COLUMNS.

Thx; applied to master and 1.5.


KeyError came out!

I am a researcher who want to use ecmwf-opendata api. But whenever I tried to execute this code, it didn't work out. I don't know why it doesn't run.

I've just tried your code with v0.2.0 and it worked fine. I got result printed and a data.grib2 file that contained 2m Temp data.


Improve documentation of ZCL_ABAPGIT_OBJECT_COMMON_AFF

The current lack of this documentation makes it unclear what these methods do and how overwriting in the framework affects the operations.
This is improved by this pull request.

Thanks @wurzka! Doc in the code is nice, but we should also update https://docs.abapgit.org/development-guide/serializers/ to include AFF. I created https://github.com/abapGit/docs.abapgit.org/issues/180


Clean up logic around max handling to regress

I'm trying to test changes against my new Java client and believe that this is a little cleaner and fixes some edge race conditions. There are several more and not sure that these changes should be applied until a wider look at delivered/max logic is looked at here...

Race check passes.

Could you print the race conditions that you got? I am not sure what race there was there. Thanks!

The code in various places around delivered/msgs/max does not work when pushing the client hard and is not correct. This fix helps. I understand a async and sync subscribers are different and not valid for the same subscription.
All logic around auto-unsubscribe handling needs to be consistent in its results. It's not now. Will check in a larger test suite later that demos this with the my java client code m

I retract my comment about the channel. Your changes would not alter the behavior of the channel, and so there would still be code to check that the SubChanLen limit is reached and process a slow consumer there.
However, in the case of a sync subscription that would stop calling NextMsg(), removing the "removeSub" from processMsg() would lead to issue #74, whereby the subscription would not be removed, which would be a problem in case of reconnect.

My proposed change does not affect NextMesg from calling nc.removeSub. If you look at all this code its flawed, sometimes checking sub.delivered, sometimes sub.msgs and comparing to sub.max.
We have two overall issues in this code IMO and I am trying to vent out whether my view is right or wrong:

We should only compare delivered to max. Period no references to msgs, etc. that is to track deliveries to the subscription overall, NOT delivered messages
We should only decrement delivered messages/do this comparison logically ONCE, the previous code does it in two different ways with different concurrency profiles. This check should be done when WE DELIVER a message. That is the only time its valid to look at delivered.

I suspect the previous code was to optimize putting messages on the pending channel that may not be processed for auto unsubscribed subscriptions. That code is not correct from my understanding of how this is supposed to work.
Can we put together a doc/issue/clarity on this? Am happy to do so but want to make sure I understand the semantics or my description above is correct -- or close ;-).

You wrote:  "My proposed change does not affect NextMesg from calling nc.removeSub."
But your proposed changes would cause an issue when the user is not calling NextMsg(). If you remove the block where we call nc.removeSub() when sub.msgs > sub.max in processMsg(), then when messages arrive from the connection and the max is reached, without the code you are proposing to remove, the subscription will stay (again, if the user does not call NextMsg()). If a reconnect occurs, the library will resend a SUB for that subscription, because it still has it. So the code there ensures that the connection clean up the subscription that has received the given max amount. At this level, the connection doesn't care if the messages were actually delivered to the application. The connection simply knows that it has seen sub.msgs messages and that it is more than the sub.max allowed.

I think the best way to proceed on these types of issues is to present test cases first that show the bad behavior, along with the fix. More tests are always good IMO.

Agreed. Just want to confirm expected logical behavior of max with regard to a subscribers view.  Ignore client libraries and think of the logical protocol spec. Is the below a reasonable draft of expected behavior of unsub and sub?
If so will clarify and get a test in.

We guarantee at most max messages will be delivered to a given subscriber
By default max messages is infinite
Request response subscribers will automatically set max messages to 1
Clients may override the default using language specific methods (typically passing max to the unsubscribe method on connection).
Nats guarantees that if max messages, at the exact time of a message is to be consumed by the subscriber, is less than or equal to zero the message will not be delivered (sic., discarded) to the subscriber. (Need to mention being removed as a subscription/logically closed?)
Nats guarantees that the value of max messages for the subscriber is decremented right before it is consumed and in an atomic fashion with regard to step 5
If messages are to be delivered again to the same subject, the subscriber must use one of the mechanisms in steps 2-4 (necessary language?)

Issue 3 above is cliebt specific, for example Node.js does not set this. Also, if set, performs an UNSUB.
Issue 5 I think you mean delivered. And yes if we receive it on the client side, UNSUB again as appropriate if we believe we did the auto UNSUB before.
Issue 6 is for delivered, but yes.
Not following Issue 7.

Thanks that helps and confirms my understanding. Again ignoring specific client framework specifics and their behavior -- the primary clarity I'm looking for is the semantics of unsub with respect to max != 0
For point 7 (when max can change, delivery starts if ever again for a subscriber) was just trying to clarify delivery will not happen until a new subscription is created or the client changes max (if the client lib allows that, none do that I've reviewed)
The condition I found and will demo is that if the subscriber calls unsub themself (and other cases), the go and other client clients drop messages they should not because that check of max/delivered is not in the same unit of work as the as the actual callback or sync call to next message. There could be an undetermined amounted time when the eval off all that happens from the parser call back to the other routines to deliver/get a message to/from the calling client.

UNSUB with max != 0 and present for the protocol signals the server to auto-unsubscribe when max has been delivered to the client's connection.
Currently I do not think any client supports resetting max after it is initially set. The server should be fine with it.
For the last condition, test will be good to show the bad behavior.

Agreed, I don't think any client allows modifying max. Since Java, C#, and
C are modeled directly on the Go client, I'm pretty sure of it.
On Sunday, November 29, 2015, Derek Collison<EMAIL_ADDRESS>wrote:

UNSUB with max != 0 and present for the protocol signals the server to
auto-unsubscribe when max has been delivered to the client's connection.
Currently I do not think any client supports resetting max after it is
initially set. The server should be fine with it.
For the last condition, test will be good to show the bad behavior.
—
Reply to this email directly or view it on GitHub
https://github.com/nats-io/nats/pull/114#issuecomment-160505086.

--
Larry McQueary | Director, Messaging Technology
<EMAIL_ADDRESS>| @mcqueary | github.com/mcqueary

Umm, what if someone calls unsub in their message callback?

On Nov 30, 2015, at 11:15 AM, Larry McQueary<EMAIL_ADDRESS>wrote:
Agreed, I don't think any client allows modifying max. Since Java, C#, and
C are modeled directly on the Go client, I'm pretty sure of it.
On Sunday, November 29, 2015, Derek Collison<EMAIL_ADDRESS>wrote:

UNSUB with max != 0 and present for the protocol signals the server to
auto-unsubscribe when max has been delivered to the client's connection.
Currently I do not think any client supports resetting max after it is
initially set. The server should be fine with it.
For the last condition, test will be good to show the bad behavior.
—
Reply to this email directly or view it on GitHub
https://github.com/nats-io/nats/pull/114#issuecomment-160505086.

--
Larry McQueary | Director, Messaging Technology
<EMAIL_ADDRESS>| @mcqueary | github.com/mcqueary
—
Reply to this email directly or view it on GitHub.

I believe I test for that.

There is a unit test for that in Go, Java, C and C#.
On Mon, Nov 30, 2015 at 9:34 AM, Derek Collison<EMAIL_ADDRESS>wrote:

I believe I test for that.
—
Reply to this email directly or view it on GitHub
https://github.com/nats-io/nats/pull/114#issuecomment-160681244.

--
Larry McQueary | Director, Messaging Technology
<EMAIL_ADDRESS>| @mcqueary | github.com/mcqueary

Actually, re-reading Jeff's question, I'm not sure I'm interpreting
correctly:
"Umm, what if someone calls unsub in their message callback?",
I am not sure I understand the question. Are you asking whether max gets
reset when unsubscribing from within a callback?
On Mon, Nov 30, 2015 at 9:37 AM, Larry McQueary<EMAIL_ADDRESS>wrote:

There is a unit test for that in Go, Java, C and C#.
On Mon, Nov 30, 2015 at 9:34 AM, Derek Collison<EMAIL_ADDRESS>wrote:

I believe I test for that.
—
Reply to this email directly or view it on GitHub
https://github.com/nats-io/nats/pull/114#issuecomment-160681244.

--
Larry McQueary | Director, Messaging Technology
<EMAIL_ADDRESS>| @mcqueary | github.com/mcqueary

--
Larry McQueary | Director, Messaging Technology
<EMAIL_ADDRESS>| @mcqueary | github.com/mcqueary

I'm wasting time without showing code failing in  patch-1. here's one simple scenario, this stuff matters if we are pushing on more complex protocols like state management...
expected = 10000
received = AtomicInt (0);
// get the radar loop to drop messages that shouldn't be
handleMessage (Sub s, ...)
{
Int count = AtomicInc (&received);
if count == 0: {
Sleepseconds (5); // or long DB call, etc
myconn.Unsub (s, 0); // or s.AutoUnsubscribe (0)
}
}
assert (expected / 10 > 0);
sub = myconn.subscribe ("subj"' handleMessage, expected / 10);
expected.times.do { myconn.Publish ( "topple"); }
wait_seconds (10);
assert (expected == received.get ());

On Nov 30, 2015, at 11:45 AM, Larry McQueary<EMAIL_ADDRESS>wrote:
Actually, re-reading Jeff's question, I'm not sure I'm interpreting
correctly:
"Umm, what if someone calls unsub in their message callback?",
I am not sure I understand the question. Are you asking whether max gets
reset when unsubscribing from within a callback?
On Mon, Nov 30, 2015 at 9:37 AM, Larry McQueary<EMAIL_ADDRESS>wrote:

There is a unit test for that in Go, Java, C and C#.
On Mon, Nov 30, 2015 at 9:34 AM, Derek Collison<EMAIL_ADDRESS>wrote:

I believe I test for that.
—
Reply to this email directly or view it on GitHub
https://github.com/nats-io/nats/pull/114#issuecomment-160681244.

--
Larry McQueary | Director, Messaging Technology
<EMAIL_ADDRESS>| @mcqueary | github.com/mcqueary

--
Larry McQueary | Director, Messaging Technology
<EMAIL_ADDRESS>| @mcqueary | github.com/mcqueary
—
Reply to this email directly or view it on GitHub.

This still relevant?

No longer relevant imo for the go client.


Distribution for ARM (Raspberry Pi)

Any chance of getting a distribution made available for the Raspberry Pi?

Original issue reported on code.google.com by<EMAIL_ADDRESS>on 30 Jun 2013 at 3:42

Duplicate of https://github.com/pagespeed/ngx_pagespeed/issues/1213


Fix: Importing an alternative robot into presampled BehaviorTask doesn't work

Original question on discord:
Hi - I'm looking to try a behavior task with Tiago. However, many of the task configurations specify the Fetch robot in the json.

What is the recommended workflow?

I'd like to be able to test an LLM agent against the Behavior 1K tasks but would start with a couple individual tasks.

Currently I've chosen `putting_dirty_dishes_in_sink` however it explicitly has Fetch in the json instead of Tiago (which I'm using for the fully orientable camera head).

Should I duplicate the task json and remove reference to Fetch?

I believe we have already fixed this, so I'm closing it.


Bug: BufferedActions hanging action

BufferedActions will queue, but not handle, actions that come in while it's in the process of sending. This results in the action dangling in the buffer indefinitely until some other action comes through. This is a regression from 0.19.0
To Reproduce
Buffer Bug.zip

Run the example project
Press the button on ViewController
Note that viewStore.send(.didLoad) is executed as expected in ViewControllerB
Note that .didLoad is not handled by either reducer
Dismiss ViewControllerB
Note that .didLoad and didDismiss are handled by reducer in succession.

Expected behavior
.didLoad should be processed by the reducer on the runloop it was sent (or at least in a timely manner)
Environment

swift-composable-architecture version >= 0.20.0 (not an issue in 0.19.0)
Xcode 12.5

This must be a consequence of https://github.com/pointfreeco/swift-composable-architecture/pull/619 where we combined the notions of "synchronous actions" and "buffered actions". We thought it was logically equivalent, but perhaps not :/
Would you be able to get us a failing test so that we can look into a fix?

Sure, added in #662

Fixed in #662, thanks!


better readability

thanks!

Cool! When will the readme be updated?

This project's readme.md is generated by verb, please don't edit the readme directly. Any changes to the readme must be made in the .verb.md readme template.


Create AudioDynamicTrigger

Description : Dynamic Stacking of triggers :
https://github.com/OrsonTyphanel93/adversarial-robustness-toolbox/blob/main/adversarial_robustness_toolbox_%2C_ART_dynamic_backdoor_attacks_trigger_stacking_(_Audio).ipynb
"DynamicTrigger", exploits a "trigger stacking" technique combining numerous triggers to make detection more difficult. The model can learn to correlate the combined trigger with the desired output by stacking triggers. This means that even if the input has only one trigger, the model can anticipate the expected result. As a result, the model has the ability to generate identical samples with similar class titles, or to assign the label designated by the attacker for each sample, depending on its objectives.
This code is designed to use the DynamicTrigger class to create a dynamic backdoor attack by generating a trigger and inserting it into an audio signal. If the generate_dynamic_trigger function correctly returns an instance of the DynamicTrigger class, then the attack works
Test Configuration:

OS
Python version
ART version or commit number
TensorFlow / Keras / PyTorch / MXNet version

Hi @OrsonTyphanel93 Thank you very much for your pull request! Could you please change the target branch to one of the dev branches?

I'll change the target branch to dev_1.18.0 which might induce merge conflicts.


Adding The Badge Component Page

Adding the badges page in the documentation for viewing the results.

@PH7-Jack Documentation successfully updated!


Added SuperSCS interface + changes to SizeMetrics

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

Oh yeah that's clearly better.
Unrelated, but I also changed the SizeMetrics object to be a collections.namedtuple instead of a full-fledged object - this should make it more compact in memory and also a little easier to maintain, while essentially preserving all the original syntax.

Looks good. Merged now.


useless diagnostics errors upon completions

I don't how this relates to this plugin but if I try to fmt.Pr| and select Print from completion menu somehow this plugin causes cursor to be moved to (|) and virtualbox show a useless error like so

without this plugin

It's weird bc I don't even select a snippet from completion menu
use {
	"L3MON4D3/LuaSnip",
	requires = {
		{
		        "rafamadriz/friendly-snippets",
		}
	},
	config = function()
		require"luasnip/loaders/from_vscode".lazy_load()
	end
}

Does the Error diagnostic disappear after eg. reloading the buffer? I think it's possible that, without Luasnip, fmt.Print is just a completion and then directly updates the diagnostics, whereas with Luasnip, fmt.Print is a snippet and the diagnostics aren't directly updated after completion.
Some language servers can update(send changes and then receive new diagnostics) on insert, maybe check if that can be set, that way the diagnostics should update after expanding the snippet.

@L3MON4D3 yeah diagnostic disappear after exiting insert which is too late imo

Some language servers can update(send changes and then receive new diagnostics) on insert, maybe check if that can be set, that way the diagnostics should update after expanding the snippet.
where I can find that option I couldn't find anything on gopls documentations

Perhaps the option doesn't exist for gopls.
You could disable lsp-snippets altogether by modifying the capabilities sent to the language server to disable snippets.
local capabilities = vim.lsp.protocol.make_client_capabilities()
capabilities.textDocument.completion.completionItem.snippetSupport = false;

require'lspconfig'.gopls.setup{
	capabilities = capabilities
}

@L3MON4D3 disabling lsp snippet solved the problem thanks!

:point_left: :point_left:


Add goal animation fields

Add 6 fields to the campaign template that will represent different progress points throughout the life of a campaign. There will be 5 animations for each progress point, and a 6th for a final animation if the goal is met or surpassed.

Fields can be named "Animation 1, Animation 2, Animation 3, Animation 4, Animation 5, Animation 6"
They should be able to accept gif, and .mov file types.

@sbsmith86 Couldn't this be a single multi-value file field? e.g. field_goal_animations ?

@aaronschachter sure. I wasn't sure how to best word that, but if that makes more sense on the backend, let's do that.

@sbsmith86 There is, you can make it a fixed field size of 6. I'm happy to walk through it with you if you'd like.
Quick question though, are these files unique to each campaign? Or are they to be used for every campaign? If it's the latter, we'd want to store these as system variables vs on the campaign template...

Hmm @mikefantini thoughts on that question ^^ will animations be campaign specific or global?

they'll be global. but again, we'll most likely have at least one variation for the test, but this will still be for all campaigns we test, not campaign specific.

@sbsmith86 We'll want to store each file as a system variable then, instead of fields on the Campaign node then.  The Campaign config page seems like a good spot to put them: http://dev.dosomething.org:8888/admin/config/dosomething/dosomething_campaign.
@mikefantini The variation can be done via Optimizely. We could upload the alternative files via admin/content/file, and swap out the file paths in Optimizely (instead of creating a whole set of new variables for the variation)

sounds great thanks @aaronschachter. Seems to make it easier for everyone this way.

also @sbsmith86 is this issue for you or @angaither?

@mikefantini I will take it.

sweet thanks @sbsmith86


Cannot reproduce performance on the nbody experiment

Hi Rob,
I am trying to reproduce the experimental results of the N-body system experiment. However, following the provided scripts for data creation and modeling training (charged), I only obtained a $0.0856$ MSE for the SEGNN model and a $0.11576$ MSE for the SEConv model, which are much higher than those reported in the paper [https://arxiv.org/pdf/2110.02905.pdf], $0.0043$ and $0.0116$ respectively. Could you please give me some advice on such phenomena?

The commands I used:
python3 -u generate_dataset.py --simulation=charged --num-train 10000 --seed 43 --suffix small
python3 main.py --dataset=nbody --epochs=1000 --max_samples=3000 --model=segnn --lmax_h=1 --lmax_attr=1 --layers=4 --hidden_features=64 --subspace_type=weightbalanced --norm=none --batch_size=100 --gpu=1 --weight_decay=1e-12
python3 main.py --dataset=nbody --epochs=1000 --max_samples=3000 --model=seconv --lmax_h=1 --lmax_attr=1 --layers=4 --hidden_features=80 --subspace_type=weightbalanced --conv_type=linear --norm=instance --batch_size=100 --gpu=1 --weight_decay=1e-12
FYI: There is a small bug about incompatible devices of variables in the training code
Here is a training snapshot of the  SEConv model. It seems that it is easy for both SEGNN and SEConv to overfit the training data within dozens of epochs.

Hi,
Thanks for trying out the repo and reporting this error. I believe I know what caused this problem—there was a change, caused by me, that changes the way e3nn normalises its tensorproduct. This happened while we were merging multiple codebases in the repo you see here today. I fear that something may have gone wrong during this merger and that I was not careful enough to spot it.
I will spend some time in the coming week trying to fix the code and will let you know once I'm confident that the N-body experiment can be reproduced.

Thanks for your response! Looking forward to the fixed experimental results.

Hi!
I have looked at the problem and I have identified at least one mistake that had nothing to do with normalisation. I had forgotten a skip connection, so the network predicted the position instead of the difference vector between old and new position.
This already brings performance much closer to what it should be on the first hundred epochs, specifically ~0.006. I am currently running a full experiment—10,000 epochs—and will let you know how that goes. Also, I will be comparing the normalisation between the older and newer version of e3nn, to make sure that there's no change in performance due to this. I will update in this thread if I find anything.
The problem of variables being on different devices has also been solved, so the script should run fine on the gpu now.

Hi,
I have re-run the N-body experiment with the updated code, obtaining a $0.00728$ MAE, which is reasonable for me. The slight performance difference may be caused by the fact I re-created your data by myself locally. Thanks for your response again.


Twitter localhost callback URL information

Twitter's guide for creating callback URLs (https://developer.twitter.com/en/docs/basics/apps/guides/callback-urls) requests that callback URLs for applications running on localhost be set up with their callback URL as <IP_ADDRESS> however Microsoft.AspNetCore.Authentication.Twitter will always send the callback URL as "localhost".
Using "localhost" in a callback URL works but the documentation can lead to confusion since many of us forget that even though "localhost" and "<IP_ADDRESS>" refer to the same thing, they are not the same characters. Can this be mentioned in this documentation?
Thank you!

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

ID: cb577d84-a06b-4d3e-a1c4-92c8a97a85aa
Version Independent ID: 528fcbb8-5b0f-8340-743f-df612319a229
Content: Twitter external sign-in setup with ASP.NET Core
Content Source: aspnetcore/security/authentication/social/twitter-logins.md
Product: aspnet-core
Technology: aspnetcore-security
GitHub Login: @Rick-Anderson
Microsoft Alias: riande

Turns out I was only partially correct. Microsoft.AspNetCore.Authentication.Twitter will send Twitter whatever URL is being used to access my locally running site as the host for the callback URL.
So if I navigate to "https://<IP_ADDRESS>:44311/" then Microsoft.AspNetCore.Authentication.Twitter will send "https://<IP_ADDRESS>:44311/signin-twitter" as the callback URL.
But if I navigate to "https://localhost:44311/" then Microsoft.AspNetCore.Authentication.Twitter will send "https://localhost:44311/signin-twitter" as the callback URL.
Twitter sees these 2 different URLs as different URLs and will return 403 if it doesn't exactly match the Callback URL that you set up in the Twitter developer portal.


feat(costModels): add the create-cost-model wizard

closes #882

Codecov Report

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

@@           Coverage Diff           @@
##           master     #944   +/-   ##
=======================================
  Coverage   75.03%   75.03%
=======================================
  Files         182      182
  Lines        3473     3473
  Branches      653      653
=======================================
  Hits         2606     2606
  Misses        779      779
  Partials       88       88

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 a72d928...032ba67. Read the comment docs.

I built the source using BRANCH=prod-beta, but see a black screen when navigating to https://ci.foo.redhat.com:1337/hybrid/cost-management/cost-models.
However, I retested #926 and that build still works.
I'll review again when #926 is merged, so it's easier to see the latest code changes here.

Removed the FilterIcon as suggested.

Please let me know when you rebase with the latest changes and I'll review again?

Hi @dlabrecq I fixed the problems you mentioned. Please let me know if I missed something or I didn't fix it correctly.
Thanks.

Discovered a couple missing localizations.
src/pages/createCostModelWizard/generalInformation.tsx

src/pages/createCostModelWizard/index.tsx

FYI, I created an issue for the required asterisk. Please correct me if I'm wrong, but that looks like a PatternFly issue?
https://github.com/patternfly/patternfly-react/issues/2746

@dlabrecq -

I will fix the missing localizations.

I thought the "optional" text in the title was good enough because it's not mandatory (unless you select a metric and then the "Next" button is disabled until you add a rate). If you don't set price list it is an empty list.

Regarding the red asterisk I fixed it and I can see it on Firefox. What browser are you using?

Thanks.

The "optional" text is very helpful. I simply meant that a default rate of 0 would be helpful as well. It would help clarify what type of value the user needs to enter in that input.

@dlabrecq hoo I see. No problem.

@dlabrecq updated PR to have a default value in rate.

Thanks a lot @dlabrecq !


Moderator Fees

Moderators are very important for a decentralised marketplace like openbazaar. In order to keep the moderator market healthy, we should update the fee model to make it more interesting to become a moderator.
This is a good example:

Screenshot from https://www.bitrated.com

Right now you can do a fixed fee per dispute, a percentage of each dispute, or a fixed fee plus a percentage.
There isn't an option to require fees on non-disputed orders though. It's actually not that difficult to do except I'm not sure that bitcoin can handle outputs that small. Presumably the moderator fee would only be like a few pennies per tx if all orders are expected to pay a fee (disputed or not) but sending a few pennies to a bitcoin output would basically leave that output undependable give the fees today.

I don't see any benefit to having the moderator charge for a non-disputed fee. If a transaction is not disputed, it's invisible to the moderator. It requires no effort or resources from them, they don't even know it happened.

I understand why moderators might want to charge for the service no matter what and that letting them decide for themselves is not an unreasonable request, but I'm with @jjeffryes in that I don't know what users would be paying for unless it's like assistance that doesn't get compensated.
There could be a scenario where they're helping a buyer or merchant through something, they figure it out and then just cut the mod out of any kind of fee.

We don't have any plans to implement a feature like this, so I'm closing this issue.


chore(sequencing): remove ConsensusMessage and Proposal from proto

This change is

[!WARNING]
This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

#2559  👈 (View in Graphite)
#2533
#2532
#2528
#2526
#2525
#2524
#2518
#2517
#2512
#2510
main

This stack of pull requests is managed by Graphite. Learn more about stacking.


Bug: Missing Instagram, Youtube links causing error

What happened?
A lot of users may not have all the social media details asked. So they are leaving their username as "YOUR_YOUTUBE_ACCOUNT_LINK".
The bug can be solved by creating an option to have social links as optional.
Add screenshots

What browsers are you seeing the problem on?
No response
Record

[X] I agree to follow this project's Code of Conduct
[X] I'm a GSSoC'23 contributor
[X] I want to work on this issue

yeah we need to fix assigned to you

Done


Mary Skelter: Nightmares [PCSG00898]

App summary

App name: Mary Skelter: Nightmares (監獄塔メアリスケルター)
App serial: PCSG00898
App version: 1.00

Vita3K summary

Version: v0.1.5
Build number: 2774
Commit hash: https://github.com/vita3k/vita3k/commit/ccca711
CPU backend: Dynarmic

Test environment summary

Tested by: Unlighted
OS: Windows 10 Pro 64-bit (10.0, Build 19044)
CPU: Intel(R) Core(TM) i5-7400 CPU @ 3.00GHz (4 CPUs), ~3.0GHz
GPU: NVIDIA GeForce GTX 1050 Ti
RAM: 16 GB

Issues
90% of the time freezes permanently after choosing difficulty. Works fine if you get past it. Slows down both visual and sound from time to time
Screenshots

Log
vita3k.log (when crashing)
Recommended labels

Playable or menu (lol?)
Softlock bug ?

I can't make it work for me anymore, after many many trials. So I guess it's Menu...


Added CART Page [frontend + backend]

Description
Closes #196
A clear and concise description of what the PR does.

This PR does the following:

Adds ...
Fixes #196
Updates ...

Related Issues
Link any related issues using the format Fixes #issue_number.
This helps to automatically close related issues when the PR is merged.

Placeholder: "Fixes #123"

Changes
List the detailed changes made in this PR.

Added a new feature to ...
Refactored the ...
Fixed a bug in ...

Testing Instructions
Detailed instructions on how to test the changes. Include any setup needed and specific test cases.

Pull this branch.
Run npm install to install dependencies.
Run npm test to execute the test suite.
Verify that ...

Screenshots (if applicable)
Add any screenshots that help explain or visualize the changes.
Additional Context
Any additional context or information that reviewers should be aware of.

This PR is based on the following...

Checklist
Make sure to check off all the items before submitting. Mark with [x] if done.

[x] I have performed a self-review of my code
[x] I have commented my code, particularly in hard-to-understand areas
[x] My changes generate no new warnings
[x] I am working on this issue under GSSOC

@Trisha-tech Please merge this

@Trisha-tech Please merge this.

@Trisha-tech Please merge this when you are free.


Clicking sort button with item in hand causes server to kick the player.

Whenever I click the sort button with an item "selected" (following the mouse), the game freezes and the server kicks me off with kicked for exceeding packet rate limit. (paper server, no plugins or mods).

Ill look into this, thank you!

This has been fixed and will be included in the upcoming release, thank you!


Need HTTPS Source & Checksums for Binaries

The current source at http://download.gridcoin.us/download/downloadstake/GridcoinResearch.msi is HTTP-only and some users have expressed a desire for a HTTPS-based source and/or a checksum for the current binaries. I realize HTTPS doesn't add much from a technical perspective, but image-wise it would be good, and the checksums are actually a good idea to assure downloaders that the binaries haven't been tampered with.

I believe @gridcoin was checking why the HTTPS was not working on the subdomain.
This was mentioned here as well :+1:
#194 https://github.com/gridcoin/Gridcoin-Research/issues/194#issuecomment-306079749

There is a request elsewhere to code sign the gridcoin exe and the installation package. That would solve a large part of this problem.

Alternatives (from easiest)

provide sha256 checksum for downloads
GPG sign the binaries and installer,
GPG sign latest commit and annotated tag (using git native gpg support)
HTTPS for download web-server
"gitian" for reproducible builds

Step 1 provides only marginal security, but is very easy to setup. Step 4 HTTPS does not provide any additional security in my view, Rob has problems setting it up, but it is praised by some.
Step 5 requires more to setup, but @TheCharlatan is interested.
I have some pgp (GPG) know-how and am willing to share it.

If anyone wants to join the effort, I am trying to port bitcoin's entire build system, which includes gitian, autoconf and some capabilities to quickly adapt to new tests and code. I push my changes to the gitian branch on my fork.

@TheCharlatan What's the status of this? Does it build right now?

It is probably a week's worth of work away from building.

Sweet.  I downloaded the gitian builder and tested it and I see its virtiual machine builds an installer for Windows and OSX.  I see the value in it, but its also a very slow build process so we still need the build scripts for windows in order to quickly debug.

@gridcoin Is it slow for subsequent builds as well or is it a one-time thing when building the dependencies?

Gitian is meant for the release build only. If done correctly you download and compile all the dependencies yourself and then sign and upload your build. This is done in a deterministic way for every plattform and offers a tamper proof software distribution model. Its first setup takes some time, to setup the vm and the configs, but once that is done, you can just run the build script. It takes some time to execute, but it does not need any monitoring.
You can and should use autoconf/qmake/visual studio etc. for non official builds, debugging, or if you anyway build the source yourself.

@denravonska Its extremely slow for subsequent builds as well (were talking about 4 hours for a build on a modern 8 core machine).  Its because of what Charlatan said, each time the build starts, its tamper proof so it pulls the dependencies, upgrades the virtual machine, and rebuilds the code with -clean, so that ensure everyone who is testing the code is also testing with the same lib versions.  Its valuable for releases, but not for debugging.  It builds in a trusty VM against a different processor architecture.  The main thing I like about it is the signed installer, allowing the end user to reinstall windows EXE overtop the old version for an alternative way to upgrade the software.
We would need to maintain an automake environment to building and debug natively.

Having gitian working somewhere will be great, but signing the released binaries (all) by admin's pgp key is good enough.
For gitian builds, after it is setup and took it's four hours, multikey signature should be created.
For build scripts:
Please consider that there is already qmake set up for makefile generation. I advise against autotools (automake), as it is quite old, does lot's of unneeded detection, uses m4 macro processor and has really hard to read input file. When I see autotools buld, I always edit the generated makeifle directly as it is easier for me to understand. I recommend using some modern, like CMake, Scons or even keeping the qmake and extending it for nogui.

Can we get an update on this please?

Yeah, not sure why this issue was closed... we don't have digital signing yet.

msi's are release with a sha256 and u can download via https

@barton2526 mentioned providing that detail file with the msi download section

@barton2526 what is the status on this? the GridcoinResearch.msi.sha25 is available for download. could u provide some kind of small link or something to that area so a user can pull that to verify the msi so we can move to close this. HTTPS is available now so would like to push to close this old issue

I'll put this in my web PR today.  Will link when it's done.

https://github.com/gridcoin-community/Gridcoin-Site/pull/112
This issue can be closed now I think.

yes this can be closed. thank you @barton2526

@denravonska Can you close this


False positive from axe/text-alternatives for SVGs with title element content

Environment (please complete the following information):

OS (e.g., Windows 10): Windows 11
Extension version (e.g., 1.2.3): 1.4.2

Describe the bug:
When defining an SVG in JSX, Microsoft Edge Tools throws an error " elements with an img role must have an alternative text: Element child title is empty Element has no title attribute" if the text for the title attribute is passed in as a required prop. While the title prop passed in could, technically, be an empty string (thus making this a valid error), the extension should assume that you are passing in something valid rather than assuming you are throwing garbage in.
Repro steps:

Make a React FC with an SVG element in it, with the role="img property on it.
Make the FC take a prop of title, a required string.
In your SVG, have <title>{props.title}</title>.
See VS Code error message.

Expected behavior:
At maximum, I'd expect a warning in this situation - since it technically could be an empty string. However, I think this should just not raise an error if the title attribute contains a defined variable within it. It's barely an error scenario and certainly not guaranteed as one.
Additional context:
Screenshot of Title Element & svg getting a squiggly red marker:

Screenshot of Error with line number:

Deque SVG IMG Docs

Thanks for your feedback. It seems to me this is out of scope for the extension and a problem with the issues/webhint/axe reporting all up, so we will file a bug for you with this team.

Filed here: https://github.com/webhintio/hint/issues/5030
So closing this issue now. Thanks for the report @tobybaratta.


How to work with NuxtIcon

  vuetify: {
    vuetifyOptions: {
      icons: {
        defaultSet: 'nuxt-icon',
      }
    },
  },

I try this nuxt.config.ts, but it seems not to work.
The guide  said can use NuxtIcon SVG icons libraries, but I have no idea how to do that.

Maybe see issue #93

https://github.com/userquin/vuetify-nuxt-icon-integration with SVG and CSS support (not at same time)

New entry added to docs: https://vuetify-nuxt-module.netlify.app/guide/icons/integrations.html
If missing page await PWA update the new version

Thank you! It help me a lot


Local stream state

Using local stream reader state it is possible to reduce number of reads and make branch prediction more successful.
Base performance:
 Performance counter stats for 'taskset -c 10 nice -n -20 target/release/lepton_jpeg_util images/img_52MP_7k.lep images/img_52MP_7k.jpg':

       444 051 506      cache-references                                                        (41,55%)
        41 665 486      cache-misses                     #    9,38% of all cache refs           (41,56%)
     8 113 956 517      cycles                                                                  (41,60%)
       440 862 436      ic_fetch_stall.ic_stall_back_pressure                                        (41,68%)
       457 817 718      stalled-cycles-frontend          #    5,64% frontend cycles idle        (41,90%)
    18 577 966 449      instructions                     #    2,29  insn per cycle
                                                  #    0,02  stalled cycles per insn     (41,91%)
     1 848 764 378      branch-instructions                                                     (41,88%)
        66 021 856      branch-misses                    #    3,57% of all branches             (41,83%)
     3 584 631 601      ic_fetch_stall.ic_stall_any                                             (41,74%)
        20 880 168      ic_fetch_stall.ic_stall_dq_empty                                        (41,66%)
        34 198 382      l2_cache_misses_from_ic_miss                                            (41,63%)
       875 464 756      l2_latency.l2_cycles_waiting_on_fills                                        (41,58%)
            99 041      faults
                 1      migrations

       1,789772123 seconds time elapsed

       1,595364000 seconds user
       0,194044000 seconds sys

MR performance:
 Performance counter stats for 'taskset -c 10 nice -n -20 target/release/lepton_jpeg_util images/img_52MP_7k.lep images/img_52MP_7k.jpg':

       442 976 049      cache-references                                                        (41,92%)
        32 149 359      cache-misses                     #    7,26% of all cache refs           (41,79%)
     7 816 351 937      cycles                                                                  (41,71%)
       347 399 557      ic_fetch_stall.ic_stall_back_pressure                                        (41,65%)
       446 775 084      stalled-cycles-frontend          #    5,72% frontend cycles idle        (41,60%)
    18 219 535 389      instructions                     #    2,33  insn per cycle
                                                  #    0,02  stalled cycles per insn     (41,57%)
     1 901 228 430      branch-instructions                                                     (41,63%)
        67 440 269      branch-misses                    #    3,55% of all branches             (41,55%)
     3 245 622 864      ic_fetch_stall.ic_stall_any                                             (41,68%)
        20 712 859      ic_fetch_stall.ic_stall_dq_empty                                        (41,90%)
        25 226 527      l2_cache_misses_from_ic_miss                                            (41,91%)
       876 045 483      l2_latency.l2_cycles_waiting_on_fills                                        (41,91%)
            99 039      faults
                 1      migrations

       1,726217313 seconds time elapsed

       1,531874000 seconds user
       0,193984000 seconds sys

I'll introduce the same scheme into writer, let's see if it helps there.

With inlining it is even faster:
 Performance counter stats for 'taskset -c 10 nice -n -20 target/release/lepton_jpeg_util images/img_52MP_7k.lep images/img_52MP_7k.jpg':

       460 519 848      cache-references                                                        (41,58%)
        32 673 291      cache-misses                     #    7,09% of all cache refs           (41,57%)
     7 616 518 496      cycles                                                                  (41,61%)
       416 529 485      ic_fetch_stall.ic_stall_back_pressure                                        (41,65%)
       465 646 089      stalled-cycles-frontend          #    6,11% frontend cycles idle        (41,72%)
    17 783 817 601      instructions                     #    2,33  insn per cycle
                                                  #    0,03  stalled cycles per insn     (41,75%)
     1 641 432 871      branch-instructions                                                     (41,81%)
        66 669 812      branch-misses                    #    4,06% of all branches             (41,91%)
     3 130 681 513      ic_fetch_stall.ic_stall_any                                             (41,85%)
        18 740 701      ic_fetch_stall.ic_stall_dq_empty                                        (41,74%)
        24 072 665      l2_cache_misses_from_ic_miss                                            (41,65%)
       937 944 473      l2_latency.l2_cycles_waiting_on_fills                                        (41,56%)
            99 040      faults
                 1      migrations

       1,684940568 seconds time elapsed

       1,487663000 seconds user
       0,196955000 seconds sys

Results for encoding.
Base:
 Performance counter stats for 'taskset -c 10 nice -n -20 target/release/lepton_jpeg_util images/img_52MP_7k.jpg images/img_52MP_7k2.lep':

       841 203 573      cache-references                                                        (41,95%)
        92 493 657      cache-misses                     #   11,00% of all cache refs           (42,07%)
    17 647 399 635      cycles                                                                  (41,94%)
       788 045 094      ic_fetch_stall.ic_stall_back_pressure                                        (41,80%)
     1 065 114 135      stalled-cycles-frontend          #    6,04% frontend cycles idle        (41,79%)
    43 791 165 868      instructions                     #    2,48  insn per cycle
                                                  #    0,02  stalled cycles per insn     (41,74%)
     4 893 011 954      branch-instructions                                                     (41,70%)
       164 179 387      branch-misses                    #    3,36% of all branches             (41,66%)
     6 730 270 402      ic_fetch_stall.ic_stall_any                                             (41,62%)
        42 649 850      ic_fetch_stall.ic_stall_dq_empty                                        (41,73%)
        76 514 469      l2_cache_misses_from_ic_miss                                            (41,80%)
     1 878 302 906      l2_latency.l2_cycles_waiting_on_fills                                        (41,85%)
           182 917      faults
                 1      migrations

       3,929784849 seconds time elapsed

       3,602288000 seconds user
       0,325935000 seconds sys

Now:
 Performance counter stats for 'taskset -c 10 nice -n -20 target/release/lepton_jpeg_util images/img_52MP_7k.jpg images/img_52MP_7k1.lep':

       854 138 732      cache-references                                                        (41,84%)
        84 858 736      cache-misses                     #    9,94% of all cache refs           (41,72%)
    16 311 102 949      cycles                                                                  (41,48%)
       730 305 471      ic_fetch_stall.ic_stall_back_pressure                                        (41,50%)
     1 052 505 605      stalled-cycles-frontend          #    6,45% frontend cycles idle        (41,81%)
    40 933 550 832      instructions                     #    2,51  insn per cycle
                                                  #    0,03  stalled cycles per insn     (41,86%)
     4 452 381 966      branch-instructions                                                     (41,89%)
       166 099 799      branch-misses                    #    3,73% of all branches             (42,06%)
     5 633 254 959      ic_fetch_stall.ic_stall_any                                             (42,04%)
        39 811 150      ic_fetch_stall.ic_stall_dq_empty                                        (42,12%)
        71 293 887      l2_cache_misses_from_ic_miss                                            (41,98%)
     1 978 503 677      l2_latency.l2_cycles_waiting_on_fills                                        (41,88%)
           183 257      faults
                 1      migrations

       3,624653793 seconds time elapsed

       3,302782000 seconds user
       0,318786000 seconds sys

In principle, local stream state can be shifted even higher on the function invocation hierarchy into model.rs, but it will be less clear and I'm not sure if it gives more performance.


Easy to trip uniqeness error

Run the mountainbike example from the github frontpage twice and this happens:
---------------------------------------------------------------------------
UniquenessError                           Traceback (most recent call last)
<ipython-input-11-d40abe4b45be> in <module>()
----> 1 mountainbike = Bike(name="arg")
      2
      3 mountainbike.wheels.get()

/home/stu/projects/external/redis-limpyd/limpyd/model.py in __init__(self, *args, **kwargs)
    191                 if field.unique and self.exists(**{field_name: value}):
    192                     raise UniquenessError(u"Field `%s` must be unique. "
--> 193                                            "Value `%s` yet indexed." % (field.name, value))
    194                 self._init_fields.add(field_name)
    195

UniquenessError: Field `name` must be unique. Value `arg` yet indexed.

Oooh - this is meant to happen, silly me :)

OK, maybe it isn't meant to happen, I'm definitely confused.

Hello
The name field for the Bike object is marked as unique=True, to you cannot create two objects with the same name, so, yes, it is meant to happen.
Why did you thought the opposite?

Unfamiliarity with the database, orm and tiredness :)

Ah, I remember:  I didn't think that Bike(....) would actually save to redis - I assumed an actual .save() command would need to be issued, like some other ORMs.

Limpyd is different, it works at the field level. The model is just here to group fields together, and manage the base of the redis keys.
To confirm that this kind of call does create the "instance", here is the docstring of the RedisModel.__init__:
    def __init__(self, *args, **kwargs):
        """
        Init or retrieve an object storage in Redis.

        Here whats init manages:
        - no args, no kwargs: just instanciate in a python way, no connection to
          redis
        - some kwargs == instanciate, connect, and set the properties received
        - one arg == get from pk
        """

(wow, pretty bad english in there....)

This makes sense, I guess due to the nature of Redis.   Is there a way to batch changes together ?

yep, limpyd has you covered :)
http://redis-limpyd.readthedocs.io/en/latest/contrib.html#pipelines
But don't forget this (from the doc):

It does not mean that you cannot set many fields in one time in a pipeline, but you must have values not depending of other fields, and, also very important, you cannot update indexable fields ! (so no related fields either, because they are all indexable)

Note that as for the pipeline method, you cannot update indexables fields in the transaction because read commands are used to update them.

Cool, cheers :)


Cleanup & Prevent warning on Grails startup

This change contains some cleanup.
The most relevant one is the removal of BootStrap.groovy which currently causes a warning on application startup when this plugin is used.
It also contains the i18n removal as in #75.

@ctoestreich Can you have a look at this?


Add Support for Ordering Equivalence

Which issue does this PR close?

Closes #6159.
Rationale for this change

Datafusion can detect aliased columns (exactly same columns). This enables us to do additional optimizations during planning. However, same thing cannot be done in terms of ordering.
Consider query below
(SELECT c9,
     ROW_NUMBER() OVER(ORDER BY c9 ASC) as rn1
     FROM aggregate_test_100
     ORDER BY c9 ASC)

Output of this query would satisfy c9 ASC. However, it will also satisfy rn1 ASC. However, currently we cannot detect this.
Consider query below
SELECT c9, rn1 FROM (SELECT c9,
       ROW_NUMBER() OVER(ORDER BY c9 ASC) as rn1
       FROM aggregate_test_100
       ORDER BY c9 ASC)
   ORDER BY rn1

It produces the following plan
"SortExec: expr=[rn1@1 ASC NULLS LAST]",
"  ProjectionExec: expr=[c9@0 as c9, ROW_NUMBER() ORDER BY [aggregate_test_100.c9 ASC NULLS LAST] RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW@1 as rn1]",
"    BoundedWindowAggExec: wdw=[ROW_NUMBER(): Ok(Field { name: \"ROW_NUMBER()\", data_type: UInt64, nullable: false, dict_id: 0, dict_is_ordered: false, metadata: {} }), frame: WindowFrame { units: Range, start_bound: Preceding(UInt32(NULL)), end_bound: CurrentRow }], mode=[Sorted]",
"      SortExec: expr=[c9@0 ASC NULLS LAST]",
"        CsvExec: files={1 group: [[SOURCE_PATH]]}, has_header=true, limit=None, projection=[c9]",

We could have produced the following plan, if we were to detect that c9 ASC and rn1 ASC defines same ordering.
"ProjectionExec: expr=[c9@0 as c9, ROW_NUMBER() ORDER BY [aggregate_test_100.c9 ASC NULLS LAST] RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW@1 as rn1]",
"  BoundedWindowAggExec: wdw=[ROW_NUMBER(): Ok(Field { name: \"ROW_NUMBER()\", data_type: UInt64, nullable: false, dict_id: 0, dict_is_ordered: false, metadata: {} }), frame: WindowFrame { units: Range, start_bound: Preceding(UInt32(NULL)), end_bound: CurrentRow }], mode=[Sorted]",
"    SortExec: expr=[c9@0 ASC NULLS LAST]",
"      CsvExec: files={1 group: [[SOURCE_PATH]]}, has_header=true, limit=None, projection=[c9]",

What changes are included in this PR?

This PR adds a new method  called ordering_equivalence_properties to the ExecutionPlan trait. This method is similar to the equivalence_properties. equivalence_properties returns columns that are aliases. ordering_equivalence_properties returns columns that defines global ordering for the schema (They are equal in the ordering sense). This enables us to optimize away unnecessary SortExecs in the final plan.
Are these changes tested?
Yes, two new tests are added to the window.slt file.

Are there any user-facing changes?

Is it related to functional dependency?

Thank you for this PR @mustafasrepo  -- I skimmed this PR
and one question I have is why add a new ordering_equivalence_properties when DataFusion already has equivalence_properties which seems to be a more general concept?
It is confusing to me because the existence of ordering_equivalence_properties  imples that equivalence_properties doesn't apply when ordering.
If the existing equivalence_properties doesn't support ordering aliasing, did you consider making it more general?

Thank you for this PR @mustafasrepo -- I skimmed this PR
and one question I have is why add a new ordering_equivalence_properties when DataFusion already has equivalence_properties which seems to be a more general concept?
It is confusing to me because the existence of ordering_equivalence_properties imples that equivalence_properties doesn't apply when ordering.
If the existing equivalence_properties doesn't support ordering aliasing, did you consider making it more general?

As far as I know equivalence_properties keeps track of the exactly same columns such as in the form below.

a
a_alias

1
1

2
2

3
3

5
5

However, ordering_equivalence_properties keeps track of columns that can describe global ordering of the schema, these columns are not necessarily same. Hence they cannot be described in current equivalence_properties without modification. Consider table,

a
b

1
9

2
8

3
7

5
5

both a ASC and b DESC can describe ordering of the current table.  If we were to run query
SELECT *
FROM table1
ORDER BY a

we do not have to add SortExec to final plan, since table is already ordered by a ASC. Similarly, if we were to run query
SELECT *
FROM table1
ORDER BY b DESC

we do not have to add SortExec to final plan, since table is already ordered by b DESC.
Ordering equivalence keeps track of these equalities and treats a ASC, and b DESC as same requirement. Currently, as far as I am aware, with existing APIs we cannot describe this functionality.

cc @mingmwang


Redeem badge token deep link

this isn't completely done and might need some refactoring but a large portion of the code is there
It isn't compiling I'm getting an error regarding provideSphinxRepositoryAndroid in RepositoryModule_ProvideSphinxRepositoryAndroidFactory I'm not super familiar with kotlin so I'm struggling to find the source of the issue.
Also because of this compile error I haven't been able to test just yet

looks like it was able to build correctly just some caching issues on my side I haven't tested it yet but it is building

Still need to rename stuff and I'm unable to fully test this because I need to update my node with the new claim_on_liquid endpoint but it is trying to hit it and failing which is good
more commits soon to come but will be more naming/minor changes

closing this PR as we have another one open now
https://github.com/stakwork/sphinx-kotlin/pull/406


⚠ Bofrost.de has degraded performance

In b962569, Bofrost.de (https://www.bofrost.de) experienced degraded performance:

HTTP code: 200
Response time: 1198 ms

Resolved: Bofrost.de performance has improved in f40b43c after 35 minutes.


Labels disapearing CSS positioning

Hey,
i've got the problem, that my vertical-labels are disapearing after moving the svg with negative margin-left:
http://jsfiddle.net/syjzd4k6/
If you change the style on the svg from margin-left: -48px; to margin-left: -47px; it's working. It's on every Browser and i have no idea what's going on here.
Is this a SVG-issue or something that is on every browser?
Our aim is that the vertical labels are inside the chart:

How can i achieve this?
Thank You

You can use a combination of the axisY.offset option with axisY.labelOffset.x to achieve this.

Thank you. It worked!

Hey and sry but i have to reopen the issue.
I've tested it on IE 10 + IE 11 and saw that there it's not working.
I know that IE does not support foreignobjects and instead you are using 'text'-elements. Is it possible that you forgot to add the labeloffset for the text-elements-position?
When i add the same x-position which has the foreignobject in chrome to the text-element in IE it seems to be identical.
Thank You

Hey there! That's very possible that this is a bug in IE! We've refactored this code a lot and our IE testing is not the most sophisticated... I'll confirm asap and see if we can get this fixed soon.
In the meanwhile you can use the draw events to conditionally move labels for browsers that don't support foreignObject: http://jsbin.com/limuxe/edit?html,js,output

Thanks, meanwhile i'm using your script.

I found that setting offset: 0 and labelOffset for both the x and y axis at the same time causes the labels to stop rendering at all.
I think it has to do with the size ending up negative.
I can see that the span has style="width 21px; height: -10px" and the wrapper has <foreignobject ... height="-10">
If I edit the height of the foreignobject to be positive, the labels show again.
This is with Chrome 48.
My current config looks like this:
const chartConfig = {
  axisX: {
    type: Chartist.AutoScaleAxis,
    showGrid: false,
    offset: 0,
    labelOffset: {
      x: 0,
      y: -25,
    },
  },
  axisY: {
    showGrid: false,
    offset: 0,
    labelOffset: {
      x: 25,
      y: 0,
    },
  },
  height: 340,
  showPoint: false,
  showArea: true,
  chartPadding: {
    top: 0,
    right: 0,
    bottom: 0,
    left: 0
  },
};

Closing this, for now, if there's still a need for fixes, please open a discussion again.


fix: vpc and vpc nat gw not clean

[x] Make sure you have followed Kube-OVN Code Style.

What type of this PR

Bug fixes

已回合release-1.10 和 release-1.9 分支


CodeLens : Class extending Array and overwriting its methods gets referenced globally

class X extends Array{
    filter(){}
}

"javascript.referencesCodeLens.enabled": true,

1.43.2

Opened https://github.com/microsoft/TypeScript/issues/37878 with root cause


VariantCollection auto-unwrapping of Object-derived classes crashes

Describe the bug
When using a VariantCollection, accessing its contents via index crashes due to attempting to unwrap the variant automatically. I included the GArray in the example below just for comparison, because it works correctly.
The crash occurs here:
/// Accesses the element at the specified position.
    public subscript (index: Index) -> Element {
        get {
            let v = array [index]
            return Element(v)!
        }
        set {
            array [index] = Variant(newValue)
        }
    }

On the "return Element(v)!" line, producing these messages seen in LLDB:
Attempted to initialize a new Resource with <StyleBoxFlat#-9223372008752937711> but it is not possible to initialize a SwiftGodot.Object in a Swift initializer. Instead, use Resource.makeOrUnwrap(variant).
SwiftGodot/VariantCollection.swift:58: Fatal error: Unexpectedly found nil while unwrapping an Optional value
To Reproduce
Here is a trivial class to use to reproduce this:
@Godot
class TestContainers: Node3D, @unchecked Sendable
{
	override func _ready()
	{
		GD.print("GArray size: \(resAsGArray.count), VariantCollection size: \(resAsVar.count)")
		if resAsGArray.count > 0
		{
			GD.print(resAsGArray[0])
		}
		if resAsVar.count > 0
		{
			GD.print(resAsVar[0])
		}
	}

	@Export(.arrayType,"Resource") var resAsGArray: GArray = GArray()
	@Export(.arrayType,"Resource") var resAsVar: VariantCollection<Resource> = VariantCollection<Resource>()
}```

Add an instance of TestContainers to any scene, then in the editor assign any resource to each of its Arrays. In the Godot editor, this is done by:
1) Click "Add Element" on the arry
2) Click on the Pencil icon to the right of the new element and select "Object"
3) Drag any resource from your project into the slot

**Expected behavior**
The element is produced from the container as expected.

**Desktop (please complete the following information):**
 - OS: macOS 15.0.1
 - Swift 6
 - Godot 4.3

Looking at the current code in the repository. I this is already solved, here is the [PR 576](https://github.com/migueldeicaza/SwiftGodot/pull/576

Thank you, closing it.


Pod control as thermostat?

Hi, is it possible to change the Pod controls to a thermostat instead of a fan? Thanks!

Hey, definitely crossed my mind. The HomeKit thermostat has to be set by temperature (degrees). Unfortunately, I couldn't figure out what degrees the numbers (-10 - 10) on the eightsleep correlate to.

closing this unless someone figures this out.


Mobile staging

Coverage decreased (-0.8%) to 91.14% when pulling 9e59f766778fd76946c6c7a4649c1175a41ac00a on mobile-staging into fdabeae0b2d8c63890881ba49078afc529062ac6 on master.


CLI should have specific error codes for every error

Across spk we have inconsistent ways of handling exceptions. This epic proposes steps to normalize our approach to error handling and logging.

[x] Produce a guideline doc on that covers how we should handle exceptions in SPK #1099
[x] Have a look up file that contains error codes and their mean

[x] commands: init #1310
[x] error chain for setup command - https://github.com/microsoft/bedrock/issues/1294

[x] error chain for deployment create command https://github.com/microsoft/bedrock/issues/1283
[x] error chain for deployment dashboard command https://github.com/microsoft/bedrock/issues/1288
[x] error chain for deployment get command - https://github.com/microsoft/bedrock/issues/1316
[x] error chain for deployment onboard command - https://github.com/microsoft/bedrock/issues/1321
[x] error chain for deployment validate command https://github.com/microsoft/bedrock/issues/1291

[x] error chain for hld add variable group command - https://github.com/microsoft/bedrock/issues/1265
[x] error chain for hld init command - https://github.com/microsoft/bedrock/issues/1284
[x] error chain for hld reconcile command - https://github.com/microsoft/bedrock/issues/1293
[x] error chain for hld install-manifest-pipeline command - https://github.com/microsoft/bedrock/issues/1323

[x] error chain for infra scaffold and infra generate commands https://github.com/CatalystCode/spk/pull/446

[x] error chain for project install-pipeline command https://github.com/microsoft/bedrock/issues/1257
[x] error chain for project: create-variable-group, init commands #1307

[x] error chain for ring create, set-default, delete commands https://github.com/microsoft/bedrock/issues/1297

[x] error chain for service create-revision commands #1308
[x] error chain for service create commands #1339
[x] error chain for service install-build-pipeline commands #1340

[x] error chain for variable-group: create, command commands #1309

Related Issues

deployment get fails silently if storage access key is wrong #1124

all sub tasks are completed


feat: f '' sᶜ = range f \ f '' s when f is injective

From GrowthInGroups

@YaelDillies we have this as Set.range_diff_image. Found with Loogle.
Please close this unless I've grossly missed something.

Oh sorry, I forgot when PRing, but I wanted to replace the existing lemma because all the other distributivity of lattice operations over Set.image lemmas are stated the other way around

bors d+
(after fixing names)


Disable linter rule for a file

In addition to the disable next line, I wanted to propose that it may be a good option for users to be able to ignore a specific linter rule for an entire file.
Requested by @jongio

I have a file that has many lines that need to be ignored.  I can now put a disable on every one.  Would be nice to just do:

once per file
once per project - like part of bicep config

@jongio, in your mind, do you think you have different use cases for 1 and 2? Or do you believe that either solution would be sufficient to decrease the line bloat of disabling each line?
I am thinking that giving the user an auto fix to add "disable this warning for the file" at the top of the file, would be as visible and 'per file" as import statements are.

I have a repo with multiple files that have the same warning and I would like to globally disable for the whole project. I don't know how common that would be. If you can only do on file basis then that would work better than only file.
Order of preference:

Whole project
Whole file
Each line

Some users prefer disable/enable support for blocks of code too, like in markdownlint:
<!-- markdownlint-disable no-space-in-emphasis -->
deliberate space * in * emphasis
<!-- markdownlint-enable no-space-in-emphasis -->

Note: Add telemetry for which rules are getting disabled at top of file

@StephenWeatherford -> Good idea to add a re-enable line, we'll have to see how much work that is

@jongio and @glennmusa. How does this feature rank in order of preference with these four options? I'll list this out in no particular order

Disabling next line
Disabling whole project (turning it off in bicep config)
Disabling for a resource block e.g disable rule 1234 start  {resource code...} re-enable rule 1234
Disable for file

I'd love to hear your thoughts and any further reasons. Especially as folks that edit in Bicep files pretty often


Add COVID-19 routes instead of replacing existing routes

This will help avoid the issue that Mats ran into where he removed his old route name and the job router crashed because of old jobs associated with the old route.
We may actually be able to get rid of the Only supporting COVID-19 jobs section (or clarify it) since they can just copy the exact same configuration from above that's appropriate for their batch system.

Hm - just realized a potential pitfall of this setup is that the non-COVID route still matches the COVID pilots (unless you get the JOB_ROUTER_ROUTE_NAMES ordering correct).
Can you add a warning box to highlight the pitfall?

Merged high-level overview from #686


Use 3 numpy arrays for manifest internally

Supercedes #39 as a way to close #33, the difference being that this uses 3 separate numpy arrays to store the path strings, byte offsets, and byte range lengths (rather than trying to put them all in one numpy array with a structured dtype). Effectively implements (2) in #104.
Relies on numpy 2.0 (which is currently only available as a release candidate).

Here is a script which generated a 9GB JSON file across many years of NWM data: https://gist.github.com/rsignell-usgs/d386c85e02697c5b89d0211371e8b944 . I'll see if I can find a parquet version, but you should reckon on 10x in on-disk size (parquet or compressed numpy).
Unfortunately, the references have been deleted, because the whole dataset is now also available as zarr. I may have the chance sometime to regenerate them, if it's important.

Also, a super-simple arrow- or awkward-like string representation as contiguous numpy arrays could look something like
class String:
    def __init__(self, offsets, data) -> None:
        self.offsets = offsets
        self.data = data

    def __getitem__(self, item):
        if isinstance(item, int):
            return self.data[self.offsets[item]: self.offsets[item + 1]].decode()
        else:
            return String(self.offsets.__getitem__(item), self.data)

Here is a script which generated a 9GB JSON file across many years of NWM data: https://gist.github.com/rsignell-usgs/d386c85e02697c5b89d0211371e8b944 . I'll see if I can find a parquet version, but you should reckon on 10x in on-disk size (parquet or compressed numpy).

That's useful context for #104, thanks Martin!

I'm finding it very difficult to build an environment to fully test this, but I can at least make one where all the tests which don't involve IO pass. I think that means that once numpy 2.0 is released and all the various libraries support it officially, this PR should be fine.

looks like you're waiting on netcdf4 to support numpy>=2.0. If you (temporarily) remove netcdf4 from the environment and instead install h5netcdf and h5py (the latter from the scientific python nightly repo), you should be able to get CI to run properly.

Now builds atop #139

you can:
- pip
- pip:
  - -i https://pypi.anaconda.org/scientific-python-nightly-wheels/simple
  - --pre
  - h5py
  - numpy

(and if you need multiple packages from different sources, put the definition in requirements.txt files and include them in the environment file using -r <requirements.txt>)

Note that en efficient packing of a string array would be all the character data concatenated, and a separate offsets array. This is what arrow or awkward does. Parquet can also store this way, but alternating length-data is standard. Dense packings like that ssusme immutability https://github.com/martindurant/fastparquet/blob/faster/fastparquet/wrappers.py#L51 has the simplest possible version of this (yes, fastparquet is intending to move to pure numpy within months, if I didn't say this already).

@martindurant does numpy's new string dtype not do that too?

No, it allocates on the heap and stores pointers, I believe. That is not (necessarily) memory contiguous, but allows for mutability.

This PR now works (passes all tests locally). The failures are the same as on main, tracked in #147 .

Note that en efficient packing of a string array would be all the character data concatenated, and a separate offsets array. This is what arrow or awkward does.

What about using a pyarrow string array instead:

@rabernat @martindurant a pyarrow string array might be a bit more memory-efficient, but
a) I can store millions of chunk references using just a few MB with this new numpy dtype, which seems plenty good enough to me
In [1]: from virtualizarr.tests import create_manifestarray

In [2]: marr = create_manifestarray(shape=(100, 100, 100), chunks=(1, 1, 1))

In [3]: marr
Out[3]: ManifestArray<shape=(100, 100, 100), dtype=float32, chunks=(1, 1, 1)>

In [4]: marr.manifest._paths.nbytes / 1e6
Out[4]: 16.0

In [5]: (marr.manifest._paths.nbytes + marr.manifest._offsets.nbytes + marr.manifest._lengths.nbytes) / 1e6
Out[5]: 24.0

b) IIUC pyarrow string arrays are not N-dimensional arrays, and half the point of this PR is that my implementation of concat/stack/broadcasting for ManifestArrays becomes really simple if I can just delegate those operations to a wrapped set of numpy arrays.


Document count in .tokens method

It seems the "num_documents" property returned by .tokens displays the wrong the number of documents. It seems to be an over-estimate. E.g. when indexing a corpus of 160.000 documents, the most common token ("the") appears in 321942 documents according to the statistics which is obviously wrong.

The problem has been identified in the insert_or_update method of the PocketSearch class. insert_or_update should use the internal rowid identifier to update existing entries not a unique ID field provided by the user. When using a custom unique ID field, the token table does not get updated correctly.

Fixed in 0.30.0


Signaling in rooms crashes due to foreach function not returning as intended. Bodge provided

I am trying to do signaling in rooms. I looked to the "p2p-snake" example and the socket-io-p2p documentation for how to pass the P2P server the socket and the room, however both the my code and the p2p-snake example crash here  at line 25 of socket.io-p2p-server's index.js:

The socket.on('offers') call back's foreach is able to get a undefined peer client when it goes for it in the clients array - client=clients[client.id].
In my code the connectedClients only contains one client - the one that equals the socket in if (client !== socket) as my p2p server currently starts signaling as soon as the client connects. In the p2p-snake code, it crashes immediately as well once one client is connected.

The dependent modulesocket.io-p2p-server's bug is solved here: tomcartwrightuk/socket.io-p2p-server#8


Add default-backend chart for ingress controllers

This is needed for https://github.com/kubernetes/charts/pull/540

Closing in favor of #540


[Development] Parallelize Scout Operations in Cardinal

Work has started here: https://github.com/cardinal-dev/Cardinal/pull/117 :tada:

Work continues here: https://github.com/cardinal-dev/Cardinal/pull/125


Convenience rake tasks for starting/stopping filestore

Description
Rake tasks that start and stop the Python HTTP server that's used for serving out remotely-stored files.
Examples
bundle exec rake filestore:start
bundle exec rake filestore:stop

Writes any output to log/filestore_development.log. You can also start a separate server for test:
bundle exec rake filestore:start RAILS_ENV=test

However, you don't have to, and if you specify the same port in the REPOSITORY_FILESTORE_HOST of your application.yml, then you'll only need one server running. Results for both development and test processes will be written to the same log file.

Coverage remained the same at 58.509% when pulling 59b761c884f557b8e1ea103e4b5c5ef2837921d8 on filestore-rake-task into f8437cee458935348de420625e0ad71fd571cf6e on develop.


restrict on server only and use simple-schema from npm

It seems that the package adds code to meteor client. It should be server-only.
also it should depend on simpleSchema if possible (maybe take newer version from npm instead of atmosphere-version)

Yeah, in my current project I am actually using the "old" atmosphere versions of aldeed and I am a bit scared of upgrading (scared in the sense that I would have to invest too much time).
Any ideas how to keep it backwards compatible when upgrading?