-
Notifications
You must be signed in to change notification settings - Fork 2.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Relax prometheus_client version (#3161) #3163
Conversation
The impact here would be to the It may be worth revisiting that all tests are at least run through CI on the latest supported python version (a future improvement). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Local test results of py39-contrib
using this branch resulted in 100% unittest success, including the prometheus_metric_test.py
cases.
tox installed prometheus-client==0.14.1
for these tests.
~/code > git clone git@github.com:nstinus/luigi.git tmp-luigi
Cloning into 'tmp-luigi'...
remote: Enumerating objects: 20469, done.
remote: Counting objects: 100% (11/11), done.
remote: Compressing objects: 100% (9/9), done.
remote: Total 20469 (delta 2), reused 9 (delta 2), pack-reused 20458
Receiving objects: 100% (20469/20469), 10.36 MiB | 16.50 MiB/s, done.
Resolving deltas: 100% (14245/14245), done.
~/code > cd tmp-luigi
~/code/tmp-luigi (tmp-luigi@master) > ~/venv/luigi-3.9/bin/python -m tox -e py39-contrib
py39-contrib create: /home/dillon/code/tmp-luigi/.tox/py39-contrib
py39-contrib installdeps: pytest<7.0, pytest-cov>=2.0,<3.0, mock<2.0, moto>=1.3.10, HTTPretty==0.8.10, docker>=2.1.0, boto>=2.42,<3.0, boto3>=1.11.0, pyhive[presto]==0.6.1, s3transfer>=0.3,<4.0, sqlalchemy<1.4, elasticsearch>=1.0.0,<2.0.0, psutil<4.0, mysql-connector-python>=8.0.12, avro-python3, google-compute-engine, coverage>=5.0,<6, codecov>=1.4.0, requests>=2.20.0,<3.0, pygments, hypothesis>=6.7.0,<7.0.0, selenium==3.0.2, pymongo==3.4.0, toml<2.0.0, responses<1.0.0, azure-storage<=0.36, datadog==0.22.0, prometheus-client>=0.5.0<0.15
py39-contrib develop-inst: /home/dillon/code/tmp-luigi
py39-contrib installed: attrs==21.4.0,avro-python3==1.10.2,azure-common==1.1.28,azure-nspkg==3.0.2,azure-storage==0.36.0,boto==2.49.0,boto3==1.22.10,botocore==1.25.10,certifi==2021.10.8,cffi==1.15.0,charset-normalizer==2.0.12,codecov==2.1.12,coverage==5.5,cryptography==37.0.2,datadog==0.22.0,decorator==5.1.1,distro==1.7.0,docker==5.0.3,docutils==0.18.1,elasticsearch==1.9.0,future==0.18.2,google-compute-engine==2.8.13,httpretty==0.8.10,hypothesis==6.46.2,idna==3.3,iniconfig==1.1.1,Jinja2==3.1.2,jmespath==1.0.0,lockfile==0.12.2,-e git+ssh://git@github.com/nstinus/luigi.git@c0162dabe63f2bb1282e22edec65ae50c28baab2#egg=luigi,MarkupSafe==2.1.1,mock==1.3.0,moto==3.1.8,mysql-connector-python==8.0.29,packaging==21.3,pbr==5.9.0,pluggy==1.0.0,prometheus-client==0.14.1,protobuf==3.20.1,psutil==3.4.2,py==1.11.0,pycparser==2.21,Pygments==2.12.0,PyHive==0.6.1,pymongo==3.4.0,pyparsing==3.0.8,pytest==6.2.5,pytest-cov==2.12.1,python-daemon==2.3.0,python-dateutil==2.8.2,pytz==2022.1,requests==2.27.1,responses==0.20.0,s3transfer==0.5.2,selenium==3.0.2,simplejson==3.17.6,six==1.16.0,sortedcontainers==2.4.0,SQLAlchemy==1.3.24,tenacity==8.0.1,toml==0.10.2,tornado==6.1,urllib3==1.26.9,websocket-client==1.3.2,Werkzeug==2.1.2,xmltodict==0.13.0
py39-contrib run-test-pre: PYTHONHASHSEED='3482531086'
py39-contrib run-test: commands[0] | python --version
Python 3.9.11
py39-contrib run-test: commands[1] | python test/runtests.py -m contrib
==================================================================================== test session starts ====================================================================================
platform linux -- Python 3.9.11, pytest-6.2.5, py-1.11.0, pluggy-1.0.0 -- /home/dillon/code/tmp-luigi/.tox/py39-contrib/bin/python
cachedir: .tox/py39-contrib/.pytest_cache
hypothesis profile 'default' -> database=DirectoryBasedExampleDatabase('/home/dillon/code/tmp-luigi/.hypothesis/examples')
rootdir: /home/dillon/code/tmp-luigi, configfile: tox.ini, testpaths: test
plugins: cov-2.12.1, hypothesis-6.46.2
collected 1773 items / 1693 deselected / 11 skipped / 69 selected
test/contrib/cascading_test.py::CascadingClientTest::test_FileAlreadyExists_propagation PASSED [ 1%]
test/contrib/cascading_test.py::CascadingClientTest::test_failings PASSED [ 2%]
test/contrib/cascading_test.py::CascadingClientTest::test_fallbacking PASSED [ 3%]
test/contrib/cascading_test.py::CascadingClientTest::test_method_names_kwarg PASSED [ 5%]
test/contrib/cascading_test.py::CascadingClientTest::test_successes PASSED [ 6%]
test/contrib/docker_runner_test.py::TestDockerTask::test_fail_job_container PASSED [ 7%]
test/contrib/docker_runner_test.py::TestDockerTask::test_fail_job_image_not_found PASSED [ 8%]
test/contrib/docker_runner_test.py::TestDockerTask::test_local_file_mount PASSED [ 10%]
test/contrib/docker_runner_test.py::TestDockerTask::test_multiple_jobs PASSED [ 11%]
test/contrib/docker_runner_test.py::TestDockerTask::test_multiple_jobs2 PASSED [ 12%]
test/contrib/docker_runner_test.py::TestDockerTask::test_success_job PASSED [ 13%]
test/contrib/docker_runner_test.py::TestDockerTask::test_temp_dir_creation PASSED [ 15%]
test/contrib/external_program_test.py::ExternalProgramTaskTest::test_always_log_stderr_on_failure PASSED [ 16%]
test/contrib/external_program_test.py::ExternalProgramTaskTest::test_app_interruption PASSED [ 17%]
test/contrib/external_program_test.py::ExternalProgramTaskTest::test_capture_output_set_to_false_writes_output_to_stdout PASSED [ 18%]
test/contrib/external_program_test.py::ExternalProgramTaskTest::test_dont_log_stderr_on_success_if_disabled PASSED [ 20%]
test/contrib/external_program_test.py::ExternalProgramTaskTest::test_handle_failed_job PASSED [ 21%]
test/contrib/external_program_test.py::ExternalProgramTaskTest::test_log_stderr_on_success_by_default PASSED [ 22%]
test/contrib/external_program_test.py::ExternalProgramTaskTest::test_no_url_searching_is_performed_if_pattern_is_not_set PASSED [ 23%]
test/contrib/external_program_test.py::ExternalProgramTaskTest::test_non_mocked_task_run PASSED [ 25%]
test/contrib/external_program_test.py::ExternalProgramTaskTest::test_program_args_must_be_implemented PASSED [ 26%]
test/contrib/external_program_test.py::ExternalProgramTaskTest::test_run PASSED [ 27%]
test/contrib/external_program_test.py::ExternalProgramTaskTest::test_tracking_url_context_works_correctly_when_logs_output_pattern_to_url_is_not_default PASSED [ 28%]
test/contrib/external_program_test.py::ExternalProgramTaskTest::test_tracking_url_context_works_without_capture_output PASSED [ 30%]
test/contrib/external_program_test.py::ExternalProgramTaskTest::test_tracking_url_pattern_works_with_capture_output_disabled PASSED [ 31%]
test/contrib/external_program_test.py::ExternalProgramTaskTest::test_tracking_url_pattern_works_with_capture_output_enabled PASSED [ 32%]
test/contrib/external_program_test.py::ExternalProgramTaskTest::test_tracking_url_pattern_works_with_stderr PASSED [ 33%]
test/contrib/external_program_test.py::ExternalPythonProgramTaskTest::test_original_environment_is_kept_intact PASSED [ 35%]
test/contrib/external_program_test.py::ExternalPythonProgramTaskTest::test_pythonpath_is_prepended_if_not_empty PASSED [ 36%]
test/contrib/external_program_test.py::ExternalPythonProgramTaskTest::test_pythonpath_is_set_if_empty PASSED [ 37%]
test/contrib/external_program_test.py::ExternalPythonProgramTaskTest::test_venv_is_set_and_prepended_to_path PASSED [ 38%]
test/contrib/lsf_test.py::TestSGEJob::test_run_job PASSED [ 40%]
test/contrib/lsf_test.py::TestSGEJob::test_run_job_with_dump PASSED [ 41%]
test/contrib/opener_test.py::TestOpenerTarget::test_binary_support PASSED [ 42%]
test/contrib/opener_test.py::TestOpenerTarget::test_default_target PASSED [ 43%]
test/contrib/opener_test.py::TestOpenerTarget::test_invalid_target PASSED [ 45%]
test/contrib/opener_test.py::TestOpenerTarget::test_local_target PASSED [ 46%]
test/contrib/opener_test.py::TestOpenerTarget::test_local_tmp_target PASSED [ 47%]
test/contrib/opener_test.py::TestOpenerTarget::test_mock_target PASSED [ 48%]
test/contrib/opener_test.py::TestOpenerTarget::test_mock_target_root PASSED [ 50%]
test/contrib/opener_test.py::TestOpenerTarget::test_s3_parse PASSED [ 51%]
test/contrib/opener_test.py::TestOpenerTarget::test_s3_parse_param PASSED [ 52%]
test/contrib/prometheus_metric_test.py::PrometheusMetricTest::test_configure_http_handler PASSED [ 53%]
test/contrib/prometheus_metric_test.py::PrometheusMetricTest::test_handle_task_disabled PASSED [ 55%]
test/contrib/prometheus_metric_test.py::PrometheusMetricTest::test_handle_task_done PASSED [ 56%]
test/contrib/prometheus_metric_test.py::PrometheusMetricTest::test_handle_task_failed PASSED [ 57%]
test/contrib/prometheus_metric_test.py::PrometheusMetricTest::test_handle_task_started PASSED [ 58%]
test/contrib/salesforce_test.py::TestSalesforceAPI::test_deprecated_results_warning PASSED [ 60%]
test/contrib/salesforce_test.py::TestSalesforceAPI::test_result_ids PASSED [ 61%]
test/contrib/salesforce_test.py::TestSalesforceQuery::test_multi_csv_download PASSED [ 62%]
test/contrib/scalding_test.py::ScaldingTest::test_scalding PASSED [ 63%]
test/contrib/sge_test.py::TestSGEWrappers::test_track_job PASSED [ 65%]
test/contrib/sge_test.py::TestSGEJob::test_run_job PASSED [ 66%]
test/contrib/sge_test.py::TestSGEJob::test_run_job_with_dump PASSED [ 67%]
test/contrib/sqla_test.py::TestSQLA::test_column_row_separator PASSED [ 68%]
test/contrib/sqla_test.py::TestSQLA::test_create_marker_table PASSED [ 70%]
test/contrib/sqla_test.py::TestSQLA::test_create_table PASSED [ 71%]
test/contrib/sqla_test.py::TestSQLA::test_create_table_raises_no_columns PASSED [ 72%]
test/contrib/sqla_test.py::TestSQLA::test_multiple_engines PASSED [ 73%]
test/contrib/sqla_test.py::TestSQLA::test_multiple_tasks PASSED [ 75%]
test/contrib/sqla_test.py::TestSQLA::test_reflect PASSED [ 76%]
test/contrib/sqla_test.py::TestSQLA::test_row_overload PASSED [ 77%]
test/contrib/sqla_test.py::TestSQLA::test_rows PASSED [ 78%]
test/contrib/sqla_test.py::TestSQLA::test_run PASSED [ 80%]
test/contrib/sqla_test.py::TestSQLA::test_run_with_chunk_size PASSED [ 81%]
test/contrib/sqla_test.py::TestSQLA::test_touch PASSED [ 82%]
test/contrib/sqla_test.py::TestSQLA::test_update_rows_test PASSED [ 83%]
test/contrib/sqla_test.py::TestSQLA2::test_column_row_separator PASSED [ 85%]
test/contrib/sqla_test.py::TestSQLA2::test_create_marker_table PASSED [ 86%]
test/contrib/sqla_test.py::TestSQLA2::test_create_table PASSED [ 87%]
test/contrib/sqla_test.py::TestSQLA2::test_create_table_raises_no_columns PASSED [ 88%]
test/contrib/sqla_test.py::TestSQLA2::test_multiple_engines PASSED [ 90%]
test/contrib/sqla_test.py::TestSQLA2::test_multiple_tasks PASSED [ 91%]
test/contrib/sqla_test.py::TestSQLA2::test_reflect PASSED [ 92%]
test/contrib/sqla_test.py::TestSQLA2::test_row_overload PASSED [ 93%]
test/contrib/sqla_test.py::TestSQLA2::test_rows PASSED [ 95%]
test/contrib/sqla_test.py::TestSQLA2::test_run PASSED [ 96%]
test/contrib/sqla_test.py::TestSQLA2::test_run_with_chunk_size PASSED [ 97%]
test/contrib/sqla_test.py::TestSQLA2::test_touch PASSED [ 98%]
test/contrib/sqla_test.py::TestSQLA2::test_update_rows_test PASSED [100%]
@nstinus, Now that we know unittests pass, we'll need to update the setup reference to actually create the installation dep version update: |
not ready to merge yet; need to update installation dependency pinning
Done: b51afed |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
lgtm
Description
Relax prometheus_client contraints.
Motivation and Context
Currently, prometheus_client is pinned at 0.5.0 which dates from 2018. Having strong contraints on old packages prevents the installation of luigi with other more up to date packages in environments.
Have you tested this? If so, how?
Ran the py39-contrib test suite: