From 814bea778b5df3dc216123c406f3cf0a7da81622 Mon Sep 17 00:00:00 2001 From: Trask Stalnaker Date: Fri, 10 Jan 2025 08:12:00 -0800 Subject: [PATCH] Change markdown link checker to lychee (#2503) * Change markdown link checker to lychee * try * Fix broken fragments * cspell * exclude * perf * all * Fix broken link --- .cspell.yaml | 1 + .../ISSUE_TEMPLATE/gc_member_onboarding.md | 2 +- .../scripts/markdown-link-check-config.json | 51 ------------------- .../scripts/markdown-link-check-with-retry.sh | 17 ------- .lychee.toml | 16 ++++++ Makefile | 14 ++--- community-members.md | 2 +- .../2019/governance-committee-election.md | 2 +- .../2020/governance-committee-election.md | 14 ++--- .../2021/governance-committee-election.md | 12 ++--- .../2022/governance-committee-election.md | 6 +-- .../2023/governance-committee-election.md | 4 +- .../2024/governance-committee-candidates.md | 4 +- guides/contributor/processes.md | 2 +- projects/event-api.md | 2 +- tech-committee-charter.md | 4 +- 16 files changed, 51 insertions(+), 102 deletions(-) delete mode 100644 .github/scripts/markdown-link-check-config.json delete mode 100755 .github/scripts/markdown-link-check-with-retry.sh create mode 100644 .lychee.toml diff --git a/.cspell.yaml b/.cspell.yaml index e777c66ae..5b04795b6 100644 --- a/.cspell.yaml +++ b/.cspell.yaml @@ -146,6 +146,7 @@ words: - logz - lucavallin - lukas + - lycheeverse - magnusbaeck - maintainership - mancuso diff --git a/.github/ISSUE_TEMPLATE/gc_member_onboarding.md b/.github/ISSUE_TEMPLATE/gc_member_onboarding.md index 3f6830d72..8e9f4f2be 100644 --- a/.github/ISSUE_TEMPLATE/gc_member_onboarding.md +++ b/.github/ISSUE_TEMPLATE/gc_member_onboarding.md @@ -33,7 +33,7 @@ The new member must: 2. [Concepts](https://opentelemetry.io/docs/concepts/) 3. [Specification](https://opentelemetry.io/docs/specs/otel/) 2. Have read and agreed to comply with the - [OpenTelemetry Governance Committee Charter](https://github.com/open-telemetry/community/blob/main/governance-charter.md) + [OpenTelemetry Governance Committee Charter](../../governance-charter.md) as per requirements to stand for election. 3. Have an email address, Google account, and GitHub account and is willing to share those details with other GC members. diff --git a/.github/scripts/markdown-link-check-config.json b/.github/scripts/markdown-link-check-config.json deleted file mode 100644 index b2dc96017..000000000 --- a/.github/scripts/markdown-link-check-config.json +++ /dev/null @@ -1,51 +0,0 @@ -{ - "retryOn429" : true, - "aliveStatusCodes" : [ - 200, - 403 - ], - "ignorePatterns" : [ - { - "pattern" : "https://github.com/username" - }, - { - "pattern" : "https://github.com/zhyChesterCheung" - }, - { - "pattern" : "https://twitter.com" - }, - { - "pattern" : "https://www.zocdoc.com" - }, - { - "pattern" : "https://www.youtube.com" - }, - { - "pattern" : "https://www.linkedin.com" - }, - { - "pattern" : "https://dev.azure.com" - }, - { - "pattern" : "https://www.microsoft.com" - }, - { - "pattern" : "https://calendar.google.com/calendar/ical/google.com_b79e3e90j7bbsa2n2p5an5lf60%40group.calendar.google.com/public/basic.ics" - }, - { - "pattern" : "https://www.myget.org" - }, - { - "pattern" : "https://grafana.com/orgs/otelsigsecurity" - }, - { - "pattern" : "https://civs1.civs.us/" - }, - { - "pattern" : "https://slack.cncf.io/" - }, - { - "pattern" : "https://crates.io" - } - ] -} diff --git a/.github/scripts/markdown-link-check-with-retry.sh b/.github/scripts/markdown-link-check-with-retry.sh deleted file mode 100755 index 03fd60bb7..000000000 --- a/.github/scripts/markdown-link-check-with-retry.sh +++ /dev/null @@ -1,17 +0,0 @@ -#!/bin/bash -e - -# this script helps to reduce sporadic link check failures by retrying at a file-by-file level - -retry_count=3 -config="$(dirname "$0")/markdown-link-check-config.json" - -for file in "$@"; do - for i in $(seq 1 $retry_count); do - if npx --no -- markdown-link-check --quiet --progress --config "$config" "$file"; then - break - elif [[ $i -eq $retry_count ]]; then - exit 1 - fi - sleep 5 - done -done diff --git a/.lychee.toml b/.lychee.toml new file mode 100644 index 000000000..542270660 --- /dev/null +++ b/.lychee.toml @@ -0,0 +1,16 @@ +include_fragments = true + +accept = ["200..=299", "401", "403"] + +exclude = [ + "https://slack.com/help/articles/8328303095443-Understand-Channel-Managers-in-Slack", + "https://observe2020.io", + "https://servicenow.com", + # excluding links to user profiles is done for performance + # because there are a lot of links to user profiles in this repository + # and GitHub extra throttles access to user profile pages + "^https://github.com/[^/]+$" +] + +# better to be safe and avoid failures +max_retries = 6 diff --git a/Makefile b/Makefile index 9c5e076e4..5d0ad8fb9 100644 --- a/Makefile +++ b/Makefile @@ -17,13 +17,13 @@ table-check: .PHONY: markdown-link-check markdown-link-check: - @if ! npm ls markdown-link-check; then npm install; fi - find . -type f \ - -name '*.md' \ - -not -path './node_modules/*' \ - -not -path './elections/*/governance-committee-election.md' \ - -not -path './elections/*/governance-committee-candidates.md' \ - | xargs .github/scripts/markdown-link-check-with-retry.sh + docker run --rm \ + --mount 'type=bind,source=$(PWD),target=/home/repo' \ + lycheeverse/lychee \ + --config home/repo/.lychee.toml \ + --root-dir /home/repo \ + --verbose \ + home/repo # This target runs markdown-toc on all files that contain # a pair of comments and . diff --git a/community-members.md b/community-members.md index 457e65d99..de746de40 100644 --- a/community-members.md +++ b/community-members.md @@ -3,7 +3,7 @@ ## Governance Committee This is the current Governance Committee, per the [Governance Committee -Charter](https://github.com/open-telemetry/community/blob/master/governance-charter.md), +Charter](./governance-charter.md), in alphabetical order: - [Alolita Sharma](https://github.com/alolita), Apple, until October 2026 diff --git a/elections/2019/governance-committee-election.md b/elections/2019/governance-committee-election.md index 1a731db16..ae94a3b85 100644 --- a/elections/2019/governance-committee-election.md +++ b/elections/2019/governance-committee-election.md @@ -219,4 +219,4 @@ fill out the pre-registration form: https://forms.gle/9aqtXYm9BmZg7tjo9 - enzian - cep21 -[charter]:https://github.com/open-telemetry/community/blob/master/governance-charter.md#establishment-of-a-governance-committee +[charter]:../../governance-charter.md#elections diff --git a/elections/2020/governance-committee-election.md b/elections/2020/governance-committee-election.md index 91ea82957..374763f3e 100644 --- a/elections/2020/governance-committee-election.md +++ b/elections/2020/governance-committee-election.md @@ -4,7 +4,7 @@ Please see **[the list of candidates running in the election here](./governance- This document lays out the 2020 election process per the OpenTelemetry governance committee -[charter document](https://github.com/open-telemetry/community/blob/master/governance-charter.md#establishment-of-a-governance-committee) +[charter document](../../governance-charter.md#elections) requirements. In this election there are four seats that need to be filled. The nominees list @@ -17,7 +17,7 @@ community is well-represented by the Governance Committee. # TL;DR * If you‘ve been nominated or are willing to nominate yourself: check the - [charter document](https://github.com/open-telemetry/community/blob/master/governance-charter.md#establishment-of-a-governance-committee) + [charter document](../../governance-charter.md#elections) and confirm you are ready for the commitment. Make sure to provide all necessary information before 12:01am GMT on 2020/10/14 * If you are an active community member: confirm that you are in the voters @@ -48,7 +48,7 @@ are welcome to run again for one of the four vacancies. After this election and until October 2021, the Governance Committee will have 11 seats. Please refer to the -[charter document](https://github.com/open-telemetry/community/blob/master/governance-charter.md#establishment-of-a-governance-committee) +[charter document](../../governance-charter.md#elections) for more information. @@ -68,11 +68,11 @@ this process. # Nominations As per -[the charter document](https://github.com/open-telemetry/community/blob/master/governance-charter.md#establishment-of-a-governance-committee), +[the charter document](../../governance-charter.md#elections), anybody is eligible to run for the Governance Committee. During the “call for nomination” period, people can be nominated or nominate themselves by submitting a Pull Request adding said candidate to the -[governance-committee-candidates.md](https://github.com/open-telemetry/community/blob/master/elections/2020/governance-committee-candidates.md) +[governance-committee-candidates.md](./governance-committee-candidates.md) file in the OpenTelemetry community repository. The template in that file includes the following columns: * Full name @@ -103,14 +103,14 @@ contributions, you need to pre-register so a voting link can be sent. The form will ask for email and a proof of eligibility for the vote. Criteria for voting eligibility are listed in the Members of Standing section of the -[charter document](https://github.com/open-telemetry/community/blob/master/governance-charter.md#members-of-standing). +[charter document](../../governance-charter.md#members-of-standing). One of two options will be available in the form to prove eligibility: * GitHub handle * List either… * Your contributions to OpenTelemetry that make you eligible to vote, or - * Your non-code contributions per the [Members of Standing section of the charter](https://github.com/open-telemetry/community/blob/master/governance-charter.md#members-of-standing): + * Your non-code contributions per the [Members of Standing section of the charter](../../governance-charter.md#members-of-standing): particularly, your relationship to a well-known project that’s taken a hard dependency on OpenTelemetry, and/or your involvement with a well-known organization’s adoption of OpenTelemetry as an end-user. diff --git a/elections/2021/governance-committee-election.md b/elections/2021/governance-committee-election.md index e86bb4f86..83f30dbc2 100644 --- a/elections/2021/governance-committee-election.md +++ b/elections/2021/governance-committee-election.md @@ -4,7 +4,7 @@ Please see **[the list of candidates running in the election here](./governance- This document lays out the 2021 election process per the OpenTelemetry governance committee -[charter document](https://github.com/open-telemetry/community/blob/master/governance-charter.md#establishment-of-a-governance-committee) +[charter document](../../governance-charter.md#elections) requirements. In this election there are five seats that need to be filled. @@ -24,7 +24,7 @@ community is well-represented by the Governance Committee. # TL;DR * If you‘ve been nominated or are willing to nominate yourself: check the - [charter document](https://github.com/open-telemetry/community/blob/master/governance-charter.md#establishment-of-a-governance-committee) + [charter document](../../governance-charter.md#elections) and confirm you are ready for the commitment. Make sure to provide all necessary information before 12:01am GMT on 2021/10/14 * If you are an active community member: confirm that you are in the voters @@ -56,7 +56,7 @@ election cycle, though they are welcome to run again for one of the five vacanci After this election and until October 2022, the Governance Committee will have 9 seats, all of which will be elected positions. Please refer to the -[charter document](https://github.com/open-telemetry/community/blob/master/governance-charter.md#establishment-of-a-governance-committee) +[charter document](../../governance-charter.md#elections) for more information. @@ -75,7 +75,7 @@ this process. # Nominations As per -[the charter document](https://github.com/open-telemetry/community/blob/master/governance-charter.md#establishment-of-a-governance-committee), +[the charter document](../../governance-charter.md#elections), anybody is eligible to run for the Governance Committee. During the “call for nomination” period, people can be nominated or nominate themselves by submitting a Pull Request adding said candidate to the @@ -103,7 +103,7 @@ directly to ensure the commitment and desire to be nominated. # Voter Eligibility -All [members of standing](https://github.com/open-telemetry/community/blob/master/governance-charter.md#members-of-standing) +All [members of standing](../../governance-charter.md#members-of-standing) will automatically be eligible to vote. To confirm your eligibility status, see the [election announcements issue](https://github.com/open-telemetry/community/issues/852). If your code contributions do not meet eligibility requirements, but you believe your non-code contributions @@ -115,7 +115,7 @@ One of two options will be available in the form to prove eligibility: * GitHub handle * List either… * Your contributions to OpenTelemetry that make you eligible to vote, or - * Your non-code contributions per the [Members of Standing section of the charter](https://github.com/open-telemetry/community/blob/master/governance-charter.md#members-of-standing): + * Your non-code contributions per the [Members of Standing section of the charter](../../governance-charter.md#members-of-standing): particularly, your relationship to a well-known project that’s taken a hard dependency on OpenTelemetry, and/or your involvement with a well-known organization’s adoption of OpenTelemetry as an end-user. diff --git a/elections/2022/governance-committee-election.md b/elections/2022/governance-committee-election.md index bd84bc5ff..4f10b561a 100644 --- a/elections/2022/governance-committee-election.md +++ b/elections/2022/governance-committee-election.md @@ -2,7 +2,7 @@ Please see **[the list of candidates running in the election here](./governance-committee-candidates.md)**. -This document lays out the 2022 election process per the OpenTelemetry governance committee [charter document](https://github.com/open-telemetry/community/blob/main/governance-charter.md#establishment-of-a-governance-committee) requirements. +This document lays out the 2022 election process per the OpenTelemetry governance committee [charter document](../../governance-charter.md#elections) requirements. This election should fill four seats. @@ -38,7 +38,7 @@ Current governance committee members (alphabetical order): Four people must be elected in this election, each with two-year terms. Note that four current Governance Committee members end terms as part of this election cycle, though they are welcome to run again for one of the four vacancies. -After this election and until October 2023, the Governance Committee will have nine seats, all of which will be elected positions. Please refer to the [charter document](https://github.com/open-telemetry/community/blob/main/governance-charter.md#establishment-of-a-governance-committee) for more information. +After this election and until October 2023, the Governance Committee will have nine seats, all of which will be elected positions. Please refer to the [charter document](../../governance-charter.md#elections) for more information. # Voting process @@ -52,7 +52,7 @@ The election committee should evaluate the following alternatives for the 2023 e # Nominations -As per [the charter document](https://github.com/open-telemetry/community/blob/main/governance-charter.md#establishment-of-a-governance-committee), anybody is eligible to run for the Governance Committee. During the "call for nomination" period, people can be nominated or nominate themselves by submitting a Pull Request adding said candidate to the [governance-committee-candidates.md](https://github.com/open-telemetry/community/blob/main/elections/2022/governance-committee-candidates.md) file in the OpenTelemetry community repository. The template in that file includes the following columns: +As per [the charter document](../../governance-charter.md#elections), anybody is eligible to run for the Governance Committee. During the "call for nomination" period, people can be nominated or nominate themselves by submitting a Pull Request adding said candidate to the [governance-committee-candidates.md](https://github.com/open-telemetry/community/blob/main/elections/2022/governance-committee-candidates.md) file in the OpenTelemetry community repository. The template in that file includes the following columns: * Full name * GitHub alias diff --git a/elections/2023/governance-committee-election.md b/elections/2023/governance-committee-election.md index e49522e46..40b31856a 100644 --- a/elections/2023/governance-committee-election.md +++ b/elections/2023/governance-committee-election.md @@ -2,7 +2,7 @@ Please see **[the list of candidates running in the election here](./governance-committee-candidates.md)**. -This document lays out the 2023 election process per the OpenTelemetry governance committee [charter document](../../governance-charter.md#establishment-of-a-governance-committee) requirements. +This document lays out the 2023 election process per the OpenTelemetry governance committee [charter document](../../governance-charter.md#elections) requirements. This election should fill five seats. @@ -50,7 +50,7 @@ The governance committee also evaluated [Condorcet Internet Voting Service](http # Nominations -As per [the charter document](../../governance-charter.md#establishment-of-a-governance-committee), anybody is eligible to run for the Governance Committee. During the "call for nomination" period, people can be nominated or nominate themselves by submitting a Pull Request adding said candidate to the [governance-committee-candidates.md](./governance-committee-candidates.md) file in the OpenTelemetry community repository. The template in that file includes the following columns: +As per [the charter document](../../governance-charter.md#elections), anybody is eligible to run for the Governance Committee. During the "call for nomination" period, people can be nominated or nominate themselves by submitting a Pull Request adding said candidate to the [governance-committee-candidates.md](./governance-committee-candidates.md) file in the OpenTelemetry community repository. The template in that file includes the following columns: * Full name * GitHub alias diff --git a/elections/2024/governance-committee-candidates.md b/elections/2024/governance-committee-candidates.md index b2757cf9f..891869cf3 100644 --- a/elections/2024/governance-committee-candidates.md +++ b/elections/2024/governance-committee-candidates.md @@ -22,7 +22,7 @@ In alphabetical order: - Company: [ServiceNow](https://servicenow.com) - GitHub: [avillela](https://github.com/avillela) -I'm Adriana Villela, and I have been involved with OpenTelemetry since 2022. I am one of the maintainers of the OTel End User SIG, and I am also a CNCF Ambassador. I have been an early proponent of OpenTelemetry, since my days of working as a manager of the Observability Practices team at Tucows, where I convinced the entire organization of the importance of OpenTelemetry adoption before traces even went GA. I am a firm believer of this project and strive to contribute wherever I can - whether it's finding speakers for the End User SIG's [OTel in Practice](https://youtube.com/playlist?list=PLVYDBkQ1TdyxKgdGE4ThYLkNRCuLLYy9x&si=T6BMcqg09zik89OR) and [OTel Q&A](https://youtube.com/playlist?list=PLVYDBkQ1TdywIl9xKEo5_u7zlwY38dW43&si=aS53NEobEZ-f-HfK), collaborating with other SIGs to gather [user feedback](https://github.com/open-telemetry/sig-end-user/tree/main/end-user-surveysx), [documentation contributions](https://github.com/search?q=org%3Aopen-telemetry+avillela&type=pullrequests) (e.g. helping to make the OTel Operator more accessible), blog posts on the OTel blog, [my Medium blog](https://adri-v.medium.com/list/opentelemetry-92f897d8b31e), [my podcast])(https://youtube.com/@geekingout_pod), and [giving talks at conferences](https://youtube.com/playlist?list=PL2n5EpcOFZftDkMOL18RVKETHWTrvcKOD&si=mWd1-QNZWLIUoxFv) like KubeCon and Open Source Summit. I am committed to the OpenTelemetry project. One of my favourite aspects of the project is the community. Members are thoughtful, polite, and encouraging, providing a safe space to contribute, especially when it comes to feedback on things like pull requests, which is why I am always inspired to keep on contributing. I want to help keep that thoughtfulness and psychological safety alive. +I'm Adriana Villela, and I have been involved with OpenTelemetry since 2022. I am one of the maintainers of the OTel End User SIG, and I am also a CNCF Ambassador. I have been an early proponent of OpenTelemetry, since my days of working as a manager of the Observability Practices team at Tucows, where I convinced the entire organization of the importance of OpenTelemetry adoption before traces even went GA. I am a firm believer of this project and strive to contribute wherever I can - whether it's finding speakers for the End User SIG's [OTel in Practice](https://youtube.com/playlist?list=PLVYDBkQ1TdyxKgdGE4ThYLkNRCuLLYy9x&si=T6BMcqg09zik89OR) and [OTel Q&A](https://youtube.com/playlist?list=PLVYDBkQ1TdywIl9xKEo5_u7zlwY38dW43&si=aS53NEobEZ-f-HfK), collaborating with other SIGs to gather [user feedback](https://github.com/open-telemetry/sig-end-user/tree/main/end-user-surveys), [documentation contributions](https://github.com/search?q=org%3Aopen-telemetry+avillela&type=pullrequests) (e.g. helping to make the OTel Operator more accessible), blog posts on the OTel blog, [my Medium blog](https://adri-v.medium.com/list/opentelemetry-92f897d8b31e), [my podcast])(https://youtube.com/@geekingout_pod), and [giving talks at conferences](https://youtube.com/playlist?list=PL2n5EpcOFZftDkMOL18RVKETHWTrvcKOD&si=mWd1-QNZWLIUoxFv) like KubeCon and Open Source Summit. I am committed to the OpenTelemetry project. One of my favourite aspects of the project is the community. Members are thoughtful, polite, and encouraging, providing a safe space to contribute, especially when it comes to feedback on things like pull requests, which is why I am always inspired to keep on contributing. I want to help keep that thoughtfulness and psychological safety alive. --- @@ -120,7 +120,7 @@ Thank you for your support! Morgan is one of the co-founders of OpenTelemetry and W3C Trace Context, and he currently serves on the Governance Committee. He was instrumental in the creation of OpenTelemetry and assembling and focusing its earliest contributors, and his work continues to have a broad impact on the project: - Oversaw the final drives towards the **beta and GA releases of both traces and metrics** -- **Proposed and co-led the [addition of logs as a new OpenTelemetry signal]([url](https://www.youtube.com/watch?v=a1KZwfLr2PQ&t=26s))** +- **Proposed and co-led the [addition of logs as a new OpenTelemetry signal](https://www.youtube.com/watch?v=a1KZwfLr2PQ&t=26s)** - **Created the profiling SIG** to add profiles as a new OpenTelemetry signal, brought new members into the community to lead it, and managed the acceptance of the Elastic profiling agent to OpenTelemetry - **Runs the weekly maintainers check-in** and contributes to various SIGs, including profiles and .Net - **Created the OpenTelemetry Observatory** at Kubecon, which serves as a space for contributors to work together in person, and for new people to learn more about the project and get introduced to the community diff --git a/guides/contributor/processes.md b/guides/contributor/processes.md index 44abcd34b..5f191cbca 100644 --- a/guides/contributor/processes.md +++ b/guides/contributor/processes.md @@ -192,7 +192,7 @@ mention approvers or maintainers of this repository. ## Code attribution and licensing -[License information](README.md#License) should be included in all source files where applicable. +[License information](../../README.md#license) should be included in all source files where applicable. Either full or short version of the header should be used as described at [apache.org](https://www.apache.org/foundation/license-faq.html#Apply-My-Software). It is OK to exclude the year from the copyright notice. For the details on how to apply the copyright, see the next section. diff --git a/projects/event-api.md b/projects/event-api.md index ad343c3ab..065d68b28 100644 --- a/projects/event-api.md +++ b/projects/event-api.md @@ -53,7 +53,7 @@ SIG meeting times: Friday 10am - 11am PT ### Timeline Completed: -* [Provider based EventLogger API](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/logs/event-api.md) +* [Provider based EventLogger API](https://github.com/open-telemetry/opentelemetry-specification/blob/v1.40.0/specification/logs/event-api.md) Q2 2024 diff --git a/tech-committee-charter.md b/tech-committee-charter.md index db31c218b..bfb3a9519 100644 --- a/tech-committee-charter.md +++ b/tech-committee-charter.md @@ -73,7 +73,7 @@ Leadership roles in OpenTelemetry project will be peer elected representatives o ### Election of TC Members -New TC members can be nominated by any Member in Standing as defined in the [OpenTelemetry Governance Charter](https://github.com/open-telemetry/community/blob/master/governance-charter.md#members-of-standing), and must be sponsored by one of the existing TC members to bring it to a vote. A candidate can be elected to the TC by the super-majority vote (greater than two thirds) of the existing TC members. The voting by the TC members is anonymous. A multiple-candidate method, such as [Condorcet](https://en.wikipedia.org/wiki/Condorcet_method) or [Single Transferable Vote](https://en.wikipedia.org/wiki/Single_transferable_vote), may be used to conduct the vote, by phrasing the selections as: +New TC members can be nominated by any Member in Standing as defined in the [OpenTelemetry Governance Charter](./governance-charter.md#members-of-standing), and must be sponsored by one of the existing TC members to bring it to a vote. A candidate can be elected to the TC by the super-majority vote (greater than two thirds) of the existing TC members. The voting by the TC members is anonymous. A multiple-candidate method, such as [Condorcet](https://en.wikipedia.org/wiki/Condorcet_method) or [Single Transferable Vote](https://en.wikipedia.org/wiki/Single_transferable_vote), may be used to conduct the vote, by phrasing the selections as: * Vote for Nominee X * Vote against Nominee X @@ -103,7 +103,7 @@ For all votes, a simple majority of a quorum of TC members for, or against, the ### Requesting a TC decision -When a project issue fails to reach consensus, OpenTelemetry [community members](./guides/contributor/membership.md#member) may request that the TC make a decision. If the issue falls under a project with assigned [approvers](./community-membership.md#approver) and / or [maintainers](./community-membership.md#maintainer), at least two of those members should agree to and coordinate requesting a TC decision. +When a project issue fails to reach consensus, OpenTelemetry [community members](./guides/contributor/membership.md#member) may request that the TC make a decision. If the issue falls under a project with assigned [approvers](./guides/contributor/membership.md#approver) and / or [maintainers](./guides/contributor/membership.md#maintainer), at least two of those members should agree to and coordinate requesting a TC decision. The request for a TC decision must be made by a comment on a public issue. The comment must explicitly tag the TC team (@open-telemetry/technical-committee), and summarize the various options and their relative tradeoffs. A TC member should review the summary and may request additional details or other changes to more accurately frame the issue. The request will then be added to the TC agenda, and the TC will work towards a decision using the [TC voting process](#voting-on-project-issues).