Skip to content

Conversation

@vpellan
Copy link
Contributor

@vpellan vpellan commented Oct 30, 2025

What does this PR do?

Remove DifferentMethodParameterKind exclusion from the Steepfile and fixes related issues

Change log entry

None.

Additional Notes:

How to test the change?

bundle exec rake steep:check

@vpellan vpellan requested review from a team as code owners October 30, 2025 18:37
@vpellan vpellan requested a review from mabdinur October 30, 2025 18:37
@github-actions
Copy link

github-actions bot commented Oct 30, 2025

Typing analysis

Note: Ignored files are excluded from the next sections.

Untyped methods

This PR introduces 24 untyped methods and 8 partially typed methods, and clears 25 untyped methods and 15 partially typed methods. It increases the percentage of typed methods from 51.13% to 51.66% (+0.53%).

Untyped methods (+24-25)Introduced:
sig/datadog/tracing/span_operation.rbs:54
└── def name=: (untyped name) -> untyped
sig/datadog/tracing/span_operation.rbs:56
└── def type=: (untyped `type`) -> untyped
sig/datadog/tracing/span_operation.rbs:58
└── def service=: (untyped service) -> untyped
sig/datadog/tracing/span_operation.rbs:60
└── def resource=: (untyped resource) -> untyped
sig/datadog/tracing/span_operation.rbs:64
└── def measure: () { (untyped) -> untyped } -> untyped
sig/datadog/tracing/span_operation.rbs:70
└── def started?: () -> untyped
sig/datadog/tracing/span_operation.rbs:72
└── def stopped?: () -> untyped
sig/datadog/tracing/span_operation.rbs:76
└── def start_time=: (untyped time) -> untyped
sig/datadog/tracing/span_operation.rbs:78
└── def end_time=: (untyped time) -> untyped
sig/datadog/tracing/span_operation.rbs:80
└── def finish: (?untyped? end_time) -> untyped
sig/datadog/tracing/span_operation.rbs:82
└── def finished?: () -> untyped
sig/datadog/tracing/span_operation.rbs:84
└── def duration: () -> untyped
sig/datadog/tracing/span_operation.rbs:86
└── def set_error: (untyped e) -> untyped
sig/datadog/tracing/span_operation.rbs:92
└── def to_hash: () -> untyped
sig/datadog/tracing/span_operation.rbs:94
└── def pretty_print: (untyped q) -> untyped
sig/datadog/tracing/span_operation.rbs:114
└── def initialize: () -> void
sig/datadog/tracing/span_operation.rbs:118
└── def initialize: () -> void
sig/datadog/tracing/span_operation.rbs:122
└── def initialize: () -> void
sig/datadog/tracing/span_operation.rbs:130
└── def wrap_default: () { (untyped, untyped) -> untyped } -> untyped
sig/datadog/tracing/span_operation.rbs:151
└── def build_span: () -> untyped
sig/datadog/tracing/span_operation.rbs:153
└── def parent=: (untyped parent) -> untyped
sig/datadog/tracing/span_operation.rbs:155
└── def duration_marker: () -> untyped
sig/datadog/tracing/span_operation.rbs:157
└── def start_time_nano: () -> untyped
sig/datadog/tracing/span_operation.rbs:159
└── def duration_nano: () -> untyped
Cleared:
sig/datadog/appsec/thread_safe_ref.rbs:14
└── def initialize: (untyped initial_obj) -> void
sig/datadog/tracing/span_operation.rbs:53
└── def name=: (untyped name) -> untyped
sig/datadog/tracing/span_operation.rbs:55
└── def type=: (untyped `type`) -> untyped
sig/datadog/tracing/span_operation.rbs:57
└── def service=: (untyped service) -> untyped
sig/datadog/tracing/span_operation.rbs:59
└── def resource=: (untyped resource) -> untyped
sig/datadog/tracing/span_operation.rbs:63
└── def measure: () { (untyped) -> untyped } -> untyped
sig/datadog/tracing/span_operation.rbs:69
└── def started?: () -> untyped
sig/datadog/tracing/span_operation.rbs:71
└── def stopped?: () -> untyped
sig/datadog/tracing/span_operation.rbs:75
└── def start_time=: (untyped time) -> untyped
sig/datadog/tracing/span_operation.rbs:77
└── def end_time=: (untyped time) -> untyped
sig/datadog/tracing/span_operation.rbs:79
└── def finish: (?untyped? end_time) -> untyped
sig/datadog/tracing/span_operation.rbs:81
└── def finished?: () -> untyped
sig/datadog/tracing/span_operation.rbs:83
└── def duration: () -> untyped
sig/datadog/tracing/span_operation.rbs:85
└── def set_error: (untyped e) -> untyped
sig/datadog/tracing/span_operation.rbs:91
└── def to_hash: () -> untyped
sig/datadog/tracing/span_operation.rbs:93
└── def pretty_print: (untyped q) -> untyped
sig/datadog/tracing/span_operation.rbs:113
└── def initialize: () -> void
sig/datadog/tracing/span_operation.rbs:117
└── def initialize: () -> void
sig/datadog/tracing/span_operation.rbs:121
└── def initialize: () -> void
sig/datadog/tracing/span_operation.rbs:129
└── def wrap_default: () { (untyped, untyped) -> untyped } -> untyped
sig/datadog/tracing/span_operation.rbs:150
└── def build_span: () -> untyped
sig/datadog/tracing/span_operation.rbs:152
└── def parent=: (untyped parent) -> untyped
sig/datadog/tracing/span_operation.rbs:154
└── def duration_marker: () -> untyped
sig/datadog/tracing/span_operation.rbs:156
└── def start_time_nano: () -> untyped
sig/datadog/tracing/span_operation.rbs:158
└── def duration_nano: () -> untyped
Partially typed methods (+8-15)Introduced:
sig/datadog/core/diagnostics/environment_logger.rbs:17
└── def self.collect_and_log!: (?Hash[Symbol, untyped]? extra_fields) -> void
sig/datadog/core/telemetry/request.rbs:5
└── def self.build_payload: (Event::Base event, int seq_id, ?api_version: String, ?debug: bool) -> ::Hash[Symbol, untyped]
sig/datadog/core/transport/http/builder.rbs:22
└── def initialize: (api_instance_class: untyped, ?logger: Core::Logger) ?{ (untyped) -> untyped } -> void
sig/datadog/core/transport/http.rbs:5
└── def self?.build: (api_instance_class: untyped, agent_settings: untyped, ?logger: untyped, ?api_version: untyped?, ?headers: untyped?) { (untyped) -> untyped } -> HTTP::Builder
sig/datadog/di/serializer.rbs:24
└── def serialize_value: (untyped value, ?name: String?, ?depth: Integer, ?attribute_count: Integer?, ?type: Class?) -> untyped
sig/datadog/tracing/span_operation.rbs:66
└── def start: (?untyped? start_time) -> self
sig/datadog/tracing/span_operation.rbs:126
└── def initialize: (untyped default, ?logger: Core::Logger) -> void
sig/datadog/tracing/span_operation.rbs:132
└── def publish: (*untyped args) -> true
Cleared:
sig/datadog/core/diagnostics/environment_logger.rbs:17
└── def self.collect_and_log!: (Hash[Symbol, untyped] extra_fields) -> void
sig/datadog/core/telemetry/request.rbs:5
└── def self.build_payload: (Event::Base event, int seq_id, ?debug: bool) -> ::Hash[Symbol, untyped]
sig/datadog/core/transport/http/builder.rbs:22
└── def initialize: (api_instance_class: untyped, logger: Core::Logger) ?{ (untyped) -> untyped } -> void
sig/datadog/core/transport/http.rbs:5
└── def self?.build: (api_instance_class: untyped, agent_settings: untyped, logger: untyped, ?api_version: untyped?, ?headers: untyped?) { (untyped) -> untyped } -> HTTP::Builder
sig/datadog/di/serializer.rbs:24
└── def serialize_value: (untyped value, ?name: String, ?depth: Integer, ?attribute_count: Integer?) -> untyped
sig/datadog/profiling/ext/dir_monkey_patches.rbs:15
└── def []: (*untyped) -> Array[String]
sig/datadog/profiling/ext/dir_monkey_patches.rbs:16
└── def children: (*untyped) -> Array[String]
sig/datadog/profiling/ext/dir_monkey_patches.rbs:17
└── def each_child: (*untyped) -> Enumerator[String, nil] | (*untyped) { (String filename) -> void } -> nil
sig/datadog/profiling/ext/dir_monkey_patches.rbs:19
└── def entries: (*untyped) -> Array[String]
sig/datadog/profiling/ext/dir_monkey_patches.rbs:20
└── def foreach: (*untyped) -> Enumerator[String, nil] | (*untyped) { (String filename) -> void } -> nil
sig/datadog/profiling/ext/dir_monkey_patches.rbs:21
└── def glob: (*untyped) -> Array[String] | (*untyped) { (String pathname) -> void } -> nil
sig/datadog/tracing/metadata/metastruct.rbs:13
└── def to_msgpack: (untyped packer) -> void
sig/datadog/tracing/span_operation.rbs:65
└── def start: (?untyped? start_time) -> self
sig/datadog/tracing/span_operation.rbs:125
└── def initialize: (untyped default, ?logger: Core::Logger) -> void
sig/datadog/tracing/span_operation.rbs:131
└── def publish: (*untyped args) -> true

Untyped other declarations

This PR introduces 6 untyped other declarations, and clears 6 untyped other declarations.

Untyped other declarations (+6-6)Introduced:
sig/datadog/tracing/span_operation.rbs:103
└── attr_reader after_finish: untyped
sig/datadog/tracing/span_operation.rbs:105
└── attr_reader after_stop: untyped
sig/datadog/tracing/span_operation.rbs:107
└── attr_reader before_start: untyped
sig/datadog/tracing/span_operation.rbs:142
└── attr_reader events: untyped
sig/datadog/tracing/span_operation.rbs:144
└── attr_reader parent: untyped
sig/datadog/tracing/span_operation.rbs:146
└── attr_reader span: untyped
Cleared:
sig/datadog/tracing/span_operation.rbs:102
└── attr_reader after_finish: untyped
sig/datadog/tracing/span_operation.rbs:104
└── attr_reader after_stop: untyped
sig/datadog/tracing/span_operation.rbs:106
└── attr_reader before_start: untyped
sig/datadog/tracing/span_operation.rbs:141
└── attr_reader events: untyped
sig/datadog/tracing/span_operation.rbs:143
└── attr_reader parent: untyped
sig/datadog/tracing/span_operation.rbs:145
└── attr_reader span: untyped

If you believe a method or an attribute is rightfully untyped or partially typed, you can add # untyped:accept to the end of the line to remove it from the stats.

@datadog-datadog-prod-us1
Copy link
Contributor

datadog-datadog-prod-us1 bot commented Oct 30, 2025

✅ Tests

🎉 All green!

❄️ No new flaky tests detected
🧪 All tests passed

🎯 Code Coverage
Patch Coverage: 100.00%
Total Coverage: 98.55% (+0.10%)

View detailed report

This comment will be updated automatically if new data arrives.
🔗 Commit SHA: 8d353c4 | Docs | Datadog PR Page | Was this helpful? Give us feedback!

@pr-commenter
Copy link

pr-commenter bot commented Oct 30, 2025

Benchmarks

Benchmark execution time: 2025-10-31 15:54:35

Comparing candidate commit 8d353c4 in PR branch vpellan/steep-fix-different-method-parameter-kind with baseline commit 5f8cb92 in branch master.

Found 2 performance improvements and 1 performance regressions! Performance is the same for 41 metrics, 2 unstable metrics.

scenario:profiling - Allocations (baseline)

  • 🟩 throughput [+253111.833op/s; +266759.147op/s] or [+5.037%; +5.309%]

scenario:profiling - gvl benchmark samples

  • 🟩 throughput [+694.351op/s; +704.277op/s] or [+5.498%; +5.576%]

scenario:profiling - intern_all 1000 repeated strings

  • 🟥 throughput [-1830.934op/s; -1764.225op/s] or [-6.970%; -6.716%]

Copy link
Member

@ivoanjo ivoanjo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍 Thanks for improving this!

ivoanjo added a commit that referenced this pull request Oct 31, 2025
…lders

**What does this PR do?**

This PR adds `@DataDog/ruby-guild` as an additional codeowner on
rbs folders.

**Motivation:**

While looking at @vpellan's PR
#5014 it seems overkill to
need reviews from across n teams for type signature changes.

I think at this point we want to encourage all rbs contributions and
lower their overhead, not make it really annoying to get them into the
project, so the more reviewers the better.

**Additional Notes:**

N/A

**How to test the change?**

CODEOWNERS changes are always annoying to test; on the other hand, if
anything is wrong, it's easy to revert.
@vpellan vpellan merged commit f060ebf into master Oct 31, 2025
279 checks passed
@vpellan vpellan deleted the vpellan/steep-fix-different-method-parameter-kind branch October 31, 2025 17:58
@github-actions github-actions bot added this to the 2.23.0 milestone Oct 31, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants