Skip to content

Commit

Permalink
Governance Creation (#31)
Browse files Browse the repository at this point in the history
* Initial governance model for seq schemas

* Add overview of sequence specification and reference to how to propose a change

* Add issue hyperlink to README
  • Loading branch information
ewferg authored Dec 9, 2024
1 parent d44ba82 commit 0b7f905
Show file tree
Hide file tree
Showing 2 changed files with 84 additions and 0 deletions.
74 changes: 74 additions & 0 deletions GOVERNANCE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
# Multi-Mission Sequence Language Specifications Project Governance

This project aims to create an open source community that encourages transparency, contributions, and collaboration, but maintains sound technical and quality standards. Our goal is to build a community comprised of members across the space community and beyond, including from private organizations, universities, Federally Funded Research and Development Centers (FFRDCs), other government organizations, and international organizations.

This community follows a fairly liberal contribution model where people and/or organizations who do the most work will have the most influence on project direction. Technical decision-making will primarily be made through a "[consensus-seeking](https://en.wikipedia.org/wiki/Consensus-seeking_decision-making)" approach.

## Roles

### User

Operators who have authored, reviewed, or written tools that use sequence specifications under the scope of this project. These specifications were primarily designed for space missions, but let us know if you've found other uses for them.

### Contributor

Contributors include anyone that provides input to the project. This includes code updates, issues, documentation, graphics, designs, or anything else that tangibly improves the project.

### Collaborator

Subset of contributors who have been given write access to one or more of the repositories under the scope of this project. Both contributors and collaborators can propose changes to the project via pull requests, but only collaborators can review these requests. Any contributor who has made a non-trivial contribution should be on-boarded as a collaborator in a timely manner.

If you are planning on making a substantial contribution or would like to propose a change to our specifications, please follow the [Specification Change Request Process](#specification-change-request-process) below.

# Project Management Committee

The Project Management Committee (PMC) is made up of sponsor organization representatives (i.e. those providing funding to the project) and key stakeholders who rely or plan to rely on the sequence specifications under the scope of this project.
The PMC has the following primary responsibilities

- Responding to specification change requests and approving specification changes
- Maintaining roadmap for upcoming and potential future specification changes
- Assessing available resources and allocating them to make specification and documentation changes
- On-boarding new sponsors and/or stakeholders
- Overall project governance (including this policy)
- Maintaining the list of collaborators
- Contribution policy

### PMC Committee Members
- The current PMC members are the members of the [NASA-AMMOS seq-schemas-pmc team](https://github.com/orgs/NASA-AMMOS/teams/seq-schemas-pmc/members)

### Scope

The PMC has management authority over the following repos:
- https://github.com/NASA-AMMOS/seq-json-schema

The PMC also has responsibility over the sequencing specification documentation within https://github.com/NASA-AMMOS/aerie-docs

### PMC Governance

The PMC shall self-select a chair to lead and organize the committee. A new chair shall be selected yearly to distribute leadership responsibility across stakeholders.

The PMC chair or their delegate (who must also be a PMC member) shall:
- Shepherd change requests through disposition and implementation
- Schedule ad hoc meetings to discuss change requests or issues to get PMC consensus when necessary
- Hold quarterly meetings open to the community to provide status on recent updates and/or change requests, get community input on how specifications are being used, and receive feedback on how to improve them.
- On-board new PMC members when appropriate (e.g. new stakeholder, change in organization/mission representative)
- Initiate PMC chair transition

### Specification Change Request Process

If you have a proposed change to one of the specifications under the scope of this project, submit an issue to the GitHub repository which contains that specification.

The PMC chair or their delegate will review the issue submission. If the change request is non-trivial, the chair will request input from the PMC to either approve, disapprove, or request additional clarification from the submitter. The PMC chair will work with the PMC and submitter until an approval or disapproval consensus can be determined.
If the request is approved, the chair will note this as a comment on the issue submission. The PMC chair should note impacts of the change based on input from the PMC as part of the approval comment. Similarly, if disapproved, the chair will provide rationale from the PMC as to why this request was disapproved and close the issue.

If the submitter does not have the resources to implement the requested change, the PMC chair will identify an implementer as part of the approval process.

Once implementation is complete, the implementer will submit a pull request and reference the original issue within that request. This pull request must be reviewed and approved by sufficient PMC members to represent all stakeholder missions and sponsor organizations. If not approved by one or more PMC members, the chair will work with the PMC and implementer to make the necessary changes to get full approval. If full approval is unable to be achieved, the pull request and corresponding issue will be closed with rationale for why full approval was not possible.


# Acknowledgements

Much of this governance model was adapted from the other notable open source projects including [node.js](https://github.com/nodejs/node/blob/main/GOVERNANCE.md), [OpenSSL](https://www.openssl.org/policies/omc-bylaws.html), [PostgresQL](https://www.postgresql.org/developer/), and [OpenMCT](https://github.com/nasa/openmct/blob/master/CONTRIBUTING.md)



10 changes: 10 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,16 @@
Standardized [JSON Schema](https://json-schema.org/) for authoring multi-mission sequences. You can read the schema definition [here](https://github.com/NASA-AMMOS/seq-json-schema/blob/develop/schema.json).
You can use our [validation site](https://nasa-ammos.github.io/seq-json-schema/) to validate a `.seq.json` document against the latest schema.

## Why a Sequence Schema?

Spacecraft are often controlled via sets of time ordered commands called sequences. Although spacecraft are built with a variety of different on-board flight softwares, each of which have different commanding interfaces, there are sufficient commonalities between these interfaces to justify creating a common sequencing specification that works for a number of flight software types.

If organizations must support operating different missions with different flight software, operators can use this common specification (with potential customization) for these different missions. Operators would author and transport the set of commands they want to send to the spacecraft in this common specification and then perform a final translation from this specification to the format required by the flight software for final verification.

## Propose a Change

Interested in proposing a change to the schema? Begin by writing a [change request issue](https://github.com/NASA-AMMOS/seq-json-schema/issues).

## JavaScript or TypeScript

### Install
Expand Down

0 comments on commit 0b7f905

Please sign in to comment.