chore: yarn install:all and update linker flags

Description
This PR adds again -Wl and -ld_classic linker flags that got removed after running yarn install:all then update hermes on main. After googling these linker flags, it seems like they can result in crashes for iOS versions lesser than 15, and it's why I believe we should keep them, at least until we don't support version lesser than 15.
Related commit that resulted in the diff as well from https://github.com/artsy/eigen/pull/9780#discussion_r1467813266

Note: you need to clean the build folder after this in order for xcode to build successfully

Runs successfully on XCode

PR Checklist

[x] I have tested my changes on iOS and Android.
[x] I hid my changes behind a feature flag, or they don't need one.
[x] I have included screenshots or videos, or I have not changed the UI.
[x] I have added tests, or my changes don't require any.
[x] I added an app state migration, or my changes do not require one.
[x] I have documented any follow-up work that this PR will require, or it does not require any.
[X] I have added a changelog entry below, or my changes do not require one.

To the reviewers 👀

[ ] I would like at least one of the reviewers to run this PR on the simulator or device.

Changelog updates
Changelog updates

Cross-platform user-facing changes

iOS user-facing changes

Android user-facing changes

Dev changes

update linker flags - mounir

Need help with something? Have a look at our docs, or get in touch with us.

This PR contains the following changes:

Dev changes (update linker flags - mounir)

  Generated by :no_entry_sign: dangerJS against 19162b81bedd35921cf6ed08397e45125643f0ff

Let me try it again, I believe I did  yarn install:all then bundle exec pod update hermes-engine --no-repo-update

hmm, I am still getting it. I am on XCode 15.2

Are you getting these after you build the app? Or after the installation steps? Didn't try to install


Bug fix for #791

Closes: https://github.com/davidjerleke/embla-carousel/discussions/791

@sarussss thank you for this PR 🎊!


Security - the backend can be reached despite a lambda pretending to prevent it

Summary
Faced with an error in the code entered by the user in the pre-function plugin, anyway the request goes directly to the backend, therefore it is a serious security problem
Steps To Reproduce

Create a route and a service pointing out to a backend (https://beeceptor.com/ for example)
Add a Serverless / Pre-function plugin with this code return kong.response.exit(401, "Invalid credentials")
Hit the Route, the server replies denying the access as expected.
Add some more code to the lambda function in the pre-function plugin which introduces some errors (random chars invalid to lua for instance)
Hit the API and Boom !! the backend replies as nothing happened

Additional Details & Logs
kong_1                | 2020/10/08 12:51:29 [error] 25#0: *1338706 lua coroutine: runtime error: [string " local consumers = kong.db.consumers local op..."]:1: attempt to index field 'x509' (a nil value)
kong_1                | stack traceback:
kong_1                | coroutine 0:
kong_1                | 	[string " local consumers = kong.db.consumers local op..."]: in function 'fn'
kong_1                | 	...cal/share/lua/5.1/kong/plugins/pre-function/_handler.lua:41: in function <...cal/share/lua/5.1/kong/plugins/pre-function/_handler.lua:14>
kong_1                | coroutine 1:
kong_1                | 	[C]: in function 'resume'
kong_1                | 	coroutine.wrap:21: in function coroutine.wrap:21
kong_1                | 	/usr/local/share/lua/5.1/kong/init.lua:687: in function 'access'
kong_1                | 	access_by_lua(nginx-kong.conf:87):2: in main chunk, client: <IP_ADDRESS>, server: kong, request: "POST /admin-api/instances/register HTTP/1.0", host: "kong:8000"

Kong version 2.0.4

Kong debug-level startup logs:
2020/10/08 12:58:42 [verbose] Kong: 2.0.4
2020/10/08 12:58:42 [debug] ngx_lua: 10015
2020/10/08 12:58:42 [debug] nginx: 1015008
2020/10/08 12:58:42 [debug] Lua: LuaJIT 2.1.0-beta3
2020/10/08 12:58:42 [verbose] reading config file at /etc/kong/kong.conf
2020/10/08 12:58:42 [debug] reading environment variables
2020/10/08 12:58:42 [debug] KONG_ADMIN_LISTEN ENV found with "<IP_ADDRESS>:8001"
2020/10/08 12:58:42 [debug] KONG_PG_HOST ENV found with "db"
2020/10/08 12:58:42 [debug] KONG_DATABASE ENV found with "postgres"
2020/10/08 12:58:42 [debug] KONG_PROXY_ACCESS_LOG ENV found with "/dev/stdout"
2020/10/08 12:58:42 [debug] KONG_PG_DATABASE ENV found with "kong"
2020/10/08 12:58:42 [debug] KONG_ADMIN_ACCESS_LOG ENV found with "/dev/stdout"
2020/10/08 12:58:42 [debug] KONG_PG_USER ENV found with "kong-db-user"
2020/10/08 12:58:42 [debug] KONG_PROXY_ERROR_LOG ENV found with "/dev/stderr"
2020/10/08 12:58:42 [debug] KONG_ADMIN_ERROR_LOG ENV found with "/dev/stderr"
2020/10/08 12:58:42 [debug] KONG_PG_PASSWORD ENV found with ""
2020/10/08 12:58:42 [debug] KONG_CASSANDRA_CONTACT_POINTS ENV found with "db"
2020/10/08 12:58:42 [debug] admin_access_log = "/dev/stdout"
2020/10/08 12:58:42 [debug] admin_error_log = "/dev/stderr"
2020/10/08 12:58:42 [debug] admin_listen = {"<IP_ADDRESS>:8001"}
2020/10/08 12:58:42 [debug] anonymous_reports = true
2020/10/08 12:58:42 [debug] cassandra_consistency = "ONE"
2020/10/08 12:58:42 [debug] cassandra_contact_points = {"db"}
2020/10/08 12:58:42 [debug] cassandra_data_centers = {"dc1:2","dc2:3"}
2020/10/08 12:58:42 [debug] cassandra_keyspace = "kong"
2020/10/08 12:58:42 [debug] cassandra_lb_policy = "RequestRoundRobin"
2020/10/08 12:58:42 [debug] cassandra_port = 9042
2020/10/08 12:58:42 [debug] cassandra_refresh_frequency = 60
2020/10/08 12:58:42 [debug] cassandra_repl_factor = 1
2020/10/08 12:58:42 [debug] cassandra_repl_strategy = "SimpleStrategy"
2020/10/08 12:58:42 [debug] cassandra_schema_consensus_timeout = 10000
2020/10/08 12:58:42 [debug] cassandra_ssl = false
2020/10/08 12:58:42 [debug] cassandra_ssl_verify = false
2020/10/08 12:58:42 [debug] cassandra_timeout = 5000
2020/10/08 12:58:42 [debug] cassandra_username = "kong"
2020/10/08 12:58:42 [debug] client_body_buffer_size = "8k"
2020/10/08 12:58:42 [debug] client_max_body_size = "0"
2020/10/08 12:58:42 [debug] client_ssl = false
2020/10/08 12:58:42 [debug] cluster_control_plane = "<IP_ADDRESS>:8005"
2020/10/08 12:58:42 [debug] cluster_listen = {"<IP_ADDRESS>:8005"}
2020/10/08 12:58:42 [debug] database = "postgres"
2020/10/08 12:58:42 [debug] db_cache_ttl = 0
2020/10/08 12:58:42 [debug] db_cache_warmup_entities = {"services","plugins"}
2020/10/08 12:58:42 [debug] db_resurrect_ttl = 30
2020/10/08 12:58:42 [debug] db_update_frequency = 5
2020/10/08 12:58:42 [debug] db_update_propagation = 0
2020/10/08 12:58:42 [debug] dns_error_ttl = 1
2020/10/08 12:58:42 [debug] dns_hostsfile = "/etc/hosts"
2020/10/08 12:58:42 [debug] dns_no_sync = false
2020/10/08 12:58:42 [debug] dns_not_found_ttl = 30
2020/10/08 12:58:42 [debug] dns_order = {"LAST","SRV","A","CNAME"}
2020/10/08 12:58:42 [debug] dns_resolver = {}
2020/10/08 12:58:42 [debug] dns_stale_ttl = 4
2020/10/08 12:58:42 [debug] error_default_type = "text/plain"
2020/10/08 12:58:42 [debug] go_plugins_dir = "off"
2020/10/08 12:58:42 [debug] go_pluginserver_exe = "/usr/local/bin/go-pluginserver"
2020/10/08 12:58:42 [debug] headers = {"server_tokens","latency_tokens"}
2020/10/08 12:58:42 [debug] kic = false
2020/10/08 12:58:42 [debug] log_level = "notice"
2020/10/08 12:58:42 [debug] lua_package_cpath = ""
2020/10/08 12:58:42 [debug] lua_package_path = "/usr/local/custom/?.lua;;"
2020/10/08 12:58:42 [debug] lua_socket_pool_size = 30
2020/10/08 12:58:42 [debug] lua_ssl_verify_depth = 1
2020/10/08 12:58:42 [debug] mem_cache_size = "128m"
2020/10/08 12:58:42 [debug] nginx_admin_directives = {}
2020/10/08 12:58:42 [debug] nginx_daemon = "on"
2020/10/08 12:58:42 [debug] nginx_events_directives = {{name="worker_connections",value="auto"},{name="multi_accept",value="on"}}
2020/10/08 12:58:42 [debug] nginx_events_multi_accept = "on"
2020/10/08 12:58:42 [debug] nginx_events_worker_connections = "auto"
2020/10/08 12:58:42 [debug] nginx_http_client_body_buffer_size = "8k"
2020/10/08 12:58:42 [debug] nginx_http_client_max_body_size = "0"
2020/10/08 12:58:42 [debug] nginx_http_directives = {{name="client_max_body_size",value="0"},{name="ssl_prefer_server_ciphers",value="off"},{name="client_body_buffer_size",value="8k"},{name="ssl_protocols",value="TLSv1.2 TLSv1.3"},{name="ssl_session_tickets",value="on"},{name="ssl_session_timeout",value="1d"}}
2020/10/08 12:58:42 [debug] nginx_http_ssl_prefer_server_ciphers = "off"
2020/10/08 12:58:42 [debug] nginx_http_ssl_protocols = "TLSv1.2 TLSv1.3"
2020/10/08 12:58:42 [debug] nginx_http_ssl_session_tickets = "on"
2020/10/08 12:58:42 [debug] nginx_http_ssl_session_timeout = "1d"
2020/10/08 12:58:42 [debug] nginx_http_status_directives = {}
2020/10/08 12:58:42 [debug] nginx_http_upstream_directives = {{name="keepalive_requests",value="100"},{name="keepalive_timeout",value="60s"},{name="keepalive",value="60"}}
2020/10/08 12:58:42 [debug] nginx_http_upstream_keepalive = "60"
2020/10/08 12:58:42 [debug] nginx_http_upstream_keepalive_requests = "100"
2020/10/08 12:58:42 [debug] nginx_http_upstream_keepalive_timeout = "60s"
2020/10/08 12:58:42 [debug] nginx_main_daemon = "on"
2020/10/08 12:58:42 [debug] nginx_main_directives = {{name="daemon",value="on"},{name="worker_rlimit_nofile",value="auto"},{name="worker_processes",value="auto"}}
2020/10/08 12:58:42 [debug] nginx_main_worker_processes = "auto"
2020/10/08 12:58:42 [debug] nginx_main_worker_rlimit_nofile = "auto"
2020/10/08 12:58:42 [debug] nginx_optimizations = true
2020/10/08 12:58:42 [debug] nginx_proxy_directives = {{name="real_ip_header",value="X-Real-IP"},{name="real_ip_recursive",value="off"}}
2020/10/08 12:58:42 [debug] nginx_proxy_real_ip_header = "X-Real-IP"
2020/10/08 12:58:42 [debug] nginx_proxy_real_ip_recursive = "off"
2020/10/08 12:58:42 [debug] nginx_sproxy_directives = {}
2020/10/08 12:58:42 [debug] nginx_status_directives = {}
2020/10/08 12:58:42 [debug] nginx_stream_directives = {}
2020/10/08 12:58:42 [debug] nginx_supstream_directives = {}
2020/10/08 12:58:42 [debug] nginx_upstream_directives = {{name="keepalive_requests",value="100"},{name="keepalive_timeout",value="60s"},{name="keepalive",value="60"}}
2020/10/08 12:58:42 [debug] nginx_upstream_keepalive = "60"
2020/10/08 12:58:42 [debug] nginx_upstream_keepalive_requests = "100"
2020/10/08 12:58:42 [debug] nginx_upstream_keepalive_timeout = "60s"
2020/10/08 12:58:42 [debug] nginx_worker_processes = "auto"
2020/10/08 12:58:42 [debug] pg_database = "kong"
2020/10/08 12:58:42 [debug] pg_host = "db"
2020/10/08 12:58:42 [debug] pg_max_concurrent_queries = 0
2020/10/08 12:58:42 [debug] pg_password = ""
2020/10/08 12:58:42 [debug] pg_port = 5432
2020/10/08 12:58:42 [debug] pg_semaphore_timeout = 60000
2020/10/08 12:58:42 [debug] pg_ssl = false
2020/10/08 12:58:42 [debug] pg_ssl_verify = false
2020/10/08 12:58:42 [debug] pg_timeout = 5000
2020/10/08 12:58:42 [debug] pg_user = "kong-db-user"
2020/10/08 12:58:42 [debug] plugins = {"bundled"}
2020/10/08 12:58:42 [debug] prefix = "/usr/local/kong/"
2020/10/08 12:58:42 [debug] proxy_access_log = "/dev/stdout"
2020/10/08 12:58:42 [debug] proxy_error_log = "/dev/stderr"
2020/10/08 12:58:42 [debug] proxy_listen = {"<IP_ADDRESS>:8000 reuseport backlog=16384","<IP_ADDRESS>:8443 http2 ssl reuseport backlog=16384"}
2020/10/08 12:58:42 [debug] real_ip_header = "X-Real-IP"
2020/10/08 12:58:42 [debug] real_ip_recursive = "off"
2020/10/08 12:58:42 [debug] role = "traditional"
2020/10/08 12:58:42 [debug] router_consistency = "strict"
2020/10/08 12:58:42 [debug] router_update_frequency = 1
2020/10/08 12:58:42 [debug] ssl_cipher_suite = "intermediate"
2020/10/08 12:58:42 [debug] ssl_ciphers = "ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384"
2020/10/08 12:58:42 [debug] status_access_log = "off"
2020/10/08 12:58:42 [debug] status_error_log = "logs/status_error.log"
2020/10/08 12:58:42 [debug] status_listen = {"off"}
2020/10/08 12:58:42 [debug] stream_listen = {"off"}
2020/10/08 12:58:42 [debug] trusted_ips = {}
2020/10/08 12:58:42 [debug] upstream_keepalive = 60
2020/10/08 12:58:42 [verbose] prefix in use: /usr/local/kong
2020/10/08 12:58:42 [debug] sending signal to pid at: /usr/local/kong/pids/nginx.pid
2020/10/08 12:58:42 [debug] kill -0 cat /usr/local/kong/pids/nginx.pid >/dev/null 2>&1
Error:
/usr/local/share/lua/5.1/kong/cmd/start.lua:24: Kong is already running in /usr/local/kong
stack traceback:
[C]: in function 'assert'
/usr/local/share/lua/5.1/kong/cmd/start.lua:24: in function 'cmd_exec'
/usr/local/share/lua/5.1/kong/cmd/init.lua:88: in function </usr/local/share/lua/5.1/kong/cmd/init.lua:88>
[C]: in function 'xpcall'
/usr/local/share/lua/5.1/kong/cmd/init.lua:88: in function </usr/local/share/lua/5.1/kong/cmd/init.lua:45>
/usr/local/bin/kong:9: in function 'file_gen'
init_worker_by_lua:47: in function <init_worker_by_lua:45>
[C]: in function 'xpcall'
init_worker_by_lua:54: in function <init_worker_by_lua:52>

Kong error logs (<KONG_PREFIX>/logs/error.log)

Kong configuration:
{
"plugins": {
"enabled_in_cluster": [
"pre-function",
"key-auth"
],
"available_on_server": {
"correlation-id": true,
"pre-function": true,
"cors": true,
"ldap-auth": true,
"loggly": true,
"hmac-auth": true,
"zipkin": true,
"request-size-limiting": true,
"azure-functions": true,
"request-transformer": true,
"oauth2": true,
"response-transformer": true,
"ip-restriction": true,
"statsd": true,
"jwt": true,
"proxy-cache": true,
"basic-auth": true,
"key-auth": true,
"http-log": true,
"datadog": true,
"tcp-log": true,
"rate-limiting": true,
"post-function": true,
"prometheus": true,
"acl": true,
"syslog": true,
"file-log": true,
"acme": true,
"udp-log": true,
"response-ratelimiting": true,
"aws-lambda": true,
"session": true,
"bot-detection": true,
"request-termination": true
}
},
"tagline": "Welcome to kong",
"configuration": {
"plugins": [
"bundled"
],
"admin_listen": [
"<IP_ADDRESS>:8001"
],
"proxy_access_log": "/dev/stdout",
"prefix": "/usr/local/kong",
"nginx_conf": "/usr/local/kong/nginx.conf",
"cassandra_username": "kong",
"nginx_events_directives": [
{
"value": "auto",
"name": "worker_connections"
},
{
"value": "on",
"name": "multi_accept"
}
],
"dns_resolver": {},
"nginx_upstream_keepalive_requests": "100",
"nginx_http_upstream_directives": [
{
"value": "100",
"name": "keepalive_requests"
},
{
"value": "60s",
"name": "keepalive_timeout"
},
{
"value": "60",
"name": "keepalive"
}
],
"nginx_main_daemon": "off",
"stream_proxy_ssl_enabled": false,
"nginx_acc_logs": "/usr/local/kong/logs/access.log",
"pg_semaphore_timeout": 60000,
"proxy_listen": [
"<IP_ADDRESS>:8000 reuseport backlog=16384",
"<IP_ADDRESS>:8443 http2 ssl reuseport backlog=16384"
],
"client_ssl_cert_default": "/usr/local/kong/ssl/kong-default.crt",
"go_pluginserver_exe": "/usr/local/bin/go-pluginserver",
"dns_no_sync": false,
"db_update_propagation": 0,
"stream_listen": [
"off"
],
"nginx_err_logs": "/usr/local/kong/logs/error.log",
"cassandra_port": 9042,
"headers": [
"server_tokens",
"latency_tokens"
],
"nginx_http_client_max_body_size": "0",
"status_listen": [
"off"
],
"cassandra_lb_policy": "RequestRoundRobin",
"cluster_control_plane": "<IP_ADDRESS>:8005",
"nginx_http_ssl_prefer_server_ciphers": "off",
"pg_database": "kong",
"nginx_http_client_body_buffer_size": "8k",
"admin_acc_logs": "/usr/local/kong/logs/admin_access.log",
"cassandra_refresh_frequency": 60,
"nginx_pid": "/usr/local/kong/pids/nginx.pid",
"nginx_main_worker_rlimit_nofile": "auto",
"admin_access_log": "/dev/stdout",
"proxy_listeners": [
{
"listener": "<IP_ADDRESS>:8000 reuseport backlog=16384",
"proxy_protocol": false,
"reuseport": true,
"deferred": false,
"ssl": false,
"ip": "<IP_ADDRESS>",
"backlog=16384": true,
"http2": false,
"port": 8000,
"bind": false
},
{
"listener": "<IP_ADDRESS>:8443 ssl http2 reuseport backlog=16384",
"proxy_protocol": false,
"reuseport": true,
"deferred": false,
"ssl": true,
"ip": "<IP_ADDRESS>",
"backlog=16384": true,
"http2": true,
"port": 8443,
"bind": false
}
],
"db_cache_warmup_entities": [
"services",
"plugins"
],
"enabled_headers": {
"latency_tokens": true,
"X-Kong-Response-Latency": true,
"Server": true,
"X-Kong-Admin-Latency": true,
"X-Kong-Upstream-Status": false,
"Via": true,
"X-Kong-Proxy-Latency": true,
"server_tokens": true,
"X-Kong-Upstream-Latency": true
},
"nginx_http_ssl_protocols": "TLSv1.2 TLSv1.3",
"db_cache_ttl": 0,
"nginx_events_multi_accept": "on",
"admin_ssl_cert_default": "/usr/local/kong/ssl/admin-kong-default.crt",
"pg_ssl": false,
"status_access_log": "off",
"cluster_listeners": [
{
"listener": "<IP_ADDRESS>:8005",
"proxy_protocol": false,
"reuseport": false,
"backlog=%d+": false,
"deferred": false,
"ssl": false,
"ip": "<IP_ADDRESS>",
"port": 8005,
"http2": false,
"bind": false
}
],
"kong_env": "/usr/local/kong/.kong_env",
"cassandra_schema_consensus_timeout": 10000,
"log_level": "notice",
"admin_ssl_cert_key_default": "/usr/local/kong/ssl/admin-kong-default.key",
"real_ip_recursive": "off",
"cassandra_repl_factor": 1,
"ssl_cipher_suite": "intermediate",
"router_consistency": "strict",
"pg_port": 5432,
"cassandra_keyspace": "kong",
"ssl_cert_default": "/usr/local/kong/ssl/kong-default.crt",
"nginx_http_ssl_session_timeout": "1d",
"nginx_upstream_directives": [
{
"value": "100",
"name": "keepalive_requests"
},
{
"value": "60s",
"name": "keepalive_timeout"
},
{
"value": "60",
"name": "keepalive"
}
],
"role": "traditional",
"admin_ssl_enabled": false,
"trusted_ips": {},
"nginx_events_worker_connections": "auto",
"nginx_supstream_directives": {},
"ssl_cert_key": "/usr/local/kong/ssl/kong-default.key",
"pg_user": "kong-db-user",
"pg_password": "******",
"ssl_ciphers": "ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384",
"nginx_admin_directives": {},
"nginx_upstream_keepalive_timeout": "60s",
"nginx_http_directives": [
{
"value": "0",
"name": "client_max_body_size"
},
{
"value": "off",
"name": "ssl_prefer_server_ciphers"
},
{
"value": "8k",
"name": "client_body_buffer_size"
},
{
"value": "TLSv1.2 TLSv1.3",
"name": "ssl_protocols"
},
{
"value": "on",
"name": "ssl_session_tickets"
},
{
"value": "1d",
"name": "ssl_session_timeout"
},
{
"value": "prometheus_metrics 5m",
"name": "lua_shared_dict"
}
],
"pg_host": "db",
"nginx_kong_stream_conf": "/usr/local/kong/nginx-kong-stream.conf",
"ssl_cert_csr_default": "/usr/local/kong/ssl/kong-default.csr",
"go_plugins_dir": "off",
"cluster_listen": [
"<IP_ADDRESS>:8005"
],
"dns_order": [
"LAST",
"SRV",
"A",
"CNAME"
],
"dns_error_ttl": 1,
"nginx_sproxy_directives": {},
"nginx_http_upstream_keepalive_timeout": "60s",
"pg_timeout": 5000,
"nginx_http_upstream_keepalive_requests": "100",
"database": "postgres",
"nginx_upstream_keepalive": "60",
"nginx_worker_processes": "auto",
"nginx_http_status_directives": {},
"lua_package_path": "/usr/local/custom/?.lua;;",
"router_update_frequency": 1,
"upstream_keepalive": 60,
"pg_max_concurrent_queries": 0,
"proxy_ssl_enabled": true,
"nginx_http_upstream_keepalive": "60",
"lua_socket_pool_size": 30,
"mem_cache_size": "128m",
"db_resurrect_ttl": 30,
"cassandra_data_centers": [
"dc1:2",
"dc2:3"
],
"cassandra_consistency": "ONE",
"client_max_body_size": "0",
"admin_error_log": "/dev/stderr",
"nginx_main_directives": [
{
"value": "off",
"name": "daemon"
},
{
"value": "auto",
"name": "worker_rlimit_nofile"
},
{
"value": "auto",
"name": "worker_processes"
}
],
"dns_not_found_ttl": 30,
"nginx_http_ssl_session_tickets": "on",
"cassandra_ssl": false,
"db_update_frequency": 5,
"cassandra_repl_strategy": "SimpleStrategy",
"status_error_log": "logs/status_error.log",
"nginx_status_directives": {},
"kic": false,
"dns_stale_ttl": 4,
"nginx_kong_conf": "/usr/local/kong/nginx-kong.conf",
"real_ip_header": "X-Real-IP",
"dns_hostsfile": "/etc/hosts",
"admin_listeners": [
{
"listener": "<IP_ADDRESS>:8001",
"proxy_protocol": false,
"reuseport": false,
"backlog=%d+": false,
"deferred": false,
"ssl": false,
"ip": "<IP_ADDRESS>",
"port": 8001,
"http2": false,
"bind": false
}
],
"nginx_optimizations": true,
"ssl_cert": "/usr/local/kong/ssl/kong-default.crt",
"nginx_proxy_real_ip_recursive": "off",
"nginx_proxy_real_ip_header": "X-Real-IP",
"cassandra_ssl_verify": false,
"client_ssl": false,
"cassandra_timeout": 5000,
"nginx_main_worker_processes": "auto",
"proxy_error_log": "/dev/stderr",
"client_ssl_cert_key_default": "/usr/local/kong/ssl/kong-default.key",
"nginx_daemon": "off",
"anonymous_reports": true,
"status_listeners": {},
"ssl_cert_key_default": "/usr/local/kong/ssl/kong-default.key",
"pg_ssl_verify": false,
"cassandra_contact_points": [
"db"
],
"client_body_buffer_size": "8k",
"lua_package_cpath": "",
"stream_listeners": {},
"error_default_type": "text/plain",
"loaded_plugins": {
"session": true,
"pre-function": true,
"cors": true,
"ldap-auth": true,
"loggly": true,
"hmac-auth": true,
"zipkin": true,
"request-size-limiting": true,
"azure-functions": true,
"request-transformer": true,
"oauth2": true,
"response-transformer": true,
"syslog": true,
"statsd": true,
"jwt": true,
"proxy-cache": true,
"basic-auth": true,
"key-auth": true,
"http-log": true,
"datadog": true,
"tcp-log": true,
"correlation-id": true,
"post-function": true,
"bot-detection": true,
"acl": true,
"ip-restriction": true,
"file-log": true,
"rate-limiting": true,
"udp-log": true,
"response-ratelimiting": true,
"aws-lambda": true,
"prometheus": true,
"acme": true,
"request-termination": true
},
"nginx_stream_directives": [
{
"value": "stream_prometheus_metrics 5m",
"name": "lua_shared_dict"
}
],
"nginx_proxy_directives": [
{
"value": "X-Real-IP",
"name": "real_ip_header"
},
{
"value": "off",
"name": "real_ip_recursive"
}
],
"lua_ssl_verify_depth": 1
},
"version": "2.0.4",
"node_id": "48056ff3-cb21-4bc1-a7ac-24538dd41ace",
"lua_version": "LuaJIT 2.1.0-beta3",
"prng_seeds": {
"pid: 28":<PHONE_NUMBER>12,
"pid: 31":<PHONE_NUMBER>64,
"pid: 27":<PHONE_NUMBER>47,
"pid: 1":<PHONE_NUMBER>16,
"pid: 30":<PHONE_NUMBER>53,
"pid: 26":<PHONE_NUMBER>32,
"pid: 29":<PHONE_NUMBER>92,
"pid: 25":<PHONE_NUMBER>87,
"pid: 32":<PHONE_NUMBER>01
},
"timers": {
"pending": 8,
"running": 0
},
"hostname": "823a506ed2ce"
}
https://docs.konghq.com/latest/admin-api/#retrieve-node-information)

Operating system
Ubuntu 18.04

As a feature request: It would be great to have flag configuration in the pre-function plugin that allows to configure fail over behaviour: Pass through or fail truncting the request cycle

@mnofresno I think this issue has been fixed in 0.3.1, and I guess you are running 0.3.0. Please try 0.3.1 and report back.

@bungle not sure, @mnofresno purposefully adds bad code to the serverless plugins, they bail out with an error, and the request cycle continues after it logged the error. So this is expected behaviour.
@mnofresno adding a flag makes no sense. If a user can add bad code, they can also disable the flag. When push comes to shove; test and review your code thoroughly, especially in a use case where it is security related.
in a general sense you could do something like this, assuming the following code
 -- existing code

rewrite that as;
local func = function()
  -- existing code
end

if not pcall(func) then
  -- in case of an error, block the request to prevent bad things from happening
  return kong.response.exit(401, "Invalid credentials")
end

having said that; normal plugins bail out on an error with a 500. It makes sense to also do that for the serverless-plugins

having said that; normal plugins bail out on an error with a 500. It makes sense to also do that for the serverless-plugins

this is already the existing behaviour. Added a test to be sure: https://github.com/Kong/kong-plugin-serverless-functions/pull/31

this is already the existing behaviour. Added a test to be sure: Kong/kong-plugin-serverless-functions#31

Yes, like I said, fixed in 0.3.1 the bug is present in 0.3.0 that does pcall and does not bail out.

Thanks for the reply !!
Can you tell me in what community version this bug was fixed?

@mnofresno I think this issue has been fixed in 0.3.1, and I guess you are running 0.3.0. Please try 0.3.1 and report back.

@bungle not sure, @mnofresno purposefully adds bad code to the serverless plugins, they bail out with an error, and the request cycle continues after it logged the error. So this is expected behaviour.
@mnofresno adding a flag makes no sense. If a user can add bad code, they can also disable the flag. When push comes to shove; test and review your code thoroughly, especially in a use case where it is security related.
in a general sense you could do something like this, assuming the following code
 -- existing code

rewrite that as;
local func = function()
  -- existing code
end

if not pcall(func) then
  -- in case of an error, block the request to prevent bad things from happening
  return kong.response.exit(401, "Invalid credentials")
end

@Tieske I think adding a flag will make sense because depending on the use case, pre-function will be more useful if at the failing event it pass anyway (e.g.: for lambdas with monitoring purposes) or stop the flow for example (e.g.: for lambdas with security purposes) I mean there is no intentional a person can put code that in certain condition can fail, the seriousness depends on the use case.

Can you tell me in what community version this bug was fixed? We currently use 2.0.4, I think you refer the 0.3.0 enterprise one.

I referred to plugin versions. And now that I rechecked the fix went to 1.0.0 which was released: April 7th 2020.
2.0.x still has 0.3.0:
https://github.com/Kong/kong/blob/2.0.5/kong-2.0.5-0.rockspec#L43
2.1.x has that bumped:
https://github.com/Kong/kong/blob/2.1.0/kong-2.1.0-0.rockspec#L45
So 2.1.x release should be first that contains the fix.

@mnofresno the flag could help with a hard-error, but it wouldn't catch a functional error either. Hence I tend to stick with the previous comments; test, test, test, ... Kong simply cannot solve the problem of users writing buggy code.

Great thanks for all the replies. I agree closing the ticket.


addy.host live version not working properly

I'm submitting a ...

[x] bug report
[ ] feature request

Current behavior:

the map is not being displayed
Steps to reproduce:
this might have happened after running coala and linting the project
check script.js and index.html to find the bug
run a localhost to check whether it is working or not

fixed by https://github.com/Addy-Smart-Addresses/Addy/commit/5a5ec1b8d92f8113fc6b3b147bb43a8de926ea60


Laravel 9.x Compatibility

This is an automated pull request from Shift to update your package code and dependencies to be compatible with Laravel 9.x.
Before merging, you need to:

Checkout the l9-compatibility branch
Review all comments for additional changes
Thoroughly test your package

If you do find an issue, please report it by commenting on this PR to help improve future automation.

:alembic: Using this package? If you would like to help test these changes or believe them to be compatible, you may update your project to reference this branch.
To do so, temporarily add Shift's fork to the repositories property of your composer.json:
{
    "repositories": [
        {
            "type": "vcs",
            "url": "https://github.com/laravel-shift/laravel-google-cloud-storage.git"
        }
    ]
}

Then update your dependency constraint to reference this branch:
{
    "require": {
        "superbalist/laravel-google-cloud-storage": "dev-l9-compatibility",
    }
}

Finally, run: composer update

@laravel-shift The change on this PR is not enough to be compatible with Laravel 9. Because this project has a direct dependency to the league/flysystem-cached-adapter which has a dependency to "league/flysystem": "~1.0". But Laravel 9 required v3 of league/flysystem. So, that's a conflict and should be resolved in some way.

@jasonmccreary you did a great job with the 'Laravel shift'. 🥇  Thanks for that.

Be aware that this implementation is poorly maintained, and not compatible with Laravel 9 without further work.
We decided to switch to https://github.com/spatie/laravel-google-cloud-storage

@kohlerdominik yeah, we did the same.

Hey, does anyone know when will this be published?

@mgallegos you should switch to: https://github.com/spatie/laravel-google-cloud-storage as this repo is not being actively maintained.


[bug]: getting warnings in Console

Link to minimal reproducible example
https://github.com/StabilityNexus/FairFund/tree/main/app/web-appUPDATE 27-08-24 :(No need for reproducible example)
Slack: https://walletconnect.slack.com/archives/C03RVH94K5K/p1711033563634099Github issues:

https://github.com/WalletConnect/web3modal/issues/2457
https://github.com/orgs/WalletConnect/discussions/4546

Summary
I am getting multiple warnings in console regarding cookies, multiple versions of lit loaded, etc:

Cookie “tld” will soon be rejected because it is foreign and does not have the “Partitioned“ attribute. 4211-ce6469b138bf3458.js:1:24931
Partitioned cookie or storage access was provided to “https://auth.magic.link/send-legacy?params=eyJBUElfS0VZIjoicGtfbGl2ZV9CMDgwRTlEQzMxRTU4NzVFIiwiRE9NQUlOX09SSUdJTiI6Imh0dHBzOi8vc2VjdXJlLndhbGxldGNvbm5lY3QuY29tIiwiRVRIX05FVFdPUksiOnsicnBjVXJsIjoiaHR0cHM6Ly9ycGMud2FsbGV0Y29ubmVjdC5vcmcvdjEvP2NoYWluSWQ9ZWlwMTU1OjEmcHJvamVjdElkPTQ3MTI3OWM5NzYxM2FkYmY3ZWRkYjBjNGZlZWEzOTU2IiwiY2hhaW5JZCI6MX0sImhvc3QiOiJhdXRoLm1hZ2ljLmxpbmsiLCJzZGsiOiJtYWdpYy1zZGsiLCJ2ZXJzaW9uIjoiMjguMC4zIiwibG9jYWxlIjoiZW5fVVMiLCJtZXRhIjp7InByb2plY3RJZCI6IjQ3MTI3OWM5NzYxM2FkYmY3ZWRkYjBjNGZlZWEzOTU2In19” because it is loaded in the third-party context and dynamic state partitioning is enabled.
Content-Security-Policy: The page’s settings blocked an inline script (script-src-elem) from being executed because it violates the following directive: “script-src 'self' 'nonce-2SdkO9PRFB5JkfMp8pBhHmc8iWhZxzJiZ0qSsvZqskk=' 'unsafe-eval' 'report-sample' https://*.magic.link/ https://cdn.segment.com/ https://cdn.amplitude.com/ https://www.google-analytics.com/analytics.js https://accounts.google.com/gsi/client https://*.launchdarkly.com/ https://www.google.com/ https://*.paypal.com/ https://www.paypalobjects.com/ 'sha256-O2Z/Int2dnWQI+JpBc4hIRlC7oBedig41hu/v71CM38='” inpage.js:1:334480
Cookie “dd_cookie_test_a287c608-6069-4808-8596-46857ddfc90f” will soon be rejected because it is foreign and does not have the “Partitioned“ attribute.
GET https://rpc.walletconnect.org/v1/profile/reverse/0xc3b8E2E891a006949b8Bd6F8F472d63b1C953A8B?projectId=471279c97613adbf7eddb0c4feea3956 404 (Not Found)
layout.js:5742 Multiple versions of Lit loaded. Loading multiple versions is not recommended. See https://lit.dev/msg/multiple-versions for more information.

UPDATE 27-08-24 :

https://walletconnect.slack.com/archives/C07838NJA22/p1724083523453769

Discord about profile/reverse issue :

https://discord.com/channels/492410046307631105/1105316298390511626/1266781941496021064
https://discord.com/channels/492410046307631105/1258958507487658005/1258958507487658005

Github issues:

https://github.com/WalletConnect/web3modal/issues/2347
https://github.com/WalletConnect/web3modal/issues/2457

Magic Slack

https://walletconnect.slack.com/archives/C051V991N5A/p1722093056178989?thread_ts=1716313795.017479&cid=C051V991N5A
https://walletconnect.slack.com/archives/C051V991N5A/p1722093564594189
APKT-243

UPDATE 4-09-24 :

https://github.com/WalletConnect/web3modal/discussions/2793
https://github.com/WalletConnect/web3modal/discussions/2794

I was using 5.0.11 and it was throwing Third-party cookie will be blocked in future Chrome versions as part of Privacy Sandbox. (10000+ times)

List of related npm package versions
"@web3modal/wagmi": "^5.0.3",
"viem": "^2.16.0",
"wagmi": "^2.10.4",
"@tanstack/react-query": "^5.18.1",

I also have been facing this issue and unable to resolve it yet.
GET https://rpc.walletconnect.org/v1/profile/reverse/0x69d20d81577A0dc94f622d439147233FfFD8c4Ff?projectId=d9ab4f9c4fd16c4c376ff4c5c4fce213 404 (Not Found)

Same here, multiple warnings in console.

I am also seeing a continuously looping warning in the console.

same for me 🫠

Thanks for reporting. We know about this issue and we are working on it.

Thanks for reporting. We know about this issue and we are working on it.

Any kind of temp workaround we can apply to prevent the flood of warnings? Or just need to hold out for an updated release?
Thanks 🙏

Temp workaround is go to Chrome settings > privacy and security > third party cookies > add "localhost:3000" to sites allowed to use third party cookies

I'm getting about 1000 errors every second, it toasting my laptop quickly.
Happens when I'm upcommenting this part of basic implementations
// 3. Create a AppKit instance    createAppKit({     adapters: [new EthersAdapter()],     networks: [mainnet, arbitrum],     metadata,     projectId,     features: {       analytics: true // Optional - defaults to your Cloud configuration     }   })

please keep this open as its still an issue


Organize Gemfile fails on existing apps

Rails version             <IP_ADDRESS>
Ruby version              ruby 3.3.0 (2023-12-25 revision 5124f9ac75) [arm64-darwin23]
RubyGems version          3.5.6
Rack version              3.0.11

Steps to reproduce

Install suspenders (rather than create a new app with Suspenders)
group :development, :test do
  gem "suspenders", github: "thoughtbot/suspenders"
end

Run bin/rails suspenders:cleanup:organize_gemfile

Expected: The script organized the Gemfile.
Actual:
bin/rails suspenders:cleanup:organize_gemfile
bin/rails aborted!
NoMethodError: undefined method `starts_with?' for an instance of String (NoMethodError)

          if line.starts_with?(/group/)
                 ^^^^^^^^^^^^^
Did you mean?  start_with?

Tasks: TOP => suspenders:cleanup:organize_gemfile
(See full trace by running task with --trace)

This is surprising, because this task works when generating a new app with Suspenders. My guess is that one of the dependencies that's installed with Suspenders is providing this method definition.

I think this is coming from Rails?


Accessible buffer does not get new lines if buffer changes while focused

Saw this while testing https://github.com/microsoft/vscode/pull/177864:
Accessible buffer while focused and receiving output:

Going back to real buffer:

Back to accessible buffer:

This used to work, so looks like a regression

easier to see what's going on with this repro
https://user-images.githubusercontent.com/29464607/226758368-17d2845c-4748-4c8e-97d3-9d39a0e25e27.mov

for each writeParsed call we are going from startLine to end but should just be getting startLine to prevent this overlap from happening

This was fixed yesterday, but there are still issues - there shouldn't be missing or extra new lines like there are here
https://user-images.githubusercontent.com/29464607/226962260-b711b90b-d575-4ba0-ba72-591414089ac7.mov

The buffer does get newlines now, but we do not scroll to the new lines. I assume that this is by design to reduce cognitive load for screen reader users, but if not please LMK and I can file a new issue.

Yes that is by design. Thanks for testing


如何预设代理和API

可通过设置环境变量 VUE_APP_DEF_HIBIAPI_MAIN 和 VUE_APP_DEF_PXIMG_MAIN
格式参照

Hello author, I would like to ask how to configure it inside the program besides this manual setting on the web page? I have created the .env.development file in the root directory of the project, and in it I have configured:
NODE_ENV=development
VUE_APP_PXIMG_PROXYS='i.pixiv.re'
VUE_APP_HIBIAPI_ALTS='https://api.obfs.dev/api/pixiv'

This shows up with the close manual proxy button, but the page still doesn't load properly, so I'd like to ask you what your solution is. How can I configure the proxy address in the code?

@yabo083, if you have created an .env file, you need to set it like this:
VUE_APP_DEF_PXIMG_MAIN=i.pixiv.re
VUE_APP_DEF_HIBIAPI_MAIN =https://api.obfs.dev/api/pixiv

Also, if you wanna configure these links directly in the code, you may search process.env.VUE_APP_DEF_HIBIAPI_MAIN & process.env.VUE_APP_DEF_PXIMG_MAIN globally and replace it with your owns in your editor.
The key replacement code is located in https://github.com/asadahimeka/pixiv-viewer/blob/master/src/api/http.js#L5 and https://github.com/asadahimeka/pixiv-viewer/blob/master/src/api/index.js#L20.

ok! thank you very much for your reply, this program is great for beginners and I will look into it closely.


[WIP] add merge feature

this is not related to Data context so the place where this function is added is incorrect
dependency injection doesn't happen automatically as in other cases so I think this is confusing

this feature can be used outside of a core, so you can just create merge function and use it in your projects. You don't need it in the core.

I think this would look better if I could export scenarios as functions and then import them like this:
require('./common').forEach((t) => t.injectDependencies());
// if you need to override dependnecies, you can pass them in
require('./common').forEach((t) => t.injectDependencies({ myData }));

I think this syntax much more verbose and less magical.
Also it doesn't introduce a new concept.


optimization: use the correct parameters based on the version of luarocks

It may be wrong to determine the parameters based on the operating system type.
we need to delete the old logic:
https://github.com/apache/incubator-apisix/blob/master/Makefile#L50

I can do it.

I can do it.

waiting your PR ^_^

I want to do this job.
<EMAIL_ADDRESS>From: YuanSheng Wang
Date: 2020-03-09 21:45
To: apache/incubator-apisix
CC: Subscribed
Subject: [apache/incubator-apisix] optimization: use the correct parameters based on the version of luarocks (#1227)
It may be wrong to determine the parameters based on the operating system type.
we need to delete the old logic:
https://github.com/apache/incubator-apisix/blob/master/Makefile#L50
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or unsubscribe.


Lvgl update

A number of fixes for things that look like they've been broken for a bit, plus update to v8.3 of lvgl to keep moving up as lvgl develops.

@igrr sure, I can do that.
Are you reviewing other esp-box commits? I had another one open around an audio component that I'd also like to refactor out of esp-box for reuse. It's not intended to compete with esp-adf, its a minimal implementation for smaller size and fully open code. Was hoping to discuss how/where that might go, if it should be scrapped and esp-adf used instead etc.

Was hoping to discuss how/where that might go, if it should be scrapped and esp-adf used instead etc.

This sounds useful! I think we had a need for some kind of lightweight "audio playback" and "audio recording" functionality while working on examples in https://github.com/espressif/esp-bsp. @tore-espressif has looked into integrating ADF, but it was decided that it's too heavy for the purpose of simple examples.
So this contribution would be welcome, we just need to figure out where it would go and how it would be maintained. I'm not in the position to merge anything into the esp-box repository, but I will review https://github.com/espressif/esp-box/pull/30 and give some suggestions.


ruby 2.3.0 new syntax support

with code foo&.bar, which is equvalent for try method in ruby 2.3.0 i have this error
app/controllers/application_controller.rb:29:20: E: unexpected token error
(Using Ruby 2.0 parser; configure using TargetRubyVersion parameter, under AllCops)
    if current_user&.status=='inactive'

Did you close it because it was fixed or for another reason?


Permit CLI --open-group to accept a substring of a group name as a convenience

Should be self-explanatory. Tested manually on a simple case with a couple of groups
ant tryme -Dtryme.arg.open='--open-group "…ID or name or substring…"'

since I could find no automated test for this comparable to OpenCLITest.

BTW it seems that committing in, well, NetBeans fails to run gpg, despite commit.gpgsign = true which works on the command line. :-(

Thanks, makes sense to me, looks good.

If I have groups named
abc1
abc2
abc3

and I do --open-group "abc" then it will be random which of the three groups it will actually open, right?
Randomness is never good, but I understand that changing the code to open multiple groups is perhaps a larger effort.
Have I misread?

I do --open-group "abc" then it will be random which of the three groups it will actually open, right?

Right. Pick the one you want.

changing the code to open multiple groups is perhaps a larger effort

Not possible—only one group can be open at a time. The code could signal an error for clarity, I suppose. (The existing code made no attempt to verify that a match was unique, FWIW.)

Good explanations. Thx.

Group.allGroups() is a sorted Set right?  So not random but first match?  Which sounds like OK behaviour.

Group.allGroups() is a sorted Set right?

Yes, a TreeSet.


Istio crdclient is not resilient to removed API versions

Currently we check if a resource exists by looking at the CRD name: https://github.com/istio/istio/blob/79559c87b3ab3dd899690f9e2ab5ddd72afe489f/pilot/pkg/config/kube/crdclient/client.go#L170
This has the group + name, but not the version.
If the CRD exists, we watch that resource. This will block startup until the watch is synced.
An issue can occur if a version is removed. For instance, if gateway-api were to remove (or mark served: false) the v1alpha2 HTTPRoute. The check would find the CRD exists, and attempt to watch it. However, the API server would not serve it, so the watch would fail. This would result in Istiod never starting up.
The end result is that any CRD version removal can result in an Istiod outage.
The alternative, of course, is not that much better - we would end up not watching a resource we wanted to because we are using the wrong version.

Good catch. curious why does it need to specify the version served false rather than removing it from the versions list?


Revel cmd not working

Hi,
From last 3 days I tried to install revel on mac but unfortunately I couldn't.
Here is details of my dev setup error
export GOPATH=$HOME/go
#export PATH=$HOME/go/bin:$PATH
export PATH=$PATH:$GOROOT/bin```

when I run `revel version`:
```INFO  10:21:20 command_config.go:120: Checking import path /Users/amitsharma/go with /Users/amitsharma/go
panic: runtime error: slice bounds out of range

goroutine 1 [running]:
github.com/revel/cmd/model.(*CommandConfig).UpdateImportPath(0xc4200981c0, 0x14)
	/Users/amitsharma/go/src/github.com/revel/cmd/model/command_config.go:122 +0x907
main.main()
	/Users/amitsharma/go/src/github.com/revel/cmd/revel/revel.go:133 +0x243

when I run revel new my-app -v
Revel executing: create a skeleton Revel application
INFO  10:27:22   file.go:272: error opening directory: open /Users/amitsharma/go/src/sample1: no such file or directory
Exec: [/usr/local/go/bin/go get -d -v]
CRIT  10:27:22    new.go:201: Abort: Could not find or 'go get' Skeleton  source code: can't load package: package .: no Go files in /Users/amitsharma/go```

I please let me know where am I doing wrong?

Thanks
Amit

I think no one is interested in solving this issue.

We have the same problem

This has been merged, let us know if the issue persists.

Oh, It's working now, thanks a lot.

This has been merged, let us know if the issue persists.

After the fix, now it's working.
Thanks


_StorageClass makes large arrays of non-trivial messages impractical.

I'm trying to use protobufs with fairly large (100,000+ element) arrays of structs. These arrays receive dozens of changes a second and are serialized and deserialized every few seconds, so they must remain efficient and deterministic at all times: contiguous memory, minimal heap use, structs all the way down. Unfortunately (unless I'm missing something) it seems that the current implementation of swift-protobuf is incapable of handling this case to any degree of complexity, since any nested messages automatically invoke the _StorageClass path and cause every array element to allocate on the heap. One could splay out the nested messages onto the root message, but you'd still run into the 16 field limit. Even worse: according to the profiler, the protobuf array uses about 6x the memory of an equivalent native array. (Not sure if this is accurate... maybe something to do with that Internal.emptyData in unknownFields?)
Is there any way around this?

There currently isn't a way to avoid the _StorageClass at the moment.
Even if there was, wouldn't Array still be likely to do a heap allocation under the hood?  i.e. - it can't put every sized array on the stack, and surely not ones with 100,000+ elements.

Internally, SwiftProtobuf can generate structs with or without a backing StorageClass.  The decision for when to generate a StorageClass is somewhat arbitrary at the moment; we'd appreciate input into how to make this better, especially if that input is based on reproducible performance measurements.
There are two motivations for the StorageClass design:

Proto allows circular references and a pure struct-based implementation cannot support that.  At one time, I did experiment with code to analyze the full tree of data structures in order to use StorageClass only when there was in fact a circular reference.  That code didn't ship simply because I wasn't comfortable that I understood all of the implications well enough to justify the complexity, but the approach could be resurrected.
Structs sometimes need to be copied.  For the most part, Swift does a good job of avoiding this, but copying a small wrapper struct (plus associated refcounting) is often cheaper than copying a large struct.

Unknown field handling is another complication.  At one time, proto3 did not preserve unknown fields (in Google's C++ implementation), but this was changed.  Some of the implementations have an option to suppress unknown field handling, and we could consider adding such an option.

Even if there was, wouldn't Array still be likely to do a heap allocation under the hood? i.e. - it can't put every sized array on the stack, and surely not ones with 100,000+ elements.

Yes, but only one — not 100,001!

Internally, SwiftProtobuf can generate structs with or without a backing StorageClass. The decision for when to generate a StorageClass is somewhat arbitrary at the moment; we'd appreciate input into how to make this better, especially if that input is based on reproducible performance measurements.

I've been doing some (very, very unscientific) benchmarking for my particular use case. My messages are laid out as follows, and I've also hand-written a native struct with the same spec:
message Atom {
    required ID id = 1;
    required ID cause = 2;

    oneof value {
        uint32 insert = 3;
        bool delete = 4;
    }
}

message ID {
    required uint32 luid = 1;
    required uint32 lamport = 2;
    required uint32 index = 3;
}

With a million-element array of each, proto takes up 5.7x more space in memory (153MB vs. 27MB) and is 12.5x worse when doing the equivalent to calloc (275ms vs. 22ms), 3.4x worse when doing a straight copy (67ms vs. 20ms), 10x worse with random access (3ms vs. 0.3ms), and about the same with random mutations (1ms vs. 1.2ms). On the other hand, encoding and decoding are quite quick and produce data with good size compared to the simple binary coder I'm using. It's certainly usable, but not ideal. That size difference is very troubling, though.
I tried fiddling with the pb.swift file manually to remove StorageClass from the generated structs. The resulting code seems to work fine, but it's very strangely slower in almost every respect than the heap-allocated code! Need to dig into this more, doesn't make much sense to me.
Glad to hear that there's nothing intrinsic about StorageClass w.r.t. message coding. This means that, at the very least, a flag could be set to make everything a struct if the user knows what they're doing. Same with unknown field handling, if it's indeed what's causing the size to balloon so much.

OK, I've made a test build of protoc-gen-swift with _StorageClass disabled and UnknownStorage turned into a stub class. Heap or not, it sure looks like performance is mostly correlated to struct size: with the proto Atom structs at about 2x the size of my native structs, performance is only 2x worse.

Oops, yeah, my copy tests weren't copying anything on the _StorageClass side due to _uniqueStorage. With the current code, straight copies are 3x slower than native; with _StorageClass disabled and UnknownStorage nerfed, about the same as native.

For dealing with UnknownStorage, would something like this work? (It passes the tests.)
public struct UnknownStorage: Equatable {
  public static let emptyData = NSMutableData()

  /// The raw protocol buffer binary-encoded bytes that represent the unknown
  /// fields of a decoded message.
  internal var _data: NSMutableData = emptyData
  internal mutating func _uniqueData() -> NSMutableData {
    if !isKnownUniquelyReferenced(&_data) {
      _data = NSMutableData(data: _data as Data)
    }
    return _data
  }
  public var data: Data { return _data as Data }

  public static func ==(lhs: UnknownStorage, rhs: UnknownStorage) -> Bool {
    return lhs.data == rhs.data
  }

  public init() {}

  internal mutating func append(protobufData: Data) {
    _uniqueData().append(protobufData)
  }

  public func traverse<V: Visitor>(visitor: inout V) throws {
    if !(data as Data).isEmpty {
      try visitor.visitUnknown(bytes: (data as Data))
    }
  }
}

Testing with a ~1 million element array of 27-bit structs, I see 1.6x better memory use over the current approach. (125,044 kb vs. 78,140 kb.) Still a long way to go for near-native sizing, though. (27,448 kb.) I can get there by removing UnknownStorage altogether, but that won't work for many use cases.

Sorry, didn't get a chance to really think about this until today.
I was going to say the bridging hit of using Foundation could be non ideal, and I wasn't sure if that could cause any hiccup for folks on linux.  But with your edit, you are basically doing what we did with the _StorageClass support but for the data itself.
In the cases where the message is already using storage, it might be possible to just remap the unknownFields into the storage, that way it never ends up at two heap references for those messages.  But that likely means sticking a protocol on the unknownFields of the message so it can use something like the above or use something that shims over to something inline in the _StorageClass.

Would that really make a huge difference, though? Standard Data does a heap allocation under the hood anyway, so the DataReference approach would only require one tiny additional heap allocation for the "pointer".

I looked at the implementation for Data and I think I see the problem.  Here's the relevant part:
public struct Data {
    @_versioned internal var _backing : _DataStorage
    @_versioned internal var _sliceRange: Range<Index>
}

In a nutshell, Foundation's Data has three values in it:  A pointer to the backing storage, and two integers representing the first and last valid byte offsets in that storage.  I presume this was done to make it very fast to return a sub-Data object:  you don't need to copy the backing storage, just create a new struct with different first/last offsets.
Your proposed versions all have a single pointer and no other data.  That basically removes two integers, cutting a 24-byte struct down to just 8 bytes.  That's significant for small messages such as yours, especially in the common case where there are no unknown fields.
In your first version (using NSMutableData), you could try making the _data field optional.  An optional class field uses no more space (in C terms, it simply allows the pointer to be NULL) but it's faster to check for data == nil than to check for data.isEmpty in the traverse method.

Would that really make a huge difference, though? Standard Data does a heap allocation under the hood anyway, and the DataReference approach would only require one tiny additional heap allocation for the "pointer". Even if you store the Data in _StorageClass, you'll still have the two heap allocations.

If you count the allocation within Data, then yes, this model would always be three allocs instead of two; I was just trying to focus on the what the code was directly do.
As far as cost of those little ones.  When we did some of the original benchmarking/profiling, the use of a single static instance for default storage and the static empty data and strings, came from some of the numbers @tbkka ran for benchmarks.
Since your original concern was the heap overhead when having lots of instances, it would seem like that logic could still be applied to the management of unknown fields.  All it takes is an example like yours where it mostly avoids the heap, but a server gets revised and a new field starts getting sent.  All clients that haven't been updated (since those tend to be at the mercy of end user habits to update their apps), would need the extra heap allocations for your thousands of objects, and performance would suddenly suffer.
Again, not saying it has to fold into the _StorageClass, just pointing out some of your initial concerns could just as equally apply to when unknownFields are needed.

Worth noting:  Your Atom message has < 16 primitive fields including the two nested ID messages.  So there is an argument for not using a StorageClass in this case for Atom; the overall structure (including nested messages) satisfies our criteria for a "small" message.
Unfortunately, I don't have time right now to dig into the possible code generator changes myself.

Worth noting: Your Atom message has < 16 primitive fields including the two nested ID messages. So there is an argument for not using a StorageClass in this case for Atom; the overall structure (including nested messages) satisfies our criteria for a "small" message.

The current check is also that any single message/group field causes storage.  This likely could be loosened to checking instead for transitive recursion through messages if we wanted.
Spin this out into #735, if we can nail down what we want the new logic to be over there, I should be able to make the changes pretty quickly.

@archagon -- Could you try your tests with the changes proposed in #900 ?  I'm curious how much of a difference it really makes.

Circling back to this -

In addition to the work in #900, #1046 better looks at the transitive cost of messages for when to use storage.  So that should have improved some things.
#1046 also refactored things so we should be better set up to take the real cost of each field type into account for when to use Storage. #735 has some additional thoughts on future revisions in that space.
Re Data specifically, there's been some pondering about breaking the dependency on Foundation.  If bytes fields got modeled as [UInt8] that would also help on the specific problem mentioned here with Data.


Compatibility with mobile devices

I understand this game is still progress so i offer no judgement or criticism.
I love you work and from a none coder perspective, you are doing an excellent job.
I downloaded your files and ran it on Love2D but i started in the cave and there wasn't the health bar on top.
I would like to see some button functions on screen. For Example, 4 buttons at the bottom right for different weapons and a transparent joystick on the bottom right.
Is there a way to also input the player name in the beginning?
I know your still in the process on development so it's not necessary yet, I would just like to know how it's done.
Lastly I would like if you can post a video on how to create enemies and how they spawn. Thanks for all you've done so far. Again, it was really great to learn coding at such a basic level.

I don't think Github is the right place to request tutorials, maybe the Discord is
requesting mobile compatibility right now doesn't make sense, but it makes for a discussion on how to implement it. have you tried buying a joystick or a keyboard to test it? if so, the controls could work as UI which translates into joystick/keyboard


Terraform >= 1.6.0 has a new unfree license and should have metadata updated to reflect this

Describe the bug
The licensing for versions of Terraform > 1.6.0 has been changed to a non-free but source available BSL license.
Notify maintainers
@Chili-Man
@babariviere
@kalbasit
@marsam
@maxeaubrey
@timstott
@zimbatm
@zowoq
@techknowlogick

terraform 1.5.6 still seems to have MPL 2.0
https://github.com/hashicorp/terraform/blob/v1.5.6/LICENSE
The license change happened in https://github.com/hashicorp/terraform/commit/b145fbcaadf0fa7d0e7040eac641d9aef2a26433 which is first tagged in v1.6.0-alpha20230816 and not yet in a stable release.

terraform 1.5.6 still seems to have MPL 2.0 https://github.com/hashicorp/terraform/blob/v1.5.6/LICENSE
The license change happened in hashicorp/terraform@b145fbc which is first tagged in v1.6.0-alpha20230816 and not yet in a stable release.

Updated to reflect this for accuracy.

Related issue: https://github.com/NixOS/nixpkgs/issues/253469

Addressed by https://github.com/NixOS/nixpkgs/pull/259101


Allow reclaiming invites sent with any token

Description
Currently only cUSD and maybe cEUR invites can be reclaimed.
With these changes, invites sent with any token will show up and be available for reclaiming.
Note that most of the LoC change were snapshot tests. Most of the files in the reclaim flow had only snapshot tests.
I updated the tests for the main screen ReclaimPaymentConfirmationScreen but just updated snapshots in the rest.

Other changes

Turned a few classes into functional components.

Tested
Manually and with unit tests.
How others should test

Invite someone using cREAL.
Reclaim the invite.

Related issues

Fixes #1859

Backwards compatibility
N/A

Hey @MuckT, We have verified the above issue in Latest Android Internal Release build V:1.26.0 and updated the status in test rails.
Test rail link:
Android 8: https://valoraapp.testrail.io/index.php?/tests/view/9817&group_by=cases:section_id&group_order=asc&group_id=35
Android 10: https://valoraapp.testrail.io/index.php?/tests/view/9943&group_by=cases:section_id&group_order=asc&group_id=35
Device: Samsung Galaxy A8+(8.0), Samsung Galaxy M40(10.0)
Cc: @gnardini
Thanks..!!

Hey @MuckT, We have verified the task using Latest Test flight Release build V1.26.0 and updated the status in Test rails. User is able to send invite using cREAL, reclaim the same amount & user receives the reclaimed amount back.
Test rail link:
iOS 13: https://valoraapp.testrail.io/index.php?/tests/view/10009&group_by=cases:section_id&group_order=asc&group_id=35
Device: iPhone 7(13.3)
CC: @gnardini
Thanks..!!


Minor prompt improvements

Add a comment in the readme about the copier destination directory argument.
Update copier.yaml to change some prompts to defaults and change some includes from true to false.

I believe our changes to the default values borked some tests. Will look into the correct fix :blush:

@pearsomark let me know if you need help fixing the tests (replacing the n parameterized plugin types in this test with ys for the other plugin types), or would like me to take over here. Otherwise I'll wait for your updates :blush:!

Thanks for the pointer to the tests. I will look at it in the next few days
and let you know if I need help.
Mark
On Tue, 26 Nov 2024 at 16:30, Draga Doncila Pop @.***>
wrote:

@pearsomark https://github.com/pearsomark let me know if you need help
fixing the tests (replacing the n parameterized plugin types in this test
https://github.com/napari/napari-plugin-template/blob/main/tests/test_create_template.py#L101-L102
with ys for the other plugin types), or would like me to take over here.
Otherwise I'll wait for your updates 😊!
—
Reply to this email directly, view it on GitHub
https://github.com/napari/napari-plugin-template/pull/19#issuecomment-2499695242,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABOMTKMDUB5H4JZEKP2DNWL2CQBP5AVCNFSM6AAAAABSND2TLGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDIOJZGY4TKMRUGI
.
You are receiving this because you were mentioned.Message ID:
@.***>


⚠ deces.matchid.io search API has degraded performance

In 5abc1cf, deces.matchid.io search API (https://deces.matchid.io/deces/api/v1/search?q=pompidou) experienced degraded performance:

HTTP code: 200
Response time: 3398 ms

Resolved: deces.matchid.io search API performance has improved in 7708dd7 after 1 hour, 9 minutes.


[tests-only] Bump core commit id for tests

Includes various new TUS upload tests in the API test suite from oC10 core.
Matching PR in owncloud/core is https://github.com/owncloud/ocis/pull/1107

@labkode @ishank011  drone CI is working nicely. The first commit here had "unexpected failures" for the new TUS upload tests to non-existent folders on owncloud storage. Then I added them to the expected-failures file and CI passes.


Question: response header forwarding

Hi @jensneuse! @StevenACoffman reached out to you at some point and asked about header forwarding. He noted that you said "We can already forward headers. It's just not easy to find." Does this include response header forwarding? I see the WithAdditionalHttpHeaders execution option for setting data source request headers. I'm not immediately seeing a way to access data source responses (other than via a custom http transport / RoundTripper on the federation http client and stashing some info on the request context).

If you set the header on the Request, it can be used in input templates using this syntax:
{{ .request.headers.Authorization }}
set header:
https://github.com/jensneuse/graphql-go-tools/blob/71ca10e362dbf4f94c6c7a6f20027ecd0ab3a3da/pkg/graphql/request.go#L67
headers planner:
https://github.com/jensneuse/graphql-go-tools/blob/71ca10e362dbf4f94c6c7a6f20027ecd0ab3a3da/pkg/engine/plan/plan.go#L782
Returning Headers from an upstream to the client is not supported.
Could you elaborate on the use case?

Returning Headers from an upstream to the client is not supported.

Thanks for confirming.
We have mutations that set cookies (and a few other headers) that need to be forwarded back to the client.

Returning Headers from an upstream to the client is not supported.

This is what we ended up doing. We stashed header forwarding state on the context and used a custom HTTP client to do the forwarding. The code looks something like this:
////////// Engine configuration...
engineConfigFactory := graphql.NewFederationEngineConfigFactory(
    datasources,
    graphql.WithFederationHttpClient(NewHTTPClientWithHeaderForwardingTransport()),
)

////////// Custom HTTP client transport...
func (t *httpHeaderForwardingTransport) RoundTrip(req *http.Request) (*http.Response, error) {
    headerForwarding := getHeaderForwarding(req.Context())  // Get header forwarding state set with WithHeaderForwarding
    headerForwarding.ForwardRequestHeaders(req)

    resp, err := t.wrappedTransport.RoundTrip(req)
    if err != nil {
        return nil, err
    }

    headerForwarding.CopyResponseHeaders(resp)
    return resp, nil
}

////////// In the handler for our GraphQL endpoint...
headerForwarding := NewHTTPHeaderForwarder(r)
ctx = WithHeaderForwarding(ctx, headerForwarding)

// ...get engine, execute request...

headerForwarding.ForwardResponseHeaders(w)

This would be a bit simpler if engine.Execute had hooks that exposed the raw upstream requests and responses.


[SR-4685] StarRocksColumn convert to Arrow Array

Changes
Add vectorized method (send_chunk) for MemoryScratchSink to convert StarRocks in-memory column into Arrow array.

 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?


rubocop:disable end line is incorrect

I added # rubocop:disable Method/LineLength above a method. All the code below that method (including that method) had the rule disabled. I expected only that method to have the rule disabled. Is this expected behavior?
class Klass
  # rubocop:disable Metrics/LineLength
  def method
    to_s
  end

  def method2
    'This line is too long. This line is too long. This line is too long. This line is too long.'
  end
end

If you uncomment above ## rubocop:disable Method/LineLength, the method2 method below doesn't report the error anymore.
Expected behavior
Rubocop only disables the rule in the method above which the rubocop:disable comment is placed.
Actual behavior
All the code in the file, below the rubocop:disable, has the rule disabled.
RuboCop version
v0.46.0
$ rubocop -V
0.46.0 (using Parser <IP_ADDRESS>, running on ruby 2.3.3 x86_64-darwin16)

Is this expected behavior?

Yes. The cop is disabled until it's enabled again with rubocop:enabled, or until the end of the file.
http://rubocop.readthedocs.io/en/latest/configuration/#disabling-cops-within-source-code


Update @asyncapi/generator to 1.9.11

Is your feature request related to a problem? Please describe.
It resolved a critical issue with fs.exists. exists is unstable and is not compatible with with some libraries where an async hook is used.
Describe the solution you'd like
Update to https://github.com/asyncapi/generator/releases/tag/v1.9.11
I don't expect any side effects since the exists is wrapped and the logic is same.

thanks for heads up, updated and published a new version


GNU test suite reporting seq-long-double is now failing when it was previously passing

You can see this on a recent merge to main of an unrelated pull request: https://github.com/uutils/coreutils/runs/4956826651?check_suite_focus=true . The relevant section of the log is:
2022-01-26T20:55:55.0151743Z FAIL: tests/misc/seq-long-double
2022-01-26T20:55:55.0151955Z ================================
2022-01-26T20:55:55.0152082Z
2022-01-26T20:55:55.0152361Z --- exp	2022-01-26 20:01:36.666214564 +0000
2022-01-26T20:55:55.0152758Z +++ out	2022-01-26 20:01:36.518208968 +0000
2022-01-26T20:55:55.0152994Z @@ -1,2 +1 @@
2022-01-26T20:55:55.0153159Z<PHONE_NUMBER>854775807
2022-01-26T20:55:55.0153384Z -9223372036854775808
2022-01-26T20:55:55.0153674Z FAIL tests/misc/seq-long-double.sh (exit status: 1)

Another recent build saw this error: https://github.com/uutils/coreutils/runs/5174905715?check_suite_focus=true

Closing this ticket because seq-long-double is no longer failing.


False positive in unintended_html_in_doc_comment lint

The lint fires on references to generic classes in square braces.
/// [List<int>]

In dart doc this generates valid HTML that links to the List class. The lint should allow this (even if `List<int>` with backticks may be better style for these cases).

This is  tricky because [List<int>] is special DartDoc syntax, not CommonMark syntax.
The CommonMark interpretation is to treat the [ and ] literally, unless you have a
[List<int>]: linkTarget

declaration somewhere in the file. Then it is a shorthand link. (Which means parsing is not context free.)
In either case the <int> will be considered an HTML tag when rendered.
If DartDoc replaces remaining [List<int>]s by something else, then ... we probably need to figure out which criteria are used for that, and which approach is used to find the tags in the DartDoc code.
(Does it do Commonmark parsing first, then look for remaining [...]s which were  not parsed as a link? if so, is the contents of [...] already markdown parsed too? Has it removed the unknown HTML tag <int> like it would remove <int> outside of a [...]? Is that why it works? Does [List<div>] work the same?)
Doesn't feel like a slam-dunk, but we probably can recognize \[[^[]]*](?![([])` to ignore the contents of the `[...]`. It just won't find
Is [foo<upper>2</upper>] valid?

[foo<upper>2</upper>]: https://example.com

where you intended to write <sup> instead of <upper>.

I found an example where this might be the best way to write it.
https://github.com/dart-lang/tools/blob/d563c38c7cfb03bbf5d1f9360b49c36ba45b97ef/pkgs/graphs/lib/src/topological_sort.dart#L38
Here its useful to link to the exception since it's novel, and it's useful to include the detail of the generic matching the generic on the method call. I can't find a way like prefer to phrase it where these aren't the same word.

Closing in favor of https://github.com/dart-lang/linter/issues/5065


Bug: Do not render at monitor refresh rate

At the moment, SDL requests a frame each time it moves through its event loop, but the framerate is arbitrary. Instead, SDL events should clock a frame counter with a timing delta, which decides how often to advance the emulated state to the next frame during runtime.

This is resolved! SDL now syncs to audio, and should reliably emulate at NTSC speeds no matter the refresh rate of the monitor.


NerdTreeTabsToggle not working

Hi,
I installed vim-nerdtree-tabs via vundle and I see it in my list of installed bundles but when I try to use it, e.g. NerdTreeTabsToggle, I get the message that it is not an editor command.
BTW I'm using vim inside the Mac Terminal.app.

Stefan

@stefanfrede can you tell wich version of vim/python are you using? I've the same problem on Ubuntu Zesty

Sorry, I stopped using the plugin a while ago.


Remove the OnExit settings in a manifest

The OnExit setting in a manifest allows the runtime to decide what to do when a container exits for whatever reason. A static coding of things like "restart it twice" is not something helpful here since this should be managed via a component that keeps track what should run and what should be done if something goes wrong.

Fixed in #70


GO structural problems with reproduction and sorocarp development etc.

In Dicty, reproduction ( 'asexual reproduction', cells feeding and dividing) is strictly separated from development. Dicty sorocarp development is a pure strategy for survival of adverse conditions, and cell division stops as soon as cells starve and then start the developmental program.
Reproduction is defined as: The biological process in which new individuals are produced by either a single cell or a group of cells, in the absence of any sexual process.
Thus, the is_a link from 'sorocarp development'  via some other developmental processes to 'developmental process involved in reproduction' is wrong. Also, I think the direct part_of 'asexual reproduction' is problematic. This concerns all developmental terms for Dicty and includes the more widely used  'asexual sporulation' , also a direct child of reproduction.
Maybe this needs updating when a lot of that multi- and single cell organismal stuff gets cleaned up.

Hi Petra,
The definition you give: "The biological process in which new individuals are produced by either a single cell or a group of cells, in the absence of any sexual process. " is for asexual reproduction, which is a child of "reproduction" (def: "The production of new individuals that contain some portion of genetic material inherited from one or more parent organisms.", which covers both sexual and asexual reproduction.
It seems to me dicty spore formation is correctly placed under asexual reproduction.
Pascale

HI Pascale, yeah sorry for pasting the def from the wrong window, but still, Dicty spore formation is not reproductive.  "The production of new individuals that contain some portion of genetic material inherited from one or more parent organisms." As the term suggests, it's "the production of new individuals" that's the problem.
As you know, Dicty only reproduces as vegetative cells. No single new cell is formed during development (once they starve), they only differentiate. I don't actually know if any other simple organisms have the same strict separation between cell division and cell differentiation (development) as in Dicty. But I think it's misleading and incorrect for Dicty to have any of the development under reproduction. The whole discussion by Diane about obligate and facultative multicellularity reminded me that I saw this before but didn't go so much into it.
Thanks for responding, you are the right GO top person to discuss this with;-)
Petra

Ah ! Sorry - I was focused on the sexual versus asexual !
You're right, this is more like bacterial/yeast encapsulation.
Pascale

@pfey03 - if you had to start from scratch, where would you place 'sorocarp development' and what would you remove?
Current parentage:
is_a: GO:0009267 ! cellular response to starvation
is_a: GO:0030582 ! fruiting body development
is_a: GO:0044702 ! single organism reproductive process
is_a: GO:0044767 ! single-organism developmental process
relationship: part_of GO:0019954 ! asexual reproduction

The parentage side
sorocarp development (sensu Dicty) is_a cellular response to starvation = TRUE
sorocarp development (sensu Dicty) is_a fruiting body development = TRUE
sorocarp development (sensu Dicty) is_a single organism reproductive process = FALSE
sorocarp development (sensu Dicty) part_of asexual reproduction = FALSE
The term 'sporocarp development involved in sexual reproduction' used for fungi is a child of the sensu Dicty sorocarp development. I guess those links all need to be severed?
I'll look more into this next week regarding starting from scratch, thanks Tanya for taking this on. I also have a longstanding problem with the taxon restriction of 'social behaviour'  (issue 12357) that reaches into the multicellularity discussion. Hope to solve this all by fixing these things and then creating a new term 'social cooperation' or such. Continued on Monday..

The problem is with the parent term GO:0030582 fruiting body development, and up. This is what all Dicty people call the Dicty process, so we cannot easily sever the 'sorocarp development is_a fruiting body development link, or we need to create a more taxon specific terms, which I attempt.
The next parent up, GO:0075259 spore-bearing organ development is still true as the def allows it, but I wouldn't care for the term, we would not use it because 'organ' is typically not used for Dicty. Also, the parent of that term  GO:0048513 animal organ development seems NOT true for Dicty, if we agree that it is not an animal and I'm surprised no check caught that so far.
Finally the link from the spore-bearing organ development to reproduction is the core problem, therefore, we cut the link from Dicty development to that term we wouldn't use, see above.
Here I try to do a new addition of GO:0030587 sorocarp development (and all it's children). If I forget some things, forgive me and we work it in from here.
GO:0030587 ! sorocarp development (and it's children)

is_a: GO:0009267 ! cellular response to starvation
is_a NEW: protozoan fruiting body development

is_a: GO:0048731 ! system development

is_a: GO:0007275 ! multicellular organism development

is_a: GO:0044767 ! single-organism developmental process **

The new term 'protozoan fruiting body development' could be a direct child to 'single-organism developmental process'
Def of new term: A protozoan process whose specific outcome is the progression of the fruiting body over time, from its formation to the mature structure. A fruiting body is a multicellular structure that contains spores.
**The question if the cells that make up the fruiting body to survive adverse conditions are still each an organism (they cannot reverse at this point), or if the fruiting body is then a single organism. This touches on the other discussions i have and is a bit philosophical.
Let me know if there are questions. I want to also solve the 'social behaviour problem, and after this cleanup might be able to add a new term 'social cooperation' which could be part_of sorocarp development as that other issue doesn't go anywhere. Need then to figure out parentage for such a new term. Sorry for meandering..
Thanks!
Petra

The parentage between 'spore-bearing organ development' and 'animal organ development' has been removed week or so ago, though it looks like this hasn't filtered through to QuickGO yet.
If I understand you correctly, @pfey03, you mean to say that 'sorocarp development' is correctly placed as an is_a child of a term called 'fruiting body development' but the Dicty community and the yeast/fungal community use the word 'fruiting body' to mean different things.  Or perhaps the distinction is that in Dicty, a fruiting body is NOT a reproductive structure but in fungi, a fruiting body IS a reproductive structure.  It may be that we need two terms, then, one for
'reproductive fruiting body development' (existing term)
'non-reproductive fruiting body development' (new term) - better term name suggestions welcome

EBI had this catastrophic breakdown as Tony wrote today about Protein2GO and I guess QuickGo is affected like all their services. Hope it's all back soon.

Or perhaps the distinction is that in Dicty, a fruiting body is NOT a reproductive structure but in fungi, a fruiting body IS a reproductive structure.

YES
'non-reproductive fruiting body development' (new term) seems ok, we use the child 'sorocarp development' for annotations anyway.  Maybe you could add, as broad synonym, 'social fruiting body development' (as survival strategy, they have social behavior that leads to the other debate...).
If you are interested:
http://dictybase.org/Multimedia/DdLifeCycles/index.html
Thanks Tanya!

Noting from above:  "The term 'sporocarp development involved in sexual reproduction' used for fungi is a child of the sensu Dicty sorocarp development. I guess those links all need to be severed?"  This link is not present anymore.  Must have been removed.
Ok.  What if we edit the ontology this way:

[ ] rename 'fruiting body development' as 'reproductive fruiting body development',     GO:0030582
[ ] create new term 'non-reproductive fruiting body development' as a direct child of 'anatomical structure development'  and 'multicellular organism development'
[ ] move 'sorocarp development' and child terms from 'reproductive fruiting body development' to under this new term, no more link to reproductive process

Sounds good for this part - Thanks Tanya!
Noticed also we cannot use anything under 'asexual sporulation' as this goes directly to 'asexual reproduction'. Need to fix those few annotations as we need to annotate to parent 'sporulation resulting in formation of a cellular spore'. Luckily most are correct.
@rjdodson make sure to pay attention to that

@pfey03 : for your comment on 'asexual sporulation', that sounds very much like an annotation recommendation, not one for ontology change.  If I implement my suggested edits, can I close this issue?

Yes, Tanya, now that P2GO is back I can make these fixes right away. Thanks for taking care of this!

I haven't done the editing yet!

Added:
[Term]
+id: GO:0090702
+name: non-reproductive fruiting body development
+namespace: biological_process
+def: "The process whose specific outcome is the progression of a non-reproductive fruiting body over time, from its formation to the mature structure. A fruiting body is a multicellular structure that contains spores. An example of such a process is found in Dictyostelium discoideum." [GOC:pf]
+is_a: GO:0007275 ! multicellular organism development
+is_a: GO:0048856 ! anatomical structure development
+created_by: tanyaberardini
+creation_date: 2016-09-09T16:14:21Z
and made edits to positioning of 'sorocarp development' and children to move to new places and remove links to 'reproductive' parents.


Disconnection issue

Hi there,
I'm getting an issue where auto-reconnecting is not working. If I use my app for a bit, then background it (for a few minutes perhaps), and then return, I sometimes get this in my log (this is from logging within the changeConnectionState and debugLog delegate methods)....
Websocket is disconnected. Error: The operation couldn’t be completed. Socket is not connected
pusher connection changes connected to reconnecting
pusher debugLog: [PUSHER DEBUG] Network reachable so will setup reconnect attempt
pusher debugLog: [PUSHER DEBUG] Waiting 0.0 seconds before attempting to reconnect (attempt 1 of 6)
2017-03-27 19:47:26.099311 Vibes[6956:1522519] [] nw_socket_get_input_frames recvmsg(fd 4, 1024 bytes): [57] Socket is not connected
2017-03-27 19:47:26.099490 Vibes[6956:1522519] [] nw_socket_get_input_frames recvmsg(fd 11, 1024 bytes): [57] Socket is not connected
2017-03-27 19:47:26.099569 Vibes[6956:1522519] [] nw_socket_get_input_frames recvmsg(fd 19, 1024 bytes): [57] Socket is not connected
2017-03-27 19:47:26.099665 Vibes[6956:1522519] [] nw_socket_get_input_frames recvmsg(fd 22, 1024 bytes): [57] Socket is not connected
2017-03-27 19:47:26.099722 Vibes[6956:1522519] [] nw_socket_get_input_frames recvmsg(fd 4, 1024 bytes): [57] Socket is not connected
2017-03-27 19:47:26.115581 Vibes[6956:1522519] [] nw_endpoint_handler_add_write_request [26.1 2600:9000:201e:b200:15:8b9b:bf00:21.443 failed socket-flow (satisfied)] cannot accept write requests
2017-03-27 19:47:26.123091 Vibes[6956:1522522] [] __tcp_connection_write_eof_block_invoke Write close callback received error: [22] Invalid argument
2017-03-27 19:47:26.125074 Vibes[6956:1522519] [] nw_endpoint_handler_add_write_request [27.1 2400:cb00:2048:1::6810:d0a5.443 failed socket-flow (satisfied)] cannot accept write requests
2017-03-27 19:47:26.125315 Vibes[6956:1522522] [] __tcp_connection_write_eof_block_invoke Write close callback received error: [22] Invalid argument
2017-03-27 19:47:26.126280 Vibes[6956:1522519] [] nw_endpoint_handler_add_write_request [30.1 <IP_ADDRESS>:443 failed socket-flow (satisfied)] cannot accept write requests
2017-03-27 19:47:26.127003 Vibes[6956:1522520] [] __tcp_connection_write_eof_block_invoke Write close callback received error: [22] Invalid argument

From that point on, my connection is pwned and my app can no longer receive messages from Pusher. Any idea what could be causing this?
Thanks!
Alexandre

I'm seeing the same issue. My app gets stuck in the state of reconnectingWhenNetworkBecomesReachable when returning from the background. I believe I've seen it when my network changes as well. At that point I can't re-connect to Pusher. The user must force close the application.

First off, sorry for being slow to comment - I've been away for a couple of weeks.
Thanks to both of you for the information though. Do either of you have projects that can be shared (or just a cut down version of a project) that reproduces the error?
On that note, is the error constantly occurring when attempting to reconnect or is it sporadic?
I can try and recreate this locally to see if I can see what the issue is if neither of you are able to provide a project.
Let me know - thanks!

@hamchapman Unfortunately I do not have a project I can share. For me it seems sporadic, most of the time it seems to function as expected. Usually I come across it by accident while debugging.
The last time I was able to reproduce it was on the simulator. I opened my laptop on a public wifi network that has a splash page. I accepted the terms on the splash page and my computer successfully connected to the network. All network functions in my app worked but Pusher was stuck in the reconnectingWhenNetworkBecomesReachable state.
I then tried calling pusher.disconnect() and pusher.connect(). After calling pusher.connect() it still remained in that state.
I know that isn't a great repro case but its the most info I've been able to get because I had the debugger connected.
Our app is used a lot in higher ed/public sectoer so I would imagine that the users who are reporting this have similar conditions whether its needing VPN or Wifi Splash pages.
Hopefully @alexandreroche can shine some more light on this. Unfortunately, once it happens the functionality reliant on pusher becomes unusable (which for us is a lot).

We are still having this issue occur frequently. After going through the source I see that once the reconnectMaxAttempts are hit ( which defaults to 6 ), the connection will no longer try to ever re-connect.
https://github.com/pusher/pusher-websocket-swift/blob/6a542bd68a76a7d1c7620bb7b8dcce6eb0591c80/Source/PusherWebsocketDelegate.swift#L59
I believe this is the exact issue we are running into. For whatever reason their network conditions are such that it retries 6 times and then they must kill the app for the connection to try again. I don't see a good reason to ever stop retrying, even if at a minimum interval. In addition, even calling channel.disconnect() on the channel does not reset the reconnect counter.

See this part of the readme for information about controller reconnection behaviour: https://github.com/pusher/pusher-websocket-swift#reconnection
In short:

public var reconnectAttemptsMax: Int? = 6 - if you set this to nil then there is no maximum number of reconnect attempts and so attempts will continue to be made with an exponential backoff (based on number of attempts)

and

public var maxReconnectGapInSeconds: Double? = nil - if you want to set a maximum length of time (in seconds) between reconnect attempts then set this property appropriately

@hamchapman that two property are optional old data type and did not bridge to objective-C.

@rudysuharyadi I'm not sure I understand what you mean. Why would they not bridge to Objective-C?

@hamchapman because objective-C cannot represent nil value for old data type, so they not bridge those property to objective-C. If you use pusher-websocket-swift library on objective-C, you dont have access to those property even though its public property already.

@rudysuharyadi thanks for the explanation - good to know! I've merged #163 which makes OCReconnectAttemptsMax and OCMaxReconnectGapInSeconds available on PusherConnection instances to let Objective-C users get and set the reconnectAttemptsMax and maxReconnectGapInSeconds properties.
I'll be releasing a new version later today that contains this addition.


Butterknife orientation change

If you are using butterknife and you want to specify two different layouts, portrait and landscape with different views, how do you do that? Cuz you don't want to try to bind a view that does not exist.

Use @Nullable on the binding or use two different objects for landscape/portrait.


Support multi-rack/multiregion constraints

Provide the ability to configure confluent.placement.constraints instead of just the number of replicas as described here:
https://docs.confluent.io/current/multi-dc-deployments/multi-region.html
The main use case for us is to be able to set up observers in a different data centre for disaster recovery purposes.

Hi @almazik,
This would be interesting to implement. I'd have to understand how Confluent's kafka-topics modification with the --replica-placement flag works. Under the hood, we're just using the basic Apache Kafka AdminClient to create and manage topics.
Since it appears to just be a topic configuration set to a JSON object, you may be able to do it with our tool already. I'll have to do some investigation and see how it works. 😄


Echo-test for minimal installation in CI.

Adds a new job to circleci, which does the following:

installs minimal istio
runs the echo integration test

I give my consent.

I give my consent.

Its not clear to me why we want this. We already have a test that runs the echo test (and others). Is the difference here it is with the minimal install?

Minimal test is useful because it runs a single small sanity test - without a lot of deps. So we can fail faster and save the time to run the entire suite, and it should work on all environments.
We need to find the proper test to run - make sure it works in the minimal profile - but I think  the idea is good.

I signed it!

Its not clear to me why we want this. We already have a test that runs the echo test (and others). Is the difference here it is with the minimal install?

Exactly. The naming is a bit confusing, we will try to improve. The idea is NOT to have a smoke test to fail fast, but to have some test with the minimal (base) installation.

Minimal test is useful because it runs a single small sanity test - without a lot of deps. So we can fail faster and save the time to run the entire suite, and it should work on all environments.

@costinm Actually, the idea here is  a different one. Like @howardjohn assumed, this should verify the minimal (base) installation with some test.

I give my consent.
I signed it

How to make the cla/google bot happy? It doesn't really like pair programming, does it?
@howardjohn Any ideas what we could do better regarding the cla bot? We all have signed the cla.


Make txeip4844 to mandatory

Describe the feature
Per https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md#blob-transaction:

The field to deviates slightly from the semantics with the exception that it MUST NOT be nil and therefore must always represent a 20-byte address. This means that blob transactions cannot have the form of a create transaction.

ref https://github.com/alloy-rs/alloy/pull/355
ref https://github.com/ethereum/go-ethereum/blob/ba2dd9385c2a51134e520083dc732787a813b107/core/types/tx_blob.go#L38-L38
compared to
https://github.com/ethereum/go-ethereum/blob/ba2dd9385c2a51134e520083dc732787a813b107/core/types/tx_dynamic_fee.go#L34-L34
TODO
change:
https://github.com/paradigmxyz/reth/blob/0ca853fbb00e837030663b470cd5fa86395efa5c/crates/primitives/src/transaction/eip4844.rs#L57-L57
to Address
cc @klkvr
Additional context
No response

@joshieDo could you please check if we can easily do this without breaking Compact encoding or if we need a tmp helper type?


"Could not connect to the reCAPTCHA service" even though my internet is working

When I try logging in I get this error:

even though my internet is working and reCAPTCHA does too:

is this a problem with my ISP, bandagedbd, or a plugin?

This is a dead repo and should be moved to https://github.com/rauenzi/betterdiscordapp
Although you should probably verify that this is in fact a BandagedBD problem.


How to connec the ME Bridge?

Descripe
I want to access my ae2 system through the ME Bridge, but the ae2 cables won't connect to the bridge? what am I missing? I think this should be added to the documentation (happy to do it)
Steps to reproduce
place an ME Bridge next to any cable from ae2
Direct URL
https://docs.srendi.de/1.18/peripherals/me_bridge/
Screenshots or Videos
No response

Hey
Could you tell me the version you use?
If you want to improve the docs, you can do it. Some documentation help is always welcome
But if you need help with the mod, use the discussions feature on github or join us on discord

Hey, I don't remember which version it was. But after restarting my game (without updating) and breaking the block and placing it down a couple of times. It worked. Then I updated and it was working fine.
And yeah I might make some PR for the docs after I get some more free time. I'd love to help

Hey, I don't remember which version it was. But after restarting my game (without updating) and breaking the block and placing it down a couple of times. It worked. Then I updated and it was working fine.

Sweet to hear
If you have more issues with the mod, you can report them here
Or ask for help on our discord


feature request: support for 2205A

I'd like to use ngscopeclient with my Pico 2205A.
Looks like the scope needs to use the old ps2000 driver which has a different API compared to the 3000A and 6000A series scopes.
I'm working on implementing this but I'll need to write a separate version of the bridge to support this. Is this a good approach or am I barking up the wrong tree?

Yes, that is correct. You'll probably also need to add some logic to the PicoOscilloscope class in ngscopeclient.
It's annoying but this is really the only way, because Pico doesn't have a single SDK for all of their scopes. They have separate SDKs, with similarly named and configured functions, for each product line and you really just have to work around that.

Hello, I'm quite interested in the support of this hardware.
Is there any news or public PoC?

I had a go at implementing this using the older API but it needs almost a complete rewrite compared to the existing Pico driver.
I haven't had time to implement that unfortunately.


tiledbcloud hard dependency?

Would it be possible to remove the hard dependency on tiledb-cloud in this package?
We are using this for the CELLxGENE Census vector search, but we don't use tiled-cloud. However I'm starting to see warnings about some packages that tiled-cloud pins.
Thanks!

Hi @ivirshup, this looks like a packaging adjustment for the pypi package. We can look at the adjustment here. The TileDB-Cloud-Py package is defaulted for convenience to offer the distributed ingestion and querying. We'll look at breaking out the dependencies so there is a more minimum option for inclusion with the cell census for the next release.


[luigi.contrib.external_program.ExternalProgramTask] logs_output_pattern_to_url provided

Description
Method logs_output_pattern_to_url added to ExternalProgramTask
Motivation and Context
Sometimes our external tasks do not contain url in output logs but one easily can be restored from output
For example if we run Tez Task which outputs YARN application id only
we can restore tracking url by appending a resource manager address + endpoint
That could be done by using logs_output_pattern_to_url
Have you tested this? If so, how?
I've provided unit tests for that

@honnix  @Tarrasch @dlstadther  could you please review this PR?

LGTM now.

@honnix
okay, can we go on with that?

@drowoseque Could you please take a look why this broke master CI? Thanks.

I see similar failures in https://travis-ci.org/spotify/luigi/jobs/618083277 but in next build this test was okay https://travis-ci.org/spotify/luigi/builds/619552243
It seems that worker_test.DynamicDependenciesWithMultipleWorkersTes.test_dynamic_dependenciest is flaky
======================================================================
FAIL: test_dynamic_dependencies (worker_test.DynamicDependenciesWithMultipleWorkersTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/travis/build/spotify/luigi/test/worker_test.py", line 1066, in test_dynamic_dependencies
    self.assertTrue(time.time() - t0 < self.timeout)
AssertionError: False is not true

@honnix could you please rerun ci ?


Signals and Other Cleanup

This restores our old support for signals now that delegates work as expected.
This is technically done, but needs some further testing.
Depends on #322

TODO (before merge):

[x] Value.Extract must work for arbitrary records
[x] Fix bitfield size (long vs uint vs int?)
[ ] Fix issue where DrawingArea occasionally stops drawing on low memory (GC?)
[X] Handle unions (e.g. GdkEvent / GdkEventKey)

[X] Special case Gdk.Event ~/ Gst.MiniObject / etc~ (MiniObject is for another PR)
(funnily enough, Gst.MiniObject is the example of what not to do when writing bindable APIs)

[X] We need a solution for cross-platform cairo (handwritten bindings)
[X] ~Tests~ (Next PR: Unit Test all of GLib/GObject)
[x] Port a subset of text editor as a sample project

We need to check the documentation generation as the old union generation behavior is restored which could break the documentation again.

Had this error when pressing a button after the drawing area stopped drawing:

(dotnet.exe:17948): GLib-GObject-CRITICAL **: 18:25:20.068: g_object_remove_toggle_ref: assertion 'G_IS_OBJECT (object)' failed

So maybe it isn't signal related and in fact a sign some underlying object is being freed.

To fix the error it looks like in the class "PrimitiveValueType.cs" the order of lines 15+16 must be swaped: https://github.com/gircore/gir.core/blob/cde3d7b3f90fdbc41c7061c57b6fbdf607eebb4d/GirLoader/Output/Model/PrimitiveValueType.cs#L15
Afterwards there are some follow up errors which must probably be resolved.


Roll Engine from 5355f270ba99 to 15768e5af497 (1 revision)

https://github.com/flutter/engine/compare/5355f270ba99...15768e5af497
2020-10-16<EMAIL_ADDRESS>Roll Skia from f1b53836b705 to db0288d747ae (7 revisions) (flutter/engine#21910)
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-engine-flutter-autoroll
Please CC<EMAIL_ADDRESS>on the revert to ensure that a human
is aware of the problem.
To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md

Commit queue failed; closing this roll.


Who is the 2021/Q2 stable maintainer?

It seems that we don't have any person who will be involved in stable maintaining. Could we consider it?

Could we consider it?

Are you volunteering? :)

@mattklein123 Of course I can do that. But @lizan said that we should elect non-Tetrate stable maintainer previously. If he agrees to it, I can continue to work with them.

Realistically I think it will need to be someone from the Istio community so I will let you all sort it out and discuss. cc @lizan @htuch

Yeah we should diverse who is maintaining stable releases. This links to the Istio Networking WG discussion this morning. cc @dmitri-d any interest from Red Hat side? cc @duderino.

@lizan: sure thing.

Sounds like @dmitri-d is it :)

Is there any process that I need to follow?


Add/Update connection dimension

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
Describe the solution you'd like
A clear and concise description of what you want to happen.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.

Refer https://github.com/turbot/steampipe-mod-aws-thrifty/pull/120