Skip to content

Update charter with communication responsibilities #1754

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 20 commits into
base: main
Choose a base branch
from

Conversation

RaisinTen
Copy link
Member

It has been brought up in
nodejs/admin#977 (comment).

It has been brought up in
nodejs/admin#977 (comment).

Signed-off-by: Darshan Sen <raisinten@gmail.com>
Co-authored-by: Joyee Cheung <joyeec9h3@gmail.com>
TSC-Charter.md Outdated
@@ -74,6 +74,7 @@ including:
* Development process and any coding standards.
* Mediating technical conflicts between Collaborators or Foundation
projects.
* Technical communication.
Copy link
Member

Choose a reason for hiding this comment

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

I believe this needs more definition.

Copy link
Member Author

Choose a reason for hiding this comment

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

Suggested change
* Technical communication.
* Overseeing official communications related to technical content from project contributors.

Copy link
Member

@jasnell jasnell Jun 27, 2025

Choose a reason for hiding this comment

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

I prefer the wording I have proposed.

I will resolve this comment myself when I am satisfied with the changes. Thank you.

@RaisinTen
Copy link
Member Author

cc @nodejs/tsc

Co-authored-by: Joyee Cheung <joyeec9h3@gmail.com>
TSC-Charter.md Outdated
@@ -74,6 +74,7 @@ including:
* Development process and any coding standards.
* Mediating technical conflicts between Collaborators or Foundation
projects.
* Technical communication.
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
* Technical communication.
* Communication about the technical development processes of the project, releases, contributor onboarding and conduct, project governance, and technical direction.

Copy link
Member Author

Choose a reason for hiding this comment

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

Is the latest text that says "above" instead of manually listing out the categories ok?

Copy link
Member

Choose a reason for hiding this comment

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

I think it's better to be explicit given that there's been disagreement about what is or is not covered. Therefore I prefer the text the way I suggested.

Copy link
Member Author

Choose a reason for hiding this comment

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

I have listed the categories explicitly. Is that fine?

Co-authored-by: Joyee Cheung <joyeec9h3@gmail.com>
@mcollina
Copy link
Member

Once we are settled with some text, we should bring this to the CPC - I expect it might require a change to the CPC Charter itself, which would need to be board-ratified.

Co-authored-by: James M Snell <jasnell@gmail.com>
Signed-off-by: Darshan Sen <raisinten@gmail.com>
TSC-Charter.md Outdated
* Legal matters
* Marketing/ community events

except when specifically approved by the OpenJS Foundation.
Copy link
Member

Choose a reason for hiding this comment

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

Since the text was reformatted into bullet points.. this should be a proper complete sentence.

Suggested change
except when specifically approved by the OpenJS Foundation.
Exceptions to the above exclusions may be approved by the OpenJS Foundation.

TSC-Charter.md Outdated
@@ -74,9 +74,25 @@ including:
* Development process and any coding standards.
* Mediating technical conflicts between Collaborators or Foundation
projects.
* Official communication about the above and what they govern, and the development process of said communication.
Copy link
Member

Choose a reason for hiding this comment

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

"Official communication" is too vague here. I've no idea what would make it "official"

@joyeecheung
Copy link
Member

joyeecheung commented Jun 30, 2025

I think that we can use some rethinking of the roles of TSC/foundation in terms of communication. I re-read https://nodejs.org/en/blog/uncategorized/trademark and IMO, there are two roles in the communications:

  1. Use of the trademark
    • The foundation's role is to administer it, they have the authority over whether it can or cannot be used, whether use of it is against the policy.
    • The TSC's role is to watch its use and report/request when necessary (like everyone else in the community)
  2. Representation of the project, both the technical work and the community behind the technical work
    • The foundation's role is to support it, or watch/advise when necessary/requested
    • The TSC's role is to establish process to build representation via consensus seeking, and make sure everyone, including itself, respect the process before a representation of the project is made. It's what we've effectively been doing for years.

The communication of the project is not just marketing, it's also a device we use to manifest the representation of the project, and to the eye of an external reader, the use of the trademark verifies the representation. However those two are not to be mixed:

  1. Use of the trademark does not imply that it correctly and accurately represents the project. Mistakes happen e.g. when someone pushes a button to publish a post from the official account representing the project without consulting others in the project at all, no matter this person works for the foundation or is a member of the TSC, this post is misrepresenting the project because we operate by consensus seeking and collectivism.
  2. Representation of the project does not always have to be certified by the use of the trademark. For example someone may say an personal opinion using a personal account and this may still get interpreted as "Node.js team thinks that..." if they are seen as a representative of the project and the use of "we" is ambiguous.

Both the TSC and the foundation have the role to make sure the two are properly aligned in the communications that can be interpreted as official. While it might be possible for the foundation to take over 2, the reality is that the foundation doesn't necessarily have the staff to take on this much work from just one of the many projects is supports, while TSC has been effectively doing 2 for a very long time and generally are more careful/experienced in making sure that nobody should act on the behalf of the project without seeking consensus from other project members (the most recent being establishing the process and collecting consensus about pride campaign, and deliberately making the vote org-wide, not TSC-wide) , most of the time on GitHub, where the community lives, with the use of GitHub pull requests, the tool that the community is the most familiar with, to ensure accuracy when accuracy is needed.

I think the goal of the charter change should be to codify our role in 2 - it's not necessarily a proposal to increase our scope, but just documenting in the charter what we have already been doing for years, even though the charter doesn't explicitly say so (but somewhat implies this).

@jasnell
Copy link
Member

jasnell commented Jun 30, 2025

I've opened a separate PR (#1756) that contains the version of the changes I would like to see.

Co-authored-by: Joyee Cheung <joyeec9h3@gmail.com>
Co-authored-by: Joyee Cheung <joyeec9h3@gmail.com>
Co-authored-by: Joyee Cheung <joyeec9h3@gmail.com>
RaisinTen and others added 4 commits July 3, 2025 09:19
Co-authored-by: Joyee Cheung <joyeec9h3@gmail.com>
Co-authored-by: Joyee Cheung <joyeec9h3@gmail.com>
Signed-off-by: Darshan Sen <raisinten@gmail.com>
Signed-off-by: Darshan Sen <raisinten@gmail.com>
@RaisinTen
Copy link
Member Author

All comments have been addressed. Can you review @nodejs/tsc ?

Copy link
Member

@mcollina mcollina left a comment

Choose a reason for hiding this comment

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

I don't think this can land as-is (or it would pass further scrutiny by the rest of the CPC).

@@ -74,9 +74,24 @@ including:
* Development process and any coding standards.
* Mediating technical conflicts between Collaborators or Foundation
projects.
* Establishing and stewarding a consensus-seeking process to represent the technical community and its work in external communications. The scope includes:
Copy link
Member

Choose a reason for hiding this comment

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

What does this sentence mean? Why should we mention consensus seeking here? It's already mentioned already in this doc.

* Project governance
* Technical direction
* The project website and download server
* Petition from the technical community that can be surfaced to the CPC level
Copy link
Member

Choose a reason for hiding this comment

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

What is this?

Copy link
Member

@joyeecheung joyeecheung Jul 3, 2025

Choose a reason for hiding this comment

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

See #1754 (comment) - a specific example would be the org-wide vote of the pride campaign that the TSC just stewarded.

Copy link
Member

Choose a reason for hiding this comment

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

I don’t quite understand in which case this would be escalated to the CPC, or why the CPC should be involved.

Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
* Petition from the technical community that can be surfaced to the CPC level
* Petition from the technical community to form a representation

I would be fine with this too. Though it seems in another PR there's inclination to make these kind of things part of the CPC scope (to me if the CPC is willing to take over the workload of stewarding a representation, it seems fine to shed off the workload from the TSC. But then it also seems fair for projects to have their own autonomy on this - having an project-wide referendum sounds a lot more manageable than a foundation-wide referendum).

* Technical documentation
* Contributor onboarding and conduct
* Project governance
* Technical direction
Copy link
Member

Choose a reason for hiding this comment

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

most of those points are duplicate of the above. I don't understand why we are duplicating them.

Copy link
Member

Choose a reason for hiding this comment

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

See #1754 (comment) (I agree it’s better not to duplicate and just say something like "the above")


If a Node.js-specific communication channel, such as a social media account or a discussion forum, is established by another party and used to represent the technical work or the technical community of the project, the TSC may request administrator or moderator access to ensure representation is aligned with the consensus within the project. Day-to-day operation in such channels can be delegated to another party as long as they follow the Code of Conduct, and respect the consensus seeking process before representation of the project is manifested.

If the TSC becomes aware of external communications that appear inconsistent with the project’s consensus, it may engage with the communicating party, directly or through appropriate channels, to help align the message with the project’s consensus-seeking processes.
Copy link
Member

Choose a reason for hiding this comment

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

This mixes responsibilities and a consensus-seeking approach. If this needs to be written somewhere, it's not in this section of this document.

You can't do marketing and brand management by committee; it's too slow and it doesn't work (we tried this in the past).

Copy link
Member

Choose a reason for hiding this comment

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

This documents that when someone speaks on behalf of the project on social media that is inconsistent with the project’s consensus, or without confirming consensus, the TSC would communicate and align the two. For example if someone that’s seen as a representative of the project - or the official account itself - declares “we’ll deprecate this feature in the next release” but there is no consensus within the project whether it should be deprecated, the TSC would communicate to them to get it corrected. This is what we’ve already been doing (not necessarily deprecation but I think you'd probably remember similar things that happened in the past).

Copy link
Member

Choose a reason for hiding this comment

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

Honestly, this is tending towards way too much bureaucracy and process than what is going to be helpful/useful. Yes, we should all be careful about what we say before we're certain there's consensus but it's not something we need formal processes around.

Copy link
Member

@joyeecheung joyeecheung Jul 3, 2025

Choose a reason for hiding this comment

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

I think it's case by case on whether there needs formal process:

  1. In the case of technical work, the process already happens on GitHub and likely is very obvious to TSC members who know what seals the consensus and when there's no clear consensus (e.g. removing/keeping corepack, standards body representation).
  2. In the case of community representation, IMO a org-wide vote was already a good enough precedence.

The idea isn't that the TSC must be very hands-on on how the representation is manifested, just that those who declares representation should ensure, at least by themselves, that the representation aligns with the consensus that's already been built, that part doesn't need involvement from the TSC, but obviously they can always ask for help from the TSC. And when the two aren't aligned, the TSC is in a position to remind them. Without granting TSC this in the charter, for example I could just go to TC39 and frame my own opinion as the Node.js's project opinion (I would not need to be explicit, just some misleading use of "we" would be more than enough, and one does not need to bring up the trademark because .js is silent), and no one has the right to correct me as long as I didn't go there as a OpenJS delegate - not that I would do it at TC39, or I generally try to open my words with "I don't speak for the project and this is just my personal impression" whenever people ask me "what's Node.js's opinion", but I don't see anything this charter or that of the CPC that grants anybody a position to correct me, so I would only be bound by my own conscience.


The TSC will define Node.js project’s release vehicles.

Communication on topics where the scope of the TSC intersects with that of the [OpenJS CPC][] or the [OpenJS board][] will be handled in collaboration with the other two bodies, facilitated by the TSC representative on the CPC.

If a Node.js-specific communication channel, such as a social media account or a discussion forum, is established by another party and used to represent the technical work or the technical community of the project, the TSC may request administrator or moderator access to ensure representation is aligned with the consensus within the project. Day-to-day operation in such channels can be delegated to another party as long as they follow the Code of Conduct, and respect the consensus seeking process before representation of the project is manifested.
Copy link
Member

Choose a reason for hiding this comment

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

There is no "other party" that can establish an official channel. The only party is the holder of the trademarks - the OpenJS Foundation. We are part of the OpenJS Foundation, and we can use those trademarks.

Copy link
Member

@joyeecheung joyeecheung Jul 3, 2025

Choose a reason for hiding this comment

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

There is a fine line between being official or not - for example, the Discord wasn’t official until there was effort to make it official. Someone can also just set up a social media bot to post all the releases without declaring the bot official. Or initiatives like https://www.nodetodo.org/ https://nodeschool.io/ (no longer active, but I think you know what I mean). The passage just documents that when that happens, and the administrator wants to turn it official, the TSC may request administrator or moderator access to ensure alignment, but may not actually moderate it themselves as long as the delegate respect the general rule the community on GitHub has been following. It’s what we’ve already been doing. Whether the trademark should be granted to them is out of the scope of the TSC charter since the TSC is not in charge of the trademark (at most, we can forward communication with them to the foundation staff, which is also what we've been doing).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants