From 057988011a9bce24f8d1ef944dae3ec1eb9cf20f Mon Sep 17 00:00:00 2001 From: Fayssal Defaa Date: Thu, 23 May 2024 11:43:30 +0200 Subject: [PATCH] add yaml linting and auto-sorting --- .github/actions/lint_code/action.yaml | 3 + .yamllint | 4 + docs/edit/lint.md | 12 +++ format-yaml.sh | 3 + format.sh | 7 +- manifests/cpp.yml | 10 +- manifests/dotnet.yml | 26 ++--- manifests/golang.yml | 60 ++++++------ manifests/java.yml | 119 ++++++++++------------- manifests/nodejs.yml | 85 ++++++++-------- manifests/parser/live-checker.py | 34 +++++++ manifests/php.yml | 44 +++++---- manifests/python.yml | 50 +++++----- manifests/python_otel.yml | 1 - manifests/ruby.yml | 133 +++++++++++++++----------- requirements.txt | 1 + 16 files changed, 336 insertions(+), 256 deletions(-) create mode 100644 .yamllint create mode 100755 format-yaml.sh create mode 100644 manifests/parser/live-checker.py diff --git a/.github/actions/lint_code/action.yaml b/.github/actions/lint_code/action.yaml index ef47d0c618..b60992fd5f 100644 --- a/.github/actions/lint_code/action.yaml +++ b/.github/actions/lint_code/action.yaml @@ -33,4 +33,7 @@ runs: run: | npm install npm run lint + - name: 'Run YAML lint' + shell: bash + run: source venv/bin/activate && yamllint manifests diff --git a/.yamllint b/.yamllint new file mode 100644 index 0000000000..b7412e2c12 --- /dev/null +++ b/.yamllint @@ -0,0 +1,4 @@ +extends: default + +rules: + line-length: disable # disabled untill we finalize the schema \ No newline at end of file diff --git a/docs/edit/lint.md b/docs/edit/lint.md index b506e027eb..8392d536a6 100644 --- a/docs/edit/lint.md +++ b/docs/edit/lint.md @@ -31,3 +31,15 @@ black . Et voila, all your files are correctly formated :tada: +## Manifest files +### Using Docker +As to the manifest files, it can be tedious to order the files/folders by hand. So here are some easy steps to format them: +### Using a virtualenv + +Same steps as before for the setup, now, just run : + +```bash +./format-yaml.sh +``` + +All your manifests are correctly formated \ No newline at end of file diff --git a/format-yaml.sh b/format-yaml.sh new file mode 100755 index 0000000000..2f61de79ad --- /dev/null +++ b/format-yaml.sh @@ -0,0 +1,3 @@ +#!/bin/sh +python manifests/parser/live-checker.py manifests +yamllint manifests/ \ No newline at end of file diff --git a/format.sh b/format.sh index f6af173b37..18cbe817f2 100755 --- a/format.sh +++ b/format.sh @@ -2,13 +2,14 @@ set -eu readonly BLACK_VERSION=19.10b0 -readonly IMAGE=black:${BLACK_VERSION} +readonly IMAGE=formatter-black-yaml:${BLACK_VERSION} +#name of the image changed to take into account images built earlier if [[ -z "$(docker images -q "${IMAGE}")" ]]; then echo "Building ${IMAGE}" docker build -t "${IMAGE}" - < dict: + sorted_keys = sorted(obj.keys(), key=lambda k: (not k.endswith("/"), k)) + sorted_obj = {} + for key in sorted_keys: + if isinstance(obj[key], dict): + sorted_obj[key] = sort_keys(obj[key], f"{path}{key}/") + else: + sorted_obj[key] = obj[key] + return sorted_obj + + +def process_yaml_file(file_path: str): + with open(file_path, "r") as file: + data = yaml.safe_load(file) + sorted_data = sort_keys(data) + with open(file_path, "w") as file: + yaml.dump(sorted_data, file, sort_keys=False) + + +def main(folder_path: str): + for filename in os.listdir(folder_path): + if filename.endswith(".yaml") or filename.endswith(".yml"): + full_path = os.path.join(folder_path, filename) + print("sorting: ", full_path) + process_yaml_file(full_path) + + +if __name__ == "__main__": + main(sys.argv[1]) diff --git a/manifests/php.yml b/manifests/php.yml index 01c8b112a7..a41b72ff82 100644 --- a/manifests/php.yml +++ b/manifests/php.yml @@ -9,7 +9,7 @@ tests/: test_api_security_rc.py: Test_API_Security_RC_ASM_DD_processors: missing_feature Test_API_Security_RC_ASM_DD_scanners: missing_feature - Test_API_Security_RC_ASM_processor_overrides_and_custom_scanner: missing_feature # waf does not support it yet + Test_API_Security_RC_ASM_processor_overrides_and_custom_scanner: missing_feature test_apisec_sampling.py: Test_API_Security_sampling: missing_feature test_schemas.py: @@ -111,7 +111,7 @@ tests/: test_stack_traces.py: missing_feature waf/: test_addresses.py: - Test_BodyJson: v0.98.1 # TODO what is the earliest version? + Test_BodyJson: v0.98.1 Test_BodyRaw: v0.68.3 Test_BodyUrlEncoded: v0.68.3 Test_BodyXml: missing_feature @@ -125,7 +125,7 @@ tests/: Test_PathParams: v0.71.0 Test_UrlQuery: v0.68.3 Test_UrlQueryKey: v0.74.0 - Test_UrlRaw: v0.68.3 # probably sooner, but was flaky + Test_UrlRaw: v0.68.3 Test_gRPC: missing_feature test_blocking.py: Test_Blocking: v0.86.0 @@ -164,9 +164,12 @@ tests/: Test_Login_Events_Extended: v0.89.0 test_blocking_addresses.py: Test_BlockingGraphqlResolvers: missing_feature - Test_Blocking_request_body: irrelevant (Php does not accept url encoded entries without key) - Test_Blocking_response_headers: irrelevant (On php it is not possible change the status code once its header is sent) - Test_Blocking_response_status: irrelevant (On php it is not possible change the status code once its header is sent) + Test_Blocking_request_body: irrelevant (Php does not accept url encoded entries + without key) + Test_Blocking_response_headers: irrelevant (On php it is not possible change + the status code once its header is sent) + Test_Blocking_response_status: irrelevant (On php it is not possible change + the status code once its header is sent) Test_Suspicious_Request_Blocking: missing_feature (v0.86.0 but test is not implemented) test_client_ip.py: Test_StandardTagsClientIp: v0.81.0 @@ -176,7 +179,7 @@ tests/: Test_StandardizationBlockMode: missing_feature test_reports.py: Test_ExtraTagsFromRule: v0.88.0 - Test_Info: v0.68.3 # probably 0.68.2, but was flaky + Test_Info: v0.68.3 test_shell_execution.py: Test_ShellExecution: v0.95.0 test_traces.py: @@ -203,12 +206,12 @@ tests/: Test_RabbitMQ_Trace_Context_Propagation: missing_feature test_sns_to_sqs.py: Test_SNS_Propagation: - "*": missing_feature + '*': missing_feature test_sqs.py: Test_SQS_PROPAGATION_VIA_AWS_XRAY_HEADERS: - "*": missing_feature (Endpoint not implemented) + '*': missing_feature (Endpoint not implemented) Test_SQS_PROPAGATION_VIA_MESSAGE_ATTRIBUTES: - "*": missing_feature (Endpoint not implemented) + '*': missing_feature (Endpoint not implemented) test_db_integrations_sql.py: Test_MsSql: missing_feature Test_MySql: missing_feature @@ -241,25 +244,23 @@ tests/: test_otel_sdk_interoperability.py: Test_Otel_SDK_Interoperability: v0.94.0 test_otel_span_methods.py: - Test_Otel_Span_Methods: v0.94.0 + Test_Otel_Span_Methods: v0.94.0 test_otel_span_with_w3c.py: - Test_Otel_Span_With_W3c: v0.94.0 + Test_Otel_Span_With_W3c: v0.94.0 test_otel_tracer.py: - Test_Otel_Tracer: v0.94.0 + Test_Otel_Tracer: v0.94.0 test_sampling_delegation.py: - Test_Decisionless_Extraction: >- - missing_feature - (The sampling priority chosen when the trace was extracted without a - sampling decision is not consistent with the tracer's configuration. - See .) + Test_Decisionless_Extraction: missing_feature (The sampling priority chosen + when the trace was extracted without a sampling decision is not consistent + with the tracer's configuration. See .) test_span_links.py: missing_feature test_telemetry.py: Test_Defaults: missing_feature Test_Environment: missing_feature Test_TelemetryInstallSignature: missing_feature - Test_TelemetrySCAEnvVar: missing_feature # should be: v0.99.0 + Test_TelemetrySCAEnvVar: missing_feature test_trace_sampling.py: - Test_Trace_Sampling_Basic: v0.68.3 # TODO what is the earliest version? + Test_Trace_Sampling_Basic: v0.68.3 Test_Trace_Sampling_Globs: v0.96.0 Test_Trace_Sampling_Globs_Feb2024_Revision: v0.96.0 Test_Trace_Sampling_Resource: v0.96.0 @@ -274,7 +275,8 @@ tests/: test_remote_configuration.py: Test_RemoteConfigurationExtraServices: missing_feature Test_RemoteConfigurationUpdateSequenceASMDDNoCache: irrelevant (cache is implemented) - Test_RemoteConfigurationUpdateSequenceFeaturesNoCache: irrelevant (cache is implemented) + Test_RemoteConfigurationUpdateSequenceFeaturesNoCache: irrelevant (cache is + implemented) Test_RemoteConfigurationUpdateSequenceLiveDebugging: missing_feature Test_RemoteConfigurationUpdateSequenceLiveDebuggingNoCache: missing_feature test_distributed.py: diff --git a/manifests/python.yml b/manifests/python.yml index 38835b2175..566e1cbefa 100644 --- a/manifests/python.yml +++ b/manifests/python.yml @@ -1,4 +1,3 @@ ---- tests/: apm_tracing_e2e/: test_otel.py: @@ -24,7 +23,7 @@ tests/: python3.12: v2.6.0dev uds-flask: v2.6.0dev uwsgi-poc: v2.6.0dev - Test_API_Security_RC_ASM_processor_overrides_and_custom_scanner: missing_feature # waf does not support it yet + Test_API_Security_RC_ASM_processor_overrides_and_custom_scanner: missing_feature test_apisec_sampling.py: Test_API_Security_sampling: missing_feature test_schemas.py: @@ -393,7 +392,8 @@ tests/: django-poc: v1.10 fastapi: v2.4.0.dev1 flask-poc: v1.10 - Test_Suspicious_Request_Blocking: missing_feature (v1.20.0, but test is not implemented) + Test_Suspicious_Request_Blocking: missing_feature (v1.20.0, but test is not + implemented) test_client_ip.py: Test_StandardTagsClientIp: v1.5.0 test_conf.py: @@ -418,7 +418,7 @@ tests/: test_identify.py: Test_Basic: v1.5.0rc1.dev test_ip_blocking_full_denylist.py: - Test_AppSecIPBlockingFullDenylist: v1.10.0 # partially missing_feature (Python supported denylists of 2500 entries but it fails to block this those 15000) + Test_AppSecIPBlockingFullDenylist: v1.10.0 test_logs.py: Test_Standardization: missing_feature Test_StandardizationBlockMode: missing_feature @@ -449,7 +449,7 @@ tests/: Test_ExternalWafRequestsIdentification: v2.9.0.dev1 Test_RetainTraces: v1.1.0rc2.dev test_user_blocking_full_denylist.py: - Test_UserBlocking_FullDenylist: v1.10.0 # partially missing_feature missing_feature (Python supported denylists of 2500 entries but it fails to block this those 15000) + Test_UserBlocking_FullDenylist: v1.10.0 test_versions.py: Test_Events: v0.58.5 debugger/: @@ -473,7 +473,7 @@ tests/: test_rabbitmq.py: Test_RabbitMQ_Trace_Context_Propagation: '*': irrelevant - flask-poc: v0.1 # actual version unknown + flask-poc: v0.1 test_sns_to_sqs.py: Test_SNS_Propagation: '*': irrelevant @@ -481,7 +481,7 @@ tests/: test_sqs.py: Test_SQS_PROPAGATION_VIA_AWS_XRAY_HEADERS: '*': irrelevant - flask-poc: v0.1 # actual version unknown + flask-poc: v0.1 Test_SQS_PROPAGATION_VIA_MESSAGE_ATTRIBUTES: '*': irrelevant flask-poc: v2.6.0 @@ -501,49 +501,49 @@ tests/: flask-poc: v0.1 uds-flask: v2.9.0 uwsgi-poc: v2.9.0 - Test_Dbm_Comment_Batch_Python_Aiomysql: + Test_Dbm_Comment_Batch_Python_Aiomysql: '*': missing_feature (Missing on weblog) flask-poc: v2.9.0 uds-flask: v2.9.0 uwsgi-poc: v2.9.0 - Test_Dbm_Comment_Batch_Python_MysqlConnector: + Test_Dbm_Comment_Batch_Python_MysqlConnector: '*': missing_feature (Missing on weblog) flask-poc: v2.9.0 - Test_Dbm_Comment_Batch_Python_Mysqldb: + Test_Dbm_Comment_Batch_Python_Mysqldb: '*': missing_feature (Missing on weblog) flask-poc: v2.9.0 - Test_Dbm_Comment_Batch_Python_Psycopg: + Test_Dbm_Comment_Batch_Python_Psycopg: '*': missing_feature (Missing on weblog) flask-poc: v2.8.0 uds-flask: v2.9.0 uwsgi-poc: v2.9.0 - Test_Dbm_Comment_Batch_Python_Pymysql: + Test_Dbm_Comment_Batch_Python_Pymysql: '*': missing_feature (Missing on weblog) flask-poc: v2.9.0 uds-flask: v2.9.0 uwsgi-poc: v2.9.0 - Test_Dbm_Comment_Python_Aiomysql: + Test_Dbm_Comment_Python_Aiomysql: '*': missing_feature (Missing on weblog) flask-poc: v2.9.0 uds-flask: v2.9.0 uwsgi-poc: v2.9.0 - Test_Dbm_Comment_Python_Asyncpg: + Test_Dbm_Comment_Python_Asyncpg: '*': missing_feature (Missing on weblog) flask-poc: v2.9.0 uds-flask: v2.9.0 uwsgi-poc: v2.9.0 - Test_Dbm_Comment_Python_MysqlConnector: + Test_Dbm_Comment_Python_MysqlConnector: '*': missing_feature (Missing on weblog) flask-poc: v2.9.0 - Test_Dbm_Comment_Python_Mysqldb: + Test_Dbm_Comment_Python_Mysqldb: '*': missing_feature (Missing on weblog) flask-poc: v2.9.0 - Test_Dbm_Comment_Python_Psycopg: + Test_Dbm_Comment_Python_Psycopg: '*': missing_feature (Missing on weblog) flask-poc: v2.8.0 uds-flask: v2.9.0 uwsgi-poc: v2.9.0 - Test_Dbm_Comment_Python_Pymysql: + Test_Dbm_Comment_Python_Pymysql: '*': missing_feature (Missing on weblog) flask-poc: v2.9.0 uds-flask: v2.9.0 @@ -629,7 +629,7 @@ tests/: Test_TelemetryInstallSignature: v2.5.0 Test_TelemetrySCAEnvVar: v2.9.0.dev test_trace_sampling.py: - Test_Trace_Sampling_Basic: v1.9.0 # actual version unknown + Test_Trace_Sampling_Basic: v1.9.0 Test_Trace_Sampling_Globs: v2.8.0 Test_Trace_Sampling_Globs_Feb2024_Revision: v2.8.0 Test_Trace_Sampling_Resource: v2.8.0 @@ -648,7 +648,8 @@ tests/: Test_RemoteConfigurationUpdateSequenceASMDD: v2.9.0.dev Test_RemoteConfigurationUpdateSequenceASMDDNoCache: missing_feature Test_RemoteConfigurationUpdateSequenceFeatures: v1.7.4 - Test_RemoteConfigurationUpdateSequenceFeaturesNoCache: irrelevant (cache is implemented) + Test_RemoteConfigurationUpdateSequenceFeaturesNoCache: irrelevant (cache is + implemented) Test_RemoteConfigurationUpdateSequenceLiveDebugging: v2.8.0.dev Test_RemoteConfigurationUpdateSequenceLiveDebuggingNoCache: missing_feature test_data_integrity.py: @@ -656,14 +657,14 @@ tests/: test_distributed.py: Test_DistributedHttp: '*': missing_feature (Missing on weblog) - flask-poc: v1.5.0rc2.dev # actual version unknown + flask-poc: v1.5.0rc2.dev test_identify.py: Test_Basic: v1.5.0rc1.dev Test_Propagate: v1.9.0 Test_Propagate_Legacy: v1.5.0rc1.dev test_library_conf.py: Test_HeaderTags: v0.53 - Test_HeaderTags_Colon_Leading: v1.2.1 # actual version unknown + Test_HeaderTags_Colon_Leading: v1.2.1 Test_HeaderTags_Colon_Trailing: v2.8.0.dev Test_HeaderTags_Long: v1.2.1 Test_HeaderTags_Short: missing_feature @@ -673,7 +674,7 @@ tests/: Test_HeaderTags_Whitespace_Val_Short: missing_feature test_profiling.py: Test_Profile: - '*': v0.1 # actual version unknown + '*': v0.1 python3.12: v2.1.0.dev test_scrubbing.py: Test_UrlField: @@ -682,7 +683,8 @@ tests/: Test_UrlQuery: v1.6.0rc1.dev test_semantic_conventions.py: Test_Meta: v1.80.0 - Test_MetaDatadogTags: bug (Inconsistent implementation across tracers; will need a dedicated testing scenario) + Test_MetaDatadogTags: bug (Inconsistent implementation across tracers; will need + a dedicated testing scenario) test_standard_tags.py: Test_StandardTagsClientIp: v2.7.0.dev Test_StandardTagsMethod: v1.2.1 diff --git a/manifests/python_otel.yml b/manifests/python_otel.yml index 769a0162e5..9040ef7c80 100644 --- a/manifests/python_otel.yml +++ b/manifests/python_otel.yml @@ -2,4 +2,3 @@ tests/: integrations/: test_open_telemetry.py: Test_MsSql: missing_feature - diff --git a/manifests/ruby.yml b/manifests/ruby.yml index 6cca60689e..e3e7607569 100644 --- a/manifests/ruby.yml +++ b/manifests/ruby.yml @@ -9,7 +9,7 @@ tests/: test_api_security_rc.py: Test_API_Security_RC_ASM_DD_processors: missing_feature Test_API_Security_RC_ASM_DD_scanners: missing_feature - Test_API_Security_RC_ASM_processor_overrides_and_custom_scanner: missing_feature # waf does not support it yet + Test_API_Security_RC_ASM_processor_overrides_and_custom_scanner: missing_feature test_apisec_sampling.py: Test_API_Security_sampling: missing_feature test_schemas.py: @@ -150,32 +150,56 @@ tests/: test_automated_login_events.py: Test_Login_Events: '*': v1.13.0 - rack: missing_feature (We do not support authentication framework for sinatra or rack) - rails32: missing_feature (Not able to configure weblog variant properly. Issue with SQLite and PRIMARY_KEY as String and Rails 3 protected attributes) - sinatra14: missing_feature (We do not support authentication framework for sinatra or rack) - sinatra20: missing_feature (We do not support authentication framework for sinatra or rack) - sinatra21: missing_feature (We do not support authentication framework for sinatra or rack) - sinatra22: missing_feature (We do not support authentication framework for sinatra or rack) - sinatra30: missing_feature (We do not support authentication framework for sinatra or rack) - sinatra31: missing_feature (We do not support authentication framework for sinatra or rack) - sinatra32: missing_feature (We do not support authentication framework for sinatra or rack) - sinatra40: missing_feature (We do not support authentication framework for sinatra or rack) - uds-sinatra: missing_feature (We do not support authentication framework for sinatra or rack) + rack: missing_feature (We do not support authentication framework for sinatra + or rack) + rails32: missing_feature (Not able to configure weblog variant properly. Issue + with SQLite and PRIMARY_KEY as String and Rails 3 protected attributes) + sinatra14: missing_feature (We do not support authentication framework for + sinatra or rack) + sinatra20: missing_feature (We do not support authentication framework for + sinatra or rack) + sinatra21: missing_feature (We do not support authentication framework for + sinatra or rack) + sinatra22: missing_feature (We do not support authentication framework for + sinatra or rack) + sinatra30: missing_feature (We do not support authentication framework for + sinatra or rack) + sinatra31: missing_feature (We do not support authentication framework for + sinatra or rack) + sinatra32: missing_feature (We do not support authentication framework for + sinatra or rack) + sinatra40: missing_feature (We do not support authentication framework for + sinatra or rack) + uds-sinatra: missing_feature (We do not support authentication framework for + sinatra or rack) Test_Login_Events_Extended: '*': v1.14.0 - rack: missing_feature (We do not support authentication framework for sinatra or rack) - rails32: missing_feature (Not able to configure weblog variant properly. Issue with SQLite and PRIMARY_KEY as String) - rails40: missing_feature (Not able to configure weblog variant properly. Issue with SQLite and PRIMARY_KEY as String) - rails41: missing_feature (Not able to configure weblog variant properly. Issue with SQLite and PRIMARY_KEY as String) - sinatra14: missing_feature (We do not support authentication framework for sinatra or rack) - sinatra20: missing_feature (We do not support authentication framework for sinatra or rack) - sinatra21: missing_feature (We do not support authentication framework for sinatra or rack) - sinatra22: missing_feature (We do not support authentication framework for sinatra or rack) - sinatra30: missing_feature (We do not support authentication framework for sinatra or rack) - sinatra31: missing_feature (We do not support authentication framework for sinatra or rack) - sinatra32: missing_feature (We do not support authentication framework for sinatra or rack) - sinatra40: missing_feature (We do not support authentication framework for sinatra or rack) - uds-sinatra: missing_feature (We do not support authentication framework for sinatra or rack) + rack: missing_feature (We do not support authentication framework for sinatra + or rack) + rails32: missing_feature (Not able to configure weblog variant properly. Issue + with SQLite and PRIMARY_KEY as String) + rails40: missing_feature (Not able to configure weblog variant properly. Issue + with SQLite and PRIMARY_KEY as String) + rails41: missing_feature (Not able to configure weblog variant properly. Issue + with SQLite and PRIMARY_KEY as String) + sinatra14: missing_feature (We do not support authentication framework for + sinatra or rack) + sinatra20: missing_feature (We do not support authentication framework for + sinatra or rack) + sinatra21: missing_feature (We do not support authentication framework for + sinatra or rack) + sinatra22: missing_feature (We do not support authentication framework for + sinatra or rack) + sinatra30: missing_feature (We do not support authentication framework for + sinatra or rack) + sinatra31: missing_feature (We do not support authentication framework for + sinatra or rack) + sinatra32: missing_feature (We do not support authentication framework for + sinatra or rack) + sinatra40: missing_feature (We do not support authentication framework for + sinatra or rack) + uds-sinatra: missing_feature (We do not support authentication framework for + sinatra or rack) test_blocking_addresses.py: Test_BlockingAddresses: v1.0.0 Test_BlockingGraphqlResolvers: missing_feature @@ -184,8 +208,8 @@ tests/: Test_Blocking_request_headers: v1.0.0 Test_Blocking_request_method: v1.12.0 Test_Blocking_request_path_params: - '*': v1.0.0 - rack: irrelevant + '*': v1.0.0 + rack: irrelevant Test_Blocking_request_query: v1.0.0 Test_Blocking_request_uri: v1.0.0 Test_Blocking_response_headers: v1.0.0 @@ -208,7 +232,8 @@ tests/: test_identify.py: Test_Basic: v1.0.0 test_ip_blocking_full_denylist.py: - Test_AppSecIPBlockingFullDenylist: missing_feature (Ruby supported denylists of 2500 entries but it fails to block this those 15000) + Test_AppSecIPBlockingFullDenylist: missing_feature (Ruby supported denylists + of 2500 entries but it fails to block this those 15000) test_logs.py: Test_Standardization: missing_feature Test_StandardizationBlockMode: missing_feature @@ -229,7 +254,8 @@ tests/: Test_ExternalWafRequestsIdentification: v1.22.0 Test_RetainTraces: v0.54.2 test_user_blocking_full_denylist.py: - Test_UserBlocking_FullDenylist: missing_feature (Ruby supported denylists of 2500 entries but it fails to block this those 15000) + Test_UserBlocking_FullDenylist: missing_feature (Ruby supported denylists of + 2500 entries but it fails to block this those 15000) test_versions.py: Test_Events: v0.54.2 debugger/: @@ -244,26 +270,26 @@ tests/: crossed_integrations/: test_kafka.py: Test_Kafka: - "*": irrelevant - rails70: v0.1 # real version unknown + '*': irrelevant + rails70: v0.1 test_kinesis.py: Test_Kinesis_PROPAGATION_VIA_MESSAGE_ATTRIBUTES: - "*": irrelevant + '*': irrelevant rails70: missing_feature test_rabbitmq.py: Test_RabbitMQ_Trace_Context_Propagation: - "*": irrelevant + '*': irrelevant rails70: missing_feature (Endpoint not implemented) test_sns_to_sqs.py: Test_SNS_Propagation: - "*": irrelevant + '*': irrelevant rails70: missing_feature (Endpoint not implemented) test_sqs.py: Test_SQS_PROPAGATION_VIA_AWS_XRAY_HEADERS: - "*": irrelevant + '*': irrelevant rails70: missing_feature (Endpoint not implemented) Test_SQS_PROPAGATION_VIA_MESSAGE_ATTRIBUTES: - "*": irrelevant + '*': irrelevant rails70: missing_feature (Endpoint not implemented) test_db_integrations_sql.py: Test_MsSql: missing_feature @@ -273,32 +299,32 @@ tests/: Test_Dbm: missing_feature test_dsm.py: Test_DsmContext_Extraction_Base64: - "*": irrelevant + '*': irrelevant rails70: missing_feature (Endpoint not implemented) - Test_DsmContext_Injection_Base64: - "*": irrelevant + Test_DsmContext_Injection_Base64: + '*': irrelevant rails70: missing_feature (Endpoint not implemented) Test_DsmHttp: missing_feature Test_DsmKafka: - "*": irrelevant + '*': irrelevant rails70: missing_feature (Endpoint not implemented) Test_DsmKinesis: - "*": irrelevant + '*': irrelevant rails70: missing_feature (Endpoint not implemented) Test_DsmRabbitmq: - "*": irrelevant + '*': irrelevant rails70: missing_feature (Endpoint not implemented) Test_DsmRabbitmq_FanoutExchange: - "*": irrelevant + '*': irrelevant rails70: missing_feature (Endpoint not implemented) Test_DsmRabbitmq_TopicExchange: - "*": irrelevant + '*': irrelevant rails70: missing_feature (Endpoint not implemented) Test_DsmSNS: - "*": irrelevant + '*': irrelevant rails70: missing_feature (Endpoint not implemented) Test_DsmSQS: - "*": irrelevant + '*': irrelevant rails70: missing_feature (Endpoint not implemented) parametric/: test_dynamic_configuration.py: @@ -315,12 +341,10 @@ tests/: test_otel_span_with_w3c.py: Test_Otel_Span_With_W3c: v1.17.0 test_sampling_delegation.py: - Test_Decisionless_Extraction: >- - missing_feature - (The "_sampling_priority_v1" numeric tag is missing from the local - root span when the trace was extracted without a sampling decision. - See .) - test_span_links.py: + Test_Decisionless_Extraction: missing_feature (The "_sampling_priority_v1" numeric + tag is missing from the local root span when the trace was extracted without + a sampling decision. See .) + test_span_links.py: Test_Span_Links: v2.0.0 test_telemetry.py: Test_Defaults: missing_feature @@ -328,7 +352,7 @@ tests/: Test_TelemetryInstallSignature: missing_feature Test_TelemetrySCAEnvVar: v2.1.0 test_trace_sampling.py: - Test_Trace_Sampling_Basic: v1.0.0 # TODO what is the earliest version? + Test_Trace_Sampling_Basic: v1.0.0 Test_Trace_Sampling_Globs: v2.0.0 Test_Trace_Sampling_Globs_Feb2024_Revision: v2.0.0 Test_Trace_Sampling_Resource: v2.0.0 @@ -373,7 +397,8 @@ tests/: Test_UrlQuery: v1.0.0 test_semantic_conventions.py: Test_Meta: v1.7.0 - Test_MetaDatadogTags: bug (Inconsistent implementation across tracers; will need a dedicated testing scenario) + Test_MetaDatadogTags: bug (Inconsistent implementation across tracers; will need + a dedicated testing scenario) Test_MetricsStandardTags: v1.7.0 test_standard_tags.py: Test_StandardTagsClientIp: v1.10.1 diff --git a/requirements.txt b/requirements.txt index 642adfbb83..34d6d2493b 100644 --- a/requirements.txt +++ b/requirements.txt @@ -5,6 +5,7 @@ pytest-json-report==1.5.0 pytest-xdist==3.2.1 black==19.10b0 # TODO : move to 22.8.0 pylint==2.17.5 +yamllint==1.26.3 python-dateutil==2.8.2 msgpack==1.0.4 watchdog==3.0.0