In the 2026-09-03 Python SIG meeting we discussed a topic: we don't have a policy on how to decide if we want to include a new instrumentation in the contrib repo or not.
Some context first
Definitions
A: an individual from the group of regular contributors, approvers, maintainers, etc. to this repo
B: an individual that does not belong to A
Contributions are very appreciated but maintaining new instrumentations can be difficult:
- It is a growing load on maintainers
- Maintainers may not be experts on the library the instrumentation instruments
For example, this scenario S may happen: B adds a new instrumentation X that instruments library Y, offers to maintain it and does. But after some time B is no longer able to maintain X and from that point on A has to maintain X.
Now, let's assume B is proposing adding X to this repo. What can A do?
A can only decide to accept or reject X.
That decision depends a lot on X. Since S may happen, A cannot count on B to maintain X. A has limited resources (time, mostly) so A must decide carefully to accept X or not. And that decision will be made depending on several factors, how critical X is, how many people will use it and so on.
What do I (@ocelotl) recommend?
I only see 2 possibilities here:
A accepts X and accepts to maintain X.
A rejects X.
and accepts to maintain X is the critical part here: so far A had counted on B to maintain X. I think A should reconsider that now.
What about A accepting X and then dropping it later if needed?
That's another possibility, but:
A first needs a policy on how to drop X
A could save all this trouble by simply rejecting X first
Something important here: A rejecting X does not mean there will never be an instrumentation for Y. A rejecting X only means X will not be in this repo. X can be in another repo.
What does Java do?
@trask joined the SIG meeting and shared with us the experience in Java, where they have 2 repos:
G: https://github.com/open-telemetry/opentelemetry-java-instrumentation
H: https://github.com/open-telemetry/opentelemetry-java-contrib
As far as I could understand there were instrumentations in both G and H and Java maintainers are commited to maintain the ones in G and not drop them but are ok with dropping one from H.
Now I am not sure I uderstood correctly because it seems to me like only G has instrumentations.
@trask please correct me here.
In any case, we need a policy to decide which instrumentations to accept, and this policy should be written down and define who will maintain such instrumentations. Please add your comments ✌️ 😎
@tammy-baylis-swi
@herin049
@xrmx
@lzchen
@aabmass
@lmolkova
@pmcollins
@carlosalberto
In the 2026-09-03 Python SIG meeting we discussed a topic: we don't have a policy on how to decide if we want to include a new instrumentation in the contrib repo or not.
Some context first
Definitions
A: an individual from the group of regular contributors, approvers, maintainers, etc. to this repoB: an individual that does not belong toAContributions are very appreciated but maintaining new instrumentations can be difficult:
For example, this scenario
Smay happen:Badds a new instrumentationXthat instruments libraryY, offers to maintain it and does. But after some timeBis no longer able to maintainXand from that point onAhas to maintainX.Now, let's assume
Bis proposing addingXto this repo. What canAdo?Acan only decide to accept or rejectX.That decision depends a lot on
X. SinceSmay happen,Acannot count onBto maintainX.Ahas limited resources (time, mostly) soAmust decide carefully to acceptXor not. And that decision will be made depending on several factors, how criticalXis, how many people will use it and so on.What do I (@ocelotl) recommend?
I only see 2 possibilities here:
AacceptsXand accepts to maintainX.ArejectsX.and accepts to maintain
Xis the critical part here: so farAhad counted onBto maintainX. I thinkAshould reconsider that now.What about
AacceptingXand then dropping it later if needed?That's another possibility, but:
Afirst needs a policy on how to dropXAcould save all this trouble by simply rejectingXfirstSomething important here:
ArejectingXdoes not mean there will never be an instrumentation forY.ArejectingXonly meansXwill not be in this repo.Xcan be in another repo.What does Java do?
@trask joined the SIG meeting and shared with us the experience in Java, where they have 2 repos:
G: https://github.com/open-telemetry/opentelemetry-java-instrumentationH: https://github.com/open-telemetry/opentelemetry-java-contribAs far as I could understand there were instrumentations in both
GandHand Java maintainers are commited to maintain the ones inGand not drop them but are ok with dropping one fromH.Now I am not sure I uderstood correctly because it seems to me like only
Ghas instrumentations.@trask please correct me here.
In any case, we need a policy to decide which instrumentations to accept, and this policy should be written down and define who will maintain such instrumentations. Please add your comments ✌️ 😎
@tammy-baylis-swi
@herin049
@xrmx
@lzchen
@aabmass
@lmolkova
@pmcollins
@carlosalberto