From 96e04d41819f5c695995d94d50e693cd2dc8878e Mon Sep 17 00:00:00 2001 From: Pablo Baeyens Date: Thu, 30 Apr 2026 17:52:02 +0200 Subject: [PATCH 1/4] Add working-group concept to workstreams data model Co-authored-by: Jack Berg --- scripts/schema/workstreams.schema.yml | 17 ++++-- scripts/validate-workstreams.py | 2 + workstreams.yml | 86 +++++++++++++++++++++++++++ 3 files changed, 101 insertions(+), 4 deletions(-) diff --git a/scripts/schema/workstreams.schema.yml b/scripts/schema/workstreams.schema.yml index 5d83b67b1..3c07d2300 100644 --- a/scripts/schema/workstreams.schema.yml +++ b/scripts/schema/workstreams.schema.yml @@ -25,6 +25,10 @@ items: # Permanent operational group with recurring meetings, # a GC liaison, and a TC sponsor. - sig + # Bounded effort with defined deliverables and a finite timeline. + # Corresponds to a 'project' in /projects/*.md. + # Any kind may be associated with a project proposal document. + - working-group name: type: string minLength: 1 @@ -61,13 +65,13 @@ items: maxProperties: 1 additionalProperties: false properties: - # GC member facilitating health of a SIG. - # Required on: sig. GitHub username, or 'tbd' if not yet assigned. + # GC member facilitating health of a SIG or working-group. + # Required on: sig, working-group. GitHub username, or 'tbd' if not yet assigned. gcLiaison: type: string minLength: 1 - # TC member sponsoring a SIG. - # Required on: sig. + # TC member sponsoring a SIG or working-group. + # Required on: sig, working-group. tcSponsor: type: object required: [username, level] @@ -92,6 +96,11 @@ items: - leading # Level required but not yet determined. - tbd + # Person accountable for driving the workstream forward. + # Required on: working-group. GitHub username, or 'tbd' if not yet assigned. + lead: + type: string + minLength: 1 # Trusted collaborator with approval rights on the spec repository. # TC members are a superset and may fill this role. # GitHub username, or 'tbd' if not yet assigned. diff --git a/scripts/validate-workstreams.py b/scripts/validate-workstreams.py index 71381ece2..9efe94bac 100644 --- a/scripts/validate-workstreams.py +++ b/scripts/validate-workstreams.py @@ -33,10 +33,12 @@ KIND_REQUIRED_ROLES = { "sig": {"gcLiaison", "tcSponsor"}, + "working-group": {"gcLiaison", "tcSponsor", "lead"}, } VALID_PARENT_KINDS = { "sig": {"sig"}, + "working-group": {"sig"}, } MEMBERSHIP_REQUIRED_ROLES = {"gcLiaison", "tcSponsor", "specSponsor"} diff --git a/workstreams.yml b/workstreams.yml index 890818cc7..b4df0d4a2 100644 --- a/workstreams.yml +++ b/workstreams.yml @@ -1156,3 +1156,89 @@ - slack: name: '#otel-localization-uk' id: C097ZNPM3LK +- id: agentic-workflow + kind: working-group + name: OpenTelemetry Collector Agentic Workflows + parent: collector + people: + - gcLiaison: mx-psi + - tcSponsor: + username: tbd + level: tbd + - lead: pavolloffay + - lead: niwoerner +- id: otel-blueprints + kind: working-group + name: OTel Blueprints + parent: end-user + people: + - gcLiaison: maryliag + - tcSponsor: + username: reyang + level: escalating + - lead: danielgblanco + - lead: dmathieu + resources: + - meeting: + schedule: Every other Thursday at 10:00 PT (alternating with general End-User SIG meetings) + gDocNotes: 1e-UNZA3Tuno9b53RQbe--whUcO0VIXF3P81oXsrBK6g + - slack: + name: '#otel-blueprints' + id: C0A844D6ZCH +- id: zig-sig-bootstrap + kind: working-group + name: Bootstrap Zig Special Interest Group + parent: none + people: + - gcLiaison: alolita + - tcSponsor: + username: jmacd + level: tbd + - lead: inge4pres + - lead: kmos + - lead: hendriknielaender +- id: collector-v1 + kind: working-group + name: Collector v1 + parent: collector + people: + - gcLiaison: jpkrohling + - tcSponsor: + username: tbd + level: tbd + - lead: tbd +- id: cicd-phase-2 + kind: working-group + name: CI/CD Observability SIG Phase 2 + parent: semconv-cicd + people: + - gcLiaison: maryliag + - tcSponsor: + username: carlosalberto + level: tbd + - lead: horovits + - lead: adrielp +- id: ecosystem-explorer + kind: working-group + name: OpenTelemetry Ecosystem Explorer + parent: communications + people: + - gcLiaison: svrnm + - tcSponsor: + username: jack-berg + level: escalating + - lead: jaydeluca + - lead: svrnm + - lead: mx-psi + resources: + - roadmapProject: 175 +- id: getting-started-docs + kind: working-group + name: New Getting Started Documentation and Reference Application + parent: communications + people: + - gcLiaison: svrnm + - tcSponsor: + username: jack-berg + level: tbd + - lead: svrnm From e2bf44aaaf1068c8f1a8f32bfb01f738a25bbdea Mon Sep 17 00:00:00 2001 From: Pablo Baeyens Date: Thu, 30 Apr 2026 17:53:19 +0200 Subject: [PATCH 2/4] Address review feedback --- scripts/schema/workstreams.schema.yml | 18 ++++++++++-------- scripts/validate-workstreams.py | 4 ++-- workstreams.yml | 14 +++++++------- 3 files changed, 19 insertions(+), 17 deletions(-) diff --git a/scripts/schema/workstreams.schema.yml b/scripts/schema/workstreams.schema.yml index 3c07d2300..a49803e7b 100644 --- a/scripts/schema/workstreams.schema.yml +++ b/scripts/schema/workstreams.schema.yml @@ -25,10 +25,12 @@ items: # Permanent operational group with recurring meetings, # a GC liaison, and a TC sponsor. - sig - # Bounded effort with defined deliverables and a finite timeline. - # Corresponds to a 'project' in /projects/*.md. + # Time-bound effort with defined deliverables and exit criteria. + # Concludes when its deliverables are met, distinct from a + # permanent SIG. Either has no parent or is scoped under a parent SIG. + # Corresponds to a project proposal in /projects/*.md. # Any kind may be associated with a project proposal document. - - working-group + - initiative name: type: string minLength: 1 @@ -65,13 +67,13 @@ items: maxProperties: 1 additionalProperties: false properties: - # GC member facilitating health of a SIG or working-group. - # Required on: sig, working-group. GitHub username, or 'tbd' if not yet assigned. + # GC member facilitating health of a SIG or initiative. + # Required on: sig, initiative. GitHub username, or 'tbd' if not yet assigned. gcLiaison: type: string minLength: 1 - # TC member sponsoring a SIG or working-group. - # Required on: sig, working-group. + # TC member sponsoring a SIG or initiative. + # Required on: sig, initiative. tcSponsor: type: object required: [username, level] @@ -97,7 +99,7 @@ items: # Level required but not yet determined. - tbd # Person accountable for driving the workstream forward. - # Required on: working-group. GitHub username, or 'tbd' if not yet assigned. + # Required on: initiative. GitHub username, or 'tbd' if not yet assigned. lead: type: string minLength: 1 diff --git a/scripts/validate-workstreams.py b/scripts/validate-workstreams.py index 9efe94bac..e4139679a 100644 --- a/scripts/validate-workstreams.py +++ b/scripts/validate-workstreams.py @@ -33,12 +33,12 @@ KIND_REQUIRED_ROLES = { "sig": {"gcLiaison", "tcSponsor"}, - "working-group": {"gcLiaison", "tcSponsor", "lead"}, + "initiative": {"gcLiaison", "tcSponsor", "lead"}, } VALID_PARENT_KINDS = { "sig": {"sig"}, - "working-group": {"sig"}, + "initiative": {"sig"}, } MEMBERSHIP_REQUIRED_ROLES = {"gcLiaison", "tcSponsor", "specSponsor"} diff --git a/workstreams.yml b/workstreams.yml index b4df0d4a2..0bc17732c 100644 --- a/workstreams.yml +++ b/workstreams.yml @@ -1157,7 +1157,7 @@ name: '#otel-localization-uk' id: C097ZNPM3LK - id: agentic-workflow - kind: working-group + kind: initiative name: OpenTelemetry Collector Agentic Workflows parent: collector people: @@ -1168,7 +1168,7 @@ - lead: pavolloffay - lead: niwoerner - id: otel-blueprints - kind: working-group + kind: initiative name: OTel Blueprints parent: end-user people: @@ -1186,7 +1186,7 @@ name: '#otel-blueprints' id: C0A844D6ZCH - id: zig-sig-bootstrap - kind: working-group + kind: initiative name: Bootstrap Zig Special Interest Group parent: none people: @@ -1198,7 +1198,7 @@ - lead: kmos - lead: hendriknielaender - id: collector-v1 - kind: working-group + kind: initiative name: Collector v1 parent: collector people: @@ -1208,7 +1208,7 @@ level: tbd - lead: tbd - id: cicd-phase-2 - kind: working-group + kind: initiative name: CI/CD Observability SIG Phase 2 parent: semconv-cicd people: @@ -1219,7 +1219,7 @@ - lead: horovits - lead: adrielp - id: ecosystem-explorer - kind: working-group + kind: initiative name: OpenTelemetry Ecosystem Explorer parent: communications people: @@ -1233,7 +1233,7 @@ resources: - roadmapProject: 175 - id: getting-started-docs - kind: working-group + kind: initiative name: New Getting Started Documentation and Reference Application parent: communications people: From e7855e18c3cfe25e467148f6ce995f34e893d46a Mon Sep 17 00:00:00 2001 From: Pablo Baeyens Date: Tue, 5 May 2026 11:44:55 +0200 Subject: [PATCH 3/4] Make an initiative part of a SIG --- scripts/schema/workstreams.schema.yml | 15 +++++----- scripts/validate-workstreams.py | 15 +++++++++- workstreams.yml | 40 ++++++++------------------- 3 files changed, 33 insertions(+), 37 deletions(-) diff --git a/scripts/schema/workstreams.schema.yml b/scripts/schema/workstreams.schema.yml index a49803e7b..760f54a49 100644 --- a/scripts/schema/workstreams.schema.yml +++ b/scripts/schema/workstreams.schema.yml @@ -19,6 +19,8 @@ items: id: type: string minLength: 1 + # Any kind may be associated with a project proposal document + # under /projects/*.md. kind: type: string enum: @@ -27,9 +29,8 @@ items: - sig # Time-bound effort with defined deliverables and exit criteria. # Concludes when its deliverables are met, distinct from a - # permanent SIG. Either has no parent or is scoped under a parent SIG. - # Corresponds to a project proposal in /projects/*.md. - # Any kind may be associated with a project proposal document. + # permanent SIG. Initiatives are scoped under a parent SIG, which + # manages the initiative's lifecycle. - initiative name: type: string @@ -67,13 +68,13 @@ items: maxProperties: 1 additionalProperties: false properties: - # GC member facilitating health of a SIG or initiative. - # Required on: sig, initiative. GitHub username, or 'tbd' if not yet assigned. + # GC member facilitating health of a SIG. + # Required on: sig. GitHub username, or 'tbd' if not yet assigned. gcLiaison: type: string minLength: 1 - # TC member sponsoring a SIG or initiative. - # Required on: sig, initiative. + # TC member sponsoring a SIG. + # Required on: sig. tcSponsor: type: object required: [username, level] diff --git a/scripts/validate-workstreams.py b/scripts/validate-workstreams.py index e4139679a..b8470c1ba 100644 --- a/scripts/validate-workstreams.py +++ b/scripts/validate-workstreams.py @@ -33,7 +33,11 @@ KIND_REQUIRED_ROLES = { "sig": {"gcLiaison", "tcSponsor"}, - "initiative": {"gcLiaison", "tcSponsor", "lead"}, + "initiative": {"lead"}, +} + +KIND_FORBIDDEN_ROLES = { + "initiative": {"gcLiaison", "tcSponsor"}, } VALID_PARENT_KINDS = { @@ -41,6 +45,8 @@ "initiative": {"sig"}, } +KINDS_REQUIRING_PARENT = {"initiative"} + MEMBERSHIP_REQUIRED_ROLES = {"gcLiaison", "tcSponsor", "specSponsor"} @@ -92,6 +98,8 @@ def validate_workstreams_semantics(workstreams: list[dict], people_data: dict) - parent_id = w.get("parent") if parent_id is None or parent_id == NONE: + if kind in KINDS_REQUIRING_PARENT: + errors.append(f"[{wid}] kind '{kind}' requires a parent") continue if parent_id == wid: @@ -134,6 +142,11 @@ def validate_workstreams_semantics(workstreams: list[dict], people_data: dict) - errors.append( f"[{wid}] kind '{kind}' requires at least one '{required_role}'" ) + for forbidden_role in KIND_FORBIDDEN_ROLES.get(kind, set()) & person_roles: + errors.append( + f"[{wid}] kind '{kind}' must not specify '{forbidden_role}' " + "(inherited from parent SIG)" + ) teams = people_data.get("teams", {}) gc_members = {u.lower() for u in teams.get("governance-committee", [])} diff --git a/workstreams.yml b/workstreams.yml index 0bc17732c..d1d323b57 100644 --- a/workstreams.yml +++ b/workstreams.yml @@ -770,6 +770,16 @@ name: '#otel-swift' id: C01NCHR19SB - repository: open-telemetry/opentelemetry-swift +- id: zig-sdk + kind: sig + sigCategory: implementation + name: 'Zig: SDK' + parent: none + people: + - gcLiaison: alolita + - tcSponsor: + username: jmacd + level: tbd - id: network kind: sig sigCategory: implementation @@ -1161,10 +1171,6 @@ name: OpenTelemetry Collector Agentic Workflows parent: collector people: - - gcLiaison: mx-psi - - tcSponsor: - username: tbd - level: tbd - lead: pavolloffay - lead: niwoerner - id: otel-blueprints @@ -1172,10 +1178,6 @@ name: OTel Blueprints parent: end-user people: - - gcLiaison: maryliag - - tcSponsor: - username: reyang - level: escalating - lead: danielgblanco - lead: dmathieu resources: @@ -1188,12 +1190,8 @@ - id: zig-sig-bootstrap kind: initiative name: Bootstrap Zig Special Interest Group - parent: none + parent: zig-sdk people: - - gcLiaison: alolita - - tcSponsor: - username: jmacd - level: tbd - lead: inge4pres - lead: kmos - lead: hendriknielaender @@ -1202,20 +1200,12 @@ name: Collector v1 parent: collector people: - - gcLiaison: jpkrohling - - tcSponsor: - username: tbd - level: tbd - lead: tbd - id: cicd-phase-2 kind: initiative name: CI/CD Observability SIG Phase 2 parent: semconv-cicd people: - - gcLiaison: maryliag - - tcSponsor: - username: carlosalberto - level: tbd - lead: horovits - lead: adrielp - id: ecosystem-explorer @@ -1223,10 +1213,6 @@ name: OpenTelemetry Ecosystem Explorer parent: communications people: - - gcLiaison: svrnm - - tcSponsor: - username: jack-berg - level: escalating - lead: jaydeluca - lead: svrnm - lead: mx-psi @@ -1237,8 +1223,4 @@ name: New Getting Started Documentation and Reference Application parent: communications people: - - gcLiaison: svrnm - - tcSponsor: - username: jack-berg - level: tbd - lead: svrnm From 1ebfee46efbb33d609ec9d80d9d7392270e13771 Mon Sep 17 00:00:00 2001 From: Pablo Baeyens Date: Tue, 5 May 2026 11:47:04 +0200 Subject: [PATCH 4/4] make generate --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 431f93b65..e0b3c9a7c 100644 --- a/README.md +++ b/README.md @@ -174,6 +174,7 @@ SIG-specific GitHub discussions. | Ruby: SDK ๐Ÿ”— | Tuesday at 10:00 PT | [Google Doc](https://docs.google.com/document/d/1EaIbfDE1elWTWt3bhilggki_OCRJZoFCSYZJXgc9KsM) | [#otel-ruby](https://cloud-native.slack.com/archives/C01NWKKMKMY) and [GitHub Discussions](https://github.com/open-telemetry/opentelemetry-ruby/discussions) | [calendar-ruby](https://groups.google.com/a/opentelemetry.io/g/calendar-ruby) | [Ted Young](https://github.com/tedsuo) | | Rust: SDK ๐Ÿ”— | Alternating between Tuesday at 09:00 AM PT and Wednesday at 8:00 AM PT | [Google Doc](https://docs.google.com/document/d/12upOzNk8c3SFTjsL6IRohCWMgzLKoknSCOOdMakbWo4) | [#otel-rust](https://cloud-native.slack.com/archives/C03GDP0H023) | [calendar-rust](https://groups.google.com/a/opentelemetry.io/g/calendar-rust) | [Ted Young](https://github.com/tedsuo) | | Swift: SDK ๐Ÿ”— | Thursday at 09:00 PT | [Google Doc](https://docs.google.com/document/d/1LugL8r4bAkbTxZ1Gq_6j_8SDv1LuZaNeUdR-QLN4d48) | [#otel-swift](https://cloud-native.slack.com/archives/C01NCHR19SB) | [calendar-swift](https://groups.google.com/a/opentelemetry.io/g/calendar-swift) | [Alolita Sharma](https://github.com/alolita) | +| Zig: SDK | | | | | [Alolita Sharma](https://github.com/alolita) | | Network ๐Ÿ”— | Tuesday at 09:00 PT | [Google Doc](https://docs.google.com/document/d/13GK915hdDQ9sUYzUIWi4pOfJK68EE935ugutUgL3yOw) | [#otel-network](https://cloud-native.slack.com/archives/C02AB15583A) | [calendar-network](https://groups.google.com/a/opentelemetry.io/g/calendar-network) | [Ted Young](https://github.com/tedsuo) | | eBPF Instrumentation ๐Ÿ”— | Wednesday at 08:00 PT | [Google Doc](https://docs.google.com/document/d/1ZkmUT2EHKfgtLqrgx3WI8aBy2QNyZeTwSKXxe3DI6Pw) | [#otel-ebpf-instrumentation](https://cloud-native.slack.com/archives/C08P9L4FPKJ) | [calendar-ebpf-instrumentation](https://groups.google.com/a/opentelemetry.io/g/calendar-ebpf-instrumentation) | [Severin Neumann](https://github.com/svrnm) | | Kubernetes Operator ๐Ÿ”— | Thursday at 09:00 PT | [Google Doc](https://docs.google.com/document/d/1Unbs2qp_j5kp8FfL_lRH-ld7i5EOQpsq0I4djkOOSL4) | [#otel-operator](https://cloud-native.slack.com/archives/C033BJ8BASU) | [calendar-k8s-operator](https://groups.google.com/a/opentelemetry.io/g/calendar-k8s-operator) | [Juraci Paixรฃo Krรถhling](https://github.com/jpkrohling) |