Repository navigation
Add constant generation for entity types #593
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
Merged
jack-berg
merged 1 commit into
open-telemetry:main
from
jack-berg:generate-entity-constants
Oct 16, 2026
+699
−0
Merged
Changes from all commits
Commits
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
36 changes: 36 additions & 0 deletions
36
buildscripts/templates/registry/incubating_java/IncubatingSemanticEntities.java.j2
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,36 @@ | ||
| {%- set my_class_name = ctx.root_namespace | pascal_case ~ "IncubatingEntities" -%} | ||
|
|
||
| /* | ||
| * Copyright The OpenTelemetry Authors | ||
| * SPDX-License-Identifier: Apache-2.0 | ||
| */ | ||
| package io.opentelemetry.semconv.incubating; | ||
|
|
||
| // DO NOT EDIT, this is an Auto-generated file from buildscripts/templates/registry/incubating_java/IncubatingSemanticEntities.java.j2 | ||
| @SuppressWarnings("unused") | ||
| public final class {{ my_class_name }} { | ||
| {%- for entity in ctx.entities -%} | ||
| {%- if entity is experimental or entity is stable -%} | ||
| {%- if entity is deprecated -%} | ||
| {%- if entity.deprecated.note == "Uncategorized." -%} | ||
| {%- set deprecated_javadoc = "@deprecated" -%} | ||
| {%- else -%} | ||
| {%- set deprecated_javadoc = "@deprecated " ~ entity.deprecated.note -%} | ||
| {%- endif -%} | ||
| {%- else -%} | ||
| {%- set deprecated_javadoc = "" -%} | ||
| {%- endif -%} | ||
| {%- set brief = entity.brief | trim -%} | ||
| {%- if not brief.endswith(".") -%} | ||
| {%- set brief = brief ~ "." -%} | ||
| {%- endif -%} | ||
| {{ [brief, concat_if("\n\nNotes:\n\n", entity.note), deprecated_javadoc] | comment }} | ||
| {%- if entity is deprecated -%} | ||
| @Deprecated | ||
| {% endif %} | ||
| public static final String {{ entity.name | screaming_snake_case }}_TYPE = "{{ entity.name }}"; | ||
| {% endif %} | ||
| {% endfor %} | ||
|
|
||
| private {{ my_class_name }}() {} | ||
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
16 changes: 16 additions & 0 deletions
16
...cubating/src/main/java/io/opentelemetry/semconv/incubating/AndroidIncubatingEntities.java
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,16 @@ | ||
| /* | ||
| * Copyright The OpenTelemetry Authors | ||
| * SPDX-License-Identifier: Apache-2.0 | ||
| */ | ||
|
|
||
| package io.opentelemetry.semconv.incubating; | ||
|
|
||
| // DO NOT EDIT, this is an Auto-generated file from | ||
| // buildscripts/templates/registry/incubating_java/IncubatingSemanticEntities.java.j2 | ||
| @SuppressWarnings("unused") | ||
| public final class AndroidIncubatingEntities { | ||
| /** The Android platform on which the Android application is running. */ | ||
| public static final String ANDROID_TYPE = "android"; | ||
|
|
||
| private AndroidIncubatingEntities() {} | ||
| } |
16 changes: 16 additions & 0 deletions
16
...v-incubating/src/main/java/io/opentelemetry/semconv/incubating/AppIncubatingEntities.java
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,16 @@ | ||
| /* | ||
| * Copyright The OpenTelemetry Authors | ||
| * SPDX-License-Identifier: Apache-2.0 | ||
| */ | ||
|
|
||
| package io.opentelemetry.semconv.incubating; | ||
|
|
||
| // DO NOT EDIT, this is an Auto-generated file from | ||
| // buildscripts/templates/registry/incubating_java/IncubatingSemanticEntities.java.j2 | ||
| @SuppressWarnings("unused") | ||
| public final class AppIncubatingEntities { | ||
| /** An app used directly by end users — like mobile, web, or desktop. */ | ||
| public static final String APP_TYPE = "app"; | ||
|
|
||
| private AppIncubatingEntities() {} | ||
| } |
22 changes: 22 additions & 0 deletions
22
...v-incubating/src/main/java/io/opentelemetry/semconv/incubating/AwsIncubatingEntities.java
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,22 @@ | ||
| /* | ||
| * Copyright The OpenTelemetry Authors | ||
| * SPDX-License-Identifier: Apache-2.0 | ||
| */ | ||
|
|
||
| package io.opentelemetry.semconv.incubating; | ||
|
|
||
| // DO NOT EDIT, this is an Auto-generated file from | ||
| // buildscripts/templates/registry/incubating_java/IncubatingSemanticEntities.java.j2 | ||
| @SuppressWarnings("unused") | ||
| public final class AwsIncubatingEntities { | ||
| /** Entities used by AWS Elastic Container Service (ECS). */ | ||
| public static final String AWS_ECS_TYPE = "aws.ecs"; | ||
|
|
||
| /** Entities used by AWS Elastic Kubernetes Service (EKS). */ | ||
| public static final String AWS_EKS_TYPE = "aws.eks"; | ||
|
|
||
| /** Entities specific to Amazon Web Services. */ | ||
| public static final String AWS_LOG_TYPE = "aws.log"; | ||
|
|
||
| private AwsIncubatingEntities() {} | ||
| } | ||
23 changes: 23 additions & 0 deletions
23
...cubating/src/main/java/io/opentelemetry/semconv/incubating/BrowserIncubatingEntities.java
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,23 @@ | ||
| /* | ||
| * Copyright The OpenTelemetry Authors | ||
| * SPDX-License-Identifier: Apache-2.0 | ||
| */ | ||
|
|
||
| package io.opentelemetry.semconv.incubating; | ||
|
|
||
| // DO NOT EDIT, this is an Auto-generated file from | ||
| // buildscripts/templates/registry/incubating_java/IncubatingSemanticEntities.java.j2 | ||
| @SuppressWarnings("unused") | ||
| public final class BrowserIncubatingEntities { | ||
| /** | ||
| * The web browser in which the application represented by the resource is running. The {@code | ||
| * browser.*} attributes MUST be used only for resources that represent applications running in a | ||
| * web browser (regardless of whether running on a mobile or desktop device). | ||
| */ | ||
| public static final String BROWSER_TYPE = "browser"; | ||
|
|
||
| /** The web page document loaded in the browser. */ | ||
| public static final String BROWSER_DOCUMENT_TYPE = "browser.document"; | ||
|
|
||
| private BrowserIncubatingEntities() {} | ||
| } |
30 changes: 30 additions & 0 deletions
30
...-incubating/src/main/java/io/opentelemetry/semconv/incubating/CicdIncubatingEntities.java
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,30 @@ | ||
| /* | ||
| * Copyright The OpenTelemetry Authors | ||
| * SPDX-License-Identifier: Apache-2.0 | ||
| */ | ||
|
|
||
| package io.opentelemetry.semconv.incubating; | ||
|
|
||
| // DO NOT EDIT, this is an Auto-generated file from | ||
| // buildscripts/templates/registry/incubating_java/IncubatingSemanticEntities.java.j2 | ||
| @SuppressWarnings("unused") | ||
| public final class CicdIncubatingEntities { | ||
| /** A pipeline is a series of automated steps that helps software teams deliver code. */ | ||
| public static final String CICD_PIPELINE_TYPE = "cicd.pipeline"; | ||
|
|
||
| /** A pipeline run is a singular execution of a given pipeline's tasks. */ | ||
| public static final String CICD_PIPELINE_RUN_TYPE = "cicd.pipeline.run"; | ||
|
|
||
| /** | ||
| * A CI/CD worker is a component of the CI/CD system that performs work (eg. running pipeline | ||
| * tasks or performing sync). A single pipeline run may be distributed across multiple workers. | ||
| * Any OpenTelemetry signal associated with a worker should be associated to the worker that | ||
| * performed the corresponding work. For example, when a pipeline run involves several workers, | ||
| * its task run spans may reference the different {@code cicd.worker} resources corresponding to | ||
| * the workers that executed each task run. The pipeline run's parent span may instead reference | ||
| * the CI/CD controller as the {@code cicd.worker} resource. | ||
| */ | ||
| public static final String CICD_WORKER_TYPE = "cicd.worker"; | ||
|
|
||
| private CicdIncubatingEntities() {} | ||
| } |
16 changes: 16 additions & 0 deletions
16
...incubating/src/main/java/io/opentelemetry/semconv/incubating/CloudIncubatingEntities.java
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,16 @@ | ||
| /* | ||
| * Copyright The OpenTelemetry Authors | ||
| * SPDX-License-Identifier: Apache-2.0 | ||
| */ | ||
|
|
||
| package io.opentelemetry.semconv.incubating; | ||
|
|
||
| // DO NOT EDIT, this is an Auto-generated file from | ||
| // buildscripts/templates/registry/incubating_java/IncubatingSemanticEntities.java.j2 | ||
| @SuppressWarnings("unused") | ||
| public final class CloudIncubatingEntities { | ||
| /** A cloud environment (e.g. GCP, Azure, AWS). */ | ||
| public static final String CLOUD_TYPE = "cloud"; | ||
|
|
||
| private CloudIncubatingEntities() {} | ||
| } |
28 changes: 28 additions & 0 deletions
28
...ing/src/main/java/io/opentelemetry/semconv/incubating/CloudfoundryIncubatingEntities.java
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,28 @@ | ||
| /* | ||
| * Copyright The OpenTelemetry Authors | ||
| * SPDX-License-Identifier: Apache-2.0 | ||
| */ | ||
|
|
||
| package io.opentelemetry.semconv.incubating; | ||
|
|
||
| // DO NOT EDIT, this is an Auto-generated file from | ||
| // buildscripts/templates/registry/incubating_java/IncubatingSemanticEntities.java.j2 | ||
| @SuppressWarnings("unused") | ||
| public final class CloudfoundryIncubatingEntities { | ||
| /** The application which is monitored. */ | ||
| public static final String CLOUDFOUNDRY_APP_TYPE = "cloudfoundry.app"; | ||
|
|
||
| /** The organization of the application which is monitored. */ | ||
| public static final String CLOUDFOUNDRY_ORG_TYPE = "cloudfoundry.org"; | ||
|
|
||
| /** The process of the application which is monitored. */ | ||
| public static final String CLOUDFOUNDRY_PROCESS_TYPE = "cloudfoundry.process"; | ||
|
|
||
| /** The space of the application which is monitored. */ | ||
| public static final String CLOUDFOUNDRY_SPACE_TYPE = "cloudfoundry.space"; | ||
|
|
||
| /** The system component which is monitored. */ | ||
| public static final String CLOUDFOUNDRY_SYSTEM_TYPE = "cloudfoundry.system"; | ||
|
|
||
| private CloudfoundryIncubatingEntities() {} | ||
| } |
22 changes: 22 additions & 0 deletions
22
...bating/src/main/java/io/opentelemetry/semconv/incubating/ContainerIncubatingEntities.java
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,22 @@ | ||
| /* | ||
| * Copyright The OpenTelemetry Authors | ||
| * SPDX-License-Identifier: Apache-2.0 | ||
| */ | ||
|
|
||
| package io.opentelemetry.semconv.incubating; | ||
|
|
||
| // DO NOT EDIT, this is an Auto-generated file from | ||
| // buildscripts/templates/registry/incubating_java/IncubatingSemanticEntities.java.j2 | ||
| @SuppressWarnings("unused") | ||
| public final class ContainerIncubatingEntities { | ||
| /** A container instance. */ | ||
| public static final String CONTAINER_TYPE = "container"; | ||
|
|
||
| /** The image used for the container. */ | ||
| public static final String CONTAINER_IMAGE_TYPE = "container.image"; | ||
|
|
||
| /** The runtime being used to run the container. */ | ||
| public static final String CONTAINER_RUNTIME_TYPE = "container.runtime"; | ||
|
|
||
| private ContainerIncubatingEntities() {} | ||
| } |
16 changes: 16 additions & 0 deletions
16
...ating/src/main/java/io/opentelemetry/semconv/incubating/DeploymentIncubatingEntities.java
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,16 @@ | ||
| /* | ||
| * Copyright The OpenTelemetry Authors | ||
| * SPDX-License-Identifier: Apache-2.0 | ||
| */ | ||
|
|
||
| package io.opentelemetry.semconv.incubating; | ||
|
|
||
| // DO NOT EDIT, this is an Auto-generated file from | ||
| // buildscripts/templates/registry/incubating_java/IncubatingSemanticEntities.java.j2 | ||
| @SuppressWarnings("unused") | ||
| public final class DeploymentIncubatingEntities { | ||
| /** The software deployment. */ | ||
| public static final String DEPLOYMENT_TYPE = "deployment"; | ||
|
|
||
| private DeploymentIncubatingEntities() {} | ||
| } |
16 changes: 16 additions & 0 deletions
16
...ncubating/src/main/java/io/opentelemetry/semconv/incubating/DeviceIncubatingEntities.java
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,16 @@ | ||
| /* | ||
| * Copyright The OpenTelemetry Authors | ||
| * SPDX-License-Identifier: Apache-2.0 | ||
| */ | ||
|
|
||
| package io.opentelemetry.semconv.incubating; | ||
|
|
||
| // DO NOT EDIT, this is an Auto-generated file from | ||
| // buildscripts/templates/registry/incubating_java/IncubatingSemanticEntities.java.j2 | ||
| @SuppressWarnings("unused") | ||
| public final class DeviceIncubatingEntities { | ||
| /** The device on which the process represented by this resource is running. */ | ||
| public static final String DEVICE_TYPE = "device"; | ||
|
|
||
| private DeviceIncubatingEntities() {} | ||
| } |
16 changes: 16 additions & 0 deletions
16
...-incubating/src/main/java/io/opentelemetry/semconv/incubating/FaasIncubatingEntities.java
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,16 @@ | ||
| /* | ||
| * Copyright The OpenTelemetry Authors | ||
| * SPDX-License-Identifier: Apache-2.0 | ||
| */ | ||
|
|
||
| package io.opentelemetry.semconv.incubating; | ||
|
|
||
| // DO NOT EDIT, this is an Auto-generated file from | ||
| // buildscripts/templates/registry/incubating_java/IncubatingSemanticEntities.java.j2 | ||
| @SuppressWarnings("unused") | ||
| public final class FaasIncubatingEntities { | ||
| /** A serverless instance. */ | ||
| public static final String FAAS_TYPE = "faas"; | ||
|
|
||
| private FaasIncubatingEntities() {} | ||
| } |
40 changes: 40 additions & 0 deletions
40
...v-incubating/src/main/java/io/opentelemetry/semconv/incubating/GcpIncubatingEntities.java
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,40 @@ | ||
| /* | ||
| * Copyright The OpenTelemetry Authors | ||
| * SPDX-License-Identifier: Apache-2.0 | ||
| */ | ||
|
|
||
| package io.opentelemetry.semconv.incubating; | ||
|
|
||
| // DO NOT EDIT, this is an Auto-generated file from | ||
| // buildscripts/templates/registry/incubating_java/IncubatingSemanticEntities.java.j2 | ||
| @SuppressWarnings("unused") | ||
| public final class GcpIncubatingEntities { | ||
| /** | ||
| * Attributes denoting data from an Application in AppHub. See <a | ||
| * href="https://cloud.google.com/app-hub/docs/overview">AppHub overview</a>. | ||
| */ | ||
| public static final String GCP_APPHUB_APPLICATION_TYPE = "gcp.apphub.application"; | ||
|
|
||
| /** | ||
| * Attributes denoting data from a Service in AppHub. See <a | ||
| * href="https://cloud.google.com/app-hub/docs/overview">AppHub overview</a>. | ||
| */ | ||
| public static final String GCP_APPHUB_SERVICE_TYPE = "gcp.apphub.service"; | ||
|
|
||
| /** | ||
| * Attributes denoting data from a Workload in AppHub. See <a | ||
| * href="https://cloud.google.com/app-hub/docs/overview">AppHub overview</a>. | ||
| */ | ||
| public static final String GCP_APPHUB_WORKLOAD_TYPE = "gcp.apphub.workload"; | ||
|
|
||
| /** Resource used by Google Cloud Run. */ | ||
| public static final String GCP_CLOUD_RUN_TYPE = "gcp.cloud_run"; | ||
|
|
||
| /** Resources used by Google Compute Engine (GCE). */ | ||
| public static final String GCP_GCE_TYPE = "gcp.gce"; | ||
|
|
||
| /** A GCE instance group manager. */ | ||
| public static final String GCP_GCE_INSTANCE_GROUP_MANAGER_TYPE = "gcp.gce.instance_group_manager"; | ||
|
|
||
| private GcpIncubatingEntities() {} | ||
| } |
16 changes: 16 additions & 0 deletions
16
...ncubating/src/main/java/io/opentelemetry/semconv/incubating/HerokuIncubatingEntities.java
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,16 @@ | ||
| /* | ||
| * Copyright The OpenTelemetry Authors | ||
| * SPDX-License-Identifier: Apache-2.0 | ||
| */ | ||
|
|
||
| package io.opentelemetry.semconv.incubating; | ||
|
|
||
| // DO NOT EDIT, this is an Auto-generated file from | ||
| // buildscripts/templates/registry/incubating_java/IncubatingSemanticEntities.java.j2 | ||
| @SuppressWarnings("unused") | ||
| public final class HerokuIncubatingEntities { | ||
| /** <a href="https://devcenter.heroku.com/articles/dyno-metadata">Heroku dyno metadata</a>. */ | ||
| public static final String HEROKU_TYPE = "heroku"; | ||
|
|
||
| private HerokuIncubatingEntities() {} | ||
| } |
22 changes: 22 additions & 0 deletions
22
...-incubating/src/main/java/io/opentelemetry/semconv/incubating/HostIncubatingEntities.java
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,22 @@ | ||
| /* | ||
| * Copyright The OpenTelemetry Authors | ||
| * SPDX-License-Identifier: Apache-2.0 | ||
| */ | ||
|
|
||
| package io.opentelemetry.semconv.incubating; | ||
|
|
||
| // DO NOT EDIT, this is an Auto-generated file from | ||
| // buildscripts/templates/registry/incubating_java/IncubatingSemanticEntities.java.j2 | ||
| @SuppressWarnings("unused") | ||
| public final class HostIncubatingEntities { | ||
| /** | ||
| * A host is defined as a computing instance. For example, physical servers, virtual machines, | ||
| * switches or disk array. | ||
| */ | ||
| public static final String HOST_TYPE = "host"; | ||
|
|
||
| /** A host's CPU information. */ | ||
| public static final String HOST_CPU_TYPE = "host.cpu"; | ||
|
|
||
| private HostIncubatingEntities() {} | ||
| } |
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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.
Some schema-v2 migration PRs are in flight which (under a one-time exception) remove or rename entities without retaining deprecated definitions:
I think ok to merge this as-is but wanted to mention in case you'd prefer to hold for those changes.
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.
I think those changes would likely be included in the next semantic convention release yeah? If so, then we won't actually publish these new entity constants until updating to the latest semconv release with those changes. So no harm done.
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.
good point 👍