diff --git a/.github/scripts/triage/check-changes-ownership.ts b/.github/scripts/triage/check-changes-ownership.ts index fae914db57..822d0b6159 100644 --- a/.github/scripts/triage/check-changes-ownership.ts +++ b/.github/scripts/triage/check-changes-ownership.ts @@ -28,15 +28,24 @@ async function shouldSkipCheck() { } function getCommentText(changesWithoutOwners: string[]): string { - return ` -This PR contains changes to area(s) that do not have an active SIG/project and will be auto-closed: + return `👋 Thanks for your contribution! + +This PR modifies file(s) in area(s) that do not currently have an active SIG/project: - ${changesWithoutOwners.join('\n- ')} -Such changes may be rejected or put on hold until a new SIG/project is established. +Per the [area ownership process](https://github.com/open-telemetry/semantic-conventions/blob/main/AREAS.md), +changes to these areas need an active SIG/project, so this PR has been automatically +closed and labeled \`triage:rejected:declined\`. + +This does not mean your change is unwelcome: + +- **For substantial changes or new conventions**: Consider starting a new SIG/project. + See the [Project Management](https://github.com/open-telemetry/community/blob/main/project-management.md) guide. +- **If you believe this was closed in error**: Please reach out in the + \`#otel-semantic-conventions\` channel on the [CNCF Slack](https://slack.cncf.io/). -Please refer to the [Semantic Convention Areas](https://github.com/open-telemetry/semantic-conventions/blob/main/AREAS.md) -document to see the current active SIGs and also to learn how to kick start a new one.`; +Thanks again for taking the time to contribute! 🙏`; } async function changesInInactiveAreas(): Promise { diff --git a/AREAS.md b/AREAS.md index a8db4ead95..5b20525dab 100644 --- a/AREAS.md +++ b/AREAS.md @@ -19,6 +19,12 @@ for pull request (PR) reviews and issue triage. This document provides an overview of the semantic conventions areas, along with their owners, related project (and project board) as well as its current status. +> [!Note] +> PRs that modify files under `model/` touching an area marked `inactive` +> are automatically closed by a bot. See +> [Area ownership check](./CONTRIBUTING.md#area-ownership-check) in the +> contributing guide for the bypass procedure for legitimate bugfixes. + diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 5bea0121e0..635f6e713e 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -30,6 +30,7 @@ requirements and recommendations. - [Reviewer guidelines](#reviewer-guidelines) - [Automation](#automation) - [Consistency checks](#consistency-checks) + - [Area ownership check](#area-ownership-check) - [Auto formatting](#auto-formatting) - [Markdown style](#markdown-style) - [Misspell check](#misspell-check) @@ -374,6 +375,16 @@ For more information on each check, see: - [Yamllint check](#yamllint-check) - Prettier formatting +### Area ownership check + +PRs that modify files under `model/` are validated against +[AREAS.md](./AREAS.md) by an automated check. PRs that touch areas with +no active SIG/project (status `inactive` in AREAS.md) are automatically +closed with an explanatory comment. + +If you believe a PR was closed in error, please reach out in the +`#otel-semantic-conventions` channel on the [CNCF Slack](https://slack.cncf.io/). + ### Auto formatting Semantic conventions have some autogenerated components and additionally can do