Skip to content
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

The JSON Schema Charter #325

Open
wants to merge 83 commits into
base: main
Choose a base branch
from
Open
Changes from 20 commits
Commits
Show all changes
83 commits
Select commit Hold shift + click to select a range
0b8d59b
Initial commit of charter template Copy from OpenJS Foundation CPC repo
Relequestual Feb 7, 2023
4666a22
Add comments to heading for people who might edit the file, and a lin…
Relequestual Feb 7, 2023
3cc72d2
Add content for Guiding Principles
Relequestual Feb 7, 2023
b7de5e1
Add content for Scope section
Relequestual Feb 7, 2023
a4bf147
Modified version of Scope
Relequestual Feb 7, 2023
327b09e
Add sections 1.1 and 1.2 re scope In-scope does not yet have any sugg…
Relequestual Feb 7, 2023
cdc7cf5
Add Relationship with OpenJS Foundation CPC section
Relequestual Feb 7, 2023
d60d388
Add Other Formal Project Relationships section Left blank
Relequestual Feb 7, 2023
ece5e53
Add Governing Body (TSC) section
Relequestual Feb 7, 2023
2d38695
Add Roles and Responsibilities section
Relequestual Feb 9, 2023
29ed1a5
Add Project Operations and Management section
Relequestual Feb 9, 2023
c9a6006
Add Decision-making and Voting section
Relequestual Feb 10, 2023
d0d58ba
Add Definitions section
Relequestual Feb 10, 2023
0c0f97c
Add footer with links to resources
Relequestual Feb 10, 2023
557c0a2
Fix typos
Relequestual Feb 20, 2023
5abe1bd
Add note about how testing for agreement is not the same as voting.
Relequestual Feb 21, 2023
9ba125a
Refine consensus model
Relequestual Feb 23, 2023
9301be9
Tidy up and break out section for ADRs
Relequestual Feb 23, 2023
e3ecb1e
Add definition of TSC
Relequestual Mar 3, 2023
f6ac84c
Recognize other project roles to be defined
Relequestual Mar 3, 2023
a2af3ba
Add detail about signal based voting at the Test for Agreement stage …
Relequestual Mar 8, 2023
3fc951e
Spacing
Relequestual Mar 8, 2023
df8930a
Amend decision making process in charter
Relequestual Mar 14, 2023
cfa2ae9
Fix inconsistent name for repos
Relequestual Mar 14, 2023
a6bc2a8
Add details for project scope in the charter
Relequestual Mar 14, 2023
d30322d
Add line about non-technical conflicts to the charter
Relequestual Mar 16, 2023
fea1163
Update CHARTER.md
Relequestual Mar 20, 2023
14d7ca2
Fix using upper case inside bracket
Relequestual Mar 24, 2023
90896a9
Remove specific mention of linting tooling.
Relequestual Mar 28, 2023
dc3785a
Add time limits to some stages of consensus process
Relequestual Mar 30, 2023
c35d423
Provide blocker fallback
Relequestual Apr 6, 2023
c1f0fa4
Add details to ADR for consensus based TSC
Relequestual Apr 11, 2023
42e1c54
Remove comments not intended for final document
Relequestual Apr 13, 2023
1b31445
Fix typo
Relequestual Apr 13, 2023
9634a60
Remove additional comment and mention governance document is to be cr…
Relequestual Apr 13, 2023
8f1df0f
Remove (optional) from headings in charter
Relequestual Apr 13, 2023
f5dd0f5
Add initial TSC members list
Relequestual Apr 13, 2023
d083f46
Fix grammar
Relequestual Apr 13, 2023
6653e46
Fix typo in charter
Relequestual Apr 13, 2023
c84610a
Apply grammar and typo fixes to charter from PR review
Relequestual Apr 13, 2023
a4943cd
Remove specific TSC member requirement about meetings
Relequestual Apr 17, 2023
94d1801
Fix double typo with thanks to @mwadams
Relequestual Apr 17, 2023
c9ab2dd
List names and links for the TSC members
Relequestual Apr 18, 2023
b5f0e85
Fix typo and quotes in charter
Relequestual Apr 18, 2023
b2efdce
Fix typos and quotes in charter
Relequestual Apr 18, 2023
d2f853c
Fix grammar in charter
Relequestual Apr 18, 2023
035ab9b
Remove 'section' from titles
Relequestual Apr 18, 2023
dc3e685
Fix language specific spellings in charter
Relequestual Apr 18, 2023
631db8c
Specifically mention specifications we use and that use us as out of …
Relequestual Apr 18, 2023
8eb9883
Do not reference 'JSON Schema Org'
Relequestual Apr 24, 2023
341ecef
Do not define what the OpenJS Foundation does, per feedback from the …
Relequestual Apr 25, 2023
f4e35ff
Remove mention of fund and budgeting, as the charter is about the fou…
Relequestual Apr 25, 2023
e94c0cb
Remove mention of finances as per last commit
Relequestual Apr 25, 2023
9e1ad26
Remove mention of special interest groups in favour of noting the com…
Relequestual Apr 25, 2023
52bedb3
Loosen TSC meeting expectations
Relequestual Apr 26, 2023
4a2ad4a
Intro section better reflects the JSON Schema projects relationship w…
Relequestual Apr 25, 2023
397a8d1
Don't use 'we' and use proper pronouns
Relequestual May 3, 2023
d79198e
Move the list of initial TSC members outside of the charter document
Relequestual May 3, 2023
59deddb
Use 'private' as opposed to 'non-public'
Relequestual May 3, 2023
f1974e2
Remove the explicit mention of ingesting tooling into the project
Relequestual Jun 15, 2023
c872a5f
Note what kinds of discussions and votes can and should be made private
Relequestual Jun 16, 2023
a974117
Move the paragraph about TSC period of leave to membership section
Relequestual Jun 16, 2023
86ff12e
Create governance document and move governance and process related co…
Relequestual Jun 23, 2023
55aa9b3
Refined definition of TSC in context
Relequestual Jun 23, 2023
75542a8
Move content about voting and additional project roles from charter t…
Relequestual Jun 26, 2023
aea0b80
Add interoperability to list of in scope concerns
Relequestual Jun 26, 2023
fbe8b54
Change 'JSON data' to 'JSON-compatible data' in charter
Relequestual Jun 27, 2023
63cf673
Use more inclusive phrasing
Relequestual Jul 10, 2023
a996e13
Remove content which is mostly a duplication of section 2
Relequestual Jul 10, 2023
2a92249
Simplify out of scope sction. Add engaging with upstream and downstre…
Relequestual Jul 11, 2023
58d942b
Move TSC policy elements to charter from governance document
Relequestual Jul 13, 2023
8b2ed66
Add that TSC meetings should have an agenda
Relequestual Jul 13, 2023
be38006
Move roles and responsibilities section back to charter document with…
Relequestual Jul 25, 2023
4c92fc6
Migrate some content regarding process out of the governance document…
Relequestual Jul 25, 2023
507246b
Remove governance document for the Charter PR
Relequestual Jul 25, 2023
26f9265
Improve phrasing for out of scope
Relequestual Aug 2, 2023
31d5f6e
Tighten phrasing
Relequestual Aug 2, 2023
47a0d79
Note that updates to the charter must be approved by the OpenJS Found…
Relequestual Aug 2, 2023
37eccb2
Include the CPC
Relequestual Aug 2, 2023
bea5924
Strive to be open, always!
Relequestual Aug 2, 2023
91d5133
Remove initial included license and add CC-BY 4.0
Relequestual Aug 3, 2023
cdce30b
Fix posession
Relequestual Aug 3, 2023
06240f9
Fix grammar
Relequestual Aug 9, 2023
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
196 changes: 196 additions & 0 deletions CHARTER.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,196 @@
# JSON Schema Org Charter
Relequestual marked this conversation as resolved.
Show resolved Hide resolved
<!-- This document is managed in the json-schema-org/.github GitHub repository. Please do NOT modify this file in another repository as changes may be overridden. -->

<!-- While this document is being written, you can find the discussion to help determine what should be found here at https://github.com/json-schema-org/community/discussions/286 - This comment should be removed before merging -->

## Section 0: Guiding Principles
Relequestual marked this conversation as resolved.
Show resolved Hide resolved
<!-- https://github.com/json-schema-org/community/discussions/286#discussioncomment-4391241 -->

The JSON Schema project is part of the OpenJS Foundation which operates transparently, openly, collaboratively, and ethically. We strive to be open and transparent as much as is possible, and wish to enable anyone to interact and engage with any area of our work.
Relequestual marked this conversation as resolved.
Show resolved Hide resolved
Relequestual marked this conversation as resolved.
Show resolved Hide resolved

Having no structure in place usually leads to one that is informal and undocumented, making it difficult to meet our own expectations of how we wish to operate. As such, we define the following charter which includes aspects of the governance model to which we subscribe and by which we operate.
Relequestual marked this conversation as resolved.
Show resolved Hide resolved

## Section 1: Scope
<!-- https://github.com/json-schema-org/community/discussions/286#discussioncomment-4391250 -->

JSON Schema aims to enable the confident and reliable use of the JSON data format. It does this primarily by providing specification documents which define a declarative language that allows annotation and validation of JSON documents.
Copy link
Member

Choose a reason for hiding this comment

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

JSON Schema aims to enable the confident and reliable use of the JSON data format.

I would change this to "reliable use of data expressed in the JSON format, other formats compatible with the JSON document model". JSON Schema isn't about the JSON data format itself, but about describing data expressed with that format, as well as others.

Copy link
Member Author

Choose a reason for hiding this comment

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

While initially thinking about this, I thought I agreed, however on reflection, I'm not sure I do. It's not in scope of JSON Schema to care about other languages which "compile" to JSON, such as YAML.

JSON Schema isn't about the JSON data format itself, but about describing data expressed with that format, as well as others.

I think this is only partially true. JSON Schema can only cater to a subset of YAML for example. It's possible to roundtrip from JSON to YAML to JSON, but not always possible to roundtrip from YAML to JSON to YAML.

The use of "JSON data format" was used in effort to convey the "in memory" materilization of the data, as opposed to just a JSON file.

I agree that "eliable use of data expressed in the JSON format" may make this clearer, however I'm not convinced about "other formats compatible with the JSON document model". "compatible" in what way?

Do you have any additional thoughts on this?

While JSON Schema's primary target is constraint-based data validation, it continues to be used across the whole stack, in different stages of a given project, and for purposes beyond its original design. We aim to enable these additional and emergent use cases.
Relequestual marked this conversation as resolved.
Show resolved Hide resolved

### 1.1: In-scope (optional)
Relequestual marked this conversation as resolved.
Show resolved Hide resolved

https://github.com/json-schema-org/community/discussions/286#discussioncomment-4391253

_directions: list or bullet out problem spaces, use cases, repositories_
_or other projects which are included with the work but may not be readily_
_apparent. This may help differentiate the project from other solutions in the_
_space. If you are not using this section, please indicate your intent with the_
_phrase, 'Section Intentionally Left Blank'._

ex. [K8s SIG Architecture Charter](https://github.com/kubernetes/community/blob/HEAD/sig-architecture/charter.md#in-scope)

### 1.2: Out-of-Scope (optional)
<!-- https://github.com/json-schema-org/community/discussions/286#discussioncomment-4391262 -->

Section Intentionally Left Blank
Relequestual marked this conversation as resolved.
Show resolved Hide resolved

## Section 2: Relationship with OpenJS Foundation CPC.
<!-- https://github.com/json-schema-org/community/discussions/286#discussioncomment-4391266 -->

Most large, complex open source communities have both a business and a technical governance model. Technical leadership for the projects within the OpenJS Foundation is delegated to the projects through their project charters by the OpenJS Cross Project Council (CPC). In the case of the JSON Schema project, it is delegated to the JSON Schema Technical Steering Committee ("TSC").

### 2.1 Other Formal Project Relationships (optional)
<!-- https://github.com/json-schema-org/community/discussions/286#discussioncomment-4391271 -->

Section Intentionally Left Blank

## Section 3: JSON Schema Org Governing Body (TSC)
<!-- https://github.com/json-schema-org/community/discussions/286#discussioncomment-4391284 -->

The TSC is initially established from the observed major contributors who are currently active and in good standing.

There is no maximum TSC membership size. The TSC must have a minimum of four members.

Changes to TSC membership should be posted in the agenda, and may be suggested as any other agenda item.

TSC memberships are not time-limited.

While the project is not looking to obtain "Impact" project status within the OpenJS Foundation, there is no requirement set out to limit the number of TSC members by employer. It is in some cases considered difficult or even unhelpful for the project to limit the number or percentage of TSC members by employer (Especially when an employer has employed individuals already active in the community to work exclusively on the open source project). While at this time there is no limits on TSC membership by employer, the TSC will strive to keep to at least less than 50%, ideally 33% (One third, one in three). The TSC will re-evaluate this specific clause at least every six months, and aim to revise it within one year to meet the "no more than 1/3 employer member affiliation" mandate.
Relequestual marked this conversation as resolved.
Show resolved Hide resolved

TSC members are expected to regularly participate in TSC activities.

The TSC will meet regularly using virtual conferencing tools. The meeting will be directed by the TSC Chairperson(s). Responsibility for directing individual meetings may be delegated by a TSC Chairperson to any other TSC member. Minutes or an appropriate recording will be taken and made available to the community through accessible public postings.
Relequestual marked this conversation as resolved.
Show resolved Hide resolved

The TSC may, at its discretion, invite any number of non-voting observers to participate in the public portion of TSC discussions and meetings.
Copy link
Contributor

Choose a reason for hiding this comment

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

I'd encourage you to make those sessions public all the time.

Copy link
Member Author

Choose a reason for hiding this comment

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

That's the intent! Public as much as possible!
I note that the CPC has a private portion of the call on occasion, for whatever reason.

Copy link
Contributor

Choose a reason for hiding this comment

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

Whereby I meant that the session should be public by default (with an agenda and videoconf link made available upfront), not that it is private by default and that the TSC may decide to open it.

Copy link
Member Author

Choose a reason for hiding this comment

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

Agreed. That is what is intended. If it doesn't come across that way, it needs revising.

Copy link
Contributor

Choose a reason for hiding this comment

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

I think this sentence is correct. It should be specified somewhere else that there might a private portion of the meeting.

Copy link
Contributor

Choose a reason for hiding this comment

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

I think this sentence is correct. It should be specified somewhere else that there might a private portion of the meeting.

Well, but the problem of making allowing access to the TSC meeting at the discretion of the TSC, is that this makes the meeting private by default, and requires action by the TSC to make it public.

Copy link
Member Author

Choose a reason for hiding this comment

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

It doesn't say that. It says the TSC may invite people to the public portion of the meeting. You're reading into it something which isn't there.

Technically, as it is public, and the details of how to access it will be public, anyone could invite anyone. But I wanted to make it explicit that TSC may invite guests.

I don't recall specifically where I borrowed the phrasing from, but I agree it is not clear and can be improved.

Copy link
Contributor

Choose a reason for hiding this comment

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

You're reading into it something which isn't there.

I dont doubt your intentions. I’m stating that the text doesn’t match them. ;)


A TSC member may be removed by vote from the TSC if, during a 3-month period, all of the following are true:

- They attend fewer than 25% of the regularly scheduled meetings
Relequestual marked this conversation as resolved.
Show resolved Hide resolved
- They do not participate in any TSC votes
- They do not provide any form of excuse or no excuse is known for their absence

Copy link
Member

Choose a reason for hiding this comment

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

Any restrictions on the maximum percentage of Governing Body members that can be employed by the same company? The risk of one company exerting undue influence over the direction of the project is real.

Copy link
Member

Choose a reason for hiding this comment

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

We looked at this before, I but I don't remember (or necessarily agree with) why it was removed.

Copy link
Member Author

@Relequestual Relequestual Aug 18, 2023

Choose a reason for hiding this comment

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

This clause was seen more as a governance concern than a charter related concern, and was moved out to #456, specifically this line. (This also allows us to update it without having to go back to the OpenJS Foundation for their approval.)

The risk of one company exerting undue influence over the direction of the project is real.

I hear you. Regardless of what anyone in such a position reports, such as no to little influence, that doesn't mean things can't change, or it shouldn't be a concern.

We are trying to start addressing this by engaging more with implementers: #412 - Comments and suggestions welcome.

Additionally, we are looking to encourage users to self report: #441

Further, there are plans to create a stakeholders group: https://github.com/orgs/json-schema-org/projects/12/views/5 (Although these are a little vague currently).

Open to thoughts, suggestions, comments, on all of this and anything else that comes to mind as to how we can expand our TSC. @karenetheridge your voice carries weight here =]

## Section 4: Roles & Responsibilities
Relequestual marked this conversation as resolved.
Show resolved Hide resolved
<!-- https://github.com/json-schema-org/community/discussions/286#discussioncomment-4391286 -->

The JSON Schema project is jointly governed by a Technical Steering Committee (TSC) which is responsible for high-level guidance of the project.
Relequestual marked this conversation as resolved.
Show resolved Hide resolved

The TSC has final authority over this project including:

- Technical direction
- Project governance and process (including this policy)
Relequestual marked this conversation as resolved.
Show resolved Hide resolved
- Contribution policy
- GitHub repository hosting and administration
- Establishment of and delegation to working groups or teams
- Mediating technical conflicts

### Section 4.1 Project Operations & Management (optional)
<!-- https://github.com/json-schema-org/community/discussions/286#discussioncomment-4391290 -->

The TSC and entire technical community will follow any processes as may be specified by the OpenJS Foundation Board relating to the intake and license compliance review of contributions, including the OpenJS Foundation IP Policy.
Relequestual marked this conversation as resolved.
Show resolved Hide resolved

### Section 4.2: Decision-making and Voting
<!-- https://github.com/json-schema-org/community/discussions/286#discussioncomment-4391296 -->
Note: See comments found in raw view...

The TSC follows a formal consensus seeking decision making model.
benjagm marked this conversation as resolved.
Show resolved Hide resolved
In some situations, a vote may be preferable, however a vote will not be used to make the vast majority of decisions.
In the unlikely case where it seems that consensus cannot be reached after multiple attempts, the decision process may be moved to resolve via a vote. This is not expected to happen, but defined as a backup.

#### Decision-making via consensus

When a TSC member looks for an issue to be discussed and a decision to be made, they must start by assessing if they feel it warrants potentially being a non-public discussion and decision. The TSC member must reach out to the TSC chairs to request a non-public discussion and decision. A discussion and decision will be non-public at the discretion of the TSC chairs. It is expected that decision discussions and voting will only be non-public in rare circumstances.
Copy link
Contributor

Choose a reason for hiding this comment

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

I'd suggest:

  • splitting this out into its own section.
  • outlining the kinds of discussions that can (and should) be made private.
  • replacing "non-public" with "private" (avoids double negations and lowers cognitive load).


A decision discussion may be started by creating a Discussion in the Community repository.
--? Should we have a new repo and limit the Discussions to that repo? TSC? ?--
The Discussion should include introductory information about the decision that needs to be made. It should follow the provided template, and must have the label `tsc-decision`.

##### Quick consensus process

In the event a TSC member feels the need for a decision to be expedited, they may create the decision discussion, indicating that they wish to use the quick process rather than the standard consensus process.

A vote is called to see if other members agree. The vote takes place on the opening comment. This vote is different from the decision-making voting process, and only requires 3 (additional) votes in favour and none against to carry. If the vote carries, the quick process is started, otherwise the standard consensus process is started.

The quick process is designed for small trivial issues where the resolution feels likely obvious, and the member who proposes the decision discussion has at least one clear resolution to present. The decision discussion owner should present the possible solution they are advocating for, and ask to test for agreement. If consensus is not clearly reached, the quick process is ended and the standard consensus process is started.

##### Standard consensus process

The standard consensus process is designed for all non-trivial decisions.
The standard consensus process should progress through the following seven stages.

1. Introduction and clarify the issue
2. Open the discussion - Share needs and perspectives on the issue
3. Explore ideas in a broad discussion
4. Form a proposal
5. Amend the proposal
6. Test for agreement
7. Determine resolution

(These stages are those defined by the [Seeds For Change's Consensus Decision Making document](https://seedsforchange.org.uk/consensus). Please use that document as a rough guide for specific steps while we test and firm up our specific requirements, and document them in our [Governance document](./GOVERNANCE.md))
<!-- GOVERNANCE.md is not yet created. I would suggest that creating one which helps us through the seven stages of the consensus process be the first order of business. -->

All decisions that go through the standard consensus process must also have an associated GitHub Discussion, which allows those unable to attend meetings to participate.
The opening comment of the Discussion should be kept up to date as to the status of a decision.

Transition between stages may be requested by anyone, but must be called by the facilitator (either a TSC chair or TSC member delegated the facilitator role for a given decision discussion). The stage will be indicated in the opening comment of the discussion and using the appropriate label.

Most of the discussion should happen within the same Discussion. Groups looking to form a proposal or amend a proposal (stages 4 and 5) may make use of other additional Discussions or Issues, but these must be clearly linked. The opening comment should be updated to include links to relevant specific threads and comments in the same Discussion, and any other relevant locations.

Moving to the 'Form a Proposal" stage should be approached when the group might feel able to combine ideas to form a single proposal. Multiple possible solutions should be discussed in the previous stage.
Relequestual marked this conversation as resolved.
Show resolved Hide resolved

The "Test for Agreement" step is not voting, and is in stead asking for "signals", which enable the consensus process to continue.
Relequestual marked this conversation as resolved.
Show resolved Hide resolved
Voting should be considered a last resort if the consensus process has failed for a particular issue, to enable the project to move forward.

If someone calls for a Test of Agreement, the facilitator for the Discussion will review current proposal and may call to Test for Agreement. The facilitator will post a comment on the Discussion (using the provided template), linking to the current version of the proposal, and update the opening comment with a link to the new comment. TSC members will then be asked to signal their agreement using GitHub Reactions on the comment.

The "Determine resolution" step should result in the creation of an [Any Decision Record](./docs/adr/README.md). More details in following sections.
Relequestual marked this conversation as resolved.
Show resolved Hide resolved

#### Decision-making via vote

Any call for public TSC votes will be made by creating an Issue in the community repo with the `tsc-vote` label assigned. The Issue should use the provided template.
--? Should public votes go in the community repo or a new TSC repo?--

Once an Issue gains the label `tsc-vote`, all members of the TSC will be notified via a specific Slack channel (and by any additional method the TSC deems helpful). The votes will be collected by way of using GitHub Reactions on a specific comment, which must not be the first comment. The first comment must link to the voting comment in the same Issue.
Voting will by default close after 7 days. Any member of the TSC may request a 7 day extension for any reason, moving the closing date back by 7 days. Any member of the TSC may request additional extensions, approved at the discretion of any TSC chair.

For a vote to carry, a quorum of 75% is required by default.

If a TSC member wants to call for a vote that they wish to be non-public, they must do so by contacting the TSC Chairs directly.
At the discretion of the TSC Chairs, a vote may be made non-public, and will then be handled by creating a Discussion in the orgs TSC Team page (?-- Or should this be an Issue in a private repo? That might be preferable as they can then be closed--). The topic and nature of non-public votes may remain non-public, including the results.(It is expected that vast majority of votes will be public. Non-public voting should only be used in exceptional circumstances.)

#### Documenting decisions

Either initially, or at any point during the process, any TSC member may suggest the issue being discussed is "significant or noteworthy." If there are no objections, the resolution actions for the issue must include the creation of an Any Decision Record (Previously named Architectural Decision Record). The Any Decision Record (ADR) should include as much information as is thought to be useful, following the provided template. The Pull Request for the ADR must be approved by all those who were involved in the decision making process, which must also be documented in the ADR as the "deciders."
Relequestual marked this conversation as resolved.
Show resolved Hide resolved

(The quick consensus process does not require a Decision Record, but the decision should be minuted.)
Relequestual marked this conversation as resolved.
Show resolved Hide resolved

Non-public decisions should be documented (as an ADR or otherwise) in the private `private-tsc` repo.

### Section 4.3: Other Project Roles (optional)

The JSON Schema project recognises the need for both technical and non-technical roles. While the OpenJS Foundation takes on business responsibilities as the legal entity hosting the project, there are other non-technical responsibilities.
Relequestual marked this conversation as resolved.
Show resolved Hide resolved

The TSC will look to create other roles as appropriate, and may update this document in accordance with the requirements for doing so, to formally recognise the additional roles.
Relequestual marked this conversation as resolved.
Show resolved Hide resolved

The following responsibilities are recognised as those requiring roles to be defined by the TSC:
- Community and Industry connections
- Brand awareness, recognition, and health
- Strategic allocation of funds and budgeting for investment in JSON Schema and its ecosystem
Relequestual marked this conversation as resolved.
Show resolved Hide resolved
- Education and training
- Financial allocation approval, tracking, and auditing
Relequestual marked this conversation as resolved.
Show resolved Hide resolved

## Section 5: Definitions (optional)
<!-- https://github.com/json-schema-org/community/discussions/286#discussioncomment-4391301 -->

The JSON Schema project: The project which is housed by the OpenJS Foundation which operates as The JSON Schema Org.

The JSON Schema Org: The people, policies, processes, activities, and artifacts, found within the GitHub json-schema-org.
Relequestual marked this conversation as resolved.
Show resolved Hide resolved

TSC: The Technical Steering Committee, delegated technical leadership for the JSON Schema project by the OpenJS Foundation.

---

This work is a derivative of the [WebdriverIO Project Governance Model](https://github.com/webdriverio/webdriverio/blob/main/GOVERNANCE.md).

Inspired by https://seedsforchange.org.uk/consensus, https://seedsforchange.org.uk/quickconsensus
Informed by https://www.ic.org/busting-the-myth-that-consensus-with-unanimity-is-good-for-communities/

This work is licensed under a [Creative Commons Attribution-ShareAlike 2.0 UK: England & Wales License](https://creativecommons.org/licenses/by-sa/2.0/uk/).
Relequestual marked this conversation as resolved.
Show resolved Hide resolved
Relequestual marked this conversation as resolved.
Show resolved Hide resolved