Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -174,6 +174,7 @@ SIG-specific GitHub discussions.
| Ruby: SDK&nbsp;<a id="sig-ruby" href="#sig-ruby"><sup>🔗</sup></a> | 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&nbsp;<a id="sig-rust" href="#sig-rust"><sup>🔗</sup></a> | 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&nbsp;<a id="sig-swift" href="#sig-swift"><sup>🔗</sup></a> | 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) |
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I guess here if we don't have meetings or notes created we could simply render it as TBD?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Or have them as required fields in the schema, and set them as TBD in the workstreams file.

| Network&nbsp;<a id="sig-network" href="#sig-network"><sup>🔗</sup></a> | 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&nbsp;<a id="sig-ebpf-instrumentation" href="#sig-ebpf-instrumentation"><sup>🔗</sup></a> | 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&nbsp;<a id="sig-operator" href="#sig-operator"><sup>🔗</sup></a> | 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) |
Expand Down
12 changes: 12 additions & 0 deletions scripts/schema/workstreams.schema.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,12 +19,19 @@ items:
id:
type: string
minLength: 1
# Any kind may be associated with a project proposal document
# under /projects/*.md.
kind:
type: string
enum:
# Permanent operational group with recurring meetings,
# a GC liaison, and a TC sponsor.
- sig
# Time-bound effort with defined deliverables and exit criteria.
# Concludes when its deliverables are met, distinct from a
# permanent SIG. Initiatives are scoped under a parent SIG, which
# manages the initiative's lifecycle.
- initiative
name:
type: string
minLength: 1
Expand Down Expand Up @@ -92,6 +99,11 @@ items:
- leading
# Level required but not yet determined.
- tbd
# Person accountable for driving the workstream forward.
# Required on: initiative. 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.
Expand Down
15 changes: 15 additions & 0 deletions scripts/validate-workstreams.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,12 +33,20 @@

KIND_REQUIRED_ROLES = {
"sig": {"gcLiaison", "tcSponsor"},
"initiative": {"lead"},
}

KIND_FORBIDDEN_ROLES = {
"initiative": {"gcLiaison", "tcSponsor"},
}

VALID_PARENT_KINDS = {
"sig": {"sig"},
"initiative": {"sig"},
}

KINDS_REQUIRING_PARENT = {"initiative"}

MEMBERSHIP_REQUIRED_ROLES = {"gcLiaison", "tcSponsor", "specSponsor"}


Expand Down Expand Up @@ -90,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:
Expand Down Expand Up @@ -132,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", [])}
Expand Down
68 changes: 68 additions & 0 deletions workstreams.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -1156,3 +1166,61 @@
- slack:
name: '#otel-localization-uk'
id: C097ZNPM3LK
- id: agentic-workflow
kind: initiative
name: OpenTelemetry Collector Agentic Workflows
parent: collector
people:
- lead: pavolloffay
- lead: niwoerner
- id: otel-blueprints
kind: initiative
name: OTel Blueprints
parent: end-user
people:
- lead: danielgblanco
- lead: dmathieu
resources:
- meeting:
schedule: Every other Thursday at 10:00 PT (alternating with general End-User SIG meetings)
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

For an initiative, would meetings not be inherited from SIG meetings too? Just thinking in terms of presenting this information on the community README. Not sure what the plans are there.

gDocNotes: 1e-UNZA3Tuno9b53RQbe--whUcO0VIXF3P81oXsrBK6g
- slack:
name: '#otel-blueprints'
id: C0A844D6ZCH
- id: zig-sig-bootstrap
kind: initiative
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

This looks weird because it should actually be just a regular SIG, not an initiative, I believe

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

I think your comment is missing something :)

I did it this way since the project is named "bootstrap Zig SIG", I could just put it as a SIG and remove this initiative, no strong opinion about it

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I think the project is misnamed. I don't see anything in the Zig project proposal that differentiates it from other languages implementation SIGs: https://github.com/open-telemetry/community/pull/3260/changes

I think it should just be "Zig: SDK"

TC sponsor Is @jmacd

If it is in fact a normal sig and not an initiative, then this problem goes away:

It feels a bit awkward to have the Zig SDK entry with no information

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

IIRC we ask folks to create a project/initiative proposal to create a new SIG, so GC can approve its creation and TC can agree level of sponsorship. Plus, it's a good way to advertise a new SIG creation and get the community to put their names down to contribute and be part of the SIG.

That's why the initiative is "Bootstrap Zig SIG". I've not had a look at the proposal but ideally it has a list of short-term deliverables. After those are done the SIG would move to BAU (i.e. what's "done" is the bootstrap, not the SIG).

I personally think it's helpful to have both an initiative and a new SIG with the bootstrap initiative when new SIGs are created. It gives the SIG an initial purpose.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

An example of this was the CI/CD SIG. The SIG was created with an initial set of deliverables. They completed them, moved on to a phase two but the rest of structures (e.g. GC liaison, TC sponsor, meetings, Slack, etc) remained the same. They just started a new initiative within that SIG.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

What's the distinction between Zig and Kotlin? Both are new language implementations, with goals of developing API / SDK and reaching 1.0 stable release, but Zig is an initiative and Kotlin a SIG.

The Zig project's goals look an awful lot like BAU for a typical language implementation SIG: https://github.com/open-telemetry/community/blame/main/projects/zig-sig-bootstrap.md#L76-L89

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Kotlin should've had an initiative created to bootstrap the SIG, IMO. The intention of having these "bootstrap" initiatives was to create a set of initial deliverables that ensure the SIG is set up for success.

Let's say I'm an end-user and I see that there's new Kotlin SIG. How do I know what they're aiming to achieve in the next few months after creation? Without something like that I guess I'd have to join a meeting and ask?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

This is squarely GC business so feel free to proceed however you see fit.

However, characterizing the early phase of a SIG as an initiative is in tension with the idea that all initiatves have a parent SIG because then you need to decide which SIG is the parent for it.

Seems simpler to just call it a SIG, since that's what it will become, and be clear in the project document about what activities are going to be worked on in the early phase.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I think we're probably referring to the same thing. What I'd propose is that, when a new SIG is proposed (as an initiative/project), a new SIG is created with a single initiative under it, which is the bootstrap one as approved by GC and TC.

This just avoids a new SIG being created with no initial initiative to work on.

name: Bootstrap Zig Special Interest Group
parent: zig-sdk
people:
- lead: inge4pres
- lead: kmos
- lead: hendriknielaender
- id: collector-v1
kind: initiative
name: Collector v1
parent: collector
people:
- lead: tbd
- id: cicd-phase-2
kind: initiative
name: CI/CD Observability SIG Phase 2
parent: semconv-cicd
people:
- lead: horovits
- lead: adrielp
- id: ecosystem-explorer
kind: initiative
name: OpenTelemetry Ecosystem Explorer
parent: communications
people:
- lead: jaydeluca
- lead: svrnm
- lead: mx-psi
resources:
- roadmapProject: 175
- id: getting-started-docs
kind: initiative
name: New Getting Started Documentation and Reference Application
parent: communications
people:
- lead: svrnm
Loading