Add support for callbacks on config change

What does this pull request do?
Adds the ability to specify one or more "callback" functions which will be called when a _ConfigValue is changed.
Related issues
closes #908

:broken_heart: Tests Failed

Expand to view the summary

Build stats

Build Cause: [Pull request #912 opened]

Start Time: 2020-09-01T21:36:45.852+0000

Duration: 19 min 7 sec

Test stats :test_tube:

Test
Results

Failed
3954

Passed
2400

Skipped
707

Total
7061

Test errors
Expand to view the tests failures

Name: Initializing / Test / Python-python-3.7-3 / (?) –

Age: 1
Duration: 0
Error Details: collection failure

Name: Initializing / Test / Python-python-3.6-0 / (?) –

Age: 1
Duration: 0
Error Details: collection failure

Name: Initializing / Test / Python-python-3.8-2 / (?) –

Age: 1
Duration: 0
Error Details: collection failure

Name: Initializing / Test / Python-python-3.9-rc-0 / (?) –

Age: 1
Duration: 0
Error Details: collection failure

Name: Initializing / Test / Python-python-2.7-2 / (?) –

Age: 1
Duration: 0
Error Details: collection failure

Name: Initializing / Test / Python-python-3.8-3 / (?) –

Age: 1
Duration: 0
Error Details: collection failure

Name: Initializing / Test / Python-python-3.7-4 / (?) –

Age: 1
Duration: 0
Error Details: collection failure

Name: Initializing / Test / Python-python-3.6-2 / (?) –

Age: 1
Duration: 0
Error Details: collection failure

Name: Initializing / Test / Python-python-3.6-3 / (?) –

Age: 1
Duration: 0
Error Details: collection failure

Name: Initializing / Test / Python-python-3.6-4 / (?) –

Age: 1
Duration: 0
Error Details: collection failure

Name: Initializing / Test / Python-python-3.9-rc-2 / (?) –

Age: 1
Duration: 0
Error Details: collection failure

Name: Initializing / Test / Python-python-3.7-2 / (?) –

Age: 1
Duration: 0
Error Details: collection failure

Name: Initializing / Test / Python-python-3.8-4 / (?) –

Age: 1
Duration: 0
Error Details: collection failure

Name: Initializing / Test / Python-python-3.9-rc-4 / (?) –

Age: 1
Duration: 0
Error Details: collection failure

Name: Initializing / Test / Python-python-3.8-0 / (?) –

Age: 1
Duration: 0
Error Details: collection failure

Name: Initializing / Test / Python-python-3.5-3 / (?) –

Age: 1
Duration: 0
Error Details: collection failure

Name: Initializing / Test / Python-python-3.5-4 / (?) –

Age: 1
Duration: 0
Error Details: collection failure

Name: Initializing / Test / Python-python-3.5-2 / (?) –

Age: 1
Duration: 0
Error Details: collection failure

Name: Initializing / Test / Python-python-3.9-rc-3 / (?) –

Age: 1
Duration: 0
Error Details: collection failure

Name: Initializing / Test / Python-pypy-2-2 / (?) –

Age: 1
Duration: 0
Error Details: collection failure

Name: Initializing / Test / Python-pypy-3-2 / (?) –

Age: 1
Duration: 0
Error Details: collection failure

Name: Initializing / Test / Python-pypy-3-4 / (?) –

Age: 1
Duration: 0
Error Details: collection failure

Name: Initializing / Test / Python-pypy-3-3 / (?) –

Age: 1
Duration: 0
Error Details: collection failure

Name: Initializing / Test / Python-pypy-3-0 / (?) –

Age: 1
Duration: 0
Error Details: collection failure

Name: Initializing / Test / windows-3.5-none / test_a_configured_api_key_is_sent_in_the_authorization_header – tests.bdd.api_key_tests

Age: 1
Duration: 0.031
Error Details: KeyError: 'METRICS_INTERVAL'

Name: Initializing / Test / windows-3.5-none / test_a_configured_api_key_takes_precedence_over_a_secret_token – tests.bdd.api_key_tests

Age: 1
Duration: 0.006
Error Details: KeyError: 'METRICS_INTERVAL'

Name: Initializing / Test / windows-3.5-none / test_a_configured_secret_token_is_sent_if_no_api_key_is_configured – tests.bdd.api_key_tests

Age: 1
Duration: 0.004
Error Details: KeyError: 'METRICS_INTERVAL'

Name: Initializing / Test / windows-3.6-none / test_a_configured_api_key_is_sent_in_the_authorization_header – tests.bdd.api_key_tests

Age: 1
Duration: 0.03
Error Details: KeyError: 'SERVICE_NAME'

Name: Initializing / Test / windows-3.6-none / test_a_configured_api_key_takes_precedence_over_a_secret_token – tests.bdd.api_key_tests

Age: 1
Duration: 0.006
Error Details: KeyError: 'SERVICE_NAME'

Name: Initializing / Test / windows-3.6-none / test_a_configured_secret_token_is_sent_if_no_api_key_is_configured – tests.bdd.api_key_tests

Age: 1
Duration: 0.008
Error Details: KeyError: 'SERVICE_NAME'

Name: Initializing / Test / windows-2.7-none / test_a_configured_api_key_is_sent_in_the_authorization_header – tests.bdd.api_key_tests

Age: 1
Duration: 0.038
Error Details: KeyError: 'SERVICE_NAME'

Name: Initializing / Test / windows-2.7-none / test_a_configured_api_key_takes_precedence_over_a_secret_token – tests.bdd.api_key_tests

Age: 1
Duration: 0.009
Error Details: KeyError: 'SERVICE_NAME'

Name: Initializing / Test / windows-2.7-none / test_a_configured_secret_token_is_sent_if_no_api_key_is_configured – tests.bdd.api_key_tests

Age: 1
Duration: 0.009
Error Details: KeyError: 'SERVICE_NAME'

Name: Initializing / Test / Python-python-3.8-1 / test_a_configured_api_key_is_sent_in_the_authorization_header – tests.bdd.api_key_tests

Age: 1
Duration: 0.006
Error Details: KeyError: 'SERVICE_NAME'

Name: Initializing / Test / Python-python-3.8-1 / test_a_configured_api_key_takes_precedence_over_a_secret_token – tests.bdd.api_key_tests

Age: 1
Duration: 0.006
Error Details: KeyError: 'SERVICE_NAME'

Name: Initializing / Test / Python-python-3.8-1 / test_a_configured_secret_token_is_sent_if_no_api_key_is_configured – tests.bdd.api_key_tests

Age: 1
Duration: 0.076
Error Details: KeyError: 'SERVICE_NAME'

Name: Initializing / Test / Python-python-3.7-1 / test_a_configured_api_key_is_sent_in_the_authorization_header – tests.bdd.api_key_tests

Age: 1
Duration: 0.005
Error Details: KeyError: 'SERVICE_NAME'

Name: Initializing / Test / Python-python-3.7-1 / test_a_configured_api_key_takes_precedence_over_a_secret_token – tests.bdd.api_key_tests

Age: 1
Duration: 0.005
Error Details: KeyError: 'SERVICE_NAME'

Name: Initializing / Test / Python-python-3.7-1 / test_a_configured_secret_token_is_sent_if_no_api_key_is_configured – tests.bdd.api_key_tests

Age: 1
Duration: 0.069
Error Details: KeyError: 'SERVICE_NAME'

Name: Initializing / Test / Python-python-3.9-rc-1 / test_a_configured_api_key_is_sent_in_the_authorization_header – tests.bdd.api_key_tests

Age: 1
Duration: 0.006
Error Details: KeyError: 'SERVICE_NAME'

Name: Initializing / Test / Python-python-3.9-rc-1 / test_a_configured_api_key_takes_precedence_over_a_secret_token – tests.bdd.api_key_tests

Age: 1
Duration: 0.006
Error Details: KeyError: 'SERVICE_NAME'

Name: Initializing / Test / Python-python-3.9-rc-1 / test_a_configured_secret_token_is_sent_if_no_api_key_is_configured – tests.bdd.api_key_tests

Age: 1
Duration: 0.08
Error Details: KeyError: 'SERVICE_NAME'

Name: Initializing / Test / Python-python-2.7-1 / test_a_configured_api_key_is_sent_in_the_authorization_header – tests.bdd.api_key_tests

Age: 1
Duration: 0.006
Error Details: KeyError: 'SERVICE_NAME'

Name: Initializing / Test / Python-python-2.7-1 / test_a_configured_api_key_takes_precedence_over_a_secret_token – tests.bdd.api_key_tests

Age: 1
Duration: 0.006
Error Details: KeyError: 'SERVICE_NAME'

Name: Initializing / Test / Python-python-2.7-1 / test_a_configured_secret_token_is_sent_if_no_api_key_is_configured – tests.bdd.api_key_tests

Age: 1
Duration: 0.116
Error Details: KeyError: 'SERVICE_NAME'

Name: Initializing / Test / Python-python-3.6-1 / test_a_configured_api_key_is_sent_in_the_authorization_header – tests.bdd.api_key_tests

Age: 1
Duration: 0.005
Error Details: KeyError: 'SERVICE_NAME'

Name: Initializing / Test / Python-python-3.6-1 / test_a_configured_api_key_takes_precedence_over_a_secret_token – tests.bdd.api_key_tests

Age: 1
Duration: 0.005
Error Details: KeyError: 'SERVICE_NAME'

Name: Initializing / Test / Python-python-3.6-1 / test_a_configured_secret_token_is_sent_if_no_api_key_is_configured – tests.bdd.api_key_tests

Age: 1
Duration: 0.077
Error Details: KeyError: 'SERVICE_NAME'

Name: Initializing / Test / windows-3.7-none / test_a_configured_api_key_is_sent_in_the_authorization_header – tests.bdd.api_key_tests

Age: 1
Duration: 0.04
Error Details: KeyError: 'SERVICE_NAME'

Name: Initializing / Test / windows-3.7-none / test_a_configured_api_key_takes_precedence_over_a_secret_token – tests.bdd.api_key_tests

Age: 1
Duration: 0.008
Error Details: KeyError: 'SERVICE_NAME'

Name: Initializing / Test / windows-3.7-none / test_a_configured_secret_token_is_sent_if_no_api_key_is_configured – tests.bdd.api_key_tests

Age: 1
Duration: 0.007
Error Details: KeyError: 'SERVICE_NAME'

Name: Initializing / Test / Python-python-3.5-1 / test_a_configured_api_key_is_sent_in_the_authorization_header – tests.bdd.api_key_tests

Age: 1
Duration: 0.006
Error Details: KeyError: 'METRICS_INTERVAL'

Name: Initializing / Test / Python-python-3.5-1 / test_a_configured_api_key_takes_precedence_over_a_secret_token – tests.bdd.api_key_tests

Age: 1
Duration: 0.006
Error Details: KeyError: 'METRICS_INTERVAL'

Name: Initializing / Test / Python-python-3.5-1 / test_a_configured_secret_token_is_sent_if_no_api_key_is_configured – tests.bdd.api_key_tests

Age: 1
Duration: 0.081
Error Details: KeyError: 'METRICS_INTERVAL'

Name: Initializing / Test / Python-pypy-2-1 / test_a_configured_api_key_is_sent_in_the_authorization_header – tests.bdd.api_key_tests

Age: 1
Duration: 0.046
Error Details: KeyError: 'SERVICE_NAME'

Name: Initializing / Test / Python-pypy-2-1 / test_a_configured_api_key_takes_precedence_over_a_secret_token – tests.bdd.api_key_tests

Age: 1
Duration: 0.039
Error Details: KeyError: 'SERVICE_NAME'

Name: Initializing / Test / Python-pypy-2-1 / test_a_configured_secret_token_is_sent_if_no_api_key_is_configured – tests.bdd.api_key_tests

Age: 1
Duration: 0.787
Error Details: KeyError: 'SERVICE_NAME'

Name: Initializing / Test / windows-3.8-none / test_a_configured_api_key_is_sent_in_the_authorization_header – tests.bdd.api_key_tests

Age: 1
Duration: 0.248
Error Details: KeyError: 'SERVICE_NAME'

Name: Initializing / Test / windows-3.8-none / test_a_configured_api_key_takes_precedence_over_a_secret_token – tests.bdd.api_key_tests

Age: 1
Duration: 0.027
Error Details: KeyError: 'SERVICE_NAME'

Name: Initializing / Test / windows-3.8-none / test_a_configured_secret_token_is_sent_if_no_api_key_is_configured – tests.bdd.api_key_tests

Age: 1
Duration: 0.024
Error Details: KeyError: 'SERVICE_NAME'

Name: Initializing / Test / Python-pypy-3-1 / test_a_configured_api_key_is_sent_in_the_authorization_header – tests.bdd.api_key_tests

Age: 1
Duration: 0.047
Error Details: KeyError: 'SERVICE_NAME'

Name: Initializing / Test / Python-pypy-3-1 / test_a_configured_api_key_takes_precedence_over_a_secret_token – tests.bdd.api_key_tests

Age: 1
Duration: 0.05
Error Details: KeyError: 'SERVICE_NAME'

Name: Initializing / Test / Python-pypy-3-1 / test_a_configured_secret_token_is_sent_if_no_api_key_is_configured – tests.bdd.api_key_tests

Age: 1
Duration: 0.987
Error Details: KeyError: 'SERVICE_NAME'

Name: Initializing / Test / windows-3.5-none / test_service_info[elasticapm_client0] – tests.client.client_tests

Age: 1
Duration: 0.007
Error Details: test setup failure

Name: Initializing / Test / windows-3.5-none / test_service_info_node_name[elasticapm_client0] – tests.client.client_tests

Age: 1
Duration: 0.006
Error Details: test setup failure

Name: Initializing / Test / windows-3.5-none / test_process_info – tests.client.client_tests

Age: 1
Duration: 0.006
Error Details: test setup failure

Name: Initializing / Test / windows-3.5-none / test_system_info – tests.client.client_tests

Age: 1
Duration: 0.005
Error Details: test setup failure

Name: Initializing / Test / windows-3.5-none / test_system_info_hostname_configurable[elasticapm_client0] – tests.client.client_tests

Age: 1
Duration: 0.004
Error Details: test setup failure

Name: Initializing / Test / windows-3.5-none / test_global_labels[elasticapm_client0] – tests.client.client_tests

Age: 1
Duration: 0.005
Error Details: test setup failure

Name: Initializing / Test / windows-3.5-none / test_docker_kubernetes_system_info – tests.client.client_tests

Age: 1
Duration: 0.006
Error Details: test setup failure

Name: Initializing / Test / windows-3.5-none / test_docker_kubernetes_system_info_from_environ – tests.client.client_tests

Age: 1
Duration: 0.008
Error Details: KeyError: 'METRICS_INTERVAL'

Name: Initializing / Test / windows-3.5-none / test_docker_kubernetes_system_info_from_environ_overrides_cgroups – tests.client.client_tests

Age: 1
Duration: 0.009
Error Details: KeyError: 'METRICS_INTERVAL'

Name: Initializing / Test / windows-3.5-none / test_docker_kubernetes_system_info_except_hostname_from_environ – tests.client.client_tests

Age: 1
Duration: 0.009
Error Details: KeyError: 'METRICS_INTERVAL'

Name: Initializing / Test / windows-3.5-none / test_config_by_environment – tests.client.client_tests

Age: 1
Duration: 0.008
Error Details: KeyError: 'METRICS_INTERVAL'

Name: Initializing / Test / windows-3.5-none / test_config_non_string_types – tests.client.client_tests

Age: 1
Duration: 0.005
Error Details: KeyError: 'METRICS_INTERVAL'

Name: Initializing / Test / windows-3.5-none / test_custom_transport[elasticapm_client0] – tests.client.client_tests

Age: 1
Duration: 0.004
Error Details: test setup failure

Name: Initializing / Test / windows-3.5-none / test_empty_processor_list[elasticapm_client0] – tests.client.client_tests

Age: 1
Duration: 0.006
Error Details: test setup failure

Name: Initializing / Test / windows-3.5-none / test_send_remote_failover_sync[validating_httpserver0-sending_elasticapm_client0] – tests.client.client_tests

Age: 1
Duration: 0.447
Error Details: test setup failure

Name: Initializing / Test / windows-3.5-none / test_send_remote_failover_sync_non_transport_exception_error – tests.client.client_tests

Age: 1
Duration: 0.006
Error Details: KeyError: 'METRICS_INTERVAL'

Name: Initializing / Test / windows-3.5-none / test_send[validating_httpserver0] – tests.client.client_tests

Age: 1
Duration: 0.42
Error Details: test setup failure

Name: Initializing / Test / windows-3.5-none / test_send_not_enabled[sending_elasticapm_client0] – tests.client.client_tests

Age: 1
Duration: 0.396
Error Details: test setup failure

Name: Initializing / Test / windows-3.5-none / test_client_shutdown_sync[sending_elasticapm_client0] – tests.client.client_tests

Age: 1
Duration: 0.418
Error Details: test setup failure

Name: Initializing / Test / windows-3.5-none / test_call_end_twice – tests.client.client_tests

Age: 1
Duration: 0.005
Error Details: test setup failure

Name: Initializing / Test / windows-3.5-none / test_client_disables_ssl_verification[elasticapm_client0] – tests.client.client_tests

Age: 1
Duration: 0.005
Error Details: test setup failure

Name: Initializing / Test / windows-3.5-none / test_server_cert_pinning[sending_elasticapm_client0] – tests.client.client_tests

Age: 1
Duration: 0.394
Error Details: test setup failure

Name: Initializing / Test / windows-3.5-none / test_ignore_patterns[elasticapm_client0] – tests.client.client_tests

Age: 1
Duration: 0.005
Error Details: test setup failure

Name: Initializing / Test / windows-3.5-none / test_ignore_patterns_with_none_transaction_name[elasticapm_client0] – tests.client.client_tests

Age: 1
Duration: 0.006
Error Details: test setup failure

Name: Initializing / Test / windows-3.5-none / test_disable_send[sending_elasticapm_client0] – tests.client.client_tests

Age: 1
Duration: 0.422
Error Details: test setup failure

Name: Initializing / Test / windows-3.5-none / test_invalid_service_name_disables_send[elasticapm_client0] – tests.client.client_tests

Age: 1
Duration: 0.006
Error Details: test setup failure

Name: Initializing / Test / windows-3.5-none / test_empty_transport_disables_send – tests.client.client_tests

Age: 1
Duration: 0.006
Error Details: KeyError: 'METRICS_INTERVAL'

Name: Initializing / Test / windows-3.5-none / test_collect_local_variables_transactions[elasticapm_client0] – tests.client.client_tests

Age: 1
Duration: 0.006
Error Details: test setup failure

Name: Initializing / Test / windows-3.5-none / test_collect_local_variables_transactions[elasticapm_client1] – tests.client.client_tests

Age: 1
Duration: 0.006
Error Details: test setup failure

Name: Initializing / Test / windows-3.5-none / test_collect_local_variables_transactions[elasticapm_client2] – tests.client.client_tests

Age: 1
Duration: 0.006
Error Details: test setup failure

Name: Initializing / Test / windows-3.5-none / test_collect_local_variables_transactions[elasticapm_client3] – tests.client.client_tests

Age: 1
Duration: 0.006
Error Details: test setup failure

Name: Initializing / Test / windows-3.5-none / test_collect_source_transactions[elasticapm_client0] – tests.client.client_tests

Age: 1
Duration: 0.007
Error Details: test setup failure

Name: Initializing / Test / windows-3.5-none / test_collect_source_transactions[elasticapm_client1] – tests.client.client_tests

Age: 1
Duration: 0.007
Error Details: test setup failure

Name: Initializing / Test / windows-3.5-none / test_collect_source_transactions[elasticapm_client2] – tests.client.client_tests

Age: 1
Duration: 0.006
Error Details: test setup failure

Name: Initializing / Test / windows-3.5-none / test_transaction_sampling[elasticapm_client0] – tests.client.client_tests

Age: 1
Duration: 0.005
Error Details: test setup failure

Name: Initializing / Test / windows-3.5-none / test_transaction_sample_rate_dynamic – tests.client.client_tests

Age: 1
Duration: 0.005
Error Details: test setup failure

Name: Initializing / Test / windows-3.5-none / test_transaction_max_spans[elasticapm_client0] – tests.client.client_tests

Age: 1
Duration: 0.005
Error Details: test setup failure

Steps errors
Expand to view the steps failures

Name: Shell Script

Description: ./tests/scripts/docker/run_tests.sh python-2.7 none

Duration: 2 min 13 sec

Start Time: 2020-09-01T21:44:25.800+0000

log

Name: Shell Script

Description: ./tests/scripts/docker/run_tests.sh python-2.7 none

Duration: 1 min 21 sec

Start Time: 2020-09-01T21:47:11.877+0000

log

Name: Error signal

Description: Python-python-2.7-none tests failed : hudson.AbortException: script returned exit code 2

Duration: 0 min 0 sec

Start Time: 2020-09-01T21:48:33.711+0000

log

Name: Shell Script

Description: ./tests/scripts/docker/run_tests.sh python-2.7 django-1.11

Duration: 1 min 6 sec

Start Time: 2020-09-01T21:44:31.201+0000

log

Name: Shell Script

Description: ./tests/scripts/docker/run_tests.sh python-2.7 django-1.11

Duration: 0 min 17 sec

Start Time: 2020-09-01T21:45:57.930+0000

log

Name: Error signal

Description: Python-python-2.7-django-1.11 tests failed : hudson.AbortException: script returned exit code 2

Duration: 0 min 0 sec

Start Time: 2020-09-01T21:46:20.957+0000

log

Name: Shell Script

Description: ./tests/scripts/docker/run_tests.sh python-2.7 flask-0.12

Duration: 1 min 14 sec

Start Time: 2020-09-01T21:44:38.247+0000

log

Name: Shell Script

Description: ./tests/scripts/docker/run_tests.sh python-2.7 flask-0.12

Duration: 0 min 26 sec

Start Time: 2020-09-01T21:46:05.742+0000

log

Name: Error signal

Description: Python-python-2.7-flask-0.12 tests failed : hudson.AbortException: script returned exit code 2

Duration: 0 min 0 sec

Start Time: 2020-09-01T21:46:39.486+0000

log

Name: Shell Script

Description: ./tests/scripts/docker/run_tests.sh python-2.7 flask-1.1

Duration: 1 min 13 sec

Start Time: 2020-09-01T21:44:27.316+0000

log

Name: Shell Script

Description: ./tests/scripts/docker/run_tests.sh python-2.7 flask-1.1

Duration: 0 min 24 sec

Start Time: 2020-09-01T21:45:55.038+0000

log

Name: Error signal

Description: Python-python-2.7-flask-1.1 tests failed : hudson.AbortException: script returned exit code 2

Duration: 0 min 0 sec

Start Time: 2020-09-01T21:46:24.717+0000

log

Name: Shell Script

Description: ./tests/scripts/docker/run_tests.sh python-2.7 opentracing-newest

Duration: 1 min 10 sec

Start Time: 2020-09-01T21:44:41.535+0000

log

Name: Shell Script

Description: ./tests/scripts/docker/run_tests.sh python-2.7 opentracing-newest

Duration: 0 min 21 sec

Start Time: 2020-09-01T21:46:33.852+0000

log

Name: Error signal

Description: Python-python-2.7-opentracing-newest tests failed : hudson.AbortException: script returned exit code 2

Duration: 0 min 0 sec

Start Time: 2020-09-01T21:46:59.298+0000

log

Name: Shell Script

Description: ./tests/scripts/docker/run_tests.sh python-3.5 none

Duration: 3 min 19 sec

Start Time: 2020-09-01T21:44:23.380+0000

log

Name: Shell Script

Description: ./tests/scripts/docker/run_tests.sh python-3.5 none

Duration: 1 min 27 sec

Start Time: 2020-09-01T21:48:06.474+0000

log

Name: Error signal

Description: Python-python-3.5-none tests failed : hudson.AbortException: script returned exit code 2

Duration: 0 min 0 sec

Start Time: 2020-09-01T21:49:33.949+0000

log

Name: Shell Script

Description: ./tests/scripts/docker/run_tests.sh python-3.5 django-1.11

Duration: 3 min 43 sec

Start Time: 2020-09-01T21:44:15.274+0000

log

Name: Shell Script

Description: ./tests/scripts/docker/run_tests.sh python-3.5 django-1.11

Duration: 0 min 13 sec

Start Time: 2020-09-01T21:47:36.526+0000

log

Name: Error signal

Description: Python-python-3.5-django-1.11 tests failed : hudson.AbortException: script returned exit code 2

Duration: 0 min 0 sec

Start Time: 2020-09-01T21:47:49.663+0000

log

Name: Shell Script

Description: ./tests/scripts/docker/run_tests.sh python-3.5 django-2.0

Duration: 2 min 30 sec

Start Time: 2020-09-01T21:44:37.860+0000

log

Name: Shell Script

Description: ./tests/scripts/docker/run_tests.sh python-3.5 django-2.0

Duration: 0 min 12 sec

Start Time: 2020-09-01T21:47:29.947+0000

log

Name: Error signal

Description: Python-python-3.5-django-2.0 tests failed : hudson.AbortException: script returned exit code 2

Duration: 0 min 0 sec

Start Time: 2020-09-01T21:47:43.031+0000

log

Name: Shell Script

Description: ./tests/scripts/docker/run_tests.sh python-3.5 django-2.2

Duration: 3 min 44 sec

Start Time: 2020-09-01T21:44:25.943+0000

log

Name: Shell Script

Description: ./tests/scripts/docker/run_tests.sh python-3.5 django-2.2

Duration: 0 min 13 sec

Start Time: 2020-09-01T21:47:34.315+0000

log

Name: Error signal

Description: Python-python-3.5-django-2.2 tests failed : hudson.AbortException: script returned exit code 2

Duration: 0 min 0 sec

Start Time: 2020-09-01T21:47:47.898+0000

log

Name: Shell Script

Description: ./tests/scripts/docker/run_tests.sh python-3.5 flask-0.12

Duration: 1 min 4 sec

Start Time: 2020-09-01T21:44:17.900+0000

log

Name: Shell Script

Description: ./tests/scripts/docker/run_tests.sh python-3.5 flask-0.12

Duration: 0 min 28 sec

Start Time: 2020-09-01T21:45:45.537+0000

log

Name: Error signal

Description: Python-python-3.5-flask-0.12 tests failed : hudson.AbortException: script returned exit code 2

Duration: 0 min 0 sec

Start Time: 2020-09-01T21:46:19.808+0000

log

Name: Shell Script

Description: ./tests/scripts/docker/run_tests.sh python-3.6 none

Duration: 2 min 12 sec

Start Time: 2020-09-01T21:44:35.935+0000

log

Name: Shell Script

Description: ./tests/scripts/docker/run_tests.sh python-3.6 none

Duration: 1 min 24 sec

Start Time: 2020-09-01T21:47:10.844+0000

log

Name: Error signal

Description: Python-python-3.6-none tests failed : hudson.AbortException: script returned exit code 2

Duration: 0 min 0 sec

Start Time: 2020-09-01T21:48:34.935+0000

log

Name: Shell Script

Description: ./tests/scripts/docker/run_tests.sh python-3.6 django-1.11

Duration: 1 min 0 sec

Start Time: 2020-09-01T21:44:28.913+0000

log

Name: Shell Script

Description: ./tests/scripts/docker/run_tests.sh python-3.6 django-1.11

Duration: 0 min 16 sec

Start Time: 2020-09-01T21:46:03.708+0000

log

Name: Error signal

Description: Python-python-3.6-django-1.11 tests failed : hudson.AbortException: script returned exit code 2

Duration: 0 min 0 sec

Start Time: 2020-09-01T21:46:24.752+0000

log

Name: Shell Script

Description: ./tests/scripts/docker/run_tests.sh python-3.6 django-2.0

Duration: 1 min 56 sec

Start Time: 2020-09-01T21:44:33.011+0000

log

Name: Shell Script

Description: ./tests/scripts/docker/run_tests.sh python-3.6 django-2.0

Duration: 0 min 15 sec

Start Time: 2020-09-01T21:46:13.264+0000

log

Name: Error signal

Description: Python-python-3.6-django-2.0 tests failed : hudson.AbortException: script returned exit code 2

Duration: 0 min 0 sec

Start Time: 2020-09-01T21:46:35.380+0000

log

Name: Shell Script

Description: ./tests/scripts/docker/run_tests.sh python-3.6 django-2.2

Duration: 1 min 57 sec

Start Time: 2020-09-01T21:44:33.063+0000

log

Name: Shell Script

Description: ./tests/scripts/docker/run_tests.sh python-3.6 django-2.2

Duration: 0 min 15 sec

Start Time: 2020-09-01T21:46:13.310+0000

log

Name: Error signal

Description: Python-python-3.6-django-2.2 tests failed : hudson.AbortException: script returned exit code 2

Duration: 0 min 0 sec

Start Time: 2020-09-01T21:46:35.414+0000

log

Name: Shell Script

Description: ./tests/scripts/docker/run_tests.sh python-3.6 django-3.0

Duration: 1 min 58 sec

Start Time: 2020-09-01T21:44:23.425+0000

log

Name: Shell Script

Description: ./tests/scripts/docker/run_tests.sh python-3.6 django-3.0

Duration: 0 min 14 sec

Start Time: 2020-09-01T21:45:45.495+0000

log

Name: Error signal

Description: Python-python-3.6-django-3.0 tests failed : hudson.AbortException: script returned exit code 2

Duration: 0 min 0 sec

Start Time: 2020-09-01T21:46:00.576+0000

log

Name: Shell Script

Description: ./tests/scripts/docker/run_tests.sh python-3.7 none

Duration: 2 min 7 sec

Start Time: 2020-09-01T21:44:32.927+0000

log

Name: Shell Script

Description: ./tests/scripts/docker/run_tests.sh python-3.7 none

Duration: 1 min 21 sec

Start Time: 2020-09-01T21:47:11.367+0000

log

Name: Error signal

Description: Python-python-3.7-none tests failed : hudson.AbortException: script returned exit code 2

Duration: 0 min 0 sec

Start Time: 2020-09-01T21:48:32.271+0000

log

Name: Shell Script

Description: ./tests/scripts/docker/run_tests.sh python-3.7 django-2.0

Duration: 1 min 57 sec

Start Time: 2020-09-01T21:44:35.483+0000

log

Name: Shell Script

Description: ./tests/scripts/docker/run_tests.sh python-3.7 django-2.0

Duration: 0 min 15 sec

Start Time: 2020-09-01T21:46:17.625+0000

log

Name: Error signal

Description: Python-python-3.7-django-2.0 tests failed : hudson.AbortException: script returned exit code 2

Duration: 0 min 0 sec

Start Time: 2020-09-01T21:46:41.187+0000

log

Name: Shell Script

Description: ./tests/scripts/docker/run_tests.sh python-3.7 django-2.2

Duration: 1 min 58 sec

Start Time: 2020-09-01T21:44:18.009+0000

log

Name: Shell Script

Description: ./tests/scripts/docker/run_tests.sh python-3.7 django-2.2

Duration: 0 min 13 sec

Start Time: 2020-09-01T21:45:41.691+0000

log

Name: Error signal

Description: Python-python-3.7-django-2.2 tests failed : hudson.AbortException: script returned exit code 2

Duration: 0 min 0 sec

Start Time: 2020-09-01T21:45:54.676+0000

log

Name: Shell Script

Description: ./tests/scripts/docker/run_tests.sh python-3.7 django-3.0

Duration: 1 min 57 sec

Start Time: 2020-09-01T21:44:33.174+0000

log

Name: Shell Script

Description: ./tests/scripts/docker/run_tests.sh python-3.7 django-3.0

Duration: 0 min 16 sec

Start Time: 2020-09-01T21:46:03.223+0000

log

Name: Error signal

Description: Python-python-3.7-django-3.0 tests failed : hudson.AbortException: script returned exit code 2

Duration: 0 min 0 sec

Start Time: 2020-09-01T21:46:24.229+0000

log

Name: Shell Script

Description: ./tests/scripts/docker/run_tests.sh python-3.7 flask-0.12

Duration: 1 min 8 sec

Start Time: 2020-09-01T21:44:35.529+0000

log

Name: Shell Script

Description: ./tests/scripts/docker/run_tests.sh python-3.7 flask-0.12

Duration: 0 min 25 sec

Start Time: 2020-09-01T21:45:57.027+0000

log

Name: Error signal

Description: Python-python-3.7-flask-0.12 tests failed : hudson.AbortException: script returned exit code 2

Duration: 0 min 0 sec

Start Time: 2020-09-01T21:46:26.639+0000

log

Name: Shell Script

Description: ./tests/scripts/docker/run_tests.sh python-3.8 none

Duration: 2 min 10 sec

Start Time: 2020-09-01T21:44:38.037+0000

log

Name: Shell Script

Description: ./tests/scripts/docker/run_tests.sh python-3.8 none

Duration: 1 min 23 sec

Start Time: 2020-09-01T21:47:07.903+0000

log

Name: Error signal

Description: Python-python-3.8-none tests failed : hudson.AbortException: script returned exit code 2

Duration: 0 min 0 sec

Start Time: 2020-09-01T21:48:30.982+0000

log

Name: Shell Script

Description: ./tests/scripts/docker/run_tests.sh python-3.8 django-1.11

Duration: 1 min 56 sec

Start Time: 2020-09-01T21:44:29.246+0000

log

Name: Shell Script

Description: ./tests/scripts/docker/run_tests.sh python-3.8 django-1.11

Duration: 0 min 13 sec

Start Time: 2020-09-01T21:45:49.307+0000

log

Name: Error signal

Description: Python-python-3.8-django-1.11 tests failed : hudson.AbortException: script returned exit code 2

Duration: 0 min 0 sec

Start Time: 2020-09-01T21:46:04.264+0000

log

Name: Shell Script

Description: ./tests/scripts/docker/run_tests.sh python-3.8 django-2.0

Duration: 1 min 58 sec

Start Time: 2020-09-01T21:44:31.059+0000

log

Name: Shell Script

Description: ./tests/scripts/docker/run_tests.sh python-3.8 django-2.0

Duration: 0 min 16 sec

Start Time: 2020-09-01T21:46:00.491+0000

log

Name: Error signal

Description: Python-python-3.8-django-2.0 tests failed : hudson.AbortException: script returned exit code 2

Duration: 0 min 0 sec

Start Time: 2020-09-01T21:46:22.239+0000

log

Name: Shell Script

Description: ./tests/scripts/docker/run_tests.sh python-3.8 django-2.2

Duration: 1 min 3 sec

Start Time: 2020-09-01T21:44:35.576+0000

log

Name: Shell Script

Description: ./tests/scripts/docker/run_tests.sh python-3.8 django-2.2

Duration: 0 min 16 sec

Start Time: 2020-09-01T21:46:17.683+0000

log

Name: Error signal

Description: Python-python-3.8-django-2.2 tests failed : hudson.AbortException: script returned exit code 2

Duration: 0 min 0 sec

Start Time: 2020-09-01T21:46:41.557+0000

log

Name: Shell Script

Description: ./tests/scripts/docker/run_tests.sh python-3.8 django-3.0

Duration: 2 min 12 sec

Start Time: 2020-09-01T21:44:23.472+0000

log

Name: Shell Script

Description: ./tests/scripts/docker/run_tests.sh python-3.8 django-3.0

Duration: 0 min 13 sec

Start Time: 2020-09-01T21:47:00.245+0000

log

Name: Error signal

Description: Python-python-3.8-django-3.0 tests failed : hudson.AbortException: script returned exit code 2

Duration: 0 min 0 sec

Start Time: 2020-09-01T21:47:13.842+0000

log

Name: Shell Script

Description: ./tests/scripts/docker/run_tests.sh python-3.9-rc none

Duration: 2 min 22 sec

Start Time: 2020-09-01T21:44:26.185+0000

log

Name: Shell Script

Description: ./tests/scripts/docker/run_tests.sh python-3.9-rc none

Duration: 1 min 24 sec

Start Time: 2020-09-01T21:47:08.822+0000

log

Name: Error signal

Description: Python-python-3.9-rc-none tests failed : hudson.AbortException: script returned exit code 2

Duration: 0 min 0 sec

Start Time: 2020-09-01T21:48:33.154+0000

log

Name: Shell Script

Description: ./tests/scripts/docker/run_tests.sh python-3.9-rc django-1.11

Duration: 1 min 6 sec

Start Time: 2020-09-01T21:44:39.083+0000

log

Name: Shell Script

Description: ./tests/scripts/docker/run_tests.sh python-3.9-rc django-1.11

Duration: 0 min 15 sec

Start Time: 2020-09-01T21:46:15.116+0000

log

Name: Error signal

Description: Python-python-3.9-rc-django-1.11 tests failed : hudson.AbortException: script returned exit code 2

Duration: 0 min 0 sec

Start Time: 2020-09-01T21:46:37.701+0000

log

Name: Shell Script

Description: ./tests/scripts/docker/run_tests.sh python-3.9-rc django-2.0

Duration: 3 min 35 sec

Start Time: 2020-09-01T21:44:28.033+0000

log

Name: Shell Script

Description: ./tests/scripts/docker/run_tests.sh python-3.9-rc django-2.0

Duration: 0 min 12 sec

Start Time: 2020-09-01T21:47:43.110+0000

log

Name: Error signal

Description: Python-python-3.9-rc-django-2.0 tests failed : hudson.AbortException: script returned exit code 2

Duration: 0 min 0 sec

Start Time: 2020-09-01T21:47:55.611+0000

log

Name: Shell Script

Description: ./tests/scripts/docker/run_tests.sh python-3.9-rc django-2.2

Duration: 2 min 34 sec

Start Time: 2020-09-01T21:44:21.997+0000

log

Name: Shell Script

Description: ./tests/scripts/docker/run_tests.sh python-3.9-rc django-2.2

Duration: 0 min 17 sec

Start Time: 2020-09-01T21:46:23.892+0000

log

Name: Error signal

Description: Python-python-3.9-rc-django-2.2 tests failed : hudson.AbortException: script returned exit code 2

Duration: 0 min 0 sec

Start Time: 2020-09-01T21:46:48.325+0000

log

Name: Shell Script

Description: ./tests/scripts/docker/run_tests.sh python-3.9-rc django-3.0

Duration: 1 min 10 sec

Start Time: 2020-09-01T21:44:20.078+0000

log

Name: Shell Script

Description: ./tests/scripts/docker/run_tests.sh python-3.9-rc django-3.0

Duration: 0 min 17 sec

Start Time: 2020-09-01T21:45:52.214+0000

log

Name: Error signal

Description: Python-python-3.9-rc-django-3.0 tests failed : hudson.AbortException: script returned exit code 2

Duration: 0 min 0 sec

Start Time: 2020-09-01T21:46:19.000+0000

log

Name: Shell Script

Description: ./tests/scripts/docker/run_tests.sh pypy-2 none

Duration: 3 min 27 sec

Start Time: 2020-09-01T21:44:47.504+0000

log

Name: Shell Script

Description: ./tests/scripts/docker/run_tests.sh pypy-2 none

Duration: 3 min 42 sec

Start Time: 2020-09-01T21:48:46.887+0000

log

Name: Error signal

Description: Python-pypy-2-none tests failed : hudson.AbortException: script returned exit code 2

Duration: 0 min 0 sec

Start Time: 2020-09-01T21:51:28.950+0000

log

Name: Shell Script

Description: ./tests/scripts/docker/run_tests.sh pypy-2 django-1.11

Duration: 2 min 22 sec

Start Time: 2020-09-01T21:44:57.668+0000

log

Name: Shell Script

Description: ./tests/scripts/docker/run_tests.sh pypy-2 django-1.11

Duration: 0 min 23 sec

Start Time: 2020-09-01T21:47:43.463+0000

log

Name: Error signal

Description: Python-pypy-2-django-1.11 tests failed : hudson.AbortException: script returned exit code 2

Duration: 0 min 0 sec

Start Time: 2020-09-01T21:48:07.143+0000

log

Name: Shell Script

Description: ./tests/scripts/docker/run_tests.sh pypy-2 flask-0.12

Duration: 2 min 8 sec

Start Time: 2020-09-01T21:45:55.751+0000

log

Name: Shell Script

Description: ./tests/scripts/docker/run_tests.sh pypy-2 flask-0.12

Duration: 1 min 14 sec

Start Time: 2020-09-01T21:48:23.593+0000

log

Name: Error signal

Description: Python-pypy-2-flask-0.12 tests failed : hudson.AbortException: script returned exit code 2

Duration: 0 min 0 sec

Start Time: 2020-09-01T21:49:38.151+0000

log

Name: Shell Script

Description: ./tests/scripts/docker/run_tests.sh pypy-2 flask-1.1

Duration: 2 min 8 sec

Start Time: 2020-09-01T21:46:20.445+0000

log

Name: Shell Script

Description: ./tests/scripts/docker/run_tests.sh pypy-2 flask-1.1

Duration: 1 min 8 sec

Start Time: 2020-09-01T21:49:00.472+0000

log

Name: Error signal

Description: Python-pypy-2-flask-1.1 tests failed : hudson.AbortException: script returned exit code 2

Duration: 0 min 0 sec

Start Time: 2020-09-01T21:50:08.220+0000

log

Name: Shell Script

Description: ./tests/scripts/docker/run_tests.sh pypy-2 opentracing-newest

Duration: 5 min 55 sec

Start Time: 2020-09-01T21:46:23.100+0000

log

Name: Shell Script

Description: ./tests/scripts/docker/run_tests.sh pypy-2 opentracing-newest

Duration: 1 min 7 sec

Start Time: 2020-09-01T21:51:46.524+0000

log

Name: Error signal

Description: Python-pypy-2-opentracing-newest tests failed : hudson.AbortException: script returned exit code 2

Duration: 0 min 0 sec

Start Time: 2020-09-01T21:52:53.820+0000

log

Name: Shell Script

Description: ./tests/scripts/docker/run_tests.sh pypy-3 none

Duration: 6 min 35 sec

Start Time: 2020-09-01T21:46:22.456+0000

log

Name: Shell Script

Description: ./tests/scripts/docker/run_tests.sh pypy-3 none

Duration: 3 min 26 sec

Start Time: 2020-09-01T21:52:15.218+0000

log

Name: Error signal

Description: Python-pypy-3-none tests failed : hudson.AbortException: script returned exit code 2

Duration: 0 min 0 sec

Start Time: 2020-09-01T21:55:41.571+0000

log

Name: Shell Script

Description: ./tests/scripts/docker/run_tests.sh pypy-3 django-1.11

Duration: 2 min 44 sec

Start Time: 2020-09-01T21:46:30.324+0000

log

Name: Shell Script

Description: ./tests/scripts/docker/run_tests.sh pypy-3 django-1.11

Duration: 1 min 31 sec

Start Time: 2020-09-01T21:48:25.064+0000

log

Name: Error signal

Description: Python-pypy-3-django-1.11 tests failed : hudson.AbortException: script returned exit code 2

Duration: 0 min 0 sec

Start Time: 2020-09-01T21:48:56.121+0000

log

Name: Shell Script

Description: ./tests/scripts/docker/run_tests.sh pypy-3 django-2.0

Duration: 2 min 31 sec

Start Time: 2020-09-01T21:47:00.665+0000

log

Name: Shell Script

Description: ./tests/scripts/docker/run_tests.sh pypy-3 django-2.0

Duration: 0 min 27 sec

Start Time: 2020-09-01T21:48:56.885+0000

log

Name: Error signal

Description: Python-pypy-3-django-2.0 tests failed : hudson.AbortException: script returned exit code 2

Duration: 0 min 0 sec

Start Time: 2020-09-01T21:49:24.219+0000

log

Name: Shell Script

Description: ./tests/scripts/docker/run_tests.sh pypy-3 django-2.2

Duration: 2 min 46 sec

Start Time: 2020-09-01T21:46:52.760+0000

log

Name: Shell Script

Description: ./tests/scripts/docker/run_tests.sh pypy-3 django-2.2

Duration: 1 min 33 sec

Start Time: 2020-09-01T21:48:50.514+0000

log

Name: Error signal

Description: Python-pypy-3-django-2.2 tests failed : hudson.AbortException: script returned exit code 2

Duration: 0 min 0 sec

Start Time: 2020-09-01T21:49:23.906+0000

log

Name: Shell Script

Description: ./tests/scripts/docker/run_tests.sh pypy-3 django-3.0

Duration: 2 min 55 sec

Start Time: 2020-09-01T21:46:41.742+0000

log

Name: Shell Script

Description: ./tests/scripts/docker/run_tests.sh pypy-3 django-3.0

Duration: 1 min 35 sec

Start Time: 2020-09-01T21:48:52.232+0000

log

Name: Error signal

Description: Python-pypy-3-django-3.0 tests failed : hudson.AbortException: script returned exit code 2

Duration: 0 min 0 sec

Start Time: 2020-09-01T21:49:27.636+0000

log

Name: Restore files previously stashed

Description: coverage-python-2.7-twisted-18

Duration: 0 min 0 sec

Start Time: 2020-09-01T21:55:49.363+0000

log

Log output
Expand to view the last 100 lines of log output

[2020-09-01T21:55:40.302Z] tests/instrumentation/transactions_store_tests.py           251    140     22      2    47%
[2020-09-01T21:55:40.302Z] tests/instrumentation/urllib3_tests.py                      130    116      8      0    10%
[2020-09-01T21:55:40.302Z] tests/instrumentation/urllib_tests.py                       152    131      8      0    13%
[2020-09-01T21:55:40.302Z] tests/metrics/__init__.py                                     0      0      0      0   100%
[2020-09-01T21:55:40.302Z] tests/metrics/base_tests.py                                 107     90     16      0    14%
[2020-09-01T21:55:40.302Z] tests/metrics/breakdown_tests.py                            180    168     58      0     5%
[2020-09-01T21:55:40.302Z] tests/metrics/cpu_linux_tests.py                             56     43     10      0    20%
[2020-09-01T21:55:40.302Z] tests/metrics/cpu_psutil_tests.py                            27     22      4      0    16%
[2020-09-01T21:55:40.302Z] tests/middleware/__init__.py                                  0      0      0      0   100%
[2020-09-01T21:55:40.302Z] tests/middleware/tests.py                                    32     25      2      0    21%
[2020-09-01T21:55:40.302Z] tests/processors/__init__.py                                  0      0      0      0   100%
[2020-09-01T21:55:40.302Z] tests/processors/tests.py                                   145     93     12      0    34%
[2020-09-01T21:55:40.302Z] tests/transports/__init__.py                                  0      0      0      0   100%
[2020-09-01T21:55:40.302Z] tests/transports/test_base.py                               162     87     14      0    43%
[2020-09-01T21:55:40.302Z] tests/transports/test_urllib3.py                            201    143      8      0    28%
[2020-09-01T21:55:40.302Z] tests/utils/__init__.py                                       2      0      2      1    75%
[2020-09-01T21:55:40.302Z] tests/utils/cgroup_tests.py                                   7      0      0      0   100%
[2020-09-01T21:55:40.302Z] tests/utils/cloud_tests.py                                   30      0      0      0   100%
[2020-09-01T21:55:40.302Z] tests/utils/compat.py                                         4      3      2      0    17%
[2020-09-01T21:55:40.302Z] tests/utils/compat_tests.py                                  36      8      2      0    79%
[2020-09-01T21:55:40.302Z] tests/utils/encoding/__init__.py                              0      0      0      0   100%
[2020-09-01T21:55:40.302Z] tests/utils/encoding/tests.py                               124      4      8      3    95%
[2020-09-01T21:55:40.302Z] tests/utils/json_utils/__init__.py                            0      0      0      0   100%
[2020-09-01T21:55:40.302Z] tests/utils/json_utils/tests.py                              26      1      2      1    93%
[2020-09-01T21:55:40.302Z] tests/utils/stacks/__init__.py                               10      1      4      1    86%
[2020-09-01T21:55:40.302Z] tests/utils/stacks/tests.py                                 127     41     10      1    66%
[2020-09-01T21:55:40.302Z] tests/utils/test_disttracing_header.py                       42      0      0      0   100%
[2020-09-01T21:55:40.302Z] tests/utils/tests.py                                         69      7      2      1    89%
[2020-09-01T21:55:40.302Z] tests/utils/threading_tests.py                               37      0      2      0   100%
[2020-09-01T21:55:40.302Z] tests/utils/wsgi/__init__.py                                  0      0      0      0   100%
[2020-09-01T21:55:40.302Z] tests/utils/wsgi/tests.py                                    47      0      0      0   100%
[2020-09-01T21:55:40.302Z] -------------------------------------------------------------------------------------------
[2020-09-01T21:55:40.302Z] TOTAL                                                     11191   7085   1819    204    36%
[2020-09-01T21:55:40.302Z]
[2020-09-01T21:55:40.302Z] = 32 failed, 185 passed, 31 skipped, 7 warnings, 252 error, 30 rerun in 191.40 seconds =
[2020-09-01T21:55:40.302Z] Failed to submit message: 'Connection to APM Server timed out (url: http://localhost:8200/intake/v2/events, timeout: 5 seconds)'
[2020-09-01T21:55:40.302Z] make: *** [Makefile:12: test] Error 1
[2020-09-01T21:55:40.564Z] + cleanup
[2020-09-01T21:55:40.564Z] + '[' -n 1 ']'
[2020-09-01T21:55:40.564Z] + ./scripts/docker/docker-summary.sh
[2020-09-01T21:55:40.564Z] *******************************************************
[2020-09-01T21:55:40.564Z] ***************Docker Containers Summary***************
[2020-09-01T21:55:40.564Z] *******************************************************
[2020-09-01T21:55:40.564Z] CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
[2020-09-01T21:55:40.564Z] + PYTHON_VERSION=
[2020-09-01T21:55:40.564Z] + docker-compose down -v
[2020-09-01T21:55:41.139Z] Removing network tests_default
[2020-09-01T21:55:41.402Z] Removing volume tests_pypgdata
[2020-09-01T21:55:41.402Z] Removing volume tests_pymongodata30
[2020-09-01T21:55:41.402Z] Removing volume tests_pymongodata32
[2020-09-01T21:55:41.402Z] Removing volume tests_pymongodata34
[2020-09-01T21:55:41.402Z] Removing volume tests_pymongodata36
[2020-09-01T21:55:41.402Z] Removing volume tests_pyesdata7
[2020-09-01T21:55:41.402Z] Removing volume tests_pyesdata6
[2020-09-01T21:55:41.402Z] Removing volume tests_pyesdata5
[2020-09-01T21:55:41.402Z] Removing volume tests_pyesdata2
[2020-09-01T21:55:41.402Z] Removing volume tests_pycassandradata3
[2020-09-01T21:55:41.402Z] Removing volume tests_pymssqldata
[2020-09-01T21:55:41.402Z] Removing volume tests_mysqldata
[2020-09-01T21:55:41.402Z] + [[ -n '' ]]
[2020-09-01T21:55:41.596Z] Running in /var/lib/jenkins/workspace/thon_apm-agent-python-mbp_PR-912/src/github.com/elastic/apm-agent-python
[2020-09-01T21:55:42.010Z] + chmod 755 docker-logs.sh
[2020-09-01T21:55:42.334Z] + ./docker-logs.sh Python-pypy-3-none docker-compose.yml
[2020-09-01T21:55:42.369Z] Archiving artifacts
[2020-09-01T21:55:42.621Z] Recording test results
[2020-09-01T21:55:43.667Z] Stashed 1 file(s)
[2020-09-01T21:55:43.813Z] Failed in branch Python-pypy-3-1
[2020-09-01T21:55:46.428Z] Post stage
[2020-09-01T21:55:46.745Z] + pip3 install --user coverage
[2020-09-01T21:55:48.131Z] Collecting coverage
[2020-09-01T21:55:48.703Z]   Downloading https://files.pythonhosted.org/packages/43/36/6bad97e1d647fcb131ba898fc07dad9dd07ab9e3a963bfc097559ad938d5/coverage-5.2.1-cp36-cp36m-manylinux1_x86_64.whl (229kB)
[2020-09-01T21:55:48.703Z] Installing collected packages: coverage
[2020-09-01T21:55:48.964Z] Successfully installed coverage-5.2.1
[2020-09-01T21:55:48.999Z] Running in /var/lib/jenkins/workspace/thon_apm-agent-python-mbp_PR-912/src/github.com/elastic/apm-agent-python
[2020-09-01T21:55:49.464Z] Error when executing always post condition:
[2020-09-01T21:55:49.464Z] hudson.AbortException: No such saved stash ‘coverage-python-2.7-twisted-18’
[2020-09-01T21:55:49.464Z] 	at org.jenkinsci.plugins.workflow.flow.StashManager.unstash(StashManager.java:159)
[2020-09-01T21:55:49.464Z] 	at org.jenkinsci.plugins.workflow.support.steps.stash.UnstashStep$Execution.run(UnstashStep.java:76)
[2020-09-01T21:55:49.464Z] 	at org.jenkinsci.plugins.workflow.support.steps.stash.UnstashStep$Execution.run(UnstashStep.java:63)
[2020-09-01T21:55:49.464Z] 	at org.jenkinsci.plugins.workflow.steps.SynchronousNonBlockingStepExecution.lambda$start$0(SynchronousNonBlockingStepExecution.java:47)
[2020-09-01T21:55:49.464Z] 	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
[2020-09-01T21:55:49.464Z] 	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
[2020-09-01T21:55:49.464Z] 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
[2020-09-01T21:55:49.465Z] 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
[2020-09-01T21:55:49.465Z] 	at java.lang.Thread.run(Thread.java:748)
[2020-09-01T21:55:49.465Z]
[2020-09-01T21:55:49.646Z] Stage "Building packages" skipped due to earlier failure(s)
[2020-09-01T21:55:49.805Z] Stage "Integration Tests" skipped due to earlier failure(s)
[2020-09-01T21:55:49.969Z] Stage "Benchmarks" skipped due to earlier failure(s)
[2020-09-01T21:55:50.381Z] Stage "Prepare Release" skipped due to earlier failure(s)
[2020-09-01T21:55:50.427Z] Stage "Prepare Release" skipped due to earlier failure(s)
[2020-09-01T21:55:50.592Z] Stage "Prepare Release" skipped due to earlier failure(s)
[2020-09-01T21:55:50.778Z] Stage "Prepare Release" skipped due to earlier failure(s)
[2020-09-01T21:55:51.513Z] Running on Jenkins in /var/lib/jenkins/workspace/thon_apm-agent-python-mbp_PR-912
[2020-09-01T21:55:51.706Z] [INFO] getVaultSecret: Getting secrets
[2020-09-01T21:55:51.790Z] Masking supported pattern matches of $VAULT_ADDR or $VAULT_ROLE_ID or $VAULT_SECRET_ID
[2020-09-01T21:55:52.814Z] + chmod 755 generate-build-data.sh
[2020-09-01T21:55:52.814Z] + ./generate-build-data.sh https://apm-ci.elastic.co/blue/rest/organizations/jenkins/pipelines/apm-agent-python/apm-agent-python-mbp/PR-912/ https://apm-ci.elastic.co/blue/rest/organizations/jenkins/pipelines/apm-agent-python/apm-agent-python-mbp/PR-912/runs/1 FAILURE 1146691
[2020-09-01T21:55:53.365Z] INFO: curl https://apm-ci.elastic.co/blue/rest/organizations/jenkins/pipelines/apm-agent-python/apm-agent-python-mbp/PR-912/runs/1/steps/?limit=10000 -o steps-info.json
[2020-09-01T21:55:54.708Z] INFO: curl https://apm-ci.elastic.co/blue/rest/organizations/jenkins/pipelines/apm-agent-python/apm-agent-python-mbp/PR-912/runs/1/tests/?status=FAILED -o tests-errors.json

@beniwohli Something I realized while trying to figure out how to test this today -- callbacks will also be called on initial Config creation, for any non-default values. I think this is probably ok and expected behavior? But it's something to note, and I wondered if you saw any issues with that. I feel like any operation you want to perform on config change probably needs to be performed on initialization as well, if the config value is different than the default value, but I'm not certain.


elsif (varb, expr) doesn't work correctly

LifeLines 3.2.0 c997bbfa923aa0fd9ac639dfaf6d752b943b47f9 has a bug in elsif processing.  Enclosed is a test program that worked correctly in v3.0.62, but produces incorrect output in 3.2.0.
The output should look like
4 is greater than 3
3 is greater than 2
2 is greater than 1
1 is greater than 0
0 is not positive
-1 is not positive

Version 3.2.0 produces the incorrect output
4 is greater than 3
3 is not positive
2 is not positive
1 is not positive
0 is not positive
-1 is not positive

If you change the test program so that all the (varb, expr) arguments of the if and elsif tests are changed to just (expr), then the program produces the correct output in 3.2.0.
elsiftest.txt

This is an interesting find!  I can confirm the bug report.
The interpreter grammar is untouched in this area so the bug is something much more subtle.

It seems to be a parser issue.  If you turn on interpreter debugging by adding debug(1) at the top of the main() in the elsiftest.txt program linked above, you get the following output for the last call elsifchain(-1) (and similar output for the earlier calls):
d17: (null)()
17: -1
d2: set(r,^^ is not positive^^)
evaluate_func called: 2: set
2: ^^ is not positive^^
d3: if(m,gt(d,3)){set(r,^^ is greater than 3^^)}else{if(m){set(r,^^ is greater than 2^^)}else{if(m){set(r,^^ is greater than 1^^)}else{if(m){set(r,^^ is greater than 0^^)}}}}
3: gt(d,3)
evaluate_func called: 3: gt
3: d
evaluate_iden called: iden = d
3: 3
d4: if(m){set(r,^^ is greater than 2^^)}else{if(m){set(r,^^ is greater than 1^^)}else{if(m){set(r,^^ is greater than 0^^)}}}
4: m
evaluate_iden called: iden = m
d5: if(m){set(r,^^ is greater than 1^^)}else{if(m){set(r,^^ is greater than 0^^)}}
5: m
evaluate_iden called: iden = m
d6: if(m){set(r,^^ is greater than 0^^)}
6: m
evaluate_iden called: iden = m
d7: print(d(d),r,^^
^^)
evaluate_func called: 7: print
7: d(d)
evaluate_func called: 7: d
7: d
evaluate_iden called: iden = d
-17: r
evaluate_iden called: iden = r
 is not positive7: ^^
^^

Notice in the line d3:, the parser has interpreted the elsif chain in the source code to have only one gt() test at the first if statement.  The elsif lines don't have any gt() test, they just refer to the variable m.  Thus the line d3: has only one gt() test, and the lines d4:, d5:, and d6: have no gt() test.
If I run LifeLines v3.0.62, the corresponding line from the same elsiftest.txt source with debug(1) at the top of main() looks correct, as it has a gt() test at every stage of the elsif chain:
d3: if(m,gt(d,3)){set(r,^^ is greater than 3^^)}else{if(m,gt(d,2)){set(r,^^ is greater than 2^^)}else{if(m,gt(d,1)){set(r,^^ is greater than 1^^)}else{if(m,gt(d,0)){set(r,^^ is greater than 0^^)}}}}

Apparently this bug was also present in LifeLines v3.1.1.

This bug was injected by some cleanup that Perry did back in 2007 via commit b253c83c176d1765f4a062d647ab44a7650d3e25.
One line of that change in yacc.y needs to be reverted.

Yes, reverting line 286 of yacc.y fixed the problem for me.  Nothing like a long-standing bug.  Thanks!


remove old php versions

Q
A

Bugfix
yes

BC Break
no

New Feature
yes

QA
yes

Description
Remove old PHP versions, mark old mongodb/mongodb packages as conflicting and fixed invalid property/array-key access in several files.

This fixes laminas/laminas-cache#20 aswell.

Closed in favor of #6


Output is incompatible with other viewers

There's a ply file but no cameras. How do you use the results of this with existing gaussian splat workflows. (I'm not interested in the mesh output at this stage)

@andybak Hi, what do you mean by cameras? The outputed ply should be the same as the original repo. Could you give more details, like what the other viewers are?

I might be misunderstanding something. I'm primarly using https://github.com/aras-p/UnityGaussianSplatting
My understanding is that works with the standard output files from the original repo: https://github.com/graphdeco-inria/gaussian-splatting
All the trained output I've got hold of has the following:
cameras.json
cfg_args
input.ply
point_cloud
    iteration_7000
        point_cloud.ply
    iteration_30000
        point_cloud.ply

The cameras.json is optional. However it seems to require at least one point_cloud.ply (and input.ply isn't used I think)


Add gitlab and google auth

This PR adds support for Gitlab and Google support.
It is marked as draft currently as it has a few things left to decide on:

[ ] Is the new userinfo layout OK?
[ ] Do we want to remove the "image" stuff from the login methods in favour of the frontend dealing with it?

In addition, I'd like to start adding tests for the login flows, but I will need some assistance on how to use vcr for that.

New userinfo structure looks good to me!  Being able to both iterate over the auths and access by key is more intuitive for frontend use.
As for images I don't have any objections to pushing that responsibility to the frontend. For now they're all fetched at build time anyway. Plus once we switch to a monorepo if a login provider is ever added or removed the image can be handled in the same PR so keeping things in sync isn't a huge concern.
Can give the code a closer review if needed when I'm working later in the week :smiley:

With the new changes, it still looks good to me.
I'm happy with the layout of the userinfo personally. As for the second question, I'm happy with how it is currently, but I'm not sure if there's an advantage for letting the frontend deal with it.


[7.x] Add nested array support to assertDatabaseHas

//before

$this->assertDatabaseHas('users', [
    'name' => 'John',
    'job' => 'Developer'
]);
$this->assertDatabaseHas('users', [
    'name' => 'Doe',
    'job' => 'Developer'
]);

//after

$this->assertDatabaseHas('users', [
    [
        'name' => 'John',
        'job' => 'Developer'
    ],
    [
        'name' => 'Doe',
        'job' => 'Developer'
    ],
]);

Thanks for your pull request to Laravel!
Unfortunately, I'm going to delay merging this code for now. To preserve our ability to adequately maintain the framework, we need to be very careful regarding the amount of code we include.
If possible, please consider releasing your code as a package so that the community can still take advantage of your contributions!
If you feel absolutely certain that this code corrects a bug in the framework, please "@" mention me in a follow-up comment with further explanation so that GitHub will send me a notification of your response.


Fix console error in ReportFooter

Details
Fixing a console error observed on main:
Unexpected text node: . A text node cannot be a child of a <View>.

The root cause is that a string is being used as a boolean. Threw in some miscellaneous cleanup.
Fixed Issues
$ n/a - error observed on main branch
Tests

Open any report

Verify that the console error is not present.

(internal) Open the DB, copy the email from the account you're logged into, and run this CQ, replacing the email:
INSERT INTO nameValuePairs VALUES ( (SELECT accountID FROM accounts WHERE email = 'currentemail@gmail.com'), 'private_blockedFromChat', '2099-01-01 12:00:00', DATE('now') );

Sign out and back in.

Open any report

Verify that you see Note: You have been banned from communicating in this channel

Set the NVP to a date in the past with a query like this:
UPDATE nameValuePairs SET value = '2000-06-06 12:00:00' WHERE accountID = (SELECT accountID FROM accounts WHERE email =<EMAIL_ADDRESS>AND name = 'private_blockedFromChat';

Sign out and back in.

Open any report.

Verify that you can comment as normal.

Clear the NVP with:
DELETE FROM nameValuePairs WHERE name = 'private_blockedFromChat' AND accountID = (SELECT accountID FROM accounts WHERE email = 'currentemail@gmail.com');

Sign out and back in.

Open any report

Verify that you can comment as normal.

[x] Verify that no errors appear in the JS console

Offline tests
n/a
QA Steps

Login with<EMAIL_ADDRESS>that is blocked by internal team https://github.com/Expensify/App/issues/37688#issuecomment-2070730824
Open any report. Verify that text "Note: You have been banned from communicating in this channel" is displayed and the composer is not displayed.
Verify there is no console error like Unexpected text node in the JS console.

PR Author Checklist

[x] I linked the correct issue in the ### Fixed Issues section above
[x] I wrote clear testing steps that cover the changes made in this PR

[x] I added steps for local testing in the Tests section
[x] I added steps for the expected offline behavior in the Offline steps section
[x] I added steps for Staging and/or Production testing in the QA steps section
[x] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
[x] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[x] I included screenshots or videos for tests on all platforms
[x] I ran the tests on all platforms & verified they passed on:

[x] Android: Native
[x] Android: mWeb Chrome
[x] iOS: Native
[x] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[x] MacOS: Desktop

[x] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[x] I followed proper code patterns (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[x] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

[x] If any non-english text was added/modified, I verified the translation was requested/reviewed in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:

[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is either coming verbatim from figma or has been approved by marketing (in order to get marketing approval, ask the Bug Zero team member to add the Waiting for copy label to the issue)
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I followed the guidelines as stated in the Review Guidelines
[x] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] I verified that if a function's arguments changed that all usages have also been updated correctly
[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[x] If the PR modifies the UI (e.g. new buttons, new UI components, changing the padding/spacing/sizing, moving components, etc) or modifies the form input styles:

[x] I verified that all the inputs inside a form are aligned with each other.
[x] I added Design label and/or tagged @Expensify/design so the design team can review the changes.

[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.

Screenshots/Videos

Android: Native

Android: mWeb Chrome

iOS: Native

iOS: mWeb Safari

MacOS: Chrome / Safari

MacOS: Desktop

@roryabraham we have conflicts

Conflict resolved

resolved conflicts again

Reviewer Checklist

[ ] I have verified the author checklist is complete (all boxes are checked off).
[ ] I verified the correct issue is linked in the ### Fixed Issues section above
[ ] I verified testing steps are clear and they cover the changes made in this PR

[ ] I verified the steps for local testing are in the Tests section
[ ] I verified the steps for Staging and/or Production testing are in the QA steps section
[ ] I verified the steps cover any possible failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[ ] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)

[ ] I checked that screenshots or videos are included for tests on all platforms
[ ] I included screenshots or videos for tests on all platforms
[ ] I verified tests pass on all platforms & I tested again on:

[ ] Android: Native
[ ] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[ ] MacOS: Chrome / Safari
[ ] MacOS: Desktop

[ ] If there are any errors in the console that are unrelated to this PR, I either fixed them (preferred) or linked to where I reported them in Slack
[ ] I verified proper code patterns were followed (see Reviewing the code)

[ ] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick).
[ ] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[ ] I verified that comments were added to code that is not self explanatory
[ ] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[ ] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method
[ ] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[ ] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is either coming verbatim from figma or has been approved by marketing (in order to get marketing approval, ask the Bug Zero team member to add the Waiting for copy label to the issue)
[ ] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[ ] I verified the JSDocs style guidelines (in STYLE.md) were followed

[ ] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[ ] I verified that this PR follows the guidelines as stated in the Review Guidelines
[ ] I verified other components that can be impacted by these changes have been tested, and I retested again (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar have been tested & I retested again)
[ ] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[ ] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[ ] If a new component is created I verified that:

[ ] A similar component doesn't exist in the codebase
[ ] All props are defined accurately and each prop has a /** comment above it */
[ ] The file is named correctly
[ ] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[ ] The only data being stored in the state is data necessary for rendering and nothing else
[ ] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[ ] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[ ] All JSX used for rendering exists in the render method
[ ] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[ ] If any new file was added I verified that:

[ ] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[ ] If a new CSS style is added I verified that:

[ ] A similar style doesn't already exist
[ ] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(theme.componentBG)

[ ] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[ ] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[ ] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[ ] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[ ] If the PR modifies the UI (e.g. new buttons, new UI components, changing the padding/spacing/sizing, moving components, etc) or modifies the form input styles:

[ ] I verified that all the inputs inside a form are aligned with each other.
[ ] I added Design label and/or tagged @Expensify/design so the design team can review the changes.

[ ] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[ ] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
[ ] I have checked off every checkbox in the PR reviewer checklist, including those that don't apply to this PR.

Screenshots/Videos

Android: Native

Android: mWeb Chrome

iOS: Native

iOS: mWeb Safari

MacOS: Chrome / Safari

MacOS: Desktop

:hand: This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release.

@roryabraham Can you please verify this internally? It seems to require a specific account<EMAIL_ADDRESS>Thank you!

@shubham1206agra How do we make an account as a banned one?

🚀 Deployed to production by https://github.com/luacmartins in version: 1.4.81-11 🚀

platform
result

🤖 android 🤖
failure ❌

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅


fix some crashes.

Hey, can you give me some additional info about the crashes? I want to inspect the problem and see if there are other places that need fixing too.

@peter-kish Yes, sorry, this is just the same thing as the PR I closed. I'm not sure if you saw my comment on it.
Basically this happens when switching scenes (which deletes the current scene) because you are then trying to access something that doesn't exist in memory and has already been freed.
From my understanding, you have to check for null because if obj doesn't actually check if it is valid in memory, although this is changing in 4.3 (Third bullet point from the bottom:
https://godotengine.org/article/dev-snapshot-godot-4-3-dev-1/)
I would recommend reading through this PR for a better explanation: https://github.com/godotengine/godot/pull/73896
All good if you just want to make the changes yourself if that's easier.

@LeeWannacott Cool, thanks! This gives me some additional insights:

I haven't tested scene switching with my plugin at all.
I might have had some misconceptions about if obj==null and if obj checks. I was pretty confident that they are the same, but reading through that PR that doesn't seem to be the case (also https://github.com/godotengine/godot/issues/59816).

I put together a very simple example where I do scene switching between two scenes, but I was unable to get anything to crash ☹

Even when I switch scenes in the middle of a drag&drop operation, everything seems to work fine 🤔. Do you have any additional ideas how to reproduce this?

How are you changing scenes?
Are you using either of these?:
get_tree().change_scene_to_packed()
get_tree().change_scene_to_file()

@peter-kish here is your two bugs reproduced (one for the inventory grid and one for when item is in item slot) in minimal project with video attached:
https://github.com/peter-kish/gloot/assets/49783296/3338fb57-b237-4157-907b-36ab04b2bfc0
Minimal reproduced project.
inventory-bug-minimal.zip
It also has the dragging item is no where near the cursor bug as a bonus :sweat_smile:

Ok, I figured out that the main reason why these crashes were happening in your examples but not in mine is the scene structure. The order/hierarchy of nodes determines the order of their deletion and there were some cases I didn't cover when testing (cases where you'd get a crash) because I was always using the same scene structure, which was different from yours.
Checking if the nodes are freed before using them, of course, fixes the issue.
But I think I came up with a more general solution to this problem: Instead of adding such checks on places where the plugin crashes, I added the checks in all classes that can be created by the user and also depend on some nodes inside the scene tree to function properly. This is because it is difficult to guarantee that any of those nodes will be alive and in proper state at any point, especially when switching scenes.
Another thing I did was to do explicit is_instance_valid(obj) checks because they are far more readable than if obj or if obj!=null and emphasize that the validness of the object is also important, not just whether it's null.
I pushed the changes to the dev_v2.4.2 branch: https://github.com/peter-kish/gloot/commit/3f784f8154c231595d7c34c742a08e9ab599d001 (I might include a few more fixes in v2.4.2 before I merge it to master).

v2.4.2 has been merged. Will re-open this one if crashes still happen.


Public API

This PR puts all functions in the public scope so an end-user can access various properties of the simulator (such as force and torque).

Hi @varunagrawal,
Thanks for the pull request. I think it's a good idea to make more vehicle state information available. We can add some new public functions for this.
The private functions that you made public require arguments. (They were written to handle internal computations using intermediate results.) This is inconvenient for public facing functions, which should just use the current vehicle state.
Can you tell me a bit more on how you are using these functions? For example, it seems like external use of getAttitudeDerivative would be better served by the existing public function getVehicleAngularVelocity.
Ezra

Hi @eatal. I'm really sorry for the late response. After spending some more time with the code, I have come to understand why some of those functions should and don't need to be exposed. I'll update this PR.

@eatal one of my primary use-cases was to get the force and torque acting on the quadrotor at any point, since I could compare those forces as ground truth. Do you think there is a clean way to do that?


Jasmine custom matchers with a Protractor/WebDriverJS element

Hello fellow developers,
I would like to create my own custom matcher based on a Protractor/WebDriverJS element. Is anybody able to improve my current code ?
Here is what I would like to write in the specs files
var button = element(by.tagName('button'))
expect(button).toBeEnabled();

So here is my custom Jasmine matcher :
'use strict';

function matcher(util, customEqualityTesters) {
  return {
    compare : function (actual, expected) {
      var result = {};

      expect(actual.isEnabled()).toBeTruthy()

      result.pass = true;

      if (result.pass) {
        result.message = 'Expected element to be disabled';
      }
      else {
        result.message = 'Expected element to be enabled';
      }

      return result;
    }
  };
}
module.exports = matcher;

Is there a better way to write it ? Because at the moment, if I have an error, I have the following message : Expected false to be true. However I would like to get Expected element to be enabled.
Thank you for your help.

Hi there!
Your question is better suited for StackOverflow or Gitter. Please ask a question there with the 'protractor' tag or post in the Gitter Channel to get help.
From the the getting help section of the README:

Please ask usage and debugging questions on StackOverflow (use the "protractor" tag) or in the Angular discussion group. (Please do not ask support questions here on Github.)


Updating templates to use etcd3

Getting these errors when just attempting to change the templates to just "etcd":
May 11 23:00:40 k8s-master.local coreos-cloudinit[926]: 2017/05/11 23:00:40 Wrote file to "/home/core/cloud-config.yml"
May 11 23:00:40 k8s-master.local coreos-cloudinit[926]: 2017/05/11 23:00:40 Wrote file /home/core/cloud-config.yml to filesystem
May 11 23:00:40 k8s-master.local coreos-cloudinit[926]: 2017/05/11 23:00:40 Writing unit "coreos-bootstrap.service" to filesystem
May 11 23:00:40 k8s-master.local coreos-cloudinit[926]: 2017/05/11 23:00:40 Writing file to "/etc/systemd/system/coreos-bootstrap.service"
May 11 23:00:40 k8s-master.local coreos-cloudinit[926]: 2017/05/11 23:00:40 Wrote file to "/etc/systemd/system/coreos-bootstrap.service"
May 11 23:00:40 k8s-master.local coreos-cloudinit[926]: 2017/05/11 23:00:40 Wrote unit "coreos-bootstrap.service"
May 11 23:00:40 k8s-master.local coreos-cloudinit[926]: 2017/05/11 23:00:40 Ensuring runtime unit file "etcd.service" is unmasked
May 11 23:00:40 k8s-master.local coreos-cloudinit[926]: 2017/05/11 23:00:40 Ensuring runtime unit file "etcd2.service" is unmasked
May 11 23:00:40 k8s-master.local coreos-cloudinit[926]: 2017/05/11 23:00:40 Ensuring runtime unit file "fleet.service" is unmasked
May 11 23:00:40 k8s-master.local coreos-cloudinit[926]: 2017/05/11 23:00:40 Ensuring runtime unit file "locksmithd.service" is unmasked
May 11 23:00:40 k8s-master.local systemd[1]: Reloading.
May 11 23:00:40 k8s-master.local systemd[1]: Starting Garbage Collection for rkt...
May 11 23:00:40 k8s-master.local coreos-cloudinit[926]: 2017/05/11 23:00:40 Calling unit command "start" on "coreos-bootstrap.service"
May 11 23:00:40 k8s-master.local systemd[1]: Starting Install coreos to disk...
May 11 23:00:40 k8s-master.local systemd[1]: Started Garbage Collection for rkt.
May 11 23:00:40 k8s-master.local coreos-install[1090]: 2017/05/11 23:00:40 Checking availability of "local-file"
May 11 23:00:40 k8s-master.local coreos-install[1090]: 2017/05/11 23:00:40 Fetching user-data from datasource of type "local-file"
May 11 23:00:40 k8s-master.local coreos-install[1090]: 2017/05/11 23:00:40 line 17: warning: deprecated key "listen_client_urls" (etcd2 options no longer work for etcd)
May 11 23:00:40 k8s-master.local coreos-install[1090]: 2017/05/11 23:00:40 line 18: warning: deprecated key "advertise_client_urls" (etcd2 options no longer work for etcd)
May 11 23:00:40 k8s-master.local coreos-install[1090]: 2017/05/11 23:00:40 line 19: warning: deprecated key "initial_cluster" (etcd2 options no longer work for etcd)
May 11 23:00:40 k8s-master.local coreos-install[1090]: 2017/05/11 23:00:40 line 20: warning: deprecated key "proxy" (etcd2 options no longer work for etcd)
May 11 23:00:40 k8s-master.local coreos-install[1090]: /usr/bin/coreos-install: Cloud config file (/home/core/cloud-config.yml) is not valid.
May 11 23:00:40 k8s-master.local systemd[1]: coreos-bootstrap.service: Main process exited, code=exited, status=1/FAILURE
May 11 23:00:40 k8s-master.local systemd[1]: Failed to start Install coreos to disk.
May 11 23:00:40 k8s-master.local systemd[1]: coreos-bootstrap.service: Unit entered failed state.
May 11 23:00:40 k8s-master.local coreos-cloudinit[926]: 2017/05/11 23:00:40 Result of "start" on "coreos-bootstrap.service": failed

And here is when I changed it to "etcd3"
May 11 23:23:25 k8s-master.local coreos-cloudinit[952]: 2017/05/11 23:23:25 Fetching meta-data from datasource of type "proc-cmdline"
May 11 23:23:25 k8s-master.local coreos-cloudinit[952]: 2017/05/11 23:23:25 Parsing user-data as cloud-config
May 11 23:23:25 k8s-master.local coreos-cloudinit[952]: 2017/05/11 23:23:25 Merging cloud-config from meta-data and user-data
May 11 23:23:25 k8s-master.local coreos-cloudinit[952]: 2017/05/11 23:23:25 Authorized SSH keys for core user
May 11 23:23:25 k8s-master.local coreos-cloudinit[952]: 2017/05/11 23:23:25 Writing file to "/home/core/cloud-config.yml"
May 11 23:23:25 k8s-master.local coreos-cloudinit[952]: 2017/05/11 23:23:25 Wrote file to "/home/core/cloud-config.yml"
May 11 23:23:25 k8s-master.local coreos-cloudinit[952]: 2017/05/11 23:23:25 Wrote file /home/core/cloud-config.yml to filesystem
May 11 23:23:25 k8s-master.local coreos-cloudinit[952]: 2017/05/11 23:23:25 Writing unit "coreos-bootstrap.service" to filesystem
May 11 23:23:25 k8s-master.local coreos-cloudinit[952]: 2017/05/11 23:23:25 Writing file to "/etc/systemd/system/coreos-bootstrap.service"
May 11 23:23:25 k8s-master.local coreos-cloudinit[952]: 2017/05/11 23:23:25 Wrote file to "/etc/systemd/system/coreos-bootstrap.service"
May 11 23:23:25 k8s-master.local coreos-cloudinit[952]: 2017/05/11 23:23:25 Wrote unit "coreos-bootstrap.service"
May 11 23:23:25 k8s-master.local coreos-cloudinit[952]: 2017/05/11 23:23:25 Ensuring runtime unit file "etcd.service" is unmasked
May 11 23:23:25 k8s-master.local coreos-cloudinit[952]: 2017/05/11 23:23:25 Ensuring runtime unit file "etcd2.service" is unmasked
May 11 23:23:25 k8s-master.local coreos-cloudinit[952]: 2017/05/11 23:23:25 Ensuring runtime unit file "fleet.service" is unmasked
May 11 23:23:25 k8s-master.local coreos-cloudinit[952]: 2017/05/11 23:23:25 Ensuring runtime unit file "locksmithd.service" is unmasked
May 11 23:23:25 k8s-master.local systemd[1]: Reloading.
May 11 23:23:25 k8s-master.local systemd[1]: Starting Garbage Collection for rkt...
May 11 23:23:25 k8s-master.local systemd-udevd[687]: Invalid rule /usr/lib64/udev/rules.d/73-seat-late.rules:15: RUN{builtin}: 'uaccess' unknown
May 11 23:23:25 k8s-master.local coreos-cloudinit[952]: 2017/05/11 23:23:25 Calling unit command "start" on "coreos-bootstrap.service"
May 11 23:23:25 k8s-master.local systemd[1]: Starting Install coreos to disk...
May 11 23:23:25 k8s-master.local systemd[1]: Started Garbage Collection for rkt.
May 11 23:23:25 k8s-master.local coreos-install[1079]: 2017/05/11 23:23:25 Checking availability of "local-file"
May 11 23:23:25 k8s-master.local coreos-install[1079]: 2017/05/11 23:23:25 Fetching user-data from datasource of type "local-file"
May 11 23:23:25 k8s-master.local coreos-install[1079]: 2017/05/11 23:23:25 line 16: warning: unrecognized key "etcd3"
May 11 23:23:25 k8s-master.local coreos-install[1079]: /usr/bin/coreos-install: Cloud config file (/home/core/cloud-config.yml) is not valid.
May 11 23:23:25 k8s-master.local systemd[1]: coreos-bootstrap.service: Main process exited, code=exited, status=1/FAILURE
May 11 23:23:25 k8s-master.local systemd[1]: Failed to start Install coreos to disk.
May 11 23:23:25 k8s-master.local systemd[1]: coreos-bootstrap.service: Unit entered failed state.
May 11 23:23:25 k8s-master.local coreos-cloudinit[952]: 2017/05/11 23:23:25 Result of "start" on "coreos-bootstrap.service": failed

I don't think etcd3 is what the service shows up as. I believe etcd2 is maintained just for backwards compatibility for the moment as the errors in the first seem to suggest that options using in the template are no longer supported.
I am using CoreOS 1353.7.0.

So I guess cloud-init is just deprecated now. I wonder why they even continue to keep it in Coreos if that's the case. So much for being lightweight :/
I'm going to look at ignition. May just need to rewrite templates for Foreman in that case.
Either way, I learned stuff along the way.

Did you try to validate your rendered config with: https://coreos.com/validate ? Maybe just a missing space or something?
It looks like they named the etcd3 service etcd again... https://coreos.com/etcd/docs/latest/getting-started-with-etcd.html probalby not the best idea but okay :D

Line: 17deprecated key "listen_client_urls" (etcd2 options no longer work for etcd)
Line: 18deprecated key "advertise_client_urls" (etcd2 options no longer work for etcd)
Line: 19deprecated key "initial_cluster" (etcd2 options no longer work for etcd)
Line: 20deprecated key "proxy" (etcd2 options no longer work for etcd)

Same errors I saw in the journal. I imagine since the github repo for cloudconfig says its deprecated that there may not be an alternative for those options. I'll re-open this for now until I can confirm.

I investigated some time to understand the changes they made. From my perspective there are the following changes:

The etcd/etcd2 section in cloud-config is deprecated
There is now a two step approach: https://coreos.com/os/docs/latest/overview-of-ct.html At first create a container linux config then use the ct tool to generate an ignition file (ctwill do an simple syntax and sanity check). The generated ignition file can be used to bootstrap a new Container Linux instance at boot time.
etcd will be per default started as rkt container (the etcd-wrapper will automatically generate the systemd file for you)
Here are the docs for running etcd: https://coreos.com/etcd/docs/latest/getting-started-with-etcd.html

So from my perspective we should move from cloud-config to ignition (since this is the supported and preferred).

So, theoretically we should be able to use this ct tool to convert the existing cloudconfigs to Ignition? Then convert that to a template in Foreman?
I searched but I can't seem to find anymore reference to the CT tool itself.

No, ct is not a tool to convert from cloudconfig to Ignition but a tool to convert from an "intermediate", human-friendly YAML format to a machine-readable JSON config file.
https://coreos.com/os/docs/latest/overview-of-ct.html
https://github.com/coreos/container-linux-config-transpiler/


Add a history chart popup to sensors

uses Chart.js 2.8.0
uses Moment.js 2.24.0
(both MIT license)
Things to consider:

I basically started with a copy of the iframe-popup.
Should the History-Retrieval be moved to the Api?
Should it be more general? HA itself is much more involved about its history charts.
I'm not using some fetch Api or similar on purpose: this should work on older systems, too.
~~How can I add the 'tick' in the top-left corner of the tile to indicate it can be clicked? ~~
Figured that one out: add classes to your tile as below.
This adds two more dependencies.

Here is an example tile with all options:

{type: TYPES.SENSOR, id:
                  'sensor.temperatur_aussen_gefiltert',
classes: ['-switch'],
historyClasses: 'item -th-cover',
  historyStyles: {
    color: 'red',width: '80%'
  },
  historyOffset: 24*60*60*2*1000,
  historyEntity: 'sensor.temperatur_innen_gefiltert',
  historyChart: {
    type: 'scatter',
data:{datasets: [{borderColor: 'rgb(255,0,0)'}]}
  }
},

Let's wait for the high-level ok and then go forward with reviews, changes, documentation...

I don’t mind history in a pop-up in principal however the implementation is a bit sketchy and ads even more dependencies. All transport functions should definitely be in API.

The dependency could be brought down (seemingly) by moment.js, because there is a version, where it is bundled to chart.js. But the code would still be there obviously. This is why I included both separately. It seemed cleaner. But yes: It adds two dependencies.
And the sketchy code can be improved with some guidance. I'm not a JS developer orginally...

One problem for me with introducing this feature is that it does only cover some use cases. History of entity would be useful for most if not all entities, not only sensors. It is nice being able to see when switches (lights) were turned on or off, for example. Or how long TV was running. I understand that the problem is that some entities already react to click so there is a conflict but maybe we should think of more radical changes then, that would implement graphs globally in a consistent way.
(Easier said than done though...)

How about a more flexible configuration for click and long press? We could allow a field like action or longPressAction in all tile types, thus enable overriding default click actions. If someone wants history, they could just put openPopupHistory(item, entity) in that option.
Another possibility would be to introduce a small symbol like the -clickable tick, which can be actually clicked. As I don't see another 'free' place, this should probably replace the clickable tick. It could become a small square, if a popup is associated to the tile.

I would love each tile to have an overridable onclick or onlongpress function.

In #282 I found that actually only the dimmer tile has a longClickAction associated. So, the longClickAction would be a perfect candidate to show a history graph, if the user wishes so.

So, the longClickAction would be a perfect candidate to show a history graph, if the user wishes so.

I would really wish we'd come up with a solution that is more user-friendly than having to manually specify handlers when wanting to show graph for an entity. As I said, it really makes sense to support graph for all entities.
I feel like default would have to be "long press" but then there would need to be a solution for how to make that coexist with existing functionality (light dimming).
I have one suggestion but it would require significant changes -- instead of changing state of tile on long press, have a "sheet" slide up from the bottom with relevant options. That would have enough space to accommodate both graphs and tile-specific options. Or it could have some sort of tabs interface.

That's basically already there: popups. I'm pretty sure there is a straightforward css option to make it slide.
Then: How about to create a generic popup? Much like the camera one, where one could add tiles as desired:
{
  ... tile stuff ...,
  popup: {
    type: fullscreen/ontile,
    width: ..., height: ...,
    items: [
      {
        type: TYPES.HISTORY,
        id: 'some template to get id of tile'
      },
      {
        type: TYPES.SLIDER, ...
      }
    ]
  }
}

Finally, associate some default popup configuration to tile types. Much as my TEMPLATES in the other PR. ;-) But let's not mix this up for now.

I will do a separate PR for turning API into a module. It's needed to be able to use $http inside of it.

Wouldn't it make sense to keep the API independent of the app? So that people could reuse it?
Also, if you change it, there is already a potential use for $http in the current code. I'm a bit afraid that changing that bit of code will break things on older devices, which do not support promises. Such as my old iPad on ios 9.3.5.

@akloeckner
I've actually just done that. See:
03073990905a0b84dea224779e2b5900fef63b7f
d86d7f8cbd44af181a8146359d32d3d89a0e92af
b58a8546d4d6a46bba601fe9883be7170f592b0d
To answer your questions:

Wouldn't it make sense to keep the API independent of the app? So that people could reuse it?

Being an angular service, it can still be used independently by injecting it wherever anyone wants.
But then I'm not sure what do you mean by reuse? Do you mean reuse within TileBoard or completely independently? I think the latter case is not the goal and we shouldn't need to care about that.

Also, if you change it, there is already a potential use for $http in the current code.

Yes, I've converted existing use of XMLHttpRequest into $http.

I'm a bit afraid that changing that bit of code will break things on older devices, which do not support promises

Angular.js includes its own implementation of Promises. It doesn't depend on native promises. If angular.js itself works on a device, there is no reason to think that it's internal $http service won't.

By reuse, I meant actually re-use it anywhere. But you're right: not our primary concern.
I checked now on my old device and $http works just fine. (Pew...)

A couple more comments after looking at the code more:

Can use https://jtblin.github.io/angular-chart.js/ instead of messy manual use of Chartjs API.
Graphs only work for some values. Works for temperature for example but not for binary sensors with only on and off value.
The graph is quite unreadable IMO. Compare the graph for the same sensor with how HomeAssistant shows it:

Home Assistant
This PR

Since we can easily make the graph smaller, there would be plenty of space to move light dimming to the popup and then just enable long press to show the graph for all entities. Like Home Assistant does it in fact:

I would agree with @rchl and it would be much cleaner to stick with angular-chart.js

Also, just a thought: wouldn't it look cleaner like this:
history: {
  offset: 24*60*60*2*1000,
  entity: 'sensor.temperatur_innen_gefiltert',
  chart: {
    type: 'scatter',
    ...
  }
}

Alright. I think, I addressed everything I can for now:
Structural things:

use $http. done
move things to Api. done
modify .less and compile. done
check if this is possible through websocket. done. it is not possible.
dependencies. we will have to live with it, if we want this feature
angular-chartjs. this is not maintained anymore. also it would introduce even more dependencies. for completeness: a new option might be ng2-charts.
sketchy code. better now, I hope. please advise.
move options to lower-level history. done
consistent showing of popup. done. it is now default on long-press for sensors. and everything else will show it, if history is present in the tile object.
new options documented. done

Minor things

add authorization. done
no content-type. done
spaces around +. done, i hope.
use toAbsoluteServerURL. done
variables should be CamelCased. done

Additional features requested

categorial data. such as binary sensors. done
chart too big. it just fills the popup. if data is pretty depends on the data actually. and the device orientation. any maybe other things.
unreadable graphs. I just used the minimum options i could think of. let's talk about default graph options now.

Additional features requested but of scope for this PR

generic sliding options opopup. this is out of the scope of this PR, I believe.
default chart types. this is out of scope of this PR, I believe.

angular-chartjs. this is not maintained anymore. also it would introduce even more dependencies. for completeness: a new option might be ng2-charts.

Many angular.js components are not maintained anymore. Even angular.js is basically on life support. I don't think we should be worried about that as long as the component works fine right now.
Sorry, but I'd like to see it done properly using that directive. The way things in angular should be done and what makes reactivity work nicely without needing to manually draw or detect when things change.
ng2-charts is for angular2+, not for angular.js.

chart too big. it just fills the popup. if data is pretty depends on the data actually. and the device orientation. any maybe other things.

I think it makes sense to force certain ratio. For example 12:6 (haven't tried so up to discussion), so that graph is always wider than higher. The width needs to be as big as possible as it's most important to have time axis to be as precise as possible. The unit axis probably doesn't need a lot of space typically and can even make things less readable.

Aspect ratio is 4:3 now including title and axes, which looks good to me. That might even roughly fit your 2:1 on the actual chart area.

I also invested quite some time on the angular module. I'm still not convinced, but it's your project.

Could you give me access to push to branch? I want to do some minor change but avoid long and annoying back and forth.
https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/allowing-changes-to-a-pull-request-branch-created-from-a-fork

That should work already, if I interpret the checkmark correctly...

Hmm, I guess being a collaborator, I might not be allowed to push...

Can't make it work. I will submit improvements in a separate PR.
Thanks for your work on this and patience with a picky reviewer. :)

Thanks for your work on this and patience with a picky reviewer.


Created output gen funcs, built for prog tables

Also removed the Campaign functions. Will implement
manually later.

Wait to merge, needs to incorporate method tables as well

@soroushojagh


fix: enforce isDefEqStuckEx at unstuckMVar procedure

Closes #2736
See comment at ExprDefEq.lean for explanation.
Side effects:

Improved error messages in two tests.
Had to improve getSuccesses procedure at App.lean. It now
discards candidates that contain postponed elaboration problems.
If it is too disruptive for Mathlib, we should try to discard the
ones that have postponed metavariables.

I'm sorry, I don't understand why the Mathlib CI is failing here. @leodemoura, I have a local build of Mathlib with only minor changes, if you want to proceed.

The Mathlib CI is failing with:
info: downloading component 'lean'
info: installing component 'lean'
info: batteries: cloning https://github.com/leanprover-community/batteries to '././.lake/packages/batteries'
info: Qq: cloning https://github.com/leanprover-community/quote4 to '././.lake/packages/Qq'
info: aesop: cloning https://github.com/leanprover-community/aesop to '././.lake/packages/aesop'
error: external command 'git' exited with code 128

@tydeu, a resolution to #4302 would be really helpful here, as it's hard to guess what is happening. Locally everything works fine.

@semorrison In the meantime, I rebased on top of the new nightly-with-mathlib and resubmitted.